If you are talking about writing your own prefix commands, the following is an example:
PREFIXCD XEDIT Y2
/* CCD - COPY BLOCK OF LINES TO AN EXTERNAL CMS FILE */
/* THEY CAN THEN BE BROUGHT IN TO THE SAME OR */
/* OTHER XEDIT FILES AT A LATER TIME */
/* */
/* TOM DUERBUSCH - THD CONSULTING */
/* 6/18/93 */
/* */
ARG PREFIX OPERAND PLINE OP REST
PARSE SOURCE . . . . . NAME .
PRF=NAME||SPACE(OP REST)
'COMMAND PRESERVE'
'COMMAND SET STAY ON'
'SET CMSTYPE HT'
'COMMAND ERASE STACK XEDIT A'
'SET CMSTYPE RT'
SELECT
WHEN LENGTH(NAME) = 2 THEN /* NO BLOCK GROUP */
DO
'COMMAND EXTRACT /LINE/'
':'PLINE
'PUT 1 STACK XEDIT A'
END
WHEN LENGTH(NAME) = 3 THEN /* BLOCK GROUP */
DO
/* LOOK FOR THIS PREFIX COMMAND PRIOR TO THIS ONE */
DO FSD = 0 TO PLINE UNTIL RC ¬= 2
'COMMAND EXTRACT /PENDING BLOCK' NAME ':'FSD ':'PLINE '/'
END
SELECT
WHEN PENDING.0 ¬= 0 THEN /* WE HAVE ENDED THE PREFIX BLOCK
*
DO
'COMMAND :'PENDING.1 'COMMAND SET PENDING OFF'
RANGE = PLINE - PENDING.1
SELECT
WHEN RANGE > 0 THEN RANGE = RANGE +1
WHEN RANGE < 0 THEN RANGE = RANGE -1
OTHERWISE NOP
END
'COMMAND LOCATE :'PENDING.1
'PUT ' RANGE ' STACK XEDIT A'
END
OTHERWISE /* THIS IS A START OF A PREFIX BLOCK */
DO
'COMMAND :'PLINE
'COMMAND SET PENDING BLOCK' LEFT(PRF,5)
END
END
OTHERWISE NOP
END
'COMMAND RESTORE'
RETURN
and then add to the profile xedit:
/* FOLLOWING ARE THD CREATED PREFIX COMMANDS */
SET 'PREFIX SYNONYM CD PREFIXCD'
SET 'PREFIX SYNONYM CCD PREFIXCD'
SET 'PREFIX SYNONYM MD PREFIXMD'
SET 'PREFIX SYNONYM MMD PREFIXMD'
SET 'PREFIX SYNONYM G PREFIXG'
Tom Duerbusch
THD Consulting
>>> "Schuh, Richard" <[email protected]> 3/18/2009 3:45 PM >>>
Is there any way to access the prefix area of a line from an XEDIT
Macro? I see nothing in the EXTRACT command. Am I missing something
there? Is there some other way to access it?
Regards,
Richard Schuh
