#!/bin/sh # # get uudecode items from inputlist # -o is name of output file will be appended to # - is from standard input # # all boils down to reading standard input anyway # and writing standard output # CMD=$0 ; if [ "$*". = "." ] then exec $CMD - fi argc=0 for a in $* do if [ ${next-0} -eq 1 ] then out=$a; next=2; continue; fi case $a in -o) next=`expr ${next-0} + 1 `;; *) if [ -r $a ] then args="${args}${args+"" ""}$a" else echo $CMD: "Can't read $a" 1>&2 status=1; fi argc=`expr ${argc-0} + 1` ;; esac done if [ ${out-.} != "." ] then $CMD ${args-} >>$out exit $? fi if [ ${argc-0} -ne 0 -a "${args-.}" = "." ] then exit $status fi /usr/bin/awk 'BEGIN{ on=0; mode=0; copy=0; ALLOW=" !\"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`"; } /^BEGIN/{mode = 1 ; copy = 1 ;next; } /^END/{if ( mode == 1 ) copy = 0 ;next;} mode == 1 && copy == 1 {print $0 ; next; }; mode == 1 { next;} NF == 3 && /^begin /{print $0;on=1;next;}; on == 1 && /^end/{on=0;if( space) printf("\n");printf("%s\n",$0);next;} on == 1 { if( length($0) == 0 ){ space=1; next; }else space=0; } on != 1{ next;} on != 1 ||/^--/||/^ /||/[a-z{|}]/{next;} {print $0;} ' $args status=`expr ${status-0} + $?` exit $status