/usr/share/THE/comm.the is in the 3.3~rc1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | /*
$Id: comm.the,v 1.2 2001/01/04 09:40:03 mark Exp $
*/
/***********************************************************************/
/* Description: REXX macro to comment lines. */
/* Syntax: comm [target] */
/* Notes: This macro will comment lines based on the file */
/* type or file name as per below: */
/* .c - /* */ */
/* .h - /* */ */
/* .rex - /* */ */
/* .rexx - /* */ */
/* .pas - (* *) */
/* .asm - ; */
/* .htm - <!-- --> */
/* .html - <!-- --> */
/* makefile - # */
/* Makefile - # */
/* Full XEDIT/KEDIT/THE targets are supported. */
/***********************************************************************/
Trace o
arg1 = Arg(1)
noargs = Arg()
If noargs = 0 Then arg1 = '1' /* no args - assume 1 line */
forward = 1 /* assume direction is forward by default */
'EXTRACT /LINE/SIZE/STAY/FTYPE/FNAME/LINEND' /* get various stuff */
current_line = line.1 /* save current line for later */
reply = valid_target(arg1) /* validate supplied target */
If reply = 'ERROR' Then
Do
'EMSG Error 0017: Invalid target' arg1
Exit
End
If reply = 'NOTFOUND' Then
Do
'EMSG Error 0017: Target not found' arg1
Exit
End
'preserve'
start_line = Word(reply,1) /* get starting line */
nolines = Word(reply,2) /* get number of lines */
If nolines < 0 Then Do /* if target before current line */
forward = 0 /* indicate direction to be backward */
nolines = nolines * -1 /* make nolines positive */
End
If fname.1 = 'makefile' | fname.1 = 'Makefile' Then 'SET LINEND OFF'
':'||start_line /* go to first line */
totlines = 0 /* reset changed line counter */
Do nolines /* for each line to target ... */
'EXTRACT /CURLINE/' /* get current line contents, etc.*/
If focustof(), /* ignore line if on TOF or EOF */
| focuseof() Then nop
Else
Do
Select /* add comment characters to current line */
When ftype.1 = 'c' Then 'REPLACE' '/*'||curline.3||'*/'
When ftype.1 = 'h' Then 'REPLACE' '/*'||curline.3||'*/'
When ftype.1 = 'rex' Then 'REPLACE' '/*'||curline.3||'*/'
When ftype.1 = 'rexx' Then 'REPLACE' '/*'||curline.3||'*/'
When ftype.1 = 'pas' Then 'REPLACE' '(*'||curline.3||'*)'
When ftype.1 = 'asm' Then 'REPLACE' ';'||curline.3
When ftype.1 = 'sql' Then 'REPLACE' 'rem '||curline.3
When ftype.1 = 'for' Then 'REPLACE' 'C '||curline.3
When ftype.1 = 'htm' Then 'REPLACE' '<!--' curline.3 '-->'
When ftype.1 = 'html' Then 'REPLACE' '<!--' curline.3 '-->'
When fname.1 = 'makefile' Then 'REPLACE' '#'||curline.3
When fname.1 = 'Makefile' Then 'REPLACE' '#'||curline.3
Otherwise 'REPLACE' '/*'||curline.3||'*/'
End
totlines = totlines + 1
End
If forward = 1 Then 'N' /* if going forward, get next line */
Else 'U' /* if going backwards, get previous line */
If rc \= 0 Then Leave /* shouldn't get here */
End
If fname.1 = 'makefile' | fname.1 = 'Makefile' Then 'SET LINEND' linend.1 linend.2
'EMSG' totlines 'lines commented' /* say how many lines changed */
If stay.1 = 'ON' Then ':'||current_line
'restore'
Return /* go back to THE */
|