File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -106,18 +106,19 @@ def decodestring(s):
106106 decode (f , g )
107107 return g .getvalue ()
108108
109- # Small test program, reads stdin, writes stdout.
110- # no arg: encode, any arg: decode.
109+ # Small test program
111110def test ():
112111 import sys , getopt
113112 try :
114113 opts , args = getopt .getopt (sys .argv [1 :], 'deut' )
115114 except getopt .error , msg :
115+ sys .stdout = sys .stderr
116116 print msg
117117 print """usage: basd64 [-d] [-e] [-u] [-t] [file|-]
118118 -d, -u: decode
119119 -e: encode (default)
120120 -t: decode string 'Aladdin:open sesame'"""
121+ sys .exit (2 )
121122 func = encode
122123 for o , a in opts :
123124 if o == '-e' : func = encode
Original file line number Diff line number Diff line change @@ -89,13 +89,45 @@ def unhex(s):
8989
9090def test ():
9191 import sys
92- if sys .argv [1 :]:
93- if sys .argv [1 ] == '-t' : # Quote tabs
94- encode (sys .stdin , sys .stdout , 1 )
95- else :
96- decode (sys .stdin , sys .stdout )
97- else :
98- encode (sys .stdin , sys .stdout , 0 )
92+ import getopt
93+ try :
94+ opts , args = getopt .getopt (sys .argv [1 :], 'td' )
95+ except getopt .error , msg :
96+ sys .stdout = sys .stderr
97+ print msg
98+ print "usage: quopri [-t | -d] [file] ..."
99+ print "-t: quote tabs"
100+ print "-d: decode; default encode"
101+ sys .exit (2 )
102+ deco = 0
103+ tabs = 0
104+ for o , a in opts :
105+ if o == '-t' : tabs = 1
106+ if o == '-d' : deco = 1
107+ if tabs and deco :
108+ sys .stdout = sys .stderr
109+ print "-t and -d are mutually exclusive"
110+ sys .exit (2 )
111+ if not args : args = ['-' ]
112+ sts = 0
113+ for file in args :
114+ if file == '-' :
115+ fp = sys .stdin
116+ else :
117+ try :
118+ fp = open (file )
119+ except IOError , msg :
120+ sys .stderr .write ("%s: can't open (%s)\n " % (file , msg ))
121+ sts = 1
122+ continue
123+ if deco :
124+ decode (fp , sys .stdout )
125+ else :
126+ encode (fp , sys .stdout , tabs )
127+ if fp is not sys .stdin :
128+ fp .close ()
129+ if sts :
130+ sys .exit (sts )
99131
100132if __name__ == '__main__' :
101- main ()
133+ test ()
You can’t perform that action at this time.
0 commit comments