home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: 2867
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Newsgroup Content (archive/news)
| magic
| Supported |
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
100%
| dexvert
| Internet Message Format (text/imf)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| news or mail, ASCII text
| default
| |
100%
| TrID
| E-Mail message (Var. 2)
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 67 75 | 69 64 6f 40 63 77 69 2e |From: gu|ido@cwi.|
|00000010| 6e 6c 20 28 47 75 69 64 | 6f 20 76 61 6e 20 52 6f |nl (Guid|o van Ro|
|00000020| 73 73 75 6d 29 0a 4e 65 | 77 73 67 72 6f 75 70 73 |ssum).Ne|wsgroups|
|00000030| 3a 20 61 6c 74 2e 73 6f | 75 72 63 65 73 0a 53 75 |: alt.so|urces.Su|
|00000040| 62 6a 65 63 74 3a 20 50 | 79 74 68 6f 6e 20 70 72 |bject: P|ython pr|
|00000050| 6f 67 72 61 6d 73 20 74 | 6f 20 63 72 65 61 74 65 |ograms t|o create|
|00000060| 20 74 61 67 73 2f 54 41 | 47 53 20 66 69 6c 65 73 | tags/TA|GS files|
|00000070| 0a 4d 65 73 73 61 67 65 | 2d 49 44 3a 20 3c 33 30 |.Message|-ID: <30|
|00000080| 34 31 40 63 68 61 72 6f | 6e 2e 63 77 69 2e 6e 6c |41@charo|n.cwi.nl|
|00000090| 3e 0a 44 61 74 65 3a 20 | 32 37 20 46 65 62 20 39 |>.Date: |27 Feb 9|
|000000a0| 31 20 31 32 3a 35 32 3a | 35 38 20 47 4d 54 0a 0a |1 12:52:|58 GMT..|
|000000b0| 48 65 72 65 20 61 72 65 | 20 74 77 6f 20 50 79 74 |Here are| two Pyt|
|000000c0| 68 6f 6e 20 73 63 72 69 | 70 74 73 20 74 68 61 74 |hon scri|pts that|
|000000d0| 20 62 6f 74 68 20 73 65 | 72 76 65 20 61 73 20 73 | both se|rve as s|
|000000e0| 69 6d 70 6c 65 20 50 79 | 74 68 6f 6e 0a 70 72 6f |imple Py|thon.pro|
|000000f0| 67 72 61 6d 6d 69 6e 67 | 20 65 78 61 6d 70 6c 65 |gramming| example|
|00000100| 73 20 61 6e 64 20 65 6e | 68 61 6e 63 65 20 74 68 |s and en|hance th|
|00000110| 65 20 70 72 6f 67 72 61 | 6d 6d 69 6e 67 20 65 6e |e progra|mming en|
|00000120| 76 69 72 6f 6e 6d 65 6e | 74 20 66 6f 72 0a 50 79 |vironmen|t for.Py|
|00000130| 74 68 6f 6e 2e 0a 0a 42 | 6f 74 68 20 73 63 72 69 |thon...B|oth scri|
|00000140| 70 74 73 20 70 72 6f 63 | 65 73 73 20 61 20 62 75 |pts proc|ess a bu|
|00000150| 6e 63 68 20 6f 66 20 70 | 79 74 68 6f 6e 20 6d 6f |nch of p|ython mo|
|00000160| 64 75 6c 65 73 20 6c 6f | 6f 6b 69 6e 67 20 66 6f |dules lo|oking fo|
|00000170| 72 20 66 75 6e 63 74 69 | 6f 6e 0a 61 6e 64 20 63 |r functi|on.and c|
|00000180| 6c 61 73 73 20 64 65 66 | 69 6e 69 74 69 6f 6e 73 |lass def|initions|
|00000190| 2e 20 20 22 70 74 61 67 | 73 22 20 63 72 65 61 74 |. "ptag|s" creat|
|000001a0| 65 73 20 61 20 22 74 61 | 67 73 22 20 66 69 6c 65 |es a "ta|gs" file|
|000001b0| 2c 20 66 6f 72 20 75 73 | 65 20 77 69 74 68 0a 76 |, for us|e with.v|
|000001c0| 69 2c 20 77 68 69 6c 65 | 20 22 65 70 74 61 67 73 |i, while| "eptags|
|000001d0| 22 20 63 72 65 61 74 65 | 73 20 61 20 22 54 41 47 |" create|s a "TAG|
|000001e0| 53 22 20 66 69 6c 65 2c | 20 75 73 61 62 6c 65 20 |S" file,| usable |
|000001f0| 77 69 74 68 20 47 4e 55 | 20 45 6d 61 63 73 2e 0a |with GNU| Emacs..|
|00000200| 54 68 69 73 20 76 65 72 | 73 69 6f 6e 20 6f 66 20 |This ver|sion of |
|00000210| 22 70 74 61 67 73 22 20 | 69 73 20 6d 75 63 68 20 |"ptags" |is much |
|00000220| 66 61 73 74 65 72 20 74 | 68 61 6e 20 74 68 65 20 |faster t|han the |
|00000230| 6f 6e 65 20 64 69 73 74 | 72 69 62 75 74 65 64 0a |one dist|ributed.|
|00000240| 77 69 74 68 20 50 79 74 | 68 6f 6e 2c 20 77 68 69 |with Pyt|hon, whi|
|00000250| 63 68 20 77 61 73 20 77 | 72 69 74 74 65 6e 20 62 |ch was w|ritten b|
|00000260| 65 66 6f 72 65 20 6d 6f | 64 75 6c 65 20 22 72 65 |efore mo|dule "re|
|00000270| 67 65 78 70 22 20 65 78 | 69 73 74 65 64 2e 0a 0a |gexp" ex|isted...|
|00000280| 4d 65 72 67 69 6e 67 20 | 69 6e 20 65 78 69 73 74 |Merging |in exist|
|00000290| 69 6e 67 20 74 61 67 73 | 2f 54 41 47 53 20 66 69 |ing tags|/TAGS fi|
|000002a0| 6c 65 73 20 69 73 20 6c | 65 66 74 20 61 73 20 61 |les is l|eft as a|
|000002b0| 6e 20 65 78 65 72 63 69 | 73 65 20 66 6f 72 20 74 |n exerci|se for t|
|000002c0| 68 65 0a 72 65 61 64 65 | 72 2e 0a 0a 47 6f 6f 64 |he.reade|r...Good|
|000002d0| 20 6c 75 63 6b 2c 0a 09 | 2d 2d 47 75 69 64 6f 20 | luck,..|--Guido |
|000002e0| 76 61 6e 20 52 6f 73 73 | 75 6d 20 3c 67 75 69 64 |van Ross|um <guid|
|000002f0| 6f 40 63 77 69 2e 6e 6c | 3e 0a 0a 50 53 3a 20 49 |o@cwi.nl|>..PS: I|
|00000300| 20 70 6f 73 74 65 64 20 | 61 20 22 70 79 74 68 6f | posted |a "pytho|
|00000310| 6e 2e 65 6c 22 20 74 6f | 20 67 6e 75 2e 65 6d 61 |n.el" to| gnu.ema|
|00000320| 63 73 2e 73 6f 75 72 63 | 65 73 2e 0a 0a 23 21 20 |cs.sourc|es...#! |
|00000330| 2f 62 69 6e 2f 73 68 0a | 23 20 54 68 69 73 20 69 |/bin/sh.|# This i|
|00000340| 73 20 61 20 73 68 65 6c | 6c 20 61 72 63 68 69 76 |s a shel|l archiv|
|00000350| 65 2e 20 20 52 65 6d 6f | 76 65 20 61 6e 79 74 68 |e. Remo|ve anyth|
|00000360| 69 6e 67 20 62 65 66 6f | 72 65 20 74 68 69 73 20 |ing befo|re this |
|00000370| 6c 69 6e 65 2c 20 74 68 | 65 6e 20 75 6e 70 61 63 |line, th|en unpac|
|00000380| 6b 0a 23 20 69 74 20 62 | 79 20 73 61 76 69 6e 67 |k.# it b|y saving|
|00000390| 20 69 74 20 69 6e 74 6f | 20 61 20 66 69 6c 65 20 | it into| a file |
|000003a0| 61 6e 64 20 74 79 70 69 | 6e 67 20 22 73 68 20 66 |and typi|ng "sh f|
|000003b0| 69 6c 65 22 2e 20 20 54 | 6f 20 6f 76 65 72 77 72 |ile". T|o overwr|
|000003c0| 69 74 65 20 65 78 69 73 | 74 69 6e 67 0a 23 20 66 |ite exis|ting.# f|
|000003d0| 69 6c 65 73 2c 20 74 79 | 70 65 20 22 73 68 20 66 |iles, ty|pe "sh f|
|000003e0| 69 6c 65 20 2d 63 22 2e | 20 20 59 6f 75 20 63 61 |ile -c".| You ca|
|000003f0| 6e 20 61 6c 73 6f 20 66 | 65 65 64 20 74 68 69 73 |n also f|eed this|
|00000400| 20 61 73 20 73 74 61 6e | 64 61 72 64 20 69 6e 70 | as stan|dard inp|
|00000410| 75 74 20 76 69 61 0a 23 | 20 75 6e 73 68 61 72 2c |ut via.#| unshar,|
|00000420| 20 6f 72 20 62 79 20 74 | 79 70 69 6e 67 20 22 73 | or by t|yping "s|
|00000430| 68 20 3c 66 69 6c 65 22 | 2c 20 65 2e 67 2e 2e 20 |h <file"|, e.g.. |
|00000440| 20 49 66 20 74 68 69 73 | 20 61 72 63 68 69 76 65 | If this| archive|
|00000450| 20 69 73 20 63 6f 6d 70 | 6c 65 74 65 2c 20 79 6f | is comp|lete, yo|
|00000460| 75 0a 23 20 77 69 6c 6c | 20 73 65 65 20 74 68 65 |u.# will| see the|
|00000470| 20 66 6f 6c 6c 6f 77 69 | 6e 67 20 6d 65 73 73 61 | followi|ng messa|
|00000480| 67 65 20 61 74 20 74 68 | 65 20 65 6e 64 3a 0a 23 |ge at th|e end:.#|
|00000490| 09 09 22 45 6e 64 20 6f | 66 20 73 68 65 6c 6c 20 |.."End o|f shell |
|000004a0| 61 72 63 68 69 76 65 2e | 22 0a 23 20 43 6f 6e 74 |archive.|".# Cont|
|000004b0| 65 6e 74 73 3a 20 20 65 | 70 74 61 67 73 2e 70 79 |ents: e|ptags.py|
|000004c0| 20 70 74 61 67 73 2e 70 | 79 0a 23 20 57 72 61 70 | ptags.p|y.# Wrap|
|000004d0| 70 65 64 20 62 79 20 67 | 75 69 64 6f 40 76 6f 6f |ped by g|uido@voo|
|000004e0| 72 6e 2e 63 77 69 2e 6e | 6c 20 6f 6e 20 57 65 64 |rn.cwi.n|l on Wed|
|000004f0| 20 46 65 62 20 32 37 20 | 31 33 3a 34 36 3a 32 33 | Feb 27 |13:46:23|
|00000500| 20 31 39 39 31 0a 50 41 | 54 48 3d 2f 62 69 6e 3a | 1991.PA|TH=/bin:|
|00000510| 2f 75 73 72 2f 62 69 6e | 3a 2f 75 73 72 2f 75 63 |/usr/bin|:/usr/uc|
|00000520| 62 20 3b 20 65 78 70 6f | 72 74 20 50 41 54 48 0a |b ; expo|rt PATH.|
|00000530| 69 66 20 74 65 73 74 20 | 2d 66 20 27 65 70 74 61 |if test |-f 'epta|
|00000540| 67 73 2e 70 79 27 20 2d | 61 20 22 24 7b 31 7d 22 |gs.py' -|a "${1}"|
|00000550| 20 21 3d 20 22 2d 63 22 | 20 3b 20 74 68 65 6e 20 | != "-c"| ; then |
|00000560| 0a 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 57 69 |. echo |shar: Wi|
|00000570| 6c 6c 20 6e 6f 74 20 63 | 6c 6f 62 62 65 72 20 65 |ll not c|lobber e|
|00000580| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 5c 22 27 |xisting |file \"'|
|00000590| 65 70 74 61 67 73 2e 70 | 79 27 5c 22 0a 65 6c 73 |eptags.p|y'\".els|
|000005a0| 65 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 |e.echo s|har: Ext|
|000005b0| 72 61 63 74 69 6e 67 20 | 5c 22 27 65 70 74 61 67 |racting |\"'eptag|
|000005c0| 73 2e 70 79 27 5c 22 20 | 5c 28 31 30 35 36 20 63 |s.py'\" |\(1056 c|
|000005d0| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|000005e0| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 65 70 74 61 67 |"s/^X//"| >'eptag|
|000005f0| 73 2e 70 79 27 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |s.py' <<|'END_OF_|
|00000600| 46 49 4c 45 27 0a 58 23 | 21 20 2f 75 66 73 2f 67 |FILE'.X#|! /ufs/g|
|00000610| 75 69 64 6f 2f 62 69 6e | 2f 73 67 69 2f 70 79 74 |uido/bin|/sgi/pyt|
|00000620| 68 6f 6e 0a 58 0a 58 23 | 20 65 70 74 61 67 73 0a |hon.X.X#| eptags.|
|00000630| 58 23 0a 58 23 20 43 72 | 65 61 74 65 20 61 20 54 |X#.X# Cr|eate a T|
|00000640| 41 47 53 20 66 69 6c 65 | 20 66 6f 72 20 50 79 74 |AGS file| for Pyt|
|00000650| 68 6f 6e 20 70 72 6f 67 | 72 61 6d 73 2c 20 75 73 |hon prog|rams, us|
|00000660| 61 62 6c 65 20 77 69 74 | 68 20 47 4e 55 20 45 6d |able wit|h GNU Em|
|00000670| 61 63 73 20 28 76 65 72 | 73 69 6f 6e 20 31 38 29 |acs (ver|sion 18)|
|00000680| 2e 0a 58 23 20 54 61 67 | 67 65 64 20 61 72 65 3a |..X# Tag|ged are:|
|00000690| 0a 58 23 20 2d 20 66 75 | 6e 63 74 69 6f 6e 73 20 |.X# - fu|nctions |
|000006a0| 28 65 76 65 6e 20 69 6e | 73 69 64 65 20 6f 74 68 |(even in|side oth|
|000006b0| 65 72 20 64 65 66 73 20 | 6f 72 20 63 6c 61 73 73 |er defs |or class|
|000006c0| 65 73 29 0a 58 23 20 2d | 20 63 6c 61 73 73 65 73 |es).X# -| classes|
|000006d0| 0a 58 23 20 57 61 72 6e | 73 20 61 62 6f 75 74 20 |.X# Warn|s about |
|000006e0| 66 69 6c 65 73 20 69 74 | 20 63 61 6e 6e 6f 74 20 |files it| cannot |
|000006f0| 6f 70 65 6e 2e 0a 58 23 | 20 4e 6f 20 77 61 72 6e |open..X#| No warn|
|00000700| 69 6e 67 73 20 61 62 6f | 75 74 20 64 75 70 6c 69 |ings abo|ut dupli|
|00000710| 63 61 74 65 20 74 61 67 | 73 2e 0a 58 0a 58 69 6d |cate tag|s..X.Xim|
|00000720| 70 6f 72 74 20 73 79 73 | 0a 58 69 6d 70 6f 72 74 |port sys|.Ximport|
|00000730| 20 72 65 67 65 78 70 0a | 58 0a 58 64 65 66 20 6d | regexp.|X.Xdef m|
|00000740| 61 69 6e 28 29 3a 0a 58 | 09 6f 75 74 66 70 20 3d |ain():.X|.outfp =|
|00000750| 20 6f 70 65 6e 28 27 54 | 41 47 53 27 2c 20 27 77 | open('T|AGS', 'w|
|00000760| 27 29 0a 58 09 61 72 67 | 73 20 3d 20 73 79 73 2e |').X.arg|s = sys.|
|00000770| 61 72 67 76 5b 31 3a 5d | 0a 58 09 66 6f 72 20 66 |argv[1:]|.X.for f|
|00000780| 69 6c 65 20 69 6e 20 61 | 72 67 73 3a 0a 58 09 09 |ile in a|rgs:.X..|
|00000790| 74 72 65 61 74 5f 66 69 | 6c 65 28 66 69 6c 65 2c |treat_fi|le(file,|
|000007a0| 20 6f 75 74 66 70 29 0a | 58 0a 58 6d 61 74 63 68 | outfp).|X.Xmatch|
|000007b0| 65 72 20 3d 20 72 65 67 | 65 78 70 2e 63 6f 6d 70 |er = reg|exp.comp|
|000007c0| 69 6c 65 28 27 5e 5b 20 | 5c 74 5d 2a 28 64 65 66 |ile('^[ |\t]*(def|
|000007d0| 7c 63 6c 61 73 73 29 5b | 20 5c 74 5d 2b 28 5b 61 ||class)[| \t]+([a|
|000007e0| 2d 7a 41 2d 5a 30 2d 39 | 5f 5d 2b 29 5b 20 5c 74 |-zA-Z0-9|_]+)[ \t|
|000007f0| 5d 2a 5c 28 27 29 0a 58 | 0a 58 64 65 66 20 74 72 |]*\(').X|.Xdef tr|
|00000800| 65 61 74 5f 66 69 6c 65 | 28 66 69 6c 65 2c 20 6f |eat_file|(file, o|
|00000810| 75 74 66 70 29 3a 0a 58 | 09 74 72 79 3a 0a 58 09 |utfp):.X|.try:.X.|
|00000820| 09 66 70 20 3d 20 6f 70 | 65 6e 28 66 69 6c 65 2c |.fp = op|en(file,|
|00000830| 20 27 72 27 29 0a 58 09 | 65 78 63 65 70 74 3a 0a | 'r').X.|except:.|
|00000840| 58 09 09 70 72 69 6e 74 | 20 27 43 61 6e 6e 6f 74 |X..print| 'Cannot|
|00000850| 20 6f 70 65 6e 27 2c 20 | 66 69 6c 65 0a 58 09 09 | open', |file.X..|
|00000860| 72 65 74 75 72 6e 0a 58 | 09 63 68 61 72 6e 6f 20 |return.X|.charno |
|00000870| 3d 20 30 0a 58 09 6c 69 | 6e 65 6e 6f 20 3d 20 30 |= 0.X.li|neno = 0|
|00000880| 0a 58 09 74 61 67 73 20 | 3d 20 5b 5d 0a 58 09 73 |.X.tags |= [].X.s|
|00000890| 69 7a 65 20 3d 20 30 0a | 58 09 77 68 69 6c 65 20 |ize = 0.|X.while |
|000008a0| 31 3a 0a 58 09 09 6c 69 | 6e 65 20 3d 20 66 70 2e |1:.X..li|ne = fp.|
|000008b0| 72 65 61 64 6c 69 6e 65 | 28 29 0a 58 09 09 69 66 |readline|().X..if|
|000008c0| 20 6e 6f 74 20 6c 69 6e | 65 3a 20 62 72 65 61 6b | not lin|e: break|
|000008d0| 0a 58 09 09 6c 69 6e 65 | 6e 6f 20 3d 20 6c 69 6e |.X..line|no = lin|
|000008e0| 65 6e 6f 20 2b 20 31 0a | 58 09 09 72 65 73 20 3d |eno + 1.|X..res =|
|000008f0| 20 6d 61 74 63 68 65 72 | 2e 65 78 65 63 28 6c 69 | matcher|.exec(li|
|00000900| 6e 65 29 0a 58 09 09 69 | 66 20 72 65 73 3a 0a 58 |ne).X..i|f res:.X|
|00000910| 09 09 09 28 61 2c 20 62 | 29 2c 20 28 61 31 2c 20 |...(a, b|), (a1, |
|00000920| 62 31 29 2c 20 28 61 32 | 2c 20 62 32 29 20 3d 20 |b1), (a2|, b2) = |
|00000930| 72 65 73 0a 58 09 09 09 | 6e 61 6d 65 20 3d 20 6c |res.X...|name = l|
|00000940| 69 6e 65 5b 61 32 3a 62 | 32 5d 0a 58 09 09 09 70 |ine[a2:b|2].X...p|
|00000950| 61 74 20 3d 20 6c 69 6e | 65 5b 61 3a 62 5d 0a 58 |at = lin|e[a:b].X|
|00000960| 09 09 09 74 61 67 20 3d | 20 70 61 74 20 2b 20 27 |...tag =| pat + '|
|00000970| 5c 31 37 37 27 20 2b 20 | 60 6c 69 6e 65 6e 6f 60 |\177' + |`lineno`|
|00000980| 20 2b 20 27 2c 27 20 2b | 20 60 63 68 61 72 6e 6f | + ',' +| `charno|
|00000990| 60 20 2b 20 27 5c 6e 27 | 0a 58 09 09 09 74 61 67 |` + '\n'|.X...tag|
|000009a0| 73 2e 61 70 70 65 6e 64 | 28 6e 61 6d 65 2c 20 74 |s.append|(name, t|
|000009b0| 61 67 29 0a 58 09 09 09 | 73 69 7a 65 20 3d 20 73 |ag).X...|size = s|
|000009c0| 69 7a 65 20 2b 20 6c 65 | 6e 28 74 61 67 29 0a 58 |ize + le|n(tag).X|
|000009d0| 09 09 63 68 61 72 6e 6f | 20 3d 20 63 68 61 72 6e |..charno| = charn|
|000009e0| 6f 20 2b 20 6c 65 6e 28 | 6c 69 6e 65 29 0a 58 09 |o + len(|line).X.|
|000009f0| 6f 75 74 66 70 2e 77 72 | 69 74 65 28 27 5c 66 5c |outfp.wr|ite('\f\|
|00000a00| 6e 27 20 2b 20 66 69 6c | 65 20 2b 20 27 2c 27 20 |n' + fil|e + ',' |
|00000a10| 2b 20 60 73 69 7a 65 60 | 20 2b 20 27 5c 6e 27 29 |+ `size`| + '\n')|
|00000a20| 0a 58 09 66 6f 72 20 6e | 61 6d 65 2c 20 74 61 67 |.X.for n|ame, tag|
|00000a30| 20 69 6e 20 74 61 67 73 | 3a 0a 58 09 09 6f 75 74 | in tags|:.X..out|
|00000a40| 66 70 2e 77 72 69 74 65 | 28 74 61 67 29 0a 58 0a |fp.write|(tag).X.|
|00000a50| 58 6d 61 69 6e 28 29 0a | 45 4e 44 5f 4f 46 5f 46 |Xmain().|END_OF_F|
|00000a60| 49 4c 45 0a 69 66 20 74 | 65 73 74 20 31 30 35 36 |ILE.if t|est 1056|
|00000a70| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 65 70 | -ne `wc| -c <'ep|
|00000a80| 74 61 67 73 2e 70 79 27 | 60 3b 20 74 68 65 6e 0a |tags.py'|`; then.|
|00000a90| 20 20 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 5c | echo| shar: \|
|00000aa0| 22 27 65 70 74 61 67 73 | 2e 70 79 27 5c 22 20 75 |"'eptags|.py'\" u|
|00000ab0| 6e 70 61 63 6b 65 64 20 | 77 69 74 68 20 77 72 6f |npacked |with wro|
|00000ac0| 6e 67 20 73 69 7a 65 21 | 0a 66 69 0a 63 68 6d 6f |ng size!|.fi.chmo|
|00000ad0| 64 20 2b 78 20 27 65 70 | 74 61 67 73 2e 70 79 27 |d +x 'ep|tags.py'|
|00000ae0| 0a 23 20 65 6e 64 20 6f | 66 20 27 65 70 74 61 67 |.# end o|f 'eptag|
|00000af0| 73 2e 70 79 27 0a 66 69 | 0a 69 66 20 74 65 73 74 |s.py'.fi|.if test|
|00000b00| 20 2d 66 20 27 70 74 61 | 67 73 2e 70 79 27 20 2d | -f 'pta|gs.py' -|
|00000b10| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|00000b20| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|00000b30| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|00000b40| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|00000b50| 66 69 6c 65 20 5c 22 27 | 70 74 61 67 73 2e 70 79 |file \"'|ptags.py|
|00000b60| 27 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |'\".else|.echo sh|
|00000b70| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|00000b80| 22 27 70 74 61 67 73 2e | 70 79 27 5c 22 20 5c 28 |"'ptags.|py'\" \(|
|00000b90| 31 30 31 33 20 63 68 61 | 72 61 63 74 65 72 73 5c |1013 cha|racters\|
|00000ba0| 29 0a 73 65 64 20 22 73 | 2f 5e 58 2f 2f 22 20 3e |).sed "s|/^X//" >|
|00000bb0| 27 70 74 61 67 73 2e 70 | 79 27 20 3c 3c 27 45 4e |'ptags.p|y' <<'EN|
|00000bc0| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 23 21 20 2f |D_OF_FIL|E'.X#! /|
|00000bd0| 75 66 73 2f 67 75 69 64 | 6f 2f 62 69 6e 2f 73 67 |ufs/guid|o/bin/sg|
|00000be0| 69 2f 70 79 74 68 6f 6e | 0a 58 0a 58 23 20 70 74 |i/python|.X.X# pt|
|00000bf0| 61 67 73 0a 58 23 0a 58 | 23 20 43 72 65 61 74 65 |ags.X#.X|# Create|
|00000c00| 20 61 20 74 61 67 73 20 | 66 69 6c 65 20 66 6f 72 | a tags |file for|
|00000c10| 20 50 79 74 68 6f 6e 20 | 70 72 6f 67 72 61 6d 73 | Python |programs|
|00000c20| 2c 20 75 73 61 62 6c 65 | 20 77 69 74 68 20 76 69 |, usable| with vi|
|00000c30| 2e 0a 58 23 20 54 61 67 | 67 65 64 20 61 72 65 3a |..X# Tag|ged are:|
|00000c40| 0a 58 23 20 2d 20 66 75 | 6e 63 74 69 6f 6e 73 20 |.X# - fu|nctions |
|00000c50| 28 65 76 65 6e 20 69 6e | 73 69 64 65 20 6f 74 68 |(even in|side oth|
|00000c60| 65 72 20 64 65 66 73 20 | 6f 72 20 63 6c 61 73 73 |er defs |or class|
|00000c70| 65 73 29 0a 58 23 20 2d | 20 63 6c 61 73 73 65 73 |es).X# -| classes|
|00000c80| 0a 58 23 20 2d 20 66 69 | 6c 65 6e 61 6d 65 73 0a |.X# - fi|lenames.|
|00000c90| 58 23 20 57 61 72 6e 73 | 20 61 62 6f 75 74 20 66 |X# Warns| about f|
|00000ca0| 69 6c 65 73 20 69 74 20 | 63 61 6e 6e 6f 74 20 6f |iles it |cannot o|
|00000cb0| 70 65 6e 2e 0a 58 23 20 | 4e 6f 20 77 61 72 6e 69 |pen..X# |No warni|
|00000cc0| 6e 67 73 20 61 62 6f 75 | 74 20 64 75 70 6c 69 63 |ngs abou|t duplic|
|00000cd0| 61 74 65 20 74 61 67 73 | 2e 0a 58 0a 58 69 6d 70 |ate tags|..X.Ximp|
|00000ce0| 6f 72 74 20 73 79 73 0a | 58 69 6d 70 6f 72 74 20 |ort sys.|Ximport |
|00000cf0| 72 65 67 65 78 70 0a 58 | 69 6d 70 6f 72 74 20 70 |regexp.X|import p|
|00000d00| 61 74 68 0a 58 0a 58 74 | 61 67 73 20 3d 20 5b 5d |ath.X.Xt|ags = []|
|00000d10| 09 23 20 4d 6f 64 69 66 | 69 65 64 20 67 6c 6f 62 |.# Modif|ied glob|
|00000d20| 61 6c 20 76 61 72 69 61 | 62 6c 65 21 0a 58 0a 58 |al varia|ble!.X.X|
|00000d30| 64 65 66 20 6d 61 69 6e | 28 29 3a 0a 58 09 61 72 |def main|():.X.ar|
|00000d40| 67 73 20 3d 20 73 79 73 | 2e 61 72 67 76 5b 31 3a |gs = sys|.argv[1:|
|00000d50| 5d 0a 58 09 66 6f 72 20 | 66 69 6c 65 20 69 6e 20 |].X.for |file in |
|00000d60| 61 72 67 73 3a 20 74 72 | 65 61 74 5f 66 69 6c 65 |args: tr|eat_file|
|00000d70| 28 66 69 6c 65 29 0a 58 | 09 69 66 20 74 61 67 73 |(file).X|.if tags|
|00000d80| 3a 0a 58 09 09 66 70 20 | 3d 20 6f 70 65 6e 28 27 |:.X..fp |= open('|
|00000d90| 74 61 67 73 27 2c 20 27 | 77 27 29 0a 58 09 09 74 |tags', '|w').X..t|
|00000da0| 61 67 73 2e 73 6f 72 74 | 28 29 0a 58 09 09 66 6f |ags.sort|().X..fo|
|00000db0| 72 20 73 20 69 6e 20 74 | 61 67 73 3a 20 66 70 2e |r s in t|ags: fp.|
|00000dc0| 77 72 69 74 65 28 73 29 | 0a 58 0a 58 6d 61 74 63 |write(s)|.X.Xmatc|
|00000dd0| 68 65 72 20 3d 20 72 65 | 67 65 78 70 2e 63 6f 6d |her = re|gexp.com|
|00000de0| 70 69 6c 65 28 27 5e 5b | 20 5c 74 5d 2a 28 64 65 |pile('^[| \t]*(de|
|00000df0| 66 7c 63 6c 61 73 73 29 | 5b 20 5c 74 5d 2b 28 5b |f|class)|[ \t]+([|
|00000e00| 61 2d 7a 41 2d 5a 30 2d | 39 5f 5d 2b 29 5b 20 5c |a-zA-Z0-|9_]+)[ \|
|00000e10| 74 5d 2a 5c 28 27 29 0a | 58 0a 58 64 65 66 20 74 |t]*\(').|X.Xdef t|
|00000e20| 72 65 61 74 5f 66 69 6c | 65 28 66 69 6c 65 29 3a |reat_fil|e(file):|
|00000e30| 0a 58 09 74 72 79 3a 0a | 58 09 09 66 70 20 3d 20 |.X.try:.|X..fp = |
|00000e40| 6f 70 65 6e 28 66 69 6c | 65 2c 20 27 72 27 29 0a |open(fil|e, 'r').|
|00000e50| 58 09 65 78 63 65 70 74 | 3a 0a 58 09 09 70 72 69 |X.except|:.X..pri|
|00000e60| 6e 74 20 27 43 61 6e 6e | 6f 74 20 6f 70 65 6e 27 |nt 'Cann|ot open'|
|00000e70| 2c 20 66 69 6c 65 0a 58 | 09 09 72 65 74 75 72 6e |, file.X|..return|
|00000e80| 0a 58 09 62 61 73 65 20 | 3d 20 70 61 74 68 2e 62 |.X.base |= path.b|
|00000e90| 61 73 65 6e 61 6d 65 28 | 66 69 6c 65 29 0a 58 09 |asename(|file).X.|
|00000ea0| 69 66 20 62 61 73 65 5b | 2d 33 3a 5d 20 3d 20 27 |if base[|-3:] = '|
|00000eb0| 2e 70 79 27 3a 20 62 61 | 73 65 20 3d 20 62 61 73 |.py': ba|se = bas|
|00000ec0| 65 5b 3a 2d 33 5d 0a 58 | 09 73 20 3d 20 62 61 73 |e[:-3].X|.s = bas|
|00000ed0| 65 20 2b 20 27 5c 74 27 | 20 2b 20 66 69 6c 65 20 |e + '\t'| + file |
|00000ee0| 2b 20 27 5c 74 27 20 2b | 20 27 31 5c 6e 27 0a 58 |+ '\t' +| '1\n'.X|
|00000ef0| 09 74 61 67 73 2e 61 70 | 70 65 6e 64 28 73 29 0a |.tags.ap|pend(s).|
|00000f00| 58 09 77 68 69 6c 65 20 | 31 3a 0a 58 09 09 6c 69 |X.while |1:.X..li|
|00000f10| 6e 65 20 3d 20 66 70 2e | 72 65 61 64 6c 69 6e 65 |ne = fp.|readline|
|00000f20| 28 29 0a 58 09 09 69 66 | 20 6e 6f 74 20 6c 69 6e |().X..if| not lin|
|00000f30| 65 3a 20 62 72 65 61 6b | 0a 58 09 09 72 65 73 20 |e: break|.X..res |
|00000f40| 3d 20 6d 61 74 63 68 65 | 72 2e 65 78 65 63 28 6c |= matche|r.exec(l|
|00000f50| 69 6e 65 29 0a 58 09 09 | 69 66 20 72 65 73 3a 0a |ine).X..|if res:.|
|00000f60| 58 09 09 09 28 61 2c 20 | 62 29 2c 20 28 61 31 2c |X...(a, |b), (a1,|
|00000f70| 20 62 31 29 2c 20 28 61 | 32 2c 20 62 32 29 20 3d | b1), (a|2, b2) =|
|00000f80| 20 72 65 73 0a 58 09 09 | 09 6e 61 6d 65 20 3d 20 | res.X..|.name = |
|00000f90| 6c 69 6e 65 5b 61 32 3a | 62 32 5d 0a 58 09 09 09 |line[a2:|b2].X...|
|00000fa0| 73 20 3d 20 6e 61 6d 65 | 20 2b 20 27 5c 74 27 20 |s = name| + '\t' |
|00000fb0| 2b 20 66 69 6c 65 20 2b | 20 27 5c 74 2f 5e 27 20 |+ file +| '\t/^' |
|00000fc0| 2b 20 6c 69 6e 65 5b 61 | 3a 62 5d 20 2b 20 27 2f |+ line[a|:b] + '/|
|00000fd0| 5c 6e 27 0a 58 09 09 09 | 74 61 67 73 2e 61 70 70 |\n'.X...|tags.app|
|00000fe0| 65 6e 64 28 73 29 0a 58 | 0a 58 6d 61 69 6e 28 29 |end(s).X|.Xmain()|
|00000ff0| 0a 45 4e 44 5f 4f 46 5f | 46 49 4c 45 0a 69 66 20 |.END_OF_|FILE.if |
|00001000| 74 65 73 74 20 31 30 31 | 33 20 2d 6e 65 20 60 77 |test 101|3 -ne `w|
|00001010| 63 20 2d 63 20 3c 27 70 | 74 61 67 73 2e 70 79 27 |c -c <'p|tags.py'|
|00001020| 60 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f |`; then.| echo|
|00001030| 20 73 68 61 72 3a 20 5c | 22 27 70 74 61 67 73 2e | shar: \|"'ptags.|
|00001040| 70 79 27 5c 22 20 75 6e | 70 61 63 6b 65 64 20 77 |py'\" un|packed w|
|00001050| 69 74 68 20 77 72 6f 6e | 67 20 73 69 7a 65 21 0a |ith wron|g size!.|
|00001060| 66 69 0a 63 68 6d 6f 64 | 20 2b 78 20 27 70 74 61 |fi.chmod| +x 'pta|
|00001070| 67 73 2e 70 79 27 0a 23 | 20 65 6e 64 20 6f 66 20 |gs.py'.#| end of |
|00001080| 27 70 74 61 67 73 2e 70 | 79 27 0a 66 69 0a 65 63 |'ptags.p|y'.fi.ec|
|00001090| 68 6f 20 73 68 61 72 3a | 20 45 6e 64 20 6f 66 20 |ho shar:| End of |
|000010a0| 73 68 65 6c 6c 20 61 72 | 63 68 69 76 65 2e 0a 65 |shell ar|chive..e|
|000010b0| 78 69 74 20 30 0a | |xit 0. | |
+--------+-------------------------+-------------------------+--------+--------+