home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / e / epmmac2.zip / STDCNF.E < prev    next >
Text File  |  1992-12-19  |  59KB  |  1,560 lines

  1. /* New way to configure E. In response to the requests of many users, we have
  2.    changed things so that it is no longer required that you modify this file
  3.    in order to reconfigure E. An optional MYCNF file is included before this
  4.    one.  There are three sections to this file, setting different types of
  5.    defaults, and each can be overridden in the MYCNF.E file.  The first
  6.    section, most of which doesn't apply to EPM, contains SET statements.  The
  7.    second section defines constants, and the third section initializes various
  8.    global variables.  To override the first section, you simply include the
  9.    appropriate SET statement in your MYCNF.  The ones here are commented out,
  10.    and exist just to document the defaults.
  11.  
  12.    To override the second section, simply define the constants.
  13.  
  14.    To override the third section, define a MY_variablename set to the
  15.    desired value.  Examples of each follow:
  16.  
  17.  
  18.       set insert_state 0           -- I prefer to have insert initially off
  19.     compile if EVERSION < 5   -- Setup customization for E3 and EOS2, not EPM.
  20.       set coms  1 'c:\e3\'
  21.     compile endif
  22.  
  23.     const         -- Second section.  Predefine preferred constants.
  24.        ENTER_ACTION   = 'ADDATEND'
  25.        C_ENTER_ACTION = 'ADDLINE'
  26.  
  27.     define        -- Third section.  Override DEFINIT initializations.
  28.        my_messy = 1        -- I'd rather have MESSY set to 1.
  29.  
  30.     The above is a little more complicated than the old way; the advantage
  31.     is that when a new STDCNF comes out, you don't have to modify it to
  32.     contain your personalized definitions, but you still get anything that
  33.     might have been added to it since the previous release.
  34.  
  35.     Reminder:  To have these changes take effect, you must recompile your
  36.     main .ex file.  Enter 'ET E', 'ET SMALL', or 'ET EPM', as appropriate.
  37.  
  38. */
  39.  
  40. /* The following are the default settings.  Most don't apply to EPM.
  41.  
  42. -- Change in EOS2:  We no longer differentiate by color vs. mono display type,
  43. -- but by whether the character cell is low- or high-resolution.
  44. --    LOW -RESOLUTION = a CGA or an EGA/VGA with 43 or more rows.
  45. --    HIGH-RESOLUTION = a monochrome or an EGA/VGA with <43 rows.
  46. -- The minimum top scan line is 0.  (Scan lines are numbered from the top.)
  47. -- The maximum bottom scan line is 7 in low resolution, 13 or more in high.
  48. set cursors
  49.   3  7   -- insert -mode cursor size for low -res (EOS2) / color (E3) display
  50.   6  7   -- replace-mode cursor size for low -res (EOS2) / color (E3) display
  51.   6  12  -- insert -mode cursor size for high-res (EOS2) / mono  (E3) display
  52.   11 13  -- replace-mode cursor size for high-res (EOS2) / mono  (E3) display
  53.  
  54. set insert_state 1      -- (EPM recognizes this one.)
  55.                         -- Default insert state at startup, 1=on, 0=off
  56.  
  57. set coms  0 ''
  58.                         -- If you want your command stack saved between runs,
  59.                         --   enter 1 and a path.  For example:
  60.                         --      set coms 1 'C:\EDIT\'
  61.                         --   Don't forget the trailing backslash on path!
  62.  
  63.  
  64. ; SET EOF 1 means:  When saving a file, append an EOF marker (the end-of-file
  65. ; character, x'1A').  When loading a file, treat any CR-LF-EOF sequence as the
  66. ; end of the file and stop loading.  This is the normal treatment many older
  67. ; programs expect the EOF marker, and some (like REXX) will store uneditable
  68. ; data after the final EOF.
  69. ;
  70. ; SET EOF 0 means:  Do not add an EOF when saving.  Do not stop loading at
  71. ; a CR-LF-EOF sequence.  (An EOF as the very last byte of a file will still
  72. ; be discarded when loading.)  This treatment is new in version 4.04.
  73. ;
  74. set eof 1                        -- (EPM supports this, also.)
  75.  
  76.  
  77. ; Specifies on which row of the screen the initial logo/copyright message
  78. ; is displayed.  Default is 1, top of screen.  (EOS2 only.)
  79. set logo 1 ''
  80.  
  81.  . . . . End of sample SET statements. . . .     */
  82. -------------------------------------------------------------------------------
  83.  
  84. const
  85. ; Ver.3.10/4.03:  we no longer need to declare EVERSION here; it's a predefined
  86. ; constant.  You can use it as if we'd said:
  87. ;    const EVERSION='3.12'   (if E3)
  88. ;    const EVERSION='4.13'   (if EOS2)
  89. ;    const EVERSION='5.15'   (if EPM)
  90.  
  91. compile if not defined(NLS_LANGUAGE)
  92.   NLS_LANGUAGE = 'ENGLISH'
  93. compile endif
  94.  
  95. compile if not defined(TEMP_FILENAME)
  96. TEMP_FILENAME= 'e.tmp'
  97. compile endif
  98.                         -- Define a TEMP_PATH as well as a TEMP_FILENAME
  99.                         --   Typically put this on a VDISK, like 'D:\e.tmp'.
  100. compile if not defined(TEMP_PATH)
  101. TEMP_PATH=''
  102. compile endif
  103.                         -- Some applications (external sorts)
  104.                         --   need to create more than one temp file.
  105.                         --   Suggestions:  put on a VDISK.
  106.                         --   Typical 'D:\'.  Don't forget last backslash.
  107. compile if not defined(AUTOSAVE_PATH)
  108. AUTOSAVE_PATH=''
  109. compile endif
  110.                         -- Allow a separate directory for autosaved files.
  111.                         --   Don't put this one on a VDISK.
  112.                         --   Don't forget last backslash.
  113.  
  114. -- Set this to a nonzero number if you wish autosave to be turned on
  115. -- automatically for all files.  In EPM this is the number of changes to the
  116. -- file, not the number of Enter keys, so we prefer a higher value.
  117. -- You can set this to 0 if you don't want autosave all the time, and turn it
  118. -- on when desired with the 'autosave' command.
  119. compile if not defined(DEFAULT_AUTOSAVE)
  120.  compile if E3
  121. DEFAULT_AUTOSAVE = 0
  122.  compile elseif EVERSION >= '5.20'  -- Full undo means more frequent changes
  123. DEFAULT_AUTOSAVE = 100
  124.  compile elseif EPM
  125. DEFAULT_AUTOSAVE = 40
  126.  compile else
  127. DEFAULT_AUTOSAVE = 20
  128.  compile endif
  129. compile endif
  130.  
  131. -- jbl 1/89 new feature.  Set this to some non-blank directory name if you want
  132. -- a backup copy of your file upon saving.  E will copy the previous file
  133. -- to this directory before writing the new one.  Typical values are:
  134. --    ''             empty string to disable this feature (as in old E)
  135. --    '.\'           for current directory (don't forget the last backslash)
  136. --    'C:\OLDFILES\' to put them all in one place
  137. compile if not defined(BACKUP_PATH)
  138. BACKUP_PATH = ''
  139. compile endif
  140.  
  141.  
  142. compile if not defined(HELPFILENAME)
  143.  compile if EVERSION < 5
  144.   HELPFILENAME='ehelp.hlp'
  145.  compile else
  146.   HELPFILENAME='epmhelp.qhl'
  147.  compile endif
  148. compile endif
  149.                         -- Set help filename
  150. compile if not defined(EPATH)
  151.   compile if EPM    -- EPM uses a different name, for easier coexistance
  152. EPATH= 'epmpath'
  153.   compile else
  154. EPATH= 'epath'
  155.   compile endif
  156. compile endif
  157.                         -- Set environment variable name
  158. compile if not defined(MAINFILE)
  159.  compile if EVERSION < 5
  160.   MAINFILE= 'e.e'
  161.  compile else
  162.   MAINFILE= 'epm.e'
  163.  compile endif
  164. compile endif
  165.                         -- Set main file for the ET compilation command
  166. compile if not defined(WANT_ET_COMMAND)
  167. WANT_ET_COMMAND = 1
  168. compile endif
  169.                         -- Ver. 3.09 - Lets user omit ET command.
  170. compile if not defined(WANT_CHAR_OPS)
  171. WANT_CHAR_OPS = 1
  172. compile endif
  173.                         -- Ver. 3.09 - Lets user omit macro support for
  174.                         -- character marks.
  175.  
  176. -- 4.10:  We removed the warning about 'constants must be specified in upper
  177. -- case'.  No longer necessary.
  178.  
  179. -- This constant tells the compiler which host-support method
  180. -- to include.  Only modify the first copy.  Typical values are:
  181. --   'STD'  uses the original E3 method (mytecopy, etc.).
  182. --   'EMUL' uses Brian Tucker's E3EMUL package.  Download it separately.
  183. --   'PDQ'  uses the E3PDQ package.  Download it separately.
  184. --   'SRPI' uses SLSRPI.E, part of the LaMail package.
  185. --   ''     loads no host-file support at all.
  186. compile if not defined(HOST_SUPPORT)
  187.  compile if not SMALL
  188.    HOST_SUPPORT = 'STD'
  189.  compile else
  190.    HOST_SUPPORT = ''      -- Do not change this!!  Only the previous one.
  191.  compile endif
  192. compile endif
  193.  
  194. -- If you're tight on space in the .ex file, you can now have the host support
  195. -- routines linked in at run time.  Currently only supported for E3EMUL and
  196. -- SLSRPI.  Set HOST_SUPPORT='EMUL' (or 'SRPI'), LINK_HOST_SUPPORT=1, compile
  197. -- your base macros (E or EPM) and also compile E3EMUL (or SLSRPI).  Warning:
  198. -- you'll have to remember to recompile the host support .ex file whenever you
  199. -- make a change to your MYCNF.E that affects it, and whenever a new version of
  200. -- the editor comes out that doesn't accept your current level of .ex file.
  201. compile if not defined(LINK_HOST_SUPPORT)
  202.    LINK_HOST_SUPPORT = 0
  203. compile endif
  204.  
  205. compile if LINK_HOST_SUPPORT & E3
  206.    *** Error - LINK_HOST_SUPPORT not permitted for E3.
  207. compile endif
  208.  
  209. compile if HOST_SUPPORT = 'PDQ'
  210. -- The PDQ support uses a subset of the DOS procedures found in Bryan
  211. -- Lewis' DOS.E.  If you include DOS.E in MYSTUFF.E, then set the following
  212. -- constant to 1.
  213.  compile if not defined(HAVE_DOS)
  214. HAVE_DOS = 0
  215.  compile endif
  216.  
  217. -- The PDQ support will optionally poll the host and see if anyone has sent
  218. -- you a message.  If so, it will pop up a window and display the messages.
  219. -- To enable this, set the following constant to 1.
  220.  compile if not defined(PDQ_MSG)
  221. PDQ_MSG = 1
  222.  compile endif
  223. compile endif
  224.  
  225. -- These constants specify what actions should be taken for the
  226. -- Enter and C_Enter keys.  Possible values for ENTER_ACTION are:
  227. --    'ADDLINE'   Insert a line after the current line.
  228. --    'NEXTLINE'  Move to the next line without inserting a line.
  229. --    'ADDATEND'  ADDLINE if on last line, else NEXTLINE.
  230. --    'DEPENDS'   ADDLINE if in insert_mode, else NEXTLINE.
  231. --    'DEPENDS+'  ADDLINE if on last line, else DEPENDS.
  232. --    'STREAM'    Act like stream editors; Enter splits a line.
  233. --    ''          Don't define; user will supply a routine (in MYSTUFF.E).
  234. -- Possible values for C_ENTER_ACTION are the same, except that the action
  235. -- taken for DEPENDS is reversed.  If ENTER_ACTION='STREAM', some other key
  236. -- definitions are modified also - Delete past the end of a line, or Backspace
  237. -- in column 1 will join the two lines as if it had deleted a CR/LF; Left and
  238. -- Right will wrap from line to line.  Setting C_ENTER_ACTION='STREAM' doesn't
  239. -- affect these other keys.
  240. compile if not defined(ENTER_ACTION)
  241. ENTER_ACTION   = 'ADDLINE'
  242. compile endif
  243. compile if not defined(C_ENTER_ACTION)
  244. C_ENTER_ACTION = 'NEXTLINE'
  245. compile endif
  246.  
  247. -- These constants specify which syntax-assist modules to include.
  248. compile if not defined(ALTERNATE_KEYSETS)
  249. ALTERNATE_KEYSETS = 1
  250. compile endif
  251.                         -- Master control for the following 3 and also
  252.                         -- MYSELECT and MYKEYSET.  If you don't use any of
  253.                         -- them, it makes SELECT.E much simpler.
  254.  
  255. compile if not defined(C_SYNTAX_ASSIST)
  256. C_SYNTAX_ASSIST = 1
  257. compile endif
  258.                         -- 1 means to include C assist, 0 means omit it.
  259. compile if not defined(USE_ANSI_C_NOTATION)
  260. USE_ANSI_C_NOTATION = 1
  261. compile endif
  262.                         -- 1 means use shorter ANSI C notation on MAIN.
  263. compile if not defined(C_TABS)
  264. C_TABS    = '3'
  265. compile endif
  266. compile if not defined(C_MARGINS)
  267. C_MARGINS = 1 MAXMARGIN 1
  268. compile endif
  269.  
  270. compile if not defined(E_SYNTAX_ASSIST)
  271. E_SYNTAX_ASSIST = 1
  272. compile endif
  273.                         -- Similarly for E, Rexx and Pascal support.
  274. compile if not defined(E_TABS)
  275. E_TABS    = '3'
  276. compile endif
  277. compile if not defined(E_MARGINS)
  278. E_MARGINS = 1 MAXMARGIN 1
  279. compile endif
  280.  
  281. compile if not defined(REXX_SYNTAX_ASSIST)
  282. REXX_SYNTAX_ASSIST = 0
  283. compile endif
  284. compile if not defined(REXX_TABS)
  285. REXX_TABS    = '3'
  286. compile endif
  287. compile if not defined(REXX_MARGINS)
  288. REXX_MARGINS = 1 MAXMARGIN 1
  289. compile endif
  290.  
  291. compile if not defined(P_SYNTAX_ASSIST)
  292. P_SYNTAX_ASSIST = 1
  293. compile endif
  294. compile if not defined(P_TABS)
  295. P_TABS    = '3'
  296. compile endif
  297. compile if not defined(P_MARGINS)
  298. P_MARGINS = 1 MAXMARGIN 1
  299. compile endif
  300.  
  301. -- Tab and margin settings for normal (not C/E/PAS) files.
  302. compile if not defined(DEFAULT_TABS)
  303. DEFAULT_TABS    = '8'
  304. compile endif
  305. compile if not defined(DEFAULT_MARGINS)
  306. DEFAULT_MARGINS = 1 MAXMARGIN 1
  307. compile endif
  308.  
  309.  
  310.  
  311. -- This constant tells the compiler which key should trigger the
  312. -- syntax-assist second expansion.  Choose either ENTER or C_ENTER.
  313. compile if not defined(ASSIST_TRIGGER)
  314. ASSIST_TRIGGER = 'ENTER'
  315. compile endif
  316.  
  317. -- Set this to the desired indentation if using syntax-assist.
  318. -- Normal values are 2, 3, 8.  Has no effect if not using assist.
  319. compile if not defined(SYNTAX_INDENT)
  320. SYNTAX_INDENT = 3
  321. compile endif
  322.  
  323. -- Set this to 1 if you like PE2's method of reflowing a paragraph -- moving
  324. -- the cursor to the next paragraph.
  325. compile if not defined(REFLOW_LIKE_PE)
  326. REFLOW_LIKE_PE = 0
  327. compile endif
  328.  
  329. -- Ver.3.09:  Set this to 1 if you want the FILE key to quit rather than
  330. -- save the file if the file was not modified.  Has the side effect that
  331. -- the Name command sets .modify to 1.
  332. compile if not defined(SMARTFILE)
  333. SMARTFILE = 0
  334. compile endif
  335.  
  336. -- Set this to 1 if you want the Save key to prompt you if the file was not
  337. -- modified.  the side effect that
  338. compile if not defined(SMARTSAVE)
  339. SMARTSAVE = 0
  340. compile endif
  341.  
  342. -- Set this to 1 if you want the QUIT key to let you press the FILE key if the
  343. -- file was modified.  You must also set the FILEKEY to be the key you use.
  344. -- NOTE:  This only affects the key accepted as meaning "File" when the QUIT
  345. -- key is pressed and the file has been modified.  If you want to use a
  346. -- different FILE key than the default, you still have to define it yourself in
  347. -- MYKEYS.E.  Also, SMARTQUIT doesn't apply to EPM.
  348. compile if not defined(SMARTQUIT)
  349. SMARTQUIT = 0
  350. compile endif
  351. compile if not defined(FILEKEY)
  352. FILEKEY   = 'F4'  -- Note:  Must be a string (in quotes).
  353. compile endif
  354.  
  355. -- This is used as the decimal point in MATH.E.  Some users might prefer to
  356. -- use a comma.  Not used in DOS version, which only allows integers.
  357. compile if EVERSION >= 4            -- OS/2 version - real numbers
  358.  compile if not defined(DECIMAL)
  359. DECIMAL = '.'
  360.  compile endif
  361. compile endif
  362.  
  363. compile if not defined(WANT_WINDOWS)
  364.  compile if EVERSION < 5
  365. -- 3.12:  Window support can be omitted completely, for those wanting a
  366. --         minimal-sized E.
  367. WANT_WINDOWS = 1
  368.  compile else
  369. WANT_WINDOWS = 0      -- Don't change.  No window support in EPM
  370.  compile endif
  371. compile endif
  372.  
  373. compile if WANT_WINDOWS
  374. -- Ver.3.09:  Set this to 1 for Jim Hurley-style windows - zoomed window
  375. -- in messy mode shows no box and respects window-style.
  376.  compile if not defined(JHwindow)
  377. JHwindow = 0
  378.  compile endif
  379. compile endif
  380.  
  381. -- This determines if DRAW.E will be included.  Set to 'F6'
  382. -- if you want it associated with that key; set to 1 if you want the DRAW
  383. -- command but no key set; set to 0 to have DRAW.E omitted completely.
  384. --
  385. -- Ver 4.02:  In EOS2 the Draw feature is not compiled into the base.  Draw
  386. -- is always available (as an external module) regardless of whether this
  387. -- constant is 0 or 1.  You should still set this to 'F6' if you want the key.
  388. compile if not defined(WANT_DRAW)
  389. WANT_DRAW = 'F6'
  390. compile endif
  391.  
  392. -- Ver.4.11:  Pick the name of the sort utility you prefer.  Choices are:
  393. --   ''    for none:  no sort command at all.
  394. --   'E'   for the standard internal (E-language) sort.  Good for small jobs,
  395. --         no external utility, no disk access.  Runs in OS/2 protect mode.
  396. --   'DLL' to use the quicksort dynamic link library.  Good for all jobs.
  397. --         This requires the QISRTMEM.DLL and QISRTSTB.DLL files
  398. --         to be placed in the LIBPATH.
  399. -- The rest require E3SORT PACKAGE....
  400. --   'F'   to use the external program FSORT.COM.
  401. --   'G'   to use the external program GSORT.COM.  Best for numeric columns.
  402. --   'GW'  to use the external program GWSORT.COM.  Recommended since it
  403. --         can handle files larger than available memory.
  404. --   'DOS' to use the external program SORT.EXE supplied with DOS or OS/2.
  405. --         Not recommended:  slowest, ignores upper/lower case.  But available
  406. --         in OS/2 protect mode.
  407. compile if not defined(SORT_TYPE)
  408.  compile if EVERSION >= '4.10'       -- OS/2 only version - use quicksort
  409.   SORT_TYPE = 'DLL'
  410.  compile else                        -- Use DOS-compatible internal sort
  411.   SORT_TYPE = 'E'
  412.  compile endif
  413. compile endif
  414.  
  415. -- Set this to 0 if you want the marked area left unmarked after the sort.
  416. compile if SORT_TYPE
  417.  compile if not defined(RESTORE_MARK_AFTER_SORT)
  418. RESTORE_MARK_AFTER_SORT = 1
  419.  compile endif
  420. compile endif
  421.  
  422. -- Ver.3.10:  Set this to 1 if you use the DOS 3.3 APPEND command.  Without
  423. -- this, if a file is found via APPEND, E3 will load it as if it were found
  424. -- in the current subdirectory.  If the file is then saved, the original file
  425. -- will not be updated, but a new file will be created in the current directory.
  426.  
  427. -- Ver.3.11:  Can be used even if you don't use the APPEND command; just set
  428. -- the APPEND variable to the path desired.
  429.  
  430. -- EOS2 4.02:  On OS/2 we'll search the DPATH for text files if this is 1.
  431. compile if not defined(USE_APPEND)
  432. USE_APPEND = 0
  433. compile endif
  434.  
  435. -- Ver.3.11:  SETSTAY determines which is to be the current line after a Change
  436. -- command.  If SETSTAY = 0, then the cursor will be positioned on the last
  437. -- occurrence of the string in the file.  If SETSTAY = 1, then the position of
  438. -- the cursor will not be changed.  If SETSTAY = '?', then a new command, STAY,
  439. -- will be added to let the user change this dynamically.  If SETSTAY='?' then
  440. -- STAY will be initialized in the next section.
  441. compile if not defined(SETSTAY)
  442. SETSTAY = 0
  443. compile endif
  444.  
  445. -- EOS2:  This constant enables a small DEFEXIT which keeps you in the editor
  446. -- after you've quit the last file.  See EXIT.E for details.
  447. compile if EVERSION >= '4.0' & EVERSION < 5
  448.  compile if not defined(ASK_BEFORE_LEAVING)
  449. ASK_BEFORE_LEAVING = 0
  450.  compile endif
  451. compile endif
  452.  
  453. -- Ver. 3.11d:  This constant lets the E3 user omit the SaveFileWithTabs
  454. -- routine in STDPROCS.E.
  455. compile if not defined(WANT_TABS)
  456. WANT_TABS = 1
  457. compile endif
  458.  
  459. -- Ver. 3.11d:  This constant lets the user specify where the cursor should
  460. -- be when starting E.  0 means in the file area, 1 means on the command line.
  461. -- (No effect if using EPM.)
  462. compile if not defined(CURSOR_ON_COMMAND)
  463. CURSOR_ON_COMMAND = 0
  464. compile endif
  465.  
  466. compile if EVERSION >= '4.11'    -- new in EOS2
  467.  compile if not defined(SHELL_USAGE)
  468. SHELL_USAGE = 1
  469.                          /* specifies whether the process window will be used.*/
  470.                          /* a process window allows the editor to view output */
  471.                          /* directed to the standard output device (stdout)   */
  472.                          /* as if it were directed into an editor file        */
  473.  compile endif
  474. compile endif
  475.  
  476. -- Ver. 3.12:  Lets you include the routine that searches a path for a file
  477. -- even if USE_APPEND = 0.  (If USE_APPEND = 1, this routine will be included
  478. -- automatically.)
  479. compile if not defined(WANT_SEARCH_PATH)
  480. WANT_SEARCH_PATH = 0
  481. compile endif
  482.  
  483. -- Ver. 3.12:  Lets you include the routine that gets the value of an
  484. -- environment variable even if USE_APPEND = 0. (If USE_APPEND = 1, this
  485. -- routine will be included automatically.)
  486. -- Ver. 4.12:  The default is 1 rather than 0; OS/2 users have more room.
  487. compile if not defined(WANT_GET_ENV)
  488.   compile if E3
  489. WANT_GET_ENV = 0
  490.   compile else
  491. WANT_GET_ENV = 1
  492.   compile endif
  493. compile endif
  494.  
  495. compile if EPM & EVERSION < '5.21'   -- status line configuration
  496.  compile if not defined(STATUS_TEMPLATE)
  497.   compile if EPATH = 'LAMPATH'
  498.    STATUS_TEMPLATE=   'Line %l of %s   Column %c  %i   %m   %f   LaMail 2.0'
  499.   compile else
  500.    STATUS_TEMPLATE=   'Line %l of %s   Column %c  %i   %m   %f   EPM 'EVERSION
  501.   compile endif
  502.    -- Template for status line.  %l = current line; %s = size of file,
  503.    -- %c = current column; %i = Insert/Replace; %m = Modified/<blank>
  504.    -- %z = character above cursor in decimal; %x = character above cursor in hex;
  505.    -- %f = 1 file/<n> files
  506.  compile endif
  507. compile endif
  508.  
  509. ;  We've provided three methods of showing the modified status.
  510. ;  1. The COLOR method changes the window color, for a very obvious indicator.
  511. ;  2. The FKTEXTCOLOR method changes the color of the bottom line of the
  512. ;     screen, for EOS2 only.
  513. ;  3. The TITLE method does one of two things.  For EOS2 it changes the color
  514. ;     of the filename.  For EPM it adds the string " (mod)" to the title bar.
  515. ;     This isn't as obvious as COLOR, but you can check it even when the file
  516. ;     is shrunk to an icon by clicking on the icon.
  517. compile if not defined(SHOW_MODIFY_METHOD)   -- If user didn't define in MYCNF,
  518.  compile if EVERSION < 5                     --    then if non-PM
  519.    SHOW_MODIFY_METHOD = 'TITLE'              --         change filename color
  520.  compile else                                --    if PM
  521.    SHOW_MODIFY_METHOD = ''                   --         change is on status line
  522.  compile endif
  523. compile endif
  524.  
  525. -- Lets you quit temporary files regardless of the state of the .modify bit.
  526. -- Temporary files are assumed to be any file where the first character of the
  527. -- .filename is a period.  If set to 1, you won't get the "Throw away changes?"
  528. -- prompt when trying to quit one of these files.
  529. compile if not defined(TRASH_TEMP_FILES)
  530. TRASH_TEMP_FILES = 0
  531. compile endif
  532.  
  533. -- Adds LOCK and UNLOCK commands.
  534. compile if EVERSION < 4 or not defined(WANT_LAN_SUPPORT)
  535. WANT_LAN_SUPPORT = 0
  536. compile endif
  537.  
  538. -- Include or omit the MATH routines.  Values are '?' meaning do a TRYINCLUDE
  539. -- (this is what we used to do), 1 meaning it's required, so do an INCLUDE, or
  540. -- 0 meaning it's not wanted, so don't try to include it at all.
  541. compile if not defined(WANT_MATH)
  542. WANT_MATH = '?'
  543. compile endif
  544.  
  545. -- Include the MATHLIB routines in the base .EX file.  Ignored for E3.  Default
  546. -- is 0 for OS/2 versions, which means that a separate MATHLIB.EX file is linked
  547. -- at runtime if any MATH commands are executed.  May be set to 1 if you have
  548. -- sufficient room in your EPM.EX file and don't want to maintain a MATHLIB.EX.
  549. -- Will be ignored if EXTRA_EX is 1.
  550. compile if not defined(INCLUDE_MATHLIB)
  551. INCLUDE_MATHLIB = 0
  552. compile endif
  553.  
  554. -- Include or omit the DOSUTIL routines.  Values are '?' meaning do a TRYINCLUDE
  555. -- (this is what we used to do), 1 meaning it's required, so do an INCLUDE, or
  556. -- 0 meaning it's not wanted, so don't try to include it at all.
  557. -- Note that Use_Append=1 or Host_Support='EMUL' forces DOSUTIL to be included.
  558. compile if not defined(WANT_DOSUTIL)
  559. WANT_DOSUTIL = '?'
  560. compile endif
  561.  
  562. -- This provides a simple way to omit all user includes, for problem resolution.
  563. -- If you set VANILLA to 1 in MYCNF.E, then no MY*.E files will be included.
  564. compile if not defined(VANILLA)
  565. VANILLA = 0
  566. compile endif
  567.  
  568. -- Optionally include Larry Margolis' ALL command.
  569. compile if not defined(WANT_ALL)
  570. WANT_ALL = 0
  571. compile endif
  572.  
  573. -- Optionally include Ralph Yozzo's RETRIEVE command.
  574. compile if not defined(WANT_RETRIEVE)
  575. WANT_RETRIEVE = 0
  576. compile endif
  577.  
  578. -- This defines the limit on the number of files that will be included in the Ring
  579. -- pulldown.  If more than this many files are in the ring, the (MENU_LIMIT + 1)
  580. -- entry will be "More...".  One exception - if you set this to 0, then the routine
  581. -- UpdateRingMenu will never be called (or defined), there will be no Ring pulldown,
  582. -- and instead a "List files in ring" entry will be added to the Options pulldown.
  583. -- This means that adding files to or removing them from the ring will be faster.
  584. compile if not defined(MENU_LIMIT)
  585. MENU_LIMIT = 0
  586. compile endif
  587.  
  588. -- Spelling support can now be optionally included.  Set to 1 to include, 0 to
  589. -- omit, and 'LINK' to link in at runtime.  E3 can't link.  EPMLEX comes with
  590. -- the distributed macros; EOS2LEX and E3SPELL are available separately.
  591. -- New:  set to 'DYNALINK' to only link in if the user needs it.
  592. compile if not defined(SPELL_SUPPORT)
  593.  compile if EPM
  594. SPELL_SUPPORT = 'DYNALINK'          -- New default
  595.  compile else
  596. SPELL_SUPPORT = 0
  597.  compile endif
  598. compile endif
  599.  
  600. -- Enhanced print support for EPM - can display list of printers.
  601. compile if not defined(ENHANCED_PRINT_SUPPORT)
  602. ENHANCED_PRINT_SUPPORT = 0
  603. compile endif
  604.  
  605. compile if not defined(WANT_EPM_SHELL) or EVERSION < '5.20'
  606. WANT_EPM_SHELL = 0
  607.                          /* Specifies whether support should be included   */
  608.                          /* for a shell window.  Requires SH.DLL.          */
  609. compile endif
  610.  
  611. compile if not defined(EPM_SHELL_PROMPT)
  612.    EPM_SHELL_PROMPT = '@prompt epm: $p $g'
  613. compile endif
  614.  
  615. -- Normally, when you shift a mark left or right, text to the right of the
  616. -- marked area moves with it.  Bob Langer supplied code that lets us shift
  617. -- only what's inside the mark.  The default is the old behavior.
  618. compile if not defined(SHIFT_BLOCK_ONLY)
  619. SHIFT_BLOCK_ONLY = 0
  620. compile endif
  621.  
  622. -- Determines if DBCS support should be included in the macros.  Note
  623. -- that EPM includes internal DBCS support; other versions of E do not.
  624. compile if not defined(WANT_DBCS_SUPPORT)
  625. WANT_DBCS_SUPPORT = 0
  626. compile endif
  627.  
  628. -- When the File Manager copies a file from a HPFS drive to a FAT drive,
  629. -- if the file name isn't in 8.3 format, it gets truncated, with the original
  630. -- name being preserved in a .LONGNAME extended attribute.  Setting this to 1
  631. -- will cause the long name to be displayed on the EPM title bar, instead of the
  632. -- real (short) name.
  633. compile if not defined(WANT_LONGNAMES)
  634. WANT_LONGNAMES = 0
  635. compile endif
  636.  
  637. -- Adds PUSHMARK, POPMARK, PUSHPOS and POPPOS commands.  For EPM, also adds
  638. -- pulldown entries to the action bar.
  639. compile if not defined(WANT_STACK_CMDS)
  640. WANT_STACK_CMDS = 0
  641. compile endif
  642.  
  643. -- WANT_CUA_MARKING causes the mouse definitions to be limited to the CUA actions,
  644. -- instead of the more powerful standard EPM actions.  Also causes typing
  645. -- while a mark exists to delete the mark, and Del to delete a mark if one
  646. -- exists, instead of always deleting a text character.  Can be set to 1, to
  647. -- behave this way all the time, or to 'SWITCH' to enable switching it on and
  648. -- off.  The default is 0, meaning that the standard EPM settings are in effect.
  649. compile if not defined(WANT_CUA_MARKING)
  650. WANT_CUA_MARKING = 0
  651. compile endif
  652.  
  653. -- MOUSE_SUPPORT only applies to EPM.  It can should normally be set to 1,
  654. -- to have mouse support compiled into the base .EX file.  It can be set to
  655. -- 'LINK' to have mouse support linked in at run time, or to 0 to omit mouse
  656. -- support completely.
  657. compile if not defined(MOUSE_SUPPORT)
  658. MOUSE_SUPPORT = 1
  659. compile endif
  660.  
  661. -- WANT_DM_BUFFER specifies whether a "deletemark buffer" is used in EPM.
  662. -- If so, any time a mark is deleted, a copy is saved in a buffer.  An entry on
  663. -- the Edit pulldown can be used to paste this buffer back into the editor.
  664. -- Not as useful as it originally was, since full undo has been added.
  665. compile if not defined(WANT_DM_BUFFER)
  666. WANT_DM_BUFFER = 0
  667. compile endif
  668.  
  669. -- WANT_STREAM_MODE enables stream mode editing, in which we pretend to be a
  670. -- stream mode editor instead of a line mode editor.  Can be set to 1, to
  671. -- behave this way all the time, or to 'SWITCH' to enable switching it on and
  672. -- off.  The default is 0, meaning forget stream mode entirely.
  673. compile if not defined(WANT_STREAM_MODE)
  674. WANT_STREAM_MODE = 0
  675. compile endif
  676.  
  677. -- ENHANCED_ENTER_KEYS (EPM_only) specifies that the user can configure each
  678. -- variant of the enter or ctrl-enter key separately, via a dialog.  Great for
  679. -- LAN installations, so people can use a common .EX but still customize the
  680. -- keys.
  681. compile if not defined(ENHANCED_ENTER_KEYS)
  682. ENHANCED_ENTER_KEYS = 0
  683. compile endif
  684.  
  685. -- RING_OPTIONAL makes it so you can enable or disable having more than one
  686. -- file in the ring.  Pretty useless, but the CUA people insisted on it.
  687. -- Most people will want this to be set to 0, so that you always can load as
  688. -- many files as you like.
  689. compile if not defined(RING_OPTIONAL)
  690. RING_OPTIONAL = 0
  691. compile endif
  692.  
  693. -- SUPPORT_BOOK_ICON specifies whether or not the "Book icon" entry is on
  694. -- the Options pulldown.  Another useless one for internals.
  695. compile if not defined(SUPPORT_BOOK_ICON)
  696. ;compile if EVERSION < '5.50'
  697.    SUPPORT_BOOK_ICON = 1
  698. ; compile else
  699. ;  SUPPORT_BOOK_ICON = 0  -- EPM/G has no book (yet)
  700. ; compile endif
  701. compile endif
  702.  
  703. -- WANT_DYNAMIC_PROMPTS specifies whether support for dynamic prompting is
  704. -- included or not.  (EPM only.)  If support is included, the actual prompts
  705. -- can be enabled or disabled from a menu pulldown.  Keeping this costs about
  706. -- 3k in terms of .EX space.
  707. compile if EPM -- was EVERSION >= '5.21'
  708.  compile if not defined(WANT_DYNAMIC_PROMPTS)
  709. WANT_DYNAMIC_PROMPTS = 1
  710.  compile endif
  711. compile else
  712. WANT_DYNAMIC_PROMPTS = 0  -- Must be 0 for earlier EPM
  713. compile endif
  714.  
  715. -- WANT_BOOKMARKS specifies whether support for bookmarks is included or not.
  716. -- (EPM only.)  Can be set to 0, 1, or 'LINK'.
  717. compile if EPM
  718.  compile if not defined(WANT_BOOKMARKS)
  719. WANT_BOOKMARKS = 'LINK'
  720.  compile endif
  721. compile else
  722. WANT_BOOKMARKS = 0
  723. compile endif
  724.  
  725. -- CHECK_FOR_LEXAM specifies whether or not EPM will check for Lexam, and only include
  726. -- PROOF on the menus if it's available.  Useful for product, if we're not shipping Lexam
  727. -- and don't want to advertise spell checking; a waste of space internally.
  728. compile if EPM
  729.  compile if not defined(CHECK_FOR_LEXAM)
  730. CHECK_FOR_LEXAM = 0
  731.  compile endif
  732. compile else
  733. CHECK_FOR_LEXAM = 0
  734. compile endif
  735.  
  736. -- Set this to 1 to include bracket-matching (Ctrl+[)
  737. compile if not defined(WANT_BRACKET_MATCHING)
  738. WANT_BRACKET_MATCHING = 0
  739. compile endif
  740.  
  741. -- For GPI version of EPM, this lets you select an AVIO-style underline cursor instead
  742. -- of the GPI-style vertical bar.
  743. compile if not defined(UNDERLINE_CURSOR)
  744. UNDERLINE_CURSOR = 0
  745. compile endif
  746.  
  747. -- Select which style pointer you prefer.
  748. compile if EPM & not defined(EPM_POINTER)
  749.  compile if EVERSION < 5.50
  750.    EPM_POINTER = SYSTEM_POINTER    -- AVIO version gets arrow pointer
  751.  compile else
  752.    EPM_POINTER = TEXT_POINTER      -- GPI version gets text pointer
  753.  compile endif
  754. compile endif
  755.  
  756. -- We're getting too big to fit all the standard stuff into EPM.EX, even without
  757. -- user additions, so this new option says to include a separate .EX file for
  758. -- MOUSE, MARKFILT, BOOKMARK, CLIPBRD, CHAROPS, DOSUTIL, ALL, MATH and SORT.
  759. compile if not defined(EXTRA_EX)
  760. EXTRA_EX = 0
  761. compile endif
  762.  
  763. -- Add support for looking up keywords in an index file and getting help.
  764. -- See KWHELP.E for details.  EPM only.
  765. compile if not defined(WANT_KEYWORD_HELP)
  766. WANT_KEYWORD_HELP = 0
  767. compile endif
  768.  
  769. -- By default, in EPM we block the action of action bar mnemonics being
  770. -- automatic accelerators.  Some users might not want this.  Can be 'SWITCH'.
  771. compile if not defined(BLOCK_ACTIONBAR_ACCELERATORS)
  772. BLOCK_ACTIONBAR_ACCELERATORS = 1
  773. compile endif
  774.  
  775. -- Define the default PASTE action for Shift+Ins.  Can be '' (for Paste Lines),
  776. -- 'B' (for Paste Block), or 'C' (for standard PM character mark).
  777. compile if not defined(DEFAULT_PASTE) & EPM
  778. DEFAULT_PASTE = 'C'
  779. compile endif
  780.  
  781. -- Search for a Rexx profile?  (EPM 5.50 or above only.)
  782. compile if not defined(WANT_PROFILE)
  783. WANT_PROFILE = 0
  784. compile endif
  785.  
  786. -- Toggle Escape key?  Default EPM for Boca doesn't use Esc to bring up command
  787. -- dialog, but all "real" EPM users want it.
  788. compile if not defined(TOGGLE_ESCAPE)
  789. TOGGLE_ESCAPE = 0
  790. compile endif
  791.  
  792. -- Toggle Tab key?  Some people want the Tab key to insert a tab, rather than
  793. -- inserting spaces to the next tab stop.
  794. compile if not defined(TOGGLE_TAB)
  795. TOGGLE_TAB = 0
  796. compile endif
  797.  
  798. -- Make menu support optional for people using the E Toolkit who want to
  799. -- use most of the standard macros.  *Not* for most users.
  800. compile if not defined(INCLUDE_MENU_SUPPORT)
  801. INCLUDE_MENU_SUPPORT = 1
  802. compile endif
  803.  
  804. -- The compiler support is only included if the bookmark support is; this lets
  805. -- you omit the former while including the latter.
  806. compile if not defined(INCLUDE_WORKFRAME_SUPPORT)
  807.    INCLUDE_WORKFRAME_SUPPORT = 1
  808. compile endif
  809.  
  810. -- For Toolkit developers - set to 0 if you don't want the user to be able
  811. -- to go to line 0.  Affects MH_gotoposition in MOUSE.E and Def Up in STDKEYS.E.
  812. compile if not defined(TOP_OF_FILE_VALID)
  813.    TOP_OF_FILE_VALID = 1
  814. compile endif
  815.  
  816. -- EBOOKIE support desired?  0=no; 1=include bkeys.e; 'LINK'=always link BKEYS
  817. -- at startup; 'DYNALINK'=support for dynamically linking it in.
  818. compile if not defined(WANT_EBOOKIE)
  819.  compile if E3
  820.    WANT_EBOOKIE = 0
  821.  compile else
  822.    WANT_EBOOKIE = 'DYNALINK'
  823.  compile endif
  824. compile endif
  825.  
  826. -- Starting in EPM 5.50, EPM was modified so that when scrolling with the
  827. -- scroll bars, the cursor would stay in the same text-relative location, and
  828. -- could move off the window; pressing a key that moved the cursor would then
  829. -- cause the displayed text to jump back so that the cursor was visible.
  830. -- We were told to make this change in order to comply with CUA, but most
  831. -- users found it horribly confusing and annoying.  Starting with 5.60, we
  832. -- can work either way; the default is now that we do what people prefer.
  833. compile if not defined(KEEP_CURSOR_ON_SCREEN)
  834.    KEEP_CURSOR_ON_SCREEN = 1
  835. compile endif
  836.  
  837. -- E Toolkit users might want to omit support for accessing the application
  838. -- .INI file (e.g., EPM.INI).
  839. compile if not defined(WANT_APPLICATION_INI_FILE)
  840.    WANT_APPLICATION_INI_FILE = 1
  841. compile endif
  842.  
  843. include NLS_LANGUAGE'.e'
  844.  
  845. -- This defines the "Directory of" string searched for by Alt-1 in DIR output.
  846. -- (User-definable for NLS requirements.)
  847. compile if not defined(DIRECTORYOF_STRING)
  848. DIRECTORYOF_STRING = DIR_OF__MSG
  849. compile endif
  850. -------------------------------------------------------------------------------
  851.  
  852. definit
  853. universal expand_on, matchtab_on, default_search_options
  854. universal vTEMP_FILENAME, vTEMP_PATH, vAUTOSAVE_PATH
  855. compile if EVERSION < 5
  856.    universal ZoomWindowStyle, comsfileid, messy
  857. compile else
  858.    universal edithwnd, MouseStyle, appname
  859.  compile if EVERSION >= '5.20'
  860.    universal app_hini
  861.    universal CurrentHLPFiles
  862.  compile endif
  863.  compile if EVERSION >= '5.21'
  864.    universal vSTATUSCOLOR, vMESSAGECOLOR
  865.  compile endif
  866.  compile if CHECK_FOR_LEXAM
  867.    universal LEXAM_is_available
  868.  compile endif
  869.  compile if WANT_DYNAMIC_PROMPTS
  870.    universal menu_prompt
  871.  compile endif
  872.  compile if ENHANCED_ENTER_KEYS
  873.    universal enterkey, a_enterkey, c_enterkey, s_enterkey
  874.    universal padenterkey, a_padenterkey, c_padenterkey, s_padenterkey
  875.  compile endif
  876.  compile if RING_OPTIONAL
  877.    universal ring_enabled
  878.  compile endif
  879.    universal EPM_utility_array_ID, defaultmenu, font
  880.    universal vDEFAULT_TABS, vDEFAULT_MARGINS, vDEFAULT_AUTOSAVE
  881.    universal  ADDENDA_FILENAME
  882.    universal  DICTIONARY_FILENAME
  883.  compile if WANT_EPM_SHELL
  884.    universal shell_index
  885.  compile endif
  886.  compile if WANT_CUA_MARKING = 'SWITCH'
  887.    universal CUA_marking_switch
  888.  compile endif
  889. compile endif
  890. compile if EVERSION < '4.12'
  891.    universal autosave
  892. compile endif
  893. compile if HOST_SUPPORT
  894.    universal hostcopy
  895. compile endif
  896. compile if SETSTAY='?'
  897.    universal stay
  898. compile endif
  899. compile if WANT_STREAM_MODE = 'SWITCH'
  900.    universal stream_mode
  901. compile endif
  902. compile if WANT_STACK_CMDS = 'SWITCH'
  903.    universal stack_cmds
  904. compile endif
  905. compile if EVERSION >= '5.50'
  906.    universal default_font
  907. compile endif
  908. compile if WANT_LONGNAMES = 'SWITCH'
  909.    universal SHOW_LONGNAMES
  910. compile endif
  911. compile if WANT_PROFILE = 'SWITCH'
  912.    universal REXX_PROFILE
  913. compile endif
  914. compile if TOGGLE_ESCAPE
  915.    universal ESCAPE_KEY
  916. compile endif
  917. compile if TOGGLE_TAB
  918.    universal TAB_KEY
  919. compile endif
  920.    universal save_with_tabs, default_edit_options, default_save_options
  921.    universal last_append_file
  922. compile if BLOCK_ACTIONBAR_ACCELERATORS = 'SWITCH'
  923.    universal CUA_MENU_ACCEL
  924. compile endif
  925.  
  926. compile if defined(my_expand_on)
  927. expand_on        = my_expand_on
  928. compile else
  929. expand_on        = 1
  930. compile endif
  931.                         -- set automatic syntax expansion 0/1
  932. compile if defined(my_matchtab_on)
  933. matchtab_on      = my_matchtab_on
  934. compile else
  935. matchtab_on      = 0
  936. compile endif
  937.                         -- set default matchtab to 0 or 1
  938. compile if EVERSION < 5
  939.  compile if defined(my_ZoomWindowStyle)
  940. ZoomWindowStyle  = my_ZoomWindowStyle
  941.  compile else
  942. ZoomWindowStyle  = 1
  943.  compile endif
  944.                         -- set default zoom window style
  945.  compile if EVERSION < '4.12'
  946.   compile if defined(my_autosave)
  947. autosave         = my_AUTOSAVE
  948.   compile else
  949. autosave         = DEFAULT_AUTOSAVE
  950.   compile endif
  951.                         -- set autosave initial value
  952.  compile endif    -- EVERSION < 4.12
  953.  compile if WANT_WINDOWS
  954.   compile if defined(my_messy)
  955. messy            = my_messy
  956.   compile else
  957. messy            = 0
  958.   compile endif
  959.                         -- set to 1 for messy-desk windowing
  960.  compile else        -- No windowing ==> no choice of windowing style.
  961. messy            = 0    -- Do not change this copy!!!
  962.  compile endif
  963.  
  964. compile endif  -- EVERSION < 5
  965.  
  966.  
  967. -- This option JOIN_AFTER_WRAP specifies whether to join the
  968. -- next line after a word-wrap.  To see its effect:  set margins to 1 79 1;
  969. -- go into insert mode; type a few characters into this line to cause a wrap.
  970. -- (sample next line)
  971. -- If join_after_wrap = 1, you'll get:
  972. --    wrap. -- (sample next line)
  973. -- If join_after_wrap = 0, you'll get:
  974. --    wrap.
  975. --    -- (sample next line)
  976. compile if defined(my_join_after_wrap)
  977. join_after_wrap = my_join_after_wrap
  978. compile else
  979. join_after_wrap = 1
  980. compile endif
  981.  
  982.  
  983. -- This option CENTER_SEARCH specifies how the cursor moves
  984. --   during a search or replace operation.
  985. -- 0 :  Hold the cursor fixed; move the word to the cursor.  Like old E.
  986. -- 1 :  Move the cursor to the word if it's visible on the current screen,
  987. --      to minimize text motion.  Else center the word in mid-screen.
  988. compile if defined(my_center_search)
  989. center_search = my_center_search
  990. compile else
  991. center_search = 1
  992. compile endif
  993.  
  994. compile if not EPM
  995. -- This option TOP_OF_FILE_FIXED specifies whether the
  996. --   "Top of File" line is allowed to move down from the top of the window.
  997. -- 0 :  Allow the line to move down, so that cursor operations act the same
  998. --      regardless of proximity to top of file.  For example, the key Shift-F5
  999. --      (center the current line) will move the top-of-file line down if that's
  1000. --      what's needed to center the current line in a small file.
  1001. -- 1 :  Hold the line fixed; some cursor operations will change their behavior
  1002. --      as the cursor approaches the top of file.  Shift-F5 will not center the
  1003. --      current line in a small file.
  1004.  compile if defined(my_top_of_file_fixed)
  1005. top_of_file_fixed = my_top_of_file_fixed
  1006.  compile else
  1007. top_of_file_fixed = 1
  1008.  compile endif
  1009. compile endif
  1010.  
  1011. -- Ver. 4.12:  Some users want only one space after a period or colon when
  1012. -- they reflow a paragraph.  This is a predefined universal variable similar to
  1013. -- top_of_file_fixed, so a macro can switch it on and off when desired for
  1014. -- special purposes.
  1015. --    1 (TRUE)  ==>  supply two spaces after a sentence or colon.
  1016. --    0 (FALSE) ==>  supply only one space.
  1017. compile if EVERSION >= 4    -- not in E3
  1018.  compile if defined(my_two_spaces)
  1019.   two_spaces = my_two_spaces
  1020.  compile else
  1021.   two_spaces = TRUE  -- Default is as before, two spaces after sentence.
  1022.  compile endif
  1023. compile endif
  1024.  
  1025. -- Default options for locate and change commands.  Pick from:
  1026. --
  1027. --   E  Exact match (case sensitive)    C  Case-insensitive (ignore case)
  1028. --   A  All text (ignore marks)         M  Marked area only
  1029. --   +  Advance thru file, top->bott    -  Backward, bottom -> top
  1030. --   F  Forward in line, left->right    R  Reverse in line, right->left
  1031. --
  1032. -- The standard is 'EA+F' to be compatible with previous releases; that's
  1033. -- what you get if you leave this blank.  Many users will prefer 'C'.
  1034. compile if defined(my_default_search_options)
  1035. default_search_options= my_default_search_options
  1036. compile else
  1037. default_search_options=''
  1038. compile endif
  1039.  
  1040. compile if HOST_SUPPORT
  1041.  compile if defined(my_hostcopy)
  1042.    hostcopy= my_hostcopy
  1043.  compile else
  1044.   compile if E3
  1045.    hostcopy='mytecopy'    -- Default for DOS is MYTECOPY.
  1046.   compile else
  1047.    hostcopy='almcopy'     -- Default for OS/2 is the OS/2 version of ALMCOPY.
  1048.   compile endif
  1049.  compile endif
  1050.                         -- Could be mytecopy, e78copy, bondcopy, cp78copy, almcopy, etc.
  1051.                         -- Add options if necessary (e.g., 'mytecopy /nowsf')
  1052. compile endif
  1053.  
  1054.  
  1055. -- EOS2 ver 4.10:  E can now save files with tab compression.  You can choose
  1056. -- to save an individual file with tabs by issuing 'save /t' or 'file /t'.
  1057. -- If you want ALL files saved with tab compression, without specifying
  1058. -- the '/t', set this to 1.
  1059. compile if defined(my_save_with_tabs)
  1060. save_with_tabs = my_save_with_tabs
  1061. compile else
  1062. save_with_tabs = 0
  1063. compile endif
  1064.  
  1065. compile if EVERSION < 5
  1066. -- Four function_key_text strings now for four shift states.
  1067. -- 80 characters (one line) max.  Broken into two strings here,
  1068. -- with arrow graphics replaced with ASCII codes for printability.
  1069.  
  1070.  compile if defined(my_function_key_text)
  1071. function_key_text  = my_function_key_text
  1072.  compile else
  1073.    compile if (WANT_DRAW=F6 | WANT_DRAW='F6') & not SMALL
  1074. function_key_text  = "F1=Help  2=Save  3=Quit  4=File         "||
  1075.                      " 6=Draw  7=Name  8=Edit  9=Undo  10=Next"
  1076.    compile else
  1077. function_key_text  = "F1=Help  2=Save  3=Quit  4=File         "||
  1078.                      "         7=Name  8=Edit  9=Undo  10=Next"
  1079.    compile endif
  1080.  compile endif
  1081.  
  1082.  compile if defined(my_a_function_key_text)
  1083. a_function_key_text= my_a_function_key_text
  1084.  compile else
  1085. a_function_key_text= "F1=LineChars                            "||
  1086.                      "       7="\27"Shift  8=Shift"\26"        10=Prev"
  1087.  compile endif
  1088.  
  1089.  compile if defined(my_c_function_key_text)
  1090. c_function_key_text= my_c_function_key_text
  1091.  compile else
  1092. c_function_key_text= "F1=UpperWord  2=LowerWord  3=UpperMark  "||
  1093.                      "4=LowerMark  5=BeginWord  6=EndWord     "
  1094.  compile endif
  1095.  
  1096.  compile if defined(my_s_function_key_text)
  1097. s_function_key_text= my_s_function_key_text
  1098.  compile else
  1099. s_function_key_text= "F1="\27"Scrl  2=Scrl"\26"  3=Scrl"\24"  4=Scrl"||
  1100.                      \25"  5=CenterLine                               "
  1101.  compile endif
  1102.  
  1103. -- This specifies how long you must hold down a shift/ctrl/alt key before
  1104. -- the function_key_text changes.
  1105. -- It's an arbitrary value:  2000 gives about 3/4 second delay on an AT.
  1106. -- Set this to zero if you don't want the function_key_text to shift.
  1107.  compile if defined(my_function_key_text_delay)
  1108. function_key_text_delay = my_function_key_text_delay
  1109.  compile else
  1110. function_key_text_delay = 2000
  1111.                                                                -- for DOS 3
  1112. -- On OS/2 real mode use about 1/10th of that.
  1113. if machine()='OS2REAL' or dos_version() >= 1000 then
  1114.    function_key_text_delay = function_key_text_delay % 10      -- for OS/2 real
  1115. endif
  1116.   compile if EVERSION >= '4.00'  -- Save a few bytes in DOS version
  1117. -- In protect mode use machine-independent units, milliseconds!
  1118. if machine()='OS2PROTECT' then
  1119.    function_key_text_delay = 800
  1120.                                                                -- OS/2 protect
  1121. endif
  1122.   compile endif
  1123.  compile endif
  1124.  
  1125. -- Note:  You'll want to change the f.k.texts if you define new keysets with
  1126. -- different function keys.  The preferred method is:
  1127. --    define your new keyset in a separate file (like CKEYS.E);
  1128. --    write a small condition-check to select your keyset (like CKEYSEL.E);
  1129. --    assign the new function_key_texts in the select file.
  1130. compile endif  -- EVERSION < 5
  1131.  
  1132. compile if WANT_LONGNAMES = 'SWITCH'
  1133.  compile if defined(my_SHOW_LONGNAMES)
  1134.    SHOW_LONGNAMES = my_SHOW_LONGNAMES
  1135.  compile else
  1136.    SHOW_LONGNAMES = 0
  1137.  compile endif
  1138. compile endif
  1139.  
  1140. compile if WANT_PROFILE = 'SWITCH'
  1141.  compile if defined(my_REXX_PROFILE)
  1142.    REXX_PROFILE = my_REXX_PROFILE
  1143.  compile else
  1144.    REXX_PROFILE = 0
  1145.  compile endif
  1146. compile endif
  1147.  
  1148. compile if TOGGLE_ESCAPE
  1149.    ESCAPE_KEY = 0
  1150. compile endif
  1151. compile if TOGGLE_TAB
  1152.    TAB_KEY = 0
  1153. compile endif
  1154.  
  1155. compile if SETSTAY='?'
  1156.  compile if defined(my_stay)
  1157.    stay = my_stay
  1158.  compile else
  1159.    stay = 0
  1160.  compile endif
  1161. compile endif
  1162.  
  1163. ; We now save the constants in universal variables.  This way, they can be
  1164. ; over-ridden at execution time by a definit (e.g., the user might check an
  1165. ; environment variable to see if a VDISK has been defined, and if so, set the
  1166. ; temp_path to point to it).  The constants are used as default initialization,
  1167. ; and for compatability with older macros.
  1168. vTEMP_FILENAME = TEMP_FILENAME
  1169. vTEMP_PATH = TEMP_PATH
  1170. vAUTOSAVE_PATH = AUTOSAVE_PATH
  1171.  
  1172. ; Default options to be added to the EDIT command.  Normally null, some users
  1173. ; might prefer to make it '/L'.
  1174. ;  /L means to use the DOS convention that any line feed character (x'0A')
  1175. ;     not paired with a carriage return (x'0D') should be left alone;
  1176. ;     this is useful if you wish to use the line feed as a printer control.
  1177. ;  /U means to use the Unix convention that a line feed alone is sufficient
  1178. ;     to start a new line, whether or not it's paired with a CR.
  1179. ; The default (if no options are given) is /U, the traditional E treatment.
  1180. ; If you make /L the default, it can still be overridden on any specific
  1181. ; EDIT command as by "EDIT /U filename".
  1182. ; This choice makes no difference for normal text files with CR-LF for newline.
  1183. compile if defined(my_default_edit_options)
  1184. default_edit_options= my_default_edit_options
  1185. compile else
  1186. default_edit_options=''
  1187. compile endif
  1188.  
  1189. ; Default options to be added to the SAVE command.  Normally null, some users
  1190. ; might prefer to make it '/S' (EPM 5.51 or above).
  1191. compile if defined(my_default_save_options)
  1192. default_save_options= my_default_save_options
  1193. compile else
  1194. default_save_options=''
  1195. compile endif
  1196.  
  1197. ; In EPM you can choose one of several (well, only 2 for now) prefabricated
  1198. ; styles of mouse behavior.  You can change styles on the fly with the command
  1199. ; MOUSESTYLE or MS.  See MOUSE.E for style descriptions; brief summaries are:
  1200. ;  1: Block and line marks for programmers.
  1201. ;     Button 1 drag = block mark, button 2 drag = line.
  1202. ;     Button 1 double-click = unmark.  Button 2 double-click = word-mark.
  1203. ;  2: Character and line marks.
  1204. ;     Same as style 1, but button 1 drag = character mark rather than block.
  1205. ;  3: A marking style of point-the-corners instead of drag-paint.
  1206. ;     (Not done yet.)
  1207. compile if EPM
  1208.  compile if defined(my_MouseStyle)
  1209. MouseStyle = my_MouseStyle
  1210.  compile else
  1211. MouseStyle = 1
  1212.  compile endif
  1213.  compile if SPELL_SUPPORT = 'DYNALINK'  -- For EPM, initialize here if DYNALINK,
  1214.   compile if defined(my_ADDENDA_FILENAME)  -- so can be overridden by CONFIG info.
  1215.      ADDENDA_FILENAME= my_ADDENDA_FILENAME
  1216.   compile else
  1217.      ADDENDA_FILENAME= 'c:\lexam\lexam.adl'
  1218.   compile endif
  1219.  
  1220.   compile if defined(my_DICTIONARY_FILENAME)
  1221.      DICTIONARY_FILENAME= my_DICTIONARY_FILENAME
  1222.   compile else
  1223.      DICTIONARY_FILENAME= 'c:\lexam\us.dct'
  1224.   compile endif
  1225.  compile endif  -- SPELL_SUPPORT
  1226.  compile if WANT_EPM_SHELL
  1227.    shell_index = 0
  1228.  compile endif
  1229.  compile if WANT_CUA_MARKING = 'SWITCH'
  1230.   compile if defined(my_CUA_marking_switch)
  1231.    CUA_marking_switch = my_CUA_marking_switch
  1232.    compile if my_CUA_marking_switch
  1233.    'togglecontrol 25 1'
  1234.    compile endif
  1235.   compile else
  1236.    CUA_marking_switch = 0           -- Default is off, for standard EPM behavior.
  1237.   compile endif
  1238.  compile elseif WANT_CUA_MARKING = 1
  1239.    'togglecontrol 25 1'
  1240.  compile endif
  1241. compile endif  -- EPM
  1242.  
  1243. ------------ Rest of this file isn't normally changed. ------------------------
  1244.  
  1245. compile if EVERSION < '4.12'
  1246. -- Ver. 4.11B:  It's important that the base keyset, edit_keys, be
  1247. -- initialized early in the start-up process, before any modules are linked.
  1248. -- Linked modules can now contain key definitions that overlay the base keyset,
  1249. -- and they need a base to overlay onto.  Don't delete this line!
  1250. keys edit_keys
  1251.  
  1252. -- Set some defaults.  In EOS2 4.12 and later, this is done in a DEFLOAD.
  1253. 'xcom tabs'    DEFAULT_TABS
  1254. 'xcom margins' DEFAULT_MARGINS
  1255. compile endif
  1256.  
  1257. compile if EVERSION >= 5
  1258. vDEFAULT_TABS    = DEFAULT_TABS
  1259. vDEFAULT_MARGINS = DEFAULT_MARGINS
  1260. vDEFAULT_AUTOSAVE= DEFAULT_AUTOSAVE
  1261.  
  1262.  compile if defined(my_APPNAME)
  1263. appname=my_APPNAME
  1264.  compile else
  1265. appname=leftstr(getpminfo(EPMINFO_EDITEXSEARCH),3)  -- Get the .ex search path
  1266.                               -- name (this should be a reliable way to get a
  1267.                               -- unique application under which to to store
  1268.                               -- data in os2.ini.  I.e. EPM (EPMPATH) would be
  1269.  compile endif                -- 'EPM', LaMail (LAMPATH) would be 'LAM'
  1270.  
  1271. ; What was the ring_menu_array_id is now the EPM_utility_array_id, to reflect
  1272. ; that it's a general-purpose array.  An array is a file, so it's cheaper to
  1273. ; use the same one whenever possible, rather than creating new ones.  We use a
  1274. ; prefix to keep indices unique.  Current indices are:
  1275. ;   menu.     -- Menu index; commented out
  1276. ;   bmi.      -- Bookmark index
  1277. ;   bmn.      -- Bookmark name
  1278. ;   shell_f.  -- Shell fileid
  1279. ;   shell_h.  -- Shell handle
  1280. ;   si.       -- Style index
  1281. ;   sn.       -- Style name
  1282. ;   F         -- File id for Ring_more command; not used as of EPM 5.20
  1283. do_array 1, EPM_utility_array_ID, "array.EPM"   -- Create this array.
  1284.   compile if 0  -- LAM: Delete this feature; nobody used it, and it slowed things down.
  1285. one = 1                                          -- (Value is a VAR, so have to kludge it.)
  1286. do_array 2, EPM_utility_array_ID, 'menu.0', one           -- Item 0 says there is one item.
  1287. do_array 2, EPM_utility_array_ID, 'menu.1', defaultmenu   -- Item 1 is the default menu name.
  1288.   compile endif  -- 0
  1289. zero = 0                                         -- (Value is a VAR, so have to kludge it.)
  1290. do_array 2, EPM_utility_array_ID, 'bmi.0', zero    -- Index of 0 says there are no bookmarks
  1291. do_array 2, EPM_utility_array_ID, 'si.0', zero     -- Set Style Index 0 to "no entries."
  1292. compile endif  -- EVERSION >= 5
  1293.  
  1294. compile if EXTRA_EX
  1295.  compile if defined(my_EXTRA_EX_NAME)
  1296.   'linkverify' my_EXTRA_EX_NAME
  1297.  compile else
  1298.   'linkverify EXTRA'
  1299.  compile endif
  1300. compile endif
  1301.  
  1302. compile if EVERSION >= 5
  1303.  compile if EVERSION >= '5.20'
  1304.   compile if WANT_APPLICATION_INI_FILE
  1305.    compile if EVERSION >= '6.00'
  1306. app_hini=dynalinkc(ERES_DLL, 'ERESQueryHini', gethwndc(EPMINFO_EDITCLIENT) ,2)
  1307.    compile elseif EVERSION >= '5.53'
  1308. app_hini=dynalink(ERES_DLL, 'ERESQUERYHINI', gethwnd(EPMINFO_EDITCLIENT) ,2)
  1309.    compile else
  1310. app_hini=getpminfo(EPMINFO_HINI)
  1311.    compile endif  -- 6.00 / 5.53
  1312.   compile endif  -- WANT_APPLICATION_INI_FILE
  1313. CurrentHLPFiles = 'epm.hlp'
  1314.  compile endif  -- 5.20
  1315. ;compile if defined(my_TILDE)
  1316. ;  tilde = my_TILDE
  1317. ;compile elseif EVERSION > '5.20'
  1318. ;  tilde = '~'
  1319. ;compile else
  1320. ;if dos_version() >= 1020 then
  1321. ;   tilde = ''
  1322. ;else
  1323. ;   tilde = '~'
  1324. ;endif
  1325. ;compile endif
  1326.  compile if defined(my_FONT)
  1327.    font = my_FONT
  1328.   compile if EVERSION < 5.21
  1329.    if not my_FONT then call setfont(0, 0); endif  -- If FALSE then Togglefont
  1330.   compile endif
  1331.  compile else
  1332.    font = TRUE                         -- default font is large
  1333.  compile endif
  1334.  compile if RING_OPTIONAL
  1335.   compile if defined(my_RING_ENABLED)
  1336.     ring_enabled = my_RING_ENABLED
  1337.   compile else
  1338.     ring_enabled = 1
  1339.   compile endif
  1340.   compile if WANT_APPLICATION_INI_FILE
  1341.    newcmd=queryprofile( app_hini, appname, INI_RINGENABLED)
  1342.    if newcmd<>'' then ring_enabled = newcmd; endif
  1343.   compile endif
  1344.    if not ring_enabled then
  1345.   compile if EVERSION < '5.53'
  1346.       'togglecontrol 20 0'
  1347.   compile else
  1348.       'toggleframe 4 0'
  1349.   compile endif
  1350.    endif
  1351.  compile endif  -- RING_OPTIONAL
  1352.  compile if WANT_STACK_CMDS = 'SWITCH'
  1353.    stack_cmds = 0
  1354.   compile if WANT_APPLICATION_INI_FILE
  1355.    newcmd=queryprofile( app_hini, appname, INI_STACKCMDS)
  1356.    if newcmd<>'' then stack_cmds = newcmd; endif
  1357.   compile endif
  1358.  compile endif
  1359.  compile if BLOCK_ACTIONBAR_ACCELERATORS = 'SWITCH'
  1360.   compile if defined(my_CUA_MENU_ACCEL)
  1361.    CUA_MENU_ACCEL = my_CUA_MENU_ACCEL
  1362.   compile else
  1363.    CUA_MENU_ACCEL = 0
  1364.   compile endif
  1365.   compile if WANT_APPLICATION_INI_FILE
  1366.    newcmd=queryprofile( app_hini, appname, INI_CUAACCEL)
  1367.    if newcmd<>'' then CUA_MENU_ACCEL = newcmd; endif
  1368.   compile endif
  1369.  compile endif
  1370.  compile if CHECK_FOR_LEXAM
  1371.   compile if EVERSION >= '5.21'
  1372.    display -10
  1373.   compile else
  1374.    display -2
  1375.   compile endif
  1376.    LEXAM_is_available = (-326=dynalink(LEXAM_DLL, 'LAM@Watson', 0))
  1377.    if LEXAM_is_available then -- "Unrecognized procedure name" - i.e., library was found.
  1378.       call dynafree(LEXAM_DLL); call dynafree(LEXAM_DLL)
  1379.    endif
  1380.   compile if EVERSION >= '5.21'
  1381.    display 10
  1382.   compile else
  1383.    display 2
  1384.   compile endif
  1385.  compile endif
  1386.  compile if INCLUDE_MENU_SUPPORT
  1387. 'loaddefaultmenu'
  1388.  compile endif
  1389.  compile if EVERSION > '5.20'
  1390. 'loadaccel'
  1391.  compile endif
  1392.  compile if WANT_DYNAMIC_PROMPTS
  1393.   compile if defined(my_MENU_PROMPT)
  1394.    menu_prompt = my_MENU_PROMPT
  1395.   compile else
  1396. ;  menu_prompt = 0       -- Default is to not have it (at least, internally).
  1397.    menu_prompt = 1       -- (Start with it on for now, to get it beta tested.)
  1398.   compile endif
  1399.  compile endif  -- DYNAMIC_PROMPTS
  1400. compile endif  -- EVERSION >= 5
  1401.  
  1402. last_append_file = ''   -- Initialize for DEFC APPEND.
  1403.  
  1404. compile if not EPM
  1405.  compile if E3
  1406. 'xcom e /n /h coms.e'
  1407. getfileid comsfileid    -- initialize comsfileid for other macros
  1408.  
  1409. -- Make sure the top ring is active.  This E command (any old file
  1410. -- would do) activates the top ring.
  1411. 'xcom e /n coms.e'; 'xcom q'
  1412.  compile else
  1413. ; 4.12:  We no longer need to load the COMS.E file here, it's done
  1414. ; automatically.  And no need to query comsfileid, it's always 0.
  1415. ; And no need to activate the top ring after loading COMS.E.  Now it's simply:
  1416. comsfileid=0
  1417.  compile endif  -- E3
  1418.  
  1419. -- Ver 3.11:  move color initializations to init_window() in WINDOW.E.
  1420. -- Much of it was repeated there anyway.
  1421. call start_screen()
  1422.  
  1423. compile else       -- EPM
  1424. ; Initialize the colors and paint the window.  (Done in WINDOW.E for non-EPM versions.)
  1425. .textcolor  = TEXTCOLOR
  1426. .markcolor  = MARKCOLOR
  1427. compile if EVERSION < '5.21'
  1428. .statuscolor  = STATUSCOLOR
  1429. .messagecolor = MESSAGECOLOR
  1430. compile else
  1431. vSTATUSCOLOR  = STATUSCOLOR
  1432. vMESSAGECOLOR = MESSAGECOLOR
  1433.  compile if defined(STATUS_TEMPLATE)
  1434. 'setstatusline' STATUS_TEMPLATE
  1435.  compile elseif STATUSCOLOR <> 240  -- If different than the default...
  1436.  'setstatusline'    -- Just set the color
  1437.  compile endif
  1438.  compile if MESSAGECOLOR <> 252  -- If different than the default...
  1439.  'setmessageline'   -- Set the messageline color
  1440.  compile endif
  1441. compile endif  -- 5.21
  1442. compile if ENHANCED_ENTER_KEYS
  1443.  compile if ENTER_ACTION='' | ENTER_ACTION='ADDLINE'  -- The default
  1444.    enterkey=1; a_enterkey=1; s_enterkey=1; padenterkey=1; a_padenterkey=1; s_padenterkey=1
  1445.  compile elseif ENTER_ACTION='NEXTLINE'
  1446.    enterkey=2; a_enterkey=2; s_enterkey=2; padenterkey=2; a_padenterkey=2; s_padenterkey=2
  1447.  compile elseif ENTER_ACTION='ADDATEND'
  1448.    enterkey=3; a_enterkey=3; s_enterkey=3; padenterkey=3; a_padenterkey=3; s_padenterkey=3
  1449.  compile elseif ENTER_ACTION='DEPENDS'
  1450.    enterkey=4; a_enterkey=4; s_enterkey=4; padenterkey=4; a_padenterkey=4; s_padenterkey=4
  1451.  compile elseif ENTER_ACTION='DEPENDS+'
  1452.    enterkey=5; a_enterkey=5; s_enterkey=5; padenterkey=5; a_padenterkey=5; s_padenterkey=5
  1453.  compile elseif ENTER_ACTION='STREAM'
  1454.    enterkey=6; a_enterkey=6; s_enterkey=6; padenterkey=6; a_padenterkey=6; s_padenterkey=6
  1455.  compile endif
  1456.  compile if C_ENTER_ACTION='ADDLINE'
  1457.    c_enterkey=1; c_padenterkey=1;
  1458.  compile elseif C_ENTER_ACTION='' | C_ENTER_ACTION='NEXTLINE'  -- The default
  1459.    c_enterkey=2; c_padenterkey=2;
  1460.  compile elseif C_ENTER_ACTION='ADDATEND'
  1461.    c_enterkey=3; c_padenterkey=3;
  1462.  compile elseif C_ENTER_ACTION='DEPENDS'
  1463.    c_enterkey=4; c_padenterkey=4;
  1464.  compile elseif C_ENTER_ACTION='DEPENDS+'
  1465.    c_enterkey=5; c_padenterkey=5;
  1466.  compile elseif C_ENTER_ACTION='STREAM'
  1467.    c_enterkey=6; c_padenterkey=6;
  1468.  compile endif
  1469. compile endif -- ENHANCED_ENTER_KEYS
  1470.  
  1471. compile if WANT_STREAM_MODE = 'SWITCH'
  1472.  compile if defined(my_STREAM_MODE)
  1473.    stream_mode = my_STREAM_MODE
  1474.   compile if my_STREAM_MODE
  1475.    'togglecontrol 24 1'
  1476.   compile endif
  1477.  compile elseif ENTER_ACTION='STREAM'
  1478.    stream_mode = 1
  1479.    'togglecontrol 24 1'
  1480.  compile else
  1481.    stream_mode = 0
  1482.  compile endif
  1483. compile elseif WANT_STREAM_MODE = 1
  1484.    'togglecontrol 24 1'
  1485. compile endif
  1486.  
  1487. compile if EVERSION >= '5.50'
  1488.   -- default editor font
  1489.   -- .font=registerfont('Courier', 12, 0)
  1490.    default_font = 1
  1491.    call fixup_cursor()
  1492. compile endif
  1493.  
  1494. ; repaint_window()
  1495. compile endif
  1496.  
  1497. compile if LINK_HOST_SUPPORT
  1498.  compile if HOST_SUPPORT = 'EMUL' | HOST_SUPPORT = 'E3EMUL'
  1499.   'linkverify E3EMUL'
  1500.  compile elseif HOST_SUPPORT = 'SRPI'
  1501.   'linkverify SLSRPI'
  1502.  compile else
  1503.    *** Error - LINK_HOST_SUPPORT not supported for your HOST_SUPPORT method.
  1504.  compile endif
  1505. compile endif
  1506.  
  1507. compile if MOUSE_SUPPORT = 'LINK' & EPM & not EXTRA_EX
  1508.   'linkverify MOUSE'
  1509. compile endif
  1510.  
  1511. compile if WANT_BOOKMARKS = 'LINK' & not EXTRA_EX
  1512.   'linkverify BOOKMARK'
  1513. compile endif       -- Bookmarks
  1514.  
  1515. compile if WANT_EBOOKIE = 'LINK'
  1516.   'linkverify BKEYS'
  1517. compile endif
  1518.  
  1519. compile if SPELL_SUPPORT = 'LINK'
  1520.  compile if EPM
  1521.   'linkverify EPMLEX'
  1522.  compile elseif EOS2
  1523.   'linkverify EOS2LEX'
  1524.  compile else
  1525.    *** Error - SPELL_SUPPORT = 'LINK' not valid for E3.
  1526.  compile endif
  1527. compile elseif SPELL_SUPPORT = 'DYNALINK'
  1528. -----------------  End of DEFINIT  ------------------------------------------
  1529. define
  1530.  compile if EPM
  1531.    LEX_EX = 'EPMLEX'
  1532.  compile elseif EOS2
  1533.    LEX_EX = 'EOS2LEX'
  1534.  compile else
  1535.    *** Error - SPELL_SUPPORT = 'DYNALINK' not valid for E3.
  1536.  compile endif
  1537.  
  1538. defc syn = link_exec(LEX_EX, 'SYN', arg(1))
  1539.  
  1540. defc proof = link_exec(LEX_EX, 'PROOF', arg(1))
  1541.  
  1542. defc proofword, verify = link_exec(LEX_EX, 'VERIFY', arg(1))
  1543.  
  1544.  compile if EPM
  1545. defc dict = link_exec(LEX_EX, 'DICT', arg(1))
  1546.  compile endif
  1547. compile endif       -- Spell_Support
  1548.  
  1549. compile if WANT_EBOOKIE = 'DYNALINK'
  1550. defc bookie = link_exec('bkeys', 'bookie', arg(1))
  1551. compile endif
  1552.  
  1553. -- 4.10A:  Move the compile-if here from above, simpler.
  1554. compile if EVERSION >= '4.0' & EVERSION < 5
  1555.  compile if ASK_BEFORE_LEAVING
  1556.   include 'exit.e'
  1557.  compile endif
  1558. compile endif
  1559.  
  1560.