home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / wps / editor / epmtools / epmmac / stdcnf.e < prev    next >
Text File  |  1993-07-22  |  63KB  |  1,656 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. ENHANCED_PRINT_SUPPORT = 0
  601. compile endif
  602.  
  603. compile if not defined(WANT_EPM_SHELL) or EVERSION < '5.20'
  604. WANT_EPM_SHELL = 0
  605.                          /* Specifies whether support should be included   */
  606.                          /* for a shell window.  Requires SH.DLL.          */
  607. compile endif
  608.  
  609. compile if not defined(EPM_SHELL_PROMPT)
  610.    EPM_SHELL_PROMPT = '@prompt epm: $p $g'
  611. compile endif
  612.  
  613. -- Normally, when you shift a mark left or right, text to the right of the
  614. -- marked area moves with it.  Bob Langer supplied code that lets us shift
  615. -- only what's inside the mark.  The default is the old behavior.
  616. compile if not defined(SHIFT_BLOCK_ONLY)
  617. SHIFT_BLOCK_ONLY = 0
  618. compile endif
  619.  
  620. -- Determines if DBCS support should be included in the macros.  Note
  621. -- that EPM includes internal DBCS support; other versions of E do not.
  622. compile if not defined(WANT_DBCS_SUPPORT)
  623. WANT_DBCS_SUPPORT = 0
  624. compile endif
  625.  
  626. -- When the File Manager copies a file from a HPFS drive to a FAT drive,
  627. -- if the file name isn't in 8.3 format, it gets truncated, with the original
  628. -- name being preserved in a .LONGNAME extended attribute.  Setting this to 1
  629. -- will cause the long name to be displayed on the EPM title bar, instead of the
  630. -- real (short) name.
  631. compile if not defined(WANT_LONGNAMES)
  632. WANT_LONGNAMES = 0
  633. compile endif
  634.  
  635. -- Adds PUSHMARK, POPMARK, PUSHPOS and POPPOS commands.  For EPM, also adds
  636. -- pulldown entries to the action bar.
  637. compile if not defined(WANT_STACK_CMDS)
  638. WANT_STACK_CMDS = 0
  639. compile endif
  640.  
  641. -- WANT_CUA_MARKING causes the mouse definitions to be limited to the CUA actions,
  642. -- instead of the more powerful standard EPM actions.  Also causes typing
  643. -- while a mark exists to delete the mark, and Del to delete a mark if one
  644. -- exists, instead of always deleting a text character.  Can be set to 1, to
  645. -- behave this way all the time, or to 'SWITCH' to enable switching it on and
  646. -- off.  The default is 0, meaning that the standard EPM settings are in effect.
  647. compile if not defined(WANT_CUA_MARKING)
  648. WANT_CUA_MARKING = 0
  649. compile endif
  650.  
  651. -- MOUSE_SUPPORT only applies to EPM.  It can should normally be set to 1,
  652. -- to have mouse support compiled into the base .EX file.  It can be set to
  653. -- 'LINK' to have mouse support linked in at run time, or to 0 to omit mouse
  654. -- support completely.
  655. compile if not defined(MOUSE_SUPPORT)
  656. MOUSE_SUPPORT = 1
  657. compile endif
  658.  
  659. -- WANT_DM_BUFFER specifies whether a "deletemark buffer" is used in EPM.
  660. -- If so, any time a mark is deleted, a copy is saved in a buffer.  An entry on
  661. -- the Edit pulldown can be used to paste this buffer back into the editor.
  662. -- Not as useful as it originally was, since full undo has been added.
  663. compile if not defined(WANT_DM_BUFFER)
  664. WANT_DM_BUFFER = 0
  665. compile endif
  666.  
  667. -- WANT_STREAM_MODE enables stream mode editing, in which we pretend to be a
  668. -- stream mode editor instead of a line mode editor.  Can be set to 1, to
  669. -- behave this way all the time, or to 'SWITCH' to enable switching it on and
  670. -- off.  The default is 0, meaning forget stream mode entirely.
  671. compile if not defined(WANT_STREAM_MODE)
  672. WANT_STREAM_MODE = 0
  673. compile endif
  674.  
  675. -- ENHANCED_ENTER_KEYS (EPM_only) specifies that the user can configure each
  676. -- variant of the enter or ctrl-enter key separately, via a dialog.  Great for
  677. -- LAN installations, so people can use a common .EX but still customize the
  678. -- keys.
  679. compile if not defined(ENHANCED_ENTER_KEYS)
  680. ENHANCED_ENTER_KEYS = 0
  681. compile endif
  682.  
  683. -- RING_OPTIONAL makes it so you can enable or disable having more than one
  684. -- file in the ring.  Pretty useless, but the CUA people insisted on it.
  685. -- Most people will want this to be set to 0, so that you always can load as
  686. -- many files as you like.
  687. compile if not defined(RING_OPTIONAL)
  688. RING_OPTIONAL = 0
  689. compile endif
  690.  
  691. -- SUPPORT_BOOK_ICON specifies whether or not the "Book icon" entry is on
  692. -- the Options pulldown.  Another useless one for internals.
  693. compile if not defined(SUPPORT_BOOK_ICON)
  694. ;compile if EVERSION < '5.50'
  695.    SUPPORT_BOOK_ICON = 1
  696. ; compile else
  697. ;  SUPPORT_BOOK_ICON = 0  -- EPM/G has no book (yet)
  698. ; compile endif
  699. compile endif
  700.  
  701. -- WANT_DYNAMIC_PROMPTS specifies whether support for dynamic prompting is
  702. -- included or not.  (EPM only.)  If support is included, the actual prompts
  703. -- can be enabled or disabled from a menu pulldown.  Keeping this costs about
  704. -- 3k in terms of .EX space.
  705. compile if EPM -- was EVERSION >= '5.21'
  706.  compile if not defined(WANT_DYNAMIC_PROMPTS)
  707. WANT_DYNAMIC_PROMPTS = 1
  708.  compile endif
  709. compile else
  710. WANT_DYNAMIC_PROMPTS = 0  -- Must be 0 for earlier EPM
  711. compile endif
  712.  
  713. -- WANT_BOOKMARKS specifies whether support for bookmarks is included or not.
  714. -- (EPM only.)  Can be set to 0, 1, or 'LINK'.
  715. compile if EPM
  716.  compile if not defined(WANT_BOOKMARKS)
  717. WANT_BOOKMARKS = 'LINK'
  718.  compile endif
  719. compile else
  720. WANT_BOOKMARKS = 0
  721. compile endif
  722.  
  723. -- CHECK_FOR_LEXAM specifies whether or not EPM will check for Lexam, and only include
  724. -- PROOF on the menus if it's available.  Useful for product, if we're not shipping Lexam
  725. -- and don't want to advertise spell checking; a waste of space internally.
  726. compile if EPM
  727.  compile if not defined(CHECK_FOR_LEXAM)
  728. CHECK_FOR_LEXAM = 0
  729.  compile endif
  730. compile else
  731. CHECK_FOR_LEXAM = 0
  732. compile endif
  733.  
  734. -- Set this to 1 to include bracket-matching (Ctrl+[)
  735. compile if not defined(WANT_BRACKET_MATCHING)
  736. WANT_BRACKET_MATCHING = 0
  737. compile endif
  738.  
  739. -- For GPI version of EPM, this lets you select an AVIO-style underline cursor instead
  740. -- of the GPI-style vertical bar.
  741. compile if not defined(UNDERLINE_CURSOR)
  742. UNDERLINE_CURSOR = 0
  743. compile endif
  744.  
  745. -- Select which style pointer you prefer.
  746. compile if EPM & not defined(EPM_POINTER)
  747.  compile if EVERSION < 5.50
  748.    EPM_POINTER = SYSTEM_POINTER    -- AVIO version gets arrow pointer
  749.  compile else
  750.    EPM_POINTER = TEXT_POINTER      -- GPI version gets text pointer
  751.  compile endif
  752. compile endif
  753.  
  754. -- We're getting too big to fit all the standard stuff into EPM.EX, even without
  755. -- user additions, so this new option says to include a separate .EX file for
  756. -- MOUSE, MARKFILT, BOOKMARK, CLIPBRD, CHAROPS, DOSUTIL, ALL, MATH and SORT.
  757. compile if not defined(EXTRA_EX)
  758. EXTRA_EX = 0
  759. compile endif
  760.  
  761. -- Add support for looking up keywords in an index file and getting help.
  762. -- See KWHELP.E for details.  EPM only.
  763. compile if not defined(WANT_KEYWORD_HELP)
  764. WANT_KEYWORD_HELP = 0
  765. compile endif
  766.  
  767. -- By default, in EPM we block the action of action bar mnemonics being
  768. -- automatic accelerators.  Some users might not want this.  Can be 'SWITCH'.
  769. compile if not defined(BLOCK_ACTIONBAR_ACCELERATORS)
  770. BLOCK_ACTIONBAR_ACCELERATORS = 1
  771. compile endif
  772.  
  773. -- Define the default PASTE action for Shift+Ins.  Can be '' (for Paste Lines),
  774. -- 'B' (for Paste Block), or 'C' (for standard PM character mark).
  775. compile if not defined(DEFAULT_PASTE) & EPM
  776. DEFAULT_PASTE = 'C'
  777. compile endif
  778.  
  779. -- Search for a Rexx profile?  (EPM 5.50 or above only.)
  780. compile if not defined(WANT_PROFILE)
  781. WANT_PROFILE = 0
  782. compile endif
  783.  
  784. -- Toggle Escape key?  Default EPM for Boca doesn't use Esc to bring up command
  785. -- dialog, but all "real" EPM users want it.
  786. compile if not defined(TOGGLE_ESCAPE)
  787. TOGGLE_ESCAPE = 0
  788. compile endif
  789.  
  790. -- Toggle Tab key?  Some people want the Tab key to insert a tab, rather than
  791. -- inserting spaces to the next tab stop.
  792. compile if not defined(TOGGLE_TAB)
  793. TOGGLE_TAB = 0
  794. compile endif
  795.  
  796. -- Make menu support optional for people using the E Toolkit who want to
  797. -- use most of the standard macros.  *Not* for most users.
  798. compile if not defined(INCLUDE_MENU_SUPPORT)
  799. INCLUDE_MENU_SUPPORT = 1
  800. compile endif
  801.  
  802. -- For people using the E Toolkit who want to include the base menu support,
  803. -- but supply their own menus.  *Not* for most users.  Omits STDMENU.E,
  804. -- loaddefaultmenu cmd,
  805. compile if not defined(INCLUDE_STD_MENUS)
  806. INCLUDE_STD_MENUS = 1
  807. compile endif
  808.  
  809. -- The compiler support is only included if the bookmark support is; this lets
  810. -- you omit the former while including the latter.
  811. compile if not defined(INCLUDE_WORKFRAME_SUPPORT)
  812.    INCLUDE_WORKFRAME_SUPPORT = 1
  813. compile endif
  814.  
  815. -- For Toolkit developers - set to 0 if you don't want the user to be able
  816. -- to go to line 0.  Affects MH_gotoposition in MOUSE.E and Def Up in STDKEYS.E.
  817. compile if not defined(TOP_OF_FILE_VALID)
  818.    TOP_OF_FILE_VALID = 1
  819. compile endif
  820.  
  821. -- EBOOKIE support desired?  0=no; 1=include bkeys.e; 'LINK'=always link BKEYS
  822. -- at startup; 'DYNALINK'=support for dynamically linking it in.
  823. compile if not defined(WANT_EBOOKIE)
  824.  compile if E3
  825.    WANT_EBOOKIE = 0
  826.  compile else
  827.    WANT_EBOOKIE = 'DYNALINK'
  828.  compile endif
  829. compile endif
  830.  
  831. -- Starting in EPM 5.50, EPM was modified so that when scrolling with the
  832. -- scroll bars, the cursor would stay in the same text-relative location, and
  833. -- could move off the window; pressing a key that moved the cursor would then
  834. -- cause the displayed text to jump back so that the cursor was visible.
  835. -- We were told to make this change in order to comply with CUA, but most
  836. -- users found it horribly confusing and annoying.  Starting with 5.60, we
  837. -- can work either way; the default is now that we do what people prefer.
  838. compile if not defined(KEEP_CURSOR_ON_SCREEN)
  839.    KEEP_CURSOR_ON_SCREEN = 1
  840. compile endif
  841.  
  842. -- E Toolkit users might want to omit support for accessing the application
  843. -- .INI file (e.g., EPM.INI).
  844. compile if not defined(WANT_APPLICATION_INI_FILE)
  845.    WANT_APPLICATION_INI_FILE = 1
  846. compile endif
  847.  
  848. -- Support for a TAGS file (EPM 5.60 or above, only).
  849. compile if EVERSION < '5.60' | not defined(WANT_TAGS)
  850.    WANT_TAGS = 0
  851. compile endif
  852.  
  853. -- Unmark after doing a move mark?
  854. compile if not defined(UNMARK_AFTER_MOVE)
  855.    UNMARK_AFTER_MOVE = 0
  856. compile endif
  857.  
  858. -- Keep EPM's Preferences and Frame menus up after a selection?
  859. compile if not defined(WANT_NODISMISS_MENUS)
  860.    WANT_NODISMISS_MENUS = 1
  861. compile endif
  862.  
  863. -- Allow menu prompting even if status line is at top of edit window
  864. -- (and so menus would overlay prompts)?
  865. compile if not defined(ALLOW_PROMPTING_AT_TOP)
  866.    ALLOW_PROMPTING_AT_TOP = 0
  867. compile endif
  868.  
  869. -- Include support for viewing the EPM User's guide in the Help menu.
  870. compile if not defined(SUPPORT_USERS_GUIDE)
  871.    SUPPORT_USERS_GUIDE = 0
  872. compile endif
  873.  
  874. -- Include support for viewing the EPM Technical Reference in the Help menu.
  875. compile if not defined(SUPPORT_TECHREF)
  876.    SUPPORT_TECHREF = 0
  877. compile endif
  878.  
  879. -- Include support for calling user exits in DEFMAIN, SAVE, NAME, and QUIT.
  880. -- (EPM 5.51+ only; requires isadefproc() ).
  881. compile if EVERSION < '5.51' or not defined(SUPPORT_USER_EXITS)
  882.    SUPPORT_USER_EXITS = 0
  883. compile endif
  884. compile if EVERSION < '5.51' or not defined(INCLUDE_BMS_SUPPORT)
  885.    INCLUDE_BMS_SUPPORT = 0
  886. compile endif
  887. compile if not defined(DELAY_SAVEPATH_CHECK)
  888.    DELAY_SAVEPATH_CHECK = 0
  889. compile endif
  890. compile if EPM & not defined(LOCATE_CIRCLE_STYLE)
  891.    LOCATE_CIRCLE_STYLE = 1
  892. compile endif
  893. compile if EVERSION >= '5.60'
  894.  compile if not defined(LOCATE_CIRCLE_COLOR1)
  895.    LOCATE_CIRCLE_COLOR1 = 16777220
  896.  compile endif
  897.  compile if not defined(LOCATE_CIRCLE_COLOR2)
  898.    LOCATE_CIRCLE_COLOR2 = 16777218
  899.  compile endif
  900. compile endif
  901.  
  902. include NLS_LANGUAGE'.e'
  903.  
  904. -- This defines the "Directory of" string searched for by Alt-1 in DIR output.
  905. -- (User-definable for NLS requirements.)
  906. compile if not defined(DIRECTORYOF_STRING)
  907. DIRECTORYOF_STRING = DIR_OF__MSG
  908. compile endif
  909. -------------------------------------------------------------------------------
  910.  
  911. definit
  912. universal expand_on, matchtab_on, default_search_options
  913. universal vTEMP_FILENAME, vTEMP_PATH, vAUTOSAVE_PATH
  914. compile if EVERSION < 5
  915.    universal ZoomWindowStyle, comsfileid, messy
  916. compile else
  917.    universal edithwnd, MouseStyle, appname
  918.  compile if EVERSION >= '5.20'
  919.    universal app_hini
  920.    universal CurrentHLPFiles
  921.  compile endif
  922.  compile if EVERSION >= '5.21'
  923.    universal vSTATUSCOLOR, vMESSAGECOLOR
  924.  compile endif
  925.  compile if CHECK_FOR_LEXAM
  926.    universal LEXAM_is_available
  927.  compile endif
  928.  compile if WANT_DYNAMIC_PROMPTS
  929.    universal menu_prompt
  930.  compile endif
  931.  compile if ENHANCED_ENTER_KEYS
  932.    universal enterkey, a_enterkey, c_enterkey, s_enterkey
  933.    universal padenterkey, a_padenterkey, c_padenterkey, s_padenterkey
  934.  compile endif
  935.  compile if RING_OPTIONAL
  936.    universal ring_enabled
  937.  compile endif
  938.    universal EPM_utility_array_ID, defaultmenu, font
  939.    universal vDEFAULT_TABS, vDEFAULT_MARGINS, vDEFAULT_AUTOSAVE
  940.    universal  ADDENDA_FILENAME
  941.    universal  DICTIONARY_FILENAME
  942.  compile if WANT_EPM_SHELL
  943.    universal shell_index
  944.  compile endif
  945.  compile if WANT_CUA_MARKING = 'SWITCH'
  946.    universal CUA_marking_switch
  947.  compile endif
  948. compile endif
  949. compile if EVERSION < '4.12'
  950.    universal autosave
  951. compile endif
  952. compile if HOST_SUPPORT
  953.    universal hostcopy
  954. compile endif
  955. compile if SETSTAY='?'
  956.    universal stay
  957. compile endif
  958. compile if WANT_STREAM_MODE = 'SWITCH'
  959.    universal stream_mode
  960. compile endif
  961. compile if WANT_STACK_CMDS = 'SWITCH'
  962.    universal stack_cmds
  963. compile endif
  964. compile if EVERSION >= '5.50'
  965.    universal default_font
  966. compile endif
  967. compile if WANT_LONGNAMES = 'SWITCH'
  968.    universal SHOW_LONGNAMES
  969. compile endif
  970. compile if WANT_PROFILE = 'SWITCH'
  971.    universal REXX_PROFILE
  972. compile endif
  973. compile if TOGGLE_ESCAPE
  974.    universal ESCAPE_KEY
  975. compile endif
  976. compile if TOGGLE_TAB
  977.    universal TAB_KEY
  978. compile endif
  979.    universal save_with_tabs, default_edit_options, default_save_options
  980.    universal last_append_file
  981. compile if BLOCK_ACTIONBAR_ACCELERATORS = 'SWITCH'
  982.    universal CUA_MENU_ACCEL
  983. compile endif
  984.  
  985. compile if defined(my_expand_on)
  986. expand_on        = my_expand_on
  987. compile else
  988. expand_on        = 1
  989. compile endif
  990.                         -- set automatic syntax expansion 0/1
  991. compile if defined(my_matchtab_on)
  992. matchtab_on      = my_matchtab_on
  993. compile else
  994. matchtab_on      = 0
  995. compile endif
  996.                         -- set default matchtab to 0 or 1
  997. compile if EVERSION < 5
  998.  compile if defined(my_ZoomWindowStyle)
  999. ZoomWindowStyle  = my_ZoomWindowStyle
  1000.  compile else
  1001. ZoomWindowStyle  = 1
  1002.  compile endif
  1003.                         -- set default zoom window style
  1004.  compile if EVERSION < '4.12'
  1005.   compile if defined(my_autosave)
  1006. autosave         = my_AUTOSAVE
  1007.   compile else
  1008. autosave         = DEFAULT_AUTOSAVE
  1009.   compile endif
  1010.                         -- set autosave initial value
  1011.  compile endif    -- EVERSION < 4.12
  1012.  compile if WANT_WINDOWS
  1013.   compile if defined(my_messy)
  1014. messy            = my_messy
  1015.   compile else
  1016. messy            = 0
  1017.   compile endif
  1018.                         -- set to 1 for messy-desk windowing
  1019.  compile else        -- No windowing ==> no choice of windowing style.
  1020. messy            = 0    -- Do not change this copy!!!
  1021.  compile endif
  1022.  
  1023. compile endif  -- EVERSION < 5
  1024.  
  1025.  
  1026. -- This option JOIN_AFTER_WRAP specifies whether to join the
  1027. -- next line after a word-wrap.  To see its effect:  set margins to 1 79 1;
  1028. -- go into insert mode; type a few characters into this line to cause a wrap.
  1029. -- (sample next line)
  1030. -- If join_after_wrap = 1, you'll get:
  1031. --    wrap. -- (sample next line)
  1032. -- If join_after_wrap = 0, you'll get:
  1033. --    wrap.
  1034. --    -- (sample next line)
  1035. compile if defined(my_join_after_wrap)
  1036. join_after_wrap = my_join_after_wrap
  1037. compile else
  1038. join_after_wrap = 1
  1039. compile endif
  1040.  
  1041.  
  1042. -- This option CENTER_SEARCH specifies how the cursor moves
  1043. --   during a search or replace operation.
  1044. -- 0 :  Hold the cursor fixed; move the word to the cursor.  Like old E.
  1045. -- 1 :  Move the cursor to the word if it's visible on the current screen,
  1046. --      to minimize text motion.  Else center the word in mid-screen.
  1047. compile if defined(my_center_search)
  1048. center_search = my_center_search
  1049. compile else
  1050. center_search = 1
  1051. compile endif
  1052.  
  1053. compile if not EPM
  1054. -- This option TOP_OF_FILE_FIXED specifies whether the
  1055. --   "Top of File" line is allowed to move down from the top of the window.
  1056. -- 0 :  Allow the line to move down, so that cursor operations act the same
  1057. --      regardless of proximity to top of file.  For example, the key Shift-F5
  1058. --      (center the current line) will move the top-of-file line down if that's
  1059. --      what's needed to center the current line in a small file.
  1060. -- 1 :  Hold the line fixed; some cursor operations will change their behavior
  1061. --      as the cursor approaches the top of file.  Shift-F5 will not center the
  1062. --      current line in a small file.
  1063.  compile if defined(my_top_of_file_fixed)
  1064. top_of_file_fixed = my_top_of_file_fixed
  1065.  compile else
  1066. top_of_file_fixed = 1
  1067.  compile endif
  1068. compile endif
  1069.  
  1070. -- Ver. 4.12:  Some users want only one space after a period or colon when
  1071. -- they reflow a paragraph.  This is a predefined universal variable similar to
  1072. -- top_of_file_fixed, so a macro can switch it on and off when desired for
  1073. -- special purposes.
  1074. --    1 (TRUE)  ==>  supply two spaces after a sentence or colon.
  1075. --    0 (FALSE) ==>  supply only one space.
  1076. compile if EVERSION >= 4    -- not in E3
  1077.  compile if defined(my_two_spaces)
  1078.   two_spaces = my_two_spaces
  1079.  compile else
  1080.   two_spaces = TRUE  -- Default is as before, two spaces after sentence.
  1081.  compile endif
  1082. compile endif
  1083.  
  1084. -- Default options for locate and change commands.  Pick from:
  1085. --
  1086. --   E  Exact match (case sensitive)    C  Case-insensitive (ignore case)
  1087. --   A  All text (ignore marks)         M  Marked area only
  1088. --   +  Advance thru file, top->bott    -  Backward, bottom -> top
  1089. --   F  Forward in line, left->right    R  Reverse in line, right->left
  1090. --
  1091. -- The standard is 'EA+F' to be compatible with previous releases; that's
  1092. -- what you get if you leave this blank.  Many users will prefer 'C'.
  1093. compile if defined(my_default_search_options)
  1094. default_search_options= my_default_search_options
  1095. compile else
  1096. default_search_options=''
  1097. compile endif
  1098.  
  1099. compile if HOST_SUPPORT
  1100.  compile if defined(my_hostcopy)
  1101.    hostcopy= my_hostcopy
  1102.  compile else
  1103.   compile if E3
  1104.    hostcopy='mytecopy'    -- Default for DOS is MYTECOPY.
  1105.   compile else
  1106.    hostcopy='almcopy'     -- Default for OS/2 is the OS/2 version of ALMCOPY.
  1107.   compile endif
  1108.  compile endif
  1109.                         -- Could be mytecopy, e78copy, bondcopy, cp78copy, almcopy, etc.
  1110.                         -- Add options if necessary (e.g., 'mytecopy /nowsf')
  1111. compile endif
  1112.  
  1113.  
  1114. -- EOS2 ver 4.10:  E can now save files with tab compression.  You can choose
  1115. -- to save an individual file with tabs by issuing 'save /t' or 'file /t'.
  1116. -- If you want ALL files saved with tab compression, without specifying
  1117. -- the '/t', set this to 1.
  1118. compile if defined(my_save_with_tabs)
  1119. save_with_tabs = my_save_with_tabs
  1120. compile else
  1121. save_with_tabs = 0
  1122. compile endif
  1123.  
  1124. compile if EVERSION < 5
  1125. -- Four function_key_text strings now for four shift states.
  1126. -- 80 characters (one line) max.  Broken into two strings here,
  1127. -- with arrow graphics replaced with ASCII codes for printability.
  1128.  
  1129.  compile if defined(my_function_key_text)
  1130. function_key_text  = my_function_key_text
  1131.  compile else
  1132.    compile if (WANT_DRAW=F6 | WANT_DRAW='F6') & not SMALL
  1133. function_key_text  = "F1=Help  2=Save  3=Quit  4=File         "||
  1134.                      " 6=Draw  7=Name  8=Edit  9=Undo  10=Next"
  1135.    compile else
  1136. function_key_text  = "F1=Help  2=Save  3=Quit  4=File         "||
  1137.                      "         7=Name  8=Edit  9=Undo  10=Next"
  1138.    compile endif
  1139.  compile endif
  1140.  
  1141.  compile if defined(my_a_function_key_text)
  1142. a_function_key_text= my_a_function_key_text
  1143.  compile else
  1144. a_function_key_text= "F1=LineChars                            "||
  1145.                      "       7="\27"Shift  8=Shift"\26"        10=Prev"
  1146.  compile endif
  1147.  
  1148.  compile if defined(my_c_function_key_text)
  1149. c_function_key_text= my_c_function_key_text
  1150.  compile else
  1151. c_function_key_text= "F1=UpperWord  2=LowerWord  3=UpperMark  "||
  1152.                      "4=LowerMark  5=BeginWord  6=EndWord     "
  1153.  compile endif
  1154.  
  1155.  compile if defined(my_s_function_key_text)
  1156. s_function_key_text= my_s_function_key_text
  1157.  compile else
  1158. s_function_key_text= "F1="\27"Scrl  2=Scrl"\26"  3=Scrl"\24"  4=Scrl"||
  1159.                      \25"  5=CenterLine                               "
  1160.  compile endif
  1161.  
  1162. -- This specifies how long you must hold down a shift/ctrl/alt key before
  1163. -- the function_key_text changes.
  1164. -- It's an arbitrary value:  2000 gives about 3/4 second delay on an AT.
  1165. -- Set this to zero if you don't want the function_key_text to shift.
  1166.  compile if defined(my_function_key_text_delay)
  1167. function_key_text_delay = my_function_key_text_delay
  1168.  compile else
  1169. function_key_text_delay = 2000
  1170.                                                                -- for DOS 3
  1171. -- On OS/2 real mode use about 1/10th of that.
  1172. if machine()='OS2REAL' or dos_version() >= 1000 then
  1173.    function_key_text_delay = function_key_text_delay % 10      -- for OS/2 real
  1174. endif
  1175.   compile if EVERSION >= '4.00'  -- Save a few bytes in DOS version
  1176. -- In protect mode use machine-independent units, milliseconds!
  1177. if machine()='OS2PROTECT' then
  1178.    function_key_text_delay = 800
  1179.                                                                -- OS/2 protect
  1180. endif
  1181.   compile endif
  1182.  compile endif
  1183.  
  1184. -- Note:  You'll want to change the f.k.texts if you define new keysets with
  1185. -- different function keys.  The preferred method is:
  1186. --    define your new keyset in a separate file (like CKEYS.E);
  1187. --    write a small condition-check to select your keyset (like CKEYSEL.E);
  1188. --    assign the new function_key_texts in the select file.
  1189. compile endif  -- EVERSION < 5
  1190.  
  1191. compile if WANT_LONGNAMES = 'SWITCH'
  1192.  compile if defined(my_SHOW_LONGNAMES)
  1193.    SHOW_LONGNAMES = my_SHOW_LONGNAMES
  1194.  compile else
  1195.    SHOW_LONGNAMES = 0
  1196.  compile endif
  1197. compile endif
  1198.  
  1199. compile if WANT_PROFILE = 'SWITCH'
  1200.  compile if defined(my_REXX_PROFILE)
  1201.    REXX_PROFILE = my_REXX_PROFILE
  1202.  compile else
  1203.    REXX_PROFILE = 0
  1204.  compile endif
  1205. compile endif
  1206.  
  1207. compile if TOGGLE_ESCAPE
  1208.    ESCAPE_KEY = 0
  1209. compile endif
  1210. compile if TOGGLE_TAB
  1211.    TAB_KEY = 0
  1212. compile endif
  1213.  
  1214. compile if SETSTAY='?'
  1215.  compile if defined(my_stay)
  1216.    stay = my_stay
  1217.  compile else
  1218.    stay = 0
  1219.  compile endif
  1220. compile endif
  1221.  
  1222. ; We now save the constants in universal variables.  This way, they can be
  1223. ; over-ridden at execution time by a definit (e.g., the user might check an
  1224. ; environment variable to see if a VDISK has been defined, and if so, set the
  1225. ; temp_path to point to it).  The constants are used as default initialization,
  1226. ; and for compatability with older macros.
  1227. vTEMP_FILENAME = TEMP_FILENAME
  1228. vTEMP_PATH = TEMP_PATH
  1229. vAUTOSAVE_PATH = AUTOSAVE_PATH
  1230.  
  1231. ; Default options to be added to the EDIT command.  Normally null, some users
  1232. ; might prefer to make it '/L'.
  1233. ;  /L means to use the DOS convention that any line feed character (x'0A')
  1234. ;     not paired with a carriage return (x'0D') should be left alone;
  1235. ;     this is useful if you wish to use the line feed as a printer control.
  1236. ;  /U means to use the Unix convention that a line feed alone is sufficient
  1237. ;     to start a new line, whether or not it's paired with a CR.
  1238. ; The default (if no options are given) is /U, the traditional E treatment.
  1239. ; If you make /L the default, it can still be overridden on any specific
  1240. ; EDIT command as by "EDIT /U filename".
  1241. ; This choice makes no difference for normal text files with CR-LF for newline.
  1242. compile if defined(my_default_edit_options)
  1243. default_edit_options= my_default_edit_options
  1244. compile else
  1245. default_edit_options=''
  1246. compile endif
  1247.  
  1248. ; Default options to be added to the SAVE command.  Normally null, some users
  1249. ; might prefer to make it '/S' (EPM 5.51 or above).
  1250. compile if defined(my_default_save_options)
  1251. default_save_options= my_default_save_options
  1252. compile else
  1253. default_save_options=''
  1254. compile endif
  1255.  
  1256. ; In EPM you can choose one of several (well, only 2 for now) prefabricated
  1257. ; styles of mouse behavior.  You can change styles on the fly with the command
  1258. ; MOUSESTYLE or MS.  See MOUSE.E for style descriptions; brief summaries are:
  1259. ;  1: Block and line marks for programmers.
  1260. ;     Button 1 drag = block mark, button 2 drag = line.
  1261. ;     Button 1 double-click = unmark.  Button 2 double-click = word-mark.
  1262. ;  2: Character and line marks.
  1263. ;     Same as style 1, but button 1 drag = character mark rather than block.
  1264. ;  3: A marking style of point-the-corners instead of drag-paint.
  1265. ;     (Not done yet.)
  1266. compile if EPM
  1267.  compile if defined(my_MouseStyle)
  1268. MouseStyle = my_MouseStyle
  1269.  compile else
  1270. MouseStyle = 1
  1271.  compile endif
  1272.  compile if SPELL_SUPPORT = 'DYNALINK'  -- For EPM, initialize here if DYNALINK,
  1273.   compile if defined(my_ADDENDA_FILENAME)  -- so can be overridden by CONFIG info.
  1274.      ADDENDA_FILENAME= my_ADDENDA_FILENAME
  1275.   compile else
  1276.      ADDENDA_FILENAME= 'c:\lexam\lexam.adl'
  1277.   compile endif
  1278.  
  1279.   compile if defined(my_DICTIONARY_FILENAME)
  1280.      DICTIONARY_FILENAME= my_DICTIONARY_FILENAME
  1281.   compile else
  1282.      DICTIONARY_FILENAME= 'c:\lexam\us.dct'
  1283.   compile endif
  1284.  compile endif  -- SPELL_SUPPORT
  1285.  compile if WANT_EPM_SHELL
  1286.    shell_index = 0
  1287.  compile endif
  1288.  compile if WANT_CUA_MARKING = 'SWITCH'
  1289.   compile if defined(my_CUA_marking_switch)
  1290.    CUA_marking_switch = my_CUA_marking_switch
  1291.    compile if my_CUA_marking_switch
  1292.    'togglecontrol 25 1'
  1293.    compile endif
  1294.   compile else
  1295.    CUA_marking_switch = 0           -- Default is off, for standard EPM behavior.
  1296.   compile endif
  1297.  compile elseif WANT_CUA_MARKING = 1
  1298.    'togglecontrol 25 1'
  1299.  compile endif
  1300. compile endif  -- EPM
  1301.  
  1302. ------------ Rest of this file isn't normally changed. ------------------------
  1303.  
  1304. compile if EVERSION < '4.12'
  1305. -- Ver. 4.11B:  It's important that the base keyset, edit_keys, be
  1306. -- initialized early in the start-up process, before any modules are linked.
  1307. -- Linked modules can now contain key definitions that overlay the base keyset,
  1308. -- and they need a base to overlay onto.  Don't delete this line!
  1309. keys edit_keys
  1310.  
  1311. -- Set some defaults.  In EOS2 4.12 and later, this is done in a DEFLOAD.
  1312. 'xcom tabs'    DEFAULT_TABS
  1313. 'xcom margins' DEFAULT_MARGINS
  1314. compile endif
  1315.  
  1316. compile if EVERSION >= 5
  1317. vDEFAULT_TABS    = DEFAULT_TABS
  1318. vDEFAULT_MARGINS = DEFAULT_MARGINS
  1319. vDEFAULT_AUTOSAVE= DEFAULT_AUTOSAVE
  1320.  
  1321.  compile if defined(my_APPNAME)
  1322. appname=my_APPNAME
  1323.  compile else
  1324. appname=leftstr(getpminfo(EPMINFO_EDITEXSEARCH),3)  -- Get the .ex search path
  1325.                               -- name (this should be a reliable way to get a
  1326.                               -- unique application under which to to store
  1327.                               -- data in os2.ini.  I.e. EPM (EPMPATH) would be
  1328.  compile endif                -- 'EPM', LaMail (LAMPATH) would be 'LAM'
  1329.  
  1330. ; What was the ring_menu_array_id is now the EPM_utility_array_id, to reflect
  1331. ; that it's a general-purpose array.  An array is a file, so it's cheaper to
  1332. ; use the same one whenever possible, rather than creating new ones.  We use a
  1333. ; prefix to keep indices unique.  Current indices are:
  1334. ;   menu.     -- Menu index; commented out
  1335. ;   bmi.      -- Bookmark index
  1336. ;   bmn.      -- Bookmark name
  1337. ;   shell_f.  -- Shell fileid
  1338. ;   shell_h.  -- Shell handle
  1339. ;   si.       -- Style index
  1340. ;   sn.       -- Style name
  1341. ;   F         -- File id for Ring_more command; not used as of EPM 5.20
  1342. do_array 1, EPM_utility_array_ID, "array.EPM"   -- Create this array.
  1343.   compile if 0  -- LAM: Delete this feature; nobody used it, and it slowed things down.
  1344. one = 1                                          -- (Value is a VAR, so have to kludge it.)
  1345. do_array 2, EPM_utility_array_ID, 'menu.0', one           -- Item 0 says there is one item.
  1346. do_array 2, EPM_utility_array_ID, 'menu.1', defaultmenu   -- Item 1 is the default menu name.
  1347.   compile endif  -- 0
  1348. zero = 0                                         -- (Value is a VAR, so have to kludge it.)
  1349. do_array 2, EPM_utility_array_ID, 'bmi.0', zero    -- Index of 0 says there are no bookmarks
  1350. do_array 2, EPM_utility_array_ID, 'si.0', zero     -- Set Style Index 0 to "no entries."
  1351. compile endif  -- EVERSION >= 5
  1352.  
  1353. compile if EXTRA_EX
  1354.  compile if defined(my_EXTRA_EX_NAME)
  1355.   'linkverify' my_EXTRA_EX_NAME
  1356.  compile else
  1357.   'linkverify EXTRA'
  1358.  compile endif
  1359. compile endif
  1360.  
  1361. compile if EVERSION >= 5
  1362.  compile if EVERSION >= '5.20'
  1363.   compile if WANT_APPLICATION_INI_FILE
  1364.    compile if EVERSION >= '6.00'
  1365. app_hini=dynalink32(ERES_DLL, 'ERESQueryHini', gethwndc(EPMINFO_EDITCLIENT) ,2)
  1366.    compile elseif EVERSION >= '5.53'
  1367. app_hini=dynalink(ERES_DLL, 'ERESQUERYHINI', gethwnd(EPMINFO_EDITCLIENT) ,2)
  1368.    compile else
  1369. app_hini=getpminfo(EPMINFO_HINI)
  1370.    compile endif  -- 6.00 / 5.53
  1371. if not app_hini then
  1372.    call WinMessageBox('Bogus Ini File Handle', '.ini file handle =' app_hini, 16416)
  1373.    'postme inifileupdate 1'
  1374. endif
  1375.   compile endif  -- WANT_APPLICATION_INI_FILE
  1376. CurrentHLPFiles = 'epm.hlp'
  1377.  compile endif  -- 5.20
  1378. ;compile if defined(my_TILDE)
  1379. ;  tilde = my_TILDE
  1380. ;compile elseif EVERSION > '5.20'
  1381. ;  tilde = '~'
  1382. ;compile else
  1383. ;if dos_version() >= 1020 then
  1384. ;   tilde = ''
  1385. ;else
  1386. ;   tilde = '~'
  1387. ;endif
  1388. ;compile endif
  1389.  compile if defined(my_FONT)
  1390.    font = my_FONT
  1391.   compile if EVERSION < 5.21
  1392.    if not my_FONT then call setfont(0, 0); endif  -- If FALSE then Togglefont
  1393.   compile endif
  1394.  compile else
  1395.    font = TRUE                         -- default font is large
  1396.  compile endif
  1397.  compile if RING_OPTIONAL
  1398.   compile if defined(my_RING_ENABLED)
  1399.     ring_enabled = my_RING_ENABLED
  1400.   compile else
  1401.     ring_enabled = 1
  1402.   compile endif
  1403.   compile if WANT_APPLICATION_INI_FILE
  1404.    newcmd=queryprofile( app_hini, appname, INI_RINGENABLED)
  1405.    if newcmd<>'' then ring_enabled = newcmd; endif
  1406.   compile endif
  1407.    if not ring_enabled then
  1408.   compile if EVERSION < '5.53'
  1409.       'togglecontrol 20 0'
  1410.   compile else
  1411.       'toggleframe 4 0'
  1412.   compile endif
  1413.    endif
  1414.  compile endif  -- RING_OPTIONAL
  1415.  compile if WANT_STACK_CMDS = 'SWITCH'
  1416.    stack_cmds = 0
  1417.   compile if WANT_APPLICATION_INI_FILE
  1418.    newcmd=queryprofile( app_hini, appname, INI_STACKCMDS)
  1419.    if newcmd<>'' then stack_cmds = newcmd; endif
  1420.   compile endif
  1421.  compile endif
  1422.  compile if BLOCK_ACTIONBAR_ACCELERATORS = 'SWITCH'
  1423.   compile if defined(my_CUA_MENU_ACCEL)
  1424.    CUA_MENU_ACCEL = my_CUA_MENU_ACCEL
  1425.   compile else
  1426.    CUA_MENU_ACCEL = 0
  1427.   compile endif
  1428.   compile if WANT_APPLICATION_INI_FILE
  1429.    newcmd=queryprofile( app_hini, appname, INI_CUAACCEL)
  1430.    if newcmd<>'' then CUA_MENU_ACCEL = newcmd; endif
  1431.   compile endif
  1432.  compile endif
  1433.  compile if CHECK_FOR_LEXAM
  1434.   compile if EVERSION >= '5.51'
  1435.     LEXAM_is_available = (lexam(-1) <> '')
  1436.   compile else
  1437.    compile if EVERSION >= '5.21'
  1438.     display -10
  1439.    compile else
  1440.     display -2
  1441.    compile endif
  1442.     LEXAM_is_available = (-326=dynalink(LEXAM_DLL, 'LAM@Watson', 0))
  1443.     if LEXAM_is_available then -- "Unrecognized procedure name" - i.e., library was found.
  1444.        call dynafree(LEXAM_DLL); call dynafree(LEXAM_DLL)
  1445.     endif
  1446.    compile if EVERSION >= '5.21'
  1447.     display 10
  1448.    compile else
  1449.     display 2
  1450.    compile endif
  1451.   compile endif  -- EVERSION >= 5.60
  1452.  compile endif  -- CHECK_FOR_LEXAM
  1453.  compile if INCLUDE_MENU_SUPPORT & INCLUDE_STD_MENUS
  1454. 'loaddefaultmenu'
  1455.  compile endif
  1456.  compile if EVERSION > '5.20'
  1457. 'loadaccel'
  1458.  compile endif
  1459.  compile if WANT_DYNAMIC_PROMPTS
  1460.   compile if defined(my_MENU_PROMPT)
  1461.    menu_prompt = my_MENU_PROMPT
  1462.   compile else
  1463. ;  menu_prompt = 0       -- Default is to not have it (at least, internally).
  1464.    menu_prompt = 1       -- (Start with it on for now, to get it beta tested.)
  1465.   compile endif
  1466.  compile endif  -- DYNAMIC_PROMPTS
  1467. compile endif  -- EVERSION >= 5
  1468.  
  1469. last_append_file = ''   -- Initialize for DEFC APPEND.
  1470.  
  1471. compile if not EPM
  1472.  compile if E3
  1473. 'xcom e /n /h coms.e'
  1474. getfileid comsfileid    -- initialize comsfileid for other macros
  1475.  
  1476. -- Make sure the top ring is active.  This E command (any old file
  1477. -- would do) activates the top ring.
  1478. 'xcom e /n coms.e'; 'xcom q'
  1479.  compile else
  1480. ; 4.12:  We no longer need to load the COMS.E file here, it's done
  1481. ; automatically.  And no need to query comsfileid, it's always 0.
  1482. ; And no need to activate the top ring after loading COMS.E.  Now it's simply:
  1483. comsfileid=0
  1484.  compile endif  -- E3
  1485.  
  1486. -- Ver 3.11:  move color initializations to init_window() in WINDOW.E.
  1487. -- Much of it was repeated there anyway.
  1488. call start_screen()
  1489.  
  1490. compile else       -- EPM
  1491. ; Initialize the colors and paint the window.  (Done in WINDOW.E for non-EPM versions.)
  1492. .textcolor  = TEXTCOLOR
  1493. .markcolor  = MARKCOLOR
  1494. compile if EVERSION < '5.21'
  1495. .statuscolor  = STATUSCOLOR
  1496. .messagecolor = MESSAGECOLOR
  1497. compile else
  1498. vSTATUSCOLOR  = STATUSCOLOR
  1499. vMESSAGECOLOR = MESSAGECOLOR
  1500.  compile if defined(STATUS_TEMPLATE)
  1501. 'setstatusline' STATUS_TEMPLATE
  1502.  compile elseif STATUSCOLOR <> 240  -- If different than the default...
  1503.  'setstatusline'    -- Just set the color
  1504.  compile endif
  1505.  compile if MESSAGECOLOR <> 252  -- If different than the default...
  1506.  'setmessageline'   -- Set the messageline color
  1507.  compile endif
  1508. compile endif  -- 5.21
  1509. compile if ENHANCED_ENTER_KEYS
  1510.  compile if ENTER_ACTION='' | ENTER_ACTION='ADDLINE'  -- The default
  1511.    enterkey=1; a_enterkey=1; s_enterkey=1; padenterkey=1; a_padenterkey=1; s_padenterkey=1
  1512.  compile elseif ENTER_ACTION='NEXTLINE'
  1513.    enterkey=2; a_enterkey=2; s_enterkey=2; padenterkey=2; a_padenterkey=2; s_padenterkey=2
  1514.  compile elseif ENTER_ACTION='ADDATEND'
  1515.    enterkey=3; a_enterkey=3; s_enterkey=3; padenterkey=3; a_padenterkey=3; s_padenterkey=3
  1516.  compile elseif ENTER_ACTION='DEPENDS'
  1517.    enterkey=4; a_enterkey=4; s_enterkey=4; padenterkey=4; a_padenterkey=4; s_padenterkey=4
  1518.  compile elseif ENTER_ACTION='DEPENDS+'
  1519.    enterkey=5; a_enterkey=5; s_enterkey=5; padenterkey=5; a_padenterkey=5; s_padenterkey=5
  1520.  compile elseif ENTER_ACTION='STREAM'
  1521.    enterkey=6; a_enterkey=6; s_enterkey=6; padenterkey=6; a_padenterkey=6; s_padenterkey=6
  1522.  compile endif
  1523.  compile if C_ENTER_ACTION='ADDLINE'
  1524.    c_enterkey=1; c_padenterkey=1;
  1525.  compile elseif C_ENTER_ACTION='' | C_ENTER_ACTION='NEXTLINE'  -- The default
  1526.    c_enterkey=2; c_padenterkey=2;
  1527.  compile elseif C_ENTER_ACTION='ADDATEND'
  1528.    c_enterkey=3; c_padenterkey=3;
  1529.  compile elseif C_ENTER_ACTION='DEPENDS'
  1530.    c_enterkey=4; c_padenterkey=4;
  1531.  compile elseif C_ENTER_ACTION='DEPENDS+'
  1532.    c_enterkey=5; c_padenterkey=5;
  1533.  compile elseif C_ENTER_ACTION='STREAM'
  1534.    c_enterkey=6; c_padenterkey=6;
  1535.  compile endif
  1536. compile endif -- ENHANCED_ENTER_KEYS
  1537.  
  1538. compile if WANT_STREAM_MODE = 'SWITCH'
  1539.  compile if defined(my_STREAM_MODE)
  1540.    stream_mode = my_STREAM_MODE
  1541.   compile if my_STREAM_MODE
  1542.    'togglecontrol 24 1'
  1543.   compile endif
  1544.  compile elseif ENTER_ACTION='STREAM'
  1545.    stream_mode = 1
  1546.    'togglecontrol 24 1'
  1547.  compile else
  1548.    stream_mode = 0
  1549.  compile endif
  1550. compile elseif WANT_STREAM_MODE = 1
  1551.    'togglecontrol 24 1'
  1552. compile endif
  1553.  
  1554. compile if EVERSION >= '5.50'
  1555.   -- default editor font
  1556.   -- .font=registerfont('Courier', 12, 0)
  1557.    default_font = 1
  1558.    call fixup_cursor()
  1559. compile endif
  1560.  
  1561. ; repaint_window()
  1562. compile endif
  1563.  
  1564. compile if LINK_HOST_SUPPORT
  1565.  compile if HOST_SUPPORT = 'EMUL' | HOST_SUPPORT = 'E3EMUL'
  1566.   'linkverify E3EMUL'
  1567.  compile elseif HOST_SUPPORT = 'SRPI'
  1568.   'linkverify SLSRPI'
  1569.  compile else
  1570.    *** Error - LINK_HOST_SUPPORT not supported for your HOST_SUPPORT method.
  1571.  compile endif
  1572. compile endif
  1573.  
  1574. compile if MOUSE_SUPPORT = 'LINK' & EPM & not EXTRA_EX
  1575.   'linkverify MOUSE'
  1576. compile endif
  1577.  
  1578. compile if WANT_BOOKMARKS = 'LINK' & not EXTRA_EX
  1579.   'linkverify BOOKMARK'
  1580. compile endif       -- Bookmarks
  1581.  
  1582. compile if WANT_TAGS = 'LINK' /* & not EXTRA_EX */
  1583.   'linkverify TAGS'
  1584. compile endif       -- TAGs
  1585.  
  1586. compile if WANT_EBOOKIE = 'LINK'
  1587.   'linkverify BKEYS'
  1588. compile endif
  1589.  
  1590. compile if SPELL_SUPPORT = 'LINK'
  1591.  compile if EPM
  1592.   'linkverify EPMLEX'
  1593.  compile elseif EOS2
  1594.   'linkverify EOS2LEX'
  1595.  compile else
  1596.    *** Error - SPELL_SUPPORT = 'LINK' not valid for E3.
  1597.  compile endif
  1598. compile elseif SPELL_SUPPORT = 'DYNALINK'
  1599. -----------------  End of DEFINIT  ------------------------------------------
  1600. define
  1601.  compile if EPM
  1602.    LEX_EX = 'EPMLEX'
  1603.  compile elseif EOS2
  1604.    LEX_EX = 'EOS2LEX'
  1605.  compile else
  1606.    *** Error - SPELL_SUPPORT = 'DYNALINK' not valid for E3.
  1607.  compile endif
  1608.  
  1609. defc syn = link_exec(LEX_EX, 'SYN', arg(1))
  1610.  
  1611. defc proof = link_exec(LEX_EX, 'PROOF', arg(1))
  1612.  
  1613. defc proofword, verify = link_exec(LEX_EX, 'VERIFY', arg(1))
  1614.  
  1615.  compile if EPM
  1616. defc dict = link_exec(LEX_EX, 'DICT', arg(1))
  1617.  compile endif
  1618. compile endif       -- Spell_Support
  1619.  
  1620. compile if WANT_EBOOKIE = 'DYNALINK'
  1621. defc bookie = link_exec('bkeys', 'bookie', arg(1))
  1622. compile endif
  1623.  
  1624. compile if WANT_TAGS = 'DYNALINK'
  1625. defc findtag = link_exec('tags', 'findtag', arg(1))
  1626. defc tagsfile = link_exec('tags', 'tagsfile', arg(1))
  1627. compile endif       -- TAGs
  1628.  
  1629. -- 4.10A:  Move the compile-if here from above, simpler.
  1630. compile if EVERSION >= '4.0' & EVERSION < 5
  1631.  compile if ASK_BEFORE_LEAVING
  1632.   include 'exit.e'
  1633.  compile endif
  1634. compile endif
  1635.  
  1636. compile if WANT_APPLICATION_INI_FILE
  1637. defc inifileupdate
  1638.    universal app_hini
  1639.    parse arg iteration .
  1640.    compile if EVERSION >= '6.00'
  1641. app_hini=dynalink32(ERES_DLL, 'ERESQueryHini', gethwndc(EPMINFO_EDITCLIENT) ,2)
  1642.    compile elseif EVERSION >= '5.53'
  1643. app_hini=dynalink(ERES_DLL, 'ERESQUERYHINI', gethwnd(EPMINFO_EDITCLIENT) ,2)
  1644.    compile else
  1645. app_hini=getpminfo(EPMINFO_HINI)
  1646.    compile endif  -- 6.00 / 5.53
  1647. if app_hini then
  1648.    if iteration=1 then s=''; else s='s'; endif
  1649.    sayerror 'ini file handle received as' app_hini 'after' iteration 'attempt's
  1650. elseif iteration>10 then
  1651.    call WinMessageBox('Bogus Ini File Handle', 'Giving up after' iteration 'attempts.', 16416)
  1652. else
  1653.    'postme inifileupdate' (iteration+1)
  1654. endif
  1655. compile endif  -- WANT_APPLICATION_INI_FILE
  1656.