Annotation of researchv9/cmd/emacs/macros/cc_list, revision 1.1

1.1     ! root        1: L    Compiler and list interface (arg>1 file list), (arg<1 manual pages)
        !             2: 
        !             3: C. Douglas Blewett (MH3-C-319) Version 4
        !             4: 
        !             5: Interface routines
        !             6: 
        !             7:       ^XL     - the main mono-lith - controls editing
        !             8:                       lists of files
        !             9:       ^X^@    - Creates a stored "default" command
        !            10:                       - like  make or cc -o ...
        !            11:       ^X^_    - "default" command - returns the command
        !            12:                       on the kill stack
        !            13: 
        !            14: Compiler and list interface routine.  This routine, ^XL,
        !            15: prompts for a compiler command (i.e. cc or make), runs it,
        !            16: and catches the output.  If line numbers are present in
        !            17: the output, the routine will position to the correct line.
        !            18: Three formats can be handled by this routine.
        !            19: 
        !            20:       "filename.c", line 23: etc.
        !            21:               or
        !            22:       filename.c: 23: etc.
        !            23:               or
        !            24:       filename.c
        !            25: 
        !            26: The last format is typical ls stuff.
        !            27: 
        !            28: ^XL with an argument < 1 the routine prompts for a manual
        !            29: page specification and searches the known directories for
        !            30: manual pages.
        !            31: 
        !            32: ^XL with an argument > 1 the routine prompts for a file
        !            33: specification and searches using an "ls -d file_spec"
        !            34: 
        !            35: SPECIAL STUFF FOR DEFAULT COMMANDS: WARNING creates a
        !            36: new routine.
        !            37: 
        !            38: This routine, ^XL, when used as a compiler interface
        !            39: calls ^X^_ to detemine what command to issue.  ^X^_
        !            40: can be setup to return a default command (rather than
        !            41: prompting the user) by running the ^X^@ command.  ^X^@
        !            42: actually creates a new macro for ^X^_.  It isn't LISP,
        !            43: but it works.
        !            44: 
        !            45: The compiler interface (arg == 1) reads files in using
        !            46: ^X^F.  No attempt is made to garbage collect buffers.
        !            47: This does not pose a real problem, because emacs places
        !            48: the user in the buffer .list when this happens.  At that
        !            49: point the user can use ^X^K to remove un-needed buffers.
        !            50: ^X^F is used instead of ^X^R because it is very likely
        !            51: with compiles that the user already has the file in a
        !            52: buffer and may want to keep it there (and current).
        !            53: 
        !            54: The list (arg > 1) and manual page (arg < 1) facility
        !            55: use the buffer .list to read files using ^X^R.  These
        !            56: routines more or less automatically garbage collect
        !            57: buffer space.
        !            58: 
        !            59: 1
        !            60: 2�1                                TRUE = 1
        !            61: ^�4~20                Loop forever through execute requests
        !            62:        2�0
        !            63:        B                             Get the stored or interactive string
        !            64:        |�                    Check for man
        !            65:                �2~1     Arg < 1 manual pages list
        !            66:                        <List of manual pages ? 
        !            67:                �
        !            68:                �3~1     Arg > 1 ls -d of files list
        !            69:                        <List of files ? 
        !            70:                �
        !            71:                �                              Arg == 1 compiler list
        !            72:                        
        !            73:                �
        !            74:        �
        !            75:        0><
        !            76:        |�                            Input Conditional
        !            77:                �&                    Check for Null string
        !            78:                        -<
        !            79:                        �0          Zero == FALSE
        !            80:                �                              Null Check End
        !            81:                �                              Default
        !            82:                        <.exec
        !            83:                                                             Move to .exec
        !            84:                        6�0=7�1=         Current pos.
        !            85:                        8�0=9�1=     Save the mark
        !            86:                        �                           Meta Moon
        !            87:                        5�0=                                Save the eoB
        !            88:                        |�                            Check for man
        !            89:                                �3~1     Arg > 1 ls list
        !            90:                                        exec /bin/ls -d 
        !            91:                                        <usilent
        !            92:                                        �

        !            93:                                �
        !            94:                                �2~1     Arg < 1 manual list
        !            95: exec ls -d /usr/man/man?/.* /usr/man/local/man?/.*
        !            96:                                        <usilent
        !            97:                                        �

        !            98:                                �
        !            99:                                � 
        !           100:                                        
        !           101:                                �
        !           102:                        �
        !           103:                        -&�                 Execute the command
        !           104:                        |�
        !           105:                                �4~1     Arg != 1 ls list
        !           106:                                        <usilent
        !           107:                                        

        !           108:                                        �1  TRUE = 1
        !           109:                                �
        !           110:                                � 
        !           111: !�-<List: Enter "e" to edit the list, "x" to re-eXecute, or Press Return to Quit
        !           112:                                        �s             Shell escape
        !           113:                                                s
        !           114:                                                2�0
        !           115:                                                �0  Zero == FALSE
        !           116:                                        �
        !           117:                                        �x             Execute
        !           118:                                                2�1
        !           119:                                                �0  Zero == FALSE
        !           120:                                        �
        !           121:                                        �e             Edit
        !           122:                                                �1  TRUE = 1
        !           123:                                        �
        !           124:                                        ��     Quit
        !           125:                                                �0  Zero == FALSE
        !           126:                                                2�0
        !           127:                                        �
        !           128:                                �                              Edit End
        !           129:                                �
        !           130:                        �
        !           131:                        |�                    Check for Edit
        !           132:                                �4~1
        !           133:                                        5�-��-6�7�
        !           134:                                        8�9     Reset point 
        !           135:                                        
        !           136:                                �
        !           137:                                � 
        !           138:                        5�&
        !           139:                        <:
        !           140:                        |�                    Fix up plain lists
        !           141:                                ��
        !           142:                                �
        !           143:                                � 
        !           144:                                        �
        !           145:                                        3�11~53
        !           146:                                        ^�5~0=3
        !           147:                                                : 1:
        !           148:                                                
        !           149:                                        �
        !           150:                                �
        !           151:                        �
        !           152:                        <.list
        !           153:                        2                             Begin processing
        !           154:                        5�&
        !           155:                        �_LIST_EDIT
        !           156:                        ^�4~0
        !           157:                                &<:
        !           158:                                ^��          Loop through filenames
        !           159:                                        &
        !           160:                                        0<Wait
        !           161:                                        0
        !           162:                                        &    Type of error message
        !           163:                                        <"
        !           164:                                        |�
        !           165:                                                �&    Standard
        !           166:                                                        �<"
        !           167:                                                        �
        !           168:                                                �
        !           169:                                                �              Pre-processor?
        !           170:                                                        �<:
        !           171:                                                        �
        !           172:                                                �
        !           173:                                        �
        !           174:                                        
        !           175:                                        <:
        !           176:                                        ���        Get the Number
        !           177:                                        - 3�0
        !           178:                                        ^�  Warren's TO_DECIMAL
        !           179: 3�11~13~10312~�0        Next digit
        !           180:                                                -
        !           181:                                        �
        !           182:                                        -
        !           183:                                        &
        !           184:                                        1
        !           185:                                        <.exec
        !           186:                                        
        !           187:                                        <.list
        !           188:                                        2
        !           189:        |�
        !           190:                �3~33600
        !           191:                        3�0
        !           192:                �
        !           193:        �
        !           194:        |�
        !           195:                �5~31
        !           196:                        |�
        !           197:                                �4~1
        !           198:                                             Lists
        !           199:                                �
        !           200:                                � 
        !           201:                                             Compiles
        !           202:                                �
        !           203:                        �
        !           204:                        �3�  Go to the line
        !           205: 0<Editing a List: Enter ^Z to move to the next entry
        !           206:                        0   Print "List"
        !           207:                                     Edit the file
        !           208:                �
        !           209:                � 
        !           210:                        -
        !           211: 0<Line number less than 1 or greater than 3600
        !           212:                        2
        !           213:                        <.exec
        !           214:                        
        !           215:                        
        !           216:                �
        !           217:        �
        !           218:                                        1
        !           219:                                        <.exec
        !           220:                                        
        !           221:                                        <.list
        !           222:                                        2
        !           223:                                                     Move back
        !           224:                                        &
        !           225:                                        �_LIST_EDIT
        !           226:                                        &<:
        !           227:                                �
        !           228:                                5�&�0
        !           229: !�-<End of List: Enter "r" to Rewind, "x" to re-eXecute, or Press Return to Quit
        !           230:                                        �r             Rewind
        !           231:                                                0<Rewinding
        !           232:                                                0
        !           233:                                                �_LIST_EDIT
        !           234:                                        �
        !           235:                                        �s             Shell escape
        !           236:                                                s
        !           237:                                                �_LIST_EDIT
        !           238:                                        �
        !           239:                                        �x             Execute
        !           240:                                                2�1
        !           241:                                                �0  Zero == FALSE
        !           242:                                        �
        !           243:                                        ��     Quit
        !           244:                                                �0  Zero == FALSE
        !           245:                                        �
        !           246:                                �                              Rewind End
        !           247:                        �                              Forever End
        !           248:                        5�-��-6�7�
        !           249:                        8�9     Reset point and mark
        !           250:                                     Cleanup and Move back
        !           251:                        <.list
        !           252:                        
        !           253:                        �
        !           254:                �
        !           255:                �                              Default End
        !           256:        �                              Input Conditional End
        !           257: �
        !           258: 0<
        !           259: 0          Cleanup of messages
        !           260: 
        !           261: _LIST_EDIT
        !           262:        �
        !           263:        0
        !           264:        0<Move the cursor to the line of interest and enter ^Z
        !           265:        
        !           266: 
        !           267:             Setup a stored command for the ^XL command
        !           268: 
        !           269: This routine contructs a new ^X^_ routine.  This allows the ^XL routine
        !           270: to use a standard default - this is very helpful for repeated compiles.
        !           271: If this routine, ^X^@, is given a null line no string is stored.  Instead
        !           272: the new routine will prompt for the input string.
        !           273: 
        !           274:        B<Command to be Stored (e.g. cc file.c, make, or ls) ? 
        !           275:        0>
        !           276:        <
        !           277:        |�
        !           278:                �&
        !           279:                        -
        !           280:                        <...
        !           281:                                     Insert the program ^X^_
        !           282:                        034�Compile_command_string012�
        !           283: <Command (e.g. cc file.c, make, or ls) ?012� 
        !           284:                        032�
        !           285:                        012�
        !           286:                �
        !           287:                � 
        !           288:                        <...
        !           289:                                     Insert the program ^X^_
        !           290:                        034�Compile_command_string012�
        !           291:                        B<.exec012�012�
        !           292:                        &--%032�
        !           293:                        012�
        !           294:                        -�
        !           295:                        <[   ]
        !           296:                        ^��
        !           297:                                021�
        !           298:                                <[   ]
        !           299:                        �
        !           300:                �
        !           301:        �                              Null Check End
        !           302:        dB%
        !           303: 
        !           304:             Default string routine for ^XC
        !           305: 
        !           306: This routine is re-constructed when ^X^@ is run
        !           307: 
        !           308:        <Command (e.g. cc file.c, make, or ls) ?
        !           309: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.