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