home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / p2help21.exe / HELP / CPE.HLP (.txt)
OS/2 Help File  |  1995-04-21  |  1MB  |  38,595 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Beginner's Tutorial ΓòÉΓòÉΓòÉ
  3.  
  4. The "PREDITOR/2 Beginner's Tutorial" is designed to introduce you to the 
  5. product's features and highlight a few features for you to test. 
  6.  
  7. To familiarize yourself with how PREDITOR/2 works with you to adapt to your 
  8. programming style and increase your productivity, read through the "Beginner's 
  9. Tutorial" and test the product for yourself. 
  10.  
  11.  
  12. ΓòÉΓòÉΓòÉ 1.1. Introduction to PREDITOR/2 ΓòÉΓòÉΓòÉ
  13.  
  14. Compuware Corporation introduces a new code editor for demanding OS/2 
  15. programmers who need an editor they can tailor to their specific requirements. 
  16. PREDITOR/2 is designed for OS/2 programmers who want to adjust their tools to 
  17. reach peak productivity. 
  18.  
  19. PREDITOR/2, currently available by mail from Compuware and Indelible Blue, is a 
  20. graphical, 32-bit editor equipped with powerful features, including the ability 
  21. to display multiple windows, search across multiple files, edit and compile 
  22. simultaneously, and emulate other editors.  But for programmers who want more, 
  23. Compuware has taken the unusual step of providing access to most of 
  24. PREDITOR/2's own source code so you can customize existing features to your 
  25. liking and create new options. 
  26.  
  27. With PREDITOR/2's Multiple Document Interface (MDI), you can view different 
  28. files in separate windows, or different sections of the same file in multiple 
  29. windows.  You can work in as many windows, buffers, and files as you want and 
  30. with as large a file as your system can handle. And you can undo and redo an 
  31. unlimited number of changes. 
  32.  
  33. PREDITOR/2's dialog boxes enable you to quickly customize the editor's look and 
  34. feel. You can also point and click to set the editor to emulate the commands 
  35. and keystrokes of all previous generation editors--Brief, vi, Common User 
  36. Access (CUA), Emacs, and ISPF--and to automatically launch the compiler 
  37. appropriate for the programming language in use, whether it s C, C++, COBOL, 
  38. REXX, or a host of others. 
  39.  
  40.  
  41. ΓòÉΓòÉΓòÉ 1.1.1. Commonly used terms ΓòÉΓòÉΓòÉ
  42.  
  43. The following terms and definitions are used throughout the PREDITOR/2 online 
  44. help. 
  45.  
  46. Buffer 
  47.           A buffer is your copy of the file that you are editing.  It is a 
  48.           temporary holding place from which you can view or edit a file.  The 
  49.           changes you make to a buffer do not affect its corresponding file 
  50.           until you save these changes. 
  51.  
  52.           Unlike other editors, a buffer in PREDITOR/2 is not associated with a 
  53.           specific window. You can display any buffer in any window at any 
  54.           time. In multiple document interface (MDI) mode, you can display the 
  55.           same buffer in multiple windows. 
  56. Current 
  57.           Something that is active, or the focal point of activity. For 
  58.           example, the current position is the spot where the cursor is 
  59.           flashing. The current buffer is the buffer to which normal editing 
  60.           commands apply. 
  61. Dialog box 
  62.           A pop-up box (window) in which you enter information. These boxes are 
  63.           closed by pressing the appropriate button within the box or 
  64.           double-clicking on the icon in the upper left corner. 
  65. Display 
  66.           The area that is visible on the monitor (also use screen). Compare 
  67.           this to window, through which you view the contents of a buffer. 
  68. Keymap 
  69.           A keyboard definition that determines how your keyboard will behave. 
  70.           PREDITOR/2 uses a keymap to emulate other editors. You can also 
  71.           customize PREDITOR/2 by changing or adding your own keymaps. 
  72. Message box 
  73.           A pop-up window that contains a message or warning regarding the 
  74.           current action. You usually are not required to enter information in 
  75.           these boxes. Message boxes are closed by pressing the appropriate 
  76.           button within the box. 
  77. Scrap 
  78.           The scrap buffer is a temporary storage place and is not associated 
  79.           with any file or window. Any text that you wish to copy or move is 
  80.           placed into the scrap buffer. This is sometimes referred to as a 
  81.           clipboard. 
  82. Selection 
  83.           A marked block or region of text. 
  84. Window 
  85.           An area of the screen through which you can view the contents of a 
  86.           buffer. A window may take up the entire display or only a part of it, 
  87.           or may be as small as an icon. More than one window can be open while 
  88.           using PREDITOR/2 in MDI mode. You can change the size and location of 
  89.           a window, even overlapping them or positioning them side by side. 
  90.           Since a window is not associated with a specific buffer, you can use 
  91.           the buffer commands to change the buffer that is displayed in a 
  92.           window. 
  93.  
  94.  
  95. ΓòÉΓòÉΓòÉ 1.1.2. Installation Utility ΓòÉΓòÉΓòÉ
  96.  
  97. Unlike most OS/2 products, PREDITOR/2 provides an installation utility which 
  98. you use to update, restore, or delete the editor from your system. 
  99.  
  100. To perform one of these activities, 
  101.  
  102.  1. Double-click on the PREDITOR/2 folder icon.  The PREDITOR/2 - Icon View 
  103.     window appears, displaying several icons. 
  104.  
  105.  2. Double-click on the Installation Utility icon. 
  106.  
  107.     The Installation and Maintenance window opens, displaying a list of 
  108.     products you can work with. 
  109.  
  110.  3. Select PREDITOR/2 2.1 from this list. 
  111.  
  112.     Select the Action menu from the menu bar. This menu displays the different 
  113.     ways to modify the editor on your system. 
  114.  
  115.  4. Change the editor's state as you desire, or simply close the Installation 
  116.     Utility by double-clicking in the box at the upper left corner of the 
  117.     window or selecting Exit from the File menu. 
  118.  
  119.     The main editor window is displayed. 
  120.  
  121. Note:  Personalizing the Editor 
  122.  
  123. The Personalizing PREDITOR/2 section shows you how to alter PREDITOR/2 so that 
  124. your personalized preferences are automatically set each time you open the 
  125. editor. 
  126.  
  127.  
  128. ΓòÉΓòÉΓòÉ 1.1.3. The Stub Program ΓòÉΓòÉΓòÉ
  129.  
  130. A benefit of using PREDITOR/2 is your ability to quickly load the editor from 
  131. your OS/2 command line. The first time you run PREDITOR/2 (C.EXE), it starts an 
  132. editor session.  The stub program enables you to close this editor session and 
  133. re-open it later, at the exact location where you left off.  Most products 
  134. reload a copy of the product, while PREDITOR/2 opens the same copy.  The stub 
  135. program saves you time that other products require. 
  136.  
  137. To return to PREDITOR/2 via the stub program, 
  138.  
  139.  1. Open an OS/2 window. 
  140.  
  141.  2. Type C or C.EXE at the command prompt and press Enter. 
  142.  
  143. or 
  144.  
  145.  1. Double-click on the PREDITOR/2 icon. 
  146.  
  147. The editor window is displayed. 
  148.  
  149.  
  150. ΓòÉΓòÉΓòÉ 1.1.3.1. Advantages to Using the Stub ΓòÉΓòÉΓòÉ
  151.  
  152. Quick Loading Time 
  153.  
  154. The first time you run C.EXE, it loads the full editor.  After that (assuming 
  155. you do not exit the editor), C.EXE loads quickly and passes its command line 
  156. parameters to the editor, which is already running.  Any files specified are 
  157. immediately opened. 
  158.  
  159. Convenient Access 
  160.  
  161. From an OS/2 window, you can easily start the editor using the stub program. 
  162. If you know the names of files that you want to edit, you can have these files 
  163. quickly loaded, open, and ready to edit.  For example, typing C:\CONFIG.SYS 
  164. *.CPP displays the editor with the CONFIG.SYS file and all .CPP files in the 
  165. current directory ready to edit. 
  166.  
  167. Drag and Drop 
  168.  
  169. As an alternative to typing a file name to start the editor with a specified 
  170. file, you can use the drag and drop method.  Simply drag and drop a file object 
  171. onto the stub icon (this icon was automatically created for you) or onto the 
  172. running editor. The editor is displayed in the foreground with the specified 
  173. file loaded, open, and ready to edit. 
  174.  
  175. WorkFrame/2 Support 
  176.  
  177. If you use the IBM WorkFrame/2, use the -W parameter when invoking C.EXE.  This 
  178. parameter enables you to load files in one running editor rather than loading a 
  179. new editor each time you double-click on a file name.  PREDITOR/2 also uses the 
  180. wf_goto_next_error() and wf_goto_prev_error() functions to step through the 
  181. list of WorkFrame/2 compile errors. 
  182.  
  183.  
  184. ΓòÉΓòÉΓòÉ 1.2. Personalizing PREDITOR/2 ΓòÉΓòÉΓòÉ
  185.  
  186. PREDITOR/2 is designed as a powerful editor which you can so fully adapt to 
  187. your personal preferences that the product becomes almost transparent.  It is 
  188. an editor that works the way you want it to work and doesn't get in your way. 
  189. By personalizing the editor, you can more easily do your job without a lot of 
  190. overhead. 
  191.  
  192. There are three approaches toward personalizing your editor: 
  193.  
  194. Customizing using the Settings notebook. 
  195.  
  196. Configuring by editing the CPE.CFG file and LOCAL.PEL file. 
  197.  
  198. Programming with the Professional Extension Language. 
  199.  
  200.  
  201. ΓòÉΓòÉΓòÉ 1.2.1. Customizing ΓòÉΓòÉΓòÉ
  202.  
  203. One of the ways in which PREDITOR/2 distinguishes itself from other text 
  204. editors is its extensive customization options.  Customizing your work 
  205. environment to suit your needs can increase your productivity.  However, if 
  206. customizing your editor is a time-consuming and tedious task, you are not 
  207. likely to do it. Fortunately, PREDITOR/2 enables you to make modifications 
  208. easily and become more productive more quickly. 
  209.  
  210. In this Section 
  211.  
  212. Notebook settings 
  213.  
  214. The Options Menu 
  215.  
  216.  
  217. ΓòÉΓòÉΓòÉ 1.2.1.1. The Options Menu ΓòÉΓòÉΓòÉ
  218.  
  219. To customize, simply click on the Options menu in the menu bar and select the 
  220. feature you wish to modify. PREDITOR/2 has intuitive dialog boxes that quickly 
  221. guide you through making changes. 
  222.  
  223.  
  224. ΓòÉΓòÉΓòÉ 1.2.1.2. Notebook Settings ΓòÉΓòÉΓòÉ
  225.  
  226. The first step to personalizing your editor is to open the Settings notebook. 
  227. This notebook provides an easy, user-friendly method for customizing your 
  228. editor, window, and buffer behaviors. 
  229.  
  230. To open the Settings notebook: 
  231.  
  232.  1. Select the Options menu on the menu bar. 
  233.  
  234.  2. Select the Settings option. 
  235.  
  236.     The Settings dialog box is displayed.  By default, this notebook opens to 
  237.     the Editor Settings tab. 
  238.  
  239.  
  240. ΓòÉΓòÉΓòÉ 1.2.1.2.1. Notebook Tabs ΓòÉΓòÉΓòÉ
  241.  
  242. The Settings notebook is dived into three tabs: 
  243.  
  244. Editor--settings which dictate how the editor behaves.  These settings affect 
  245. all buffers and windows. 
  246.  
  247. Window--settings which dictate how a specific window behaves. 
  248.  
  249. Buffer--settings which dictate how a specific buffer behaves. 
  250.  
  251. These tabs appear along the right side of the notebook. Clicking on a tab will 
  252. "turn" the notebook page to that topic. 
  253.  
  254.  
  255. ΓòÉΓòÉΓòÉ 1.2.1.2.2. Subtopics ΓòÉΓòÉΓòÉ
  256.  
  257. Each topic has related subtopics which are named on the tabs appearing at the 
  258. bottom of the notebook. These subtopics are specific to a topic and change 
  259. accordingly. Not all editor subtopic tabs can appear along the bottom of the 
  260. notebook at one time.  By clicking on the arrows at the lower right corner of 
  261. the notebook page, you can turn the pages and thus see additional subtopic 
  262. tabs. 
  263.  
  264. The lists below name each Settings notebook subtopic and the preferences you 
  265. can specify on the corresponding subtopic page 
  266.  
  267. Editor Settings Subtopics 
  268.  
  269. Emulation--Select emulation mode. 
  270.  
  271. ISPF--Specify parameters for the ISPF emulation mode. 
  272.  
  273. Save--Specify Save preferences. 
  274.  
  275. Search--Specify Search preferences. 
  276.  
  277. Status bar--Set the status bar's behavior.  (For example, select prompts for 
  278. the Brief, vi, and Emacs emulations.) 
  279.  
  280. Message Level--Select the level of messaging you would like to see when working 
  281. in the editor. 
  282.  
  283. Directories--Indicate the directories you would like to use for the editor's 
  284. files. 
  285.  
  286. Extensions--Specify parameters for your compilers, such as:  extension, 
  287. compiler, template, matching pairs, tab stops, and margins. 
  288.  
  289. VCS--Specify the commands the editor executes when you have the version control 
  290. system (VCS) enabled and want to use the get and put commands. 
  291.  
  292. Window Settings Subtopics 
  293.  
  294. Miscellaneous--Specify general information for the current window, such as 
  295. scroll bar behavior and line number formats. 
  296.  
  297. Visible strings--Indicate how you want certain parts of the text in your window 
  298. to appear. 
  299.  
  300. Scroll variables--Specify the number of lines or columns the cursor will move 
  301. when you scroll. 
  302.  
  303. Buffer Settings Subtopics 
  304.  
  305. Buffer flags--Specify common buffer settings, such as word processing 
  306. activities and read-only status. 
  307.  
  308. Tabs/Margins--Specify tabs and margins for buffers. 
  309.  
  310.  
  311. ΓòÉΓòÉΓòÉ 1.2.1.3. Changing Notebook Settings ΓòÉΓòÉΓòÉ
  312.  
  313. Most notebook settings can be changed by selecting or clearing a check box, 
  314. selecting a radio button, or entering a value in a text box.  Selections are 
  315. implemented when you change notebook pages. 
  316.  
  317.  
  318. ΓòÉΓòÉΓòÉ 1.2.1.3.1. Setting Default Values ΓòÉΓòÉΓòÉ
  319.  
  320. The Make default check box is included on most Window notebook settings pages. 
  321. By checking the Make default box, you can apply the settings you select to all 
  322. new windows. 
  323.  
  324. For example, 
  325.  
  326.  1. Select the Window topic tab at the right side of the notebook. 
  327.  
  328.  2. Click on the Scrolling subtopic tab at the bottom of the notebook. 
  329.  
  330.  3. Enter your scroll context variable preferences using the spin buttons. 
  331.  
  332.  4. Check the Make default box. 
  333.  
  334.     The preferences you entered will now apply to all new windows. 
  335.  
  336.  
  337. ΓòÉΓòÉΓòÉ 1.2.1.3.2. Applying Settings to All Windows ΓòÉΓòÉΓòÉ
  338.  
  339. You will see Apply to all check boxes on all Window notebook settings pages. 
  340. By clicking on the check box (so that a checkmark appears in the box) you can 
  341. apply your selected settings to all currently open windows. 
  342.  
  343.  
  344. ΓòÉΓòÉΓòÉ 1.2.1.4. You Can Also Customize. . . ΓòÉΓòÉΓòÉ
  345.  
  346. Colors 
  347.  
  348. Fonts 
  349.  
  350. Key bindings 
  351.  
  352. Keyboard macros 
  353.  
  354.  
  355. ΓòÉΓòÉΓòÉ 1.2.2. Configuring ΓòÉΓòÉΓòÉ
  356.  
  357. When you load PREDITOR/2, it goes through an initialization process that 
  358. includes executing the function local_setup(), and reading and executing the 
  359. statements in the CPE.CFG (configuration) file.  The function local_setup() is 
  360. located in the LOCAL.PEL file. 
  361.  
  362.  
  363. ΓòÉΓòÉΓòÉ 1.2.2.1. CPE.CFG ΓòÉΓòÉΓòÉ
  364.  
  365. This file stores user options that are likely to change often.  Because the 
  366. CPE.CFG file does not have to be recompiled to implement changes, you can 
  367. change options stored here and the editor will recognize these changes the next 
  368. time it is started. Notebook settings and the state of the editor are also 
  369. stored in the CPE.CFG file. 
  370.  
  371. The CPE.CFG file is similar to your AUTOEXEC.BAT file or CONFIG.SYS file, in 
  372. that it initiates settings and performs tasks you want completed every time you 
  373. start PREDITOR/2. 
  374.  
  375. Note:  Quick Loading--The initial loading of PREDITOR/2 may be slowed down if 
  376. you store too many options in the CPE.CFG file.  Therefore, use the LOCAL.PEL 
  377. file to indicate options that are not likely to change often. 
  378.  
  379.  
  380. ΓòÉΓòÉΓòÉ 1.2.2.2. LOCAL.PEL ΓòÉΓòÉΓòÉ
  381.  
  382. This file contains the local_setup() function, which reads and executes the 
  383. statements in the CPE.CFG file.  Here, you can specify options that will not 
  384. change often. 
  385.  
  386. You can also specify keystrokes that correspond with activities you frequently 
  387. perform.  These key definitions are located in the local_keys() function.  Key 
  388. definitions are applied to all emulation modes. 
  389.  
  390. To modify LOCAL.PEL, 
  391.  
  392.  1. Select Open from the File menu.  The Open dialog box is displayed. 
  393.  
  394.  2. Enter the directory and name of your LOCAL.PEL file in the Open Filename 
  395.     text box.  For example, if you installed PREDITOR/2 in the default 
  396.     directory, type C:\CPE\PEL\LOCAL.PEL in this text box. 
  397.  
  398.  3. Click on the OK button.  The LOCAL.PEL file appears in your current window. 
  399.  
  400.  4. Edit the file to include your preferred options. 
  401.  
  402. The editor will recognize your changes after you re-compile LOCAL.PEL. 
  403.  
  404. To recompile LOCAL.PEL, 
  405.  
  406.  1. Exit the editor. 
  407.  
  408.  2. Open an OS/2 window. 
  409.  
  410.  3. Make current the PEL subdirectory of your editor directory (the default 
  411.     directory is C:\CPE\PEL). 
  412.  
  413.  4. Execute the MAKE_AE.CMD file. 
  414.  
  415. You have just recompiled LOCAL.PEL. PREDITOR/2 will now recognize your options 
  416. and key definitions every time you run the editor. 
  417.  
  418.  
  419. ΓòÉΓòÉΓòÉ 1.2.3. Programming ΓòÉΓòÉΓòÉ
  420.  
  421. For customers who want more, Compuware has taken the unusual step of providing 
  422. access to most of PREDITOR/2's own source code, so you can personalize existing 
  423. features to your liking and create new options. 
  424.  
  425.  
  426. ΓòÉΓòÉΓòÉ 1.2.3.1. Our C-Like Extension Language ΓòÉΓòÉΓòÉ
  427.  
  428. PREDITOR/2's configurability lies largely with its Professional Extension 
  429. Language (PEL). Therefore, you have the option to create a new function or 
  430. change an existing function to your specifications.  PEL encourages 
  431. customization and configuration through its industry acceptance and 
  432. ease-of-use. 
  433.  
  434. PEL is the piece of PREDITOR/2 that truly makes this editor unique.  You can 
  435. use PEL to make your editor work according to the way you do. 
  436.  
  437.  
  438. ΓòÉΓòÉΓòÉ 1.2.3.2. PEL Debugger ΓòÉΓòÉΓòÉ
  439.  
  440. The PEL debugger is a tool to help you quickly and easily debug your PEL 
  441. functions.  This debugger operates much like a "C" debugger. 
  442.  
  443. To use the PEL debugger, 
  444.  
  445.  1. Select the Tools menu on the menu bar. 
  446.  
  447.  2. Click on the PEL debugger menu item.  The PEL debugger is displayed. 
  448.  
  449.  3. From the File menu, open the file you want to debug. 
  450.  
  451.  4. Set breakpoints (by double-clicking at the beginning of a line) wherever 
  452.     necessary. 
  453.  
  454.  5. Click on the Go button. 
  455.  
  456. The PEL debugger window is hidden and the PREDITOR/2 window is displayed.  At 
  457. this point you can continue using the editor normally until the PEL code in 
  458. which you have set breakpoints executes. 
  459.  
  460. Note:  Before Debugging 
  461.  
  462. To debug PEL functions, you must first compile the .AE file without the 
  463. _compress option.  Make this change by editing the MAKE_AE.CMD file in your PEL 
  464. subdirectory.  Then rename the file to CPE.AE and recompile the function 
  465. library. 
  466.  
  467. When a breakpoint is executed, the editor window is disabled and the debugger 
  468. window appears on your screen. 
  469.  
  470. This window highlights the source code of the current breakpoint.  You can 
  471. query the value of any variable, step through PEL code, and determine the 
  472. source of errors.  For more information on using the PEL debugger, refer to 
  473. Chapter 4 in the PREDITOR/2 User's Guide, "Programming with PEL". 
  474.  
  475.  
  476. ΓòÉΓòÉΓòÉ 1.2.3.3. Command Dialog Box ΓòÉΓòÉΓòÉ
  477.  
  478. PREDITOR/2 provides a command dialog box from which you can issue PEL commands 
  479. or display the value of a variable.  This provides you easy access to all PEL 
  480. commands. 
  481.  
  482. To use the command dialog box, 
  483.  
  484.  1. Select the Tools menu from the menu bar. 
  485.  
  486.  2. Click on the Command dialog menu item.  The Enter Command dialog box is 
  487.     displayed. 
  488.  
  489.  3. Enter a PEL command or select a command from the command history list. 
  490.  
  491.  4. Click on the OK button. 
  492.  
  493.  
  494. ΓòÉΓòÉΓòÉ 1.2.3.4. Compiler ΓòÉΓòÉΓòÉ
  495.  
  496. The benefit of the PEL compiler is that it is an incremental compiler, so that 
  497. when you recompile your CPE.AE function library, only the changed modules are 
  498. recompiled.  Thus, you spend a minimal amount of time waiting for the function 
  499. library to recompile after making minor changes. 
  500.  
  501. The PEL compiler supplied with PREDITOR/2 is a special version of Thompson 
  502. Automation, Inc.'s AWK compiler.  The AWK compiler creates stand-alone 
  503. executables from AWK source code, while the PEL compiler produces programs that 
  504. PREDITOR/2 can execute. 
  505.  
  506.  
  507. ΓòÉΓòÉΓòÉ 1.2.3.5. The PEL Advantage ΓòÉΓòÉΓòÉ
  508.  
  509. Rather than changing the LOCAL.PEL file, you can use PEL to modify another file 
  510. or make your own file. 
  511.  
  512. After compiling the editor, you can assign a key to your PEL functions.  You 
  513. can define keys for your new functions in the local_key() function, in the 
  514. CPE.CFG file, or in the Keybindings dialog box (found on the Options menu). 
  515.  
  516.  
  517. ΓòÉΓòÉΓòÉ 1.2.3.6. Additional PEL Features. . . ΓòÉΓòÉΓòÉ
  518.  
  519. Tags (see the PREDITOR/2 User's Guide) 
  520.  
  521. PEL Function and Variable Reference manual 
  522.  
  523. PEL Functions and Variables by Category manual 
  524.  
  525.  
  526. ΓòÉΓòÉΓòÉ 1.3. Search and Change ΓòÉΓòÉΓòÉ
  527.  
  528. The ability to search for and change information is extremely valuable. 
  529. Because PREDITOR/2 handles unusually large files, functional search and change 
  530. support streamlines the process of updating your code. 
  531.  
  532. In this Section. . . 
  533.  
  534. o Search 
  535.  
  536. o Change 
  537.  
  538. o Regular Expressions to Use When Searching 
  539.  
  540. o Group and Match Group Searching 
  541.  
  542. o Positioning the Cursor 
  543.  
  544.  
  545. ΓòÉΓòÉΓòÉ 1.3.1. Search ΓòÉΓòÉΓòÉ
  546.  
  547. The Search menu contains options that enable you to perform a variety of 
  548. searches, based on different types of search criteria. When you invoke a 
  549. search, the current default search settings are presented in the Find String 
  550. dialog box.  You can change any of these settings to search as you wish. 
  551.  
  552. To initiate a search, 
  553.  
  554.  1. Select the Search menu from the menu bar. The Search menu is displayed on 
  555.     your screen.  The items in this menu guide you toward performing a 
  556.     detailed, direct search according to your needs.  In this example, we will 
  557.     search for a string, using wildcards in the string's name. 
  558.  
  559.  2. Select the Find string option from the Search menu. 
  560.  
  561.  3. Type local_*\( in the Search value text box. 
  562.  
  563.  4. In the Scope group box, select the File(s) radio button. 
  564.  
  565.  5. Enter the files you would like to search in the Files to search text box. 
  566.     For this example, type C:\CPE\PEL\*.PEL (or substitute your installation 
  567.     directory.) 
  568.  
  569.  6. Click on the Options button.  The Find String dialog box enlarges, 
  570.     presenting options that enable you to further define your search. Click on 
  571.     any of these options that pertain to how you would like to conduct your 
  572.     search. This Options button has been selected in the example above. 
  573.  
  574.  7. Select the Find all button. 
  575.  
  576.     The editor searches for all occurrences of the string local_*\( in the PEL 
  577.     file. You can follow the editor's search progress by watching found string 
  578.     locations appear in the Find All List dialog box. 
  579.  
  580.     When the search is complete, the number of files found is displayed in the 
  581.     status bar at the lower left of the Find All List dialog box. You can halt 
  582.     the search process at any time by selecting the Stop button from the dialog 
  583.     box. 
  584.  
  585.     Use the buttons on the Find All List dialog box to view the strings 
  586.     matching local_*\(.  As you move through the strings listed in the Find 
  587.     Files List dialog box, the cursor in the main editor window moves to the 
  588.     corresponding file and location. 
  589.  
  590. Note: ERR buttons 
  591.  
  592. The PREDITOR/2 toolbar displays two buttons which enable you to more quickly 
  593. flip through a list of matching search strings without using the Find All List 
  594. dialog box.  These are the ERR buttons, located near the right end of the 
  595. toolbar: 
  596.  
  597. When you have completed a search and the results are presented in the Find All 
  598. List dialog box, 
  599.  
  600.  1. Minimize the Find All List dialog box by clicking on the upper right corner 
  601.     of the dialog box. 
  602.  
  603.  2. Click on  the ERR buttons to move forward and backward through the results 
  604.     list.  Your cursor will automatically move to the next occurrence found by 
  605.     the search process. 
  606.  
  607. Note:  Quick Context-Sensitive Search 
  608.  
  609. Use the pop-up menu for a quick, context-sensitive search.  Within the buffer 
  610. you are searching, simply move the cursor to the word you are searching for, 
  611. press and release the right mouse button, and select the Find String menu item 
  612. from the pop-up menu that appears. 
  613.  
  614.  
  615. ΓòÉΓòÉΓòÉ 1.3.1.1. Change ΓòÉΓòÉΓòÉ
  616.  
  617. The Change option in the Search menu enables you to replace a specific string 
  618. with a new string.  This option works only in your current file. 
  619.  
  620. To replace a string, 
  621.  
  622.  1. Select Change from the Search menu. 
  623.  
  624.     or 
  625.  
  626.     Click on the Change icon on the toolbar. 
  627.  
  628.     A Change String dialog box is displayed. 
  629.  
  630.  2. Type the string you want to replace in the String value text box.  For this 
  631.     example, type cpe. 
  632.  
  633.  3. Type the new value for the string in the Change to value text box.  For 
  634.     this example, type PREDITOR/2. 
  635.  
  636.  4. Select the Options button.  The Change String dialog box will enlarge to 
  637.     display options for further defining your search. (This button has been 
  638.     selected in the figure above.) 
  639.  
  640. The buttons across the bottom of the Change String dialog box provide several 
  641. approaches toward changing strings.  Depending on how closely you want to 
  642. supervise the change process, you can click on any of these buttons to initiate 
  643. or cancel the process.  For specific information on when to use these buttons, 
  644. click on the Help button. 
  645.  
  646.  
  647. ΓòÉΓòÉΓòÉ 1.3.2. Regular Expressions ΓòÉΓòÉΓòÉ
  648.  
  649. PREDITOR/2 supports the following metacharacters used with regular expressions: 
  650.  
  651. \                   Treats as normal character:  \$ finds $. 
  652.  
  653. ^                   Matches the beginning of the line. 
  654.  
  655. $                   Matches the end of the line. 
  656.  
  657. <                   Matches the beginning of the word. 
  658.  
  659. >                   Matches the end of the word. 
  660.  
  661. .                   Matches any character (except \n). 
  662.  
  663. r*                  Matches zero or more of r. 
  664.  
  665. .*                  Matches any string (except \n). 
  666.  
  667. r+                  Matches one or more of r. 
  668.  
  669. r?                  Matches zero or one of r. 
  670.  
  671. |                   Alternation operator; i.e., is|are finds is or are. 
  672.  
  673. (r)                 Treats r as a group. 
  674.  
  675. [r]                 Treats r as a match group. 
  676.  
  677. [abc]               Finds characters abc. 
  678.  
  679. [^abc]              Finds any characters except abc. 
  680.  
  681. [a-z]               Hyphen between characters (a-z) indicates range. 
  682.  
  683.  
  684. ΓòÉΓòÉΓòÉ 1.3.3. Group and Match Group Searching ΓòÉΓòÉΓòÉ
  685.  
  686. A group is one or more characters treated as a unit.  A match group is a type 
  687. of group that encloses part of a regular expression in braces ({}).  Groups are 
  688. typically used to show association or precedence. 
  689.  
  690. The content of a match group has the same form as a group, except that 
  691. PREDITOR/2 assigns a reference number (1 through 9) to each match group. 
  692. Instead of typing the text, you can use the reference number. 
  693.  
  694. For example, 
  695.  
  696.  1. Type the following value in the Search value text box in the Change String 
  697.     dialog box: 
  698.  
  699.     {Sailboat .*} (is|are) {fun.} 
  700.  
  701.     This expression contains two match groups and one group. PREDITOR/2 assigns 
  702.     reference numbers 1 and 2 to the match groups.  It does not assign a number 
  703.     to the group defined by parentheses. 
  704.  
  705.  2. In the Change to value text box, type : 
  706.  
  707.     \1 can be \2 
  708.  
  709. This replacement text tells PREDITOR/2 to reuse the first string, substitute 
  710. the words can be for is or are, and reuse the second string.  The table below 
  711. shows two sentences that were found, and how they were changed: 
  712.  
  713. Found Text                  Changed to... 
  714.  
  715. Sailboat races are fun.     Sailboat races can be fun. 
  716.  
  717. Sailboat racing is fun.     Sailboat racing can be fun. 
  718.  
  719.  
  720. ΓòÉΓòÉΓòÉ 1.3.4. Positioning the Cursor ΓòÉΓòÉΓòÉ
  721.  
  722. When creating a regular expression, you can specify the location within a 
  723. string where, after a search operation, you want to begin editing. 
  724.  
  725. For example, given the string Dear Dr\.[]+\c:, PREDITOR/2 searches for the text 
  726. Dear Dr. followed by one or more spaces and a single colon and positions the 
  727. cursor before the colon.  If the cursor location were not specified, PREDITOR/2 
  728. would place the cursor at the beginning of the matching text (in this example, 
  729. at the D of the word Dear). 
  730.  
  731.  
  732. ΓòÉΓòÉΓòÉ 1.3.5. Additional Search and Change Features ΓòÉΓòÉΓòÉ
  733.  
  734. o Find next occurrence of string 
  735.  
  736. o Locate specific line number 
  737.  
  738. o Find routines 
  739.  
  740.  
  741. ΓòÉΓòÉΓòÉ 1.4. Text Manipulation ΓòÉΓòÉΓòÉ
  742.  
  743. PREDITOR/2's text manipulation features enable you to work quickly with text, 
  744. using either the keyboard or the mouse. 
  745.  
  746. In this Section. . . 
  747.  
  748. o Unlimited undo and redo 
  749.  
  750. o Add bookmarks 
  751.  
  752. o Editing Text with the Mouse 
  753.  
  754.    - Select column 
  755.    - Select line 
  756.    - Select block 
  757.  
  758. o Word processing 
  759.  
  760.  
  761. ΓòÉΓòÉΓòÉ 1.4.1. Unlimited Undo and Redo ΓòÉΓòÉΓòÉ
  762.  
  763. When you edit text, there is no limit to how far you can undo and redo actions. 
  764. With PREDITOR/2, this is quickly and easily accomplished through the Undo and 
  765. Redo buttons on the toolbar. 
  766.  
  767.  
  768. ΓòÉΓòÉΓòÉ 1.4.2. Bookmarks ΓòÉΓòÉΓòÉ
  769.  
  770. Bookmarks represent marked locations within your file where you can position 
  771. your cursor. This feature is especially useful when you are working with large 
  772. files.  By assigning a name to each bookmark, you can quickly return to that 
  773. location by selecting the appropriate bookmark name using the Bookmark list 
  774. option from the Search menu. 
  775.  
  776. Unlimited Availability 
  777.  
  778. While some code editors limit the number of bookmarks you can place, PREDITOR/2 
  779. sets no limits. 
  780.  
  781.  
  782. ΓòÉΓòÉΓòÉ 1.4.3. Editing Text with the Mouse ΓòÉΓòÉΓòÉ
  783.  
  784. PREDITOR/2 supports both mouse and keyboard use for editing text.  You can use 
  785. the mouse to move the cursor position, make an inactive window active, mark 
  786. text, and create new windows. 
  787.  
  788. Note: Supporting a 3-button mouse 
  789.  
  790. If your mouse has three buttons rather than two, you can add commands for the 
  791. center button.  Refer to the "User Interface" chapter in the PREDITOR/2 
  792. Professional Extension Language Functions and Variables by Category manual. 
  793.  
  794. The table below summarizes the mouse actions you can use when editing text in 
  795. PREDITOR/2. 
  796.  
  797. Mouse Commands for Editing Text 
  798.  
  799. Activity               Corresponding Mouse Action 
  800.  
  801. Position cursor        Click in window. 
  802.  
  803. Mark text block        Click and drag up or down. 
  804.  
  805. Mark column block      Click and drag while pressing the Ctrl key or click with 
  806.                        the right mouse button and drag. 
  807.  
  808. Mark a single line     Click and drag across the line while pressing the Alt 
  809.                        key. 
  810.  
  811. Mark multiple lines    Click and drag up or down while pressing the Alt key. 
  812.  
  813.  
  814. ΓòÉΓòÉΓòÉ 1.4.3.1. Creating Windows ΓòÉΓòÉΓòÉ
  815.  
  816. If you are in MDI mode (see "File Manipulation") you can use the mouse to 
  817. create a window. 
  818.  
  819. In the main PREDITOR/2 window, 
  820.  
  821.  1. Position the mouse cursor where you want the lower left corner of the 
  822.     window to rest. 
  823.  
  824.  2. Hold down the left mouse button and drag diagonally away from this corner. 
  825.  
  826.  3. When you reach the location for the opposite window corner, release the 
  827.     mouse button. 
  828.  
  829.     There is no limit to the number of windows you can create. 
  830.  
  831.  
  832. ΓòÉΓòÉΓòÉ 1.4.4. Word Processing ΓòÉΓòÉΓòÉ
  833.  
  834. The functions described below make word processing with PREDITOR/2 fast and 
  835. easy. 
  836.  
  837. o Tabs and Margins 
  838.  
  839. o File Extensions 
  840.  
  841. o Word Processing Mode 
  842.  
  843. o Word Wrap 
  844.  
  845. o Paragraph Flow 
  846.  
  847. o Toolbar 
  848.  
  849.  
  850. ΓòÉΓòÉΓòÉ 1.4.4.1. Tabs and Margins ΓòÉΓòÉΓòÉ
  851.  
  852. The left and right margins are only used when you are in word processing mode. 
  853. On the Misc. page of the Buffer settings notebook, set the left and right 
  854. margins at 4 and 70, respectively.  Also, set a tab stop to match your left 
  855. margin, i.e., 4 7. 
  856.  
  857.  
  858. ΓòÉΓòÉΓòÉ 1.4.4.2. File Extensions ΓòÉΓòÉΓòÉ
  859.  
  860. On the Extensions page of the Editor Settings notebook, specify an extension 
  861. for your text files.  A commonly used text file extension is .TXT.  From the 
  862. selections on the Extensions page, you can create a template for all of your 
  863. .TXT files. Indicate your word wrap preference by selecting or clearing the 
  864. Word Wrap check box.  You can specify tab stops and margin settings for your 
  865. template.  If you enter a tab stop or margin setting on this page, it overrides 
  866. the default values you entered on the Misc. page in the Buffers settings 
  867. notebook. Once you've created your template, whenever you edit a file with the 
  868. specified text extension, you are automatically in word processing mode. 
  869.  
  870.  
  871. ΓòÉΓòÉΓòÉ 1.4.4.3. Word Processing Mode ΓòÉΓòÉΓòÉ
  872.  
  873. You can switch to word processing mode for a buffer by entering the wp command 
  874. at an editor command prompt.  You can access a command prompt through the 
  875. Command dialog or System window functions from the Tools menu. 
  876.  
  877.  
  878. ΓòÉΓòÉΓòÉ 1.4.4.4. Word Wrap ΓòÉΓòÉΓòÉ
  879.  
  880. When you are in word processing mode and have turned word wrap on, text lines 
  881. automatically wrap to the left margin when you type past the right margin. 
  882. When you add text in the middle of a line, the current text is not overwritten, 
  883. but the paragraph is reflowed.  If you press Enter in the middle of a line, the 
  884. line is split at the cursor position and the text to the right of the cursor is 
  885. moved to the first column of the next line. 
  886.  
  887.  
  888. ΓòÉΓòÉΓòÉ 1.4.4.5. Paragraph Flow ΓòÉΓòÉΓòÉ
  889.  
  890. Paragraphs are delimited by empty lines. The wrap_paragraph command reflows a 
  891. paragraph at the margins.  This is useful when editing a text file that has 
  892. different margins than those you have specified. 
  893.  
  894. Before you execute wrap_paragraph, you must manually move all of the text to 
  895. the left margin.  This is easily done in Brief emulation by selecting all of 
  896. the text and pressing the Tab key. 
  897.  
  898.  
  899. ΓòÉΓòÉΓòÉ 1.4.4.6. Editing from the Toolbar ΓòÉΓòÉΓòÉ
  900.  
  901. Not only is text editing easy with PREDITOR/2, but your most basic editing 
  902. commands are available right on the PREDITOR/2 toolbar. 
  903.  
  904.  Cut 
  905.  
  906.  Copy 
  907.  
  908.  Paste 
  909.  
  910.  Undo 
  911.  
  912.  Redo 
  913.  
  914.  
  915. ΓòÉΓòÉΓòÉ 1.4.5. Additional Text Editing Features ΓòÉΓòÉΓòÉ
  916.  
  917. o Change text case 
  918.  
  919.    - Uppercase 
  920.    - Lowercase 
  921.    - Reverse 
  922.  
  923. o Block indenting/outdenting 
  924.  
  925.  
  926. ΓòÉΓòÉΓòÉ 1.5. File Manipulation ΓòÉΓòÉΓòÉ
  927.  
  928. One of PREDITOR/2's strengths is its ability to handle large files while you 
  929. work with and manipulate these files.  Because PREDITOR/2 knows no limits, you 
  930. can work with files of any size, in as many buffers and windows as you like. 
  931. You can also compare the differences between two versions of a file. PREDITOR/2 
  932. makes manipulating large files a manageable task. 
  933.  
  934.  
  935. ΓòÉΓòÉΓòÉ 1.5.1. Using Multiple Document Interface (MDI) Mode ΓòÉΓòÉΓòÉ
  936.  
  937. PREDITOR/2 enables you to display an unlimited number of windows at one time. 
  938. This function is known as Multiple Document Interface (MDI) mode. MDI mode 
  939. enables you to view multiple files at the same time, or view the same files in 
  940. multiple places.  When MDI mode is enabled, all currently opened windows can be 
  941. displayed.  If MDI mode is disabled, PREDITOR/2 displays only one window at a 
  942. time. 
  943.  
  944. To enable MDI mode, 
  945.  
  946.  1. Click on the Windows menu on the menu bar. If the MDI mode is already 
  947.     enabled, a ( symbol is shown next to the MDI mode option.  You can close 
  948.     the menu and continue. 
  949.  
  950.  2. If the MDI mode option is disabled, click on the MDI mode option. A ( 
  951.     symbol appears next to the MDI mode selection, indicating that MDI mode is 
  952.     enabled. 
  953.  
  954.  
  955. ΓòÉΓòÉΓòÉ 1.5.1.1. Disabling MDI Mode ΓòÉΓòÉΓòÉ
  956.  
  957. To disable this option, select it from the Windows menu. The checkmark is 
  958. removed, indicating that the option is disabled. 
  959.  
  960.  
  961. ΓòÉΓòÉΓòÉ 1.5.2. Buffers and Windows ΓòÉΓòÉΓòÉ
  962.  
  963. In PREDITOR/2, you open both buffers and windows to work with files.  Although 
  964. the two work together, buffers and windows have distinct uses.  The following 
  965. sections define buffers and windows. 
  966.  
  967.  
  968. ΓòÉΓòÉΓòÉ 1.5.2.1. Buffers ΓòÉΓòÉΓòÉ
  969.  
  970. A buffer is your copy of a file that you are editing.  A buffer is a temporary 
  971. holding place.  You can edit a buffer, but the changes you make are not 
  972. included in its corresponding file until you save the file. 
  973.  
  974. Unlike other editors, a buffer in PREDITOR/2 is not associated with a specific 
  975. window.  You can display any buffer in any window at any time.  In MDI mode, 
  976. you can display the same buffer in multiple windows. 
  977.  
  978. To create a new buffer, 
  979.  
  980.  1. Click on the File menu on the menu bar. 
  981.  
  982.  2. Click on the New menu item. 
  983.  
  984. or 
  985.  
  986.  1. Click on the New Buffer icon on the toolbar. 
  987.  
  988. You can use the options in the Buffer menu to move between and open buffers. 
  989.  
  990. To switch to an existing buffer, 
  991.  
  992.  1. Click on the Buffer menu on the menu bar. 
  993.  
  994.  2. Click on the menu option you prefer. 
  995.  
  996.  3. Follow the prompts that apply to the menu option you selected. 
  997.  
  998.  
  999. ΓòÉΓòÉΓòÉ 1.5.2.2. Windows ΓòÉΓòÉΓòÉ
  1000.  
  1001. A window is an area of the screen through which you can view the contents of a 
  1002. buffer.  A window may take up the entire display or only a part of it, or may 
  1003. be as small as an icon. 
  1004.  
  1005. You can open multiple windows while using PREDITOR/2 in MDI mode.  You can 
  1006. change the size and location of a window, overlap windows or position them 
  1007. side-by-side. See the Windows menu on the menu bar for windows options.  For 
  1008. example, the windows below are tiled. 
  1009.  
  1010. Since a window is not associated with a specific buffer, you can use the buffer 
  1011. commands to change the buffer that is displayed in a window, or delete the 
  1012. window without affecting the buffer. 
  1013.  
  1014.  
  1015. ΓòÉΓòÉΓòÉ 1.5.3. Comparing Versions ΓòÉΓòÉΓòÉ
  1016.  
  1017. It is often handy to be able to compare two versions of a file and review the 
  1018. differences between the versions.  PREDITOR/2 enables you to compare files with 
  1019. the Vdiff tool. 
  1020.  
  1021. To compare files, 
  1022.  
  1023.  1. Click on the Tools menu on the menu bar. 
  1024.  
  1025.  2. Click on the VCS menu item.  Another menu opens. 
  1026.  
  1027.  3. Click on the Vdiff menu item. 
  1028.  
  1029.     The PVCS VDIFF dialog box is displayed. 
  1030.  
  1031.  4. Enter the name of the source file, and if necessary a revision/version 
  1032.     number in the Reference text boxes. 
  1033.  
  1034.  5. Enter the name of the target file and, if necessary, a revision/version 
  1035.     number in the Target text boxes. 
  1036.  
  1037.  6. Select either the Comparison or Vdiff output radio button (in the View 
  1038.     group box) to specify how you want to view the compared results. 
  1039.     Comparison will give you an outline view of the results, with changes 
  1040.     highlighted.  Vdiff output will display the contents of the Vdiff buffer 
  1041.     containing the two files, with plus (+) and minus (-) signs indicating 
  1042.     additions and subtractions. 
  1043.  
  1044.  7. If you choose to view the results in the Comparison mode, use the radio 
  1045.     buttons in the Orientation group box to specify how the information will be 
  1046.     displayed. 
  1047.  
  1048.  8. Select or clear the Ignore whitespace check box.  If you select this check 
  1049.     box, whitespace from indentation and other space differences is considered 
  1050.     as part of the line.  This space can cause unnecessary error notations. 
  1051.     Clear this box to ignore whitespace. 
  1052.  
  1053.  9. Click on the OK button.  PREDITOR/2 will now present to you the version 
  1054.     differences in your specified file and versions. 
  1055.  
  1056.  
  1057. ΓòÉΓòÉΓòÉ 1.6. Programming Aids ΓòÉΓòÉΓòÉ
  1058.  
  1059. PREDITOR/2 is packed with extensive features to make programming easy and 
  1060. flexible. 
  1061.  
  1062. In this Section. . . 
  1063.  
  1064. o Unlimited Compiler Support 
  1065.  
  1066. o Language Templates 
  1067.  
  1068. o Integrating with WorkFrame 
  1069.  
  1070.  
  1071. ΓòÉΓòÉΓòÉ 1.6.1. Unlimited Compiler Support ΓòÉΓòÉΓòÉ
  1072.  
  1073. Not only does PREDITOR/2 provide many preset compilers, but it can support any 
  1074. compiler you wish to use. 
  1075.  
  1076. Add your own compiler in the Editor settings notebook, on the Extensions and 
  1077. Compilers page. 
  1078.  
  1079.  
  1080. ΓòÉΓòÉΓòÉ 1.6.2. Enabling Template Expansion ΓòÉΓòÉΓòÉ
  1081.  
  1082.  
  1083. ΓòÉΓòÉΓòÉ 1.6.2.1. Specifying a Template ΓòÉΓòÉΓòÉ
  1084.  
  1085. The editor recognizes the extension of your file name and opens its 
  1086. corresponding template.  For example, if you are editing a file named TEST.C, a 
  1087. C template is expanded when you enable template expansion. 
  1088.  
  1089.  
  1090. ΓòÉΓòÉΓòÉ 1.6.3. Integrating with WorkFrame/2 ΓòÉΓòÉΓòÉ
  1091.  
  1092. PREDITOR/2 integrates with IBM's WorkFrame/2.  This integration enables you to 
  1093. specify the editor in which source files are displayed.  By specifying C.EXE -W 
  1094. as the editor, PREDITOR/2 will be the editor used when accessing files or 
  1095. locating errors from WorkFrame/2. 
  1096.  
  1097. Benefits 
  1098.  
  1099. The benefits of integrating with WorkFrame/2 are: 
  1100.  
  1101.  1. Error Sources Displayed 
  1102.  
  1103.     If your WorkFrame/2 compile generates error messages, you can double-click 
  1104.     on an error message to display the corresponding source code in PREDITOR/2. 
  1105.     You can then modify your source code to fix the error (or warning), and 
  1106.     restart the compile process.  This saves you the trouble of manually 
  1107.     loading the editor, choosing the correct file, and locating the appropriate 
  1108.     line number. 
  1109.  
  1110.  2. Single Editor Loaded 
  1111.  
  1112.     Instead of loading a new copy of the editor into memory each time you need 
  1113.     to view source code, the PREDITOR/2 stub (C.EXE) quickly brings the already 
  1114.     running editor to the foreground, saving load time and memory. 
  1115.  
  1116.  
  1117. ΓòÉΓòÉΓòÉ 1.7. Additional Programming Aids ΓòÉΓòÉΓòÉ
  1118.  
  1119. Language Templates 
  1120.  
  1121. Integration 
  1122.  
  1123. Preset Compilers 
  1124.  
  1125. Tags Facility 
  1126.  
  1127.  
  1128. ΓòÉΓòÉΓòÉ 1.7.1. Language Templates ΓòÉΓòÉΓòÉ
  1129.  
  1130. Automatic expansion: 
  1131.  
  1132. C/C++ 
  1133. COBOL 
  1134. REXX 
  1135. PASCAL 
  1136. AWK 
  1137. Clipper 50 
  1138. Clipper 87 
  1139. dBase 
  1140. FORCE 
  1141.  
  1142.  
  1143. ΓòÉΓòÉΓòÉ 1.7.2. Integration ΓòÉΓòÉΓòÉ
  1144.  
  1145. OS/2 Workplace Shell drag and drop 
  1146.  
  1147.  
  1148. ΓòÉΓòÉΓòÉ 1.7.3. Preset Compilers ΓòÉΓòÉΓòÉ
  1149.  
  1150. Preset compilers include: 
  1151.  
  1152. IBM CSet/Cset++ 
  1153. Borland C/C++ 
  1154. Microsoft C/C++ 
  1155. Advantage ADA 
  1156. Clipper 5.0 
  1157. Clipper Summer '87 
  1158. COBOL 
  1159. FORCE 
  1160. dBase 
  1161. INTERSOLV PolyMake 
  1162. INTERSOLV PVCS Builder 
  1163. Lahey FORTRAN 77 
  1164. Microsoft Masm 
  1165. Microsoft Quick BASIC 
  1166. NMake 
  1167. PEL 
  1168. Turbo C, C++ and Pascal 
  1169. Zortech C/C++ 
  1170.  
  1171.  
  1172. ΓòÉΓòÉΓòÉ 1.7.4. Tags Facility ΓòÉΓòÉΓòÉ
  1173.  
  1174. Generate .tag files 
  1175.  
  1176. Tags locate 
  1177.  
  1178. CTags make 
  1179.  
  1180. Peltags make 
  1181.  
  1182. Find routines 
  1183.  
  1184.  
  1185. ΓòÉΓòÉΓòÉ 1.8. Workgroup Support ΓòÉΓòÉΓòÉ
  1186.  
  1187. Version Control System 
  1188.  
  1189. Before you can select any of the options available in the system, you must 
  1190. enable the version control system (VCS).  To enable the VCS, select the Enable 
  1191. VCS check box on the VCS page of the Editor settings notebook. 
  1192.  
  1193. Get 
  1194.  
  1195. Selecting Get enables you to retrieve a file from the version control system 
  1196. and at the same time lock the file so that it cannot be released to another 
  1197. user.  When you select Get, a dialog box displays the Get command.  This 
  1198. command reflects the default value from the VCS page of the Editor settings 
  1199. notebook. 
  1200.  
  1201. Put 
  1202.  
  1203. Selecting Put releases the lock on the file and returns it to the version 
  1204. control system. When you select Put, a dialog box displays the Put command. 
  1205. This command reflects the default value from the VCS page of the Editor 
  1206. settings notebook. 
  1207.  
  1208.  
  1209. ΓòÉΓòÉΓòÉ 1.9. Documentation ΓòÉΓòÉΓòÉ
  1210.  
  1211. PREDITOR/2 comes with complete printed and online documentation for both the 
  1212. editor and the Professional Extension Language (PEL): 
  1213.  
  1214. Product Manuals 
  1215.  
  1216. PREDITOR/2 User's Guide 
  1217.  
  1218. This document covers how to install PREDITOR/2 on your workstation, configuring 
  1219. and customizing the editor, the user interface and basic functions, and using 
  1220. the Professional Extension Language (PEL) to further customize PREDITOR/2. 
  1221.  
  1222. PREDITOR/2 Quick Reference 
  1223.  
  1224. For basic information on working with PEL and activities you perform daily, 
  1225. refer to this manual.  Here you will find information outlining PEL, the 
  1226. editor, emulation keymaps, template expansions, and ASCII codes. 
  1227.  
  1228.  Professional Extension Language Functions and Variables by Category 
  1229.  
  1230.  Here you will find the most commonly used PEL functions and variables arranged 
  1231. by category.  Each category is described and followed by the related commands 
  1232. and a summary of their purposes.  An alphabetical listing of functions and 
  1233. variables also helps you to find the category pertaining to a specific function 
  1234. or variable. 
  1235.  
  1236. Professional Extension Language Function and Variable Reference 
  1237.  
  1238. For detailed information on all PEL functions and variables, refer to this 
  1239. manual.  Here you will find every PEL command and its related purpose, syntax, 
  1240. type, description, value returned, and examples. 
  1241.  
  1242. Online Help 
  1243.  
  1244. PREDITOR/2's online help provides extensive information on: 
  1245.  
  1246. o Functions and variables 
  1247.  
  1248. o Menu items 
  1249.  
  1250. o Settings notebook options 
  1251.  
  1252. o General product information 
  1253.  
  1254. o Technical support information. 
  1255.  
  1256. The Help menu puts on-line and context-sensitive help at your fingertips.  In 
  1257. all standard keymaps and most emulation packages, the online help facility is 
  1258. available by pressing F1 on your keyboard. You can access Help from any menu by 
  1259. pressing F1 and from some dialog boxes by selecting the Help push button. 
  1260.  
  1261. You can also access any other product's online help through the NDX files. 
  1262.  
  1263.  
  1264. ΓòÉΓòÉΓòÉ 1.10. Additional Features ΓòÉΓòÉΓòÉ
  1265.  
  1266. The many different ways you can work with PREDITOR/2 make it a comfortable 
  1267. product to work with on a daily basis.  Beyond the powerful features you've 
  1268. seen so far, here are a few more that make this editor satisfying to our 
  1269. customers. 
  1270.  
  1271. In this Section. . . 
  1272.  
  1273. Status bar prompts 
  1274.  
  1275. GUI prompts 
  1276.  
  1277. File and Command Name Completion 
  1278.  
  1279. History Lists 
  1280.  
  1281. Additional Features 
  1282.  
  1283.  
  1284. ΓòÉΓòÉΓòÉ 1.10.1. Status Bar Prompts ΓòÉΓòÉΓòÉ
  1285.  
  1286. The status bar displays information regarding your current PREDITOR/2 session. 
  1287. The status bar is located at the lower left of the main PREDITOR/2 window. 
  1288.  
  1289. You can customize the status bar to provide command line prompts and other 
  1290. information on the Status Bar page of the Editor settings notebook.  If you 
  1291. select the Prompts option on this page, you can enter commands from the status 
  1292. bar, in all emulations other than CUA. 
  1293.  
  1294. To activate a command prompt from the status bar in the Brief emulation, 
  1295.  
  1296.  1. Type the keystroke command [Alt][E] from your keyboard.  A command prompt 
  1297.     appears on your status bar. 
  1298.  
  1299.  
  1300. ΓòÉΓòÉΓòÉ 1.10.2. GUI Prompts ΓòÉΓòÉΓòÉ
  1301.  
  1302. For a more GUI-like look, deselect the Prompts check box in the Editor settings 
  1303. notebook. 
  1304.  
  1305.  
  1306. ΓòÉΓòÉΓòÉ 1.10.3. File and Command Name Completion ΓòÉΓòÉΓòÉ
  1307.  
  1308. Suppose you can't remember the full name of a file or command.  Or suppose the 
  1309. name is longer than you wish to type.  PREDITOR/2 completes file and command 
  1310. names to help you work more quickly. 
  1311.  
  1312. To have PREDITOR/2 complete a file or command name, 
  1313.  
  1314.  1. Type the beginning of the name at the status bar prompt. 
  1315.  
  1316.  2. Press the Tab key on your keyboard.  The correct name appears at the 
  1317.     prompt.  If there is more than one name matching your request, a list of 
  1318.     possible matches is displayed in a dialog box on your screen.  Double-click 
  1319.     on the appropriate match or press the Enter key if there is only one match. 
  1320.  
  1321.  
  1322. ΓòÉΓòÉΓòÉ 1.10.4. History Lists ΓòÉΓòÉΓòÉ
  1323.  
  1324. You can also view a history list by pressing the up arrow or Page Up key on 
  1325. your keyboard. 
  1326.  
  1327.  
  1328. ΓòÉΓòÉΓòÉ 1.10.5. Additional Features ΓòÉΓòÉΓòÉ
  1329.  
  1330. o Error tracking after compilation 
  1331.  
  1332. o Background execution of language compilers 
  1333.  
  1334.  
  1335. ΓòÉΓòÉΓòÉ 2. Installation Utility ΓòÉΓòÉΓòÉ
  1336.  
  1337. Unlike most OS/2 products, PREDITOR/2 provides an installation utility which 
  1338. you use to update, restore, or delete the editor from your system. 
  1339.  
  1340. To update, restore, or delete the editor from your system, 
  1341.  
  1342.  1. Double-click on the PREDITOR/2 folder icon.  The PREDITOR/2 - Icon View 
  1343.     window opens, displaying several icons. 
  1344.  
  1345.  2. Double-click on the Installation Utility icon. The Installation and 
  1346.     Maintenance window opens, displaying a list of products you can work with. 
  1347.  
  1348.  3. Select PREDITOR/2 from this list. 
  1349.  
  1350.  4. Select the Action menu from the menu bar. This menu displays the different 
  1351.     ways to modify the editor on your system. 
  1352.  
  1353.  5. Change the editor's state as you desire, or simply close the Installation 
  1354.     Utility by double- clicking in the box at the upper left corner of the 
  1355.     window or selecting Exit from the File menu. 
  1356.  
  1357.  
  1358. ΓòÉΓòÉΓòÉ 3. Updating Your CONFIG.SYS File ΓòÉΓòÉΓòÉ
  1359.  
  1360. The installation program can automatically update your CONFIG.SYS file to 
  1361. support PREDITOR/2  If you choose this option, the installation program adds 
  1362. the PREDITOR/2 directories to the environment variables PATH, LIBPATH, and 
  1363. HELP. It also adds a variable (CPE) that points to the executable directory. 
  1364.  
  1365. If you choose not to have this done automatically, you'll need to manually make 
  1366. the necessary changes to your CONFIG.SYS file.  These changes are outlined 
  1367. below. 
  1368.  
  1369. SET CPE=<drive:\dir>_ 
  1370.  
  1371. Modify the SET CPE variable to point to the PREDITOR/2 home directory 
  1372. (<drive:\dir>). 
  1373.  
  1374. LIBPATH_ 
  1375.  
  1376. Update the LIBPATH variable to include the DLL directory.  Do this by adding 
  1377. <drive:\dir>\DLL to the variable, where <drive:\dir> indicates where PREDITOR/2 
  1378. is installed. 
  1379.  
  1380. PATH_ 
  1381.  
  1382. Update the PATH variable so that PREDITOR/2 can be run from any drive.  Do this 
  1383. by adding <drive:\dir>\ to the variable, where <drive:\dir> indicates where 
  1384. PREDITOR/2 is installed. 
  1385.  
  1386. HELP_ 
  1387.  
  1388. Update the HELP variable so that PREDITOR/2 help is available from the editor. 
  1389. Do this by adding <drive:\dir>\HELP to the variable, where <drive:\dir> 
  1390. indicates where PREDITOR/2 is installed. 
  1391.  
  1392. Updating the HELPNDX and DPATH environment variables is optional.  These 
  1393. changes are outlined below. 
  1394.  
  1395. HELPNDX_ 
  1396.  
  1397. View PREDITOR/2 help from other applications by adding NDX files to your 
  1398. HELPNDX variable.  Add the fully unqualified name of the NDX file separated by 
  1399. a + symbol to the environment variable.  For example: 
  1400. HELPNDX=DICK.NDX+JEFF.NDX. 
  1401.  
  1402. DPATH_ 
  1403.  
  1404. The paths of the NDX files specified in the HELPNDX variable must be specified 
  1405. in the DPATH.  In the example above, if the fully qualified name of JEFF.NDX is 
  1406. C:\SPOT\RUN\JEFF.NDX, C:\SPOT\RUN must be added to your DPATH environment 
  1407. variable. 
  1408.  
  1409.  
  1410. ΓòÉΓòÉΓòÉ 4. Quick Loading ΓòÉΓòÉΓòÉ
  1411.  
  1412. After your editor is installed, there are two tools that enable you to load the 
  1413. editor quickly, with your preferences recognized upon startup.  To load 
  1414. quickly, use the stub program or command line options.  For more information, 
  1415. click on the highlighted sections below: 
  1416.  
  1417. Using the Stub Program 
  1418.  
  1419. Command Line Options 
  1420.  
  1421.  
  1422. ΓòÉΓòÉΓòÉ 4.1. Using the Stub Program ΓòÉΓòÉΓòÉ
  1423.  
  1424. One of the benefits of using PREDITOR/2 is the ability to quickly load the 
  1425. editor from your OS/2 command line. The first time you run PREDITOR/2 (C.EXE), 
  1426. it starts an editor session.  If the editor is already running, the stub will 
  1427. load files into the running editor instead of starting a new editor session. 
  1428. Most products reload a copy of the product, while PREDITOR/2 opens the same 
  1429. copy.  The stub program saves you time that other products require. 
  1430.  
  1431. To return to the editor via the stub program, 
  1432.  
  1433.  1. Open an OS/2 window. 
  1434.  
  1435.  2. Type C or C.EXE at the command prompt and press [Enter]. 
  1436.  
  1437. or 
  1438.  
  1439.  1. Double-click on the PREDITOR/2 icon. 
  1440.  
  1441. The editor window is displayed. 
  1442.  
  1443.  
  1444. ΓòÉΓòÉΓòÉ 4.1.1. Advantages to Using the Stub Program ΓòÉΓòÉΓòÉ
  1445.  
  1446. Quick Loading Time 
  1447.  
  1448. The first time you run C.EXE, it loads the full editor. After that time 
  1449. (assuming you do not close the editor), C.EXE loads quickly and passes its 
  1450. command line parameters to the editor, which is already running.  Any files 
  1451. specified are immediately opened. 
  1452.  
  1453. Convenient Access 
  1454.  
  1455. From an OS/2 window, you can easily start the editor using the stub program. 
  1456. If you know the names of files that you want to edit, you can have these files 
  1457. loaded, open, and ready to edit.  For example, typing C C:\CONFIG.SYS *.CPP 
  1458. displays the editor with the CONFIG.SYS file and all .CPP files in the current 
  1459. directory ready to edit. 
  1460.  
  1461. Drag and Drop 
  1462.  
  1463. As an alternative to typing the file name to start the editor with the 
  1464. specified file, you can use the drag and drop method.  Simply drag and drop a 
  1465. file object onto the PREDITOR/2 icon or onto the running editor.  The editor is 
  1466. displayed in the foreground with the specified file loaded, open, and ready to 
  1467. edit. 
  1468.  
  1469. WorkFrame/2 Support 
  1470.  
  1471. If you use IBM WorkFrame/2, use the -W Command Line Options  when invoking 
  1472. C.EXE.  This parameter initializes the editor to accept errors from 
  1473. WorkFrame/2.  By using C.EXE, files accessed in WorkFrame/2 will be loaded into 
  1474. a single editor.  PREDITOR/2 also uses the wf_goto_next_error() and 
  1475. wf_goto_prev_error() functions to step through the list of WorkFrame/2 compile 
  1476. errors. 
  1477.  
  1478. PREDITOR/2 supports WorkFrame/2 with OS/2 2.1 or higher. 
  1479.  
  1480.  
  1481. ΓòÉΓòÉΓòÉ 4.2. Command Line Options ΓòÉΓòÉΓòÉ
  1482.  
  1483. When you load the editor from the OS/2 command line, you can indicate specific 
  1484. options for the editor to recognize and perform when opened.  These command 
  1485. line options enable you to work more quickly and customize the editor's state 
  1486. upon loading the editor. 
  1487.  
  1488. To use command line options when loading, simply add the option(s) and related 
  1489. information after you type C, which loads the editor. 
  1490.  
  1491. Note: The command line options A and C cannot be used with the stub programs. 
  1492. All other command line options are valid with the stub program. 
  1493.  
  1494. Option    Purpose 
  1495.  
  1496. a, A      Use a specific function library. 
  1497.  
  1498. c, C      Use a specific configuration file. 
  1499.  
  1500. d, D      Enable DDE communications.  Allows communication with stub (default 
  1501.           is on). 
  1502.  
  1503. f, F      Run this PEL function. 
  1504.  
  1505. g, G      Go to this line number in the file specified or the current buffer. 
  1506.  
  1507. m, M      Start editor minimized. 
  1508.  
  1509. n, N      Do not display startup progress indicator. 
  1510.  
  1511. p, P      Playback keys 
  1512.  
  1513. r         Open editor in read-only mode 
  1514.  
  1515. R         Start recording keystrokes on startup. 
  1516.  
  1517. t, T      Start editor in test mode 
  1518.  
  1519. w, W      Start editor for WorkFrame Integration. 
  1520.  
  1521. z, Z      Use [Ctrl][Z] as end of file. 
  1522.  
  1523. Note: When using command line options, precede them with a dash (-) or forward 
  1524. slash (/). 
  1525.  
  1526.  
  1527. ΓòÉΓòÉΓòÉ 5. Customizing ΓòÉΓòÉΓòÉ
  1528.  
  1529. One of the ways in which PREDITOR/2 distinguishes itself from other text 
  1530. editors is its extensive customization options.  Customizing your work 
  1531. environment to suit your needs can increase your productivity.  However, if 
  1532. customizing your editor is a time-consuming and tedious task, you are not 
  1533. likely to do it.  Fortunately, PREDITOR/2 enables you to make modifications 
  1534. easily and become more productive more quickly. 
  1535.  
  1536. Refer to the following sections for specific information on how to customize 
  1537. your editor: 
  1538.  
  1539. Using the Notebook 
  1540.  
  1541.  
  1542. ΓòÉΓòÉΓòÉ 5.1. Window Display ΓòÉΓòÉΓòÉ
  1543.  
  1544. PREDITOR/2 enables you to customize your window display to your liking. Refer 
  1545. to the following sections for detailed information on customizing your window 
  1546. display: 
  1547.  
  1548. Window Display Modes 
  1549.  
  1550. How to Customize Your Windows 
  1551.  
  1552. Displaying Buffers 
  1553.  
  1554.  
  1555. ΓòÉΓòÉΓòÉ 5.1.1. Window Display Modes ΓòÉΓòÉΓòÉ
  1556.  
  1557. There are three window "modes" from which you can choose: 
  1558.  
  1559. Single 
  1560.           Only one window is open for your editor session, and is attached to 
  1561.           the main editor window.  Although you may have many open buffers, you 
  1562.           can view just one at a time. 
  1563.  
  1564. Multiple 
  1565.           An unlimited number of windows may be open at one time, and are 
  1566.           confined within the main editor window. 
  1567.  
  1568. Detached 
  1569.           Windows and toolbar are no longer limited to the main editor window. 
  1570.           In Detached mode, the toolbar and windows "float"--enabling you to 
  1571.           move them anywhere on the display.  The Control Panel dialog box is 
  1572.           also displayed, containing the buffer list and access information for 
  1573.           open buffers.  Closing the Control Panel box closes the editor. 
  1574.  
  1575.  
  1576. ΓòÉΓòÉΓòÉ 5.1.2. How to Customize Your Windows ΓòÉΓòÉΓòÉ
  1577.  
  1578. Customize your window display using the Quick Settings or Settings items on the 
  1579. Options menu.  Changing one item updates the information on the other. 
  1580.  
  1581. To change your window display mode through the Quick Settings dialog box, 
  1582.  
  1583. Select Quick Settings from the Options menu and click on the window mode you 
  1584. prefer.  Then click on the Close button.  Your changes will be immediately 
  1585. recognized. 
  1586.  
  1587. To change your window display mode through the Settings notebook, 
  1588.  
  1589. Select the Settings item on the Options menu.  The settings notebook will open. 
  1590. Click on the Windows tab and then the Mode subtopic tab.  Select the window 
  1591. mode you prefer, and click on the Close button.  Your changes will be 
  1592. recognized immediately.  Note: If you are only changing your window display, we 
  1593. recommend that you make changes using the Quick Settings dialog box.  This is 
  1594. faster and easier than using the Settings notebook for a minor change. 
  1595.  
  1596.  
  1597. ΓòÉΓòÉΓòÉ 5.1.3. Displaying Buffers ΓòÉΓòÉΓòÉ
  1598.  
  1599. In Multiple Document Interface (Multiple or MDI) mode or Detached mode, you 
  1600. have the option to view one buffer per window.  If you select the One buffer 
  1601. per window check box beneath your mode preference, each buffer will be opened 
  1602. in a new window. 
  1603.  
  1604.  
  1605. ΓòÉΓòÉΓòÉ 5.2. Using the Notebook ΓòÉΓòÉΓòÉ
  1606.  
  1607. The first step to personalizing your editor is to open the Settings notebook. 
  1608. This notebook provides an easy, user-friendly method for customizing your 
  1609. editor, window, and buffer behaviors. 
  1610.  
  1611. To open the Settings notebook: 
  1612.  
  1613.  1. Select the Options menu on the menu bar. 
  1614.  
  1615.  2. Select the Settings option. The Settings dialog box is displayed.  The 
  1616.     first page is the Editor Settings tab. 
  1617.  
  1618. Notebook Topics 
  1619.  
  1620. Notebook Subtopics 
  1621.  
  1622. Changing Notebook Settings 
  1623.  
  1624. Editor Settings 
  1625.  
  1626. Window Settings 
  1627.  
  1628. Types 
  1629.  
  1630. Buffer Settings 
  1631.  
  1632. File Settings 
  1633.  
  1634.  
  1635. ΓòÉΓòÉΓòÉ 5.3. Notebook Topics ΓòÉΓòÉΓòÉ
  1636.  
  1637. The Settings notebook is divided into five topics: 
  1638.  
  1639. Editor-settings which dictate how the editor behaves. These settings affect all 
  1640. buffers and windows. 
  1641.  
  1642. Window-settings which dictate how a specific window behaves. 
  1643.  
  1644. Types-the types of buffers you will work with and how the editor will present 
  1645. them (e.g. syntax highlighting, templates). 
  1646.  
  1647. Buffer-settings which dictate how a specific type or buffer behaves. 
  1648.  
  1649. File-settings which dictate how files are loaded into the editor (e.g. locked, 
  1650. copied to memory). 
  1651.  
  1652. These topics appear on tabs along the right side of the notebook. Clicking on a 
  1653. tab will "turn" the notebook page to that topic.  You can also move between 
  1654. pages by using the arrows at the lower-right corner of the notebook. 
  1655.  
  1656.  
  1657. ΓòÉΓòÉΓòÉ 5.4. Notebook Subtopics ΓòÉΓòÉΓòÉ
  1658.  
  1659. Each topic has related subtopics which are named on the tabs appearing at the 
  1660. bottom of the notebook. These subtopics are specific to a topic and change 
  1661. accordingly. Not all editor subtopic tabs can appear along the bottom of the 
  1662. notebook at one time.  By clicking on the arrows at the lower right corner of 
  1663. the notebook page, you can turn the pages and thus see additional subtopic 
  1664. tabs. 
  1665.  
  1666.  
  1667. ΓòÉΓòÉΓòÉ 5.5. Changing Notebook Settings ΓòÉΓòÉΓòÉ
  1668.  
  1669. Most notebook settings can be changed by selecting or clearing a check box, 
  1670. selecting a radio button, or entering a value in a text box.  Selections are 
  1671. implemented when you change notebook pages. 
  1672.  
  1673.  
  1674. ΓòÉΓòÉΓòÉ 5.5.1. Editor Settings ΓòÉΓòÉΓòÉ
  1675.  
  1676. Editor settings dictate how the editor will behave. These settings affect all 
  1677. buffers and windows.  To make changes to buffer-specific or window-specific 
  1678. settings, refer to Buffer Settings or Window Settings 
  1679.  
  1680. Emulation 
  1681.  
  1682. ISPF 
  1683.  
  1684. Save 
  1685.  
  1686. Search 
  1687.  
  1688. Status Bar 
  1689.  
  1690. Message Level 
  1691.  
  1692. Directories 
  1693.  
  1694. Cursor 
  1695.  
  1696. VCS (Version Control System) 
  1697.  
  1698.  
  1699. ΓòÉΓòÉΓòÉ 5.5.1.1. Emulation ΓòÉΓòÉΓòÉ
  1700.  
  1701. The options for customizing your emulation environment are described below. 
  1702.  
  1703. Emulation mode 
  1704.           From the list box, select the system you want the editor to emulate. 
  1705.           The emulation mode you choose affects the way your keyboard behaves. 
  1706.           For a complete list of emulation modes and keymaps, refer to Appendix 
  1707.           A: Keymaps in the PREDITOR/2 User's Guide 
  1708.  
  1709. If you are using an ISPF emulator, select ISPF from the list box and then click 
  1710. on the ISPF Settings button to add additional customization and functionality. 
  1711.  
  1712. See also: 
  1713.  
  1714. o ISPF 
  1715.  
  1716.  
  1717. ΓòÉΓòÉΓòÉ 5.5.1.1.1. ISPF Settings ΓòÉΓòÉΓòÉ
  1718.  
  1719. Customize the feel of the ISPF emulation using the options described below. 
  1720.  
  1721. Default scroll amount 
  1722.           The default scroll amount affects how much of the window will scroll. 
  1723.           Valid values are:  Page=Scrolls a full page; HALF=Scrolls one-half 
  1724.           page; CSR=Scrolls to the cursor position; N=Scrolls n number of lines 
  1725.           or columns;  MAX= Scrolls to the extreme left, right, top, or bottom. 
  1726.  
  1727. Enter key is 3270 [Return] 
  1728.           Selected: The Enter key acts like a 3270 Return key. Thus, when you 
  1729.           press [Enter], the cursor moves to the next line and no line commands 
  1730.           are executed.  In addition when the "3270 [Return] to emulate a PC 
  1731.           Enter" setting is selected, the Enter key moves the cursor and all 
  1732.           data following the cursor to the next line.  Note:[Ctrl][Enter] 
  1733.           functions the same as if [Ctrl] is pressed alone. 
  1734.           Cleared:[Ctrl][Enter] emulates the 3270 Return key.  Thus, when you 
  1735.           press [Ctrl][Enter], the cursor moves to the next line and no line 
  1736.           commands are executed. In addition when the "[Ctrl][Return] to 
  1737.           emulate a PC Enter" setting is selected, pressing and releasing 
  1738.           [Ctrl] and [Enter] simultaneously moves the cursor and all data 
  1739.           following the cursor to the next line. NOTE: [Enter] functions the 
  1740.           same as if [Ctrl] is pressed alone. 
  1741.  
  1742. Home key displays command line 
  1743.           Selected: Press [Home] to display a command dialog box. Use the 
  1744.           [Num-5] key to move the cursor to the top left position in the 
  1745.           window. Cleared: Press [Home] to move the cursor to the top left 
  1746.           position in the window.  Press the [Num-5] key to display a command 
  1747.           dialog box. 
  1748.  
  1749. [Home] and [End] move to edge of window ONLY 
  1750.           Selected: Press [Home] or [End] to move the cursor only to the left 
  1751.           and right edges of the visible window. Cleared: Pressing [Home] or 
  1752.           [End] causes the cursor to move through the file, stopping at the 
  1753.           edge of the line (to the beginning of the line numbers for [Home]), 
  1754.           to the top or bottom of the window, and then to the top or bottom of 
  1755.           the file. 
  1756.  
  1757. Tab key emulates 3270 Tab 
  1758.           Selected: Press [Tab] to move the cursor down one line at a time, 
  1759.           moving between the line numbers and the data area of the window. 
  1760.           Cleared: Press [Tab] to move the cursor between tab stops in the data 
  1761.           area. 
  1762.  
  1763. Cursor Left moves into Line Commands 
  1764.           Selected: The cursor is permitted to move left, into the line command 
  1765.           area. Cleared: When moving left, the cursor stops at the left edge of 
  1766.           the data area and the screen begins to scroll. 
  1767.  
  1768. END saves without asking (AUTOSAVE) 
  1769.           Selected: The END command, F3 or PF3 saves and closes the current 
  1770.           file. Cleared: The END command, F3 or PF3, closes the current file 
  1771.           without saving it first. 
  1772.  
  1773.  
  1774. ΓòÉΓòÉΓòÉ 5.5.1.2. Save ΓòÉΓòÉΓòÉ
  1775.  
  1776. By choosing the Save options tab, you can modify the Save settings and control 
  1777. activities that occur when you exit the editor.  The table below describes each 
  1778. Save setting. 
  1779.  
  1780. Auto save 
  1781.           PREDITOR/2 will periodically create a temporary copy of your modified 
  1782.           buffers.  These copies will be deleted when a modified buffer is 
  1783.           closed or the editor is exited normally. You can set the time between 
  1784.           auto saves in the Auto save time (min.) check box, described below. 
  1785.  
  1786. Save state on exit 
  1787.           Upon exiting PREDITOR/2, the current state of all open buffers and 
  1788.           windows is saved. The buffers and their contents, and the size and 
  1789.           location of windows is recreated the next time you start PREDITOR/2. 
  1790.  
  1791. Save settings on exit 
  1792.           Saves the global editor settings that were in place when you exited 
  1793.           the editor, and reestablishes them in your next editor session. 
  1794.           These settings include:  notebook settings, colors, and fonts. 
  1795.  
  1796. Create backup file 
  1797.           Each time you save a modified file, the editor places a copy of the 
  1798.           file as it existed before modifications in the backup directory you 
  1799.           specified on the Directories notebook page.  The backup file has the 
  1800.           same name and extension unless the backup directory is the same as 
  1801.           that of the original file.  In this the case, the backup file is 
  1802.           assigned and extension of .BAK. 
  1803.  
  1804. Auto save time (min.) 
  1805.           Indicates how often, in minutes, you want the editor to save a backup 
  1806.           copy of your current buffer. The default time is one minute.  Note: 
  1807.           The "Auto save" setting must be selected for this information to be 
  1808.           recognized. 
  1809.  
  1810. Save current directory on exit 
  1811.           Saves your current directory when you exit, so your next editor 
  1812.           session begins in that directory. 
  1813.  
  1814. Save command history on exit 
  1815.           Saves the last ten editor commands you executed before exiting the 
  1816.           editor.  In your next editor session, you can recall these commands 
  1817.           by pressing the up arrow while in a command dialog box. 
  1818.  
  1819. Save search history on exit 
  1820.           Saves a list of the last ten values you searched for during this edit 
  1821.           session.  During your next editor session, you can recall these 
  1822.           search values by pressing the up arrow at a search prompt. 
  1823.  
  1824.  
  1825. ΓòÉΓòÉΓòÉ 5.5.1.3. Search ΓòÉΓòÉΓòÉ
  1826.  
  1827. When you start a search, a dialog box is displayed with the default search 
  1828. settings.  These settings can be changed by clicking on Search in the notebook. 
  1829. The table below describes each Search setting. 
  1830.  
  1831. Search forward 
  1832.           Search begins at the insertion point and moves forward to the end of 
  1833.           the buffer. 
  1834.  
  1835. Regular expressions on 
  1836.           The search pattern is treated as a regular expression. 
  1837.  
  1838. Highlight search results 
  1839.           The located search string is shown as highlighted text. 
  1840.  
  1841. Center search results 
  1842.           The line containing the located search string is centered in the 
  1843.           window. 
  1844.  
  1845. Match whole word 
  1846.           The search pattern must be delimited by one of the listed word 
  1847.           delimiters to be considered a match. 
  1848.  
  1849. Find maximal match 
  1850.           The search attempts to find the largest group of characters that 
  1851.           match the regular expression.  The Regular Expressions check box must 
  1852.           be selected for this option to work. 
  1853.  
  1854. Search wraps around 
  1855.           If a search is invoked below the top of the buffer and the specified 
  1856.           search string is not found before the search reaches the bottom of 
  1857.           the buffer (or the top of the buffer in a backward search), the 
  1858.           search wraps around the end of the buffer and continues searching 
  1859.           until it returns to the starting point. 
  1860.  
  1861. Match case 
  1862.           To be considered a match, the case of the located text must match the 
  1863.           search pattern. 
  1864.  
  1865. Word delimiters 
  1866.           Characters entered in this field define what delimits a word.  All 
  1867.           functions that search for word boundaries use this setting.  White 
  1868.           space is always included in the word delimiter and does not need to 
  1869.           be specified here. 
  1870.  
  1871.  
  1872. ΓòÉΓòÉΓòÉ 5.5.1.4. Status Bar ΓòÉΓòÉΓòÉ
  1873.  
  1874. The status bar enables you to easily locate information related to the current 
  1875. buffer or window. By selecting the appropriate check box on the Status Bar 
  1876. notebook page, you can specify the information that is displayed on the status 
  1877. bar. 
  1878.  
  1879. The table below describes the information presented on the status bar when you 
  1880. select the corresponding setting on the Status bar page. 
  1881.  
  1882. Prompts 
  1883.           Prompts are displayed in the status bar. 
  1884.  
  1885. Messages 
  1886.           Messages are displayed in the status bar. 
  1887.  
  1888. Column position 
  1889.           The current column position of the cursor is displayed in the status 
  1890.           bar. 
  1891.  
  1892. Line number 
  1893.           The current line number of the cursor is displayed in the status bar. 
  1894.  
  1895. Total lines 
  1896.           The total number of lines in the file is displayed in the status bar. 
  1897.  
  1898. Emulation mode 
  1899.           The current emulation mode is displayed in the status bar. 
  1900.  
  1901. Other indicators 
  1902.           Miscellaneous indicators are displayed. These include:  RO 
  1903.           (read-only), MOD (modified), INS (insert mode), OVR (overwrite mode), 
  1904.           NUM (numlock) and CAP(caps lock). 
  1905.  
  1906. Day of week 
  1907.           The current week day is displayed in the status bar. 
  1908.  
  1909. Date 
  1910.            The current date is displayed in the status bar. 
  1911.  
  1912. Time 
  1913.           The current time is displayed (in the format you specify) in the 
  1914.           status bar. 
  1915.  
  1916. Format 
  1917.           Select the 12 hr. button for the time on your editor to be displayed 
  1918.           in a 12-hour format, or the 24 hr. button to see the time in a 
  1919.           24-hour format. 
  1920.  
  1921. Dynamic resizing 
  1922.           Each field of the status bar will be resized in order to display its 
  1923.           information.  Any excess space is allocated to the message area. 
  1924.  
  1925.  
  1926. ΓòÉΓòÉΓòÉ 5.5.1.5. Message Level ΓòÉΓòÉΓòÉ
  1927.  
  1928. Use Message Level options settings to specify the level of messages to be 
  1929. displayed.  Messages are displayed on the status bar or in a dialog box, 
  1930. depending on the status bar options you choose. 
  1931.  
  1932. The table below describes the message level presented when you select the 
  1933. corresponding setting on the Message level page. 
  1934.  
  1935. All 
  1936.           All messages are displayed. 
  1937.  
  1938. Notify, warning and error 
  1939.           Only notify, warning and error messages are displayed. 
  1940.  
  1941. Warning and error 
  1942.           Only warning and error messages are displayed.  (See "Pause on error" 
  1943.           below.) 
  1944.  
  1945. None 
  1946.           No messages are displayed. 
  1947.  
  1948. Pause on error 
  1949.           Warnings and errors are displayed in pop-up message boxes, which must 
  1950.           be closed before proceeding.  Clear this box to have warnings and 
  1951.           errors displayed the same as messages. 
  1952.  
  1953.  
  1954. ΓòÉΓòÉΓòÉ 5.5.1.6. Directories ΓòÉΓòÉΓòÉ
  1955.  
  1956. Use Directories settings to specify the directories in which files are stored 
  1957. by the editor. 
  1958.  
  1959. The table below describes the information to enter for the corresponding 
  1960. setting on the Directories page. 
  1961.  
  1962. Backup directory 
  1963.           Location of backup files created by the editor. 
  1964.  
  1965. Tags path 
  1966.           Locations of .TAG files created when you select the Tags Make option 
  1967.           from the Tools menu.  When you specify a tags path, each file must 
  1968.           have an explicit path with each path delimited by semicolons. If this 
  1969.           path is not set, the current directory is used. For example: 
  1970.  
  1971.           C:CPE\PEL\PELTAGS.TAG; 
  1972.  
  1973.           C:\PROJECT\CTAGS.TAG 
  1974.  
  1975.  
  1976. ΓòÉΓòÉΓòÉ 5.5.1.7. Cursor ΓòÉΓòÉΓòÉ
  1977.  
  1978. Use the Cursor settings to tailor your cursor to your own preferences. The 
  1979. following table describes each cursor setting. 
  1980.  
  1981. Cursor type 
  1982.           Click on one of the four cursor types available: 
  1983.  
  1984.           1.Normal - Cursor displayed when in insert mode and in an area of the 
  1985.           buffer where text has been typed. 
  1986.  
  1987.           2.Overtype - Cursor displayed when in overtype mode and in an area of 
  1988.           the buffer where text has been typed. 
  1989.  
  1990.           3.Virtual - Cursor displayed when in insert mode and in an area of 
  1991.           the buffer where text has not been typed. 
  1992.  
  1993.           4.Virtual Overtype - Cursor displayed when in overtype mode and an 
  1994.           area of the buffer where text has not been typed. 
  1995.  
  1996. Cursor style 
  1997.           Select Horizontal for a horizontal cursor, Vertical for a vertical 
  1998.           cursor, or Custom to define your own cursor.  If you select Custom, 
  1999.           the Width and Height fields are enabled for you to alter. 
  2000.  
  2001. Width 
  2002.           The cursor width, in pixels. 
  2003.  
  2004. Height 
  2005.           The cursor height, in pixels. 
  2006.  
  2007. Gray 
  2008.           The cursor color is gray. 
  2009.  
  2010.  
  2011. ΓòÉΓòÉΓòÉ 5.5.1.8. VCS ΓòÉΓòÉΓòÉ
  2012.  
  2013. Use VCS (Version Control System) settings to tailor the version control system 
  2014. to your preferences. 
  2015.  
  2016. The table below describes the information to enter for the corresponding 
  2017. setting on the VCS page. 
  2018.  
  2019. Get command 
  2020.           The VCS command used to "get" a file from your version control 
  2021.           system. 
  2022.  
  2023. Put command 
  2024.           The VCS command used to "put" a file into your version control 
  2025.           system. 
  2026.  
  2027. Enable VCS 
  2028.           Enables automatic "get" and "put" of read-only files. 
  2029.  
  2030. Get on modification 
  2031.           Prompts to "get" a read-only file when you begin to edit it. 
  2032.  
  2033. Get when non-existent 
  2034.           Prompts to get files that don't exist when you try to edit them. 
  2035.  
  2036. Use the following macros to abbreviate information in your Get and Put text 
  2037. fields: 
  2038.  
  2039. This macro...  Means... 
  2040.  
  2041. $<             Full specification 
  2042.  
  2043. $r             Filename only 
  2044.  
  2045. $e             Extension (no period) 
  2046.  
  2047. $a             .AE file 
  2048.  
  2049. $p             Path only 
  2050.  
  2051. See also:: 
  2052.  
  2053. o Changing Settings 
  2054. o pvcs() 
  2055. o get_command 
  2056. o PVCS Get Dialog 
  2057. o put_command 
  2058. o PVCS Put Dialog 
  2059. o vdiff_command 
  2060. o PVCS VDIFF Dialog 
  2061.  
  2062.  
  2063. ΓòÉΓòÉΓòÉ 5.5.2. Window Settings ΓòÉΓòÉΓòÉ
  2064.  
  2065. Use the Window settings notebook pages to change the features of the current 
  2066. window. You can check the Make default check box to establish default values 
  2067. for all new windows. 
  2068.  
  2069. There are two buttons at the bottom of each Windows settings page: Undo and 
  2070. Default.  If you make changes on the page and want to return to the original 
  2071. settings, click on Undo.  The settings specified prior to your changes (in the 
  2072. current notebook) are displayed.  To change the settings to the editor's 
  2073. default settings, click on Default.  The default settings are displayed. 
  2074.  
  2075. Setting Default Values 
  2076.  
  2077. The make default check box is included on all Window settings notebook pages, 
  2078. except the Mode page.  By clicking on the Make default check box, the settings 
  2079. you select are used for all new windows. 
  2080.  
  2081. Applying Settings to All Windows 
  2082.  
  2083. You will see apply to all check boxes on all Window settings notebook pages, 
  2084. except the Mode page.  By clicking on the check box, you can apply your 
  2085. selected settings to all currently open windows. 
  2086.  
  2087. To tailor global editor settings, see Editor Settings  To customize buffer 
  2088. settings, see Buffer Settings 
  2089.  
  2090. Modes 
  2091.  
  2092. Misc. 
  2093.  
  2094. Visible strings 
  2095.  
  2096. Scrolling 
  2097.  
  2098.  
  2099. ΓòÉΓòÉΓòÉ 5.5.2.1. Mode ΓòÉΓòÉΓòÉ
  2100.  
  2101. PREDITOR/2 enables you to customize your window display to your liking.  The 
  2102. Mode page lists the three modes you can choose from.  The following list 
  2103. describes these modes and the One buffer per window option. 
  2104.  
  2105. SDI (mode) 
  2106.           Only one text window is displayed and is bound by the editor window. 
  2107.  
  2108. MDI (mode) 
  2109.           Multiple windows can be displayed, but the windows are bound within 
  2110.           the editor window. 
  2111.  
  2112. Detached (mode) 
  2113.           Windows and toolbar are no longer limited to the main editor window. 
  2114.           In Detached mode, the toolbar and windows "float"--and can be moved 
  2115.           anywhere on the display.  The Control panel dialog box is also 
  2116.           displayed, containing the buffer list and access information for open 
  2117.           buffers.  Closing the Control Panel dialog box closes the editor. 
  2118.  
  2119. One buffer per window 
  2120.           Each buffer is assigned to a window, and each window is assigned a 
  2121.           buffer.  A buffer may not be displayed in mulitple windows. This mode 
  2122.           is only valid when Multiple or Detached is also selected. 
  2123.  
  2124.  
  2125. ΓòÉΓòÉΓòÉ 5.5.2.2. Miscellaneous ΓòÉΓòÉΓòÉ
  2126.  
  2127. Use the Miscellaneous settings to specify general information for the current 
  2128. window.  The table below describes each Miscellaneous window setting. 
  2129.  
  2130. Vertical scroll bar 
  2131.           Displays the vertical scroll bar. 
  2132.  
  2133. Horizontal scroll bar 
  2134.           Displays the horizontal scroll bar. 
  2135.  
  2136. Display fully qualified path name on title bar 
  2137.           Includes path informtion on the title bar.  If you don't select this 
  2138.           check box, only the file name is displayed. 
  2139.  
  2140. Line numbers 
  2141.           Displays line numbers.  Use the line number "Format" field to specify 
  2142.           a format for line numbers. 
  2143.  
  2144. Format 
  2145.           Enter a format for line numbers. 
  2146.  
  2147.  
  2148. ΓòÉΓòÉΓòÉ 5.5.2.3. Visible strings ΓòÉΓòÉΓòÉ
  2149.  
  2150. Select the Visible strings tab to indicate how you want certain parts of the 
  2151. text in your window to appear.  For example, you can specify certain characters 
  2152. for use in displaying a tab stop, space, or virtual space.  Specifying these 
  2153. options makes the text in your current buffer easier to read.  These characters 
  2154. appear only in the window, and are not printed or saved in the file. 
  2155.  
  2156. The following table describes each Visible strings setting. 
  2157.  
  2158. Tab 
  2159.           Inserts a string used to display a tab. 
  2160.  
  2161. Space 
  2162.           Inserts a character used to display a space. 
  2163.  
  2164. Virtual space 
  2165.           Inserts a character used to display a virtual space (space at the end 
  2166.           of a line). 
  2167.  
  2168. Newline 
  2169.           Inserts a string used to display a virtual line (lines past the end 
  2170.           of the buffer). 
  2171.  
  2172. End of buffer 
  2173.           Inserts a string used to display the end of the buffer. 
  2174.  
  2175.  
  2176. ΓòÉΓòÉΓòÉ 5.5.2.4. Scrolling ΓòÉΓòÉΓòÉ
  2177.  
  2178. To specify the number of lines or columns to move when scrolling, click on the 
  2179. Scrolling tab.  The table below describes each Scrolling setting. 
  2180.  
  2181. Top 
  2182.           Indicates the number of lines the cursor must be from the top of the 
  2183.           window before the text will begin to scroll. 
  2184.  
  2185. Bottom 
  2186.           Indicates the number of lines the cursor must be from the bottom of 
  2187.           the window before the text will begin to scroll. 
  2188.  
  2189. Left 
  2190.           Indicates the number of lines the cursor must be from the left edge 
  2191.           of the window before the text will begin to scroll. 
  2192.  
  2193. Right 
  2194.           Indicates the number of lines the cursor must be from the right edge 
  2195.           of the window before the text will begin to scroll. 
  2196.  
  2197. Horizontal 
  2198.           Indicates how many columns will scroll when the window scrolls 
  2199.           horizontally.  For example, if the Right value is 3 and the 
  2200.           Horizontal value is 5, when the cursor reaches the third column from 
  2201.           the right of the screen, five new columns of text scroll into view. 
  2202.  
  2203. Vertical 
  2204.           Indicates how many lines will scroll when the window scrolls 
  2205.           vertically. For example, if the Bottom value is 5 and the Vertical 
  2206.           value is 7, when the cursor reaches the fifth line from the bottom of 
  2207.           the screen, seven new lines of text scroll into view. 
  2208.  
  2209. Scroll means pan 
  2210.           If selected, the cursor stays in the same place on the screen while 
  2211.           the text pans around it.  If cleared, the cursor stays in the same 
  2212.           place in the text and moves with the text as you scroll. 
  2213.  
  2214.  
  2215. ΓòÉΓòÉΓòÉ 5.5.3. Types Settings ΓòÉΓòÉΓòÉ
  2216.  
  2217. Use the Types Settings notebook pages to customize your files based on their 
  2218. types. 
  2219.  
  2220. There are two buttons at the bottom of each Types settings page:  Undo and 
  2221. Default.  If you make changes on the page and want to return to the original 
  2222. settings, click on Undo.  The settings specified prior to your changes (in the 
  2223. current notebook) are displayed.  To change the settings to the editor's 
  2224. default settings, click on Default.  The default settings are displayed. 
  2225.  
  2226. Extensions 
  2227.  
  2228. Compilers 
  2229.  
  2230. Colors 
  2231.  
  2232. Template 
  2233.  
  2234.  
  2235. ΓòÉΓòÉΓòÉ 5.5.3.1. Extensions ΓòÉΓòÉΓòÉ
  2236.  
  2237. The Extensions page enables you to link extensions with types, as well as 
  2238. add/delete extensions and types.  The list below describes each Extensions 
  2239. setting. 
  2240.  
  2241. Type 
  2242.           Click on Add to add a new type to the list. (When a type is 
  2243.           highlighted, the default compiler for that type is displayed.) To 
  2244.           delete an existing type, highlight the type and click on Delete.  To 
  2245.           copy a type's settings to another type, click on Copy and enter the 
  2246.           type to be copied to.  To change a type's name, click on Change and 
  2247.           enter the new name. 
  2248.  
  2249. Enter extensions 
  2250.           Enter the filename extensions associated with the selected type.  Any 
  2251.           actions performed on the selected type will apply to all files whose 
  2252.           extensions match the ones entered in the edit field.  Enter 
  2253.           extensions as a space separated list.  For example: .c .cpp .h 
  2254.  
  2255. Matching pairs 
  2256.           Enter the symbols you want the editor to consider matching pairs. 
  2257.           This string must be a space separated list of words in the form of 
  2258.           "open1 close1 open2 close2...".  These matching pairs are used by the 
  2259.           goto_matching() command (Find matching on the Search Menu), and the 
  2260.           mark_matching() and mark_matching_next() menu items. 
  2261.  
  2262.  
  2263. ΓòÉΓòÉΓòÉ 5.5.3.2. Compilers ΓòÉΓòÉΓòÉ
  2264.  
  2265. The Compilers page enables you to link types to compilers, and specify 
  2266. information for executing a compile process.  The list below describes each 
  2267. Compilers setting. 
  2268.  
  2269. Type 
  2270.           The type associated with the compiler. 
  2271.  
  2272. Compiler 
  2273.           Click on Add to add a new compiler to the list.  To modify an 
  2274.           existing compiler, highlight the compiler and click on Change.  To 
  2275.           delete an existing compiler from the list, highlight the compiler and 
  2276.           click on Delete.  To create a new compiler based on the existing one, 
  2277.           highlight the compiler to be copied and click on Copy. 
  2278.  
  2279. Command line 
  2280.           The command line and options for beginning a compile. 
  2281.  
  2282. Error format 
  2283.           Select the compiler with the error format you prefer.  Usually this 
  2284.           will be identical to your compiler.  To provide your own error 
  2285.           format, select "Other." 
  2286.  
  2287. Other format 
  2288.           If you select "Other" in the "Error format" field, you can customize 
  2289.           your error format by adding codes to this field.  The error pattern 
  2290.           is created from a superset of regular expression codes which indicate 
  2291.           the order in which relevant information is displayed. 
  2292.  
  2293.           Use the following macros to abbreviate information in your Compiler 
  2294.           text fields: 
  2295.  
  2296.    This macro... Means... 
  2297.  
  2298.    $<        Full specification 
  2299.  
  2300.    $r        Filename only 
  2301.  
  2302.    $e        Extension (no period) 
  2303.  
  2304.    $a        Current .AE file 
  2305.  
  2306.    $p        Path only 
  2307.  
  2308.           See also: 
  2309.  
  2310.    o Advanced compiler settings 
  2311.  
  2312.  
  2313. ΓòÉΓòÉΓòÉ 5.5.3.2.1. Advanced Compiler Settings ΓòÉΓòÉΓòÉ
  2314.  
  2315. The Advanced Compiler Settings dialog box allows you to configure how the 
  2316. compiler executable runs. 
  2317.  
  2318. Needs input Some compile processes require input from you during the compile 
  2319.           (others can compile with just the information entered in the "Command 
  2320.           line" field). Select this check box if your compile process will need 
  2321.           input. 
  2322.  
  2323.           You can leave the corresponding field blank, or you can enter a 
  2324.           filename or a string prefixed with an equal sign (e.g. =y). Any 
  2325.           characters in the file, or after the equal sign, will be passed to 
  2326.           the compiler before any response entered in the compile output 
  2327.           dialog. 
  2328.  
  2329. List all output Lists raw output from compile, and not a parsed version. 
  2330.  
  2331. Save all modified buffers Saves all loaded buffers that have been modified, 
  2332.           rather than just the buffer being compiled. 
  2333.  
  2334. Change to source directory Changes the directory where the file is loaded, 
  2335.           before beginning the compile. 
  2336.  
  2337. System flags Enables you to configure how you want to execute the compile. 
  2338.  
  2339. Background Runs the compile asynchronously.  Control is returned immediately to 
  2340.           the editor as the compile continues to run. 
  2341.  
  2342. DOS settings Enables you to configure DOS compilers.  The DOS Settings push 
  2343.           button is available. 
  2344.  
  2345. Session   Runs the compiler in a separate session.  If this flag is set and the 
  2346.           compiler is an OS/2 or DOS character mode program a command window is 
  2347.           displayed when executing.  If this flag is not set for a character 
  2348.           mode program the only output you will see is the results dialog box 
  2349.           displayed by the editor. If the compiler is a PM program it is always 
  2350.           run in a separate session and this flag has no effect. 
  2351.  
  2352. Shell     Runs the compiler through a secondary command processor.  This is 
  2353.           equivelant to performing the following command line from an OS/2 
  2354.           prompt: cmd /c compiler.exe 'options'. 
  2355.  
  2356. See also: 
  2357.  
  2358. o DOS Settings 
  2359.  
  2360.  
  2361. ΓòÉΓòÉΓòÉ 5.5.3.2.2. DOS Settings ΓòÉΓòÉΓòÉ
  2362.  
  2363. The DOS Settings dialog box allows you to configure your DOS compiler.  Click 
  2364. on the OK button to save your changes or the Cancel button ignore your changes. 
  2365.  
  2366. To add a new setting Type in your information in the setting and value fields 
  2367.           then click on the add button to use the information. 
  2368.  
  2369. To delete a setting Highlight the setting you want to delete and click on the 
  2370.           delete button. 
  2371.  
  2372. To change a setting Highlight the setting you want to change and type in a new 
  2373.           value. 
  2374.  
  2375. Setting   Enter the DOS Setting you want to configure.  You can use any DOS 
  2376.           Setting that is available in the DOS Settings dialog box display in 
  2377.           OS/2 for a DOS program. Some examples are: 
  2378.  
  2379.    o DOS_AUTOEXEC. 
  2380.  
  2381.    o DPMI_DOS_API. 
  2382.  
  2383. Value     Enter the value for the DOS setting.  The value entered here will be 
  2384.           specific to the setting entered in the setting field. 
  2385.  
  2386.  
  2387. ΓòÉΓòÉΓòÉ 5.5.3.3. Colors ΓòÉΓòÉΓòÉ
  2388.  
  2389. The Colors page enables you to move beyond uniform foreground and background 
  2390. colors with color syntax highlighting.  For each type, link categories and 
  2391. related items to colors that make them easy to identify. 
  2392.  
  2393. Because keywords and coding patterns are different for each type, those you 
  2394. enter for one type will not apply to another.  For example, if you specify 
  2395. colors for the "ada" type, and then change the type selection to "cobol", your 
  2396. "ada" preferences are not listed. 
  2397.  
  2398. Note: By default, color highlighting is on for all types.  To change this 
  2399. setting for individual files or for types, specify your preferences on the 
  2400. Buffer flags page in the Buffer settings notebook. 
  2401.  
  2402. Refer to the sections below for complete descriptions for elements of the 
  2403. Colors page. 
  2404.  
  2405. Type 
  2406.           Before you begin specifying colors for categories and items, select 
  2407.           the Type associated with your file.  "Type" indicates an association 
  2408.           between the test string and related file extensions.  The color 
  2409.           settings you specify are applied only to the Type selected. 
  2410.  
  2411. Escape character 
  2412.           Character used when a line style is set as escapable (see Advanced 
  2413.           items to see how to make a line style escapable).  When the Escape 
  2414.           character precedes an escapable line style then that style will not 
  2415.           be considered for color highlighting.  For example if you have " 
  2416.           "(two double quotes) configured as an escapable line style then the 
  2417.           following string would not be color highlighted:  \"this is not color 
  2418.           highlighted\" 
  2419.  
  2420. Keyword delimiter 
  2421.           Enter characters used to delimit, or mark the boundaries for, keyword 
  2422.           items.  Keywords will only be highlighted if they are surrounded by 
  2423.           spaces or keyword delimiters. 
  2424.  
  2425. Category 
  2426.           This scope box enables you to add, delete, and change colors for 
  2427.           categories.  When you change a category color, all the items that 
  2428.           belong to that category also change.  Use the table below for 
  2429.           instructions on completing these activities. 
  2430.  
  2431.                     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2432.                     ΓöéTo...               ΓöéPerform this action...                            Γöé
  2433.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2434.                     ΓöéAdd a category      ΓöéClick on the Add button.  A dialog box is         Γöé
  2435.                     Γöé                    Γöédisplayed in which you can enter the category nameΓöé
  2436.                     Γöé                    Γöéand select colors.                                Γöé
  2437.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2438.                     ΓöéDelete a category   ΓöéHighlight the category in the list box and click  Γöé
  2439.                     Γöé                    Γöéon Delete.                                        Γöé
  2440.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2441.                     ΓöéChange a category's ΓöéHighlight the category in the list box and click  Γöé
  2442.                     Γöécolors              Γöéon the Category Color button.  The Select Syntax  Γöé
  2443.                     Γöé                    ΓöéColor dialog box is displayed.  Select the new    Γöé
  2444.                     Γöé                    Γöécolors and click on Done.                         Γöé
  2445.                     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2446.  
  2447. Item 
  2448.           The Item scope box enables you to add, delete, and change colors for 
  2449.           items within the selected category.  Use the table below for 
  2450.           instructions on completing these activities. 
  2451.  
  2452.                     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2453.                     ΓöéTo...               ΓöéPerform this action...                            Γöé
  2454.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2455.                     ΓöéAdd an item         ΓöéClick on the Add button.  The Create New Item or  Γöé
  2456.                     Γöé                    ΓöéCategory dialog box is displayed. Enter the item  Γöé
  2457.                     Γöé                    Γöéname, select the colors for the item, and click onΓöé
  2458.                     Γöé                    ΓöéDone.                                             Γöé
  2459.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2460.                     ΓöéDelete an item      ΓöéHighlight the item and click on the Delete button.Γöé
  2461.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2462.                     ΓöéChange an item's    ΓöéHighlight the item and click on the Item color    Γöé
  2463.                     Γöécolors              Γöébutton.  The Select Syntax Color dialog box is    Γöé
  2464.                     Γöé                    Γöédisplayed with color options.  Select the new     Γöé
  2465.                     Γöé                    Γöécolors and click on Done.  Note: Beginning/ending Γöé
  2466.                     Γöé                    Γöéitems must be entered as one item, separated by   Γöé
  2467.                     Γöé                    Γöéspaces.  For example: /* */                       Γöé
  2468.                     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2469.  
  2470. Style 
  2471.           The Style scope box enables you to select the style of your item. 
  2472.           Only the styles that might apply to the item are enabled.  The 
  2473.           following table describes the Style options available to you. 
  2474.  
  2475.                     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2476.                     ΓöéStyle     ΓöéDescription                                                 Γöé
  2477.                     ΓöéOption    Γöé                                                            Γöé
  2478.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2479.                     ΓöéKeyword   ΓöéHighlights the item when it exists between two keyword      Γöé
  2480.                     Γöé          Γöédelimiters. (Space is a default delimiter.)                 Γöé
  2481.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2482.                     ΓöéLine      ΓöéHighlights the item and all text between.  If no ending itemΓöé
  2483.                     Γöé          Γöéis specified, then all text to the end of the line is       Γöé
  2484.                     Γöé          Γöéhighlighted.  The editor will not highlight more than one   Γöé
  2485.                     Γöé          Γöéline whether the ending marker is found or not.  Lines have Γöé
  2486.                     Γöé          Γöéadvanced features associated with them.                     Γöé
  2487.                     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2488.                     ΓöéBlock     ΓöéHighlights the item and all text between.  Blocks can span  Γöé
  2489.                     Γöé          Γöémultiple lines and always continue highlighting up to the   Γöé
  2490.                     Γöé          Γöéend marker.  Note: Blocks cannot have identical beginning   Γöé
  2491.                     Γöé          Γöéand ending items.                                           Γöé
  2492.                     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2493.  
  2494. ____________ 
  2495.  
  2496. See also: 
  2497.  
  2498. o Advanced items 
  2499. o Select Syntax Color 
  2500. o Create New Category or Item 
  2501.  
  2502.  
  2503. ΓòÉΓòÉΓòÉ 5.5.3.3.1. Advanced items ΓòÉΓòÉΓòÉ
  2504.  
  2505. The Advanced Items dialog box is available for Line style items.  Here you can 
  2506. specify an escape character which denotes that this character is escapable. 
  2507. You can also specifiy that the line style is only valid if it starts in a 
  2508. specific column.  The options on this dialog box are mutually exclusive.  For 
  2509. instance, you cannot specify a line style is escapable and must start in a 
  2510. specific column. 
  2511.  
  2512. Example: In the C programming language, programmers often escape the " (quote) 
  2513. character. 
  2514.  
  2515. In the COBOL programming language, the comment character appears in a specific 
  2516. column where it must be recognized.  This character is considered valid if 
  2517. found in a column specified by you in the Advanced Item dialog box. 
  2518.  
  2519. ____________ 
  2520.  
  2521. See also: 
  2522.  
  2523. o Colors 
  2524.  
  2525.  
  2526. ΓòÉΓòÉΓòÉ 5.5.3.3.2. Select Syntax Color ΓòÉΓòÉΓòÉ
  2527.  
  2528. The Select Syntax Color dialog box allows you to change the color setting for 
  2529. any existing item or category. Select one or more items or categories from the 
  2530. list box displayed and then select the desired foreground and background colors 
  2531. to apply to the selected items. If you wish to use your window foreground or 
  2532. background color for any item check the appropriate Use Default check box. When 
  2533. you are finished click the Done button. Click on the Custom button to change 
  2534. what color is displayed in one of the 16 foreground or background color boxes. 
  2535.  
  2536. ____________ 
  2537.  
  2538. See also: 
  2539.  
  2540. o Configure Color 
  2541. o Colors 
  2542.  
  2543.  
  2544. ΓòÉΓòÉΓòÉ 5.5.3.3.3. Create New Category or Item ΓòÉΓòÉΓòÉ
  2545.  
  2546. The Create New Item or Category dialog box allows you to add a new item or 
  2547. category to the type selected on the Colors notebook page. To add a new item: 
  2548.  
  2549.  1. Fill in the edit field with the name of the new item or category. 
  2550.  
  2551.  2. Optionally click on the Custom button to change one or more of the colors 
  2552.     displayed. 
  2553.  
  2554.  3. Optionally change the colors assigned to the new item. 
  2555.  
  2556.  4. If you want to add another item click on the Add button and go back to step 
  2557.     1. If you don't want to add another item click on the Done button. Your 
  2558.     current item will be added and the dialog box will go away. 
  2559.  
  2560. ____________ 
  2561.  
  2562. See also: 
  2563.  
  2564. o Configure Color 
  2565. o Colors 
  2566.  
  2567.  
  2568. ΓòÉΓòÉΓòÉ 5.5.3.3.4. Configure Color ΓòÉΓòÉΓòÉ
  2569.  
  2570. The Configure Color dialog box allows you to change one of the 16 foreground or 
  2571. background color boxes displayed on the Select Syntax Color dialog box. To 
  2572. change a color simply configure the RGB (red, green, blue) values for the 
  2573. foreground or background color. The sample text will display with the colors 
  2574. you have configured.  When you are satisfied with your changes click on the OK 
  2575. button. 
  2576.  
  2577. ____________ 
  2578.  
  2579. See also: 
  2580.  
  2581. o Colors 
  2582. o Create New Category or Item 
  2583. o Select Syntax Color 
  2584.  
  2585.  
  2586. ΓòÉΓòÉΓòÉ 5.5.3.4. Template ΓòÉΓòÉΓòÉ
  2587.  
  2588. The Template page enables you to link a type with a template.  The list below 
  2589. describes each Template option. 
  2590.  
  2591. Type 
  2592.           The type associated with the template. 
  2593.  
  2594. Template 
  2595.           Use the selection box to choose the language template to associate 
  2596.           with the selected extension. 
  2597.  
  2598. Template expansion 
  2599.           Enables template expansion. 
  2600.  
  2601.  
  2602. ΓòÉΓòÉΓòÉ 5.5.4. Buffer Settings ΓòÉΓòÉΓòÉ
  2603.  
  2604. Select the Buffer tab to define buffer-specific settings. You can change Buffer 
  2605. settings for a single buffer, all buffers of a specific type, or set your 
  2606. default buffer settings. 
  2607.  
  2608.  There are two additional buttons at the bottom of each Buffer settings page: 
  2609. Undo and Default.  If you make changes on the page and want to return to the 
  2610. original settings, click on Undo.  The settings specified prior to your changes 
  2611. (in the current notebook) are displayed.  To change the settings to the 
  2612. editor's default settings, click on Default.  The default settings are 
  2613. displayed. 
  2614.  
  2615. To tailor global editor settings, see the section titled Editor Settings  To 
  2616. customize window settings, see the section titled Window Settings 
  2617.  
  2618. Buffer flags 
  2619.  
  2620. Miscellaneous 
  2621.  
  2622. Word processing 
  2623.  
  2624.  
  2625. ΓòÉΓòÉΓòÉ 5.5.4.1. Buffer flags ΓòÉΓòÉΓòÉ
  2626.  
  2627. Select the Buffer flags tab to specify common buffer settings for each type or 
  2628. just the current buffer.  The table below describes each Buffer flags setting. 
  2629.  
  2630. Current buffer 
  2631.           All settings you specify will apply only to the current buffer. 
  2632.  
  2633. Default 
  2634.           The settings you specify will become the new default settings. 
  2635.  
  2636. Type 
  2637.           All settings you specify will apply only to the type selected. 
  2638.  
  2639. Real space only 
  2640.           The cursor is forced to stay in real space, meaning that it is not 
  2641.           permitted to move beyond the end of the line. 
  2642.  
  2643. Tabs to spaces 
  2644.           Pressing Tab inserts spaces rather than tabs. 
  2645.  
  2646. Read only buffer 
  2647.           The current buffer window is designated as read only.  The read only 
  2648.           indicator (RO) may appear in the status bar. (See Status Bar options 
  2649.           in the Editor Settings to toggle this on and off.) 
  2650.  
  2651. Color highlight 
  2652.           Enables color syntax highlighting. 
  2653.  
  2654. Snap to EOL 
  2655.           If characters are typed in virtual space, they are "snapped" (moved 
  2656.           back) to the end of the current line. 
  2657.  
  2658. Expand tabs 
  2659.           When the file is saved, all tabs are converted to spaces. 
  2660.  
  2661. Overtype mode 
  2662.           Newly-typed characters are typed over the top of existing text, 
  2663.           replacing it. Otherwise, newly-typed characters are inserted without 
  2664.           effecting existing text. 
  2665.  
  2666. Apply to all Types 
  2667.           Applies the specified settings to all currently defined types. 
  2668.           Otherwise, new settings are applied only to the currently selected 
  2669.           type. 
  2670.  
  2671.  
  2672. ΓòÉΓòÉΓòÉ 5.5.4.2. Miscellaneous ΓòÉΓòÉΓòÉ
  2673.  
  2674. Use the Miscellaneous settings to tailor the tabs and other various features. 
  2675. Use the Extensions page of the notebook to override these settings for specific 
  2676. extensions. 
  2677.  
  2678. For more information about each Miscellaneous buffer setting, refer to the 
  2679. following table. 
  2680.  
  2681. Current buffer 
  2682.           All settings you specify will apply only to the current buffer. 
  2683.  
  2684. Default 
  2685.           The settings you specify will apply only to the type selected. 
  2686.  
  2687. Type 
  2688.           All settings you specify will apply only to the type selected.. 
  2689.  
  2690. Tab stops 
  2691.           Enter the column positions to be used as tab stops.  Implicit tab 
  2692.           stops are calculated using the distance between the last two 
  2693.           specified tabs. 
  2694.  
  2695. Auto indent mode 
  2696.           Select this check box to enable auto indent. Clear this check box to 
  2697.           disable auto indent mode. 
  2698.  
  2699. Apply to all Types 
  2700.           Applies the specified settings to all currently defined types. 
  2701.           Otherwise, new settings are applied only to the currently selected 
  2702.           type. 
  2703.  
  2704.  
  2705. ΓòÉΓòÉΓòÉ 5.5.4.3. Word processing ΓòÉΓòÉΓòÉ
  2706.  
  2707. Current buffer 
  2708.           All settings you specify will apply only to the current buffer. 
  2709.  
  2710. Default 
  2711.           The settings you specify will apply only to the type selected. 
  2712.  
  2713. Type 
  2714.           All settings you specify will apply only to the type selected.. 
  2715.  
  2716. Word processing enabled 
  2717.           Word processing is enabled and word wrap occurs. 
  2718.  
  2719. Auto flow 
  2720.           Wraps paragraph when you add new text to a line of an existing 
  2721.           paragraph. (If you do not enable autoflow, new text will not wrap 
  2722.           unless you execute wrap_paragraph())  Word processing must be enabled 
  2723.           for autoflow to work. 
  2724.  
  2725. Copy left margin text 
  2726.           If your left margin is set to a value greater than zero, the 
  2727.           characters in the columns preceding the left margin are copied to the 
  2728.           beginning of the new line when you press [Enter].  This feature is 
  2729.           especially useful when you write comment blocks. 
  2730.  
  2731. Left margin 
  2732.           The column number where the left margin begins. 
  2733.  
  2734. Right margin 
  2735.           The column number for the right margin. 
  2736.  
  2737. Apply to all Types 
  2738.           Applies the specified settings to all currently defined types. 
  2739.           Otherwise, new settings are applied only to the currently selected 
  2740.           type. 
  2741.  
  2742.  
  2743. ΓòÉΓòÉΓòÉ 5.5.5. File Settings ΓòÉΓòÉΓòÉ
  2744.  
  2745. Notebook pages in the File Settings topic section enable you to specify how you 
  2746. want the editor to handle files.  In this section, you can specify file access 
  2747. and how windows work with files. 
  2748.  
  2749. There are two buttons at the bottom of each File settings page: Undo and 
  2750. Default.  If you make changes on the page and want to return to the original 
  2751. settings, click on Undo.  The settings specified prior to your changes (in the 
  2752. current notebook) are displayed.  To change the settings to the editor's 
  2753. default settings, click on Default.  The default settings are displayed. 
  2754.  
  2755.  
  2756. ΓòÉΓòÉΓòÉ 5.5.5.1. Access ΓòÉΓòÉΓòÉ
  2757.  
  2758. Use the Access settings to specify how the editor handles your LAN files, 
  2759. Floppy files, and/or Local files.  Each Access setting is described in the 
  2760. following table. 
  2761.  
  2762. File type 
  2763.           The type of files you want the Access settings to apply to. 
  2764.  
  2765. Copy to memory 
  2766.           Copies the file to virtual memory.  You can specify for the editor to 
  2767.           make this copy when you begin to modify, when you open the file, or 
  2768.           not to copy the file. If "Do not copy" is selected, the editor will 
  2769.           re-read the original file when needed. 
  2770.  
  2771. Lock files on modification 
  2772.           Locks access to other users when you begin to modify a file. 
  2773.  
  2774.  
  2775. ΓòÉΓòÉΓòÉ 5.5.6. Quick Settings ΓòÉΓòÉΓòÉ
  2776.  
  2777.  
  2778. ΓòÉΓòÉΓòÉ 5.5.6.1. Editor Quick Settings ΓòÉΓòÉΓòÉ
  2779.  
  2780.  
  2781. ΓòÉΓòÉΓòÉ 5.5.6.2. Window Quick Settings ΓòÉΓòÉΓòÉ
  2782.  
  2783.  
  2784. ΓòÉΓòÉΓòÉ 5.5.6.3. Types Quick Settings ΓòÉΓòÉΓòÉ
  2785.  
  2786.  
  2787. ΓòÉΓòÉΓòÉ 5.5.6.4. Buffer Quick Settings ΓòÉΓòÉΓòÉ
  2788.  
  2789.  
  2790. ΓòÉΓòÉΓòÉ 5.6. Colors ΓòÉΓòÉΓòÉ
  2791.  
  2792.  
  2793. ΓòÉΓòÉΓòÉ 5.7. Fonts ΓòÉΓòÉΓòÉ
  2794.  
  2795.  
  2796. ΓòÉΓòÉΓòÉ 5.8. Key bindings ΓòÉΓòÉΓòÉ
  2797.  
  2798.  
  2799. ΓòÉΓòÉΓòÉ 5.9. Toolbar ΓòÉΓòÉΓòÉ
  2800.  
  2801.  
  2802. ΓòÉΓòÉΓòÉ 5.10. Statusbar ΓòÉΓòÉΓòÉ
  2803.  
  2804.  
  2805. ΓòÉΓòÉΓòÉ 6. Configuring ΓòÉΓòÉΓòÉ
  2806.  
  2807. When you load the editor, it executes the startup() function, which: 
  2808.  
  2809. o Executes the functions in the LANGUAGE.PEL file 
  2810.  
  2811. o Executes the localj_setup() command (in the LOCAL.PEL file). 
  2812.  
  2813. o Reads the CPE.CFG file (configuration file) 
  2814.  
  2815. o Executes the local_settings() command (in the LOCAL.PEL file). 
  2816.  
  2817. Initialization follows the order shown above.  If the same settings is 
  2818. specified more than once, the editor uses the last instance read. 
  2819.  
  2820. Refer to the following sections for a description of each initialization step 
  2821. and how you can configure these steps to include your preferences. 
  2822.  
  2823. o LANGUAGE.PEL 
  2824. o local_setup() 
  2825. o CPE.CFG 
  2826. o local_settings() 
  2827. o local_keys() 
  2828. o Configuration Examples 
  2829.  
  2830.  
  2831. ΓòÉΓòÉΓòÉ 6.1. LANGUAGE.PEL ΓòÉΓòÉΓòÉ
  2832.  
  2833. The functions in the LANGUAGE.PEL file are the first executed during 
  2834. initialization. LANGUAGE.PEL contains type-related information you specify in 
  2835. the Settings notebook.  Each time you make changes to the the Settings 
  2836. notebook, the editor recompiles LANGUAGE.PEL and immediately recognizes your 
  2837. changes. 
  2838.  
  2839. Caution: Because all settings associated with types are specified in this file, 
  2840. YOU SHOULD NOT CHANGE LANGUAGE.PEL MANUALLY. 
  2841.  
  2842.  
  2843. ΓòÉΓòÉΓòÉ 6.2. local_setup() ΓòÉΓòÉΓòÉ
  2844.  
  2845. Use the local_setup() function to specify settings that will not change often. 
  2846. This function is located in the LOCAL.PEL file. 
  2847.  
  2848. See also: 
  2849.  
  2850. o local_setup() 
  2851.  
  2852.  
  2853. ΓòÉΓòÉΓòÉ 6.3. CPE.CFG ΓòÉΓòÉΓòÉ
  2854.  
  2855. This file stores your options that are likely to change often.  Because the 
  2856. CPE.CFG file does not have to be recompiled to implement changes, you can 
  2857. change options stored here and the editor will recognize these changes the next 
  2858. time it is started. Notebook settings and the state of the editor are also 
  2859. stored in the CPE.CFG file. 
  2860.  
  2861. The CPE.CFG file is similar to your AUTOEXEC.BAT file or CONFIG.SYS file, in 
  2862. that it initiates settings and performs tasks you want completed every time you 
  2863. start PREDITOR/2. 
  2864.  
  2865.  
  2866. ΓòÉΓòÉΓòÉ 6.4. local_settings() ΓòÉΓòÉΓòÉ
  2867.  
  2868. The local_settings() function is called after the editor executes statements in 
  2869. the CPE.CFG file. Here, you can specify options that override those stated in 
  2870. the CPE.CFG file. 
  2871.  
  2872. For example, you may want to save all but one of your settings when you exit. 
  2873. To do this, select the "Save settings on exit" option on the Save subtopic page 
  2874. in the Editor Settings notebook.  Then, specify the setting that should not be 
  2875. saved in local_settings().  The local_settings() function is also a good 
  2876. location to place your own PEL that needs to be initialized after CPE.CFG. 
  2877.  
  2878.  
  2879. ΓòÉΓòÉΓòÉ 6.5. local_keys() ΓòÉΓòÉΓòÉ
  2880.  
  2881. The local_keys() function is called whenever you change an emulation and is set 
  2882. either in the CPE.CFG file or in local_settings().  The advantage of specifying 
  2883. key assignments in local_keys() is if you change emulations during an editor 
  2884. session, your customized key assignments will be maintained. 
  2885.  
  2886. For example, you may set the emulation in any or all of local_setup(), CPE.CFG, 
  2887. and local_settings(). Each time the emulation changes, local_keys() is called 
  2888. and your customized key assignments are available to you. 
  2889.  
  2890.  
  2891. ΓòÉΓòÉΓòÉ 6.6. Modifying LOCAL.PEL ΓòÉΓòÉΓòÉ
  2892.  
  2893. You must decide if you will use the configuration file (CPE.CFG) or the 
  2894. LOCAL.PEL file for your options.  We recommend that you use the LOCAL.PEL file 
  2895. because it keeps startup time at a minimum.  A lengthy configuration file 
  2896. increases startup time. 
  2897.  
  2898. To modify functions in LOCAL.PEL, 
  2899.  
  2900.  1. Open the C:\CPE\PEL\LOCAL.PEL file. 
  2901.  
  2902.  2. Edit the file to include your preferred options. If you are adding new 
  2903.     options, look for the comment # All other custom initialization goes here 
  2904.     and place options after this comment. 
  2905.  
  2906.  
  2907. ΓòÉΓòÉΓòÉ 6.6.1. Predefined User Options ΓòÉΓòÉΓòÉ
  2908.  
  2909. The LOCAL.PEL file is preset to contain many of the user options you might want 
  2910. to set.  These options are easy to activate. 
  2911.  
  2912. The table below describes some of the options that are predefined in the 
  2913. local_setup() function in LOCAL.PEL. 
  2914.  
  2915. autosave( n ) 
  2916.           Saves the file automatically after n seconds of inactivity. The 
  2917.           default is 0 (disabled). 
  2918.  
  2919. save_state = 1Enables saving information about the editor state in the 
  2920. configuration file.  This slows the loading process, but enables youto resume 
  2921. where you left off. 
  2922.  
  2923. set_default_buffer_flag (BUFFER_EXPAND_TABS, 1) 
  2924.           Converts tabs to spaces on writes for all subsequent buffers. 
  2925.  
  2926. set_default_buffer_flag (BUFFER_OVERTYPE_MODE,0) 
  2927.           Makes inert mode the default for all subsequent buffers. 
  2928.  
  2929. set_default_buffer_flag (BUFFER_SNAP_TO_EOL,0) 
  2930.           Enables insertion of text past the end of the line. 
  2931.  
  2932. set_default_buffer_flag (BUFFER_TABS_TO_SPACES, 0) 
  2933.           Disables conversion of tabs to spaces as you type. 
  2934.  
  2935. toggle_auto_indent(0) 
  2936.           New lines are not automatically indented to previous level. 
  2937.  
  2938. toggle_electric(0) 
  2939.           Turns off electric C "code processing mode" (language templates and 
  2940.           so on). 
  2941.  
  2942. toggle_file_backup(0) 
  2943.           Makes no backup copy of modified files. 
  2944.  
  2945. toggle_pvcs(0) 
  2946.           Set to 3 to have PREDITOR/2 prompt you to retrieve a file from a PVCS 
  2947.           log file if that file does not exist or is read-only. 
  2948.  
  2949. To activate predefined user options in the LOCAL.PEL  file, 
  2950.  
  2951.  1. Locate the option you want to activate and remove the comment character (#) 
  2952.     from the beginning of the text line.  At this time, you might also choose 
  2953.     to change the options' values. 
  2954.  
  2955.  2. Recompile LOCAL.PEL. 
  2956.  
  2957. Note: PREDITOR/2 processes the local_setup() function before reading CPE.CFG. 
  2958. Options set in local_setup() may be reset or overridden by options in the 
  2959. CPE.CFG file.  A common problem arises from first setting the emulation mode 
  2960. through the notebook and also by changing local_setup(). 
  2961.  
  2962. To modify CPE.CFG, 
  2963.  
  2964.  1. Open the C:\CPE\CPE.CFG file and locate the section stating $USER SETTINGS$ 
  2965.     # Place user settings here. 
  2966.  
  2967.  2. Edit the file at this location and save your changes. 
  2968.  
  2969. When using the CPE.CFG file, the order in which your options are executed is 
  2970. important. 
  2971.  
  2972. Note: The initial loading of PREDITOR/2 may be slowed down if you store too 
  2973. many options in the CPE.CFG file.  Therefore, use the LOCAL.PEL file to select 
  2974. options that are not likely to change often. 
  2975.  
  2976.  
  2977. ΓòÉΓòÉΓòÉ 6.7. Moving Options Between Files ΓòÉΓòÉΓòÉ
  2978.  
  2979. To reduce startup time or to put long function calls elsewhere, move 
  2980. appropriate options from CPE.CFG to LOCAL.PEL file.  (For example, rather than 
  2981. defining key assignments with the emulation in CPE.CFG, move these to the 
  2982. local_keys() portion of LOCAL.PEL.) 
  2983.  
  2984. To move options from CPE.CFG to LOCAL.PEL, 
  2985.  
  2986.  1. Edit the CPE.CFG file and the LOCAL.PEL file in the PEL subdirectory. 
  2987.  
  2988.  2. Select and cut the lines in CPE.CFG, in the $USER_SETTINGS$ section. 
  2989.  
  2990.  3. Switch to LOCAL.PEL and paste the lines after the line # other custom 
  2991.     initialization or keymap definitions can go here... in the function 
  2992.     local_setup(). 
  2993.  
  2994.     Note: If you copied a line containing your emulation mode (i.e., Brief, 
  2995.     CUA, etc.) into local_setup(), delete it. 
  2996.  
  2997.  4. Locate the line containing your emulation (earlier in local_setup()) and 
  2998.     remove the comment character (#).  This decreases the chance of your 
  2999.     specifying options out of order in the future. 
  3000.  
  3001.     For example, if you work in the Emacs emulation, remove the comment 
  3002.     character on the corresponding line, as shown below: 
  3003.  
  3004.    # cua() 
  3005.  
  3006.    # native() 
  3007.  
  3008.    # vi() 
  3009.  
  3010.    # brief() 
  3011.  
  3012.    emacs() 
  3013.  
  3014.    # ispf() 
  3015.  
  3016. All the variable assignments (i.e., lines containing an equal sign) you placed 
  3017. in your LOCAL.PEL file need no further modifications.  However, the remaining 
  3018. lines (if any) are function calls and need to have parentheses and commas 
  3019. placed appropriately. 
  3020.  
  3021.  5. Place parentheses and commas in remaining function calls and commas between 
  3022.     arguments.  An opening parenthesis belongs after the first word on the line 
  3023.     and a closing parenthesis goes at the end of the line.  Commas belong after 
  3024.     each argument falling between.  For example: 
  3025.  
  3026.     set_default_buffer_flag( BUFFER_READ_ONLY, 1 ) 
  3027.  
  3028.  6. Recompile LOCAL.PEL. 
  3029.  
  3030.  
  3031. ΓòÉΓòÉΓòÉ 6.8. Configuration Examples ΓòÉΓòÉΓòÉ
  3032.  
  3033. The following sections show examples of how you can make additions and changes 
  3034. to the LOCAL.PEL file. Changes you make may require you to use functions and 
  3035. variables from the Professional Extension Language (PEL).  For further 
  3036. information on PEL, see Programming with PEL. 
  3037.  
  3038. Assigning Keys 
  3039.  
  3040. Your emulation is defined in the CPE.CFG file.  This emulation has a standard 
  3041. list of key assignments that apply to your emulation.  To change the keystrokes 
  3042. used for various activities, place them in the local_keys() function.  These 
  3043. key assignments will override the standard emulation key assignments that are 
  3044. defined in CPE.CFG. 
  3045.  
  3046. For example: 
  3047.  
  3048. global function local_keys()
  3049. {
  3050.    assign_key( "<Alt-Num-5>", "set_line_mark")
  3051.    assign_key( "<Num-5>", "set_inclusive_mark")
  3052.    assign_key( "<Ctrl-Num-5>", "set_column_mark")
  3053.    assign_key( "<Alt-Num-+>", "next_buffer")
  3054.    assign_key( "<Ctrl-1>", "goto_bookmark 1")
  3055.    assign_key( "<Ctrl-2>", "goto_bookmark 2")
  3056.    assign_key( "<Ctrl-3>", "goto_bookmark 3")
  3057.    assign_key( "<Ctrl-4>", "goto_bookmark 4")
  3058.    assign_key( "<Ctrl-5>", "goto_bookmark 5")
  3059.    assign_key( "<Ctrl-6>", "goto_bookmark 6")
  3060.    assign_key( "<Ctrl-7>", "goto_bookmark 7")
  3061.    assign_key( "<Ctrl-8>", "goto_bookmark 8")
  3062.    assign_key( "<Ctrl-9>", "goto_bookmark 9")
  3063.    assign_key( "<Ctrl-0>", "goto_bookmark 10")
  3064.    assign_key( "<Ctrl-Num-+>", "append_to_scrap")
  3065. }
  3066.  
  3067. Setting the Default Directory 
  3068.  
  3069. To have the editor automatically default to the same directory upon startup, 
  3070. specify the default file path in local_setup(). 
  3071.  
  3072. For example: 
  3073.  
  3074. global local_setup()
  3075. {
  3076.    chdir( "c:\\mydirect" )
  3077. }
  3078.  
  3079. Adding or Modifying an Emulation 
  3080.  
  3081. PREDITOR/2 provides emulations of some popular editors available on the market 
  3082. today because many users have become familiar with the keymapping activities 
  3083. associated with these emulations. You can modify these emulations, or add your 
  3084. own to further configure the editor to your programming style. 
  3085.  
  3086. To modify an existing emulation, you can either 
  3087.  
  3088.  1. Make changes in LOCAL.PEL (we recommend that you do this in the 
  3089.     local_keys() function). 
  3090.  
  3091.     or 
  3092.  
  3093.  2. Make changes in the emulation, which is defined in the .PEL emulation files 
  3094.     (e.g. BRIEF.PEL, CUA.PEL, EMACS.PEL). 
  3095.  
  3096. Caution: If you choose to make changes to the .PEL emulation files, you risk 
  3097. irreparably changing an emulation and losing the initial emulation. We 
  3098. recommend that you modify emulations in LOCAL.PEL. 
  3099.  
  3100. To add your own emulation, 
  3101.  
  3102.  1. Open the MY_MODE.PEL file, which is located in the PEL directory. 
  3103.  
  3104.  2. Select Save as from the File menu and save the file as your new emulation. 
  3105.     For example, NEW_MODE.PEL. 
  3106.  
  3107.  3. Modify this file to include your emulation preferences. 
  3108.  
  3109.  4. Compile and run your new file. 
  3110.  
  3111.     Note: Refer to the .PEL emulation files (e.g. BRIEF.PEL, CUA.PEL, 
  3112.     EMACS.PEL) for examples on setting up your own emulation. 
  3113.  
  3114.  
  3115. ΓòÉΓòÉΓòÉ 7. Programming with PEL ΓòÉΓòÉΓòÉ
  3116.  
  3117. For customers who want more, Compuware has taken the unusual step of providing 
  3118. access to most of PREDITOR/2's own source code, so you can personalize existing 
  3119. features to your liking and create new options.  The Professional Extension 
  3120. Language (PEL) is the piece of PREDITOR/2 that truly makes this editor unique. 
  3121. You can use PEL to make your editor work according to the way you do. 
  3122.  
  3123. The sections listed below discuss the basic features of the Professional 
  3124. Extension Language (PEL) and contrasts them with other programming languages. 
  3125. Here, we assume that you are familiar with elementary programming concepts. 
  3126.  
  3127. Note: Non-programmers can learn basic programming concepts from "The AWK 
  3128. Programming Language" by Aho, Weinberger, and Kernighan. 
  3129.  
  3130. Short course in PEL 
  3131.  
  3132. A Closer Look at PEL 
  3133.  
  3134. Writing a PEL function 
  3135.  
  3136. PEL Compiler 
  3137.  
  3138. PEL Debugger 
  3139.  
  3140. Type Identifiers 
  3141.  
  3142. Functions 
  3143.  
  3144. Variable types 
  3145.  
  3146.  
  3147. ΓòÉΓòÉΓòÉ 7.1. Short Course in PEL ΓòÉΓòÉΓòÉ
  3148.  
  3149. The first step in learning to program in PEL is to understand how to read 
  3150. source code written for it. The following sample PEL code is explained in this 
  3151. section. 
  3152.  
  3153. #----------------------------------------------------#
  3154. #                                                    #
  3155. # Functions to support special calls                 #
  3156. #                                                    #
  3157. #----------------------------------------------------#
  3158.  
  3159. global recordString = ""
  3160.  
  3161. # For assignment to key
  3162. global function playitback()
  3163. {
  3164.    if (playback(recordString) == 0)
  3165.       beep();  # Beep on error
  3166. }
  3167.  
  3168. # For assignment to key
  3169. global function recordit()
  3170. {
  3171.    # Note that assignments are allowed in "if"
  3172.    if (recordString = record())
  3173.       message("Recording completed.")
  3174.  
  3175.    else   # Semicolons are optional
  3176.       message("Recording keystrokes.")
  3177. }
  3178.  
  3179. global function write_current_block( file name )
  3180. {
  3181.    if (selection_type() != 0)
  3182.       return write_marked_block( file name )
  3183.  
  3184.    else
  3185.       return write_buffer( file name )
  3186. }
  3187.  The sample above contains the following: 
  3188.  
  3189. Comments 
  3190.  
  3191. Variable declarations 
  3192.  
  3193. Functions 
  3194.  
  3195.  
  3196. ΓòÉΓòÉΓòÉ 7.1.1. Comments ΓòÉΓòÉΓòÉ
  3197.  
  3198. PEL uses the pound sign (#) as its comment character.  Whenever you place the 
  3199. comment character within a line, the PEL compiler ignores the text from that 
  3200. point to the end of the line. 
  3201.  
  3202. The comments in the previous example are: 
  3203.  
  3204. # For assignment to key 
  3205. # Beep on error 
  3206. # For assignment to key 
  3207. # Note that assignments are allowed in "if" 
  3208. # Semicolons are optional 
  3209.  
  3210.  
  3211. ΓòÉΓòÉΓòÉ 7.1.2. Variable Declarations ΓòÉΓòÉΓòÉ
  3212.  
  3213. Following the comment block in the example above, is an optional variable 
  3214. declaration: global recordString = "" 
  3215.  
  3216. For PREDITOR/2 we recommend that you declare variables before using them 
  3217. (although this is not required).  This ensures that the scope of the variable 
  3218. is as you intend, and it provides a basis for identifying typographical errors. 
  3219.  
  3220.  
  3221. ΓòÉΓòÉΓòÉ 7.1.2.1. Global Variables ΓòÉΓòÉΓòÉ
  3222.  
  3223. The variable declared in the above example is recordString.  The variables used 
  3224. in PEL are case sensitive; therefore the upper case S in this variable 
  3225. declaration is significant.  The word global, which appears at the beginning of 
  3226. the line, determines the scope of the variable.  As a global variable, any 
  3227. function in this file or any other file that is compiled with it may use this 
  3228. variable. 
  3229.  
  3230.  
  3231. ΓòÉΓòÉΓòÉ 7.1.2.2. Local Variables ΓòÉΓòÉΓòÉ
  3232.  
  3233. PEL also supports local variables whose declarations begin with the word local. 
  3234. Local variables that you declare outside of a function are local to that file. 
  3235. You cannot reference these variables from other files.  However, because they 
  3236. are static variables, they retain values assigned to them between calls to the 
  3237. module. 
  3238.  
  3239.  
  3240. ΓòÉΓòÉΓòÉ 7.1.2.3. Variable Types ΓòÉΓòÉΓòÉ
  3241.  
  3242. Notice that the type of variable being declared is not specified.  This is 
  3243. because PEL variables are not assigned a type.  Any PEL variable can hold 
  3244. either a string or a long integer.  No floating point variables are supported 
  3245. in PEL.  A PEL variable may also be an array used to hold either a string, a 
  3246. long integer, or both.  A variable becomes an array when it is referenced with 
  3247. a subscript in the program.  Since these variables are not declared by type, 
  3248. you may want to signify the intended type in the variable name.  The 
  3249. recordString variable (shown in the example above) illustrates this approach. 
  3250. You can also identify arrays in a similar manner. 
  3251.  
  3252. You can initialize variables to a value when declaring them.  This is done 
  3253. using the same syntax as used to make an assignment to a variable within a 
  3254. function.  A semicolon at the end of the declaration is optional. 
  3255.  
  3256.  
  3257. ΓòÉΓòÉΓòÉ 7.1.3. Functions ΓòÉΓòÉΓòÉ
  3258.  
  3259. The three functions in the above example are shown in a commonly-used format: 
  3260.  
  3261. function function_name(<untyped arguments>)
  3262. {
  3263.    statements
  3264. }
  3265.  
  3266. Each function begins with the word function.  Like variables, functions may 
  3267. also be local to the module.  By default, however, they are global.  If you 
  3268. want to make a function local, precede the word function with local. 
  3269.  
  3270. The function name is always followed by open and closed parentheses, even if 
  3271. the function doesn't take any arguments.  There must be no intervening space 
  3272. between the function name and the open parenthesis.  If the function requires 
  3273. one or more arguments, they are specified between these parentheses.  PEL 
  3274. requires only a list of these arguments separated by commas, without any 
  3275. mention of their type.  You can add definitions to these arguments by giving 
  3276. them names that reflect their intended use. 
  3277.  
  3278.  
  3279. ΓòÉΓòÉΓòÉ 7.1.3.1. Statements ΓòÉΓòÉΓòÉ
  3280.  
  3281. The statements within a function perform the task assigned to the function. 
  3282. You can terminate statements with a semicolon if you want.  One benefit of this 
  3283. is that if you are used to putting a semicolon after the first statement in an 
  3284. if..else construct, it will not be regarded as a syntax error.  However, if 
  3285. more than one statement appears on a line, a separating semicolon is required. 
  3286.  
  3287.  
  3288. ΓòÉΓòÉΓòÉ 7.1.3.2. Value Returned ΓòÉΓòÉΓòÉ
  3289.  
  3290. All functions return a value, and you can either use this value or ignore it. 
  3291. Therefore the following syntax example is permissible: 
  3292.  
  3293. return_value = my_function() 
  3294.  
  3295. The usefulness of the value returned from the function is determined by the way 
  3296. the function has been written.  The first two functions in the PEL code example 
  3297. do not explicitly return a value.  As noted in the comments associated with 
  3298. these two functions, the functions are intended for assignment to a key.  When 
  3299. PREDITOR/2 executes a function as a result of a key assignment, it ignores any 
  3300. value returned by the function.  For this reason, there is no point in 
  3301. explicitly returning a value if the function is only executed by pressing its 
  3302. assigned key. 
  3303.  
  3304. Note: Since the values returned by functions assigned to a key are not 
  3305. scrutinized, errors may go undetected unless the function itself calls 
  3306. attention to the error.  This may be done by displaying a message or by issuing 
  3307. a beep().  The first two example functions show how this might be done. 
  3308.  
  3309. When you want to explicitly return a value from a function, precede the value 
  3310. (or the function call that returns the value) with the keyword return.  If the 
  3311. value you want to return is itself a value returned to your function by another 
  3312. function, you can prefix the call to that function with the keyword return. 
  3313. This is illustrated in the write_current_block() function in the PEL code 
  3314. example: 
  3315.  
  3316. return write_buffer() 
  3317.  
  3318. The write_current_block() function also demonstrates that you can use the 
  3319. return keyword more than once within a single function.  This gives the 
  3320. function more than one exit point. 
  3321.  
  3322.  
  3323. ΓòÉΓòÉΓòÉ 7.1.4. Automatic Variables ΓòÉΓòÉΓòÉ
  3324.  
  3325. Functions may also contain local variables.  These are called automatic 
  3326. variables and are declared in the same manner as local variables defined 
  3327. outside of functions: 
  3328.  
  3329. function my_function() 
  3330.  
  3331.    local index # Example automatic var. 
  3332.    statements 
  3333.  
  3334.  
  3335. The scope of an automatic variable is limited to the function in which it is 
  3336. declared.  The variable is unknown outside the function. 
  3337.  
  3338.  
  3339. ΓòÉΓòÉΓòÉ 7.1.4.1. Naming Automatic Variables ΓòÉΓòÉΓòÉ
  3340.  
  3341. If an automatic variable has the same name as a global or local variable, only 
  3342. the automatic variable is accessible from within the function.  In the 
  3343. automatic variable example above, there may also be a global variable named 
  3344. index.  Any references to a variable named index within the function always 
  3345. apply to the automatic variable. 
  3346.  
  3347.  
  3348. ΓòÉΓòÉΓòÉ 7.1.5. Control Structures ΓòÉΓòÉΓòÉ
  3349.  
  3350. The earlier function examples show various forms of the if and if..else control 
  3351. structures.  The form for this control structure is the same as that in the C 
  3352. programming language.  PEL also shares several other control structures with C. 
  3353. PEL supports the for, while and do..while structures.  The following examples 
  3354. illustrates some of these control structures. 
  3355.  
  3356. Control structures, examples 
  3357.  
  3358. Control structures, return value 
  3359.  
  3360.  
  3361. ΓòÉΓòÉΓòÉ 7.1.5.1. Examples ΓòÉΓòÉΓòÉ
  3362.  
  3363. Example 1: 
  3364.  
  3365. global function standardKeys() 
  3366.  
  3367.    local i = 0 
  3368.    for (i = 1; i <= 255; i++) 
  3369.    assign_key(chr(i),"insert_key") 
  3370.  
  3371.  
  3372. Here, we use a for loop to assign all but the extended keystrokes to their 
  3373. proper key.  This function is useful for entering assignments into a new 
  3374. keymap. 
  3375.  
  3376. Example 2: 
  3377.  
  3378. global function readKey() 
  3379.  
  3380.    while (!keyboard_input_pending) 
  3381.    ; # do nothing. 
  3382.    return getkey() 
  3383.  
  3384.  
  3385. This control structure function uses a while loop to build a replacement for 
  3386. the getchar() function. This function waits until keyboard input is pending. It 
  3387. then uses getkey() to return the scan code with the ASCII value.  The getchar() 
  3388. function serves a similar purpose but does not provide a scan code. 
  3389.  
  3390. Example 3: 
  3391.  
  3392. global function select(promptStr, keyStr) 
  3393. { local ch 
  3394.  
  3395.    local ok 
  3396.  
  3397.    message(promptStr) 
  3398.  
  3399.    keyStr = toupper( keyStr ) 
  3400.  
  3401.    do 
  3402.  
  3403.    { ch = toupper( chr(getchar()) ) 
  3404.  
  3405.       if ( !(ok = cindex(keyStr,ch)) ) 
  3406.  
  3407.       beep() 
  3408.  
  3409.    } while ( !ok ) 
  3410.  
  3411.    return ch 
  3412.  
  3413.  
  3414. This example is more complex.  It prompts for input and then uses a do..while 
  3415. loop to read the keyboard repeatedly until it receives an acceptable response. 
  3416. It then returns that response to the calling function.  (The confirm() function 
  3417. also performs this function.) 
  3418.  
  3419.  
  3420. ΓòÉΓòÉΓòÉ 7.1.5.2. Return Value Conventions ΓòÉΓòÉΓòÉ
  3421.  
  3422. All functions return a value.  For purposes of controlling the program's flow, 
  3423. the extension language treats all values other than zero as TRUE.  A value of 
  3424. zero or an empty string is treated as FALSE.  PREDITOR/2's library functions 
  3425. associate returning TRUE with success and FALSE with failure (whenever 
  3426. applicable).  This means that most functions in the library return a non-zero 
  3427. value when successful and a zero value upon failure. The exceptions to this 
  3428. convention are primarily those functions that cannot fail or do not return. In 
  3429. addition, some functions return 0 as a meaningful value, such as length(), 
  3430. which reports the length of a string.  A string length of 0 is a meaningful 
  3431. value rather than an error.  Such a function is in no danger of failing, so we 
  3432. do not need a method of testing for failure.  Functions for which 0 (zero) is a 
  3433. meaningful return value that also may need to report failure, do so by 
  3434. returning -1.  The latter are generally file input and output functions such as 
  3435. fread() and fwrite(). 
  3436.  
  3437. PREDITOR/2's function library uses the above return value conventions to allow 
  3438. control of program flow. In this way, you can code all operations that could 
  3439. fail as follows: 
  3440.  
  3441. if ( operation(args) ) 
  3442.  
  3443.    code to use upon success 
  3444.  
  3445. else 
  3446.  
  3447.    code to handle failure 
  3448.  
  3449.  
  3450. All library functions for which it is reasonable to test for success follow 
  3451. this convention.  The few that do not follow this behavior are clearly labeled 
  3452. as such in their function definition.  We recommend that you follow this 
  3453. convention in writing your functions.  See the Truth Values section for a 
  3454. further discussion of true/false values. 
  3455.  
  3456. Note: If you neglect to return a value from a function, it will always return a 
  3457. zero (FALSE) value.  If you later use this function in a control structure such 
  3458. as the one shown above, it will always appear to fail. 
  3459.  
  3460.  
  3461. ΓòÉΓòÉΓòÉ 7.2. A Closer Look at PEL ΓòÉΓòÉΓòÉ
  3462.  
  3463. PREDITOR/2's configurability lies largely with its extension language, PEL. 
  3464. Therefore, if you do not like the way it currently operates, you have the 
  3465. option of creating a new function or changing an existing function to your 
  3466. specifications.  This section describes the fundamental concepts behind PEL. 
  3467.  
  3468.  
  3469. ΓòÉΓòÉΓòÉ 7.2.1. Variable Declaration Syntax ΓòÉΓòÉΓòÉ
  3470.  
  3471. PEL variable declaration statements can take either of the following two 
  3472. formats, depending on their scope: 
  3473.  
  3474. local <decl> [, <decl>... ][;] 
  3475. global <decl> [, <decl>... ][;] 
  3476.  
  3477. The keyword local or global indicates the scope of the variable(s) declared. 
  3478. Only local variables may be declared inside of functions.  When variables 
  3479. identified as local are declared outside of functions, they are static in 
  3480. nature.  Declared within a function, they are automatic. The keyword defining 
  3481. scope is followed by one or more declarations (shown as <decl> in the formats 
  3482. above), separated by commas and optionally terminated with a semicolon.  The 
  3483. variables declared may be string or integer, or mixed. 
  3484.  
  3485. The format of the individual declarations is: 
  3486.  
  3487. <variable name> [= <expression>] 
  3488.  
  3489. The variable name can be any combination of letters, numbers, and underscores, 
  3490. as long as it does not begin with a number.  The case used in this variable 
  3491. name declaration is significant.  The variable can be initialized to the value 
  3492. of some expression.  See the Statements section for a discussion of the 
  3493. contents of expressions.  If a variable is not explicitly initialized, it is 
  3494. automatically initialized to zero or an empty string, depending upon its usage. 
  3495. Variables can be initialized to values other than constants, such as other 
  3496. variables or the return value of a function.  All variables that are 
  3497. initialized to a constant value, however, are initialized first. 
  3498.  
  3499. Note: To avoid confusion and to guarantee forward compatibility, we recommend 
  3500. that only variables local to a function be initialized to values other than 
  3501. constant. 
  3502.  
  3503.  
  3504. ΓòÉΓòÉΓòÉ 7.2.2. Naming Variables ΓòÉΓòÉΓòÉ
  3505.  
  3506. You can define local variables with the same name as global variables, and 
  3507. local functions with the same name as global functions.  You can even have 
  3508. local functions with the same names as global variables. However, you can not 
  3509. have a global function and a global variable with the same name. 
  3510.  
  3511. When both a global and local variable or function have been defined using the 
  3512. same name, references apply to the one that is most local in scope.  The 
  3513. example below, containing three declarations of the variable foo, illustrates 
  3514. this rule: 
  3515.  
  3516. global  foo = 11 
  3517. local  foo = 22 
  3518. function nonesuch() { 
  3519.  
  3520.    local foo = 33 
  3521.    message("foo=" foo) 
  3522.  
  3523.  
  3524. When the nonesuch() function is called, it prints the message "foo=33".  If the 
  3525. local declaration of the foo variable found within the nonesuch() function is 
  3526. removed, the message becomes "foo=22". If the foo declaration local to the 
  3527. module is also removed, it becomes "foo=11". 
  3528.  
  3529. Under most circumstances, it is undesirable to give the same name to local and 
  3530. global variables, as this limits access to the variable with broader scope. 
  3531.  
  3532.  
  3533. ΓòÉΓòÉΓòÉ 7.2.3. Undeclared and External Variables ΓòÉΓòÉΓòÉ
  3534.  
  3535. PEL does not require that you declare variables before using them.  On the 
  3536. other hand, if you don't declare variables, you will lose control of their 
  3537. scope.  Using variables without declaring them causes them to be local to the 
  3538. module in which they are used. 
  3539.  
  3540. We recommend that you declare and initialize all variables you plan to use. 
  3541. This will help you keep track of where variables are being defined and where 
  3542. they are being referenced.  This method gives you the maximum amount of control 
  3543. while ensuring minimal confusion.  The strict declarations compiler option also 
  3544. helps you keep variables in order.  See the PEL Compiler for a discussion of 
  3545. this option. 
  3546.  
  3547.  
  3548. ΓòÉΓòÉΓòÉ 7.2.4. Arrays ΓòÉΓòÉΓòÉ
  3549.  
  3550. AWK and PEL support a special type of array called an associative array.  These 
  3551. differ from arrays in C, Pascal, and many other languages in that they may use 
  3552. strings as subscripts to reference members of the array.  This means that 
  3553. arrays may be indexed with any of the following subscripts: 
  3554.  
  3555. myarray[1] 
  3556. myarray[21] 
  3557. myarray["two"] 
  3558. myarray["Dan"] 
  3559. myarray["David"] 
  3560.  
  3561. There is no difference between the way an array is declared and the way 
  3562. ordinary variables are declared.  The number of elements may not be specified 
  3563. and need not be known.  The appearance of a subscript (square brackets 
  3564. containing a value) following a variable signals PEL that the variable is an 
  3565. array.  In other words, all you have to do to create an array is to begin using 
  3566. it in your program. 
  3567.  
  3568. There are special operators for use with arrays, such as the in operator, which 
  3569. tests for membership. See the "Array Operators" section later in this chapter 
  3570. for further information on this topic. Standard AWK does not support 
  3571. multidimensional arrays but allows their simulation.  PEL supports 
  3572. two-dimensional arrays. 
  3573.  
  3574.  
  3575. ΓòÉΓòÉΓòÉ 7.2.5. Function Syntax ΓòÉΓòÉΓòÉ
  3576.  
  3577. A function declaration uses the following syntax: 
  3578.  
  3579. [local | global] function <name>(<argument list>) 
  3580.  
  3581.    [local variable declarations] 
  3582.    <statements> 
  3583.  
  3584.  
  3585.  
  3586. ΓòÉΓòÉΓòÉ 7.2.6. Guidelines and Reminders ΓòÉΓòÉΓòÉ
  3587.  
  3588. The following guidelines apply to function syntax: 
  3589.  
  3590. o Begin functions with either the local or global keyword.  If you do not 
  3591.   specify the scope, the default is global. 
  3592.  
  3593. o Precede the function name with the keyword function. 
  3594.  
  3595. o Do not begin function names with a number. 
  3596.  
  3597. o Place arguments required by a function after the function name and enclosed 
  3598.   in parentheses ( () ). 
  3599.  
  3600. o Separate argument names with a comma ( , ). 
  3601.  
  3602. o Do not specify argument types. 
  3603.  
  3604. o Do not add a space between the function name and the open parenthesis in 
  3605.   either function declarations or function calls. (Intervening space causes a 
  3606.   syntax error in declarations, and is mistaken for string concatenation in 
  3607.   function calls.) 
  3608.  
  3609. o Enclose the statements that comprise the function in curly braces ({}). 
  3610.  
  3611. o Declare local (PEL) variables at the beginning of a function;  variables 
  3612.   cannot be declared anywhere else in a function. 
  3613.  
  3614. Reminders 
  3615.  
  3616. All arguments in the argument list are optional. Be careful when passing 
  3617. numbers.  As a safeguard, you should add 0 to all arguments that should be a 
  3618. number within the number.  For example: 
  3619.  
  3620. pass_a_number(anum+0). 
  3621.  
  3622. Function names are case-sensitive. Because there are no pointers in AWK, all 
  3623. arguments to functions are passed by value rather than by passing a pointer to 
  3624. the actual variable. Thus, a function cannot modify the original variable 
  3625. because it doesn't know the location of the variable.  It only has the value 
  3626. contained in the variable. 
  3627.  
  3628.  
  3629. ΓòÉΓòÉΓòÉ 7.2.7. Statements and Expressions ΓòÉΓòÉΓòÉ
  3630.  
  3631. The types of statements supported by the PEL compiler include declaration 
  3632. statements, expression statements, iteration, and flow-control.  Statements are 
  3633. terminated by the end of line character or (optionally) by a semicolon.  A 
  3634. semicolon may also be used to represent a null statement. Expression statements 
  3635. consist of primary expressions, which may be combined with other expressions by 
  3636. operators.  Primary expressions include variables, constant strings and 
  3637. numbers, and function calls. 
  3638.  
  3639. Note: See the Variable declaration syntax section for a description of 
  3640. declaration statements. 
  3641.  
  3642.  
  3643. ΓòÉΓòÉΓòÉ 7.2.7.1. Multiple Line Statements ΓòÉΓòÉΓòÉ
  3644.  
  3645. To make source code more readable, statements are often made to extend across 
  3646. two or more lines through the use of the backslash (\).  Lines ending with a 
  3647. backslash are combined with the line that follows it to form a single logical 
  3648. line. 
  3649.  
  3650.  
  3651. ΓòÉΓòÉΓòÉ 7.2.7.2. Truth Values ΓòÉΓòÉΓòÉ
  3652.  
  3653. All expressions may be considered to have a TRUE or FALSE value.  This allows 
  3654. them to be used in control structures to determine the flow of the program. 
  3655. Expressions that have a numeric value are considered to be TRUE if the value is 
  3656. other than zero.  They are treated as FALSE if the value is zero. Similarly, 
  3657. empty strings have a FALSE value, while all other strings are considered to be 
  3658. TRUE.  See Flow control and iteration to see how expressions are used in 
  3659. control structures. 
  3660.  
  3661.  
  3662. ΓòÉΓòÉΓòÉ 7.2.7.3. Expressions Containing Mixed Types ΓòÉΓòÉΓòÉ
  3663.  
  3664. Unlike many programming languages, PEL will not give you error messages if you 
  3665. mix data types in expressions or statements.  PEL considers every number to 
  3666. have a string equivalent and every string to have a corresponding numeric 
  3667. value, even if that value is zero. 
  3668.  
  3669. The string corresponding to the number 23 is "23". The value corresponding to 
  3670. the string "nine" is 0. The string "nine" is a word rather than a string 
  3671. representation of a number.  Any string that is not a representation of a 
  3672. number has a corresponding value of 0.  However, the value given to the string 
  3673. "3 Stooges" is 3.  The string needs to contain a string representation of a 
  3674. number and must begin with a number in order to have a value greater than 0. 
  3675. You can therefore use strings where PEL expects numbers, and numbers where 
  3676. strings are expected.  If PEL does not see the data type it expects, it 
  3677. automatically converts the data type of the data that it found. 
  3678.  
  3679. The way to control the data type PEL assigns to data is to control what PEL 
  3680. expects.  When you use arithmetic operators, PEL expects numbers.  When you 
  3681. perform string operations such as concatenation, PEL expects strings. 
  3682. Similarly, PEL may expect you to use a number as an argument to a function and 
  3683. find that you have used a string.  Again, PEL performs an automatic data type 
  3684. conversion. 
  3685.  
  3686. In normal use, the operators and context you use indicate the data type you are 
  3687. using.  However, if you need to force a desired type, simply combine the data 
  3688. type you are using with the desired data type. Specifically, adding 0 to a 
  3689. string converts it to a number.  Concatenating "" (an empty string) with a 
  3690. number converts it to a string.  These operations change the type without 
  3691. changing the perceived value. 
  3692.  
  3693. Note: The PEL compiler accepts some special data types that are not native to 
  3694. AWK.  These data types are used to denote special integers used to identify 
  3695. specific buffers, keymaps, windows, and so forth. The data types may not be 
  3696. converted or combined with any other type.  They may, however, be compared to 
  3697. NULL to see if they are valid.  You can determine the type of any variable 
  3698. using the typeof() function. 
  3699.  
  3700.  
  3701. ΓòÉΓòÉΓòÉ 7.2.8. Operators ΓòÉΓòÉΓòÉ
  3702.  
  3703. The operators available in PEL are divided into the following categories: 
  3704.  
  3705. Arithmetic operators 
  3706.  
  3707. Assignment operators 
  3708.  
  3709. Comparison operators 
  3710.  
  3711. Logical operators 
  3712.  
  3713. String operators 
  3714.  
  3715. Array operators 
  3716.  
  3717. Conditional operators 
  3718.  
  3719.  
  3720. ΓòÉΓòÉΓòÉ 7.2.8.1. Arithmetic Operators ΓòÉΓòÉΓòÉ
  3721.  
  3722. All arithmetic in PEL is of the 32-bit integer variety.  Binary operators, 
  3723. i.e., operators that act on two expressions, use the following format: 
  3724.  
  3725. <expression> <operator> <expression> 
  3726.  
  3727. Binary Operators 
  3728.  
  3729. Operator  Definition 
  3730.  
  3731. +         addition 
  3732.  
  3733. -         subtraction 
  3734.  
  3735. *         multiplication 
  3736.  
  3737. /         division 
  3738.  
  3739. %         modulo 
  3740.  
  3741. PEL also supports unary operators, i.e., operators that act on a single 
  3742. expression.  Unary operators use the following format: 
  3743.  
  3744. <operator><expression> 
  3745.  
  3746. Unary Operators 
  3747.  
  3748. Operator  Definition 
  3749.  
  3750. +         plus 
  3751.  
  3752. -         minus 
  3753.  
  3754. ++        increment variable by 1 
  3755.  
  3756. --        decrement variable by 1 
  3757.  
  3758. Of the unary operators, the last two may be placed before or after the 
  3759. expression.  However, the expression to which they are applied may only be a 
  3760. variable.  If the expression to which they are applied is part of a larger 
  3761. expression, the position of these operators is significant.  When the operator 
  3762. precedes the variable, the variable is incremented or decremented before the 
  3763. larger expression is evaluated.  When the operator follows the variable, the 
  3764. variable is incremented or decremented only after the larger expression is 
  3765. evaluated. 
  3766.  
  3767.  
  3768. ΓòÉΓòÉΓòÉ 7.2.8.2. Assignment Operators ΓòÉΓòÉΓòÉ
  3769.  
  3770. The basic assignment operator is the equal sign.  It is used to set a variable 
  3771. to the value of an expression using the following format: 
  3772.  
  3773. <variable> = <expression> 
  3774.  
  3775. Additional assignment operators are available that serve as shorthand for more 
  3776. complex expressions. These assignment operators combine the equal sign with 
  3777. other operators to produce the following syntax: 
  3778.  
  3779. <variable> <oper>= <expression> 
  3780.  
  3781. The form above is shorthand for the syntax below: 
  3782.  
  3783. <variable> = <variable> <oper> <expression> 
  3784.  
  3785. Assignment Operators 
  3786.  
  3787. Operator  Definition 
  3788.  
  3789. +=        add and assign 
  3790.  
  3791. -=        subtract and assign 
  3792.  
  3793. *         multiply and assign 
  3794.  
  3795. /=        divide and assign 
  3796.  
  3797. %=        modulo and assign 
  3798.  
  3799.  
  3800. ΓòÉΓòÉΓòÉ 7.2.8.3. Comparison Operators ΓòÉΓòÉΓòÉ
  3801.  
  3802. Comparisons are evaluated to either TRUE or FALSE. Numbers may be compared to 
  3803. other numbers and strings may be compared to other strings.  When comparing 
  3804. numbers with strings, PEL determines which type of value is expected from the 
  3805. context.  To be certain of the type of comparison you are performing, either 
  3806. the number or the string may be converted so the expressions compared are the 
  3807. same type.  Strings are compared using a case-sensitive lexical comparison. 
  3808.  
  3809. Comparison Operators 
  3810.  
  3811. Operator  Definition 
  3812.  
  3813. ==        equality 
  3814.  
  3815. |=        inequality 
  3816.  
  3817. <         less than 
  3818.  
  3819. >         greater than 
  3820.  
  3821. <=        less than or equal 
  3822.  
  3823. >=        greater than or equal 
  3824.  
  3825. ~         string matches regular expression 
  3826.  
  3827. !~        string does not match regular expression 
  3828.  
  3829.  
  3830. ΓòÉΓòÉΓòÉ 7.2.8.4. Logical Operators ΓòÉΓòÉΓòÉ
  3831.  
  3832. Logical operators cause the expressions in which they are used to be evaluated 
  3833. to TRUE or FALSE conditions. 
  3834.  
  3835. Logical Operators 
  3836.  
  3837. Operator  Definition 
  3838.  
  3839. ||        logical OR ( <expr> || <expr> ) 
  3840.  
  3841. &&        logical AND ( <expr> && <expr> ) 
  3842.  
  3843. !         logical complement (!<expr> ) 
  3844.  
  3845. PEL evaluates expressions containing logical AND or logical OR operators using 
  3846. "short circuit" evaluation.  If the first sub-expression is sufficient to 
  3847. determine the TRUE or FALSE condition, the remainder of the expression is not 
  3848. evaluated. 
  3849.  
  3850.  
  3851. ΓòÉΓòÉΓòÉ 7.2.8.5. String Operators ΓòÉΓòÉΓòÉ
  3852.  
  3853.  This category includes two types of string operations that differ from the 
  3854. types of operations described above.  These are string concatenation and 
  3855. regular expression matching. 
  3856.  
  3857. String Concatenation 
  3858.  
  3859. String concatenation differs from the preceding categories in that it requires 
  3860. no operator.  An expression containing two or more strings, separated by one or 
  3861. more spaces or tabs, are automatically concatenated into a single string.  The 
  3862. strings can be variables or constants or a mixture of both. Some examples of 
  3863. string concatenation are shown below: 
  3864.  
  3865. ThisStr = "stuff&" "nonsense" 
  3866. ThatStr = "more " ThisStr 
  3867. message("Error:  " ThatStr) 
  3868. myStr = "Don't forget to" taskStr " today." 
  3869.  
  3870. Regular Expression Matching 
  3871.  
  3872. Regular expression matching uses the operators ~ (match) and !~ (not match). 
  3873. These operators result in True/False values only.  They are used in the 
  3874. following form: 
  3875.  
  3876. <regex> <oper> <stringex> 
  3877.  
  3878. where regex is a regular expression, oper is either ~ or !~ and stringex is any 
  3879. string variable, string constant or combination.  The regular expressions used 
  3880. in conjunction with these operators follow the rules outlined in the section 
  3881. titled Regular expressions  When the ~ operator is used, if the regular 
  3882. expression matches a portion of the string expression the larger expression 
  3883. evaluates to TRUE.  Otherwise, the expression evaluates to FALSE.  When the !~ 
  3884. operator is used, the opposite values are returned. 
  3885.  
  3886. Example of Both Operators 
  3887.  
  3888. One of the simplest examples and the best uses of these two operators involves 
  3889. testing whether a character occurs in a given string.  Using select(), replace 
  3890. the cindex() function with the !~ operator: 
  3891.  
  3892. do 
  3893.  
  3894.    ch = toupper( chr(getchar()) ) 
  3895.  
  3896. } while (ch !~ keyStr) 
  3897.  
  3898. This example repeatedly reads the keyboard until the character received matches 
  3899. one of those in the variable keyStr.  Using this form makes the code simpler, 
  3900. more readable, and faster. 
  3901.  
  3902.  
  3903. ΓòÉΓòÉΓòÉ 7.2.8.6. Array Operators ΓòÉΓòÉΓòÉ
  3904.  
  3905. The array operator in also results in a True/False evaluation.  It uses the 
  3906. following format: 
  3907.  
  3908. <expr> in <arrayvar> 
  3909.  
  3910. where expr is any string or numeric expression and arrayvar is any array.  The 
  3911. expression evaluates to TRUE if one of the indices of the array is the same 
  3912. value as expr.  If expr is not a member of the array, the larger expression 
  3913. evaluates to FALSE. 
  3914.  
  3915.  
  3916. ΓòÉΓòÉΓòÉ 7.2.8.7. Conditional Operators ΓòÉΓòÉΓòÉ
  3917.  
  3918. The conditional, or ternary operator selects between expressions in a 
  3919. statement. It is primarily a shorthand form of the if..else flow control (see 
  3920. the section titled "Flow Control and Iteration" below). Yet because it is part 
  3921. of an expression rather than being part of a statement, it can be used to 
  3922. select between expressions in a statement. The syntax for the conditional 
  3923. operator is: 
  3924.  
  3925. <expression> ? <expression a> : <expression b> 
  3926.  
  3927. If expression evaluates to TRUE, expression a is used.  Otherwise, expression b 
  3928. is used.  For example: 
  3929.  
  3930. var = (var == 0) ? 10 : (var - 2) 
  3931.  
  3932.  
  3933. ΓòÉΓòÉΓòÉ 7.2.9. Flow Control and Iteration ΓòÉΓòÉΓòÉ
  3934.  
  3935. As stated earlier, expressions can be evaluated to a TRUE or FALSE condition. 
  3936. This enables you to take actions based upon this condition.  The flow control 
  3937. features in a programming language allow you to do this.  TRUE and FALSE 
  3938. conditions may also be used to control iteration. 
  3939.  
  3940.  
  3941. ΓòÉΓòÉΓòÉ 7.2.9.1. Flow Control ΓòÉΓòÉΓòÉ
  3942.  
  3943. PEL's flow control constructs include if and if..else. 
  3944.  
  3945. The if construct is formed in this manner: 
  3946.  
  3947. if (<expression>) <statement> [;] 
  3948.  
  3949. Statement is only executed if expression evaluates to TRUE.  The construct can 
  3950. optionally be terminated with a semicolon.  The if..else construct is formed in 
  3951. a similar manner: 
  3952.  
  3953. if (<expression>) <statement1> [;] 
  3954. else <statement2> [;] 
  3955.  
  3956. If expression evaluates to TRUE, statement1 is executed.  Otherwise, statement2 
  3957. is executed. Either of these statements can optionally be followed by a 
  3958. semicolon. 
  3959.  
  3960. Both if and if..else constructs may be nested. 
  3961.  
  3962.  
  3963. ΓòÉΓòÉΓòÉ 7.2.9.2. Iteration ΓòÉΓòÉΓòÉ
  3964.  
  3965. The three types of iteration or looping supported by PEL are for, while, and 
  3966. do..while.  There are two formats available for the for loop.  The first format 
  3967. is as follows: 
  3968.  
  3969. for (<expr1>;<expr2>;<expr3>) { 
  3970.  
  3971.    <statement1> [;] 
  3972.    [<statement2> [;]] 
  3973.    . 
  3974.    . 
  3975.  
  3976.  
  3977. The first expression in the for loop is used for initialization, the second 
  3978. provides a test to determine the end of the loop, and the third modifies the 
  3979. loop variable. 
  3980.  
  3981. The second format of the for loop is as follows:   for (<variable> in <array>) 
  3982.  
  3983. <statement1> [;] 
  3984.  
  3985.    [<statement2> [;]] 
  3986.    . 
  3987.    . 
  3988.  
  3989.  
  3990. The statements contained between the curly braces are repeated, once for each 
  3991. member of the <array>. The <variable> expression is named by the user and 
  3992. requires no other declaration.  During each loop, <variable> is set to the 
  3993. value of the current subscript of the array.  This value may be used in the 
  3994. statements by referencing <variable>. The while loop tests an expression at the 
  3995. top of the loop to determine if another loop should be executed, as shown in 
  3996. the following example: 
  3997.  
  3998. while (<expr>) { 
  3999.  
  4000.    <statement1> [;] 
  4001.    [<statement2> [;]] 
  4002.    . 
  4003.    . 
  4004.  
  4005.  
  4006. The do...while loop tests an expression at the bottom of the loop to determine 
  4007. when to stop looping, as shown in the following example: 
  4008.  
  4009. do { 
  4010.  
  4011.    <statement1> [;] 
  4012.    [<statement2> [;]] 
  4013.    . 
  4014.    . 
  4015.  
  4016. } while (<expr>) [;] 
  4017.  
  4018.  
  4019. ΓòÉΓòÉΓòÉ 7.3. Writing a PEL Function ΓòÉΓòÉΓòÉ
  4020.  
  4021. Now that you can read PEL source code, you are ready to try writing a function. 
  4022. After that you will be ready to write extension programs on your own. 
  4023.  
  4024.  
  4025. ΓòÉΓòÉΓòÉ 7.3.1. Scenario and Solution ΓòÉΓòÉΓòÉ
  4026.  
  4027. Suppose you need to re-read the file you are editing from the disk.  This is 
  4028. sometimes necessary if you have run an external command from within the editor 
  4029. that has resulted in changes to the file rather than to the buffer.  This could 
  4030. occur as the result of something as simple as storing a copy of the file in 
  4031. PVCS or other version control system.  If the editor does not know that the 
  4032. file has received some external changes, its assumptions about the file on disk 
  4033. will be wrong.  To avoid the confusion that these false assumptions might 
  4034. cause, the file should be re-read from the disk. 
  4035.  
  4036. You can perform this task with your normal keyboard commands without any 
  4037. difficulty.  But because you will do this regularly, you want to write a 
  4038. function to automate the procedure. 
  4039.  
  4040. Solution 
  4041.  
  4042. To write this function, 
  4043.  
  4044.  1. Create a source code file with :.  Since this file contains the reload() 
  4045.     function, a fitting name for the file would be RELOAD.PEL.  The extension 
  4046.     .PEL is the file naming convention for : extension language source code 
  4047.     files. 
  4048.  
  4049.  2. Start a PREDITOR/2 session and retrieve RELOAD.PEL.  To do this, first 
  4050.     change to the PEL subdirectory, then type C RELOAD.PEL and press [Enter]. 
  4051.  
  4052.  3. Insert a comment in the file describing the reload() function, then add an 
  4053.     empty function: 
  4054.  
  4055.    #   reload - reloads the current file from disk. 
  4056.    # 
  4057.  
  4058.  
  4059.    function reload() 
  4060.    { 
  4061.  
  4062.  
  4063.    } 
  4064.  
  4065. The comment identifies the reload() function as one that reloads the current 
  4066. file from disk.  The function keyword defines this function to PEL.  At this 
  4067. point, there are no declarations or other statements in the body of the 
  4068. function (between the curly braces), but these will be added. 
  4069.  
  4070.  4. Determine what steps are necessary to complete the job reload() must 
  4071.     perform.  For this example, the function should get rid of the buffer that 
  4072.     does not match the file on disk, and then open a new buffer.  You can enter 
  4073.     these steps first as comments or pseudo-code, and then build on that 
  4074.     foundation: 
  4075.  
  4076.    function reload() 
  4077.    { 
  4078.  
  4079.       # Save away the name of the current file. 
  4080.       # We can delete the current buffer, even if 
  4081.       # it's the only buffer. Delete it. 
  4082.       # Use saved name to create new buffer for 
  4083.       # editing. Causes file to be re-read. 
  4084.  
  4085.    } 
  4086.  
  4087. Here we see that we need a string variable in which to store the file name. 
  4088.  
  4089.  5. Place a local variable declaration for a string to contain the file name 
  4090.     within the curly braces. Then locate the internal variables and library 
  4091.     functions that allow you to perform the steps outlined in the comments. 
  4092.  
  4093.     When you are finished, your PEL code should look  like this: 
  4094.  
  4095.    #   reload - reloads the current file from disk. 
  4096.    # 
  4097.    function reload() 
  4098.    { 
  4099.  
  4100.       local filenameStr 
  4101.  
  4102.  
  4103.       # Save away the name of the current file. 
  4104.       filenameStr = buffer_filename 
  4105.  
  4106.  
  4107.       # We can delete the current buffer, even if 
  4108.       # it's the only buffer. Delete it. 
  4109.  
  4110.  
  4111.       delete_buffer(current_buffer) 
  4112.  
  4113.  
  4114.       # Use saved name to create new buffer for 
  4115.       # editing. Causes file to be re-read. 
  4116.       return edit_file(filenameStr) 
  4117.  
  4118.      } 
  4119.  
  4120. The internal : variable buffer_filename contains the name of the file that is 
  4121. being edited. After deleting the buffer, you lose access to this name.  Since 
  4122. you need the name when creating the new buffer, you need to store it before 
  4123. getting rid of the current buffer. 
  4124.  
  4125. Another internal variable, current_buffer, contains the identification number 
  4126. of the active edit buffer. You can use this variable to indicate to the 
  4127. delete_buffer() function which buffer is no longer desired. 
  4128.  
  4129. Finally, use the filename previously stored in the local variable filenameStr 
  4130. to open a new buffer, and read the file into it.  The edit_file() function does 
  4131. this for you in one step.  When this function has completed, you can continue 
  4132. editing the file. The return keyword preceding the call to edit file() causes 
  4133. the value obtained from edit_file() to be returned to any program that calls 
  4134. reload(). Normally, this function is assigned to a keystroke, and the value 
  4135. returned from reload() would be irrelevant.  If, however, you want to call this 
  4136. function from another function, the return value might be useful. 
  4137.  
  4138.  6. Compile the file. 
  4139.  
  4140.  
  4141. ΓòÉΓòÉΓòÉ 7.4. PEL Compiler ΓòÉΓòÉΓòÉ
  4142.  
  4143. The PEL compiler supplied with PREDITOR/2 is a special version of Thompson 
  4144. Automation, Incorporated's AWK compiler.  The AWK compiler creates stand-alone 
  4145. executables from AWK source code while the PEL compiler produces programs that 
  4146. PREDITOR/2 can execute. 
  4147.  
  4148. PEL is an incremental compiler.  This means that when you recompile your CPE.AE 
  4149. function library, only the changed modules are recompiled.  This ensures that 
  4150. you spend a minimal amount of time waiting for the function library to 
  4151. recompile after making minor changes.  For example, if out of the forty library 
  4152. source files specified, only LOCAL.PEL has been modified, PEL recompiles only 
  4153. LOCAL.PEL and incorporates it into the existing library. The PEL compiler also 
  4154. offers some useful Lint-like features.  These include telling you when a 
  4155. variable has been declared but not used, used but never declared, or 
  4156. initialized more than once. 
  4157.  
  4158.  
  4159. ΓòÉΓòÉΓòÉ 7.4.1. Parameter Description and Format ΓòÉΓòÉΓòÉ
  4160.  
  4161. The PEL compiler accepts two types of parameters: options (flags) and a file 
  4162. list.  These parameters are described below.  They use the following format: 
  4163.  
  4164. PEL  [<options>]  <file_list> 
  4165.  
  4166. where options indicates the desired option and any associated arguments.  (See 
  4167. "Options," below.)  The file_list parameter indicates a list of files to be 
  4168. compiled.  (See the "List File" section below.) 
  4169.  
  4170.  
  4171. ΓòÉΓòÉΓòÉ 7.4.1.1. Parameter Options ΓòÉΓòÉΓòÉ
  4172.  
  4173.  The available options and their descriptions are listed below: 
  4174.  
  4175. add files (-a): This option enables you to add the specified files to the 
  4176. function library without removing functions already in the library.  If this 
  4177. option is not specified, the function library will contain only the functions 
  4178. found in the files listed for processing. 
  4179.  
  4180. internal compile (-i): This option enables you to recompile your library 
  4181. executable without exiting PREDITOR/2.  If you recompile PREDITOR/2's library 
  4182. executable from within the editor and do not use this option, the editor will 
  4183. abort operation soon after the compile has been completed. 
  4184.  
  4185. compress file (-compress): Compresses the file.  Note: Do not use this option 
  4186. if you plan to use the PEL debugger. 
  4187.  
  4188. output file (-o<output_filename>): This option enables you to specify the name 
  4189. that the PEL compiler will give to the file it produces.  The <output_filename> 
  4190. argument is the name given to the file, which can optionally include a 
  4191. directory name. When this flag is not specified, the compiler produces a file 
  4192. named CPE.AE.  Since PREDITOR/2 looks for a file named CPE.AE when it is 
  4193. invoked, the default name is usually desirable.  If you produce a file with 
  4194. another name, you will have to specify that file when invoking CPE by using the 
  4195. - a<new_ae_file> option. 
  4196.  
  4197. strict declarations (-s): This option tells PEL to issue warnings if a variable 
  4198. is used without being declared.  PEL does not require that variables be 
  4199. declared before they are used.  However, if you are following a policy of 
  4200. declaring variables, this option will help you spot typographical errors and 
  4201. other unintended uses of the variable. 
  4202.  
  4203. verbose output (-v): This option causes PEL to display detailed information 
  4204. about what file it is compiling or binding at each step of the compile. 
  4205.  
  4206. list file (@<flist_filename>): This option may be used instead of, or in 
  4207. addition to the file_list parameter.  The <flist_filename> argument indicates a 
  4208. file containing a list of filenames to compile.  This input file may contain 
  4209. filenames and any options you wish PEL to use. Files to be processed are placed 
  4210. in the file, one on each line.  If a filename in the list does not have an 
  4211. extension and cannot be located on disk, the extension . PEL is appended to the 
  4212. name.  PREDITOR/2 then attempts to locate the file again.  The file specified 
  4213. by this option typically contains a list of the files used to create the 
  4214. PREDITOR/2 library. The list file option is used to rebuild the CPE.AE library 
  4215. file.  All library component files must be specified in a single command when 
  4216. rebuilding this file.  This typically results in a command line longer than the 
  4217. operation system can handle.  The file list option provides a method of 
  4218. overcoming this limitation.  WPEL.RSP is an example of this type of file.  It 
  4219. is used to compile the files that make up the CPE.AE file as it was shipped on 
  4220. your distribution disks. 
  4221.  
  4222. File List:  The file list parameter is optional only if you have specified the 
  4223. @<flist_filename> option.  Otherwise, it is required.  The filenames supplied 
  4224. are separated by spaces and may contain standard OS/2 wildcard characters. 
  4225.  
  4226.  
  4227. ΓòÉΓòÉΓòÉ 7.4.2. Environment Variables ΓòÉΓòÉΓòÉ
  4228.  
  4229. The PEL compiler creates a temporary file during compilation.  When determining 
  4230. where to place this temporary file, PEL searches the environment for a variable 
  4231. named TMP.  When PEL finds that the value associated with this variable 
  4232. describes a valid directory, that directory is used for the temporary file.  If 
  4233. the variable is not found or does not describe a valid directory, the current 
  4234. directory is used for temporary storage. 
  4235.  
  4236. It is important that the temporary area contains enough storage for the 
  4237. temporary file, or the PEL compiler will be unable to complete the compilation. 
  4238. It is not uncommon for PEL to use 512K of temporary space when performing a 
  4239. complete rebuild of the function library.  If the TMP environment variable 
  4240. points to a small RAM disk, PEL may discontinue processing and display an error 
  4241. message when it runs out of temporary storage. 
  4242.  
  4243.  
  4244. ΓòÉΓòÉΓòÉ 7.4.3. Compiling an Edited File ΓòÉΓòÉΓòÉ
  4245.  
  4246. When modify a file, you must compile the file before the editor will recognize 
  4247. your changes.  To do this, you need to rebuild the library file CPE.AE.  This 
  4248. file contains all of the compiled functions the editor uses.  The .AE extension 
  4249. stands for AWK executable.  It is not an executable file in the same sense that 
  4250. an .EXE file is executable. PREDITOR/2 reads this file when you start up the 
  4251. editor.  The interpreter in the editor executes its contents. 
  4252.  
  4253. The compiler used to generate the CPE.AE file is named WPEL.EXE.  This section 
  4254. takes a direct approach to compiling extension language functions. (See the PEL 
  4255. Compiler section for further information on the compiler.)  Here it is presumed 
  4256. that you are working from an OS/2 prompt and that you are currently in the PEL 
  4257. subdirectory of the PREDITOR/2 directory. 
  4258.  
  4259.  1. To make a new CPE.AE file, compile all of the source code files listed in 
  4260.     the WPEL.RSP response file.  The PEL compiler is an incremental compiler. 
  4261.     This means you don't have to wait while unchanged files are recompiled, 
  4262.     because only the files that have been changed or added to the list are 
  4263.     compiled. 
  4264.  
  4265.  2. If you have created a new function in a new file, such as RELOAD.PEL, add 
  4266.     the name of that file to the beginning of the list in WPEL.RSP.  If you are 
  4267.     just modifying your local_setup() function, you do not need to modify 
  4268.     WPEL.RSP. 
  4269.  
  4270.  3. After you have saved the WPEL.RSP file to disk and returned to the OS/2 
  4271.     prompt, you are ready to re-make the AE file. 
  4272.  
  4273.  4. Be sure you are in the PEL subdirectory of the PREDITOR/2 home directory 
  4274.     before continuing.  Then issue the following command: 
  4275.  
  4276.    WPEL  -s  -v  @WPEL.rsp 
  4277.  
  4278. You may wish to redirect the output from this command into a file for 
  4279. reference.  (We suggest the name PEL.ERR for capturing errors.)  If no errors 
  4280. are reported, a new CPE.AE file is stored in the PEL directory.  You can try 
  4281. out this new library file by running PREDITOR/2 from the PEL directory.  If it 
  4282. doesn't work properly, you can rename or delete the new CPE.AE file after you 
  4283. have established the cause of the problem.  PREDITOR/2 will then use the 
  4284. original CPE.AE file in the parent directory as you edit the source files 
  4285. before recompiling.  When you have established that the CPE.AE file in your PEL 
  4286. directory is working as desired, you can copy it to your PREDITOR/2 home 
  4287. directory. 
  4288.  
  4289.  
  4290. ΓòÉΓòÉΓòÉ 7.5. PEL Debugger ΓòÉΓòÉΓòÉ
  4291.  
  4292. The PEL debugger is a tool to help you quickly and easily debug your PEL 
  4293. functions.  When you use the debugger, you can watch your PEL executing and see 
  4294. why problematic code doesn't work as you expect it to.  This debugger operates 
  4295. much like a "C" debugger. 
  4296.  
  4297. PEL Debugger Menus 
  4298.  
  4299. Using the PEL Debugger 
  4300.  
  4301. Helpful Hints for Debugging 
  4302.  
  4303.  
  4304. ΓòÉΓòÉΓòÉ 7.5.1. PEL Debugger Menus ΓòÉΓòÉΓòÉ
  4305.  
  4306.  The available PEL debugger menus and their selections are described in the 
  4307. following sections: 
  4308.  
  4309. PEL Debugger Menus:File 
  4310.  
  4311. PEL Debugger Menus:Breakpoints 
  4312.  
  4313. PEL Debugger Menus:Run 
  4314.  
  4315. PEL Debugger Menus:View 
  4316.  
  4317. PEL Debugger Menus:File 
  4318.  
  4319.  
  4320. ΓòÉΓòÉΓòÉ 7.5.1.1. PEL Debugger Menus:File ΓòÉΓòÉΓòÉ
  4321.  
  4322. Use this Option     To 
  4323.  
  4324. Open                Open a file in the debugger. 
  4325.  
  4326. Exit                Close the debugger. 
  4327.  
  4328.  
  4329. ΓòÉΓòÉΓòÉ 7.5.1.2. PEL Debugger Menus:Breakpoints ΓòÉΓòÉΓòÉ
  4330.  
  4331. Use the function from the Breakpoints menu to set, clear, and view breakpoints. 
  4332.  
  4333. Use this Option     To 
  4334.  
  4335. List                Display a list of the current breakpoints. 
  4336.  
  4337. Set/Clear           Set or clear a breakpoint.  You can also toggle a 
  4338.                     breakpoint on and off by double-clicking the mouse in the 
  4339.                     line number area of the current PEL file. 
  4340.  
  4341. Clear all           Clear all breakpoints.  : You can also clear all 
  4342.                     breakpoints from the breakpoint list dialog box. 
  4343.  
  4344.  
  4345. ΓòÉΓòÉΓòÉ 7.5.1.3. PEL Debugger Menus:Run ΓòÉΓòÉΓòÉ
  4346.  
  4347. Use the Run menu options to execute PEL code. 
  4348.  
  4349. Use this Option     To 
  4350.  
  4351. Go                  Begin executing your PEL code. The code will continue to 
  4352.                     execute until it reaches a breakpoint. 
  4353.  
  4354. Step into           Cause the debugger to execute one line of PEL code, 
  4355.                     stepping into any PEL function calls made in that line of 
  4356.                     code. 
  4357.  
  4358. Step over           Cause the debugger to execute one line of PEL code, 
  4359.                     stepping over any PEL function calls made in that line of 
  4360.                     code. 
  4361.  
  4362.  
  4363. ΓòÉΓòÉΓòÉ 7.5.1.4. PEL Debugger Menus:View ΓòÉΓòÉΓòÉ
  4364.  
  4365. Use the selections from the View menu to display variable values. 
  4366.  
  4367. Use this Option     To... 
  4368.  
  4369. Call stack          Display a list of all functions that have been called. 
  4370.  
  4371. Local variables     Display a list of any parameters passed into the function 
  4372.                     you are debugging, along with any variables local to that 
  4373.                     function. The type and value of each variable are also 
  4374.                     displayed. 
  4375.  
  4376. Variable            Query the type and value of the variable (local or global 
  4377.                     PEL) under the cursor.  You can also double-click on the 
  4378.                     variable you want to query, or enter the name of the 
  4379.                     variable. 
  4380.  
  4381.  
  4382. ΓòÉΓòÉΓòÉ 7.5.1.5. PEL Debugger Menus:Search ΓòÉΓòÉΓòÉ
  4383.  
  4384. Use the selections on the Search menu to locate specific strings of text. 
  4385.  
  4386. Use this Option     To 
  4387.  
  4388. Search              Locate a specific search string. 
  4389.  
  4390. Search again        Locate a previously specified search string. 
  4391.  
  4392.  
  4393. ΓòÉΓòÉΓòÉ 7.5.2. Using the PEL Debugger ΓòÉΓòÉΓòÉ
  4394.  
  4395. To debug PEL functions, you must first compile the .AE file without the 
  4396. -compress option.  Make this change by editing the MAKE_AE.CMD file in your PEL 
  4397. subdirectory.  Then rename the file CPE.AE to CPE.BAK and recompile the 
  4398. function library by running MAKE_AE.CMD. 
  4399.  
  4400. To run the PEL debugger, 
  4401.  
  4402.  1. Select the Tools menu on the menu bar. 
  4403.  
  4404.  2. Click on the PEL debugger menu item.  The PEL debugger is displayed. 
  4405.  
  4406.  3. From the File menu, open the file you want to debug. 
  4407.  
  4408.  4. Set breakpoints (by double-clicking at the beginning of a line) wherever 
  4409.     necessary.  You can set breakpoints only on lines that contain actions: 
  4410.     variable assingments, function calls, or variable queries.  If you set a 
  4411.     breakpoint on an invalid line, the debugger will not recognize the 
  4412.     breakpoint, and simply pass over it. 
  4413.  
  4414.  5. Click on the Go button. 
  4415.  
  4416. The main PREDITOR/2 window is brought to the foreground.  At this point, you 
  4417. can continue using the editor normally until the PEL code in which you have set 
  4418. breakpoints executes. 
  4419.  
  4420. After a breakpoint is reached, the editor window is disabled and the debugger 
  4421. window is displayed, showing the source code of the current breakpoint.  You 
  4422. can then query the value of any variable, step through the PEL code, and 
  4423. determine the source of errors. 
  4424.  
  4425.  
  4426. ΓòÉΓòÉΓòÉ 7.5.3. Helpful Hints for Debugging ΓòÉΓòÉΓòÉ
  4427.  
  4428. The following are some helpful hints for working effectively with the PEL 
  4429. debugger. 
  4430.  
  4431. Startup 
  4432.  
  4433. The debugger cannot debug PEL effectively until PREDITOR/2 is completely 
  4434. started.  This is because you cannot start the debugger until PREDITOR/2 has 
  4435. completed its initialization process. 
  4436.  
  4437. If you need to debug PEL that is normally called during PREDITOR/2 
  4438. initialization, first test and debug the PEL functions after startup.  Once 
  4439. these functions are working, place them in the initialization of the editor. 
  4440.  
  4441. Setting Breakpoints 
  4442.  
  4443. The following guidelines will be helpful for you to remember when setting 
  4444. breakpoints: 
  4445.  
  4446. o A valid breakpoint is any line that contains either a variable query, a 
  4447.   variable assignment, or a function call. 
  4448.  
  4449. o You cannot set a breakpoint on the function name itself, or on the 
  4450.   declaration of a local variable unless that declaration includes an 
  4451.   assignment. 
  4452.  
  4453. o For commands that continue across multiple lines, only the last line is a 
  4454.   valid breakpoint. 
  4455.  
  4456. The following is an example of setting a breakpoint: 
  4457.  
  4458. global function my_function()
  4459. {
  4460.    local var1
  4461.    local var2 = "test" # variable assignment,valid breakpoint
  4462.  
  4463.    # just a demo comment
  4464.    if ( var2 )    # variable query, valid breakpoint
  4465.    {
  4466.       warning( "This is a %s", var2 ) # function call, valid breakpoint
  4467.    }
  4468. }
  4469.  
  4470. Events 
  4471.  
  4472. It is possible to set breakpoints in mouse event handlers, but if, for example, 
  4473. you break in an EVENT.MOUSE_LEFT_DOWN handler, you will not get the 
  4474. EVENT.MOUSE_LEFT_UP event if you have a function attached to it.  This results 
  4475. from the debugger preventing the PREDITOR/2 editor window from getting any 
  4476. further input when you break. 
  4477.  
  4478. Debugging other PEL event handlers may be difficult in similar circumstances. 
  4479.  
  4480. Changing Source Code 
  4481.  
  4482. If you change the source code as you are running the PEL debugger, the debugger 
  4483. will not automatically recognize the changes.  You must close the file, 
  4484. recompile the source code, and start the debugger again.  Until you do this, 
  4485. the debugger will still be reading the original code. 
  4486.  
  4487.  
  4488. ΓòÉΓòÉΓòÉ 8. Template Expansion ΓòÉΓòÉΓòÉ
  4489.  
  4490. Templates are handy programming aids.  The following categories provide 
  4491. instructions for working with the templates: 
  4492.  
  4493. Specifying a Template 
  4494.  
  4495. Enabling/Disabling a Template 
  4496.  
  4497. Expanding a Template 
  4498.  
  4499. Adding/Changing a Template 
  4500.  
  4501.  
  4502. ΓòÉΓòÉΓòÉ 8.1. Specifying a Template ΓòÉΓòÉΓòÉ
  4503.  
  4504. The editor recognizes the extension of your file name and opens its 
  4505. corresponding template.  For example, if you are editing a file named TEST.C, a 
  4506. C/C++ template is expanded when you enable template expansion. 
  4507.  
  4508. The table below lists the extensions the editor recognizes for currently 
  4509. supported templates.  You can add your own template by editing the ELECTRIC.PEL 
  4510. file.  Be sure to also add the extensions applying to that template. 
  4511.  
  4512. Language     Extensions 
  4513.  
  4514. AWK          .PEL, .AWK 
  4515.  
  4516. C, C++       .C, .H, .HPP, .CPP, .CXX, .HXX 
  4517.  
  4518. Clipper50    .PRG, .CH, .PPO, .GEN, .COD, .GTL, .TLB, .TEM 
  4519.  
  4520. Clipper '87  .PRG, .PRE, .GEN, .COD, .GTL, .TLB, .TEM 
  4521.  
  4522. COBOL        .COB, .CBL 
  4523.  
  4524. dBase        .PRG, .GEN, .COD, .GTL, .TLB,.TEM 
  4525.  
  4526. Pascal       .PAS 
  4527.  
  4528. REXX         .CMD 
  4529.  
  4530.  
  4531. ΓòÉΓòÉΓòÉ 8.2. Enabling/Disabling a Template ΓòÉΓòÉΓòÉ
  4532.  
  4533.  By default, PREDITOR/2's templates are disabled. To use a temlate, you must 
  4534. enable template expansion. 
  4535.  
  4536. To enable template expansion, 
  4537.  
  4538.  1. Select the Settings item on the Options menu.  The settings notebook will 
  4539.     open.  Click on the Types tab and then the Template subtopic tab. 
  4540.  
  4541.  2. Select the type of file for which you wish to enable template expansion(for 
  4542.     example, "c"). 
  4543.  
  4544.  3. Choose the correct template from the template list(for the previous 
  4545.     example, again, "c"). 
  4546.  
  4547.  4. Check/Uncheck the template expansion checkbox to enable/disable template 
  4548.     expansion for that template and file type. 
  4549.  
  4550.  5. Click on the notebook's OK button.  Your changes will be recognized 
  4551.     immediately. 
  4552.  
  4553.  
  4554. ΓòÉΓòÉΓòÉ 8.3. Expanding a Template ΓòÉΓòÉΓòÉ
  4555.  
  4556.  When template expansion is enabled, you can expand a template by entering the 
  4557. appropriate key combination.  For key combinations and their corresponding 
  4558. templates, refer to Appendix D: Language- specific Templates in the PREDITOR/2 
  4559. User's Guide. 
  4560.  
  4561. To expand a template, 
  4562.  
  4563.  1. Position the cursor at the location in the buffer (file) where you want to 
  4564.     expand the template. 
  4565.  
  4566.  2. Enter the key combination (noting case- sensitivity, where applicable) and 
  4567.     press the [space bar].  The template is immediately expanded into the file. 
  4568.  
  4569. To move to the next field in an expanded template, 
  4570.  
  4571.  1. Press [Ctrl][Enter].  The next field is highlighted and ready to be 
  4572.     changed. 
  4573.  
  4574.  
  4575. ΓòÉΓòÉΓòÉ 8.4. Adding/Changing a Template ΓòÉΓòÉΓòÉ
  4576.  
  4577.  The editor also supports templates you add or change.  All templates are 
  4578. defined in the ELECTRIC.PEL file.  You can permanantly add your own templates 
  4579. or change current templates by editing this file, saving your changes, and 
  4580. recompiling the CPE.AE file. 
  4581.  
  4582. You will use several important symbols when you add templates.  These symbols 
  4583. are explained in the table below. 
  4584.  
  4585. This Symbol       Means 
  4586.  
  4587. @                 Place cursor here after the template has been inserted. 
  4588.  
  4589. \n                Insert new line and auto-indent. 
  4590.  
  4591. \r                Insert new line. 
  4592.  
  4593. \t                Insert tab. 
  4594.  
  4595. \b                Un-indent one level. 
  4596.  
  4597. `...`             Enclosed content is a field character. 
  4598.  
  4599. You can also add temporary templates that will work until you exit the editor. 
  4600. Add temporary templates with the template_add() function. 
  4601.  
  4602. To add temporary templates, 
  4603.  
  4604.  1. Open the Command dialog from the Tools menu. 
  4605.  
  4606.  2. Type template_add and click on the OK button, or press [Enter].  A dialog 
  4607.     box prompts you to enter the Template characters. 
  4608.  
  4609.  3. Type the key(s) you want your template to correspond to, and press [Enter]. 
  4610.     A dialog box now prompts you to enter the Template expansion. 
  4611.  
  4612.  4. Enter the template you want to generate when you expand the keystroke you 
  4613.     specified in Step 3, and press [Enter]. 
  4614.  
  4615. Your new template is added. 
  4616.  
  4617.  
  4618. ΓòÉΓòÉΓòÉ 8.5. Using Fields ΓòÉΓòÉΓòÉ
  4619.  
  4620. Some templates have fields.  Fields are strings surrounded by grave accents 
  4621. that can be used as markers indicating where you should enter fields relating 
  4622. to your template.  For example: `statement-1`. 
  4623.  
  4624. By default, the [Ctrl][Enter] key combination enables you to move to 
  4625. consecutive fields.  When you use [Ctrl][Enter] to move to a field, that field 
  4626. is highlighted.  Any character you type overwrites that field. 
  4627.  
  4628.  
  4629. ΓòÉΓòÉΓòÉ 9. Menu Options ΓòÉΓòÉΓòÉ
  4630.  
  4631. All of the PREDITOR/2 features are arranged in the menus that are displayed on 
  4632. the menu bar. The menu bar is located across the top of the PREDITOR/2 window, 
  4633. just below the title bar.  Items in the editors pull-down menus perform one of 
  4634. three types of actions: 
  4635.  
  4636. o Starting a feature 
  4637.  
  4638. o Opening a dialog box 
  4639.  
  4640. o Opening another menu. 
  4641.  The editor's menu bar gives you the following menus: 
  4642.  
  4643. File menu           Lets you perform operations that affect files.  For example 
  4644.                     opening, saving and printing files. 
  4645.  
  4646. Edit menu           Lets you perform edit functions such as undo, cut, copy and 
  4647.                     paste. 
  4648.  
  4649. Search menu         Lets you perform single- or multiple-buffer search 
  4650.                     functions like find, change and symbol matching. 
  4651.  
  4652. Buffers menu        Lets you switch buffers or display a list of currently open 
  4653.                     buffers. 
  4654.  
  4655. Tools menu          Lets you execute an editor or system command, run the pel 
  4656.                     debugger, create tags files and more. 
  4657.  
  4658. Options menu        Lets you choose the settings for the editor like colors, 
  4659.                     fonts and search options. 
  4660.  
  4661. Window menu         Lets you create new windows, open and close existing 
  4662.                     windows, and other window specific activities. 
  4663.  
  4664. Help menu           Lets you access the PREDITOR/2 help library and product 
  4665.                     information. 
  4666.  
  4667. Shortcuts for Using Menus 
  4668.  
  4669. Menu shortcuts enable you to work more quickly.  Two alternative options for 
  4670. working with menus are: 
  4671.  
  4672. To select a menu item, either: 
  4673.  
  4674. o Type the underlined letter in the desired item (the mnemonic letter), or 
  4675.  
  4676. o Type the key combination displayed next to the option. (This option does not 
  4677.   work if the menu is pulled down.) 
  4678.  
  4679. To close the menu, click elsewhere in the window. 
  4680.  
  4681. The editor's toolbar affords quick access to certain file, edit, and buffer 
  4682. functions. 
  4683.  
  4684. The status bar has four areas that are of concern: 
  4685.  
  4686. Message area        This is used by many functions to present all types of 
  4687.                     information and is also where help text is displayed. 
  4688.  
  4689. Indicator area      This is used to display some state information like 
  4690.                     modified(MOD), read-only file(RO), num-lock key(NUM), 
  4691.                     caps-lock key(CAPS), overtype mode(OVR), insert mode(INS), 
  4692.                     and emulation mode(Brief, VI, CUA, Emacs, Native, ISPF). 
  4693.  
  4694. Position area       This area is actually made up of two adjacent areas.  One 
  4695.                     area can display the current line position and size of file 
  4696.                     and the second area can display the current column 
  4697.                     position. 
  4698.  
  4699. Time/date area      This area can display the day of week, date and time (in 12 
  4700.                     or 24 hour format) 
  4701.  
  4702. For more information on these areas and how to manipulate them, see the See 
  4703. also:. 
  4704.  
  4705. See also: 
  4706.  
  4707. o Toggle toolbar 
  4708. o Toggle status bar 
  4709.  
  4710.  
  4711. ΓòÉΓòÉΓòÉ 9.1. File menu ΓòÉΓòÉΓòÉ
  4712.  
  4713. From the File menu, you can perform a variety a functions on the current buffer 
  4714. including opening, saving, and printing. Refer to the following sections for 
  4715. more information on File menu options: 
  4716.  
  4717. o New 
  4718. o Open... 
  4719. o Insert file 
  4720. o Error file... 
  4721. o Open file under cursor 
  4722. o Save 
  4723. o Save as... 
  4724. o Save all 
  4725. o Print 
  4726. o Print Setup... 
  4727. o Exit 
  4728.  
  4729. See also: 
  4730.  
  4731. o gui_open() 
  4732. o edit_file_key() 
  4733. o edit_unix_file_key() 
  4734. o print() 
  4735. o write_block_key() 
  4736.  
  4737.  
  4738. ΓòÉΓòÉΓòÉ 9.1.1. New ΓòÉΓòÉΓòÉ
  4739.  
  4740. Select New to create a new buffer.  (Use Insert file to retrieve a file into 
  4741. the current buffer.) 
  4742.  
  4743. See also: 
  4744.  
  4745. o create_buffer() 
  4746. o edit_file() 
  4747.  
  4748.  
  4749. ΓòÉΓòÉΓòÉ 9.1.2. Open ΓòÉΓòÉΓòÉ
  4750.  
  4751. To create a new buffer and insert a file into it, use the Open menu item. The 
  4752. Open dialog box is displayed. 
  4753.  
  4754. To open a file, 
  4755.  
  4756.  1. Select Open. 
  4757.  
  4758.  2. Enter the name of the file to be opened in the Open filename field.  If you 
  4759.     do not know the file name, use the Type of file or Drive drop-down boxes, 
  4760.     or the File or Directory list boxes to locate the desired file. 
  4761.  
  4762.  3. Select the Open files in new window check box to open a window and retrieve 
  4763.     the file into it.  If this box is cleared, any buffer opened is placed in 
  4764.     the buffer list and opened into the first available open window. 
  4765.  
  4766.  4. Select or clear the Read only check box as necessary. 
  4767.  
  4768.  5. After you have made your selections, either click on OK to retrieve the 
  4769.     file, or click on Cancel to exit from the dialog box without retrieving a 
  4770.     file. 
  4771.  
  4772. See also: 
  4773.  
  4774. o edit_file() 
  4775. o open_dialog() 
  4776.  
  4777.  
  4778. ΓòÉΓòÉΓòÉ 9.1.3. Insert file ΓòÉΓòÉΓòÉ
  4779.  
  4780. Select Insert file to retrieve a file into an open buffer.  The Insert File 
  4781. dialog box is displayed. 
  4782.  
  4783. To insert a file, 
  4784.  
  4785.  1. Enter the name of the file to be opened in the Open filename field.  If you 
  4786.     do not know the file name, you can use the Type of file or Drive drop-down 
  4787.     boxes, or the File or Directory list boxes to locate the desired file. 
  4788.  
  4789.  2. After you have made your selections, either click on OK to retrieve the 
  4790.     file (the retrieved file is placed at the cursor position) or click on 
  4791.     Cancel to exit fromthis dialog box without inserting a file. 
  4792.  
  4793. See also: 
  4794.  
  4795. o read_file() 
  4796. o transfer() 
  4797.  
  4798.  
  4799. ΓòÉΓòÉΓòÉ 9.1.4. Error file ΓòÉΓòÉΓòÉ
  4800.  
  4801. When compiling in PREDITOR/2, compilation errors are displayed in a dialog box. 
  4802. When compiling outside of the editor, errors may be directed to a file.  Using 
  4803. the Error file option, PREDITOR/2 enables you to format this error file into a 
  4804. dialog box analogous to the one displayed when compiling within the editor. 
  4805. You can use this window to easily view the errors and quickly go to the 
  4806. location in the source code where the error occurred. 
  4807.  
  4808. To view your compilation errors, 
  4809.  
  4810.  1. Compile your edited file and create an error file. 
  4811.  
  4812.  2. Select Error file from the File menu.  The Display Error File dialog box is 
  4813.     displayed. 
  4814.  
  4815.  3. Enter the name of the file to be used, in the Error file name field. 
  4816.  
  4817.  4. Indicate the compiler that was used in the drop-down box in the Compiler 
  4818.     field. 
  4819.  
  4820.  5. Press [Enter] or click on OK.  The editor displays a list box containing 
  4821.     all of the compile errors.  If you do not want to view the list box right 
  4822.     away, you can minimize the box by selecting the minimize icon in the upper 
  4823.     right corner of the box.  Use the Dialog list function from the Tools menu 
  4824.     to view the error list box, as well as other minimized list boxes.  Refer 
  4825.     to Dialog list (Tools menu) for more information. 
  4826.  
  4827. See also: 
  4828.  
  4829. o Extensions 
  4830.  
  4831.  
  4832. ΓòÉΓòÉΓòÉ 9.1.5. Open file under cursor ΓòÉΓòÉΓòÉ
  4833.  
  4834. This feature provides a link between a reference to a file and the actual file. 
  4835.  
  4836. To open the file under the cursor, 
  4837.  
  4838.  1. Position the cursor on a file name within an open file. 
  4839.  
  4840.  2. Select Open file under cursor from the File menu. 
  4841.  
  4842. The selected file is opened into a new buffer. 
  4843.  
  4844. See also: 
  4845.  
  4846. o read_file() 
  4847. o symbol_under_cursor() 
  4848.  
  4849.  
  4850. ΓòÉΓòÉΓòÉ 9.1.6. Save ΓòÉΓòÉΓòÉ
  4851.  
  4852. Use the Save option to save the current buffer to a file.  If the file has not 
  4853. yet been given a name, the Save as dialog box is displayed.  See Save as for 
  4854. more information. 
  4855.  
  4856. See also: 
  4857.  
  4858. o write_buffer() 
  4859.  
  4860.  
  4861. ΓòÉΓòÉΓòÉ 9.1.7. Save as ΓòÉΓòÉΓòÉ
  4862.  
  4863. To save a highlighted block of text or to save an already-named file with a 
  4864. different name, select Save as.  The Save As dialog box is displayed. 
  4865.  
  4866. To save using the Save as option, 
  4867.  
  4868.  1. Enter the name of the file to be saved, in the Save as filename field. 
  4869.  
  4870.  2. specify the file type in the Save file as type drop-down box. 
  4871.  
  4872.  3. Indicate the path of the specified file in the Drive drop-down box and the 
  4873.     Directory list box. 
  4874.  
  4875.  4. Click on OK to save the file, or click on Cancel to exit this dialog box 
  4876.     without saving the file. 
  4877.  
  4878. See also: 
  4879.  
  4880. o write_buffer() 
  4881.  
  4882.  
  4883. ΓòÉΓòÉΓòÉ 9.1.8. Save all ΓòÉΓòÉΓòÉ
  4884.  
  4885. Select Save all to save all modified buffers to your disk. 
  4886.  
  4887. See also: 
  4888.  
  4889. o write_all_buffers() 
  4890.  
  4891.  
  4892. ΓòÉΓòÉΓòÉ 9.1.9. Print ΓòÉΓòÉΓòÉ
  4893.  
  4894. Select Print from the File menu to print the current buffer or portion of the 
  4895. current buffer.  The Print dialog box is displayed. 
  4896.  
  4897.  1. Use the radio buttons in the Print Range group box to indicate what 
  4898.     portions of the buffer are to be printed. 
  4899.  
  4900.     Below is a list of radio buttons and the information that is printed when 
  4901.     you select from these buttons: 
  4902.  
  4903.     All: The entire buffer. 
  4904.  
  4905.     Selected: Only the highlighted portion of the buffer. 
  4906.  
  4907.     Lines: A specific range of lines.  Use the From and To fields to indicate 
  4908.     the first and last lines to print. 
  4909.  
  4910.     Pages: A specific range of pages.  Use the From and To fields to indicate 
  4911.     the first and last pages to print. 
  4912.  
  4913.  2. In the Mode area, select how you want your file printed.  Below are the 
  4914.     radio buttons you can select and a description of how each will print your 
  4915.     file: 
  4916.  
  4917.     Draft: Only the text, without headers, footers, sections, or other 
  4918.     formatting codes. 
  4919.  
  4920.     WYSIWYG: If WYSYWIG is selected then all the formatting options are used to 
  4921.     print the buffer.  The printing options are configured by selecting the 
  4922.     Options push button. 
  4923.  
  4924.  3. Select the Select push button to choose which printer to use for printing. 
  4925.  
  4926.  4. Select the Setup push button to display the printer specific setup dialog 
  4927.     box. The Setup Dialog Box displayed is printer specific and supplied by the 
  4928.     printer driver. This button is only avaiable when printing in WYSYWIG mode. 
  4929.  
  4930.  5. Select the Options push button to configure options used in WYSYWIG mode. 
  4931.     You can configure such things as headers/footers, fonts, and number of 
  4932.     columns from the Options Dialog box. 
  4933.  
  4934. See also: 
  4935.  
  4936. o print_select_dialog() 
  4937. o Print Setup 
  4938. o Print Options 
  4939. o print_buffer() 
  4940. o print_dialog() 
  4941.  
  4942.  
  4943. ΓòÉΓòÉΓòÉ 9.1.10. Print Options ΓòÉΓòÉΓòÉ
  4944.  
  4945. The Print Options dialog box allows you to configure how your buffer is printed 
  4946. in WYSYWIG mode. 
  4947.  
  4948. o Header and Footer To print a header or footer click on the appropriate check 
  4949.   box in the Header or Footer group box. If you have selected the check box 
  4950.   then you may configure the header or footer codes and select a font for 
  4951.   printing the header or footer. Enter the appropriate codes in the entry 
  4952.   fields. The table below describes available header and footer codes. 
  4953.  
  4954.   Header and Footer Codes 
  4955.  
  4956.     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4957.     ΓöéCode      ΓöéMeaning                       Γöé
  4958.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4959.     Γöé~_        ΓöéDrawLine                      Γöé
  4960.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4961.     Γöé~L        ΓöéLeft                          Γöé
  4962.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4963.     Γöé~C        ΓöéCenter                        Γöé
  4964.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4965.     Γöé~R        ΓöéRight                         Γöé
  4966.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4967.     Γöé~D        ΓöéDate                          Γöé
  4968.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4969.     Γöé~T        ΓöéTime                          Γöé
  4970.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4971.     Γöé~P        ΓöéPage No.                      Γöé
  4972.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4973.     Γöé~f        ΓöéFile Name (Full Path Name)    Γöé
  4974.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4975.     Γöé~F        ΓöéFile Name (FileName Only)     Γöé
  4976.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4977.     Γöé~d"<fmt>" ΓöéFormatted Date                Γöé
  4978.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4979.     Γöé~t"<fmt>" Γöé Formatted Time               Γöé
  4980.     Γöé          ΓöéWhere fmt = strftime argumentsΓöé
  4981.     Γöé          Γöé(See Page 333 of IBM CPI C RefΓöé
  4982.     Γöé          Γöé - Level 2)                   Γöé
  4983.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4984.     Γöé~p<num>   Γöé Page No.                     Γöé
  4985.     Γöé          ΓöéWhere num = length of page No.Γöé
  4986.     Γöé          Γöéthen the page No. is zero fillΓöé
  4987.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4988.     Γöé~b        ΓöéBold                          Γöé
  4989.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4990.     Γöé~i        ΓöéItalic                        Γöé
  4991.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4992.     Γöé~u        ΓöéUnderline                     Γöé
  4993.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4994.     Γöé~s        ΓöéStrikethru                    Γöé
  4995.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4996.     Γöé~"<name>" Γöé Font Name                    Γöé
  4997.     Γöé          ΓöéWhere <name> = Font Name      Γöé
  4998.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4999.     Γöé~<num>    Γöé Font Size                    Γöé
  5000.     Γöé          ΓöéWhere <num>  = Font Size      Γöé
  5001.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5002.     Γöé~B        Γöé Bold                         Γöé
  5003.     Γöé          Γöé(Right, Left & Center)        Γöé
  5004.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5005.     Γöé~I        Γöé Italic                       Γöé
  5006.     Γöé          Γöé(Right, Left & Center)        Γöé
  5007.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5008.     Γöé~U        Γöé Underline                    Γöé
  5009.     Γöé          Γöé(Right, Left & Center)        Γöé
  5010.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5011.     Γöé~S        Γöé Strikethru                   Γöé
  5012.     Γöé          Γöé(Right, Left & Center)        Γöé
  5013.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5014.     Γöé~'<name>  Γöé Font Name                    Γöé
  5015.     Γöé          ΓöéWhere <name> = Font Name      Γöé
  5016.     Γöé          Γöé(Right, Left & Center)        Γöé
  5017.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5018.     Γöé~#<num>   Γöé Font Size                    Γöé
  5019.     Γöé          ΓöéWhere <num>  = Font Size      Γöé
  5020.     Γöé          Γöé(Right, Left & Center)        Γöé
  5021.     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5022.  
  5023. o Long lines This option allows you to configure how lines longer than the 
  5024.   width of the printed output are handled. 
  5025.  
  5026.    - Truncate - selecting this option will not print lines that extend beyond 
  5027.      the width of the printed output. 
  5028.  
  5029.    - Split - selecting this option will cause long lines to be drawn as two or 
  5030.      more lines. You can also specify how the long lines are split: 
  5031.  
  5032.       o Word Wrap - will split long lines on word boundries. 
  5033.  
  5034.       o Indent - will indent the second and subsequent lines to the right of 
  5035.         the first line. 
  5036.  
  5037.       o Program Indent - will handle long lines containing parenthesis as 
  5038.         special cases. If a line is split and it contains an open parenthesis 
  5039.         then the second and subsequent lines are indented to the right of the 
  5040.         parenthesis until an ending parenthesis is found.  This is useful for 
  5041.         printing program listings. 
  5042.  
  5043. o Columns Enter the number of columns you want printed on one page.  A 
  5044.   separator bar is drawn between the columns. 
  5045.  
  5046. o Text Font Allows changing the font for printing the buffer text. 
  5047.  
  5048. See also: 
  5049.  
  5050. o Print 
  5051. o Print Setup 
  5052. o Print Fonts 
  5053.  
  5054.  
  5055. ΓòÉΓòÉΓòÉ 9.1.10.1. Print Fonts ΓòÉΓòÉΓòÉ
  5056.  
  5057. The Print Font Dialog, Header Font Dialog, and Footer Font Dialog windows are 
  5058. used to change the font used when printing. 
  5059.  
  5060. The available fonts will be displayed, and any font selected by clicking on it 
  5061. will immediately appear in the Sample display. 
  5062.  
  5063. See also: 
  5064.  
  5065. o Print 
  5066.  
  5067.  
  5068. ΓòÉΓòÉΓòÉ 9.1.11. Print Setup ΓòÉΓòÉΓòÉ
  5069.  
  5070. The Printer setup option enables you to select a printer and specify its 
  5071. parameters. 
  5072.  
  5073. To specify your printer setup, 
  5074.  
  5075.  1. Click on the appropriate printer named in the list box. 
  5076.  
  5077.  2. Click on OK to exit this dialog box and print your file or click on Cancel 
  5078.     to exit this dialog box without making any selections. 
  5079.  
  5080. To specify printer parameters, 
  5081.  
  5082.  1. Click on Job properties to specify parameters for this printer.  The 
  5083.     Printer Properties dialog box is displayed.Use this dialog box to specify 
  5084.     the properties of the destination printer. 
  5085.  
  5086.  2. Select the Device defaults push button if you would like additional 
  5087.     information on default device drivers. 
  5088.  
  5089.     Select from the following buttons for additional information: 
  5090.  
  5091.     Fonts: See a list of additional fonts. 
  5092.  
  5093.     Forms: See a list of predefined forms. 
  5094.  
  5095.  3. Click on OK, or click on Cancel to exit this dialog box. 
  5096.  
  5097. See also: 
  5098.  
  5099. o Print 
  5100. o print_select_dialog() 
  5101. o print_buffer() 
  5102. o print_dialog() 
  5103.  
  5104.  
  5105. ΓòÉΓòÉΓòÉ 9.1.12. Exit ΓòÉΓòÉΓòÉ
  5106.  
  5107. To exit PREDITOR/2, select Exit. Exit ends your editing session.  If you have 
  5108. modified buffers you are prompted to save them.  The state and settings of your 
  5109. session are stored in the 'CPE.CFG' if not otherwise specified in the Settings 
  5110. Notebook.  The buffer list is also saved in in the config file, and each buffer 
  5111. in the list will be opened when you start the editor next. 
  5112.  
  5113. See also: 
  5114.  
  5115. o done() 
  5116. o quit() 
  5117.  
  5118.  
  5119. ΓòÉΓòÉΓòÉ 9.2. Edit menu ΓòÉΓòÉΓòÉ
  5120.  
  5121. Use Edit in the menu bar to access editing and formatting options. of the 
  5122. Editor.  You can select from the following choices: 
  5123.  
  5124. o Undo 
  5125. o Redo 
  5126. o Cut 
  5127. o Copy 
  5128. o Append 
  5129. o Paste 
  5130. o Delete 
  5131. o Upper 
  5132. o Lower 
  5133. o Indent 
  5134. o Outdent 
  5135.  
  5136.  
  5137. ΓòÉΓòÉΓòÉ 9.2.1. Undo ΓòÉΓòÉΓòÉ
  5138.  
  5139. Undo removes the last action in the window.  This includes cursor movements, 
  5140. searches and character entry.  The undo list is specific to, and unlimited for 
  5141. each buffer.  The undo list is cleared after each save. 
  5142.  
  5143. See also: 
  5144.  
  5145. o undo() 
  5146. o undo_index() 
  5147.  
  5148.  
  5149. ΓòÉΓòÉΓòÉ 9.2.2. Redo ΓòÉΓòÉΓòÉ
  5150.  
  5151. Redo replaces the last undone action.  You may redo all of the actions you have 
  5152. undone.  There is no limit to the number of times you can undo or redo an 
  5153. action taking place after your last save. 
  5154.  
  5155. See also: 
  5156.  
  5157. o redo() 
  5158. o redo_index() 
  5159.  
  5160.  
  5161. ΓòÉΓòÉΓòÉ 9.2.3. Cut ΓòÉΓòÉΓòÉ
  5162.  
  5163. Cut removes the highlighted section of the buffer from the buffer and places it 
  5164. in the scrap buffer.  The block may be retrieved from scrap with the paste 
  5165. command. 
  5166.  
  5167. See also: 
  5168.  
  5169. o delete_to_scrap() 
  5170. o delete_chars() 
  5171. o paste() 
  5172.  
  5173.  
  5174. ΓòÉΓòÉΓòÉ 9.2.4. Copy ΓòÉΓòÉΓòÉ
  5175.  
  5176. This function copies the highlighted selection from the current buffer to the 
  5177. scrap buffer.  The block may be retrieved later from the scrap buffer with the 
  5178. paste command. 
  5179.  
  5180. See also: 
  5181.  
  5182. o copy_to_scrap() 
  5183.  
  5184.  
  5185. ΓòÉΓòÉΓòÉ 9.2.5. Append ΓòÉΓòÉΓòÉ
  5186.  
  5187. Select Append to append, or copy, information to the scrap buffer without 
  5188. destroying information previously stored there. 
  5189.  
  5190.  
  5191. ΓòÉΓòÉΓòÉ 9.2.6. Paste ΓòÉΓòÉΓòÉ
  5192.  
  5193. Paste retrieves the last block moved to scrap and places it in the buffer at 
  5194. the current cursor position. 
  5195.  
  5196. See also: 
  5197.  
  5198. o cut() 
  5199. o insert_scrap() 
  5200. o outdent_tabs() 
  5201. o paste() 
  5202.  
  5203.  
  5204. ΓòÉΓòÉΓòÉ 9.2.7. Delete ΓòÉΓòÉΓòÉ
  5205.  
  5206. Delete removes the highlighted section from the buffer.  It is not placed in 
  5207. the scrap buffer, and can only be retrieved with the undo command. 
  5208.  
  5209. See also: 
  5210.  
  5211. o delete_to_scrap() 
  5212. o delete_chars() 
  5213.  
  5214.  
  5215. ΓòÉΓòÉΓòÉ 9.2.8. Upper ΓòÉΓòÉΓòÉ
  5216.  
  5217. Upper makes all of the characters in the highlighted section uppercase. 
  5218.  
  5219. See also: 
  5220.  
  5221. o upper() 
  5222.  
  5223.  
  5224. ΓòÉΓòÉΓòÉ 9.2.9. Lower ΓòÉΓòÉΓòÉ
  5225.  
  5226. Lower makes all of the characters in the highlighted section lowercase. 
  5227.  
  5228. See also: 
  5229.  
  5230. o lower() 
  5231.  
  5232.  
  5233. ΓòÉΓòÉΓòÉ 9.2.10. Indent ΓòÉΓòÉΓòÉ
  5234.  
  5235. Indent moves each line of the highlighted text to the right by one tab stop. 
  5236.  
  5237. Hint: To indent/outdent multiple lines at one time, highlight the desired lines 
  5238. before selecting Indent or Outdent. 
  5239.  
  5240. See also: 
  5241.  
  5242. o indent_tabs() 
  5243.  
  5244.  
  5245. ΓòÉΓòÉΓòÉ 9.2.11. Outdent ΓòÉΓòÉΓòÉ
  5246.  
  5247. Outdent moves each line of the highlighted text to the left by one tab stop. If 
  5248. one or more lines can not be moved further to the left, no action is taken. 
  5249.  
  5250. Hint: To indent/outdent multiple lines at one time, highlight the desired lines 
  5251. before selecting Indent/Outdent. 
  5252.  
  5253. See also: 
  5254.  
  5255. o outdent_tabs() 
  5256.  
  5257.  
  5258. ΓòÉΓòÉΓòÉ 9.3. Search menu ΓòÉΓòÉΓòÉ
  5259.  
  5260. The Search menu contains options that enable you to perform several kinds of 
  5261. searches, based on a variety of search criteria. When a search is invoked, the 
  5262. default search settings presented in the dialog box represent the current 
  5263. default settings.  Changing any of these settings causes the default settings 
  5264. to change accordingly.  From the Search menu, you can select from the following 
  5265. options: 
  5266.  
  5267. o Find string... 
  5268. o Find next 
  5269. o Incremental find 
  5270. o Change.. 
  5271. o Find matching 
  5272. o Mark matching 
  5273. o Mark next matching 
  5274. o Find routines 
  5275. o Locate line number... 
  5276. o Bookmark list 
  5277.  
  5278. See also: 
  5279.  
  5280. o goto_matching() 
  5281. o mark_matching() 
  5282. o mark_matching_next() 
  5283. o wgrep() 
  5284. o routines() 
  5285. o goto_line_key() 
  5286.  
  5287.  
  5288. ΓòÉΓòÉΓòÉ 9.3.1. Find string ΓòÉΓòÉΓòÉ
  5289.  
  5290. To find a string, 
  5291.  
  5292.  1. Select Find string.  The Find String dialog box is displayed. 
  5293.  
  5294.  2. Enter the search string in the Search value field. 
  5295.  
  5296.  3. Indicate where you would like PREDITOR/2 to search for the specified 
  5297.     string, in the Scope group box: 
  5298.  
  5299.     Then select one of the following radio buttons: 
  5300.  
  5301.     Selected block: Search only the selected block of text.  This button is 
  5302.     only available if you highlighted a block of text before you invoked the 
  5303.     search. 
  5304.  
  5305.     Current buffer: Search only the current buffer. 
  5306.  
  5307.     All buffers: Search all open buffers. 
  5308.  
  5309.     File(s): Specify files to search.  With this option selected, the Files to 
  5310.     search field is enabled, where you can add the path and name(s) of the 
  5311.     file(s) to search. Only the Change all button is available when you use 
  5312.     this option. 
  5313.  
  5314.     Recursive: Search the specified directory and all of its subdirectories. 
  5315.  
  5316.  4. Specify if the search is to move forward or backward from the cursor 
  5317.     position, in the Direction group box.  To do this, click on the appropriate 
  5318.     radio button. 
  5319.  
  5320.  5. Select the Match case check box if you want to perform a case-sensitive 
  5321.     search.  Clear this box if you want to locate all matches of the search 
  5322.     string regardless of case. 
  5323.  
  5324.  6. Select or clear the Regular expressions check box. 
  5325.  
  5326.  7. For additional search functionality, click on Options.  The Find dialog box 
  5327.     expands to reveal additional check boxes.  The default values for these 
  5328.     functions are shown.  You can select or clear the following check boxes as 
  5329.     necessary: 
  5330.  
  5331.     Highlight search results: Have the located search string shown as 
  5332.     highlighted text.  Clear this check box to have the cursor move to the 
  5333.     first character of the located text.  Click on the title bar to bring the 
  5334.     located text into view. 
  5335.  
  5336.     Center search results: Place the line containing the located search string 
  5337.     in the center of the window.  Clear this check box to cause the located 
  5338.     search string to remain in its original position. 
  5339.  
  5340.     Find maximal match: Search for the longest string matching the search value 
  5341.     criteria.  Clear this box to search for the first occurrence of the 
  5342.     beginning string and the first occurrence of the ending string. 
  5343.  
  5344.     Search wraps around: Wrap the search around the end of the buffer and 
  5345.     continue searching until it comes back to the starting point if the 
  5346.     specified search string is not found before the search reaches the end of 
  5347.     the buffer.  Clear this box to stop the search when it reaches the end of 
  5348.     the buffer without wrapping. 
  5349.  
  5350.     Match whole word: Find only those occurrences of the search string 
  5351.     (delimited by a valid delimiter) to be considered a match. Clear this check 
  5352.     box to have no constraints put upon the search. 
  5353.  
  5354.     Caution:  The Regular expressions check box must be selected if you use 
  5355.     regular expressions in your search string.  For more information, see 
  5356.     Regular expressions 
  5357.  
  5358.     Note:  Word delimiters can be configured using the Settings notebook.  See 
  5359.     the {*"Colors" section in Chapter 2 - Customizing*} for further 
  5360.     information. 
  5361.  
  5362.  8. Choose from the following options as you begin the search: 
  5363.  
  5364.     Find: Search for the next occurrence of the search string. 
  5365.  
  5366.     First: Locate the first occurrence of the search string, beginning at the 
  5367.     top of the file. 
  5368.  
  5369.     Last: Locate the first occurrence of the search string, beginning at the 
  5370.     bottom of the file. 
  5371.  
  5372.     Find All Search Button: Locate all occurrences of the search string and 
  5373.     display them in a list box. 
  5374.  
  5375. Hint:  Use the pop-up menu for a quick, context-sensitive search.  Within the 
  5376. buffer you are searching, simply move the cursor to the word you are searching 
  5377. for, press and release the right mouse button, and select the Find string menu 
  5378. item from the pop-up menu that appears. 
  5379.  
  5380. Search    value
  5381.           Enter the character string that you would like to scan for in the 
  5382.           buffer. 
  5383.           Scope
  5384.           Select the appropriate scope.  All Buffers searches all open buffers 
  5385.           and File(s) allows file searching. 
  5386.           Direction
  5387.           Select the direction to proceed scanning the buffer for the Search 
  5388.           value relative to the current position. Options 
  5389.  
  5390. See also: 
  5391.  
  5392. o grep() 
  5393. o Options 
  5394. o search() 
  5395. o wgrep() 
  5396. o wsearch() 
  5397.  
  5398.  
  5399. ΓòÉΓòÉΓòÉ 9.3.2. Search Options ΓòÉΓòÉΓòÉ
  5400.  
  5401. The search options may be set on the search settings page of the notebook or on 
  5402. the Options panel of the Find and Change dialog.  When checked, the following 
  5403. settings have the described effects. 
  5404.  
  5405. o Match case - Invokes a case sensitive search. 
  5406.  
  5407. o Regular expr. - Allows entering Regular expressions in the search value 
  5408.   field. 
  5409.  
  5410. o Find all - Finds all strings in the buffer matching the search value. 
  5411.  
  5412. o Highlight search result - Highlight the strings matching the search value. 
  5413.  
  5414. o Center search results - Centers the matched string in the window. 
  5415.  
  5416. o Find maximal match - Finds the longest string matching the search value 
  5417.   criteria. 
  5418.  
  5419. o Search wraps around - Starts searching from the beginning of the buffer if no 
  5420.   match is found before reaching the end of the buffer. 
  5421.  
  5422. o Match whole word - Only finds strings matching the search value in length. 
  5423.  
  5424.  
  5425. ΓòÉΓòÉΓòÉ 9.3.3. Find All Search Button ΓòÉΓòÉΓòÉ
  5426.  
  5427. When you select the Find All button, a dialog box is displayed if more than one 
  5428. match if found.  All occurrences of the search string are listed in this list 
  5429. box. 
  5430.  
  5431. The editor provides a variety of methods for you to use this information, which 
  5432. you can access by simply clicking on one of the buttons located across the 
  5433. bottom of the list box: 
  5434.  
  5435. Move the cursor in the file to a listed occurrence 
  5436.           Highlight the occurrence (or use Next and Prev to move the cursor) 
  5437.           and click on Goto, or double-click on an item in the list. 
  5438.  
  5439. Move the cursor down the list of occurrences. 
  5440.           Click on Next.  As you move through the list, the highlight bar moves 
  5441.           through the file, stopping on the line containing the selected 
  5442.           occurrence. Click on Goto to position the cursor on that line of the 
  5443.           file. 
  5444.  
  5445. Move the cursor up through the list of occurrences 
  5446.           Click on Prev.  As you move through this list, the highlight bar 
  5447.           moves through the vile, stopping on the line containing the selected 
  5448.           occurrence. Click on Goto to position the cursor on that line of the 
  5449.           file. 
  5450.  
  5451. Discontinue the Find All process 
  5452.           If there are numerous occurrences to be located, this process can be 
  5453.           time-consuming.  In this situation, you can click on Stop to end the 
  5454.           processing. 
  5455.  
  5456. Close this dialog box 
  5457.           Click on Close. 
  5458.  
  5459. Minimize this dialog box for viewing at a later time 
  5460.           Click on the minimize icon in the upper right corner of the dialog 
  5461.           box. The minimized box can be viewed by selecting the Dialog list 
  5462.           function.  See Dialog list for more information. 
  5463.  
  5464.  
  5465. ΓòÉΓòÉΓòÉ 9.3.4. Find next ΓòÉΓòÉΓòÉ
  5466.  
  5467. Select Find next to locate the next occurrence of the previously specified 
  5468. search string.  For information on changing the search string or any search 
  5469. parameters, see Find string from the Search menu. 
  5470.  
  5471. See also: 
  5472.  
  5473. o search_again() 
  5474. o wsearch_again() 
  5475.  
  5476.  
  5477. ΓòÉΓòÉΓòÉ 9.3.5. Incremental find ΓòÉΓòÉΓòÉ
  5478.  
  5479. Select Incremental find to locate the first occurrence of a search string.  You 
  5480. can add characters to the string or delete them.  Each time the search string 
  5481. changes, the cursor moves to the first occurrence of the current string. 
  5482.  
  5483. When you select Incremental find, the message Incremental find:* is displayed 
  5484. in the status bar. (If you have toggled the status bar off, a message box is 
  5485. displayed in which you can enter the string.).  At the cursor (*), enter the 
  5486. search string.  The cursor moves to the first occurrence of the string. You can 
  5487. add characters to the string or delete characters.  Any time the string 
  5488. changes, the cursor moves to the first occurrence of the current string. 
  5489.  
  5490. See also: 
  5491.  
  5492. o search_i() 
  5493.  
  5494.  
  5495. ΓòÉΓòÉΓòÉ 9.3.6. Change ΓòÉΓòÉΓòÉ
  5496.  
  5497. Use the Change option to locate a specified search string and replace it with 
  5498. another. 
  5499.  
  5500. To change a string, 
  5501.  
  5502.  1. Select Change.  The Change String dialog box is displayed. 
  5503.  
  5504.  2. Enter the string to be found, in the Search value field. 
  5505.  
  5506.  3. Enter the replacement string in the Change to value field. 
  5507.  
  5508.  4. Indicate where you would like the editor to search for the specified 
  5509.     string, in the Scope area: 
  5510.  
  5511.     Selected block: Search and change only the selected block of text.  This 
  5512.     option is enabled only if you highlighted a block of text before invoking 
  5513.     the search. 
  5514.  
  5515.     Current buffer: Search and change only the current buffer. 
  5516.  
  5517.     All buffers: Search all open buffers. 
  5518.  
  5519.     File(s): Specify files to search.  With this option selected, the Files to 
  5520.     search field is enabled, where you can add the path and name(s) of the 
  5521.     file(s) to search. Only the Change all button is available when you use 
  5522.     this option. 
  5523.  
  5524.     Recursive: Search the specified directory and all of its subdirectories. 
  5525.  
  5526.  5. In the Direction group box, use the radio buttons to specify if the search 
  5527.     is to proceed forward or backward from the cursor position. 
  5528.  
  5529.  6. Select the Match case check box to make the search case-sensitive.  Clear 
  5530.     this box to locate all matches of the search string regardless of case. 
  5531.  
  5532.  7. Select or clear the Regular expressions check box. 
  5533.  
  5534.  8. Click on Options for additional functionality.  The Change dialog box 
  5535.     displays additional check boxes.  The default values for these functions 
  5536.     are shown.  You can select or clear the check boxes as necessary: 
  5537.  
  5538.     Highlight search results: Have the located search string shown as 
  5539.     highlighted text.  Clear this check box to have the cursor move to the 
  5540.     first character of the located text.  Click on the title bar to bring the 
  5541.     located text into view. 
  5542.  
  5543.     Center search results: Place the line containing the located search string 
  5544.     in the center of the window.  Clear this check box to cause the located 
  5545.     search string to remain in its original position. 
  5546.  
  5547.     Find maximal match: Search for the longest string matching the search value 
  5548.     criteria.  Clear this box to search for the first occurrence of the 
  5549.     beginning string and the first occurrence of the ending string. 
  5550.  
  5551.     Search wraps around: Wrap the search around the end of the buffer and 
  5552.     continue searching until it comes back to the starting point if the 
  5553.     specified search string is not found before the search reaches the end of 
  5554.     the buffer.  Clear this box to stop the search when it reaches the end of 
  5555.     the buffer without wrapping. 
  5556.  
  5557.     Match whole word: Find only those occurrences of the search string 
  5558.     (delimited by a valid delimiter) to be considered a match.  Clear this 
  5559.     check box to have no constraints put upon the search. 
  5560.  
  5561.     Note:  The Regular expressions check box MUST be selected if you are using 
  5562.     regular expressions in your search string. 
  5563.  
  5564.  9. You can choose from the following options as you begin the search: 
  5565.  
  5566.     Find: Search for the next occurrence of the search string. 
  5567.  
  5568.     First: Locate the first occurrence of the search string, beginning at the 
  5569.     top of the file. 
  5570.  
  5571.     Last: Locate the first occurrence of the search string, beginning at the 
  5572.     bottom of the file. 
  5573.  
  5574.     Find All: Locate all occurrences of the search string and display them in a 
  5575.     list box. 
  5576.  
  5577. See also: 
  5578.  
  5579. o replace() 
  5580.  
  5581.  
  5582. ΓòÉΓòÉΓòÉ 9.3.7. Find matching ΓòÉΓòÉΓòÉ
  5583.  
  5584. When editing a source file, use this function to locate a matching symbol. To 
  5585. do this, position your cursor on the symbol for which you want to find the 
  5586. match.  Select Find matching.  The cursor moves to the matching symbol. 
  5587.  
  5588. See also: 
  5589.  
  5590. o Extensions 
  5591. o goto_matching() 
  5592.  
  5593.  
  5594. ΓòÉΓòÉΓòÉ 9.3.8. Mark matching ΓòÉΓòÉΓòÉ
  5595.  
  5596. Use this function to locate and block text up to a matching symbol. 
  5597.  
  5598. To locate a matching mark and block the information between two marks, 
  5599.  
  5600.  1. Position your cursor on the symbol for which you want to find the match. 
  5601.  
  5602.  2. Select Mark matching.  All of the text between the symbols is blocked. 
  5603.  
  5604. See also: 
  5605.  
  5606. o Extensions 
  5607. o mark_matching() 
  5608.  
  5609.  
  5610. ΓòÉΓòÉΓòÉ 9.3.9. Mark next matching ΓòÉΓòÉΓòÉ
  5611.  
  5612. This option is particularly helpful when working in a nested structure, to help 
  5613. you move from one nested statement to the next.  To use this option, select 
  5614. Mark next matching.  From its current position, the cursor moves to the next 
  5615. occurrence of a set of matching symbols, blocking all of the text between the 
  5616. symbols. 
  5617.  
  5618. If you are in a nested structure, selecting this function causes the cursor to 
  5619. continue to move within the structure from one nested statement to the next, 
  5620. highlighting the text within the symbols.  When the cursor reaches the 
  5621. innermost nested statement, selecting this function causes the cursor to move 
  5622. outside of the nested structure to the next set of matching symbols, 
  5623. highlighting the text within the symbols. 
  5624.  
  5625. See also: 
  5626.  
  5627. o Extensions 
  5628. o mark_matching_next() 
  5629.  
  5630.  
  5631. ΓòÉΓòÉΓòÉ 9.3.10. Find routines ΓòÉΓòÉΓòÉ
  5632.  
  5633. Use the Find routines option to locate all routines in the current buffer. 
  5634. PREDITOR/2 currently supports the following extensions: 
  5635.  
  5636. o .COB 
  5637.  
  5638. o .CBL 
  5639.  
  5640. o .C 
  5641.  
  5642. o .PEL 
  5643.  
  5644. o .CPP 
  5645.  
  5646. To find a routine, 
  5647.  
  5648.  1. Select Find routines. The Find Routines dialog box is displayed. The 
  5649.     located routines and their line numbers are displayed in this dialog box. 
  5650.  
  5651.     To perform the actions below, follow the corresponding instructions: 
  5652.  
  5653.     Move the cursor in the file to a listed occurrence: Highlight the 
  5654.     occurrence (or use Next and Prev to move the cursor) and click on Goto. or 
  5655.     Double-click on an item in the list. 
  5656.  
  5657.     Move the cursor down the list of occurrences: Click on Next.  As you move 
  5658.     through the list, the highlight bar moves through the file, stopping on the 
  5659.     line containing the selected occurrence. Click on Goto to position the 
  5660.     cursor on that line of the file. 
  5661.  
  5662.     Move the cursor up through the list of occurrences: Click on Prev.  As you 
  5663.     move through the list, the highlight bar moves through the file, stopping 
  5664.     on the line containing the selected occurrence. Click on Goto to position 
  5665.     the cursor on that line of the file. 
  5666.  
  5667.     Discontinue the Find All process: If there are numerous occurrences to be 
  5668.     located, this process can be time-consuming.  In this situation, you can 
  5669.     click on Stop to end the processing. 
  5670.  
  5671.     Close this dialog box: Click on Close. 
  5672.  
  5673.     Minimize this dialog box for viewing at a later time: Click on the minimize 
  5674.     icon in the upper right corner of the dialog box.  The minimized box can be 
  5675.     viewed by selecting the Dialog list function. See Dialog list for more 
  5676.     information. 
  5677.  
  5678. See also: 
  5679.  
  5680. o routines() 
  5681. o Extensions 
  5682.  
  5683.  
  5684. ΓòÉΓòÉΓòÉ 9.3.11. Locate line number ΓòÉΓòÉΓòÉ
  5685.  
  5686. Use the Locate line number option to move the cursor to a specified line in 
  5687. your buffer. 
  5688.  
  5689. To move the cursor to a specific line, 
  5690.  
  5691.  1. Select Locate line number from the Search menu. A dialog box is displayed. 
  5692.  
  5693.  2. Enter the line number to which you want to move. Press [Enter] or click on 
  5694.     OK The specified line number scrolls to the center of the window. 
  5695.  
  5696. See also: 
  5697.  
  5698. o Special keys on prompts 
  5699. o goto_line() 
  5700. o goto_pos() 
  5701.  
  5702.  
  5703. ΓòÉΓòÉΓòÉ 9.3.12. Bookmark list ΓòÉΓòÉΓòÉ
  5704.  
  5705. Use the Bookmark list function to select from a list of bookmarks. Bookmarks 
  5706. represent marked places in your file where you can position your cursor.  You 
  5707. need to have a bookmark defined before you can use this function. 
  5708.  
  5709. To select from a list of bookmarks, 
  5710.  
  5711.  1. Select Bookmark list to display a list of current bookmarks.  The Bookmark 
  5712.     List dialog box is displayed. 
  5713.  
  5714.  2. You can choose from the following functions to locate the desired bookmark: 
  5715.  
  5716.     Move the cursor to a specific bookmark: Select the bookmark from the list 
  5717.     (or use Next and Prev to move the highlight bar), and click on Goto. 
  5718.  
  5719.     Move the highlight bar down through the list of bookmarks: .Click on Next. 
  5720.     As you move through the bookmark list, the line in the file containing the 
  5721.     selected bookmark is highlighted. 
  5722.  
  5723.     To perform the following activities, refer to their corresponding 
  5724.     directions: 
  5725.  
  5726.     Move the highlight bar up through the list of bookmarks: Click on Prev.  As 
  5727.     you move through the bookmark list, the line in the file containing the 
  5728.     selected bookmark is highlighted. 
  5729.  
  5730.     Delete a bookmark from the list: Highlight it and click on Delete. 
  5731.  
  5732.     Close the dialog box: Click on Close. 
  5733.  
  5734.     Minimize the dialog box for viewing at a later time: Click on the minimize 
  5735.     icon in the upper right corner.  The minimized box can be viewed using the 
  5736.     Dialog list function. 
  5737.  
  5738. See also: 
  5739.  
  5740. o goto_bookmark() 
  5741. o Dialog list 
  5742. o place_bookmark() 
  5743.  
  5744.  
  5745. ΓòÉΓòÉΓòÉ 9.4. Buffers menu ΓòÉΓòÉΓòÉ
  5746.  
  5747. Use the Buffers menu to select options that effect the currently open buffers. 
  5748. You can select from the following options on the Buffers menu: 
  5749.  
  5750. o Next buffer 
  5751. o Previous buffer 
  5752. o Close buffer 
  5753. o Buffer List 
  5754.  
  5755.  
  5756. ΓòÉΓòÉΓòÉ 9.4.1. Next buffer ΓòÉΓòÉΓòÉ
  5757.  
  5758. All open buffers are displayed in a list (see Buffer List for more 
  5759. information).  Because each buffer is loaded into a window, there are only as 
  5760. many buffers displayed as there are windows currently open.  For example, if 
  5761. you have four buffers open but only two windows open, only two buffers are 
  5762. displayed.  If the buffer you want is in the buffer list but is not open in 
  5763. either of the windows, select Next buffer to bring the next buffer into the 
  5764. current window. 
  5765.  
  5766. See also: 
  5767.  
  5768. o buffer_list() 
  5769. o next_buffer() 
  5770.  
  5771.  
  5772. ΓòÉΓòÉΓòÉ 9.4.2. Previous buffer ΓòÉΓòÉΓòÉ
  5773.  
  5774. Select Previous buffer to go backwards through the buffer list to bring the 
  5775. previous buffer into the current window. 
  5776.  
  5777. See also: 
  5778.  
  5779. o buffer_list() 
  5780. o prev_buffer() 
  5781.  
  5782.  
  5783. ΓòÉΓòÉΓòÉ 9.4.3. Close buffer ΓòÉΓòÉΓòÉ
  5784.  
  5785. You can close a buffer from the buffer list by first bringing it into a window, 
  5786. then selecting Close buffer.  You can also close buffers directly from the 
  5787. buffer list.  See Buffer List for more information on this process. 
  5788.  
  5789. See also: 
  5790.  
  5791. o buffer_list() 
  5792. o delete_buffer() 
  5793.  
  5794.  
  5795. ΓòÉΓòÉΓòÉ 9.4.4. Buffer list ΓòÉΓòÉΓòÉ
  5796.  
  5797. Select Buffer list to view a list of the currently open buffers.  The Buffer 
  5798. List dialog box is displayed.  If you are in Detached mosde, your buffer list 
  5799. is displayed on the Control Panel. 
  5800.  
  5801. After highlighting a buffer from the list, you can use any of the following 
  5802. buttons: 
  5803.  
  5804. Read only: Make the buffer read-only. 
  5805.  
  5806. Delete: Delete the buffer from the buffer list.  This button does not delete 
  5807. the buffer, but closes it and removes it from the list. 
  5808.  
  5809. Save: Save the buffer. 
  5810.  
  5811. Lock: Lock the buffer so that no other users can access the file while you 
  5812. edit. 
  5813.  
  5814. Note: If a buffer is listed with (MOD) next to it, it means that the buffer has 
  5815. been modified without the modifications being saved.  Click on Save to save the 
  5816. buffer. 
  5817.  
  5818. When you have completed specifying information in the Buffer List dialog box, 
  5819. you can either click on OK to save your changes, or click on Cancel to exit the 
  5820. dialog box without saving any changes. 
  5821.  
  5822. See also: 
  5823.  
  5824. o buffer_list() 
  5825.  
  5826.  
  5827. ΓòÉΓòÉΓòÉ 9.5. Tools menu ΓòÉΓòÉΓòÉ
  5828.  
  5829. The Tools menu offers options such as displaying a command dialog box, 
  5830. accessing the PEL debugger, and accessing the version control system. 
  5831.  
  5832. From the Tools menu, you can select from the following options: 
  5833.  
  5834. o Command dialog 
  5835. o System window 
  5836. o Compile 
  5837. o Pel debugger 
  5838. o Dialog list 
  5839. o Next 
  5840. o Previous 
  5841. o Tags locate 
  5842. o CTags make 
  5843. o Peltags make 
  5844. o Version Control 
  5845.  
  5846. See also: 
  5847.  
  5848. o debug() 
  5849. o invoke_function() 
  5850.  
  5851.  
  5852. ΓòÉΓòÉΓòÉ 9.5.1. Command dialog ΓòÉΓòÉΓòÉ
  5853.  
  5854. Select Command dialog to display a dialog box from which you can issue an 
  5855. editor command or display the value of a variable. When entering PEL fuctions 
  5856. to execute do not supply parenthesis around arguments or comma's between them. 
  5857. Only constant values can be passed as arguments from the command line. 
  5858.  
  5859.  To get context sensitive help on the text entered in the edit field press 
  5860. [Ctrl][F1]. 
  5861.  
  5862. To open the Command dialog box, 
  5863.  
  5864.  1. Select Command dialog.  A dialog box is displayed. 
  5865.  
  5866.  2. Enter a PEL command or select one from the command history list.  Then 
  5867.     press [Enter] or click on OK. 
  5868.  
  5869. See also: 
  5870.  
  5871. o invoke_function() 
  5872. o Special keys on prompts 
  5873. o prompt_history() 
  5874.  
  5875.  
  5876. ΓòÉΓòÉΓòÉ 9.5.2. System window ΓòÉΓòÉΓòÉ
  5877.  
  5878. The System Window option enables you to enter an OS/2 command in an OS/2 
  5879. window. 
  5880.  
  5881. To open and use an OS/2 window, 
  5882.  
  5883.  1. Select System window.  An OS/2 window opens. 
  5884.  
  5885.  2. Type the command at the command line and press [Enter]. 
  5886.  
  5887.  3. Type EXIT at the command line and press [Enter].  The OS/2 window closes 
  5888.     and the cursor returns to PREDITOR/2. 
  5889.  
  5890. See also: 
  5891.  
  5892. o system() 
  5893.  
  5894.  
  5895. ΓòÉΓòÉΓòÉ 9.5.3. Compile ΓòÉΓòÉΓòÉ
  5896.  
  5897. Select Compile to begin compiling the current buffer.  If you have not yet 
  5898. specified a compiler for the file extension, a warning message box is 
  5899. displayed. 
  5900.  
  5901. Note: You can specify a compiler/extension association in the Settings 
  5902. Notebook. Compilers for further information. 
  5903.  
  5904. See also: 
  5905.  
  5906. o compile_buffer() 
  5907.  
  5908.  
  5909. ΓòÉΓòÉΓòÉ 9.5.4. Pel debugger ΓòÉΓòÉΓòÉ
  5910.  
  5911. The PEL Debugger option provides access to the PEL debugger. Refer to the PEL 
  5912. Debugger for a complete discussion of the debugger. 
  5913.  
  5914. See also: 
  5915.  
  5916. o debug() 
  5917.  
  5918.  
  5919. ΓòÉΓòÉΓòÉ 9.5.5. Dialog list ΓòÉΓòÉΓòÉ
  5920.  
  5921. Certain OS/2 list boxes can be minimized for viewing at a later time.  These 
  5922. list boxes include Find All, Find Routines, Bookmark List and Compile Results. 
  5923. The Dialog list option enables you to display minimized dialog boxes. 
  5924.  
  5925. To display minimized dialog boxes, 
  5926.  
  5927.  1. Select Dialog list.  The Dialog List dialog box is displayed. To complete 
  5928.     the following actions, follow the associated instructions: 
  5929.  
  5930.     Display a hidden list box: Highlight the list box (or use Next and Prev to 
  5931.     move the highlight bar to the list box) and click on Goto. 
  5932.  
  5933.     Move the highlight bar down through the list of list boxes: Click on Next. 
  5934.  
  5935.     Move the highlight bar up through the list of list boxes: Click on Prev. 
  5936.  
  5937.     Close the dialog box: Click on Close. 
  5938.  
  5939. See also: 
  5940.  
  5941. o goto_next_error() 
  5942.  
  5943.  
  5944. ΓòÉΓòÉΓòÉ 9.5.6. Next ΓòÉΓòÉΓòÉ
  5945.  
  5946. The Next option displays the next line in the current dialog.  If you are using 
  5947. a dialog box containing strings or errors, use this tool to move to the next 
  5948. item in the list. 
  5949.  
  5950. See also: 
  5951.  
  5952. o goto_next_error() 
  5953.  
  5954.  
  5955. ΓòÉΓòÉΓòÉ 9.5.7. Previous ΓòÉΓòÉΓòÉ
  5956.  
  5957.  The Previous option displays the previous line in the current dialog.  If you 
  5958. are using a list box containing strings or errors, use this tool to move to the 
  5959. previous item in the list. 
  5960.  
  5961. See also: 
  5962.  
  5963. o goto_next_error() 
  5964.  
  5965.  
  5966. ΓòÉΓòÉΓòÉ 9.5.8. Tags locate ΓòÉΓòÉΓòÉ
  5967.  
  5968. Use the Tags locate option to locate source code containing a particular tag. 
  5969. Before this function can be used, a tags file must be created.  A tags file is 
  5970. a data file that lists identifiers (function names, variables, etc.) with 
  5971. information on where each was defined within the source code. 
  5972.  
  5973. Once your tags file is built, you can use the tags() and tags_auto() functions 
  5974. to retrieve the appropriate source file, and position the cursor at the 
  5975. definition. (See CTags make or Peltags make.) 
  5976.  
  5977. To locate a tag, 
  5978.  
  5979.  1. Select Tags locate. 
  5980.  
  5981.  2. Enter the tag (function or variable name) you want to find in the dialog 
  5982.     box that is displayed. 
  5983.  
  5984.  3. Press [Enter] or click on OK to find the specified tag. 
  5985.  
  5986. See also: 
  5987.  
  5988. o peltags_make() 
  5989.  
  5990. o tags() 
  5991.  
  5992. o What are tags? 
  5993.  
  5994.  
  5995. ΓòÉΓòÉΓòÉ 9.5.9. CTags make ΓòÉΓòÉΓòÉ
  5996.  
  5997. Select Ctags make to create a CTAGS.TAG data file for all obvious functions, 
  5998. structure definitions, and defined macros.  In the dialog box that is 
  5999. displayed, enter a list of C source file extensions to process. 
  6000.  
  6001. The ability to quickly view function definitions and constant #defines in C and 
  6002. C++ is critical for any software developer.  The Ctags make function parses C 
  6003. and C++ source code files for function names, #defines, typedefs, structure 
  6004. definitions, and class declarations.  It then saves all of these symbols and 
  6005. their locations in a file named CTAGS.TAG.  Later, when you want to view the 
  6006. source code for any of these symbols, call function tags() with the name of the 
  6007. symbol as a parameter, or call tags_auto() with your cursor placed on the 
  6008. symbol.  The appropriate file is loaded with the source code visible. 
  6009.  
  6010. When you run ctags_make(), it reports the date on which the tags file was last 
  6011. updated, and prompts you for the extensions of the files you want to parse. 
  6012.  
  6013. Hint:  PREDITOR/2's current working directory must be the directory for which 
  6014. you want to create the .TAG file, so you should call chdir() first. 
  6015.  
  6016. Note:  Parsing source files takes a long time, so be prepared to let the editor 
  6017. run in the background until it is done parsing.  It sounds a tone when 
  6018. processing is complete. 
  6019.  
  6020. See also: 
  6021.  
  6022. o peltags_make() 
  6023.  
  6024. o tags() 
  6025.  
  6026. o What are tags? 
  6027.  
  6028.  
  6029. ΓòÉΓòÉΓòÉ 9.5.10. Peltags make ΓòÉΓòÉΓòÉ
  6030.  
  6031. Select the PELtags make option to build a PELTAGS.TAG data file for all 
  6032. functions and initialized global variables in the current CPE.AE file. 
  6033.  
  6034. See also: 
  6035.  
  6036. o peltags_make() 
  6037.  
  6038. o tags() 
  6039.  
  6040. o What are tags? 
  6041.  
  6042.  
  6043. ΓòÉΓòÉΓòÉ 9.5.11. Version Control ΓòÉΓòÉΓòÉ
  6044.  
  6045. Select the Version Control option to tailor the version control system to your 
  6046. preferences. (You must enable the version control system (VCS) before you can 
  6047. select any of the options available in the system.  Enable the version control 
  6048. system by selecting the Enable VCS check box on the VCS (Version Control 
  6049. System) page of the Settings Notebook.) 
  6050.  
  6051. Get 
  6052.           Selecting Get enables you to retrieve a file from the version control 
  6053.           system and at the same time lock the file so that it can not be 
  6054.           released to another user.  When you select Get, a dialog box is 
  6055.           displayed showing the Get command.  This command reflects the default 
  6056.           value from the VCS page of the Settings Notebook. 
  6057. Put 
  6058.           Selecting Put releases the lock on the file and returns it to the 
  6059.           version control system.  When you select Put, a dialog box is 
  6060.           displayed, showing the Put command.  This command reflects the 
  6061.           default value from the VCS page of the Settings Notebook. 
  6062. VDiff 
  6063.           Select Vdiff to compare two versions of a version control system 
  6064.           file. The default presents the file from the active buffer and the 
  6065.           tip (latest) version of that file from the version control system 
  6066.           library. The results are stored in a buffer and presented in a 
  6067.           vertically or horizontally divided window. Scrolling is synchronized 
  6068.           between windows.  Insertions are highlighted in the edited version, 
  6069.           and deletions are highlighted in the tip version. 
  6070.  
  6071. To compare two versions of a file, 
  6072.  
  6073.  1. Select Vdiff.  The PVCS VDIFF dialog box is displayed. 
  6074.  
  6075.  2. Enter the name of the source file and if necessary, a revision/version 
  6076.     number, in the Reference fields. 
  6077.  
  6078.  3. Enter the name of the target file and if necessary, a revision/version 
  6079.     number in the Target fields. 
  6080.  
  6081.  4. Select either the Comparison or the Vdiff output radio button in the View 
  6082.     group box.  These options specify how you want to view the compared 
  6083.     results. 
  6084.  
  6085.  5. Use the radio buttons in the Orientation group box to specify how the 
  6086.     information will be displayed when you view results in comparison mode. 
  6087.  
  6088.  6. Select or clear the Ignore whitespace check box.  Selecting this box causes 
  6089.     whitespace from indentation and other space differences to be considered as 
  6090.     part of the line.  This space can cause unnecessary error notations. Clear 
  6091.     this box to ignore whitespace. 
  6092.  
  6093.  7. Click on OK or press [Enter]. 
  6094.  
  6095. See also: 
  6096.  
  6097. o get_command 
  6098. o put_command 
  6099. o vdiff_command 
  6100. o pvcs() 
  6101.  
  6102.  
  6103. ΓòÉΓòÉΓòÉ 9.6. Options menu ΓòÉΓòÉΓòÉ
  6104.  
  6105. Use Options in the menu bar to tailor the primary Edit environment and toggle 
  6106. the tool bar and status bar. You can select from the following choices: 
  6107.  
  6108. o Quick Settings 
  6109. o Settings Notebook 
  6110. o Save settings 
  6111. o Save state 
  6112. o Colors 
  6113. o Fonts 
  6114. o Key bindings 
  6115. o Toggle toolbar 
  6116. o Toggle status bar 
  6117.  
  6118. See also: 
  6119.  
  6120. o color_dialog() 
  6121. o toggle_linenumbers() 
  6122. o toggle_status_bar() 
  6123. o toggle_toolbar() 
  6124.  
  6125.  
  6126. ΓòÉΓòÉΓòÉ 9.6.1. Quick Settings ΓòÉΓòÉΓòÉ
  6127.  
  6128. Use the Quick Settings item on the Options menu to change some of the editor's 
  6129. basic settings.  A subset of the Settings Notebook, your Quick Settings are 
  6130. applied to all buffers, windows, and types, and are made the defaults as 
  6131. appropriate. 
  6132.  
  6133. Note: For more detail on a Quick Setting, see the corresponding section in the 
  6134. Settings Notebook. 
  6135.  
  6136. The list below describes the preferences you can select on the Quick Settings 
  6137. dialog box: 
  6138.  
  6139. o Editor Quick Settings 
  6140.  
  6141. o Window Quick Settings 
  6142.  
  6143. o Types Quick Settings 
  6144.  
  6145. o Buffer Quick Settings 
  6146.  
  6147.  
  6148. ΓòÉΓòÉΓòÉ 9.6.1.1. Editor Quick Settings ΓòÉΓòÉΓòÉ
  6149.  
  6150. From the Quick Settings dialog box, you can specify the following editor 
  6151. settings:  Refer to the list below for a description of each Editor setting: 
  6152.  
  6153. Emulation 
  6154.           From the list box, select the system you want the editor to emulate. 
  6155.           The emulation mode you choose affects the way your keyboard behaves. 
  6156.  
  6157. Cursor 
  6158.           Select "Vertical" for a vertical cursor, or "Horizontal" for a 
  6159.           horizontal cursor. 
  6160.  
  6161. Status Bar 
  6162.           Select "Prompts" to have prompts displayed on the status bar instead 
  6163.           of in dialog boxes. Select "Dynamic resizing" to resize each field of 
  6164.           the status bar to display full prompts and messages. 
  6165.  
  6166. Save 
  6167.           Select "Create backup on save" to copy the file as it existed before 
  6168.           modifications.  This file is saved in the backup directory you 
  6169.           specify in the Settings Notebook, and has the same extension as the 
  6170.           original file unless the backup directory is the same as that of the 
  6171.           original file.  In this case, the backup file's extension is .BAK. 
  6172.  
  6173.           Select "Autosave" to have the editor periodically create a temporary 
  6174.           copy of your modified buffers.  These copies will be deleted when a 
  6175.           modified buffer is closed or the editor is exited normally.  You can 
  6176.           set the time between auto saves in the "Auto save time (min.)" check 
  6177.           box in the Editor settings notebook 
  6178.  
  6179.  
  6180. ΓòÉΓòÉΓòÉ 9.6.1.2. Window Quick Settings ΓòÉΓòÉΓòÉ
  6181.  
  6182. Window settings that you are likely to change often are in the Windows scope 
  6183. box.  Refer to the list below for a description of each Window setting: 
  6184.  
  6185. Mode 
  6186.           Select either "Single", "Multiple", or "Detached" to indicate how the 
  6187.           editor displays your windows.  To limit one buffer to each window, 
  6188.           select "One buffer per window". 
  6189.  
  6190. Miscellaneous 
  6191.           Select "Line numbers" to display line numbers in each window. Select 
  6192.           "Vertical scroll bar" and/or "Horizontal scroll bar" to display these 
  6193.           scroll bars on your main editor window. 
  6194.  
  6195.  
  6196. ΓòÉΓòÉΓòÉ 9.6.1.3. Types Quick Settings ΓòÉΓòÉΓòÉ
  6197.  
  6198. Types settings that you are likely to change often are in the Types scope box. 
  6199. Refer to the list below for a description of each Types quick setting: 
  6200.  
  6201. Type 
  6202.           From the list box, select the types of files you work with. 
  6203.  
  6204. Extensions 
  6205.           Enter the extension associated with the Type you selected in the Type 
  6206.           pull-down box. 
  6207.  
  6208. Template expansion 
  6209.           Select this check box to toggle template expansion on. 
  6210.  
  6211.  
  6212. ΓòÉΓòÉΓòÉ 9.6.1.4. Buffer Quick Settings ΓòÉΓòÉΓòÉ
  6213.  
  6214. Buffer settings that you are likely to change often are in the Buffer scope 
  6215. box.  Refer to the list below for a description of each Buffer quick setting: 
  6216.  
  6217. Color highlighting 
  6218.           Select this check box to enable color highlighting. 
  6219.  
  6220. Auto indent 
  6221.           Select this check box to enable auto-indent. 
  6222.  
  6223. Expand tabs on save 
  6224.           Select this check box to convert all tabs into spaces when you save 
  6225.           the file. 
  6226.  
  6227.  
  6228. ΓòÉΓòÉΓòÉ 9.6.2. Settings Notebook ΓòÉΓòÉΓòÉ
  6229.  
  6230. Click on the Settings option to access the Settings Notebook. From the 
  6231. notebook, you can customize PREDITOR/2 to your specifications.  See Settings 
  6232. Notebook or Customizing for more information. 
  6233.  
  6234. See also: 
  6235.  
  6236. o Editor Settings 
  6237. o Buffer Settings 
  6238. o Types 
  6239. o Window Settings 
  6240. o File Settings 
  6241.  
  6242.  
  6243. ΓòÉΓòÉΓòÉ 9.6.3. Save settings ΓòÉΓòÉΓòÉ
  6244.  
  6245. Select the Save settings option to save any changes made to the Settings 
  6246. notebook. 
  6247.  
  6248. See also: 
  6249.  
  6250. o save_flags 
  6251. o SAVE_ 
  6252.  
  6253.  
  6254. ΓòÉΓòÉΓòÉ 9.6.4. Save state ΓòÉΓòÉΓòÉ
  6255.  
  6256. When you exit PREDITOR/2, you have the option of taking a "snapshot" of the 
  6257. state of the editor before you actually exit.  You do this by selecting the 
  6258. Save state option.  The next time you start the editor, it is loaded in its 
  6259. previous state. 
  6260.  
  6261. See also: 
  6262.  
  6263. o save_flags 
  6264. o SAVE_ 
  6265.  
  6266.  
  6267. ΓòÉΓòÉΓòÉ 9.7. Colors ΓòÉΓòÉΓòÉ
  6268.  
  6269. You can change your basic screen colors in the Color settings dialog box.  To 
  6270. access this option, select Colors from the Options menu. Note:  For advanced 
  6271. highlighting, use the Colors page in the Types notebook. 
  6272.  
  6273.  1. Use the Fields list box to select the element whose color you want to 
  6274.     change. 
  6275.  
  6276.  2. Select the Foreground and Background colors by clicking on the appropriate 
  6277.     colors on the color palette. 
  6278.  
  6279.  3. Select any of the appropriate option buttons: 
  6280.  
  6281.     Apply to all--Apply these colors to all open windows. 
  6282.  
  6283.     Make default--Make these settings the new default settings. 
  6284.  
  6285.     OK--Save the settings. 
  6286.  
  6287.     Default--Retrieve the system default color settings. 
  6288.  
  6289.     Undo--Undo your changes and start over. 
  6290.  
  6291.     Cancel--Exit this dialog box without saving any changes. 
  6292.  
  6293.     Help--For help on using the Color dialog box. 
  6294.  
  6295. See also: 
  6296.  
  6297. o color_dialog() 
  6298. o COLOR_ 
  6299. o color_ 
  6300.  
  6301.  
  6302. ΓòÉΓòÉΓòÉ 9.8. Fonts ΓòÉΓòÉΓòÉ
  6303.  
  6304. You can change the font type and size from the Font Dialog dialog box.  To 
  6305. access this option, select Fonts from the Options menu. 
  6306.  
  6307.  1. Select a font type from the Name drop-down box. 
  6308.  
  6309.  2. Select a font size from the Size drop-down box. 
  6310.  
  6311.  3. Select a font style from the Style drop-down box. 
  6312.  
  6313.  4. Select the Display or Printer check box if you want to view display or 
  6314.     printer fonts. 
  6315.  
  6316.  5. In the Emphasis group box, select or clear the Outline, Underline, or 
  6317.     Strikeout check boxes to enable or disable the desired emphasis. 
  6318.  
  6319.  6. Select one of the following selection buttons (optional): 
  6320.  
  6321.     Apply to all--Apply these fonts to all open windows. 
  6322.  
  6323.     Make default--Make these settings the new default settings. 
  6324.  
  6325.     OK--Save the settings. 
  6326.  
  6327.     Default--Retrieve the system default font settings. 
  6328.  
  6329.     Undo--Undo your changes and start over. 
  6330.  
  6331.     Cancel--Exit this dialog box without saving any changes. 
  6332.  
  6333.     Help--For help on using the Font dialog box. 
  6334.  
  6335. See also: 
  6336.  
  6337. o font_dialog() 
  6338.  
  6339.  
  6340. ΓòÉΓòÉΓòÉ 9.9. Key bindings ΓòÉΓòÉΓòÉ
  6341.  
  6342. PREDITOR/2's Key Bindings option enables you to assign (bind) your most 
  6343. commonly-used functions to keystrokes. 
  6344.  
  6345. To bind a key to a function, 
  6346.  
  6347.  1. Select Key bindings. 
  6348.  
  6349. The Key Bindings dialog box is displayed. The Quick keys group box enables you 
  6350. to easily see all bindings for a particular key or key combination. 
  6351.  
  6352. To enter a key, 
  6353.  
  6354.  1. Click on Type a key.  From the dialog box that is displayed, enter the key 
  6355.     you want to view.  For example, to see all bindings for Shift+Esc, click on 
  6356.     Type a key, then press [Shift][Esc]. 
  6357.  
  6358. or 
  6359.  
  6360. Specify the key to be viewed by selecting or clearing the appropriate check 
  6361. boxes (Ctrl, Shift, Alt, and Num), then using the drop-down box to specify the 
  6362. rest of the key. 
  6363.  
  6364. Note: The Num check box will become available only when you select from the 
  6365. drop-down box a key that appears on the numerical keypad. 
  6366.  
  6367.  1. Click on Show bindings.  If there are currently any functions bound to this 
  6368.     key, they are displayed in the Current function group box.  The function is 
  6369.     also highlighted in the Bindings group box. 
  6370.  2. Move to the Bindings box and select from the list box the key to which the 
  6371.     command should be bound. Click on Bind to complete the bind.  If there are 
  6372.     parameters for the function, enter them in the Parameters field.  Click on 
  6373.     Function Help to view information on a particular function. 
  6374.  3. Use the Current keys for group box to view all current keys for a 
  6375.     particular function.  The function must be highlighted in the Bindings box 
  6376.     in order for the correct information to appear in the Current keys for box. 
  6377.  4. Click on one of the buttons listed below when you have finished your key 
  6378.     bindings: 
  6379.  
  6380. Click here To 
  6381.  
  6382. Ok        Exit the dialog box.  You are prompted to save any changes that have 
  6383.           not yet been saved. 
  6384.  
  6385. Cancel    Exit the dialog box without saving any changes. 
  6386.  
  6387. Save      Save changes and continue assigning keys to functions. 
  6388.  
  6389. To unbind a key from a function, 
  6390.  
  6391.  1. Highlight the key in the Current keys for drop-down box. 
  6392.  
  6393.  2. Click on Unbind. 
  6394.  
  6395.  
  6396. ΓòÉΓòÉΓòÉ 9.10. Toggle toolbar ΓòÉΓòÉΓòÉ
  6397.  
  6398. The toolbar, located at the top of the buffer window, appears by default. 
  6399. However, you can toggle it on and off by selecting or deselecting Toolbar from 
  6400. the Options pull-down menu. The toolbar contains icons which represent 
  6401. commonly-used editor functions. Even though these functions can be accessed 
  6402. through pull-down menus, displaying them on the toolbar offers you a shortcut 
  6403. to them. 
  6404.  
  6405. The toolbar can be toggled on and off by selecting or deselecting Toggle 
  6406. toolbar. 
  6407.  
  6408. See also: 
  6409.  
  6410. o toolbar_info() 
  6411.  
  6412.  
  6413. ΓòÉΓòÉΓòÉ 9.11. Toggle status bar ΓòÉΓòÉΓòÉ
  6414.  
  6415. The status bar appears in the editor by default. However, you can toggle it on 
  6416. and off by selecting or deselecting Status bar from the Options pull-down menu. 
  6417. The status bar displays information regarding the current editor session.  The 
  6418. amount and type of information shown in the status bar can be controlled using 
  6419. the Status Bar notebook settings. 
  6420.  
  6421. For further information on the status bar, see {*Status bar options in Chapter 
  6422. 2 - Customizing*}. 
  6423.  
  6424. See also: 
  6425.  
  6426. o status_bar_flags 
  6427. o Status Bar 
  6428.  
  6429.  
  6430. ΓòÉΓòÉΓòÉ 9.12. Window menu ΓòÉΓòÉΓòÉ
  6431.  
  6432. The Window menu offers several options that determine what windows are 
  6433. displayed and how they are arranged.  The options described below reflect the 
  6434. window options. 
  6435.  
  6436. o New 
  6437. o Cascade 
  6438. o Tile 
  6439. o Cascade all buffers 
  6440. o Tile all buffers 
  6441. o Split horizontal 
  6442. o Split vertical 
  6443. o Buffer filter 
  6444. o Next 
  6445. o Previous 
  6446. o Close all 
  6447. o Toggle hex mode 
  6448.  
  6449.  
  6450. ΓòÉΓòÉΓòÉ 9.12.1. New ΓòÉΓòÉΓòÉ
  6451.  
  6452. Use the New option to open a new window.  If you currently have a window open 
  6453. containing a buffer (while in MDI mode) and you select New, the new window 
  6454. displays the current buffer, giving you two windows filled with the same 
  6455. buffer.  You can retrieve a different buffer in the new window using the buffer 
  6456. list (select the {*Buffer list*} option from the {*Buffers menu*})or by 
  6457. selecting Open from the File menu.  (Be sure to deselect the Open buffers in 
  6458. new window check box.) 
  6459.  
  6460. See also: 
  6461.  
  6462. o create_window() 
  6463.  
  6464.  
  6465. ΓòÉΓòÉΓòÉ 9.12.2. Cascade ΓòÉΓòÉΓòÉ
  6466.  
  6467. Select Cascade to arrange the open windows on top of each other, with each 
  6468. window's title bar remaining visible. 
  6469.  
  6470. o cascade_buffers() 
  6471.  
  6472.  
  6473. ΓòÉΓòÉΓòÉ 9.12.3. Tile ΓòÉΓòÉΓòÉ
  6474.  
  6475. Select Tile to arrange all of the open windows so that they are tiled.  This 
  6476. layout enables you to cover all of the available space in the editor window, 
  6477. and view all of the windows at the same time. 
  6478.  
  6479. See also: 
  6480.  
  6481. o tile_buffers() 
  6482.  
  6483.  
  6484. ΓòÉΓòÉΓòÉ 9.12.4. Cascade all buffers ΓòÉΓòÉΓòÉ
  6485.  
  6486. While Cascade arranges only currently open windows and associated buffers, 
  6487. Cascade all buffers arranges all buffers in the Buffer list, even if it means 
  6488. opening up windows to put them in.  If, for example, you have two windows open 
  6489. but you have three buffers in your list, and you select Cascade all buffers, 
  6490. the editor automatically opens a window for the third buffer, then cascades all 
  6491. of the windows. 
  6492.  
  6493. See also: 
  6494.  
  6495. o cascade_buffers() 
  6496. o window_cascade() 
  6497.  
  6498.  
  6499. ΓòÉΓòÉΓòÉ 9.12.5. Tile all buffers ΓòÉΓòÉΓòÉ
  6500.  
  6501. Select Tile all buffers to tile all buffers, opening new windows as necessary. 
  6502. (Refer to Cascade all buffers for additional information.) 
  6503.  
  6504. See also: 
  6505.  
  6506. o tile_buffers() 
  6507. o window_tile() 
  6508.  
  6509.  
  6510. ΓòÉΓòÉΓòÉ 9.12.6. Split horizontal ΓòÉΓòÉΓòÉ
  6511.  
  6512. Split horizontal replaces the current window with two equally sized windows. 
  6513. The new windows have the same width as the old window but are only half the 
  6514. height. Both windows have the same current_buffer which is the current_buffer 
  6515. from the old window. 
  6516.  
  6517. See also: 
  6518.  
  6519. o split_window_horizontal() 
  6520. o split_window_vertical() 
  6521.  
  6522.  
  6523. ΓòÉΓòÉΓòÉ 9.12.7. Split vertical ΓòÉΓòÉΓòÉ
  6524.  
  6525. Split vertical replaces the current window with two equally sized windows.  The 
  6526. new windows have the same height as the old window but are only half the width. 
  6527. Both windows have the same current_buffer which is the current_buffer from the 
  6528. old window. 
  6529.  
  6530. See also: 
  6531.  
  6532. o split_window_horizontal() 
  6533. o split_window_vertical() 
  6534.  
  6535.  
  6536. ΓòÉΓòÉΓòÉ 9.12.8. Buffer filter ΓòÉΓòÉΓòÉ
  6537.  
  6538. You may want to have only certain types of files displayed in a window.  For 
  6539. example, if you want your .PEL files in one window and your configuration 
  6540. (.CFG) files in the other, select Buffer filter to restrict (or filter) the 
  6541. displayed buffers. 
  6542.  
  6543. To use the buffer filter, 
  6544.  
  6545.  1. Select Buffer filter from the Windows menu.  A dialog box is displayed. 
  6546.  
  6547.  2. Type the filter criteria (for example, *.CFG, or *.PEL) in the text field, 
  6548.     and press [Enter] or click on OK. 
  6549.  
  6550. See also: 
  6551.  
  6552. o next_buffer_mask() 
  6553. o prev_buffer_mask() 
  6554. o window_name 
  6555.  
  6556.  
  6557. ΓòÉΓòÉΓòÉ 9.12.9. Next ΓòÉΓòÉΓòÉ
  6558.  
  6559. In MDI mode, use the Next option to bring the next open window to the 
  6560. foreground, thus making the next window in the window list current. 
  6561.  
  6562. See also: 
  6563.  
  6564. o next_window() 
  6565. o prev_window() 
  6566.  
  6567.  
  6568. ΓòÉΓòÉΓòÉ 9.12.10. Previous ΓòÉΓòÉΓòÉ
  6569.  
  6570. In MDI mode, use the Previous option to bring the previous open window to the 
  6571. foreground, thus making the previous window in the list current. 
  6572.  
  6573. See also: 
  6574.  
  6575. o next_window() 
  6576. o prev_window() 
  6577.  
  6578.  
  6579. ΓòÉΓòÉΓòÉ 9.12.11. Close all ΓòÉΓòÉΓòÉ
  6580.  
  6581. Select Close all to quickly close every window.  (This option is effective both 
  6582. in MDI and non-MDI modes.)  Even though the windows are closed, the buffers are 
  6583. still displayed in the buffer list. 
  6584.  
  6585. See also: 
  6586.  
  6587. o delete_window() 
  6588.  
  6589.  
  6590. ΓòÉΓòÉΓòÉ 9.12.12. Toggle hex mode ΓòÉΓòÉΓòÉ
  6591.  
  6592. For editing non-text files, you can toggle hex mode with the Toggle hex mode 
  6593. menu item.  When hex mode is toggled on, your screen contains two columns: the 
  6594. hex characters at the left, and the matching ASCII characters on the right. 
  6595.  
  6596. Use the [Tab] key to move between the hex side (on the left) and the character 
  6597. side (on the right).  Both sides reflect the changes entered, regardless of the 
  6598. side they were entered into. 
  6599.  
  6600. To toggle hex editing off, you can press the [Esc] key (in all emulations 
  6601. except VI and Emacs) or select Toggle hex mode on the Window menu. 
  6602.  
  6603. Note: Color highlighting and text selection are disabled when hex mode is 
  6604. toggled on. 
  6605.  
  6606. See also: 
  6607.  
  6608. o toggle_dump_mode() 
  6609.  
  6610.  
  6611. ΓòÉΓòÉΓòÉ 9.13. Help menu ΓòÉΓòÉΓòÉ
  6612.  
  6613. Use the Help menu to access the Editor Help library. You can select from the 
  6614. following choices: 
  6615.  
  6616. Help index 
  6617.           Lists all help topics. 
  6618. General help 
  6619.           Displays an overview of the editor. 
  6620. Using help 
  6621.           Displays instructions for using help. 
  6622. Keyword help 
  6623.           Displays help for the keyword at the current cursor position.  If 
  6624.           help can not be found for the keyword, a "Linking not found" warning 
  6625.           is issued. 
  6626. Product information 
  6627.           Displays the version, copyright, product license number, and customer 
  6628.           name. 
  6629.  
  6630. See also: 
  6631.  
  6632. o display_help() 
  6633. o display_help_item() 
  6634. o about_dialog() 
  6635.  
  6636.  
  6637. ΓòÉΓòÉΓòÉ 9.14. Dialog List ΓòÉΓòÉΓòÉ
  6638.  
  6639. This dialog allows you to move through a list of file positions.  The buttons 
  6640. will become active when a selection from the list has been made. 
  6641.  
  6642. Available Buttons: 
  6643.  
  6644. Goto 
  6645.           Moves the cursor to the postion and buffer defined by the currently 
  6646.           selected item of the list. 
  6647. Next 
  6648.           Moves the cursor to the postion and buffer defined in the next item 
  6649.           of the list. 
  6650. Prev 
  6651.           Moves the cursor to the postion and buffer defined in the previous 
  6652.           item of the list. 
  6653. Delete 
  6654.           From the Bookmark List, this button Deletes the selected bookmark. 
  6655. Stop 
  6656.           While performing a compile, this button stops the compiler execution. 
  6657. Close 
  6658.           Closes the dialog, removing it from the screen and losing the data. 
  6659. Help 
  6660.           Displays this help message. 
  6661.  
  6662.  
  6663. ΓòÉΓòÉΓòÉ 10. Regular Expressions ΓòÉΓòÉΓòÉ
  6664.  
  6665. Regular expressions are special characters in a search value that let you 
  6666. specify character patterns to match rather than simple sequences of literal 
  6667. characters.  Regular expressions enable you to: 
  6668.  
  6669. o Specify a character set or range to be included during a search 
  6670.  
  6671. o Locate invisible characters such as tabs and carriage returns 
  6672.  
  6673. o Specify wild card matching (search with *, +, and ?) 
  6674.  
  6675. o Position the cursor within a search pattern 
  6676.  
  6677. o Find a string, limiting the search to either the beginning or end of a line 
  6678.  
  6679. o Match a string using "either/or" logic (alternation) 
  6680.  
  6681. o Specify match group 
  6682.  
  6683. o Specify replacement groups. 
  6684.  
  6685. When editing large files, the use of regular expressions can save time. The 
  6686. versatility of metacharacters provides unlimited flexibility when applied to 
  6687. the search and replace process.  Try testing your regular expressions against 
  6688. sample test data before using with production data. 
  6689.  
  6690. The following is a list of regular expressions and their meanings. 
  6691.  
  6692. Expression     Matches 
  6693. ^              Beginning of line 
  6694. $              End of line 
  6695. .              Any character except newline 
  6696. [ ]            Any one of the characters inside [ ] 
  6697. [^ ]           Any character in [ ] except those that follow the ^ 
  6698. [a-z]          Any character between a and z, inclusive 
  6699. [a-z-]         Any character between a and z, inclusive and the - character 
  6700. ?              Zero or one character of the preceding class 
  6701. *              Zero or more characters of the preceding class 
  6702. +              One or more characters of the preceding class 
  6703. &              When replacing, append change value to search value. 
  6704. <              Line up with the begining of a word as defined by 
  6705.                word_delimiter(). 
  6706. >              Line up with the end of a word as defined by word_delimiter(). 
  6707. |              Either last or next expression 
  6708. ( )            Define a group of expressions 
  6709. { }            Define a match group of expressions 
  6710. \t             Tab character 
  6711. \n             Newline character 
  6712. \c             Position cursor after matching 
  6713. \\             Literal backslash 
  6714.  
  6715. Many examples may be found in the PREDITOR/2 User's Guide 
  6716.  
  6717.  
  6718. ΓòÉΓòÉΓòÉ 10.1. What are tags? ΓòÉΓòÉΓòÉ
  6719.  
  6720. A tags file is a data file which lists identifiers (function names, variables, 
  6721. etc.) along with information on where each was defined within the source code. 
  6722. With a tags file in place, one can use the functions "tags" and "tags_auto" 
  6723. contained herein to "bring in" the appropriate source file and position the 
  6724. cursor at the definition. 
  6725.  
  6726. How does one build a tags file?  In addition to the two tags file building 
  6727. functions peltags_make() and ctags_make(), several commercial tags file 
  6728. building utilities exist which quickly build tags files for many languages. The 
  6729. tags file format used here is compatible with Moderne Software's PC-TAGS(tm) 
  6730. progam. 
  6731.  
  6732.  
  6733. ΓòÉΓòÉΓòÉ 10.2. Changing Settings ΓòÉΓòÉΓòÉ
  6734.  
  6735. Pages have default settings that you can customize to your preference; for 
  6736. example, you might want to change your emulation mode or the flags that are 
  6737. used to do a search.  To view or change the settings: 
  6738.  
  6739.  1. Click on Settings from the Options menu. 
  6740.  2. Select the settings you want to change by clicking on one of the tabs on 
  6741.     the right side of the notebook. (Editor, Window, or Buffer) 
  6742.  
  6743. You can change the settings on any page of the notebook.  You do not need to 
  6744. worry about saving the change.  This is done automatically when you exit the 
  6745. notebook.  There are several buttons at the bottom of each page.  Not all of 
  6746. the buttons are available on each page. The effects of pressing each button are 
  6747. described below. 
  6748.  
  6749. Undo 
  6750.           Changes the settings back to those that were active before the page 
  6751.           was displayed. 
  6752.  
  6753. Default 
  6754.           Changes the settings to the default settings.  The default settings 
  6755.           are either editor defined or user defined.  The user can define 
  6756.           default settings by pressing Make default when available. 
  6757.  
  6758. Make default 
  6759.           Saves the settings specified on the current page as default settings 
  6760.           for later use. 
  6761.  
  6762. Help 
  6763.           Displays a help screen for the current notebook page explaining the 
  6764.           settings in more detail. 
  6765.  
  6766. Some pages also have an Apply to all check box.  When this is selected, the 
  6767. current settings on the page are apllied to all of the relevent areas. 
  6768.  
  6769.  
  6770. ΓòÉΓòÉΓòÉ 11. Mouse Basics ΓòÉΓòÉΓòÉ
  6771.  
  6772.  If you prefer to use the mouse as you work, the information in the following 
  6773. sections describe the mouse activities that PREDITOR/2 supports. 
  6774.  
  6775. Mouse Actions 
  6776.  
  6777. Mouse Buttons 
  6778.  
  6779. Marking Blocks 
  6780.  
  6781. Positioning the Cursor with the Mouse 
  6782.  
  6783. Creating Windows 
  6784.  
  6785.  
  6786. ΓòÉΓòÉΓòÉ 11.1. Mouse Actions ΓòÉΓòÉΓòÉ
  6787.  
  6788. If you prefer to work using a mouse, the information in this section describes 
  6789. the mouse activities associated with PREDITOR/2 supports. 
  6790.  
  6791. The table below lists the basic mouse activities you can perform using 
  6792. PREDITOR/2.  The bold type names an activity you might want to perform, while 
  6793. the following regular type describes the corresponding action to complete the 
  6794. activity. 
  6795.  
  6796. Position cursor 
  6797.           Click in window. 
  6798.  
  6799. Mark text block 
  6800.           Click and drag up or down. 
  6801.  
  6802. Mark column block 
  6803.           Click and drag while holding [Ctrl]. 
  6804.  
  6805. Mark a single line 
  6806.           Click and drag across line while holding [Alt]. 
  6807.  
  6808. Mark multiple lines 
  6809.           Click and drag up or down while holding [Alt]. 
  6810.  
  6811. Select window 
  6812.           Click in desired window. 
  6813.  
  6814. Resize window 
  6815.           Click and drag on window border. 
  6816.  
  6817. Move window 
  6818.           Click and drag on window title bar. 
  6819.  
  6820. Line up or down 
  6821.           Click on scroll bar arrow. 
  6822.  
  6823. Page up or down 
  6824.           Click on the scroll bar above or below the scroll bar slider. 
  6825.  
  6826. Scroll through buffer (text) 
  6827.           Drag scroll bar elevator. 
  6828.  
  6829. Minimize window 
  6830.           Click on minimize icon. 
  6831.  
  6832. Maximize window 
  6833.           Click on maximize icon. 
  6834.  
  6835. Create window 
  6836.           Click and drag from bottom left to upper right. 
  6837.  
  6838.  
  6839. ΓòÉΓòÉΓòÉ 11.2. Mouse Buttons ΓòÉΓòÉΓòÉ
  6840.  
  6841. Because PREDITOR/2 is an OS/2-based application, the right mouse button is used 
  6842. nearly as often as the left.  However, when we do not distinguish between the 
  6843. buttons to be used, the left button is the default.  When the right button is 
  6844. to be used, it is clearly indicated.  PREDITOR/2 uses the standard click, drag, 
  6845. and drop techniques. 
  6846.  
  6847. If your mouse has three buttons rather than the typical two, you can add 
  6848. commands for the center button.  Refer to the "User Interface" chapter in the 
  6849. PEL Functions and Variables by Category manual. 
  6850.  
  6851.  
  6852. ΓòÉΓòÉΓòÉ 11.3. Positioning the cursor ΓòÉΓòÉΓòÉ
  6853.  
  6854. Use the mouse to move the cursor to a new location by positioning the mouse 
  6855. pointer in the desired location in the window and clicking.  If you click on a 
  6856. position within the window where the mouse cannot go, the cursor moves to the 
  6857. closest permissible position to that where you clicked the mouse. 
  6858.  
  6859. Using the technique described above, you can move the cursor to any location on 
  6860. the screen, even into another window.  Whatever window the cursor is placed in 
  6861. becomes the active window. 
  6862.  
  6863.  
  6864. ΓòÉΓòÉΓòÉ 11.4. Marking Blocks ΓòÉΓòÉΓòÉ
  6865.  
  6866. Marking text is useful for deleting or copying large areas of text.  To mark 
  6867. text, click and drag through the text you want to mark, releasing the mouse 
  6868. button when you come to the end of the block of text to be marked.  This type 
  6869. of block is often called a stream selection because the highlighted text flows 
  6870. from a starting point to an ending point. 
  6871.  
  6872. You can also mark a block of text without dragging the mouse.  To do this in 
  6873. CUA, position the cursor at the beginning of the text to be marked.  Move the 
  6874. mouse pointer to the end of the block of text to be marked, and hold down the 
  6875. [Shift] key while clicking the mouse. 
  6876.  
  6877. Marking a Column Block 
  6878.  
  6879. Sometimes it is necessary to delete only a margin or block indentation while 
  6880. not disturbing the rest of the text in the line.  This is easily accomplished 
  6881. by holding down the [Ctrl] key while selecting with the mouse.  This method of 
  6882. marking text, known as a column block, highlights text column by column, rather 
  6883. than across entire lines. 
  6884.  
  6885. Selecting a Full Line Block 
  6886.  
  6887. Typically when you mark text, wherever the cursor is positioned when you 
  6888. release the mouse button becomes the end of the block.  In this type of block, 
  6889. if you want to delete an entire line, you must make sure to drag through the 
  6890. entire line until you reach the end of the line.  In a full line block, you can 
  6891. select one or more entire lines easily.  To do this, hold down the [Alt] key 
  6892. while clicking and dragging. 
  6893.  
  6894. To mark just one line, hold down [Alt] and drag across a couple of characters 
  6895. on the line.  The entire line is immediately highlighted. 
  6896.  
  6897. To mark several lines, hold down [Alt] and drag up or down through the text 
  6898. until the desired lines are highlighted. 
  6899.  
  6900. Inclusive vs. Exclusive Blocks 
  6901.  
  6902. When you mark a block of text, you might notice that the character to which the 
  6903. mouse points is not included in the block.  This is known as an exclusive block 
  6904. because it excludes the character at the cursor.  By default, PREDITOR/2 makes 
  6905. exclusive blocks.  The exception to this is in column marked blocks, which are 
  6906. always inclusive, meaning that the character at the cursor is included in the 
  6907. block. 
  6908.  
  6909.  
  6910. ΓòÉΓòÉΓòÉ 11.5. Creating Windows ΓòÉΓòÉΓòÉ
  6911.  
  6912. If you are in MDI mode, you can use the mouse to create a new window. 
  6913.  
  6914. To create a new window with the mouse, 
  6915.  
  6916.  1. Position the mouse pointer, in the main PREDITOR/2 window, where you want 
  6917.     the bottom left corner of the window to be. 
  6918.  
  6919.  2. Click and drag diagonally in any direction, and release the button to 
  6920.     complete the new window. 
  6921.  
  6922. As long as you did not take up the whole window with your new window, you can 
  6923. make another new window using this technique.  If you have no room left to make 
  6924. a new window, simply resize your current windows. 
  6925.  
  6926. Note: When creating a window in this manner, the first corner defined must be 
  6927. outside any previously defined window.  If it is not, the mouse command will 
  6928. begin to mark text or perform some other mouse action. 
  6929.  
  6930.  
  6931. ΓòÉΓòÉΓòÉ 12. Miscellaneous dialogs ΓòÉΓòÉΓòÉ
  6932.  
  6933. You can receive more information on the following dialog boxes: 
  6934.  
  6935. o Special keys on prompts 
  6936. o Goto bookmark prompt 
  6937. o Place bookmark prompt 
  6938. o PVCS Get Dialog 
  6939. o PVCS Put Dialog 
  6940. o PVCS VDIFF Dialog 
  6941.  
  6942.  
  6943. ΓòÉΓòÉΓòÉ 12.1. Special keys on prompts ΓòÉΓòÉΓòÉ
  6944.  
  6945. The following keys are useful when working in any dialog box: 
  6946.  
  6947. [Up arrow]          Previous entry for this prompt 
  6948.  
  6949. [Down arrow]        Next entry for this prompt 
  6950.  
  6951. [Page Up]           List all entries made on this prompt.  Some histories are 
  6952.                     only for the current edit session, but some are saved by 
  6953.                     PREDITOR/2 
  6954.  
  6955. [Tab]               Completes the partially typed entry with a match from 
  6956.                     previous entries.  If more than one match is found, a list 
  6957.                     box of choices is presented. 
  6958.  
  6959.  
  6960. ΓòÉΓòÉΓòÉ 12.2. Buffer filter prompt ΓòÉΓòÉΓòÉ
  6961.  
  6962. Type a string to be used as a mask in the edit area.  Then press [Enter] or 
  6963. click on OK. 
  6964.  
  6965. See also: 
  6966.  
  6967. o Special keys on prompts 
  6968. o prompt_history() 
  6969.  
  6970.  
  6971. ΓòÉΓòÉΓòÉ 12.3. Change output name prompt ΓòÉΓòÉΓòÉ
  6972.  
  6973. Enter a new file name for the current buffer.  The buffer is saved under the 
  6974. new name, and the type information for the new extension is applied. 
  6975.  
  6976. See also: 
  6977.  
  6978. o Special keys on prompts 
  6979. o prompt_history() 
  6980. o Save as 
  6981.  
  6982.  
  6983. ΓòÉΓòÉΓòÉ 12.4. Debug query prompt ΓòÉΓòÉΓòÉ
  6984.  
  6985. Enter variable whose value you would like to query.  Then press [Enter] or 
  6986. click on OK 
  6987.  
  6988. See also: 
  6989.  
  6990. o Special keys on prompts 
  6991. o prompt_history() 
  6992.  
  6993.  
  6994. ΓòÉΓòÉΓòÉ 12.5. Prompt dialog ΓòÉΓòÉΓòÉ
  6995.  
  6996. Enter the information requested in the edit field.  For the editor to accept 
  6997. this information and continue, press [Enter] or click on OK. 
  6998.  
  6999. See also: 
  7000.  
  7001. o Special keys on prompts 
  7002. o prompt_history() 
  7003.  
  7004.  
  7005. ΓòÉΓòÉΓòÉ 12.6. Open prompt ΓòÉΓòÉΓòÉ
  7006.  
  7007. Type a file name in the edit area.  Then press [Enter] or click on OK. 
  7008.  
  7009. See also: 
  7010.  
  7011. o Special keys on prompts 
  7012. o create_buf_and_win() 
  7013. o edit_file() 
  7014. o prompt_history() 
  7015.  
  7016.  
  7017. ΓòÉΓòÉΓòÉ 12.7. Compile prompt ΓòÉΓòÉΓòÉ
  7018.  
  7019. Enter the compile command to be used on the current buffer.  To change the 
  7020. compiler assigned to the current type, or the default compile command, use the 
  7021. the Types page of the Settings notebook. Then press [Enter] or click on OK. 
  7022.  
  7023. See also: 
  7024.  
  7025. o Special keys on prompts 
  7026. o compile_buffer() 
  7027. o prompt_history() 
  7028. o Types 
  7029.  
  7030.  
  7031. ΓòÉΓòÉΓòÉ 12.8. Compiler name prompt ΓòÉΓòÉΓòÉ
  7032.  
  7033. Enter a compiler name in the edit field. Then press [Enter] or click on OK. 
  7034.  
  7035. See also: 
  7036.  
  7037. o Special keys on prompts 
  7038. o prompt_history() 
  7039. o Types 
  7040.  
  7041.  
  7042. ΓòÉΓòÉΓòÉ 12.9. Edit file prompt ΓòÉΓòÉΓòÉ
  7043.  
  7044. Type a file name in the edit area, then press [Enter] or click on OK. 
  7045.  
  7046. See also: 
  7047.  
  7048. o Special keys on prompts 
  7049. o create_buf_and_win() 
  7050. o edit_file() 
  7051. o prompt_history() 
  7052.  
  7053.  
  7054. ΓòÉΓòÉΓòÉ 12.10. Emacs bind command to key prompt ΓòÉΓòÉΓòÉ
  7055.  
  7056. Enter a command to bind to a key.  (This command may be a named keyboard 
  7057. macro.) To bind the key, press [Enter] or click on OK. 
  7058.  
  7059. See also: 
  7060.  
  7061. o Special keys on prompts 
  7062. o prompt_history() 
  7063.  
  7064.  
  7065. ΓòÉΓòÉΓòÉ 12.11. Emacs change directory prompt ΓòÉΓòÉΓòÉ
  7066.  
  7067. Enter the directory you want to become the new current directory, then press 
  7068. [Enter] or click on OK. 
  7069.  
  7070. See also: 
  7071.  
  7072. o Special keys on prompts 
  7073. o prompt_history() 
  7074.  
  7075.  
  7076. ΓòÉΓòÉΓòÉ 12.12. Emacs filter prompt ΓòÉΓòÉΓòÉ
  7077.  
  7078. Enter the operating system command through which to filter the selected region. 
  7079. Then press [Enter] or click on OK. 
  7080.  
  7081. See also: 
  7082.  
  7083. o Special keys on prompts 
  7084. o prompt_history() 
  7085.  
  7086.  
  7087. ΓòÉΓòÉΓòÉ 12.13. Emacs prefix rectangle prompt ΓòÉΓòÉΓòÉ
  7088.  
  7089. Enter a string to insert on each line at the left edge of the defined 
  7090. rectangle.  Then press [Enter] or click on OK. 
  7091.  
  7092. See also: 
  7093.  
  7094. o Special keys on prompts 
  7095. o prompt_history() 
  7096.  
  7097.  
  7098. ΓòÉΓòÉΓòÉ 12.14. Name keyboard macro prompt ΓòÉΓòÉΓòÉ
  7099.  
  7100. Enter a string to use as a reference to the last defined keyboard macro. The 
  7101. macro can then be replayed by name. 
  7102.  
  7103. See also: 
  7104.  
  7105. o Special keys on prompts 
  7106. o prompt_history() 
  7107.  
  7108.  
  7109. ΓòÉΓòÉΓòÉ 12.15. Emacs replace buffer prompt ΓòÉΓòÉΓòÉ
  7110.  
  7111. Enter the name of the file you want to open.  The specified file replaces the 
  7112. current buffer in the buffer list. Then press [Enter] or click on OK. 
  7113.  
  7114. See also: 
  7115.  
  7116. o Special keys on prompts 
  7117. o prompt_history() 
  7118.  
  7119.  
  7120. ΓòÉΓòÉΓòÉ 12.16. Emacs prefix line prompt ΓòÉΓòÉΓòÉ
  7121.  
  7122. Enter a string to insert at the beginning of each new line.  Then press [Enter] 
  7123. or click on OK. 
  7124.  
  7125. See also: 
  7126.  
  7127. o Special keys on prompts 
  7128. o prompt_history() 
  7129.  
  7130.  
  7131. ΓòÉΓòÉΓòÉ 12.17. File grep prompt ΓòÉΓòÉΓòÉ
  7132.  
  7133. Type the string to search for, and press [Enter] or click on OK.  All matching 
  7134. strings in the file list will be found and listed in a dialog list box. 
  7135.  
  7136. See also: 
  7137.  
  7138. o Special keys on prompts 
  7139. o fgrep() 
  7140. o search() 
  7141. o prompt_history() 
  7142.  
  7143.  
  7144. ΓòÉΓòÉΓòÉ 12.18. Function binding prompt ΓòÉΓòÉΓòÉ
  7145.  
  7146. Enter the name of a function, and press [Enter] or click on OK.  The editor 
  7147. will display the keys that are bound to that function. 
  7148.  
  7149. See also: 
  7150.  
  7151. o Special keys on prompts 
  7152. o prompt_history() 
  7153.  
  7154.  
  7155. ΓòÉΓòÉΓòÉ 12.19. Goto bookmark prompt ΓòÉΓòÉΓòÉ
  7156.  
  7157. Type a bookmark name in the edit area.  To move the cursor to this position, 
  7158. then press [Enter] or click on OK. 
  7159.  
  7160. See also: 
  7161.  
  7162. o Special keys on prompts 
  7163. o goto_bookmark() 
  7164. o prompt_history() 
  7165.  
  7166.  
  7167. ΓòÉΓòÉΓòÉ 12.20. Goto line or mark prompt ΓòÉΓòÉΓòÉ
  7168.  
  7169. Type a bookmark name or a linenumber to go to in the edit area, then press 
  7170. [Enter] or click on OK. 
  7171.  
  7172. See also: 
  7173.  
  7174. o Special keys on prompts 
  7175. o goto_bookmark() 
  7176. o goto_line() 
  7177. o prompt_history() 
  7178.  
  7179.  
  7180. ΓòÉΓòÉΓòÉ 12.21. Grep prompt ΓòÉΓòÉΓòÉ
  7181.  
  7182. Type a string to search for press [Enter] or click on OK.  All matching strings 
  7183. in the current buffer will be found and listed in a dialog list box. 
  7184.  
  7185. See also: 
  7186.  
  7187. o Special keys on prompts 
  7188. o grep() 
  7189. o search() 
  7190. o prompt_history() 
  7191.  
  7192.  
  7193. ΓòÉΓòÉΓòÉ 12.22. Insert prompt ΓòÉΓòÉΓòÉ
  7194.  
  7195. Type a file name in the edit area, then press [Enter] or click on OK. 
  7196.  
  7197. See also: 
  7198.  
  7199. o Special keys on prompts 
  7200. o prompt_history() 
  7201. o read_file() 
  7202.  
  7203.  
  7204. ΓòÉΓòÉΓòÉ 12.23. Line draw prompt ΓòÉΓòÉΓòÉ
  7205.  
  7206. Enter one of the displayed line types in the edit area, then press [Enter] or 
  7207. click on OK. 
  7208.  
  7209. See also: 
  7210.  
  7211. o Special keys on prompts 
  7212. o prompt_history() 
  7213.  
  7214.  
  7215. ΓòÉΓòÉΓòÉ 12.24. Load key file prompt ΓòÉΓòÉΓòÉ
  7216.  
  7217. Type a file name in that was used to save keyboard macros, then press [Enter] 
  7218. or click on OK. 
  7219.  
  7220. See also: 
  7221.  
  7222. o Special keys on prompts 
  7223. o playback() 
  7224. o prompt_history() 
  7225. o record() 
  7226.  
  7227.  
  7228. ΓòÉΓòÉΓòÉ 12.25. Place bookmark prompt ΓòÉΓòÉΓòÉ
  7229.  
  7230. Type a bookmark name in the edit area.  To set a bookmark at the current cursor 
  7231. position with that name, then press [Enter] or click on OK. 
  7232.  
  7233. See also: 
  7234.  
  7235. o Special keys on prompts 
  7236. o place_bookmark() 
  7237. o prompt_history() 
  7238.  
  7239.  
  7240. ΓòÉΓòÉΓòÉ 12.26. PEL tags prompt ΓòÉΓòÉΓòÉ
  7241.  
  7242. Enter a symbol to be looked up in the .AE file.  If the symbol has multiple 
  7243. completions, you will be presented with a list.  The file that contains the 
  7244. symbol definition will be loaded and the cursor positioned on the definition. 
  7245.  
  7246. See also: 
  7247.  
  7248. o Special keys on prompts 
  7249. o peltags() 
  7250. o peltags_auto() 
  7251.  
  7252.  
  7253. ΓòÉΓòÉΓòÉ 12.27. Get Dialog ΓòÉΓòÉΓòÉ
  7254.  
  7255. The Get command retrieves a file from your version control system.  PREDITOR/2 
  7256. defaults to a PVCS get command that places a lock on the file. 
  7257.  
  7258. If you are not using PVCS or do not want a lock, you may modify the command in 
  7259. the dialog box, or change the default on the VCS page of the Settings notebook. 
  7260. Change or leave the command as it is, and press [Enter] or click on OK 
  7261.  
  7262. The file is then retrieved from the version control system. 
  7263.  
  7264. See also: 
  7265.  
  7266. o get_command 
  7267. o Special keys on prompts 
  7268. o prompt_history() 
  7269. o VCS (Version Control System) 
  7270.  
  7271.  
  7272. ΓòÉΓòÉΓòÉ 12.28. Put Dialog ΓòÉΓòÉΓòÉ
  7273.  
  7274. The Put command releases the lock on the file and returns it to the version 
  7275. control system. 
  7276.  
  7277. The dialog box shows the Put command for your current file.  For example, if 
  7278. your file is titled "MY_FILE.PEL", and your put_command is "put -u " the 
  7279. command in the Put dialog box would be  put -u MY_FILE.PEL.  If this command is 
  7280. accurate, simply press [Enter]  or click on OK  Otherwise, first change the Put 
  7281. command to your needs. 
  7282.  
  7283. The default put command may be modified on the VCS page of the Settings 
  7284. notebook. 
  7285.  
  7286. The file is returned to the version control system, and accessible to any 
  7287. participating user. 
  7288.  
  7289. See also: 
  7290.  
  7291. o put_command 
  7292. o Special keys on prompts 
  7293. o prompt_history() 
  7294. o VCS (Version Control System) 
  7295.  
  7296.  
  7297. ΓòÉΓòÉΓòÉ 12.29. VDIFF Dialog ΓòÉΓòÉΓòÉ
  7298.  
  7299. The VDIFF compares local files to those in your version control system. 
  7300.  
  7301. See also: 
  7302.  
  7303. o prompt_history() 
  7304. o vdiff_command 
  7305.  
  7306.  
  7307. ΓòÉΓòÉΓòÉ 12.30. Replace prompt ΓòÉΓòÉΓòÉ
  7308.  
  7309. Enter a string to replace the search search string. Then press [Enter] or click 
  7310. on OK. 
  7311.  
  7312.  To see a table of Regular expressions press [Ctrl][R]. 
  7313.  
  7314. See also: 
  7315.  
  7316. o Special keys on prompts 
  7317. o prompt_history() 
  7318. o Regular expressions 
  7319. o replace() 
  7320.  
  7321.  
  7322. ΓòÉΓòÉΓòÉ 12.31. Search prompt ΓòÉΓòÉΓòÉ
  7323.  
  7324. Enter a string to search for, then press [Enter] or click on OK. 
  7325.  
  7326.  To get a table of Regular expressions press [Ctrl][R]. 
  7327.  
  7328.  To get help on regular expressions press [Ctrl][F1]. 
  7329.  
  7330. See also: 
  7331.  
  7332. o Special keys on prompts 
  7333. o prompt_history() 
  7334. o Regular expressions 
  7335. o search() 
  7336.  
  7337.  
  7338. ΓòÉΓòÉΓòÉ 12.32. Tabs prompt ΓòÉΓòÉΓòÉ
  7339.  
  7340. Enter new tab stops, then press [Enter] or click on OK. 
  7341.  
  7342. See also: 
  7343.  
  7344. o buffer_tabs 
  7345. o Special keys on prompts 
  7346. o prompt_history() 
  7347.  
  7348.  
  7349. ΓòÉΓòÉΓòÉ 12.33. Type name prompt ΓòÉΓòÉΓòÉ
  7350.  
  7351. Enter a type name in the edit field.  A type name must be valid for use as part 
  7352. of a function name.  Below is a list of criteria: 
  7353.  
  7354. o Can only contain alpha-numeric ascii characters, and the "_" character. 
  7355. o The first character may not be a number. 
  7356. Press [Enter] or click on OK to accept your name. 
  7357.  
  7358. See also: 
  7359.  
  7360. o Special keys on prompts 
  7361. o prompt_history() 
  7362. o Types 
  7363.  
  7364.  
  7365. ΓòÉΓòÉΓòÉ 12.34. Multiple buffer grep prompt ΓòÉΓòÉΓòÉ
  7366.  
  7367. Type a string to search for press [Enter] or click on OK.  All matching strings 
  7368. in the currently loaded buffers will be found and listed in a dialog list box. 
  7369.  
  7370. See also: 
  7371.  
  7372. o Special keys on prompts 
  7373. o wgrep() 
  7374. o search() 
  7375. o prompt_history() 
  7376.  
  7377.  
  7378. ΓòÉΓòÉΓòÉ 12.35. Write buffer as prompt ΓòÉΓòÉΓòÉ
  7379.  
  7380. Enter a file name to save the current buffer under and press [Enter] or click 
  7381. on OK. 
  7382.  
  7383. See also: 
  7384.  
  7385. o Special keys on prompts 
  7386. o prompt_history() 
  7387. o write_buffer() 
  7388.  
  7389.  
  7390. ΓòÉΓòÉΓòÉ 12.36. Write key file prompt ΓòÉΓòÉΓòÉ
  7391.  
  7392. Enter a file name to store keyboard macros and press [Enter] or click on OK. 
  7393.  
  7394. See also: 
  7395.  
  7396. o Special keys on prompts 
  7397. o playback() 
  7398. o prompt_history() 
  7399. o record() 
  7400.  
  7401.  
  7402. ΓòÉΓòÉΓòÉ 13. Type Identifiers ΓòÉΓòÉΓòÉ
  7403.  
  7404. A type identifier precedes each of the variables and functions listed in the 
  7405. categories below.  This tells you whether the variable stores a string (str) or 
  7406. if the function returns an integer (int) value.  Since PEL automatically 
  7407. determines types, these type identifiers are used for informative purposes 
  7408. only.  Do not use these identifiers in your programming, as they have no 
  7409. meaning and serve no purpose in PEL source code.  PEL will keep track of types 
  7410. for you. 
  7411.  
  7412. Among the type identifiers used are bufid, fileid, funcid, keymapid, markid and 
  7413. winid.  These are special integers that identify specific buffers, functions, 
  7414. keymaps, bookmarks and windows, respectively.  These special integers may not 
  7415. be intermixed nor substituted with ordinary integers. 
  7416.  
  7417. In other words, you may not make up values for buffer and window ids and then 
  7418. use them.  These values must be received from the editor system through their 
  7419. appropriate creating function.  The any type indicates that the associated 
  7420. value is not restricted to a particular type, while the void type informs you 
  7421. that no value is returned. 
  7422.  
  7423.  
  7424. ΓòÉΓòÉΓòÉ 14. PEL Functions ΓòÉΓòÉΓòÉ
  7425.  
  7426. Programming Usage 
  7427.  
  7428. When programming in the extension language, PEL, this function and variable 
  7429. look-up is indispensable.  This part of the Library Reference Manual will guide 
  7430. you in determining everything from what values are allowed as arguments to a 
  7431. function, to how to interpret the results of the function. 
  7432.  
  7433. You will find that the editor has substantially more "built-in" or global 
  7434. variables than most (if not all) editors and editor languages.  These variables 
  7435. help provide the degree of flexibility and configurability that makes the 
  7436. editor such an attractive editing environment for programmers. 
  7437.  
  7438. Most of the variables and functions listed here are primitives.  That is, they 
  7439. are parts of the editor that are made available to the user.  The balance of 
  7440. the functions and variables are written in the editor's extension language, 
  7441. PEL.  Those functions and variables that are defined and written in the 
  7442. extension language will be found in the source code provided. Function Library 
  7443. Source You are encouraged to look through the source code to better understand 
  7444. the functions and variables there, and the extension language in general.  You 
  7445. may even change the library source code, but you should carefully consider the 
  7446. consequences before doing so.  The editor relies on the functions described 
  7447. here to function the way they are described.  Changing the way they operate may 
  7448. render seemingly unrelated features inoperative.  It is recommended that 
  7449. instead you make copies of the functions or variables using different names and 
  7450. modify the new ones rather than the originals. 
  7451.  
  7452. It is not practical to describe all of the functions defined in the source code 
  7453. provided.  Those not described may be specific to one or more of the emulation 
  7454. packages, trivial or subject to change.  When you set out to perform a new 
  7455. programming task, it is often useful to ask yourself if this is a commonly 
  7456. required task or one which the software already performs.  If the answer is 
  7457. yes, the first step is to check this library reference for something you can 
  7458. use.  If this reference does not yield the desired function, you may find a 
  7459. similar function you can adapt, if you investigate the function library source 
  7460. code. 
  7461.  
  7462. REFERENCE ITEM FORMAT 
  7463.  
  7464. This section describes the format used for each item described in this library 
  7465. reference.  It will guide you determining the meaning of each component of the 
  7466. item description.  We will dissect a variable and a function item listing. 
  7467.  
  7468.  Function  Items: Let us first consider an example function
  7469. description:
  7470.  
  7471. fclose()
  7472.  
  7473. ____________
  7474.  
  7475. Purpose: Close the file associated with a handle.
  7476.  
  7477. ____________
  7478.  
  7479. Syntax:  int fclose(fileid handle)
  7480.  
  7481. ____________
  7482.  
  7483. Description:
  7484. fclose() closes the file indicated by the handle argument.  The
  7485. handle argument must be a file handle created with fopen().
  7486.  
  7487. ____________
  7488.  
  7489. Value returned: fclose() returns a non-zero (TRUE) value
  7490. if successful.  Upon failure, zero or FALSE is returned.
  7491.  
  7492. ____________
  7493. Compatibility: Return values differ from those of the like-named C function
  7494. supported by major compilers.
  7495.  
  7496. ____________
  7497.  
  7498. See also:  fopen()
  7499.  
  7500. Function descriptions begin with the item title line, which is a box containing 
  7501. the name of the function on the left.  Functions are always followed by left 
  7502. and right parentheses.  This serves to distinguish a function description from 
  7503. that of a variable. 
  7504.  
  7505. Purpose: The body of the description begins with the purpose line.  It 
  7506. summarizes the job performed by the function in a single line. 
  7507.  
  7508. Syntax: Following a line containing an underline is the syntax line.  The 
  7509. syntax line contains a usage synopsis of the function.  The value returned by 
  7510. the function is indicated by a type identifier to the right of the Syntax: 
  7511. label.  Since PEL automatically determines types, these type identifiers are 
  7512. used for informative purposes only. 
  7513.  
  7514. Note! 
  7515.  
  7516. Do not use these identifiers in your programming.  These identifiers have no 
  7517. meaning and serve no purpose in  extension language source code. 
  7518.  
  7519. Among the type identifiers used are bufid, fileid, funcid, keymapid, markid and 
  7520. winid.  These are special integers that identify specific buffers, functions, 
  7521. keymaps, bookmarks and windows respectively.  These special integers may not be 
  7522. intermixed nor substituted with ordinary integers. 
  7523.  
  7524. The int identifier signifies a 32 bit signed integer.  The str identifier 
  7525. denotes a character string.  A character string may contain up to 8000 
  7526. characters and is not terminated by a NULL but rather may contain NULLS 
  7527. followed by other characters.  The any type indicates that the associated value 
  7528. is not restricted to any type, while the void type informs you that no value is 
  7529. returned. 
  7530.  
  7531. If the function accepts or requires any arguments, they are shown in italics 
  7532. between the parentheses of the function.  Arguments not enclosed in square 
  7533. brackets are required.  Arguments that are enclosed in square brackets may be 
  7534. omitted.  Nested square brackets are used to indicate what other arguments are 
  7535. required or permitted when an optional argument is used. 
  7536.  
  7537. Description: The description portion of the item elaborates on the purpose and 
  7538. defines the arguments used by the function.  Programming tips and examples are 
  7539. often included in this component of the item. 
  7540.  
  7541. Value returned: The value returned by the function is further described in this 
  7542. part of the item description.  The method of determining if the function has 
  7543. reached a successful completion is detailed as necessary.  This will assist you 
  7544. in controlling the flow of your program. 
  7545.  
  7546. Compatibility: 
  7547.  
  7548. The compatibility and "see also" components of the item description are 
  7549. optional, appearing in many but not all descriptions.  The compatibility 
  7550. component is included when it is useful to note the differences and 
  7551. similarities between the function described and a like-named C language 
  7552. function.  The "see also" component appears in the item description to point 
  7553. out related functions or variables whose description may throw further light on 
  7554. the subject. 
  7555.  
  7556. A couple of words that occasionally appear in the title line of the item 
  7557. description are AWK and PEL.  AWK is used to indicate that the variable or 
  7558. function has been inherited from the AWK programming language.  The PEL word is 
  7559. used to identify functions and variables that are defined in the extension 
  7560. language (PEL) source code. 
  7561.  
  7562. The last difference between the variable and function item descriptions is that 
  7563. instead of a synopsis of the syntax used by the function there is a type 
  7564. declaration.  Once again you are reminded that types are never declared in the 
  7565. editor's extension language.  These type declarations in the manual serve an 
  7566. informative purpose only.  If you put a similar declaration in your function 
  7567. source code you will receive an error from the PEL compiler. 
  7568.  
  7569.  
  7570. ΓòÉΓòÉΓòÉ 14.1. Bit Manipulation ΓòÉΓòÉΓòÉ
  7571.  
  7572. You perform bit-wise operations in PEL by using functions rather than by 
  7573. operators, as you would in many other languages.  You use them to turn bits on 
  7574. and off, generally to change the setting of a flag controlling some editor 
  7575. feature. These functions, described below do not modify the values passed as 
  7576. arguments but rather return the modified value. 
  7577.  
  7578. One of the most common tasks requiring bit manipulation is that of modifying 
  7579. variables such as buffer_flags and window_flags, that store a series of buffer 
  7580. or window attributes.  The set_flag_bits() function is provided to make this 
  7581. task more convenient. 
  7582.  
  7583.           Performs a bit-wise AND on two numbers. 
  7584. not() 
  7585.           Performs a bit-wise NOT on a number. 
  7586. or() 
  7587.           Performs a bit-wise OR on two numbers. 
  7588. set_flag_bits() 
  7589.           Modify a bit or bits in a flag variable. 
  7590. shiftl() 
  7591.           Shifts the bits of a number to the left. 
  7592. shiftr() 
  7593.           Shifts the bits of a number to the right. 
  7594. xor() 
  7595.           Performs a bit-wise OR on two numbers. 
  7596.  
  7597.  
  7598. ΓòÉΓòÉΓòÉ 14.1.1. and() ΓòÉΓòÉΓòÉ
  7599.  
  7600. and()   Primitive 
  7601.  
  7602. Purpose: Performs a bit-wise AND on two numbers. 
  7603.  
  7604. ____________ 
  7605.  
  7606. Syntax:  int and(int num1, int num2) 
  7607.  
  7608. ____________ 
  7609.  
  7610. Description: The and() function compares the bits of the num1 and num2 
  7611. arguments and derives a third value from them.  The argument values remain 
  7612. unchanged. 
  7613.  
  7614. This function operates on 32 bit values. If the arguments are not 32 bit 
  7615. numbers, they are converted to this form for the purpose of this function. 
  7616.  
  7617. ____________ 
  7618.  
  7619. Value returned: 
  7620.  
  7621. Each bit in the value returned by the and() function is SET ( 1 ) if the 
  7622. corresponding bits in both arguments are set.  Otherwise, the bit is RESET ( 0 
  7623. ). 
  7624.  
  7625.  
  7626. ΓòÉΓòÉΓòÉ 14.1.2. not() ΓòÉΓòÉΓòÉ
  7627.  
  7628. not()   Primitive 
  7629.  
  7630. Purpose: Performs a bit-wise NOT on a number. 
  7631.  
  7632. ____________ 
  7633.  
  7634. Syntax: int not(int num) 
  7635.  
  7636. ____________ 
  7637.  
  7638. Description: The not() function derives a value from the num argument that is 
  7639. its compliment.  The argument value remains unchanged. 
  7640.  
  7641. This function operates on a 32 bit value argument. If the argument is not a 32 
  7642. bit number, it is converted to this form for the purpose of this function. 
  7643.  
  7644. ____________ 
  7645.  
  7646. Value returned: Each bit in the value returned by the not() function is SET ( 1 
  7647. ) only if the corresponding bit in the argument is not set.  Otherwise, the bit 
  7648. is RESET  ( 0 ). 
  7649.  
  7650.  
  7651. ΓòÉΓòÉΓòÉ 14.1.3. or() ΓòÉΓòÉΓòÉ
  7652.  
  7653. or()   Primitive 
  7654.  
  7655. Purpose: Performs a bit-wise OR on two numbers. 
  7656.  
  7657. ____________ 
  7658.  
  7659. Syntax: int or(int num1, int num2) 
  7660.  
  7661. ____________ 
  7662.  
  7663. Description: The or() function compares the bits of the num1 and num2 arguments 
  7664. and derives a third value from them. The argument values remain unchanged. 
  7665.  
  7666. This function operates on 32 bit values.  If the arguments are not 32 bit 
  7667. numbers, they are converted to this form for the purpose of this function. 
  7668.  
  7669. ____________ 
  7670.  
  7671. Value returned: Each bit in the value returned by the or() function is SET ( 1 
  7672. ) if the corresponding bit in either argument is set.  Otherwise, the bit is 
  7673. RESET ( 0 ). 
  7674.  
  7675.  
  7676. ΓòÉΓòÉΓòÉ 14.1.4. set_flag_bits() ΓòÉΓòÉΓòÉ
  7677.  
  7678. set_flag_bits()   PEL 
  7679.  
  7680. Purpose: Modify a bit or bits in a flag variable. 
  7681.  
  7682. ____________ 
  7683.  
  7684. Syntax: int set_flag_bits(int flag, int mask, int value) 
  7685.  
  7686. ____________ 
  7687.  
  7688. Description: The set_flag_bits() function simplifies the task of changing some 
  7689. bits of a flag variable while leaving others unchanged.  Flag variables include 
  7690. buffer_flags, window_flags and their corresponding default_... variables.  In 
  7691. addition, the search_flags variable falls in this category. 
  7692.  
  7693. The flag argument is the flag variable or value you wish to modify.  The mask 
  7694. argument indicates which bits are to be modified and which may be preserved. 
  7695. The value argument contains the new value for the bits to be changed.  The bits 
  7696. of mask that are SET ( 1 ) are those that are allowed to change.  The bits of 
  7697. mask that are RESET ( 0 ) will be "masked off" and will not change. 
  7698.  
  7699. The mask and value arguments are normally descriptive labels corresponding to 
  7700. the mask and value desired.  These labels may be obtained from the description 
  7701. of the variable you are modifying. 
  7702.  
  7703. ____________ 
  7704.  
  7705. Value returned: The value returned by the set_flag_bits() function is the new 
  7706. value of the flag variable.  Since the flag argument itself is not modified, 
  7707. this value must be assigned to the flag variable in order to change its value. 
  7708.  
  7709. ____________ 
  7710.  
  7711. Example: 
  7712.  
  7713. window_flags = set_flag_bits(window_flags, WINDOW_CHARS, WINDOW_HEX)
  7714.  
  7715.  
  7716. ΓòÉΓòÉΓòÉ 14.1.5. shiftl() ΓòÉΓòÉΓòÉ
  7717.  
  7718. shiftl()   Primitive 
  7719.  
  7720. Purpose: Shifts the bits of a number to the left. 
  7721.  
  7722. ____________ 
  7723.  
  7724. Syntax: int shiftl(int num, int count) 
  7725.  
  7726. ____________ 
  7727.  
  7728. Description: The shiftl() function derives a new value from the num argument by 
  7729. shifting its bits to the left.  The number of positions the bits of num are 
  7730. shifted is indicated by the count argument.  Bits that are shifted beyond the 
  7731. most significant position, bit 31, are lost. 
  7732.  
  7733. ____________ 
  7734.  
  7735. Value returned: The value returned by shiftl() is the new value derived by 
  7736. shifting the bits of the num argument. 
  7737.  
  7738.  
  7739. ΓòÉΓòÉΓòÉ 14.1.6. shiftr() ΓòÉΓòÉΓòÉ
  7740.  
  7741. shiftr()   Primitive 
  7742.  
  7743. Purpose: Shifts the bits of a number to the right. 
  7744.  
  7745. ____________ 
  7746.  
  7747. Syntax: int shiftr(int num, int count) 
  7748.  
  7749. ____________ 
  7750.  
  7751. Description: The shiftr() function derives a new value from the num argument by 
  7752. shifting its bits to the right. The number of positions the bits of num are 
  7753. shifted is indicated by the count argument.  Bits that are shifted beyond the 
  7754. least significant position, bit 0, are lost. 
  7755.  
  7756. ____________ 
  7757.  
  7758. Value returned: The value returned by shiftr() is the new value derived by 
  7759. shifting the bits of the num argument. 
  7760.  
  7761.  
  7762. ΓòÉΓòÉΓòÉ 14.1.7. xor() ΓòÉΓòÉΓòÉ
  7763.  
  7764. xor()   Primitive 
  7765.  
  7766. Purpose: Performs a bit-wise OR on two numbers. 
  7767.  
  7768. ____________ 
  7769.  
  7770. Syntax: int xor(int num1, int num2) 
  7771.  
  7772. ____________ 
  7773.  
  7774. Description: The xor() function compares the bits of the num1 and num2 
  7775. arguments and derives a third value from them.  The argument values remain 
  7776. unchanged. 
  7777.  
  7778. This function operates on 32 bit values.  If the arguments are not 32 bit 
  7779. numbers, they are converted to this form for the purpose of this function. 
  7780.  
  7781. ____________ 
  7782.  
  7783. Value returned: Each bit in the value returned by the xor() function is SET ( 1 
  7784. ) if the corresponding bit in one (and only one) of the arguments is set.  If 
  7785. the corresponding bit is set in both or neither of the arguments is set, the 
  7786. bit is RESET ( 0 ). 
  7787.  
  7788.  
  7789. ΓòÉΓòÉΓòÉ 14.2. Blocks and Bookmarks ΓòÉΓòÉΓòÉ
  7790.  
  7791. You can keep track of particular locations within a buffer using bookmarks. A 
  7792. selected block or region of text is surrounded by two special bookmarks 
  7793. reserved for that purpose.  Marking locations within a buffer can be useful for 
  7794. other reasons, too.  It may be useful to mark a location to simplify returning 
  7795. to that location, or so that a region of text may later be marked as a block. 
  7796. Bookmarks may even mark a location in virtual space. 
  7797.  
  7798. Virtual space is the space outside the line boundaries of a buffer or that 
  7799. space created by a tab expansion.  You can find a more complete description of 
  7800. virtual space in the "Motion" chapter. 
  7801.  
  7802. Bookmarks are more than notations of line and column number.  They try to 
  7803. maintain their association with surrounding text.  Bookmarks move when you 
  7804. insert, move and delete text.  If you delete the text containing one or more 
  7805. bookmarks, the bookmarks remain where the text previously appeared.  If you 
  7806. undo the delete operation later, SPE does not restore the bookmarks to their 
  7807. previous positions in the text.  Instead, they remain clustered at the 
  7808. beginning of the restored text. 
  7809.  
  7810. When you position bookmarks in virtual space, they may have difficulty 
  7811. remaining associated with the surrounding text if you insert text in that 
  7812. portion of virtual space. 
  7813.  
  7814. begin_selection() 
  7815.           To begin a text selection. 
  7816. create_mark() 
  7817.           Place a bookmark at a specified buffer location. 
  7818. delete_all_marks() 
  7819.           Undefine all bookmarks previously defined. 
  7820. delete_mark() 
  7821.           Dispose of a specified bookmark. 
  7822. distance_between_marks() 
  7823.           Tells number of characters between specified marks. 
  7824. drop_anchor() 
  7825.           Place a selection mark at the current position. 
  7826. end_selection 
  7827.           Ends the current text selection. 
  7828. hilight_word() 
  7829.           To highlight the word at the current cursor location 
  7830. hilight_word_mouse() 
  7831.           To highlight the word at the current cursor location, suitable for 
  7832.           use with the mouse 
  7833. lines_between_marks() 
  7834.           Tells the number of lines between two bookmarks. 
  7835. mark_column() 
  7836.           Reports the column in which a given bookmark occurs. 
  7837. mark_defined() 
  7838.           Test to determine if a certain bookmark is in use. 
  7839. mark_line() 
  7840.           Reports the line in which a given bookmark occurs. 
  7841. mark_paragraph() 
  7842.           Selects the paragraph in which the cursor is found. 
  7843. marked_region_size() 
  7844.           Tells size of selected block. 
  7845. marks_in_buffer() 
  7846.           Counts the number of bookmarks in use for a buffer. 
  7847. next_mark() 
  7848.           Move cursor to the next bookmark in current buffer. 
  7849. pick_unused_mark() 
  7850.           Select a bookmark number not currently in use. 
  7851. place_bookmark() 
  7852.           Mark a location and buffer for later reference. 
  7853. prev_mark() 
  7854.           Move cursor to a previous bookmark in current buffer. 
  7855. raise_anchor() 
  7856.           Remove the most recently placed selection marker. 
  7857. remove_selection() 
  7858.           To remove the current selection. 
  7859. selection_mark_bottom() 
  7860.           To retreive the markid of the bottom corner of the current selection. 
  7861. selection_mark_top() 
  7862.           To retreive the markid of the top corner of the current selection. 
  7863. selection_type() 
  7864.           To retreive the type of the current selection 
  7865. set_column_mark() 
  7866.           Begins a column selection at the current position. 
  7867. set_exclusive_mark() 
  7868.           Begins an exclusive selection at the current position. 
  7869. set_inclusive_mark() 
  7870.           Begins an inclusive selection at the current position. 
  7871. set_line_mark() 
  7872.           Begins a line selection at the current position. 
  7873. swap_marks() 
  7874.           Exchange the locations of two bookmarks in the buffer. 
  7875. toggle_anchor() 
  7876.           Toggle placement of selection mark at current position. 
  7877. write_block_key() 
  7878.           Write block to specified file. 
  7879. write_marked_block() 
  7880.           Write the marked block of text to a named file. 
  7881.  
  7882.  
  7883. ΓòÉΓòÉΓòÉ 14.2.1. begin_selection() ΓòÉΓòÉΓòÉ
  7884.  
  7885. begin_selection()   Primitive 
  7886.  
  7887. Purpose:  To begin a text selection. 
  7888.  
  7889. ____________ 
  7890.  
  7891. Syntax:   begin_selection( [marktype type, [markid mark]] ) 
  7892.  
  7893. ____________ 
  7894.  
  7895. Arguments: 
  7896.  
  7897. o type_of_selection - the type of _SELECTION you want. 
  7898. o mark - mark to use as the beginning corner of the selection, 
  7899.  
  7900. Description: This function replaces the old drop_anchor() function, starting a 
  7901. selection of a particular type. 
  7902.  
  7903. Note:   Although begin_selection() does return a success/failure code, it will 
  7904. only fail if the system is out of memory, which should never happen in OS/2. 
  7905.  
  7906. See also:  end_selection, selection_type() 
  7907.  
  7908. ____________ 
  7909.  
  7910. Value returned:  TRUE  -  selection started FALSE -  selection not started 
  7911.  
  7912.  
  7913. ΓòÉΓòÉΓòÉ 14.2.2. create_mark() ΓòÉΓòÉΓòÉ
  7914.  
  7915. create_mark()   Primitive 
  7916.  
  7917. Purpose: Place a bookmark at a specified buffer location. 
  7918.  
  7919. ____________ 
  7920.  
  7921. Syntax:  markid create_mark(markid num [, int line, int col]) 
  7922.  
  7923. ____________ 
  7924.  
  7925. Description: The create_mark() function places a bookmark at the buffer 
  7926. location specified by the line and col arguments.  If these arguments are not 
  7927. supplied, the current line and column position are used. 
  7928.  
  7929. Values less than one for the col and line arguments are treated as a value of 
  7930. one.  A value for line higher than the number of lines in the buffer is 
  7931. converted to the number of the last line in the buffer. However, if the col 
  7932. value is higher than the number of columns in the indicated line, the marker is 
  7933. placed beyond the end of the line. 
  7934.  
  7935. The num argument to this function is a bookmark id number.  This bookmark id 
  7936. may be either an unused id number or the id of a bookmark already in use.  A 
  7937. bookmark id of less than 1 will cause this function to fail. 
  7938.  
  7939. If the num id represents a bookmark already in use, the bookmark is reassigned 
  7940. to the location specified. 
  7941.  
  7942. ____________ 
  7943.  
  7944. Value returned: 
  7945.  
  7946. The value returned by the create_mark() function is the numeric id placed at 
  7947. the specified location. 
  7948.  
  7949.  
  7950. ΓòÉΓòÉΓòÉ 14.2.3. delete_all_marks() ΓòÉΓòÉΓòÉ
  7951.  
  7952. delete_all_marks()   Primitive 
  7953.  
  7954. Purpose: Undefine all bookmarks previously defined. 
  7955.  
  7956. ____________ 
  7957.  
  7958. Syntax:  int delete_all_marks() 
  7959.  
  7960. ____________ 
  7961.  
  7962. Description: The delete_all_marks() function provides a method of "starting 
  7963. from scratch" with no defined bookmarks.  This function disposes of all 
  7964. bookmarks regardless of their origin or purpose. 
  7965.  
  7966. It is considered good programming practice to ensure that no region of text is 
  7967. currently selected before executing this function. 
  7968.  
  7969. ____________ 
  7970.  
  7971. Value returned: 
  7972.  
  7973. The value returned by the delete_all_marks() function is the number of marks 
  7974. removed. 
  7975.  
  7976.  
  7977. ΓòÉΓòÉΓòÉ 14.2.4. delete_mark() ΓòÉΓòÉΓòÉ
  7978.  
  7979. delete_mark()   Primitive 
  7980.  
  7981. Purpose: Dispose of a specified bookmark. 
  7982.  
  7983. ____________ 
  7984.  
  7985. Syntax:  markid delete_mark(markid mark) 
  7986.  
  7987. ____________ 
  7988.  
  7989. Description: The delete_mark() function disposes of the bookmark associated 
  7990. with the bookmark id contained in the mark argument. 
  7991.  
  7992. Any attempt to remove bookmark 0, the current cursor position, with this 
  7993. function will have no effect. 
  7994.  
  7995. This function should not be used to dispose of selection bookmarks created with 
  7996. the drop_anchor() function. 
  7997.  
  7998. ____________ 
  7999.  
  8000. Value returned: 
  8001.  
  8002. The value returned by the delete_mark() function is the numeric id of the 
  8003. bookmark which has been removed.  If the function fails, a zero value is 
  8004. returned. 
  8005.  
  8006.  
  8007. ΓòÉΓòÉΓòÉ 14.2.5. distance_between_marks() ΓòÉΓòÉΓòÉ
  8008.  
  8009. distance_between_marks()   Primitive 
  8010.  
  8011. Purpose: Tells number of characters between specified marks. 
  8012.  
  8013. ____________ 
  8014.  
  8015. Syntax:  int distance_between_marks(int mark1, int mark2) 
  8016.  
  8017. ____________ 
  8018.  
  8019. Description: This function is used to discover the number of characters in a 
  8020. block or region defined by the arguments.  Arguments mark1 and mark2 are both 
  8021. any previously defined bookmarks.  These bookmarks are specified by the id 
  8022. assigned to them at the time they were created.  They may be supplied in any 
  8023. order, regardless of which occurs first in the buffer. 
  8024.  
  8025. The distance measured includes one of the bookmarks but not both. 
  8026.  
  8027. ____________ 
  8028.  
  8029. Value returned: 
  8030.  
  8031. The value returned by the distance_between_marks() function is the number of 
  8032. bytes between the two specified marks.  Tabs count only as a single character. 
  8033. The value returned will be zero if either of the bookmarks referenced as 
  8034. arguments is not defined. 
  8035.  
  8036.  
  8037. ΓòÉΓòÉΓòÉ 14.2.6. drop_anchor() ΓòÉΓòÉΓòÉ
  8038.  
  8039. drop_anchor()   PEL 
  8040.  
  8041. Purpose: Place a selection mark at the current position. 
  8042.  
  8043. ____________ 
  8044.  
  8045. Syntax:  int drop_anchor([int typ [, markid id1 [, markid id2]]]) 
  8046.  
  8047. ____________ 
  8048.  
  8049. Description: The drop_anchor() function selects a block of text.  The 
  8050. boundaries of the selected text are defined by the bookmark arguments id1 and 
  8051. id2.  The position of id2 then becomes the current cursor position. 
  8052.  
  8053. A last-in, first-out stack of bookmarks placed with drop_anchor() is 
  8054. maintained. The most recent selection mark is removed through a call to the 
  8055. function raise_anchor().  When this is done, the defined block becomes the text 
  8056. between the current cursor position and the bookmark which preceded it on the 
  8057. stack. 
  8058.  
  8059. If the id2 bookmark is not supplied, the text between id1 and the current 
  8060. position is selected.  If neither of the bookmark arguments are supplied, the 
  8061. mark is placed at the current position.  The selection type is determined by 
  8062. the type argument. The possible values for the type argument are the same as 
  8063. those used by the selection_type() function.  If all arguments are omitted a 
  8064. type 1 bookmark is placed at the current position. 
  8065.  
  8066. If id2 does not name a valid bookmark, text is marked from id1 to the current 
  8067. cursor position.  If id1 is not a valid bookmark, however, the function fails. 
  8068.  
  8069. ____________ 
  8070.  
  8071. Value returned: 
  8072.  
  8073. The value returned by the drop_anchor() function is non-zero (TRUE) on success. 
  8074. If an error occurs the function returns zero (FALSE). 
  8075.  
  8076.  
  8077. ΓòÉΓòÉΓòÉ 14.2.7. end_selection ΓòÉΓòÉΓòÉ
  8078.  
  8079. end_selection()   Primitive 
  8080.  
  8081. Purpose:  Ends the current text selection. 
  8082.  
  8083. ____________ 
  8084.  
  8085. Syntax:  end_selection([markid mark]) 
  8086.  
  8087. Arguments: 
  8088.  
  8089. o mark  -  mark to use as the ending corner of the selection 
  8090.  
  8091. ____________ 
  8092.  
  8093. Description:  The end_selection function ends the current text selection. 
  8094.  
  8095. ____________ 
  8096.  
  8097. Value returned:  TRUE is returned for success, FALSE for failure. 
  8098.  
  8099. ____________ 
  8100.  
  8101. See also: begin_selection() 
  8102.  
  8103.  
  8104. ΓòÉΓòÉΓòÉ 14.2.8. hilight_word() ΓòÉΓòÉΓòÉ
  8105.  
  8106. hilight_word()   PEL 
  8107.  
  8108. Purpose:  To highlight the word at the current cursor location 
  8109.  
  8110. ____________ 
  8111.  
  8112. Syntax:   hilight_word() 
  8113.  
  8114. ____________ 
  8115.  
  8116. Arguments:  none 
  8117.  
  8118. Description:The To highlight the word at the current cursor location function 
  8119. highlights the word at the current cursor location. 
  8120.  
  8121. ____________ 
  8122.  
  8123. Value returned:  none 
  8124.  
  8125.  
  8126. ΓòÉΓòÉΓòÉ 14.2.9. hilight_word_mouse() ΓòÉΓòÉΓòÉ
  8127.  
  8128. hilight_word_mouse()   PEL 
  8129.  
  8130. Purpose:  To highlight the word at the current cursor location, suitable for 
  8131. use with the mouse 
  8132.  
  8133. ____________ 
  8134.  
  8135. Syntax:   hilight_word_mouse() 
  8136.  
  8137. ____________ 
  8138.  
  8139. Arguments:  none 
  8140.  
  8141. Description: The hilight_word_mouse() function highlights the word at the 
  8142. current cursor location.  This function is meant to be attached to a mouse 
  8143. event, such as EVENT_MOUSE_LEFT_CLICK2. 
  8144.  
  8145. ____________ 
  8146.  
  8147. Value returned: None. 
  8148.  
  8149. ____________ 
  8150.  
  8151. See also: attach_event_handler() 
  8152.  
  8153.  
  8154. ΓòÉΓòÉΓòÉ 14.2.10. lines_between_marks() ΓòÉΓòÉΓòÉ
  8155.  
  8156. lines_between_marks()   Primitive 
  8157.  
  8158. Purpose: Tells the number of lines between two bookmarks. 
  8159.  
  8160. ____________ 
  8161.  
  8162. Syntax: int lines_between_marks(int mark1, int mark2) 
  8163.  
  8164. ____________ 
  8165.  
  8166. Description: The lines_between_marks() function reports the number of lines 
  8167. between the bookmarks specified by the mark1 and mark2 arguments.  The order in 
  8168. which these two arguments are specified is not significant. 
  8169.  
  8170. The function determines the line numbers in which mark1 and mark2 occur.  The 
  8171. number of lines between the two bookmarks is then arrived at through 
  8172. subtracting one line number from the other. 
  8173.  
  8174. ____________ 
  8175.  
  8176. Value returned: The value returned by lines_between_marks() is a positive 
  8177. integer representing the number of lines between the two indicated bookmarks. 
  8178. If the bookmarks are on the same line or one of the arguments does not 
  8179. represent a valid bookmark, the function returns zero.  The mark_defined() 
  8180. function may be used to determine if a bookmark is valid. 
  8181.  
  8182.  
  8183. ΓòÉΓòÉΓòÉ 14.2.11. mark_column() ΓòÉΓòÉΓòÉ
  8184.  
  8185. mark_column()   Primitive 
  8186.  
  8187. Purpose: Reports the column in which a given bookmark occurs. 
  8188.  
  8189. ____________ 
  8190.  
  8191. Syntax: int mark_column([markid num]) 
  8192.  
  8193. ____________ 
  8194.  
  8195. Description: The mark_column() function reports the column number in which the 
  8196. bookmark identified by the num argument may be found.  This function will fail 
  8197. if num is not a valid bookmark id.  If the num argument is omitted, the 
  8198. function returns the column of the selection mark. 
  8199.  
  8200. ____________ 
  8201.  
  8202. Value returned: Upon success, mark_column() returns the line number associated 
  8203. with the indicated bookmark.  Otherwise, a zero value is returned. 
  8204.  
  8205.  
  8206. ΓòÉΓòÉΓòÉ 14.2.12. mark_defined() ΓòÉΓòÉΓòÉ
  8207.  
  8208. mark_defined()   Primitive 
  8209.  
  8210. Purpose: Test to determine if a certain bookmark is in use. 
  8211.  
  8212. ____________ 
  8213.  
  8214. Syntax: int mark_defined(markid num) 
  8215.  
  8216. ____________ 
  8217.  
  8218. Description: The mark_defined() function reports whether or not the bookmark 
  8219. indicated by num is currently in use in the current buffer. 
  8220.  
  8221. ____________ 
  8222.  
  8223. Value returned: If the bookmark is in use, mark_defined() returns a non-zero 
  8224. value.  If the bookmark has not been defined, or has been defined in another 
  8225. buffer, a value of zero is returned. 
  8226.  
  8227.  
  8228. ΓòÉΓòÉΓòÉ 14.2.13. mark_line() ΓòÉΓòÉΓòÉ
  8229.  
  8230. mark_line()   Primitive 
  8231.  
  8232. Purpose: Reports the line in which a given bookmark occurs. 
  8233.  
  8234. ____________ 
  8235.  
  8236. Syntax: int mark_line([markid num]) 
  8237.  
  8238. ____________ 
  8239.  
  8240. Description: The mark_line() function reports the line number in which the 
  8241. bookmark identified by the num argument may be found.  This function will fail 
  8242. if num is not a valid bookmark id.  If the num argument is omitted, the 
  8243. function returns the line number of the selection mark. 
  8244.  
  8245. ____________ 
  8246.  
  8247. Value returned: Upon success, mark_line() returns the line number associated 
  8248. with the indicated bookmark.  Otherwise, a zero value is returned. 
  8249.  
  8250.  
  8251. ΓòÉΓòÉΓòÉ 14.2.14. mark_paragraph() ΓòÉΓòÉΓòÉ
  8252.  
  8253. mark_paragraph()   PEL 
  8254.  
  8255. Purpose: Selects the paragraph in which the cursor is found. 
  8256.  
  8257. ____________ 
  8258.  
  8259. Syntax: int mark_paragraph() 
  8260.  
  8261. ____________ 
  8262.  
  8263. Description: The mark_paragraph() function drops a selection bookmark at the 
  8264. end of a paragraph and then moves the cursor to the to the beginning of the 
  8265. paragraph.  The paragraph is highlighted as a result. 
  8266.  
  8267. For these purposes a paragraph is defined as any line or lines of text preceded 
  8268. by a blank line or the beginning of the buffer and followed by a blank line or 
  8269. the end of the buffer. 
  8270.  
  8271. If the cursor is not located within a paragraph, the paragraph immediately 
  8272. following the cursor location is selected.  If there are only blank lines 
  8273. between the cursor position and the end of the buffer, no selection is made. 
  8274.  
  8275. ____________ 
  8276.  
  8277. Value returned: The value returned by this function is non-zero (TRUE) on 
  8278. success, and zero (FALSE) if an error occurs. 
  8279.  
  8280.  
  8281. ΓòÉΓòÉΓòÉ 14.2.15. marked_region_size() ΓòÉΓòÉΓòÉ
  8282.  
  8283. marked_region_size()   PEL 
  8284.  
  8285. Purpose: Tells size of selected block. 
  8286.  
  8287. ____________ 
  8288.  
  8289. Syntax: int marked_region_size() 
  8290.  
  8291. ____________ 
  8292.  
  8293. Description: The marked_region_size() function reports the size of the block 
  8294. currently highlighted. 
  8295.  
  8296. ____________ 
  8297.  
  8298. Value returned: If the block is of type NORMAL_SELECTION, LINE_SELECTION, or 
  8299. INCLUSIVE_SELECTION, the return value is equal to the number of characters 
  8300. included in the block.  This count includes newlines. If the currently marked 
  8301. region is of type COLUMN_SELECTION, the return value is the area of the block 
  8302. in text cells.  In this case, if the block contains VIRTUAL SPACE the return 
  8303. value is not equal to the number of characters in the block. It is the number 
  8304. of columns occupied by the selection. If no marked region exists, the return 
  8305. value is zero. 
  8306.  
  8307.  
  8308. ΓòÉΓòÉΓòÉ 14.2.16. marks_in_buffer() ΓòÉΓòÉΓòÉ
  8309.  
  8310. marks_in_buffer()   Primitive 
  8311.  
  8312. Purpose: Counts the number of bookmarks in use for a buffer. 
  8313.  
  8314. ____________ 
  8315.  
  8316. Syntax: int marks_in_buffer([bufid buffer]) 
  8317.  
  8318. ____________ 
  8319.  
  8320. Description: The marks_in_buffer() function reports the number of marks in use 
  8321. for the buffer indicated by the buffer argument.  The buffer argument is a 
  8322. buffer id returned by the function used to create the buffer.  If this argument 
  8323. is omitted or is zero, the current buffer is assumed. 
  8324.  
  8325. This count includes any marks in use by the system through functions as well as 
  8326. user-defined bookmarks.  Bookmark 0, which is always the current position, 
  8327. however, is never included in this count. 
  8328.  
  8329. ____________ 
  8330.  
  8331. Value returned: The value returned by marks_in_buffer() is the number of marks 
  8332. in use for the buffer indicated. If the specified buffer does not exist, the 
  8333. function fails and a zero value is returned. 
  8334.  
  8335. ____________ 
  8336.  
  8337. See also:   marks_used 
  8338.  
  8339.  
  8340. ΓòÉΓòÉΓòÉ 14.2.17. next_mark() ΓòÉΓòÉΓòÉ
  8341.  
  8342. next_mark()   Primitive 
  8343.  
  8344. Purpose: Move cursor to the next bookmark in current buffer. 
  8345.  
  8346. ____________ 
  8347.  
  8348. Syntax: int next_mark() 
  8349.  
  8350. ____________ 
  8351.  
  8352. Description: The next_mark() function moves the cursor to the position of the 
  8353. first bookmark subsequent to the current position in the buffer.  If there are 
  8354. no subsequent bookmarks in the buffer, the cursor is not moved. 
  8355.  
  8356. ____________ 
  8357.  
  8358. Value returned: This function returns the bookmark id at which the cursor was 
  8359. placed, upon successful completion. Otherwise, a zero value is returned. 
  8360.  
  8361.  
  8362. ΓòÉΓòÉΓòÉ 14.2.18. pick_unused_mark() ΓòÉΓòÉΓòÉ
  8363.  
  8364. pick_unused_mark()   Primitive 
  8365.  
  8366. Purpose: Select a bookmark number not currently in use. 
  8367.  
  8368. ____________ 
  8369.  
  8370. Syntax: int pick_unused_mark() 
  8371.  
  8372. ____________ 
  8373.  
  8374. Description: The pick_unused_mark() function selects a bookmark number not 
  8375. currently in use.  It does not create a bookmark but merely supplies a number. 
  8376. This function is useful as an argument to several bookmark functions when you 
  8377. do not want to redefine an existing bookmark. 
  8378.  
  8379. ____________ 
  8380.  
  8381. Value returned: The pick_unused_mark() function returns the lowest bookmark 
  8382. number not in use.  If all bookmarks are in use a zero value is returned. 
  8383.  
  8384.  
  8385. ΓòÉΓòÉΓòÉ 14.2.19. place_bookmark() ΓòÉΓòÉΓòÉ
  8386.  
  8387. place_bookmark()   PEL 
  8388.  
  8389. Purpose: Mark a location and buffer for later reference. 
  8390.  
  8391. ____________ 
  8392.  
  8393. Syntax: void place_bookmark([int n]) 
  8394.  
  8395. ____________ 
  8396.  
  8397. Description: The place_bookmark() function drops a bookmark at the current 
  8398. location and remembers which buffer it is in.  You may then return to the 
  8399. bookmark from any buffer using the goto_bookmark() function. The function will 
  8400. prompt for a bookmark number if not supplied and will suggest the next unused 
  8401. bookmark number. 
  8402.  
  8403. ____________ 
  8404.  
  8405. Value returned: No useful value is returned by this function. 
  8406.  
  8407.  
  8408. ΓòÉΓòÉΓòÉ 14.2.20. prev_mark() ΓòÉΓòÉΓòÉ
  8409.  
  8410. prev_mark()   Primitive 
  8411.  
  8412. Purpose: Move cursor to a previous bookmark in current buffer. 
  8413.  
  8414. ____________ 
  8415.  
  8416. Syntax: int prev_mark() 
  8417.  
  8418. ____________ 
  8419.  
  8420. Description: The prev_mark() function moves the cursor to the position of the 
  8421. previous bookmark nearest to the current position in the buffer.  If there are 
  8422. no previous bookmarks in the buffer, the cursor is not moved. 
  8423.  
  8424. ____________ 
  8425.  
  8426. Value returned: This function returns the bookmark id at which the cursor was 
  8427. placed, upon successful completion. Otherwise, a zero value is returned. 
  8428.  
  8429.  
  8430. ΓòÉΓòÉΓòÉ 14.2.21. raise_anchor() ΓòÉΓòÉΓòÉ
  8431.  
  8432. raise_anchor()   PEL 
  8433.  
  8434. Purpose: Remove the most recently placed selection marker. 
  8435.  
  8436. ____________ 
  8437.  
  8438. Syntax: int raise_anchor() 
  8439.  
  8440. ____________ 
  8441.  
  8442. Description: The raise_anchor() function removes the last bookmark placed by 
  8443. the drop_anchor() or toggle_anchor() function.  This has the effect of changing 
  8444. the boundaries of the marked region. 
  8445.  
  8446. This function shares a last-in, first-out stack of bookmarks with the 
  8447. drop_anchor() function.  The raise_anchor() function removes the most recently 
  8448. placed selection mark from this stack and disposes of it.  As a result, the 
  8449. defined block becomes the text between the current cursor position and the 
  8450. preceded bookmark on the stack. 
  8451.  
  8452. If, after the most recently defined bookmark has been removed, there are no 
  8453. previous bookmarks remaining, there will be no marked region of text. If there 
  8454. is no bookmark on the stack when raise_anchor() is called, the function will 
  8455. fail. 
  8456.  
  8457. ____________ 
  8458.  
  8459. Value returned: Upon successful completion, raise_anchor() returns a non-zero 
  8460. value (TRUE).  If the function fails, a zero value (FALSE) is returned. 
  8461.  
  8462.  
  8463. ΓòÉΓòÉΓòÉ 14.2.22. remove_selection() ΓòÉΓòÉΓòÉ
  8464.  
  8465. remove_selection()   Primitive 
  8466.  
  8467. Purpose:  To remove the current selection. 
  8468.  
  8469. ____________ 
  8470.  
  8471. Syntax:   remove_selection() 
  8472.  
  8473. ____________ 
  8474.  
  8475. Arguments:  none 
  8476.  
  8477. Description: 
  8478.  
  8479. ____________ 
  8480.  
  8481. Value returned: FALSE    - there is no current selection otherwise  - the type 
  8482. of selection removed 
  8483.  
  8484.  
  8485. ΓòÉΓòÉΓòÉ 14.2.23. selection_mark_bottom() ΓòÉΓòÉΓòÉ
  8486.  
  8487. selection_mark_bottom()   Primitive 
  8488.  
  8489. Purpose:  To retreive the markid of the bottom corner of the current selection. 
  8490.  
  8491. ____________ 
  8492.  
  8493. Syntax:   selection_mark_bottom() 
  8494.  
  8495. ____________ 
  8496.  
  8497. Arguments:  none 
  8498.  
  8499. Description: 
  8500.  
  8501. ____________ 
  8502.  
  8503. Value returned: The markid of the bottom corner of the current selection 
  8504.  
  8505.  
  8506. ΓòÉΓòÉΓòÉ 14.2.24. selection_mark_top() ΓòÉΓòÉΓòÉ
  8507.  
  8508. selection_mark_top()   Primitive 
  8509.  
  8510. Purpose:  To retreive the markid of the top corner of the current selection. 
  8511.  
  8512. ____________ 
  8513.  
  8514. Syntax:   selection_mark_top() 
  8515.  
  8516. ____________ 
  8517.  
  8518. Arguments:  none 
  8519.  
  8520. Description: 
  8521.  
  8522. ____________ 
  8523.  
  8524. Value returned: The markid of the top corner of the current selection 
  8525.  
  8526.  
  8527. ΓòÉΓòÉΓòÉ 14.2.25. selection_type() ΓòÉΓòÉΓòÉ
  8528.  
  8529. selection_type()   Primitive 
  8530.  
  8531. Purpose:  To retreive the type of the current selection 
  8532.  
  8533. ____________ 
  8534.  
  8535. Syntax:   selection_type() 
  8536.  
  8537. ____________ 
  8538.  
  8539. Arguments:  none 
  8540.  
  8541. Description: 
  8542.  
  8543. ____________ 
  8544.  
  8545. Value returned: The type of the current selection 
  8546.  
  8547.  
  8548. ΓòÉΓòÉΓòÉ 14.2.26. set_column_mark() ΓòÉΓòÉΓòÉ
  8549.  
  8550. set_column_mark()   PEL 
  8551.  
  8552. Purpose: Begins a column selection at the current position. 
  8553.  
  8554. ____________ 
  8555.  
  8556. Syntax: void set_column_mark() 
  8557.  
  8558. ____________ 
  8559.  
  8560. Description: The set_column_mark() function begins the selection of a region of 
  8561. text within column boundaries. Column marking is region type 2.  See the 
  8562. description of the selection_type() function for a discussion of the region 
  8563. types available. 
  8564.  
  8565. ____________ 
  8566.  
  8567. Value returned: No useful value is returned by this function. 
  8568.  
  8569.  
  8570. ΓòÉΓòÉΓòÉ 14.2.27. set_exclusive_mark() ΓòÉΓòÉΓòÉ
  8571.  
  8572. set_exclusive_mark()   PEL 
  8573.  
  8574. Purpose: Begins an exclusive selection at the current position. 
  8575.  
  8576. ____________ 
  8577.  
  8578. Syntax: void set_exclusive_mark() 
  8579.  
  8580. ____________ 
  8581.  
  8582. Description: The set_exclusive_mark() function begins the selection of a region 
  8583. of sequential characters which excludes the character at the cursor. Exclusive 
  8584. marking is region type 1.  See the description of the selection_type() function 
  8585. for a discussion of the region types available. 
  8586.  
  8587. ____________ 
  8588.  
  8589. Value returned: No useful value is returned by this function. 
  8590.  
  8591.  
  8592. ΓòÉΓòÉΓòÉ 14.2.28. set_inclusive_mark() ΓòÉΓòÉΓòÉ
  8593.  
  8594. set_inclusive_mark()   PEL 
  8595.  
  8596. Purpose: Begins an inclusive selection at the current position. 
  8597.  
  8598. ____________ 
  8599.  
  8600. Syntax: void set_inclusive_mark() 
  8601.  
  8602. ____________ 
  8603.  
  8604. Description: The set_inclusive_mark() function begins the selection of a region 
  8605. of sequential characters that includes the character at the cursor.  Inclusive 
  8606. marking is region type 4.  See the description of the selection_type() function 
  8607. for a discussion of the region types available. 
  8608.  
  8609. ____________ 
  8610.  
  8611. Value returned: No useful value is returned by this function. 
  8612.  
  8613.  
  8614. ΓòÉΓòÉΓòÉ 14.2.29. set_line_mark() ΓòÉΓòÉΓòÉ
  8615.  
  8616. set_line_mark()   PEL 
  8617.  
  8618. Purpose: Begins a line selection at the current position. 
  8619.  
  8620. ____________ 
  8621.  
  8622. Syntax: void set_line_mark() 
  8623.  
  8624. ____________ 
  8625.  
  8626. Description: The set_line_mark() function begins the selection of a region of 
  8627. sequential lines.  This is region type 3.  See the description of the 
  8628. selection_type() function for a discussion of the region types available. 
  8629.  
  8630. ____________ 
  8631.  
  8632. Value returned: No useful value is returned by this function. 
  8633.  
  8634.  
  8635. ΓòÉΓòÉΓòÉ 14.2.30. swap_marks() ΓòÉΓòÉΓòÉ
  8636.  
  8637. swap_marks()   Primitive 
  8638.  
  8639. Purpose: Exchange the locations of two bookmarks in the buffer. 
  8640.  
  8641. ____________ 
  8642.  
  8643. Syntax: int swap_marks([markid mark1, [markid mark2]]) 
  8644.  
  8645. ____________ 
  8646.  
  8647. Description: The swap_marks() function swaps the locations of the bookmarks 
  8648. represented by arguments mark1 and mark2.  If no arguments to this function are 
  8649. supplied, then it is assumed that the mark defining the currently marked region 
  8650. of text is to be swapped with the current cursor position.  When used in this 
  8651. manner, the function will fail if no region of text has been defined. 
  8652.  
  8653. If the mark1 argument is supplied but mark2 is not, bookmark 0 is the assumed 
  8654. value of mark2.  The current position, which is always bookmark 0, may thus be 
  8655. exchanged with any bookmark using this function. 
  8656.  
  8657. This is particularly useful when you wish to change the location at which a 
  8658. marked block begins but maintain the current position as the end of the block. 
  8659.  
  8660. If either of the arguments names or assumes a non- existent bookmark, the 
  8661. function will fail. 
  8662.  
  8663. ____________ 
  8664.  
  8665. Value returned: On successful completion, swap_marks() returns a non-zero value 
  8666. (TRUE).  Upon failure a zero value (FALSE) is returned. 
  8667.  
  8668.  
  8669. ΓòÉΓòÉΓòÉ 14.2.31. toggle_anchor() ΓòÉΓòÉΓòÉ
  8670.  
  8671. toggle_anchor()   PEL 
  8672.  
  8673. Purpose: Toggle placement of selection mark at current position. 
  8674.  
  8675. ____________ 
  8676.  
  8677. Syntax: int toggle_anchor([int type]) 
  8678.  
  8679. ____________ 
  8680.  
  8681. Description: The toggle_anchor() function places a selection bookmark of the 
  8682. type described in the type argument at the current position if no block is 
  8683. already marked in the current buffer.  If a selection marker of any type 
  8684. already exists in the buffer, it is removed. 
  8685.  
  8686. The possible values for the type argument are the same as those used by the 
  8687. selection_type() function described above.  If the type argument is omitted, 
  8688. the normal, type 1, bookmark is assumed. 
  8689.  
  8690. If a new bookmark is placed, the new bookmark defines a marked block or region 
  8691. of text as described in the description of drop_anchor(). 
  8692.  
  8693. ____________ 
  8694.  
  8695. Value returned: The value returned by the toggle_anchor() function is non-zero 
  8696. (TRUE) if a bookmark was created and zero (FALSE) if a bookmark was removed. 
  8697.  
  8698. ____________ 
  8699.  
  8700. See also:   drop_anchor(), raise_anchor(), selection_type(). 
  8701.  
  8702.  
  8703. ΓòÉΓòÉΓòÉ 14.2.32. write_block_key() ΓòÉΓòÉΓòÉ
  8704.  
  8705. write_block_key()   PEL 
  8706.  
  8707. Purpose: Write block to specified file. 
  8708.  
  8709. ____________ 
  8710.  
  8711. Syntax: void write_block_key() 
  8712.  
  8713. ____________ 
  8714.  
  8715. Description: The write_block_key() function writes a marked block or, if no 
  8716. block is marked, the entire buffer to a file.  The name of the tile to be 
  8717. written is obtained by prompting. 
  8718.  
  8719. ____________ 
  8720.  
  8721. Value returned: No useful value is returned by this function. 
  8722.  
  8723.  
  8724. ΓòÉΓòÉΓòÉ 14.2.33. write_marked_block() ΓòÉΓòÉΓòÉ
  8725.  
  8726. write_marked_block()   Primitive 
  8727.  
  8728. Purpose: Write the marked block of text to a named file. 
  8729.  
  8730. ____________ 
  8731.  
  8732. Syntax: int write_marked_block(str name) 
  8733.  
  8734. ____________ 
  8735.  
  8736. Description: The write_marked_block() function saves the marked block of text 
  8737. in the current buffer to the file described in the name argument. 
  8738.  
  8739. The name argument is a filename and optional path element.  If this argument 
  8740. contains no path element the default drive and directory are assumed.  If the 
  8741. file designated by name already exists, it is overwritten without warning. 
  8742. Supplying a name argument does not change the name of the buffer or the 
  8743. buffer's default output filename. 
  8744.  
  8745. The current buffer must contain a marked block of text for this function to 
  8746. succeed.  If the BUFFER_EXPAND_TABS bit is set in the buffer_flags variable, 
  8747. tabs are expanded on output. 
  8748.  
  8749. ____________ 
  8750.  
  8751. Value returned: Upon successful completion the value returned by 
  8752. write_marked_block() is the number of characters written to file.  If an error 
  8753. occurs, a zero value is returned.  A marked block can never contain zero 
  8754. characters. 
  8755.  
  8756. If no block in the current buffer has been marked a message to that effect is 
  8757. displayed.  Consult the errno variable to determine the cause of other errors. 
  8758.  
  8759.  
  8760. ΓòÉΓòÉΓòÉ 14.3. Buffers ΓòÉΓòÉΓòÉ
  8761.  
  8762. The functions in this category allow you to manipulate  and their contents. 
  8763. Using these functions, you may create and delete buffers, move from one buffer 
  8764. to another, or save the contents of a buffer. 
  8765.  
  8766. When a new file is to be edited, the usual starting place is the edit_file() 
  8767. function.  This function uses several of the other functions in this category 
  8768. and the Windowing category to create a buffer and read the file into the 
  8769. buffer. It then attaches the current window to the buffer so that the contents 
  8770. may be viewed.  If you wish to create a similar function to fill your needs, 
  8771. you may construct such a function from create_buffer(), create_window() and 
  8772. attach_window_buffer(). 
  8773.  
  8774. ai() 
  8775.           Turns auto-indent feature on or off. 
  8776. auto_indent_cr() 
  8777.           To insert a new line and auto-indent 
  8778. auto_indent_nl() 
  8779.           To open a new line and auto-indent 
  8780. browse_file() 
  8781.           To browse a file in Read-Only mode. 
  8782. buffer_in_window() 
  8783.           To find the next window that is attached to a specified buffer, if 
  8784.           one exists. 
  8785. buffer_insert_string() 
  8786.           Insert a string into the specified buffer. 
  8787. buffer_is_modified() 
  8788.           Tells if contents of buffer have changed. 
  8789. buffer_line_exists() 
  8790.           Tells if a line exists in buffer. 
  8791. buffer_views() 
  8792.           Tells number of windows that view a buffer. 
  8793. change_output_name() 
  8794.           Obtains new filename for the current buffer. 
  8795. compare_buffers() 
  8796.           To compare two buffers 
  8797. create_buf_and_win() 
  8798.           To create a new buffer in a new window. 
  8799. create_buf_and_win_key() 
  8800.           To create a new buffer in a new window, as appropriate for key 
  8801.           assignment. 
  8802. create_buffer() 
  8803.           Creates a new buffer attached to a disk file. 
  8804. delete_buffer() 
  8805.           Disposes of a previously created edit buffer. 
  8806. delete_buffer_key() 
  8807.           Removes buffer, does not make system buffer current. 
  8808. display_filename() 
  8809.           Display the buffer filename as reminder. 
  8810. dos_edit() 
  8811.           Switch editor into DOS newline mode. 
  8812. edit_file() 
  8813.           Opens a new buffer and assigns it to current window. 
  8814. edit_file_key() 
  8815.           Enhanced function to open new buffer. 
  8816. edit_unix_file_key() 
  8817.           Enhanced function to load a UNIX file into a buffer. 
  8818. next_buffer() 
  8819.           Make a subsequent buffer on the list the current buffer. 
  8820. next_buffer_key() 
  8821.           To make the next buffer current, as suitable for key assignment. 
  8822. next_buffer_mask() 
  8823.           To make the next buffer that matches the current window's buffer mask 
  8824.           the current buffer. 
  8825. open_file_under_cursor() 
  8826.           To open the file at the current cursor location. 
  8827. organize_buffers() 
  8828.           Displays an icon for each buffer defined. 
  8829. prev_buffer() 
  8830.           Make a preceding buffer on the list the current buffer. 
  8831. prev_buffer_key() 
  8832.           To make the previous buffer current, as suitable for key assignment. 
  8833. prev_buffer_mask() 
  8834.           To make the previous buffer that matches the current window's buffer 
  8835.           mask the current buffer. 
  8836. print_buffer() 
  8837.           Immediately prints the current buffer 
  8838. read_buffer() 
  8839.           read a portion of the buffer into a string. 
  8840. read_file() 
  8841.           Read a file into the current position of current buffer. 
  8842. read_file_key() 
  8843.           Enhanced function to insert file. 
  8844. tabs() 
  8845.           Allows defining tab stops interactively. 
  8846. toggle_buffer_eol() 
  8847.           Convert the current buffer from DOS to UNIX, or UNIX to DOS end of 
  8848.           line characters. 
  8849. toggle_buffer_flags() 
  8850.           Changes the value of the buffer_flags variable. 
  8851. toggle_unix() 
  8852.           Toggles the editor between using DOS and UNIX end of line characters 
  8853.           when loading buffers. 
  8854. transfer() 
  8855.           Transfer text to the current buffer from another buffer. 
  8856. unix_edit() 
  8857.           Switch editor into UNIX newline mode. 
  8858. write_all_buffers() 
  8859.           Save the edits in modified buffers to their disk files. 
  8860. write_buffer() 
  8861.           Writes the contents of the current buffer to disk. 
  8862. write_buffer_key() 
  8863.           Saves a buffer if it is modified. 
  8864.  
  8865.  
  8866. ΓòÉΓòÉΓòÉ 14.3.1. ai() ΓòÉΓòÉΓòÉ
  8867.  
  8868. ai()   PEL 
  8869.  
  8870. Purpose: Turns auto-indent feature on or off. 
  8871.  
  8872. ____________ 
  8873.  
  8874. Syntax:  void ai([int on]) 
  8875.  
  8876. ____________ 
  8877.  
  8878. Description: The ai() function is a tersely named synonym for 
  8879. toggle_auto_indent(), suitable for executing through the PEL interpreter ( ). 
  8880. If the on argument is zero, the auto-indent feature is turned off, otherwise it 
  8881. is turned on.  If the argument is omitted this function toggles the current 
  8882. state of auto-indent mode. 
  8883.  
  8884. ____________ 
  8885.  
  8886. Value returned: No useful value is returned by this function. 
  8887.  
  8888.  
  8889. ΓòÉΓòÉΓòÉ 14.3.2. auto_indent_cr() ΓòÉΓòÉΓòÉ
  8890.  
  8891. auto_indent_cr()   PEL 
  8892.  
  8893. Purpose:  To insert a new line and auto-indent 
  8894.  
  8895. ____________ 
  8896.  
  8897. Syntax:   auto_indent_cr() 
  8898.  
  8899. ____________ 
  8900.  
  8901. Arguments:  none 
  8902.  
  8903. Description: The auto_indent_cr() function inserts and auto_indents a new line. 
  8904. This function succeeds only if the auto_indent_mode variable is on. 
  8905.  
  8906. ____________ 
  8907.  
  8908. Value returned:  none 
  8909.  
  8910.  
  8911. ΓòÉΓòÉΓòÉ 14.3.3. auto_indent_nl() ΓòÉΓòÉΓòÉ
  8912.  
  8913. auto_indent_nl()   PEL 
  8914.  
  8915. Purpose:  To open a new line and auto-indent 
  8916.  
  8917. ____________ 
  8918.  
  8919. Syntax:   auto_indent_nl() 
  8920.  
  8921. ____________ 
  8922.  
  8923. Arguments:  none 
  8924.  
  8925. Description: This will only work if auto_indent_mode is on. 
  8926.  
  8927. ____________ 
  8928.  
  8929. Value returned:  none 
  8930.  
  8931.  
  8932. ΓòÉΓòÉΓòÉ 14.3.4. browse_file() ΓòÉΓòÉΓòÉ
  8933.  
  8934. browse_file()   PEL 
  8935.  
  8936. Purpose:  To browse a file in Read-Only mode. 
  8937.  
  8938. ____________ 
  8939.  
  8940. Syntax:   browse_file( str filename ) 
  8941.  
  8942. ____________ 
  8943.  
  8944. Arguments: 
  8945.  
  8946. o filename - the file to browse 
  8947.  
  8948. Description: This function is a useful utility when you wish to look at the 
  8949. contents of a file without the possibility of accidentaly modifying it. 
  8950.  
  8951. ____________ 
  8952.  
  8953. Value returned:  none 
  8954.  
  8955.  
  8956. ΓòÉΓòÉΓòÉ 14.3.5. buffer_in_window() ΓòÉΓòÉΓòÉ
  8957.  
  8958. buffer_in_window()   Primitive 
  8959.  
  8960. Purpose:  To find the next window that is attached to a specified buffer, if 
  8961. one exists. 
  8962.  
  8963. ____________ 
  8964.  
  8965. Syntax:   buffer_in_window( str filespec ) 
  8966.  
  8967. ____________ 
  8968.  
  8969. Arguments: 
  8970.  
  8971. o filespec - the filename of the buffer being looked for. 
  8972.  
  8973. Description: This function is used when you have the "Open files in new window" 
  8974. box checked in the open file dialog.  When you select a file to open, 
  8975. buffer_in_window() is called to see if that file is already loaded in a buffer 
  8976. in a window.  If it is, instead of displaying that buffer in the current 
  8977. window, the window that is already displaying that buffer is made current. 
  8978.  
  8979. ____________ 
  8980.  
  8981. Value returned: If the buffer specified is attached to a window, the return is 
  8982. that window, otherwise, 0. 
  8983.  
  8984.  
  8985. ΓòÉΓòÉΓòÉ 14.3.6. buffer_insert_string() ΓòÉΓòÉΓòÉ
  8986.  
  8987. buffer_insert_string   Primitive 
  8988.  
  8989. Purpose:  Insert a string into the specified buffer. 
  8990.  
  8991. ____________ 
  8992.  
  8993. Syntax:   buffer_insert_string(bufid buffer, str format, [any arg...]) 
  8994.  
  8995. ____________ 
  8996.  
  8997. Arguments: 
  8998.  
  8999. o buffer - buffer id of the buffer to modify 
  9000. o format - format string 
  9001. o [arg...] - optional list of arguments to fill in format string 
  9002.  
  9003. Description: The buffer_insert_string() function inserts a string into the 
  9004. specified.  It works the same way as insert_string() except that a buffer other 
  9005. than the current buffer can be modified. 
  9006.  
  9007. ____________ 
  9008.  
  9009. Value returned: The function returns the inserted string or an empty string if 
  9010. an error occurred. 
  9011.  
  9012.  
  9013. ΓòÉΓòÉΓòÉ 14.3.7. buffer_is_modified() ΓòÉΓòÉΓòÉ
  9014.  
  9015. buffer_is_modified()   PEL 
  9016.  
  9017. Purpose: Tells if contents of buffer have changed. 
  9018.  
  9019. ____________ 
  9020.  
  9021. Syntax:  int buffer_is_modified() 
  9022.  
  9023. ____________ 
  9024.  
  9025. Description: The buffer_is_modified() function reports whether the contents of 
  9026. the current buffer have been changed since the last save operation.  This is 
  9027. done by examining the buffer's buffer_flags variable. 
  9028.  
  9029. ____________ 
  9030.  
  9031. Value returned: This function returns TRUE ( 1 ) if the current buffer has been 
  9032. modified. Otherwise, it returns FALSE ( 0 ). 
  9033.  
  9034.  
  9035. ΓòÉΓòÉΓòÉ 14.3.8. buffer_line_exists() ΓòÉΓòÉΓòÉ
  9036.  
  9037. buffer_line_exists()   Primitive 
  9038.  
  9039. Purpose: Tells if a line exists in buffer. 
  9040.  
  9041. ____________ 
  9042.  
  9043. Syntax:  int buffer_line_exists(int linenum) 
  9044.  
  9045. ____________ 
  9046.  
  9047. Description: The buffer_line_exists() function reports whether a specified line 
  9048. exists in the current buffer.  The linenum argument specifies the line about 
  9049. which the inquiry is being made. 
  9050.  
  9051. ____________ 
  9052.  
  9053. Value returned: 
  9054.  
  9055. If the line exists, a non-zero (TRUE) value is returned.  Otherwise, zero 
  9056. (FALSE) is returned. 
  9057.  
  9058.  
  9059. ΓòÉΓòÉΓòÉ 14.3.9. buffer_views() ΓòÉΓòÉΓòÉ
  9060.  
  9061. buffer_views()   Primitive 
  9062.  
  9063. Purpose: Tells number of windows that view a buffer. 
  9064.  
  9065. ____________ 
  9066.  
  9067. Syntax:  int buffer_views([bufid buffer]) 
  9068.  
  9069. ____________ 
  9070.  
  9071. Description: The buffer_views() function identifies the number of windows that 
  9072. are presently attached to a buffer.  The buffer that is the subject of this 
  9073. inquiry is indicated by the buffer argument.  If this argument is omitted, the 
  9074. function reports the number of windows attached to the current buffer. 
  9075.  
  9076. ____________ 
  9077.  
  9078. Value returned: 
  9079.  
  9080. The value returned by the buffer_views() function is the number of windows 
  9081. associated with the specified buffer.  This number includes any windows not 
  9082. currently visible on the screen. 
  9083.  
  9084.  
  9085. ΓòÉΓòÉΓòÉ 14.3.10. change_output_name() ΓòÉΓòÉΓòÉ
  9086.  
  9087. change_output_name()   PEL 
  9088.  
  9089. Purpose: Obtains new filename for the current buffer. 
  9090.  
  9091. ____________ 
  9092.  
  9093. Syntax:  void change_output_name([str filename]) 
  9094.  
  9095. ____________ 
  9096.  
  9097. Description: The change_output_name() function assigns a new output filename to 
  9098. a buffer.  If the new filename is not provided, the editor prompts the user for 
  9099. the new name.  This name is assigned to the current buffer's buffer_name and 
  9100. buffer_filename variables. 
  9101.  
  9102. This function does not immediately cause the buffer to be saved under the new 
  9103. filename.  When next the changes in the buffer is saved to disk, they will be 
  9104. saved in a file by this name. 
  9105.  
  9106. ____________ 
  9107.  
  9108. Value returned: 
  9109.  
  9110. No useful value is returned by this function. 
  9111.  
  9112.  
  9113. ΓòÉΓòÉΓòÉ 14.3.11. compare_buffers() ΓòÉΓòÉΓòÉ
  9114.  
  9115. compare_buffers()   PEL 
  9116.  
  9117. Purpose:  To compare two buffers 
  9118.  
  9119. ____________ 
  9120.  
  9121. Syntax:   compare_buffers( [bufid buf1, [bufid buf2]] ) 
  9122.  
  9123. ____________ 
  9124.  
  9125. Arguments: 
  9126.  
  9127. o buf1 - the file name of the first buffer to compare 
  9128. o buf2 - the file name of the second buffer to compare 
  9129.  
  9130. Description: This function will compare the contents of two buffers and 
  9131. position the cursor of each buffer at the first difference it find between the 
  9132. buffers, or if they are identical, at the end of each buffer.  The comparison 
  9133. starts at the current location of the cursor in each buffer. If the buf1 and 
  9134. buf2 parameters are not specified, the current buffer and next_buffer() will be 
  9135. compared.  If the parameters are specified, the files will be loaded into 
  9136. buffers if they are not already loaded. 
  9137.  
  9138. ____________ 
  9139.  
  9140. Value returned: TRUE  -  input parameters are valid FALSE -  input parameters 
  9141. are invalid 
  9142.  
  9143.  
  9144. ΓòÉΓòÉΓòÉ 14.3.12. create_buf_and_win() ΓòÉΓòÉΓòÉ
  9145.  
  9146. create_buf_and_win()   PEL 
  9147.  
  9148. Purpose:  To create a new buffer in a new window. 
  9149.  
  9150. ____________ 
  9151.  
  9152. Syntax:   create_buf_and_win( str name, [long behindwin, long x, long y, long 
  9153. width, long height]) 
  9154.  
  9155. ____________ 
  9156.  
  9157. Arguments: 
  9158.  
  9159. name - the filename to load into a buffer. 
  9160. x - x position in pixels of new window, if created. 
  9161. y - y position in pixels of new window, if created. 
  9162. width - with in pixels of new window, if created. 
  9163. height - height in pixels of new window, if created. 
  9164.  
  9165. Description: This function will create a new buffer that is attached to a new 
  9166. window.  If the buffer is already attached to a window it will bring that 
  9167. window to the top. 
  9168.  
  9169. ____________ 
  9170.  
  9171. Value returned: TRUE  -  the buffer was loaded FASLE -  the file could not be 
  9172. loaded 
  9173.  
  9174.  
  9175. ΓòÉΓòÉΓòÉ 14.3.13. create_buf_and_win_key() ΓòÉΓòÉΓòÉ
  9176.  
  9177. create_buf_and_win_key()   PEL 
  9178.  
  9179. Purpose:  To create a new buffer in a new window, as appropriate for key 
  9180. assignment. 
  9181.  
  9182. ____________ 
  9183.  
  9184. Syntax:   create_buf_and_win_key() 
  9185.  
  9186. ____________ 
  9187.  
  9188. Arguments:  none 
  9189.  
  9190. Description: See creat_buf_and_win() 
  9191.  
  9192. ____________ 
  9193.  
  9194. Value returned:  none 
  9195.  
  9196.  
  9197. ΓòÉΓòÉΓòÉ 14.3.14. create_buffer() ΓòÉΓòÉΓòÉ
  9198.  
  9199. create_buffer()   Primitive 
  9200.  
  9201. Purpose: Creates a new buffer attached to a disk file. 
  9202.  
  9203. ____________ 
  9204.  
  9205. Syntax:  bufid create_buffer(str name, str file [, int b_flags]) 
  9206.  
  9207. ____________ 
  9208.  
  9209. Description: The create_buffer() function creates a new buffer and initializes 
  9210. the associated variables to the current editor system defaults.  The file to 
  9211. which it is attached is then read into the buffer. 
  9212.  
  9213. The value of the name argument is assigned to the buffer's buffer_name 
  9214. variable.  The argument file is used as the initial value for both the 
  9215. buffer_filename and buffer_original_filename variables. 
  9216.  
  9217. The newly created buffer is inserted into the buffers list in the position 
  9218. immediately following the currently active buffer.  It may be made the 
  9219. currently active buffer by assigning it to the current window or through a call 
  9220. to the next_buffer() function. 
  9221.  
  9222. If the file to be attached to the new buffer is already attached to an existing 
  9223. buffer, the user is notified and permission to proceed is obtained before 
  9224. creating the buffer. 
  9225.  
  9226. It is possible to have two writable buffers simultaneously attached to the same 
  9227. file. In this situation edits made in one buffer are not reflected in the 
  9228. other.  Operating in this manner is fraught with pitfalls. As a consequence, it 
  9229. is preferable to open another window onto the original buffer. 
  9230.  
  9231. However, if you find it desirable to have the same file in two separate buffers 
  9232. you may do this by making one of the buffers a system buffer.  This requirement 
  9233. assures that the system buffer will not accidently be written to disk by 
  9234. write_all_buffers() or similar function.  It must be explicitly written to 
  9235. disk. 
  9236.  
  9237. Normally, various buffer attributes are inherited from default_buffer_flags. 
  9238. This value is then stored in the buffer's buffer_flags variable.  If the 
  9239. b_flags argument is supplied, however, the value of that argument is used for 
  9240. buffer_flags instead of using default_buffer_flags. This is useful when you 
  9241. wish to create a buffer with other than the usual attribute flags.  This is the 
  9242. accepted method of creating a system buffer or buffer with no undo-redo 
  9243. capability.  See the description of buffer_flags for a description of the 
  9244. attributes controlled by the b_flags argument. 
  9245.  
  9246. System buffers need not be associated with any file.  For this reason, the file 
  9247. argument may be specified as "", an empty string, when creating a system 
  9248. buffer. 
  9249.  
  9250. The higher level function edit_file(), which calls this routine, may be used as 
  9251. an alternative to this function. 
  9252.  
  9253. ____________ 
  9254.  
  9255. Value returned: 
  9256.  
  9257. create_buffer() returns the numeric id that the editor system has given to the 
  9258. newly created buffer.  This id should be stored for later use but never 
  9259. modified. 
  9260.  
  9261. If the function fails, usually due to an invalid file argument, a zero value is 
  9262. returned.  The function will also fail if the named file is already open as a 
  9263. result of a call to fopen(). 
  9264.  
  9265. ____________ 
  9266.  
  9267. See also:  buffer_filename, 
  9268.  
  9269.  
  9270. ΓòÉΓòÉΓòÉ 14.3.15. delete_buffer() ΓòÉΓòÉΓòÉ
  9271.  
  9272. delete_buffer()   Primitive 
  9273.  
  9274. Purpose: Disposes of a previously created edit buffer. 
  9275.  
  9276. ____________ 
  9277.  
  9278. Syntax:  int delete_buffer([bufid buffer]) 
  9279.  
  9280. ____________ 
  9281.  
  9282. Description: The delete_buffer() function removes the buffer identified by the 
  9283. buffer argument from the editor system.  The buffer argument is the numeric id 
  9284. returned by the function used to create the buffer.  If the buffer argument is 
  9285. not supplied, the current buffer is deleted. 
  9286.  
  9287. Whenever the current buffer is deleted the next buffer in the buffer list 
  9288. becomes current.  If a window was attached to the deleted buffer, the window is 
  9289. reassigned to the next buffer in the buffers list.  When deleting both the 
  9290. current buffer and the current window the buffer should be deleted first.  If 
  9291. the window is deleted first the current buffer will change, often resulting in 
  9292. the wrong buffer being deleted. 
  9293.  
  9294. If there are no more buffers in the buffers list, the buffer may be deleted but 
  9295. the editor will create a new empty one in its place.  Any windows assigned to 
  9296. the last buffer are reassigned to the new buffer. 
  9297.  
  9298. This new buffer will receive the name "Scratch" and it's buffer_flags variable 
  9299. will be set to indicate that it is a system buffer and is not writable.  The 
  9300. editor uses this same default buffer when the editor is invoked without 
  9301. indicating a file to be edited. 
  9302.  
  9303. ____________ 
  9304.  
  9305. Value returned: When successful, delete_buffer() returns a non zero or TRUE 
  9306. value.  Upon failure, this function returns zero (FALSE). 
  9307.  
  9308.  
  9309. ΓòÉΓòÉΓòÉ 14.3.16. delete_buffer_key() ΓòÉΓòÉΓòÉ
  9310.  
  9311. delete_buffer_key()   PEL 
  9312.  
  9313. Purpose: Removes buffer, does not make system buffer current. 
  9314.  
  9315. ____________ 
  9316.  
  9317. Syntax:  void delete_buffer_key() 
  9318.  
  9319. ____________ 
  9320.  
  9321. Description: Like delete_buffer(), the delete_buffer_key() function deletes the 
  9322. current buffer.  However, if the next buffer in the buffer list is a system 
  9323. buffer, delete_buffer_key() does not allow it to become the current buffer as 
  9324. the delete_buffer() function would.  Instead, this function makes the next 
  9325. normal buffer current.  If there is no other normal buffer, the "Scratch" 
  9326. buffer is created. This behavior makes delete_buffer_key() more suitable for 
  9327. assignment to a key than its relative, delete_buffer(). 
  9328.  
  9329. ____________ 
  9330.  
  9331. Value returned: No useful value is returned by this function. 
  9332.  
  9333.  
  9334. ΓòÉΓòÉΓòÉ 14.3.17. display_filename() ΓòÉΓòÉΓòÉ
  9335.  
  9336. display_filename()   PEL 
  9337.  
  9338. Purpose: Display the buffer filename as reminder. 
  9339.  
  9340. ____________ 
  9341.  
  9342. Syntax:  void display_filename() 
  9343.  
  9344. ____________ 
  9345.  
  9346. Description: The display_filename() shows the output filename associated with 
  9347. the current buffer in the dialog window.  It is largely intended for use after 
  9348. operations that change the current buffer or its filename. 
  9349.  
  9350. ____________ 
  9351.  
  9352. Value returned: No useful value is returned by this function. 
  9353.  
  9354.  
  9355. ΓòÉΓòÉΓòÉ 14.3.18. dos_edit() ΓòÉΓòÉΓòÉ
  9356.  
  9357. dos_edit()   PEL 
  9358.  
  9359. Purpose: Switch editor into DOS newline mode. 
  9360.  
  9361. ____________ 
  9362.  
  9363. Syntax:  void dos_edit([int convertCurrent]) 
  9364.  
  9365. ____________ 
  9366.  
  9367. Description: This function changes the editor's default newline sequence to the 
  9368. DOS newline sequence. This will affect all subsequent files that are opened. 
  9369. If the optional parameter changeCurrent is supplied and not zero, the current 
  9370. buffer will be closed and reopened to allow the changes to take affect.  You 
  9371. may need to call this function if your default_buffer_eol_string is not set for 
  9372. DOS files and you want to load a DOS file. 
  9373.  
  9374. ____________ 
  9375.  
  9376. Value returned: 
  9377.  
  9378. No useful value is returned by this function. 
  9379.  
  9380. ____________ 
  9381.  
  9382. See also:  unix_edit(), edit_unix_file_key(), toggle_unix(), 
  9383. toggle_buffer_eol() 
  9384.  
  9385.  
  9386. ΓòÉΓòÉΓòÉ 14.3.19. edit_file() ΓòÉΓòÉΓòÉ
  9387.  
  9388. edit_file()   Primitive 
  9389.  
  9390. Purpose: Opens a new buffer and assigns it to current window. 
  9391.  
  9392. ____________ 
  9393.  
  9394. Syntax:  bufid edit_file([str file]) 
  9395.  
  9396. ____________ 
  9397.  
  9398. Description: The edit_file() function creates a new buffer using the 
  9399. create_buffer() function and then assigns it to the currently active window 
  9400. with the attach_window_buffer() function. 
  9401.  
  9402. The file argument contains the name of the file from which data is read into 
  9403. the new buffer.  This filename therefore becomes the value assigned to the 
  9404. buffer_filename and the buffer_original_filename for the new buffer.  If this 
  9405. argument is omitted, the user is prompted for this value. 
  9406.  
  9407. The file argument is also used to define the value of the buffer_name.  The 
  9408. buffer_name will be the same as buffer_original_filename except that it will 
  9409. contain no path element. 
  9410.  
  9411. Since edit_file() assigns the buffer it creates to the current window, the new 
  9412. buffer is always the currently active buffer upon completion of the function. 
  9413. To return to the buffer that was active prior to the call to edit_file(), 
  9414. execute the prev_buffer() function. 
  9415.  
  9416. It is possible to edit the same file in two different buffers, though this is 
  9417. not advisable.  See create_buffer() above for a more complete discussion of 
  9418. this topic. 
  9419.  
  9420. ____________ 
  9421.  
  9422. Value returned: 
  9423.  
  9424. edit_file() returns the numeric id that the editor system has given to the 
  9425. newly created buffer.  This id should be stored for later use but never 
  9426. modified. 
  9427.  
  9428. If the function fails, usually due to an invalid file argument, a zero value is 
  9429. returned. 
  9430.  
  9431.  
  9432. ΓòÉΓòÉΓòÉ 14.3.20. edit_file_key() ΓòÉΓòÉΓòÉ
  9433.  
  9434. edit_file_key()   PEL 
  9435.  
  9436. Purpose: Enhanced function to open new buffer. 
  9437.  
  9438. ____________ 
  9439.  
  9440. Syntax:  void edit_file_key() 
  9441.  
  9442. ____________ 
  9443.  
  9444. Description: Like edit_file(), the edit_file_key() function prompts for the 
  9445. name of new file to edit.  It provides some additional assistance in selecting 
  9446. the new file:  It has a history mechanism that displays the names of files 
  9447. previously selected when up or down arrows are pressed.  It also will display a 
  9448. list of files matching a specified pattern when  is pressed (rather than  ).  A 
  9449. file may then be selected from the list. This function is used whenever 
  9450. reasonable in the emulation modes provided. 
  9451.  
  9452. ____________ 
  9453.  
  9454. Value returned: 
  9455.  
  9456. No useful value is returned by this function. 
  9457.  
  9458.  
  9459. ΓòÉΓòÉΓòÉ 14.3.21. edit_unix_file_key() ΓòÉΓòÉΓòÉ
  9460.  
  9461. edit_unix_file_key()   PEL 
  9462.  
  9463. Purpose: Enhanced function to load a UNIX file into a buffer. 
  9464.  
  9465. ____________ 
  9466.  
  9467. Syntax:  void edit_unix_file_key([str name]) 
  9468.  
  9469. ____________ 
  9470.  
  9471. Arguments: name - The name of the UNIX file to load.  If no name is specified 
  9472. then you will be prompted for a filename. 
  9473.  
  9474. Description: The edit_unix_file_key() is similar to edit_file_key() except that 
  9475. the file will be loaded assuming the newline sequence is '\n' (which is the 
  9476. UNIX standard) instead of '\r\n' (which is the DOS and OS/2 standard). 
  9477.  
  9478. If the file has already been loaded into a buffer with the wrong newline 
  9479. sequence, use the function toggle_buffer_eol() to convert it. 
  9480.  
  9481. ____________ 
  9482.  
  9483. Value returned: 
  9484.  
  9485. No useful value is returned by this function. 
  9486.  
  9487. ____________ 
  9488.  
  9489. See also:  toggle_unix(), dos_edit(), unix_edit(), toggle_buffer_eol() 
  9490.  
  9491.  
  9492. ΓòÉΓòÉΓòÉ 14.3.22. next_buffer() ΓòÉΓòÉΓòÉ
  9493.  
  9494. next_buffer()   Primitive 
  9495.  
  9496. Purpose: Make a subsequent buffer on the list the current buffer. 
  9497.  
  9498. ____________ 
  9499.  
  9500. Syntax: bufid next_buffer([str pattern [, int include_sys]]) 
  9501.  
  9502. ____________ 
  9503.  
  9504. Description: The next_buffer() function may be used in two ways, depending on 
  9505. whether the pattern argument is supplied.  In either case, next_buffer() is 
  9506. used to change the currently active buffer.  When the pattern argument is not 
  9507. present, next_buffer() may be used to increment forward through the buffers 
  9508. list. 
  9509.  
  9510. When pattern is supplied, next_buffer() will jump forward in the buffers list 
  9511. to a buffer whose buffer_name matches the pattern argument.  The pattern 
  9512. argument may contain wildcard characters as described in the "Filename 
  9513. Matching" section of "Settling In" chapter of the User's Manual.  Either of the 
  9514. following examples may be used to increment through the list of user buffers: 
  9515.  
  9516.   next_buffer() 
  9517.  
  9518.   next_buffer("") 
  9519.  
  9520. If the pattern argument has been specified, you may optionally supply the 
  9521. include_sys argument also. This argument is used to tell next_buffer() to 
  9522. include system buffers in the buffers list. Normally, there is no need to 
  9523. access system buffers since they are created and maintained for the use of the 
  9524. editor.  If you find the need, however, you may access system buffers by 
  9525. supplying a non-zero value as the include_sys argument.  You may then increment 
  9526. through the buffers list until you locate the system buffer of interest.  The 
  9527. following example increments through the list of all buffers: 
  9528.  
  9529.   next_buffer("",1) 
  9530.  
  9531. The current buffer is the last to be compared to the pattern argument. 
  9532.  
  9533. ____________ 
  9534.  
  9535. Value returned: This function returns the numeric id of the buffer it makes 
  9536. current.  This function cannot fail. If either pattern does not match any 
  9537. subsequent buffers or there is only one buffer in the list the current buffer 
  9538. remains current.  In this case the id of the current buffer is returned. 
  9539.  
  9540. ____________ 
  9541.  
  9542. See also:   prev_buffer() 
  9543.  
  9544.  
  9545. ΓòÉΓòÉΓòÉ 14.3.23. next_buffer_key() ΓòÉΓòÉΓòÉ
  9546.  
  9547. next_buffer_key()   PEL 
  9548.  
  9549. Purpose:  To make the next buffer current, as suitable for key assignment. 
  9550.  
  9551. ____________ 
  9552.  
  9553. Syntax:   next_buffer_key() 
  9554.  
  9555. ____________ 
  9556.  
  9557. Arguments:  none 
  9558.  
  9559. Description: 
  9560.  
  9561. ____________ 
  9562.  
  9563. Value returned:  none 
  9564.  
  9565.  
  9566. ΓòÉΓòÉΓòÉ 14.3.24. next_buffer_mask() ΓòÉΓòÉΓòÉ
  9567.  
  9568. next_buffer_mask()   PEL 
  9569.  
  9570. Purpose:  To make the next buffer that matches the current window's buffer mask 
  9571. the current buffer. 
  9572.  
  9573. ____________ 
  9574.  
  9575. Syntax:   next_buffer_mask() 
  9576.  
  9577. ____________ 
  9578.  
  9579. Arguments:  none 
  9580.  
  9581. Description: This function differs from next_buffer_key() in that it will 
  9582. insure that the next buffer honors the buffer mask of the current window.  If a 
  9583. buffer mask has not been set for the current window, this function will operate 
  9584. identically to next_buffer_key(). 
  9585.  
  9586. ____________ 
  9587.  
  9588. Value returned:  none 
  9589.  
  9590.  
  9591. ΓòÉΓòÉΓòÉ 14.3.25. open_file_under_cursor() ΓòÉΓòÉΓòÉ
  9592.  
  9593. open_file_under_cursor()   PEL 
  9594.  
  9595. Purpose:  To open the file at the current cursor location. 
  9596.  
  9597. ____________ 
  9598.  
  9599. Syntax:   open_file_under_cursor( [str filename] ) 
  9600.  
  9601. ____________ 
  9602.  
  9603. Arguments: 
  9604.  
  9605. o filename -  optional filename to open, otherwise opens file at the curren 
  9606.   cursor location 
  9607.  
  9608. Description: This function searches through your INCLUDE, PATH, and DPATH 
  9609. environment variables for either the file specified or the file at the current 
  9610. cursor location.  If you set your INCLUDE environment variable to your project 
  9611. directories, this function would save you the time of typing in paths for the 
  9612. project files you wish to load. 
  9613.  
  9614. ____________ 
  9615.  
  9616. Value returned: TRUE  -  file successfully opened FALSE -  file not 
  9617. successfully opened 
  9618.  
  9619.  
  9620. ΓòÉΓòÉΓòÉ 14.3.26. organize_buffers() ΓòÉΓòÉΓòÉ
  9621.  
  9622. organize_buffers()   PEL 
  9623.  
  9624. Purpose: Displays an icon for each buffer defined. 
  9625.  
  9626. ____________ 
  9627.  
  9628. Syntax: void organize_buffers() 
  9629.  
  9630. ____________ 
  9631.  
  9632. Description: The organize_buffers() function defines a window for each buffer 
  9633. in use and then displays them in rows as icons.  This can be useful when 
  9634. working with a large number of buffers. 
  9635.  
  9636. ____________ 
  9637.  
  9638. Value returned: No useful value is returned by this function. 
  9639.  
  9640.  
  9641. ΓòÉΓòÉΓòÉ 14.3.27. prev_buffer() ΓòÉΓòÉΓòÉ
  9642.  
  9643. prev_buffer()   Primitive 
  9644.  
  9645. Purpose: Make a preceding buffer on the list the current buffer. 
  9646.  
  9647. ____________ 
  9648.  
  9649. Syntax: bufid prev_buffer([str pattern [, int include_sys]]) 
  9650.  
  9651. ____________ 
  9652.  
  9653. Description: The prev_buffer() function may be used in two ways, depending on 
  9654. whether the pattern argument is supplied.  In either case, prev_buffer() is 
  9655. used to change the currently active buffer. 
  9656.  
  9657. When the pattern argument is not present, prev_buffer() may be used to 
  9658. increment backward through the buffers list. 
  9659.  
  9660. When pattern is supplied, prev_buffer() will jump backwards in the buffers list 
  9661. to a buffer whose buffer_name matches the pattern argument.  The pattern 
  9662. argument may contain wildcard characters as described in the "Filename 
  9663. Matching" section of "General Operation" chapter of the User's Manual. 
  9664.  
  9665. If the pattern argument has been specified, you may optionally supply the 
  9666. include_sys argument also. This argument is used to tell prev_buffer() to 
  9667. include system buffers in the buffers list. Normally, there is no need to 
  9668. access system buffers since they are created and maintained for the use of the 
  9669. editor.  If you find the need, however, you may access system buffers by 
  9670. supplying a non-zero value as the include_sys argument.  You may then increment 
  9671. through the buffers list until you locate the system buffer of interest. 
  9672.  
  9673. The current buffer is the last to be compared to the pattern argument. 
  9674.  
  9675. ____________ 
  9676.  
  9677. Value returned: This function returns the numeric id of the buffer it makes 
  9678. current.  This function cannot fail.  If either pattern does not match any 
  9679. subsequent buffers or there is only one buffer in the list the current buffer 
  9680. remains current.  In this case the id of the current buffer is returned. 
  9681.  
  9682. ____________ 
  9683.  
  9684. See also:   next_buffer() 
  9685.  
  9686.  
  9687. ΓòÉΓòÉΓòÉ 14.3.28. prev_buffer_key() ΓòÉΓòÉΓòÉ
  9688.  
  9689. prev_buffer_key()   PEL 
  9690.  
  9691. Purpose:  To make the previous buffer current, as suitable for key assignment. 
  9692.  
  9693. ____________ 
  9694.  
  9695. Syntax:   prev_buffer_key() 
  9696.  
  9697. ____________ 
  9698.  
  9699. Arguments:  none 
  9700.  
  9701. Description: 
  9702.  
  9703. ____________ 
  9704.  
  9705. Value returned:  none 
  9706.  
  9707.  
  9708. ΓòÉΓòÉΓòÉ 14.3.29. prev_buffer_mask() ΓòÉΓòÉΓòÉ
  9709.  
  9710. prev_buffer_mask()   PEL 
  9711.  
  9712. Purpose:  To make the previous buffer that matches the current window's buffer 
  9713. mask the current buffer. 
  9714.  
  9715. ____________ 
  9716.  
  9717. Syntax:   prev_buffer_mask() 
  9718.  
  9719. ____________ 
  9720.  
  9721. Arguments:  none 
  9722.  
  9723. Description: This function differs from prev_buffer_key() in that it will 
  9724. insure that the previous buffer honors the buffer mask of the current window. 
  9725. If a buffer mask has not been set for the current window, this function will 
  9726. operate identically to prev_buffer_key(). 
  9727.  
  9728. ____________ 
  9729.  
  9730. Value returned:  none 
  9731.  
  9732.  
  9733. ΓòÉΓòÉΓòÉ 14.3.30. print_buffer() ΓòÉΓòÉΓòÉ
  9734.  
  9735. print_buffer()   Primitive 
  9736.  
  9737. Purpose: Immediately prints the current buffer 
  9738.  
  9739. ____________ 
  9740.  
  9741. Syntax: void print_buffer( [short draft_mode] ) 
  9742.  
  9743. ____________ 
  9744.  
  9745. Description: The print_buffer() function prints a marked block of text, or the 
  9746. entire active file buffer if no block is marked, to the stdprn device.  Tabs 
  9747. are expanded, before printing, in accordance with the current setting of the 
  9748. buffer_tabs editor variable. 
  9749.  
  9750. ____________ 
  9751.  
  9752. Value returned: If a printer error occurs the executing macro is terminated. 
  9753. There is therefore no point in testing the return value of print_buffer(). 
  9754.  
  9755.  
  9756. ΓòÉΓòÉΓòÉ 14.3.31. read_buffer() ΓòÉΓòÉΓòÉ
  9757.  
  9758. read_buffer()   Primitive 
  9759.  
  9760. Purpose: read a portion of the buffer into a string. 
  9761.  
  9762. ____________ 
  9763.  
  9764. Syntax: str read_buffer([int len]) 
  9765.  
  9766. ____________ 
  9767.  
  9768. Description: The read_buffer() function creates a string from the text in the 
  9769. current line of the current buffer. If the len argument is omitted the text 
  9770. from the cursor position to the end of the line is read.  If the len argument 
  9771. is supplied, it specifies the number of characters to be read.  Positive values 
  9772. for len read the characters at and following the cursor position while negative 
  9773. numbers read characters preceding the cursor.  Under no conditions are 
  9774. characters beyond the beginning or the end of the current line read into the 
  9775. string. The end-of-line sequence will not be copied into the string. 
  9776.  
  9777. ____________ 
  9778.  
  9779. Value returned: If the cursor is located beyond the last character of the line 
  9780. when this function is called an empty string is returned.  Otherwise, the 
  9781. resulting string is returned. 
  9782.  
  9783.  
  9784. ΓòÉΓòÉΓòÉ 14.3.32. read_file() ΓòÉΓòÉΓòÉ
  9785.  
  9786. read_file()   Primitive 
  9787.  
  9788. Purpose: Read a file into the current position of current buffer. 
  9789.  
  9790. ____________ 
  9791.  
  9792. Syntax: int read_file(str file) 
  9793.  
  9794. ____________ 
  9795.  
  9796. Description: The read_file() function opens the file described by the file 
  9797. argument and reads the contents into the currently active buffer at the current 
  9798. cursor location. 
  9799.  
  9800. The file argument contains a filename and, optionally, a path element including 
  9801. drive specifier.  If file contains no path element the default drive and 
  9802. directory are assumed. 
  9803.  
  9804. When read_file() is completed the cursor is positioned at the end of the text 
  9805. that was read. 
  9806.  
  9807. The editor treats this as a single operation.  You may therefore obtain the 
  9808. condition existing before the call to read_file() with a single undo command. 
  9809.  
  9810. ____________ 
  9811.  
  9812. Value returned: The value returned by read_file() on successful completion is 
  9813. the number of bytes read into the buffer. 
  9814.  
  9815.  
  9816. ΓòÉΓòÉΓòÉ 14.3.33. read_file_key() ΓòÉΓòÉΓòÉ
  9817.  
  9818. read_file_key()   PEL 
  9819.  
  9820. Purpose: Enhanced function to insert file. 
  9821.  
  9822. ____________ 
  9823.  
  9824. Syntax: void read_file_key() 
  9825.  
  9826. ____________ 
  9827.  
  9828. Description: Like the read_file() function, read_file_key() prompts for a 
  9829. filename and then reads that file into the buffer at the current position.  In 
  9830. addition, It provides some assistance in selecting the file for reading:  It 
  9831. has a history mechanism that displays the names of files previously selected 
  9832. when up or down arrows are pressed.  It also will display a list of files 
  9833. matching a specified pattern when  is pressed (rather than  ).  A file may then 
  9834. be selected from the list. 
  9835.  
  9836. ____________ 
  9837.  
  9838. Value returned: No useful value is returned by this function. 
  9839.  
  9840.  
  9841. ΓòÉΓòÉΓòÉ 14.3.34. tabs() ΓòÉΓòÉΓòÉ
  9842.  
  9843. tabs()   PEL 
  9844.  
  9845. Purpose: Allows defining tab stops interactively. 
  9846.  
  9847. ____________ 
  9848.  
  9849. Syntax: void tabs() 
  9850.  
  9851. ____________ 
  9852.  
  9853. Description: The tabs() function prompts the user for a new string value to be 
  9854. assigned to the buffer_tabs variable.  The old value of buffer_tabs is 
  9855. presented to the user for editing. 
  9856.  
  9857. A short name has been assigned to this function to facilitate its execution 
  9858. from the keyboard.  This is done through execute_function(), which is normally 
  9859. assigned to a key. 
  9860.  
  9861. ____________ 
  9862.  
  9863. Value returned: No useful value is returned by this function. 
  9864.  
  9865.  
  9866. ΓòÉΓòÉΓòÉ 14.3.35. toggle_buffer_eol() ΓòÉΓòÉΓòÉ
  9867.  
  9868. toggle_buffer_eol()   PEL 
  9869.  
  9870. Purpose: Convert the current buffer from DOS to UNIX, or UNIX to DOS end of 
  9871. line characters. 
  9872.  
  9873. ____________ 
  9874.  
  9875. Syntax:  void toggle_buffer_eol([int unix]) 
  9876.  
  9877. ____________ 
  9878.  
  9879. Description: If the optional parameter is not supplied, this function converts 
  9880. the current buffer's newline sequence from the DOS standard to the UNIX 
  9881. standard, or vice versa by closing and then reopening the file. If the 
  9882. parameter is 0, the current file will be reopened using the DOS standard 
  9883. newline sequence. If it is not 0, it will be reopened with the UNIX standard 
  9884. newline sequence. This will not affect any other existing or future buffers. 
  9885. You will need to call this function if your default_buffer_eol_string was not 
  9886. correct when the file was opened. 
  9887.  
  9888. ____________ 
  9889.  
  9890. Value returned: 
  9891.  
  9892. No useful value is returned by this function. 
  9893.  
  9894. ____________ 
  9895.  
  9896. See also:  dos_edit(), unix_edit(), edit_unix_file_key(), toggle_unix() 
  9897.  
  9898.  
  9899. ΓòÉΓòÉΓòÉ 14.3.36. toggle_buffer_flags() ΓòÉΓòÉΓòÉ
  9900.  
  9901. toggle_buffer_flags()   PEL 
  9902.  
  9903. Purpose:  Changes the value of the buffer_flags variable. 
  9904.  
  9905. ____________ 
  9906.  
  9907. Syntax:   int toggle_buffer_flags(long mask, [long value]) 
  9908.  
  9909. ____________ 
  9910.  
  9911. Arguments: 
  9912.  
  9913. o mask - buffer_flags bit to toggle 
  9914. o on - forced direction of toggle 
  9915.  
  9916. Description: toggle_buffer_flags() changes the state of the bit in buffer_flags 
  9917. specified by the mask argument.  If the optional argument, value, is supplied, 
  9918. the bit changes to that value.  Otherwise the state of the bit toggles. 
  9919.  
  9920. ____________ 
  9921.  
  9922. Value returned:  TRUE  -  mask bit of status_bar_flags was turned on 
  9923. FALSE -  the bit was turned off 
  9924.  
  9925. See also: buffer_flags 
  9926.  
  9927.  
  9928. ΓòÉΓòÉΓòÉ 14.3.37. toggle_unix() ΓòÉΓòÉΓòÉ
  9929.  
  9930. toggle_unix()   PEL 
  9931.  
  9932. Purpose: Toggles the editor between using DOS and UNIX end of line characters 
  9933. when loading buffers. 
  9934.  
  9935. ____________ 
  9936.  
  9937. Syntax:  void toggle_unix(int on) 
  9938.  
  9939. ____________ 
  9940.  
  9941. Description: This function toggles the editor's default newline sequence 
  9942. between the DOS and UNIX standards if the optional parameter is not supplied. 
  9943. If the parameter is 0, the default_buffer_eol_string is set to the DOS 
  9944. standard. If the parameter is not 0, it is set to the UNIX standard. 
  9945.  
  9946. ____________ 
  9947.  
  9948. Value returned: 
  9949.  
  9950. No useful value is returned by this function. 
  9951.  
  9952. ____________ 
  9953.  
  9954. See also:  dos_edit(), unix_edit(), edit_unix_file_key(), toggle_buffer_eol() 
  9955.  
  9956.  
  9957. ΓòÉΓòÉΓòÉ 14.3.38. transfer() ΓòÉΓòÉΓòÉ
  9958.  
  9959. transfer()   Primitive 
  9960.  
  9961. Purpose: Transfer text to the current buffer from another buffer. 
  9962.  
  9963. ____________ 
  9964.  
  9965. Syntax: int transfer(bufid s_buf, int al, int bl [, int cl, int dl]) int cl, 
  9966. int dl]) 
  9967.  
  9968. ____________ 
  9969.  
  9970. Description: The transfer() function copies a block from the buffer indicated 
  9971. by the s_buff argument into the currently active buffer at the cursor position. 
  9972.  
  9973. The block of text to be copied may be specified in either of two ways. 
  9974. Depending on the method selected, either two or four additional arguments are 
  9975. required to define the block. 
  9976.  
  9977. If the block of text to transfer has been enclosed within bookmarks, you need 
  9978. only specify the number of those bookmarks.  These bookmarks are specified in 
  9979. the al and bl arguments.  Alternately, you may specify the block of text by 
  9980. line and column numbers. 
  9981.  
  9982. In this latter case, you must give the beginning line and then the beginning 
  9983. column in al and bl respectively.  These two coordinates are followed by the 
  9984. ending line in the cl argument and finally the ending column in dl.  The ending 
  9985. line and column define the last character which is to be copied. 
  9986.  
  9987. If using the line and column method of defining the block to transfer, keep in 
  9988. mind that line and column numbering begins with 1. 
  9989.  
  9990. ____________ 
  9991.  
  9992. Value returned: The transfer() function returns the number of characters 
  9993. copied, upon successful completion. Upon error, a zero value is returned and a 
  9994. message indicating the source of the error is displayed.  A block is never zero 
  9995. characters. 
  9996.  
  9997.  
  9998. ΓòÉΓòÉΓòÉ 14.3.39. unix_edit() ΓòÉΓòÉΓòÉ
  9999.  
  10000. unix_edit()   PEL 
  10001.  
  10002. Purpose: Switch editor into UNIX newline mode. 
  10003.  
  10004. ____________ 
  10005.  
  10006. Syntax:  void unix_edit([int convertCurrent]) 
  10007.  
  10008. ____________ 
  10009.  
  10010. Description: This function changes the editor's default newline sequence to the 
  10011. UNIX newline sequence. This will affect all subsequent files that are opened. 
  10012. If the optional parameter changeCurrent is supplied and not zero, the current 
  10013. buffer will be closed and reopened to allow the changes to take affect.  You 
  10014. may need to call this function if your default_buffer_eol_string is not set for 
  10015. UNIX files and you want to load a UNIX file. 
  10016.  
  10017. ____________ 
  10018.  
  10019. Value returned: 
  10020.  
  10021. No useful value is returned by this function. 
  10022.  
  10023. ____________ 
  10024.  
  10025. See also:  dos_edit(), edit_unix_file_key(), toggle_unix(), toggle_buffer_eol() 
  10026.  
  10027.  
  10028. ΓòÉΓòÉΓòÉ 14.3.40. write_all_buffers() ΓòÉΓòÉΓòÉ
  10029.  
  10030. write_all_buffers()   PEL 
  10031.  
  10032. Purpose: Save the edits in modified buffers to their disk files. 
  10033.  
  10034. ____________ 
  10035.  
  10036. Syntax: int write_all_buffers() 
  10037.  
  10038. ____________ 
  10039.  
  10040. Description: The write_all_buffers() function attempts to save all buffers 
  10041. containing unsaved edits to their corresponding files. 
  10042.  
  10043. Buffers whose buffer_flags variable indicates they are not writable will not be 
  10044. saved.  If a disk- write error occurs in the course of this function, the 
  10045. editor will continue to attempt to save the remaining buffers after error 
  10046. recovery. 
  10047.  
  10048. ____________ 
  10049.  
  10050. Value returned: No useful value is returned by this function. 
  10051.  
  10052. ____________ 
  10053.  
  10054. See also:   buffers_modified(), buffer_flags. 
  10055.  
  10056.  
  10057. ΓòÉΓòÉΓòÉ 14.3.41. write_buffer() ΓòÉΓòÉΓòÉ
  10058.  
  10059. write_buffer()   Primitive 
  10060.  
  10061. Purpose: Writes the contents of the current buffer to disk. 
  10062.  
  10063. ____________ 
  10064.  
  10065. Syntax: int write_buffer([str filename]) 
  10066.  
  10067. ____________ 
  10068.  
  10069. Description: The write_buffer() function writes the contents of the currently 
  10070. active edit buffer to a file.  The file to which the buffer is written is named 
  10071. by the filename argument.  This argument may include a complete path element 
  10072. including drive.  If the filename argument is omitted, the buffer is written to 
  10073. the file indicated by its buffer_filename variable.  However, supplying a 
  10074. filename argument does not change the name of the buffer or the buffer's 
  10075. default output filename. 
  10076.  
  10077. No check is made to determine if the buffer has actually been modified. 
  10078.  
  10079. ____________ 
  10080.  
  10081. Value returned: The value returned by write_buffer() is the number of bytes 
  10082. written on successful completion. 
  10083.  
  10084. If the buffer_flags variable indicates that writing the file is not allowed or 
  10085. if a write-error occurs this function returns a zero value.  A message 
  10086. indicating the source of the error is then displayed. 
  10087.  
  10088.  
  10089. ΓòÉΓòÉΓòÉ 14.3.42. write_buffer_key() ΓòÉΓòÉΓòÉ
  10090.  
  10091. write_buffer_key()   PEL 
  10092.  
  10093. Purpose:  Saves a buffer if it is modified. 
  10094.  
  10095. ____________ 
  10096.  
  10097. Syntax:   int write_buffer_key() 
  10098.  
  10099. ____________ 
  10100.  
  10101. Arguments: none. 
  10102.  
  10103. Description: The write_buffer_key() function writes the current byffer to disk 
  10104. if it has been modified.  If it has not been modified, no action is taken. 
  10105.  
  10106. ____________ 
  10107.  
  10108. Value returned: Number of bytes written. 
  10109.  
  10110.  
  10111. ΓòÉΓòÉΓòÉ 14.4. Dynamic Data Exchange ΓòÉΓòÉΓòÉ
  10112.  
  10113. add_dde_server_topic() 
  10114.           Associates a topic with a particular server. 
  10115. create_dde_server() 
  10116.           Creates a dynamic data exchange (DDE) server 
  10117. dde_callback_action() 
  10118.           Returns action that caused a DDE callback function call. 
  10119. dde_callback_data() 
  10120.           returns data of DDE conversation 
  10121. dde_callback_item() 
  10122.           Returns topic of DDE conversation 
  10123. dde_callback_topic() 
  10124.           returns topic of DDE conversation 
  10125. delete_dde_server() 
  10126.           Deletes a dynamic data exchange (DDE) server 
  10127. delete_dde_topic() 
  10128.           Deletes a dynamic data exchange (DDE) topic 
  10129. get_workframe_error_info() 
  10130.           Retrieve error information from IBM Workframe 
  10131. initialize_dde() 
  10132.           To initialize DDE communications with the stub executeable. 
  10133. remove_dde_server_topic() 
  10134.           Removes a topic from a server. 
  10135. wf_goto_next_error() 
  10136.           Step through the list of workframe errors. 
  10137. wf_goto_prev_error() 
  10138.           Step through the list of workframe errors. 
  10139.  
  10140.  
  10141. ΓòÉΓòÉΓòÉ 14.4.1. add_dde_server_topic() ΓòÉΓòÉΓòÉ
  10142.  
  10143. add_dde_server_topic()   Primitive 
  10144.  
  10145. Purpose: Associates a topic with a particular server. 
  10146.  
  10147. ____________ 
  10148.  
  10149. Syntax: long add_dde_server_topic(long serverid, long topicid) 
  10150.  
  10151. ____________ 
  10152.  
  10153. Description: The add_dde_server_topic() function associates a topic with a 
  10154. server.  The server can then accept requests from clients with the topic id 
  10155. specified in the function call.  The topic id should not be deleted while it is 
  10156. in use by any server.  The remove_dde_server_topic() call should be used to 
  10157. remove the topic from the server before deleting it.  The serverid argument 
  10158. contains the id of the server the topic is to be associated with.  The serverid 
  10159. must have been returned from a call to create_dde_server(). 
  10160.  
  10161. ____________ 
  10162.  
  10163. Value returned: TRUE if successful, FALSE otherwise. 
  10164.  
  10165.  
  10166. ΓòÉΓòÉΓòÉ 14.4.2. create_dde_server() ΓòÉΓòÉΓòÉ
  10167.  
  10168. create_dde_server()   Primitive 
  10169.  
  10170. Purpose: Creates a dynamic data exchange (DDE) server 
  10171.  
  10172. ____________ 
  10173.  
  10174. Syntax: serverid create_dde_server(string servername, macroid callback) 
  10175.  
  10176. ____________ 
  10177.  
  10178. Description: The create_dde_server() function registers a new dynamic data 
  10179. exchange server with the editor.  After create_dde_server() is called the 
  10180. editor will then respond to requests from DDE clients.  The servername argument 
  10181. is the name that the server will be registered as.  Any clients wishing to 
  10182. communicate with this server must specify the exact same string as servername 
  10183. in order for the connection to be successful.  The callback argument is the 
  10184. macro id of the function to call to notify the user of significant DDE events. 
  10185.  
  10186. ____________ 
  10187.  
  10188. Value returned: The create_dde_server() function returns the id of the newly 
  10189. created server if successful, otherwise 0 will be returned. 
  10190.  
  10191.  
  10192. ΓòÉΓòÉΓòÉ 14.4.3. dde_callback_action() ΓòÉΓòÉΓòÉ
  10193.  
  10194. dde_callback_action   Primitive 
  10195.  
  10196. Purpose:  Returns action that caused a DDE callback function call. 
  10197.  
  10198. ____________ 
  10199.  
  10200. Syntax:   long dde_callback_action(long serverid) 
  10201.  
  10202. ____________ 
  10203.  
  10204. Arguments: 
  10205.  
  10206. o serverid - id of the server 
  10207.  
  10208. Description: This function returns the action code that caused a DDE callback 
  10209. function call.  This function will always return the last DDE action code that 
  10210. was generated by the system. The return value of this function may only be 
  10211. modified by the system. 
  10212.  
  10213.  
  10214. ΓòÉΓòÉΓòÉ 14.4.4. dde_callback_data() ΓòÉΓòÉΓòÉ
  10215.  
  10216. dde_callback_data   Primitive 
  10217.  
  10218. Purpose:  returns data of DDE conversation 
  10219.  
  10220. ____________ 
  10221.  
  10222. Syntax:   str dde_callback_action(long serverid) 
  10223.  
  10224. ____________ 
  10225.  
  10226. Arguments: 
  10227.  
  10228. o serverid - id of the server 
  10229.  
  10230. Description: When the editor receives a DDE message from the system this 
  10231. function will return the data for the DDE conversation.  The editor can only 
  10232. accept DDE data in string format.  If a DDE client or server sends data in any 
  10233. other format it will not be recognized by the editor.  The return value of this 
  10234. function may only be modified by the system. 
  10235.  
  10236.  
  10237. ΓòÉΓòÉΓòÉ 14.4.5. dde_callback_item() ΓòÉΓòÉΓòÉ
  10238.  
  10239. dde_callback_item   Primitive 
  10240.  
  10241. Purpose:  Returns topic of DDE conversation 
  10242.  
  10243. ____________ 
  10244.  
  10245. Syntax:   long dde_callback_action(long serverid) 
  10246.  
  10247. ____________ 
  10248.  
  10249. Arguments: 
  10250.  
  10251. o serverid - id of the server 
  10252.  
  10253. Description: When the editor receives a DDE message from the system this 
  10254. function will return the item of the DDE conversation.  The item will always be 
  10255. an item that was previously associated with a topic via the add_dde_item() 
  10256. function.  The return value of this function may only be modified by the 
  10257. system. 
  10258.  
  10259.  
  10260. ΓòÉΓòÉΓòÉ 14.4.6. dde_callback_topic() ΓòÉΓòÉΓòÉ
  10261.  
  10262. dde_callback_topic   Primitive 
  10263.  
  10264. Purpose:  returns topic of DDE conversation 
  10265.  
  10266. ____________ 
  10267.  
  10268. Syntax:   str dde_callback_action(long serverid) 
  10269.  
  10270. ____________ 
  10271.  
  10272. Arguments: 
  10273.  
  10274. o serverid - id of the server 
  10275.  
  10276. Description: The dde_callback_topic function returns the topic of the DDE 
  10277. conversation that caused the DDE callback function to be called. Only topics 
  10278. that were previously registered are recognized as valid topic strings.  The 
  10279. return value of this function may only be modified by the system. 
  10280.  
  10281.  
  10282. ΓòÉΓòÉΓòÉ 14.4.7. delete_dde_server() ΓòÉΓòÉΓòÉ
  10283.  
  10284. delete_dde_server()   Primitive 
  10285.  
  10286. Purpose: Deletes a dynamic data exchange (DDE) server 
  10287.  
  10288. ____________ 
  10289.  
  10290. Syntax: void delete_dde_server(long serverid) 
  10291.  
  10292. ____________ 
  10293.  
  10294. Description: The delete_dde_server() function deletes the DDE server specified 
  10295. in the serverid argument.  The serverid argument must have been returned from 
  10296. the create_dde_server function call.  After delete_dde_server() is called the 
  10297. editor will no longer accept connections from DDE clients for the serverid DDE 
  10298. server. 
  10299.  
  10300. ____________ 
  10301.  
  10302. Value returned: The delete_dde_server() function does not return a value. 
  10303.  
  10304.  
  10305. ΓòÉΓòÉΓòÉ 14.4.8. delete_dde_topic() ΓòÉΓòÉΓòÉ
  10306.  
  10307. delete_dde_topic()   Primitive 
  10308.  
  10309. Purpose: Deletes a dynamic data exchange (DDE) topic 
  10310.  
  10311. ____________ 
  10312.  
  10313. Syntax: void delete_dde_topic(long topicid) 
  10314.  
  10315. ____________ 
  10316.  
  10317. Description: The delete_dde_topic() function deletes the memory associated with 
  10318. a DDE topic.  The DDE topic should not be attached to any server when it is 
  10319. deleted. Use the remove_dde_server_topic() function for each server that is 
  10320. using the topic before calling delete_dde_topic().  The topicid argument 
  10321. contains the id of a topic returned from the create_dde_topic() function. 
  10322.  
  10323. ____________ 
  10324.  
  10325. Value returned: The delete_dde_topic() function does not return a value. 
  10326.  
  10327.  
  10328. ΓòÉΓòÉΓòÉ 14.4.9. get_workframe_error_info() ΓòÉΓòÉΓòÉ
  10329.  
  10330. get_workframe_error_info()   Primitive 
  10331.  
  10332. Purpose: Retrieve error information from IBM Workframe 
  10333.  
  10334. ____________ 
  10335.  
  10336. Syntax: void get_workframe_error_info( long serverid, string buffername, long 
  10337. magicid ) 
  10338.  
  10339. ____________ 
  10340.  
  10341. Description: The get_workframe_error_info() function retrieves error 
  10342. information from the IBM Workframe development environment. 
  10343.  
  10344. The serverid argument is the DDE server name to send the information from. 
  10345. This must be a value returned from the create_dde_server()  function call. 
  10346.  
  10347. The buffername argument is the buffer name that errors are requested for. 
  10348.  
  10349. The magicid argument is the position in the Workframe compiler list box that 
  10350. contains the error string. 
  10351.  
  10352. ____________ 
  10353.  
  10354. Value returned: This function does not return a value. 
  10355.  
  10356.  
  10357. ΓòÉΓòÉΓòÉ 14.4.10. initialize_dde() ΓòÉΓòÉΓòÉ
  10358.  
  10359. initialize_dde()   PEL 
  10360.  
  10361. Purpose:  To initialize DDE communications with the stub executeable. 
  10362.  
  10363. ____________ 
  10364.  
  10365. Syntax:   initialize_dde() 
  10366.  
  10367. ____________ 
  10368.  
  10369. Arguments:  none 
  10370.  
  10371. Description: This function is, by default, called from local_setup().  You 
  10372. would normally not need to call this yourself, but it does serve as a good 
  10373. example of initializing DDE communictions. 
  10374.  
  10375. ____________ 
  10376.  
  10377. Value returned:  none 
  10378.  
  10379.  
  10380. ΓòÉΓòÉΓòÉ 14.4.11. remove_dde_server_topic() ΓòÉΓòÉΓòÉ
  10381.  
  10382. remove_dde_server_topic()   Primitive 
  10383.  
  10384. Purpose: Removes a topic from a server. 
  10385.  
  10386. ____________ 
  10387.  
  10388. Syntax: void remove_dde_server_topic(long serverid, String topic) 
  10389.  
  10390. ____________ 
  10391.  
  10392. Description: The remove_dde_server_topic() function removes a particular topic 
  10393. from a server.  The server will no longer respond to request for the particular 
  10394. topic.  The serverid argument contains the server from which the topic will be 
  10395. removed. 
  10396.  
  10397. The topic argument contains the string name of the topic to delete. 
  10398.  
  10399. ____________ 
  10400.  
  10401. Value returned: This function does not return a value. 
  10402.  
  10403.  
  10404. ΓòÉΓòÉΓòÉ 14.4.12. wf_goto_next_error() ΓòÉΓòÉΓòÉ
  10405.  
  10406. wf_goto_next_error()   PEL 
  10407.  
  10408. Purpose:  Step through the list of workframe errors. 
  10409.  
  10410. ____________ 
  10411.  
  10412. Syntax:   void wf_goto_next_error() 
  10413.  
  10414. ____________ 
  10415.  
  10416. Arguments: none. 
  10417.  
  10418. Description: The wf_goto_next_error() function moves the cursor to the position 
  10419. specified by the next error in the list of errors generated by Workframe. 
  10420.  
  10421. ____________ 
  10422.  
  10423. Value returned: none. 
  10424.  
  10425.  
  10426. ΓòÉΓòÉΓòÉ 14.4.13. wf_goto_prev_error() ΓòÉΓòÉΓòÉ
  10427.  
  10428. wf_goto_prev_error()   PEL 
  10429.  
  10430. Purpose:  Step through the list of workframe errors. 
  10431.  
  10432. ____________ 
  10433.  
  10434. Syntax:   void wf_goto_prev_error() 
  10435.  
  10436. ____________ 
  10437.  
  10438. Arguments: none. 
  10439.  
  10440. Description: The wf_goto_prev_error() function moves the cursor to the position 
  10441. specified by the previous error in the list of errors generated by Workframe. 
  10442.  
  10443. ____________ 
  10444.  
  10445. Value returned: none. 
  10446.  
  10447.  
  10448. ΓòÉΓòÉΓòÉ 14.5. Dialog Windows ΓòÉΓòÉΓòÉ
  10449.  
  10450. add_dialog_item() 
  10451.           Adds a dialog control to a dialog box. 
  10452. add_item_to_list() 
  10453.           To add an item to a list dialog. 
  10454. begin_dialog() 
  10455.           Displays a dialog box. 
  10456. create_dialog() 
  10457.           Creates a modal dialog box from a resource file. 
  10458. create_dialog_template() 
  10459.           Creates a blank modal dialog box. 
  10460. create_list_dialog() 
  10461.           To create a standard list dialog. 
  10462. create_mdialog() 
  10463.           Creates a modeless dialog box from a resource file. 
  10464. create_mdialog_template() 
  10465.           Creates a blank modeless dialog box. 
  10466. create_selection_dialog() 
  10467.           To create a dialog which prompts the user with a list of selections. 
  10468. delete_dialog() 
  10469.            Removes a dialog box from memory. 
  10470. delete_list_dialog() 
  10471.           To delete a list dialog window 
  10472. dialog_history() 
  10473.           Set a up a history for a dialog box. 
  10474. dialog_list() 
  10475.           Displays the list of list dialogs. 
  10476. first_dialog() 
  10477.           To get the handle of the dialog window first in the internal list. 
  10478. goto_next_error() 
  10479.           Move cursor to position of next compile error. 
  10480. next_dialog() 
  10481.           To get the handle of the dialog window next in the internal list. 
  10482. query_dialog_item() 
  10483.           Queries various information about a dialog control. 
  10484. query_dialog_window() 
  10485.           To query different dialog window attributes. 
  10486. select_menuitem() 
  10487.           Selects a particular menu item. 
  10488. set_dialog_focus() 
  10489.           Sets focus to a control contained in a dialog box 
  10490. set_dialog_item() 
  10491.           Sets various attributes of a given dialog control. 
  10492. set_dialog_window() 
  10493.           To set different dialog window attributes. 
  10494.  
  10495.  
  10496. ΓòÉΓòÉΓòÉ 14.5.1. add_dialog_item() ΓòÉΓòÉΓòÉ
  10497.  
  10498. add_dialog_item()   Primitive 
  10499.  
  10500. Purpose: Adds a dialog control to a dialog box. 
  10501.  
  10502. ____________ 
  10503.  
  10504. Syntax: long add_dialog_item ( long  dlgid, short  index, short  style,[string 
  10505. label,[short  x0, short  y0, short  width, short  height]] ) 
  10506.  
  10507. ____________ 
  10508.  
  10509. Description: The add_dialog_item() function adds a dialog control to a dialog 
  10510. box. The dialog box can be created with any of the dialog box creation 
  10511. functions. 
  10512.  
  10513. The dlgid argument contains the dialog box window that the control is added to. 
  10514.  
  10515. The index argument contains the id of the dialog control.  The index is used to 
  10516. identify the control in all other dialog control functions. 
  10517.  
  10518. The style argument contains the type of control to create. The style argument 
  10519. can be one of the following: 
  10520.  
  10521. DCTRL_DEFAULT_PUSH_BUTTON  - default push button 
  10522. DCTRL_PUSH_BUTTON          - normal push button 
  10523. DCTRL_RADIO_BUTTON         - radio button 
  10524. DCTRL_CHECK_BOX            - normal check box 
  10525. DCTRL_TRISTATE             - 3 state check box 
  10526. DCTRL_EDIT                 - edit box 
  10527. DCTRL_EDIT_KEY             - same as DCTRL_EDIT 
  10528. DCTRL_STATIC_TEXT          - static text 
  10529. DCTRL_GROUP_BOX            - group box 
  10530. DCTRL_LIST_BOX             - list box 
  10531. DCTRL_COMBO_BOX            - combo box 
  10532. DCTRL_NOTEBOOK             - notebook 
  10533. DCTRL_MULTI_LIST_BOX       - multiple select list box 
  10534.  
  10535. The label argument contains the text of the control.  The label argument 
  10536. affects controls in the following way: 
  10537.  
  10538. DCTRL_DEFAULT_PUSH_BUTTON  - push button text 
  10539. DCTRL_PUSH_BUTTON          - push button text 
  10540. DCTRL_RADIO_BUTTON         - radio button text 
  10541. DCTRL_CHECK_BOX            - check box text 
  10542. DCTRL_TRISTATE             - check box text 
  10543. DCTRL_EDIT                 - no effect 
  10544. DCTRL_EDIT_KEY             - no effect 
  10545. DCTRL_STATIC_TEXT          - text of control 
  10546. DCTRL_GROUP_BOX            - group box title 
  10547. DCTRL_LIST_BOX             - no effect 
  10548. DCTRL_COMBO_BOX            - no effect 
  10549. DCTRL_NOTEBOOK             - no effect 
  10550. DCTRL_MULTI_LIST_BOX       - no effect 
  10551.  
  10552. The x0 argument contains the initial x position in pixels for the dialog box 
  10553. control.  The lower left corner of the dialog box is the origin.  If the x0 
  10554. argument is specified y0, width, and height arguments must also be specified. 
  10555.  
  10556. The y0 argument contains the initial y position for the dialog box control. 
  10557.  
  10558. The width argument contains the initial width of the dialog box control. 
  10559.  
  10560. The height argument contains the initial height of the dialog box control. 
  10561.  
  10562. ____________ 
  10563.  
  10564. Value returned: This function returns the dialog box control id. 
  10565.  
  10566.  
  10567. ΓòÉΓòÉΓòÉ 14.5.2. add_item_to_list() ΓòÉΓòÉΓòÉ
  10568.  
  10569. add_item_to_list()   PEL 
  10570.  
  10571. Purpose:  To add an item to a list dialog. 
  10572.  
  10573. ____________ 
  10574.  
  10575. Syntax:   add_item_to_list(int dlgid, str data, str filename, int line, int 
  10576. col, [int hlen] ) 
  10577.  
  10578. ____________ 
  10579.  
  10580. Arguments: 
  10581.  
  10582. o dlgid   - dialog box to add item to 
  10583. o data   - data to put in the list box 
  10584. o filename - filename to load when item is selected 
  10585. o line   - line in file to goto when item is selected 
  10586. o col    - column in file to goto when item is selected 
  10587. o hlen   - highlight length. 
  10588.  
  10589. Description: This function adds an item to a list dialog, and stores the 
  10590. information necessary to perform the Goto, Next and Prev functions of the 
  10591. dialog.  If hlen is zero no text is highlighted, if it is -1 the whole line is 
  10592. highlighted, if it is -2 all characters from col to the end-of-line are 
  10593. selected, otherwise hlen characters are highlighted starting at col. 
  10594.  
  10595. See also:  create_list_dialog(), valid_list_dialog(), delete_list_dialog() 
  10596.  
  10597. ____________ 
  10598.  
  10599. Value returned:  none 
  10600.  
  10601.  
  10602. ΓòÉΓòÉΓòÉ 14.5.3. begin_dialog() ΓòÉΓòÉΓòÉ
  10603.  
  10604. begin_dialog()   Primitive 
  10605.  
  10606. Purpose: Displays a dialog box. 
  10607.  
  10608. ____________ 
  10609.  
  10610. Syntax: void begin_dialog(long dlgid, [bool auto_delete]) 
  10611.  
  10612. ____________ 
  10613.  
  10614. Arguments: 
  10615.  
  10616. dlgd - contains the dialog window to display.  This argument must be a value 
  10617. returned from a create_[m]dialog() function. 
  10618.  
  10619. auto_delete - setting this flag to TRUE tells the dialog to delete itself when 
  10620. it is closed. Because this is an optional argument, it is FALSE by default. 
  10621.  
  10622. ____________ 
  10623.  
  10624. Description: The begin_dialog() function displays a dialog box for user input. 
  10625. For modal dialog boxes this function will not return until the dialog box is 
  10626. closed.  This function returns immediately for modeless dialog boxes. 
  10627.  
  10628. ____________ 
  10629.  
  10630. Value returned: None. 
  10631.  
  10632.  
  10633. ΓòÉΓòÉΓòÉ 14.5.4. create_dialog() ΓòÉΓòÉΓòÉ
  10634.  
  10635. create_dialog()   Primitive 
  10636.  
  10637. Purpose: Creates a modal dialog box from a resource file. 
  10638.  
  10639. ____________ 
  10640.  
  10641. Syntax: long create_dialog( macroid callback_id, long parent, long resource_id, 
  10642. [string  resource_file, [string  label]] ) 
  10643.  
  10644. ____________ 
  10645.  
  10646. Description: The create_dialog() function creates a modal dialog box from a 
  10647. resource file.  Dialog boxes created with this function must reside in a 
  10648. resource dll.  See the RESOURCE DLL section for more information on creating 
  10649. and using resource dll's. 
  10650.  
  10651. The callback_id argument contains the macro id of the function that is called 
  10652. whenever an important dialog event occurs.  See the section on DIALOG EVENTS 
  10653. for a list of events that could occur. 
  10654.  
  10655. The parent argument contains the parent of the dialog box. The following are 
  10656. valid values for the parent argument: 
  10657.  
  10658.  
  10659. value dialog's parent
  10660. ----- ---------------
  10661.  -1  no parent
  10662.  0  main editor window
  10663. other another dialog box id
  10664.  
  10665. The resource_id argument contains the resource id of the dialog box. The 
  10666. resource_id must be in either the default resource dll or the resource dll 
  10667. specified by the resource_file parameter. 
  10668.  
  10669. The resource_file argument contains the resource dll that holds the dialog box 
  10670. resource.  This file must be in a directory contained in your LIBPATH 
  10671. environment variable for OS/2 or your PATH environment variable for Windows. 
  10672. If this argument is not specified or is an empty string then the default 
  10673. resource dll will be used.  On startup all resources are retrieved from the 
  10674. executable file unless a call to the use_resource_file() function is made. 
  10675.  
  10676. The label argument contains an optional title for the dialog box.  The label is 
  10677. displayed on the dialog box caption bar. 
  10678.  
  10679. ____________ 
  10680.  
  10681. Value returned: The create_dialog() function returns the dialog id of the newly 
  10682. created dialog box or 0 if the call failed. 
  10683.  
  10684.  
  10685. ΓòÉΓòÉΓòÉ 14.5.5. create_dialog_template() ΓòÉΓòÉΓòÉ
  10686.  
  10687. create_dialog_template()   Primitive 
  10688.  
  10689. Purpose: Creates a blank modal dialog box. 
  10690.  
  10691. ____________ 
  10692.  
  10693. Syntax: long create_dialog_template(  macroid  callback_id, long  parent, 
  10694. string label,[short x0,short y0, short width, short height] ) 
  10695.  
  10696. ____________ 
  10697.  
  10698. Description: The create_dialog_template() function creates a blank modal dialog 
  10699. box that is used for creating dialog boxes without resource files. After the 
  10700. create_dialog_template() function is called then the add_dialog_item() function 
  10701. can be used to add controls to the dialog box. 
  10702.  
  10703. The callback_id argument contains the macro id of the function that is called 
  10704. whenever an important dialog event occurs.  See the section on DIALOG EVENTS 
  10705. for a list of events that could occur. 
  10706.  
  10707. The parent argument contains the parent of the dialog box. The following are 
  10708. valid values for the parent argument: 
  10709.  
  10710.  
  10711. value dialog's parent
  10712. ----- ---------------
  10713.  -1  no parent
  10714.  0  main editor window
  10715.    other another dialog box id
  10716.  
  10717. The label argument contains the title for the dialog box.  The label is 
  10718. displayed on the dialog box caption bar. 
  10719.  
  10720. The x0 argument contains the initial x position for the dialog box. The lower 
  10721. left corner of the editor is the origin.  If the x0 argument is specified y0, 
  10722. width, and height arguments must also be specified. 
  10723.  
  10724. The y0 argument contains the initial y position for the dialog box. 
  10725.  
  10726. The width argument contains the initial width of the dialog box. 
  10727.  
  10728. The height argument contains the initial height of the dialog box. 
  10729.  
  10730. ____________ 
  10731.  
  10732. Value returned: The create_dialog_template() function returns the dialog id of 
  10733. the newly created dialog box or 0 if the call failed. 
  10734.  
  10735.  
  10736. ΓòÉΓòÉΓòÉ 14.5.6. create_list_dialog() ΓòÉΓòÉΓòÉ
  10737.  
  10738. create_list_dialog()   PEL 
  10739.  
  10740. Purpose:  To create a standard list dialog. 
  10741.  
  10742. ____________ 
  10743.  
  10744. Syntax:   create_list_dialog( str title, [str help_file, [funcid sub_callback]] 
  10745.  
  10746. ____________ 
  10747.  
  10748. Arguments: 
  10749.  
  10750. o title - the title of the dialog window 
  10751. o help_file - the help file to attach to the dialog window 
  10752. o sub_callback - substitute callback function 
  10753.  
  10754. Description: This function creates a standard list dialog such as the ones used 
  10755. by the Bookmark List, Find All Lists, and Dialog Lists. The functionality of 
  10756. the Goto, Prev, Next, Close, and Help buttons are handled automatically. To 
  10757. customize the dialog, you may provide an optional substitute callback function 
  10758. that will change or add to the already existing functionality.  The default 
  10759. callback function is dlg_list_callback(), which you may call from within your 
  10760. own callback to handle any messages you do not wish to process. The Find All 
  10761. list extends the standard list dialog in this way in order to add Stop button. 
  10762.  
  10763. See also:  add_item_to_list(), valid_list_dialog(), delete_list_dialog() 
  10764.  
  10765. ____________ 
  10766.  
  10767. Value returned: This function returns the dialog id of the list dialog. 
  10768.  
  10769.  
  10770. ΓòÉΓòÉΓòÉ 14.5.7. create_mdialog() ΓòÉΓòÉΓòÉ
  10771.  
  10772. create_mdialog()   Primitive 
  10773.  
  10774. Purpose: Creates a modeless dialog box from a resource file. 
  10775.  
  10776. ____________ 
  10777.  
  10778. Syntax: long create_mdialog( macroid callback_id, long parent, long 
  10779. resource_id, [string  resource_file, [string  label]] ) 
  10780.  
  10781. ____________ 
  10782.  
  10783. Description: The create_mdialog() function creates a modeless dialog box from a 
  10784. resource file.  Dialog boxes created with this function must reside in a 
  10785. resource dll.  See the RESOURCE DLL section for more information on creating 
  10786. and using resource dll's. 
  10787.  
  10788. The callback_id argument contains the macro id of the function that is called 
  10789. whenever an important dialog event occurs.  See the section on DIALOG EVENTS 
  10790. for a list of events that could occur. 
  10791.  
  10792. The parent argument contains the parent of the dialog box. The following are 
  10793. valid values for the parent argument: 
  10794.  
  10795.  
  10796. value dialog's parent
  10797. ----- ---------------
  10798.  -1  no parent
  10799.  0  main editor window
  10800.    other another dialog box id
  10801.  
  10802. The resource_id argument contains the resource id of the dialog box. The 
  10803. resource_id must be in either the default resource dll or the resource dll 
  10804. specified by the resource_file parameter. 
  10805.  
  10806. The resource_file argument contains the resource dll that holds the dialog box 
  10807. resource.  This file must be in a directory contained in your LIBPATH 
  10808. environment variable for OS/2 or your PATH environment variable for Windows. 
  10809. If this argument is not specified or is an empty string then the default 
  10810. resource dll will be used.  On startup all resources are retrieved from the 
  10811. executable file unless a call to the use_resource_file() function is made. 
  10812.  
  10813. The label argument contains an optional title for the dialog box.  The label is 
  10814. displayed on the dialog box caption bar. 
  10815.  
  10816. ____________ 
  10817.  
  10818. Value returned: The create_mdialog() function returns the dialog id of the 
  10819. newly created dialog box or 0 if the call failed. 
  10820.  
  10821.  
  10822. ΓòÉΓòÉΓòÉ 14.5.8. create_mdialog_template() ΓòÉΓòÉΓòÉ
  10823.  
  10824. create_mdialog_template()   Primitive 
  10825.  
  10826. Purpose: Creates a blank modeless dialog box. 
  10827.  
  10828. ____________ 
  10829.  
  10830. Syntax: long create_mdialog_template( macroid  callback_id, long parent, string 
  10831. label, [short   x0, short   y0, short width, short   height] ) 
  10832.  
  10833. ____________ 
  10834.  
  10835. Description: The create_mdialog_template() function creates a blank modeless 
  10836. dialog box that is used for creating dialog boxes without resource files. After 
  10837. the create_mdialog_template() function is called then the add_dialog_item() 
  10838. function can be used to add controls to the dialog box. 
  10839.  
  10840. The callback_id argument contains the macro id of the function that is called 
  10841. whenever an important dialog event occurs.  See the section on DIALOG EVENTS 
  10842. for a list of events that could occur. 
  10843.  
  10844. The parent argument contains the parent of the dialog box. The following are 
  10845. valid values for the parent argument: 
  10846.  
  10847.  
  10848. value dialog's parent
  10849. ----- ---------------
  10850.  -1  no parent
  10851.  0  main editor window
  10852.    other another dialog box id
  10853.  
  10854. The label argument contains the title for the dialog box.  The label is 
  10855. displayed on the dialog box caption bar. 
  10856.  
  10857. The x0 argument contains the initial x position for the dialog box. The lower 
  10858. left corner of the editor is the origin.  If the x0 argument is specified y0, 
  10859. width, and height arguments must also be specified. 
  10860.  
  10861. The y0 argument contains the initial y position for the dialog box. 
  10862.  
  10863. The width argument contains the initial width of the dialog box. 
  10864.  
  10865. The height argument contains the initial height of the dialog box. 
  10866.  
  10867. ____________ 
  10868.  
  10869. Value returned: The create_mdialog_template() function returns the dialog id of 
  10870. the newly created dialog box or 0 if the call failed. 
  10871.  
  10872.  
  10873. ΓòÉΓòÉΓòÉ 14.5.9. create_selection_dialog() ΓòÉΓòÉΓòÉ
  10874.  
  10875. create_selection_dialog()   PEL 
  10876.  
  10877. Purpose:  To create a dialog which prompts the user with a list of selections. 
  10878.  
  10879. ____________ 
  10880.  
  10881. Syntax:   create_selection_dialog( str title, int width, array list, [int 
  10882. parent] ) 
  10883.  
  10884. ____________ 
  10885.  
  10886. Arguments: 
  10887.  
  10888. o title - the title of the dialog 
  10889. o width - the width of the dialog, in list box characters 
  10890. o list - an array of selections to enter into the list 
  10891. o parent - the parent id of the dialog, 0 for editor window 
  10892.  
  10893. Description: This function creates a dialog which provides the user with a list 
  10894. of selections to choose from, one of the most convenient forms of input in the 
  10895. editor. In order to prompt the user to select from a list of strings, call this 
  10896. function to create the dialog, call begin_dialog() to display the dialog, and 
  10897. then the variable new_response will contain the item selected by the user, or 
  10898. "" if cancel was selected. 
  10899.  
  10900. ____________ 
  10901.  
  10902. Value returned:  the id of the dialog window created 
  10903.  
  10904.  
  10905. ΓòÉΓòÉΓòÉ 14.5.10. delete_dialog() ΓòÉΓòÉΓòÉ
  10906.  
  10907. delete_dialog()   Primitive 
  10908.  
  10909. Purpose:  Removes a dialog box from memory. 
  10910.  
  10911. ____________ 
  10912.  
  10913. Syntax:  void delete_dialog(long dlgid) 
  10914.  
  10915. ____________ 
  10916.  
  10917. Description: The delete_dialog() function deletes a dialog window from memory. 
  10918. The dialog window will be invalid after this call is made.  This function 
  10919. should be called whenever you no longer need a dialog box. 
  10920.  
  10921. The dlgid argument contains the dialog window to delete. 
  10922.  
  10923. ____________ 
  10924.  
  10925. Value returned: The delete_dialog() function does not return any useful value. 
  10926.  
  10927.  
  10928. ΓòÉΓòÉΓòÉ 14.5.11. delete_list_dialog() ΓòÉΓòÉΓòÉ
  10929.  
  10930. delete_list_dialog()   PEL 
  10931.  
  10932. Purpose:  To delete a list dialog window 
  10933.  
  10934. ____________ 
  10935.  
  10936. Syntax:   delete_list_dialog( int dlgid ) 
  10937.  
  10938. ____________ 
  10939.  
  10940. Arguments: 
  10941.  
  10942. o dlgid - the list dialog to delete 
  10943.  
  10944. Description: This function deletes the specified list dialog and the 
  10945. information associated with that dialog. 
  10946.  
  10947. See also:  create_list_dialog(), add_item_to_list(), valid_list_dialog() 
  10948.  
  10949. ____________ 
  10950.  
  10951. Value returned:  none 
  10952.  
  10953.  
  10954. ΓòÉΓòÉΓòÉ 14.5.12. dialog_history() ΓòÉΓòÉΓòÉ
  10955.  
  10956. dialog_history()   PEL 
  10957.  
  10958. Purpose:  Set a up a history for a dialog box. 
  10959.  
  10960. ____________ 
  10961.  
  10962. Syntax:   void dialog_history( long dlgHand, short dlgId, str histName ) 
  10963.  
  10964. ____________ 
  10965.  
  10966. Arguments: 
  10967.  
  10968. o dlgHand - Handle of the dialog 
  10969. o dlgId - Id of the control which will have the associated history 
  10970. o histName - string name of the history list 
  10971.  
  10972. Description: The dialog_history() function associates a history list to the 
  10973. specified control in the given dialog.  The user may then use arrow keys and 
  10974. the tab key to cycle through the list or expand the current entry. 
  10975.  
  10976. ____________ 
  10977.  
  10978. Value returned: None 
  10979.  
  10980.  
  10981. ΓòÉΓòÉΓòÉ 14.5.13. dialog_list() ΓòÉΓòÉΓòÉ
  10982.  
  10983. dialog_list()   PEL 
  10984.  
  10985. Purpose:  Displays the list of list dialogs. 
  10986.  
  10987. ____________ 
  10988.  
  10989. Syntax:   dialog_list() 
  10990.  
  10991. ____________ 
  10992.  
  10993. Arguments:  none 
  10994.  
  10995. Description: 
  10996.  
  10997. ____________ 
  10998.  
  10999. Value returned:  none 
  11000.  
  11001.  
  11002. ΓòÉΓòÉΓòÉ 14.5.14. first_dialog() ΓòÉΓòÉΓòÉ
  11003.  
  11004. first_dialog()   Primitive 
  11005.  
  11006. Purpose: To get the handle of the dialog window first in the internal list. 
  11007.  
  11008. ____________ 
  11009.  
  11010. Syntax: first_dialog() 
  11011.  
  11012. ____________ 
  11013.  
  11014. Description: This function is used to get the handle of the dialog window first 
  11015. in the internal list of dialogs.  Call this function to get the first handle, 
  11016. and then next_dialog() to get the next consecutive dialogs. 
  11017.  
  11018. ____________ 
  11019.  
  11020. Value returned:  The handle of the dialog window first in the internal list, or 
  11021. NULL if their are no dialogs in the list. 
  11022.  
  11023.  
  11024. ΓòÉΓòÉΓòÉ 14.5.15. goto_next_error() ΓòÉΓòÉΓòÉ
  11025.  
  11026. goto_next_error()   PEL 
  11027.  
  11028. Purpose: Move cursor to position of next compile error. 
  11029.  
  11030. ____________ 
  11031.  
  11032. Syntax:  void goto_next_error() 
  11033.  
  11034. ____________ 
  11035.  
  11036. Description: The goto_next_error() function allows the user to move 
  11037. sequentially in the source code from one compile error to the next. 
  11038.  
  11039. On the first call to goto_next_error(), after a compile, the function 
  11040. determines from the name of the current buffer the name of the file in which 
  11041. error messages have been captured.  It then locates and displays the position 
  11042. in the source code of the first error listed in that file.  The associated 
  11043. error message is displayed in the dialog window. 
  11044.  
  11045. On subsequent calls to goto_next_error(), the next message in the error listing 
  11046. file is read, the cursor is positioned at the proper place in the appropriate 
  11047. file, and again the error message is displayed in the dialog window. 
  11048.  
  11049. If there are no known rules for parsing the error messages associated with the 
  11050. current buffer, this function cannot succeed.  A message to that effect is then 
  11051. displayed. Several sets of error parsing rules which may be associated with 
  11052. filename extensions. This may be done using the add_compiler() function. 
  11053.  
  11054. ____________ 
  11055.  
  11056. Value returned: No useful value is returned by this function. 
  11057.  
  11058.  
  11059. ΓòÉΓòÉΓòÉ 14.5.16. next_dialog() ΓòÉΓòÉΓòÉ
  11060.  
  11061. next_dialog()   Primitive 
  11062.  
  11063. Purpose: To get the handle of the dialog window next in the internal list. 
  11064.  
  11065. ____________ 
  11066.  
  11067. Syntax: next_dialog() 
  11068.  
  11069. ____________ 
  11070.  
  11071. Description: This function is used to get the handle of the dialog window next 
  11072. in the internal list of dialogs.  Call first_dialog() to get the dialog first 
  11073. in the list, and then next_dialog() to step through the list of dialogs. 
  11074.  
  11075. ____________ 
  11076.  
  11077. Value returned:  The handle of the dialog window next in the internal list, or 
  11078. NULL if there are no more dialogs in the list. 
  11079.  
  11080.  
  11081. ΓòÉΓòÉΓòÉ 14.5.17. query_dialog_item() ΓòÉΓòÉΓòÉ
  11082.  
  11083. query_dialog_item()   Primitive 
  11084.  
  11085. Purpose: Queries various information about a dialog control. 
  11086.  
  11087. ____________ 
  11088.  
  11089. Syntax: any query_dialog_item(long  dlgid, short index, short flag, [any 
  11090. value] ) 
  11091.  
  11092. ____________ 
  11093.  
  11094. Description: The query_dialog_item() function queries various information about 
  11095. a dialog control. 
  11096.  
  11097. The dlgid argument contains the dialog id which contains the control. 
  11098.  
  11099. The index argument contains the id of the control. 
  11100.  
  11101. The flag argument contains the attribute of the dialog control to query. 
  11102.  
  11103. o DAC_CHECK 
  11104. o DAC_COUNT_ITEMS 
  11105. o DAC_COUNT_SELECTED 
  11106. o DAC_DISABLE 
  11107. o DAC_ENABLE 
  11108. o DAC_FIRST_INDEX 
  11109. o DAC_FIRST_ITEM 
  11110. o DAC_GET_INDEX_ITEM 
  11111. o DAC_GRAY_CHECK 
  11112. o DAC_HIDE 
  11113. o DAC_NEXT_INDEX 
  11114. o DAC_NEXT_ITEM 
  11115. o DAC_SELECT_INDEX 
  11116. o DAC_SELECT_ITEM 
  11117. o DAC_SHOW 
  11118. o DAC_TEXT 
  11119. o DAC_UNCHECK 
  11120. o DAC_VS_QUERY_ITEM 
  11121. o DAC_VS_QUERY_METRICS 
  11122. o DAC_VS_QUERY_SELECTED 
  11123. o DAC_VS_SET_ITEM 
  11124. o DAC_VS_SET_METRICS 
  11125.  
  11126. ____________ 
  11127.  
  11128. Value returned: 
  11129.  
  11130.  
  11131. ΓòÉΓòÉΓòÉ 14.5.18. query_dialog_window() ΓòÉΓòÉΓòÉ
  11132.  
  11133. query_dialog_window()   Primitive 
  11134.  
  11135. Purpose: To query different dialog window attributes. 
  11136.  
  11137. ____________ 
  11138.  
  11139. Syntax: any query_dialog_window(  long  dlghand, short flag, [any  value, any 
  11140. value2]] ) 
  11141.  
  11142. ____________ 
  11143.  
  11144. Description: This function allows you to query the following dialog window 
  11145. attributes: 
  11146.  
  11147. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  11148. ΓöéFlag            ΓöéReturn value                  Γöé
  11149. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  11150. ΓöéDWC_TITLE:      ΓöéTitle of the dialog window    Γöé
  11151. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  11152. ΓöéDWC_POSITION:   ΓöéPosition of the window on the Γöé
  11153. Γöé                Γöéscreen in pixels.             Γöé
  11154. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  11155. ΓöéDWC_SIZE:       ΓöéSize of the dialog window in  Γöé
  11156. Γöé                Γöépixels.                       Γöé
  11157. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  11158. ΓöéDWC_HIDE:       ΓöéTRUE if hidden, FALSE if      Γöé
  11159. Γöé                Γöévisible                       Γöé
  11160. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  11161. ΓöéDWC_SHOW:       ΓöéTRUE if visible, FALSE if     Γöé
  11162. Γöé                Γöéhidden                        Γöé
  11163. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  11164. ΓöéDWC_ICONIZED    ΓöéTRUE if the dialog is         Γöé
  11165. Γöé                Γöéiconized, FALSE if not        Γöé
  11166. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  11167. ΓöéDWC_ZOOMED      ΓöéTRUE if dialog is zoomed,     Γöé
  11168. Γöé                ΓöéFALSE if not                  Γöé
  11169. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  11170.  
  11171. ____________ 
  11172.  
  11173. Value returned: Returns the value of the attribute specified. 
  11174.  
  11175.  
  11176. ΓòÉΓòÉΓòÉ 14.5.19. select_menuitem() ΓòÉΓòÉΓòÉ
  11177.  
  11178. select_menuitem()   Primitive 
  11179.  
  11180. Purpose: Selects a particular menu item. 
  11181.  
  11182. ____________ 
  11183.  
  11184. Syntax: void select_menuitem() 
  11185.  
  11186. ____________ 
  11187.  
  11188. Description: The select_menuitem() function selects a menu item from the main 
  11189. application menu.  The menu accelerators are used to select the particular menu 
  11190. item based on the current_key() variable. For example, if current_key() was 'F' 
  11191. and the select_menuitem() function was called the menu item with an 'F' as its 
  11192. accelerator key would be selected. If currentKey doesn't match any menu 
  11193. accelerator then the first menu item is selected. 
  11194.  
  11195. The select_menuitem() function is especially useful in keymaps to map 
  11196. <Alt-....> combinations to select menu items. 
  11197.  
  11198. ____________ 
  11199.  
  11200. Value returned: The select_menuitem() function does not return a value. 
  11201.  
  11202.  
  11203. ΓòÉΓòÉΓòÉ 14.5.20. set_dialog_focus() ΓòÉΓòÉΓòÉ
  11204.  
  11205. set_dialog_focus()   Primitive 
  11206.  
  11207. Purpose: Sets focus to a control contained in a dialog box 
  11208.  
  11209. ____________ 
  11210.  
  11211. Syntax: void set_dialog_focus(long dlgid, short index) 
  11212.  
  11213. ____________ 
  11214.  
  11215. Description: The set_dialog_focus() function gives focus to the specified 
  11216. control contained in a dialog box.  The control which contains focus in a 
  11217. dialog box receives all keyboard input with the exception of accelerator keys. 
  11218.  
  11219. The dlgid argument contains the id of the dialog box which contains the 
  11220. control. 
  11221.  
  11222. The index argument contains the control id of the control contained in the 
  11223. dialog box.  The index argument is either the id specified in the resource file 
  11224. if the dialog box was created from a resource dll or the id used in the 
  11225. add_dialog_item() function call. 
  11226.  
  11227. ____________ 
  11228.  
  11229. Value returned: No value is returned. 
  11230.  
  11231.  
  11232. ΓòÉΓòÉΓòÉ 14.5.21. set_dialog_item() ΓòÉΓòÉΓòÉ
  11233.  
  11234. set_dialog_item()   Primitive 
  11235.  
  11236. Purpose: Sets various attributes of a given dialog control. 
  11237.  
  11238. ____________ 
  11239.  
  11240. Syntax: long set_dialog_item(long  dlgid,  short index, short flag, [any 
  11241. value1, ...[any value7]]) 
  11242.  
  11243. ____________ 
  11244.  
  11245. Description: The set_dialog_item() function sets various attributes of a given 
  11246. dialog control. 
  11247.  
  11248. The dlgid argument is the dialog box that the control is on. 
  11249.  
  11250. The index argument contains the id of the dialog control. 
  11251.  
  11252. The flag argument contains the attribute of the dialog control to set: 
  11253.  
  11254. Valid Controls: 
  11255.  
  11256. o DAC_ADD_INDEX 
  11257. o DAC_ADD_ITEM 
  11258. o DAC_APPEND_PAGE 
  11259. o DAC_CHECK 
  11260. o DAC_BG_COLOR 
  11261. o DAC_DELETE_INDEX 
  11262. o DAC_DELETE_ITEM 
  11263. o DAC_DESELECT_INDEX 
  11264. o DAC_DESELECT_INDEX_RANGE 
  11265. o DAC_DESELECT_ITEMADDINDEX 
  11266. o DAC_DISABLE 
  11267. o DAC_ENABLE 
  11268. o DAC_FG_COLOR 
  11269. o DAC_GRAY_CHECK 
  11270. o DAC_HIDE 
  11271. o DAC_INSERT_PAGE_AFTER 
  11272. o DAC_INSERT_PAGE_AT_TOP 
  11273. o DAC_INSERT_PAGE_BEFORE 
  11274. o DAC_NO_SORT 
  11275. o DAC_POSITION 
  11276. o DAC_SELECT_INDEX 
  11277. o DAC_SELECT_INDEX_RANGE 
  11278. o DAC_SELECT_ITEM 
  11279. o DAC_SETFOCUS 
  11280. o DAC_SET_BACKPAGES 
  11281. o DAC_SET_BINDER_TYPE 
  11282. o DAC_SET_BUTTON_SIZE 
  11283. o DAC_SET_MAJOR_TAB_SIZE 
  11284. o DAC_SET_MINOR_TAB_SIZE 
  11285. o DAC_SET_STATUS_ALIGN 
  11286. o DAC_SET_TAB_ALIGN 
  11287. o DAC_SET_TAB_LOCATION 
  11288. o DAC_SET_TAB_TYPE 
  11289. o DAC_SET_TEXT_LEN 
  11290. o DAC_SHOW 
  11291. o DAC_SIZE 
  11292. o DAC_SORT_ASCENDING 
  11293. o DAC_SORT_DESCENDING 
  11294. o DAC_SPIN_DOWN 
  11295. o DAC_SPIN_LIMITS 
  11296. o DAC_SPIN_OVERRIDELIMITS 
  11297. o DAC_SPIN_TEXTLIMIT 
  11298. o DAC_SPIN_UP 
  11299. o DAC_SPIN_VALUE 
  11300. o DAC_TEXT 
  11301. o DAC_UNCHECK 
  11302. o DAC_VS_SELECT_ITEM 
  11303.  
  11304. The optional value arguments vary depending on the flag parameter. 
  11305.  
  11306. ____________ 
  11307.  
  11308. Value returned: The return value depends of the flag argument. In all cases if 
  11309. the operation failed a 0 is returned.  Otherwise, in most other cases a 1 is 
  11310. returned for success.  The following flag values do not return 1 to indicate 
  11311. success but some other value. 
  11312.  
  11313. Flag successful          Return value 
  11314. DAC_ADDITEM              returns to position of the newly inserted item 
  11315. DAC_ADDINDEX             returns to position of the newly inserted item 
  11316. DAC_APPENDPAGE           returns the page id of the page 
  11317. DAC_INSERTPAGEATTOP      returns the page id of the page 
  11318. DAC_INSERTPAGEBEFORE     returns the page id of the page 
  11319. DAC_INSERTPAGEAFTER      returns the page id of the page 
  11320.  
  11321.  
  11322. ΓòÉΓòÉΓòÉ 14.5.22. set_dialog_window() ΓòÉΓòÉΓòÉ
  11323.  
  11324. set_dialog_window()   Primitive 
  11325.  
  11326. Purpose: To set different dialog window attributes. 
  11327.  
  11328. ____________ 
  11329.  
  11330. Syntax: void set_dialog_window(long dlghand, short flag, [any value, [any 
  11331. value2, [any value3, [any value4]]]]) 
  11332.  
  11333. ____________ 
  11334.  
  11335. Description: This function allows you to set the following dialog window 
  11336. attributes: 
  11337.  
  11338. DWC_ICONIZED:  Iconizes the dialog.
  11339. DWC_ZOOMED: Zooms the dialog.
  11340.  
  11341. DWC_TITLE:     Changes the title of the dialog window
  11342.            set_dialog_window(dh, DWC_TITLE, "My
  11343. Dialog")
  11344.  
  11345. DWC_POSITION:   Changes the position of the window on the
  11346. screen,
  11347.          specified in pixels.
  11348.            set_dialog_window(dh, DWC_POSITION,
  11349. x_position, y_position)
  11350.  
  11351. DWC_SIZE:     Changes the size of the dialog window, in
  11352. pixels.
  11353.            set_dialog_window(dh, DWC_SIZE,
  11354. x_dimension, y_dimension)
  11355.  
  11356. DWC_HIDE:     Hides the dialog(makes it no longer visible on
  11357. the screen)
  11358.            set_dialog_window(dh, DWC_HIDE)
  11359.  
  11360. DWC_SHOW:     Shows the dialog(makes it visible on the
  11361. screen)
  11362.            set_dialog_window(dh, DWC_SHOW)
  11363.  
  11364. DWC_TO_TOP:    Moves the dialog to the top of the window stack
  11365.            set_dialog_window(dh, DWC_TO_TOP)
  11366.  
  11367. DWC_SIZEBORDER:  Changes the border of the dialog to a
  11368. user-sizeable border
  11369.            set_dialog_window(dh, DWC_SIZEBORDER)
  11370.  
  11371. DWC_NORMALBORDER: Changes the border of the dialog to a normal
  11372. window border
  11373.            set_dialog_window(dh, DWC_NORMALBORDER)
  11374.  
  11375. DWC_STICKONTOP:   Causes a modeless dialog box to always be on top of
  11376. (above) its parent window.
  11377.  
  11378. ____________ 
  11379.  
  11380. Value returned: Returns TRUE on success, FALSE on failure. 
  11381.  
  11382.  
  11383. ΓòÉΓòÉΓòÉ 14.5.23. valid_list_dialog() ΓòÉΓòÉΓòÉ
  11384.  
  11385. valid_list_dialog()   Primitive 
  11386.  
  11387. Purpose: To query whether a dialog id is a valid list dialog. 
  11388.  
  11389. ____________ 
  11390.  
  11391. Syntax: valid_list_dialog( int dlgid ) 
  11392.  
  11393. ____________ 
  11394.  
  11395. Arguments: 
  11396.  
  11397. dlgid - contains the dialog window handle to be queried. 
  11398.  
  11399. ____________ 
  11400.  
  11401. Description: The valid_list_dialog() function returns whether or not the input 
  11402. parameter is a valid dialog list dialog box. 
  11403.  
  11404. ____________ 
  11405.  
  11406. Value returned: 
  11407.  
  11408. 1 (TRUE) - if dlgid is a valid list dialog box. 
  11409.  
  11410. 0 (FALSE) - if dlgid is not a valid list dialog box. 
  11411.  
  11412. ____________ 
  11413.  
  11414. See also: create_list_dialog() 
  11415.  
  11416.  
  11417. ΓòÉΓòÉΓòÉ 14.6. Editor System ΓòÉΓòÉΓòÉ
  11418.  
  11419. The functions and variables in the Editor System category are general to the 
  11420. tasks that SPE must perform.  The variables specify which directories are to be 
  11421. used by the editor, which buffers and windows are presently selected and 
  11422. provide information about recent activities. 
  11423.  
  11424. The variables in this category include several that allow setting the text 
  11425. attributes for various features of the editor.  While these are system wide 
  11426. variables, there are several similar variables that set the attributes of 
  11427. window features.  This latter group of variables may be set independently for 
  11428. each window and are therefore listed in the Windowing category.  The possible 
  11429. values for these attributes in both categories are discussed and listed in the 
  11430. "Windowing" chapter. 
  11431.  
  11432. The functions in this category perform services that are not specific to a 
  11433. single buffer or window.  For this reason they are somewhat miscellaneous in 
  11434. nature.  The services provided include everything from quitting your SPE 
  11435. session to invoking nested editing processes.  Also included are functions to 
  11436. update the screen and for obtaining information about the functions in use. 
  11437.  
  11438. Among the functions listed here is autosave().  This function activates a 
  11439. feature that saves buffers to disk after a predefined interval during which no 
  11440. typing occurs.  You set the interval with the autosave_time variable. 
  11441.  
  11442. Another important function is the local_setup() function.  Use this function to 
  11443. modify defaults and general initialization.  This is where customizing SPE 
  11444. begins. 
  11445.  
  11446. autosave() 
  11447.           Toggles the auto-save feature on or off. 
  11448. backup_file() 
  11449.           Makes backup copies of files, when enabled. 
  11450. display_redraw() 
  11451.           Redraw the entire visible screen. 
  11452. display_update() 
  11453.           Update the visible screen with recent changes. 
  11454. done() 
  11455.           Exiting the editor normally. 
  11456. execute_function() 
  11457.           Calls a function with a string containing its invocation. 
  11458. invoke_function() 
  11459.           Send a query or request to PEL interpreter. 
  11460. local_setup() 
  11461.           Builds in your personal preferences. 
  11462. print_version() 
  11463.           Shows what version of the editor is in use. 
  11464. process_begin() 
  11465.           Initiate a nested editing process. 
  11466. process_end() 
  11467.           Terminate a nested editing process. 
  11468. pwd() 
  11469.           Displays the current working directory 
  11470. query_editwin_property() 
  11471.           Allows you to view the EWC_MAXIMIZE, EWC_NORMAL and EWC_MINIMIZE 
  11472.           proterties 
  11473. quit() 
  11474.           Exits the editor in an orderly fashion. 
  11475. set_editwin_property() 
  11476.           To set various properties of the main editor window. 
  11477. toggle_file_backup() 
  11478.           Toggles creation of backup files. 
  11479. toggle_status_bar() 
  11480.           Sets or toggles the status bar. 
  11481. toggle_stb_flags() 
  11482.           Toggles the value of the search_flags variable. 
  11483. tracking_bottom 
  11484.           Bottom side of the tracking rectangle. 
  11485. tracking_height 
  11486.           Height of tracking rectangle. 
  11487. tracking_left 
  11488.           Left side of tracking rectangle. 
  11489. tracking_width 
  11490.           Width of tracking rectangle. 
  11491. update_current_view() 
  11492.           To update the display of the current window. 
  11493. write_and_exit() 
  11494.           Save all buffers and exit the editor. 
  11495.  
  11496.  
  11497. ΓòÉΓòÉΓòÉ 14.6.1. autosave() ΓòÉΓòÉΓòÉ
  11498.  
  11499. autosave()   PEL 
  11500.  
  11501. Purpose: Toggles the auto-save feature on or off. 
  11502.  
  11503. ____________ 
  11504.  
  11505. Syntax:  void autosave([int atime [, int ftime]]) 
  11506.  
  11507. ____________ 
  11508.  
  11509. Description: The autosave() function toggles the use of the editor's auto-save 
  11510. feature.  A message is then displayed indicating if the feature has been turned 
  11511. on or off. 
  11512.  
  11513. The autosave() feature automatically saves a buffer to disk after a specified 
  11514. period of keyboard inactivity.  The period of inactivity is specified in 
  11515. seconds and is determined by the setting of the autosave_time variable.  The 
  11516. optional time argument may be used to set autosave_time at the same time as 
  11517. toggling on the autosave feature. 
  11518.  
  11519. The ftime argument indicates the number of seconds between forced saves.  That 
  11520. is, saves which occur without regard to keyboard activity.  This "forced saves" 
  11521. interval may be specified when toggling on autosave(), or by setting the 
  11522. autosave_force_time variable.  Either way, the interval is specified in 
  11523. seconds. Calling autosave() with an argument of 0 always turns off the 
  11524. auto-save feature regardless of its previous setting.  Non- zero values for 
  11525. this argument always turn it on. 
  11526.  
  11527. The buffer is not saved under the filename associated with the buffer ( 
  11528. buffer_filename ) since this would make it less convenient to abandon changes. 
  11529. Instead, the filename under which it is saved is derived from buffer_filename 
  11530. by making the third character of the extension a "!".  If the extension has 
  11531. less than two characters (e.g., ".C"), the extension is filled with underscores 
  11532. (e.g., ".C_!"). Thus, the auto-save file is stored in the same directory as the 
  11533. buffer's filename. If this extension presents a problem, you may modify the 
  11534. function library source code, found in AUTOSAVE.PEL, to assign a different 
  11535. extension to auto-save files. 
  11536.  
  11537. Files created by the auto-save function are deleted when the editor is exited 
  11538. normally. If power is lost or abort() is used to terminate the edit session 
  11539. these files are not deleted. 
  11540.  
  11541. ____________ 
  11542.  
  11543. Value returned: 
  11544.  
  11545. No useful value is returned by this function. 
  11546.  
  11547.  
  11548. ΓòÉΓòÉΓòÉ 14.6.2. backup_file() ΓòÉΓòÉΓòÉ
  11549.  
  11550. backup_file()   PEL 
  11551.  
  11552. Purpose: Makes backup copies of files, when enabled. 
  11553.  
  11554. ____________ 
  11555.  
  11556. Syntax:  int backup_file(str fname) 
  11557.  
  11558. ____________ 
  11559.  
  11560. Description: The backup_file() function saves a backup of file named by fname 
  11561. in the directory described by the backup_directory variable. If file backups 
  11562. have not been enabled ( toggle_file_backup() ), no backup is made. The 
  11563. extension applied to the backup file is controlled by the backup_file_ext 
  11564. variable. 
  11565.  
  11566. This function is used as part of the save process in the emulation packages. 
  11567. The making of backup copies may then be toggled on and off through the 
  11568. toggle_file_backup() function. 
  11569.  
  11570. This function renames (moves) the fname file to the file in the backup 
  11571. directory. This has the effect of removing the original file.  For this reason 
  11572. backup_file() should only be performed if the original file will immediately be 
  11573. restored by a save.  The best form for using this function is as follows: 
  11574.  
  11575.  {if ( buffer_is_modified() )
  11576.    { backup_file( buffer_filename )
  11577.    write_buffer()
  11578.    }
  11579.  }
  11580.  
  11581. ____________ 
  11582.  
  11583. Value returned: This function returns FALSE ( 0 ) if fname cannot be found.  It 
  11584. otherwise returns TRUE ( 1 ). 
  11585.  
  11586. ____________ 
  11587.  
  11588. See also:  toggle_file_backup() 
  11589.  
  11590.  
  11591. ΓòÉΓòÉΓòÉ 14.6.3. display_redraw() ΓòÉΓòÉΓòÉ
  11592.  
  11593. display_redraw()   Primitive 
  11594.  
  11595. Purpose: Redraw the entire visible screen. 
  11596.  
  11597. ____________ 
  11598.  
  11599. Syntax:  void display_redraw() 
  11600.  
  11601. ____________ 
  11602.  
  11603. Description: The display_redraw() function re-draws the display screen 
  11604. including the contents of all visible windows.  This function is useful when 
  11605. you have run a program that fails to properly restore the screen. 
  11606.  
  11607. ____________ 
  11608.  
  11609. Value returned: No useful value is returned by the display_redraw() function. 
  11610.  
  11611. ____________ 
  11612.  
  11613. See also:  display_update() 
  11614.  
  11615.  
  11616. ΓòÉΓòÉΓòÉ 14.6.4. display_update() ΓòÉΓòÉΓòÉ
  11617.  
  11618. display_update()   Primitive 
  11619.  
  11620. Purpose: Update the visible screen with recent changes. 
  11621.  
  11622. ____________ 
  11623.  
  11624. Syntax:  void display_update() 
  11625.  
  11626. ____________ 
  11627.  
  11628. Description: The display_update() function updates the display screen to 
  11629. reflect recent changes. This differs from the display_redraw() function in that 
  11630. only changes are sent to the screen.  In most cases only a small portion of the 
  11631. screen is re-drawn. 
  11632.  
  11633. Since updating the screen tends to slow the functioning of the editor, updating 
  11634. the screen is only done at intervals.  In addition, the display screen is 
  11635. usually not updated while a PEL function is executing. 
  11636.  
  11637. In writing a function, you may wish to ensure that the display reflects recent 
  11638. changes at some point in the function.  For example, if you change buffers and 
  11639. then use getkey() to obtain input, you will need to call display_update() for 
  11640. the users to see that the current buffer has changed. 
  11641.  
  11642. Just as flushing a file buffer ensures that the file is up to date, 
  11643. display_update() ensures that the screen reflects all changes.  The changes 
  11644. that are updated are changes to the contents of buffers and all other visible 
  11645. contents of the display screen. 
  11646.  
  11647. User written programs are not required to call this function.  All changes to 
  11648. screen contents will be reflected in the normal course of editor operations. 
  11649.  
  11650. ____________ 
  11651.  
  11652. Value returned: No useful value is returned by the display_update() function. 
  11653.  
  11654.  
  11655. ΓòÉΓòÉΓòÉ 14.6.5. done() ΓòÉΓòÉΓòÉ
  11656.  
  11657. done()   PEL 
  11658.  
  11659. Purpose: Exiting the editor normally. 
  11660.  
  11661. ____________ 
  11662.  
  11663. Syntax:  void done() 
  11664.  
  11665. ____________ 
  11666.  
  11667. Description: The done() function provides an orderly exit from the editor.  It 
  11668. prompts before exiting if any buffers are modified.  At that time it offers the 
  11669. options of exiting without saving, cancelling the exit or writing all modified 
  11670. buffers. 
  11671.  
  11672. ____________ 
  11673.  
  11674. Value returned: 
  11675.  
  11676. No useful value is returned by this function. 
  11677.  
  11678.  
  11679. ΓòÉΓòÉΓòÉ 14.6.6. execute_function() ΓòÉΓòÉΓòÉ
  11680.  
  11681. execute_function()   Primitive 
  11682.  
  11683. Purpose: Calls a function with a string containing its invocation. 
  11684.  
  11685. ____________ 
  11686.  
  11687. Syntax:  any execute_function(str function_call) 
  11688.  
  11689. ____________ 
  11690.  
  11691. Description: The execute_function() function provides access to the PEL 
  11692. interpreter for calling a function or making assignments to variables.  This 
  11693. allows user programs to obtain a function call or variable assignment 
  11694. interactively from the user. The assignment or function and arguments then need 
  11695. not be known to the program. 
  11696.  
  11697. Only constant values may be assigned to variables using this method. 
  11698.  
  11699. There are a number of caveats and limitations when executing functions in this 
  11700. manner:  Instead of placing parentheses around the arguments to the function 
  11701. whitespace is used.  A space between the function name and the first argument 
  11702. is sufficient.  All arguments to the function are determined by whitespace. 
  11703. This may not be circumvented by the use of quotes.  As an example, consider the 
  11704. string below:   message "hi there" 
  11705.  
  11706. If this string is supplied as an argument to execute_function() it is 
  11707. interpreted as follows:  Call the function named message() with the two 
  11708. arguments.  The first argument is "hi and the second argument is there". 
  11709.  
  11710. The arguments to a function executed in this manner are treated as constants -- 
  11711. not variables.  If you include a variable as an argument it is treated as a 
  11712. string constant; no value is substituted. 
  11713.  
  11714. ____________ 
  11715.  
  11716. Value returned: 
  11717.  
  11718. The value returned by the execute_function() function is the value returned to 
  11719. it by the function it executes. If the function_call string contain an invalid 
  11720. or mal-formed invocation, this function will fail and return a zero value. 
  11721.  
  11722.  
  11723. ΓòÉΓòÉΓòÉ 14.6.7. invoke_function() ΓòÉΓòÉΓòÉ
  11724.  
  11725. invoke_function()   PEL 
  11726.  
  11727. Purpose: Send a query or request to PEL interpreter. 
  11728.  
  11729. ____________ 
  11730.  
  11731. Syntax:  void invoke_function() 
  11732.  
  11733. ____________ 
  11734.  
  11735. Description: The invoke_function() function, normally assigned to a key, adds 
  11736. functionality to execute_function().  It prompts for a string which is to be 
  11737. sent to the PEL interpreter for processing.  In addition to the capabilities of 
  11738. execute_function(), it allows setting and querying of global and local values, 
  11739. and recognizes several functions that require special treatment. Global 
  11740. variables may be set at the invoke_function() prompt using the following 
  11741. format: var_name = constant 
  11742.  
  11743. Variables local to a module are set in a similar manner except that the 
  11744. variable name must be preceded by the module name and a colon: 
  11745. filename:var_name= constant 
  11746.  
  11747. Similarly, local functions may be executed using the following form: 
  11748. filename:func_name The value of variables and return values of functions may be 
  11749. obtained by placing a question mark at the beginning of command. For example: 
  11750.  
  11751.  ?brief.pel:my_margin  The functions to which invoke_function() gives special 
  11752. treatment are system(), dos_window(), filter() and other similar functions. 
  11753. The argument string supplied to these functions requires some preprocessing. 
  11754. Other functions will have their argument strings separated into arguments 
  11755. strictly on the basis of whitespace with little or no preprocessing of special 
  11756. characters. 
  11757.  
  11758. ____________ 
  11759.  
  11760. Value returned: 
  11761.  
  11762. No useful value is returned by this function.  The function responds to queries 
  11763. by displaying a message in the dialog window. 
  11764.  
  11765.  
  11766. ΓòÉΓòÉΓòÉ 14.6.8. local_setup() ΓòÉΓòÉΓòÉ
  11767.  
  11768. local_setup()   PEL 
  11769.  
  11770. Purpose: Builds in your personal preferences. 
  11771.  
  11772. ____________ 
  11773.  
  11774. Syntax: void local_setup() 
  11775.  
  11776. ____________ 
  11777.  
  11778. Description: The local_setup() function is called as part of the editor 
  11779. initialization process.  Specifically, it is called by the startup() function. 
  11780. It is intended as a receptacle for functions that install or establish your 
  11781. personal operating preferences. For your convenience, numerous function calls 
  11782. have been entered as comments within this function. This enables you to review 
  11783. many of the more popular options.  You may make those you desire to use 
  11784. operational by removing the pound sign ( # ) which precedes the desired option. 
  11785.  
  11786. The options selected in the local_setup() function may be overridden by options 
  11787. selected within the CPE.CFG configuration file.  This configuration file may be 
  11788. used to serve a purpose similar to local_setup(), but the less information 
  11789. contained in the configuration file the faster the editor will load.  It is 
  11790. therefore preferable to make permanent changes to the editor's setup by way of 
  11791. local_setup(). 
  11792.  
  11793. ____________ 
  11794.  
  11795. Value returned: No useful value is returned by this function. 
  11796.  
  11797.  
  11798. ΓòÉΓòÉΓòÉ 14.6.9. print_version() ΓòÉΓòÉΓòÉ
  11799.  
  11800. print_version()   PEL 
  11801.  
  11802. Purpose: Shows what version of the editor is in use. 
  11803.  
  11804. ____________ 
  11805.  
  11806. Syntax: void print_version() 
  11807.  
  11808. ____________ 
  11809.  
  11810. Description: The print_version() function displays the editor version number in 
  11811. the dialog window. 
  11812.  
  11813. ____________ 
  11814.  
  11815. Value returned: No useful value is returned by this function. 
  11816.  
  11817.  
  11818. ΓòÉΓòÉΓòÉ 14.6.10. process_begin() ΓòÉΓòÉΓòÉ
  11819.  
  11820. process_begin()   Primitive 
  11821.  
  11822. Purpose: Initiate a nested editing process. 
  11823.  
  11824. ____________ 
  11825.  
  11826. Syntax: any process_begin() 
  11827.  
  11828. ____________ 
  11829.  
  11830. Description: The process_begin() function begins a new editing process from 
  11831. within the current editing process. The new process inherits the keymap 
  11832. definition in effect when the new process is begun.  All of the definitions and 
  11833. buffers defined in the parent editing process are available in the new process. 
  11834. This new process continues until process_end() is called. This function is 
  11835. particularly useful for invoking menuing routines and pop-up utilities.  It 
  11836. simplifies the writing of such functions by relieving the writer of the need to 
  11837. insert numerous exit points in the function.  Instead, the process_end() 
  11838. function may be assigned to a specific keystroke, and the new process continues 
  11839. until that key sequence is entered. 
  11840.  
  11841. ____________ 
  11842.  
  11843. Value returned: The value returned by this function is determined by the 
  11844. process_end() function which terminates it. The return value is passed as an 
  11845. argument to the process_end() function. 
  11846.  
  11847.  
  11848. ΓòÉΓòÉΓòÉ 14.6.11. process_end() ΓòÉΓòÉΓòÉ
  11849.  
  11850. process_end()   Primitive 
  11851.  
  11852. Purpose: Terminate a nested editing process. 
  11853.  
  11854. ____________ 
  11855.  
  11856. Syntax: void process_end([any value]) 
  11857.  
  11858. ____________ 
  11859.  
  11860. Description: The process_end() function causes the current editing process to 
  11861. terminate.  If the editing process is nested within another process, control is 
  11862. returned to the previous process.  If there is no previous editing process, the 
  11863. Exit function is called.  The process, begun with process_begin() is terminated 
  11864. using the value argument as its return value. 
  11865.  
  11866. ____________ 
  11867.  
  11868. Value returned: No value is returned from this function since it does not 
  11869. itself return. 
  11870.  
  11871.  
  11872. ΓòÉΓòÉΓòÉ 14.6.12. query_editwin_property() ΓòÉΓòÉΓòÉ
  11873.  
  11874. query_editwin_property()   Primitive 
  11875.  
  11876. Purpose: Allows you to view the EWC_MAXIMIZE, EWC_NORMAL and EWC_MINIMIZE 
  11877. proterties 
  11878.  
  11879. ____________ 
  11880.  
  11881. Syntax: query_editwin_property (flag) 
  11882.  
  11883. ____________ 
  11884.  
  11885. Description: This function allows you to view these properties: 
  11886.  
  11887. EWC_MAXIMIZE   Returns TRUE if editor window is maximized, else FALSE. 
  11888. EWC_NORMAL     Returns TRUE if editor window is sized in its normal state, else 
  11889.                FALSE. 
  11890. EWC_MINIMIZE   Returns TRUE if the editor window is minimized, else FALSE. 
  11891.  
  11892. ____________ 
  11893.  
  11894. Value returned: No value is returned from this function. 
  11895.  
  11896.  
  11897. ΓòÉΓòÉΓòÉ 14.6.13. quit() ΓòÉΓòÉΓòÉ
  11898.  
  11899. quit()   Primitive 
  11900.  
  11901. Purpose: Exits the editor in an orderly fashion. 
  11902.  
  11903. ____________ 
  11904.  
  11905. Syntax: void quit([int code]) 
  11906.  
  11907. ____________ 
  11908.  
  11909. Description: The quit() function provides a method of exiting the editor with 
  11910. any necessary clean-up. The save argument, if supplied, controls the 
  11911. disposition of modified buffers upon exit.  If the save argument is present, 
  11912. the user is not prompted to save modified buffers.  Instead, save answers the 
  11913. question that would otherwise be posed by the prompt.  When save is FALSE (0), 
  11914. buffers are abandoned without saving.  When save is non-zero (TRUE), modified 
  11915. buffers are saved to disk.  If save is omitted, the user is prompted to save 
  11916. when modified buffers exist.  The code argument is the value to be passed to 
  11917. the Exit function upon termination of the edit session. 
  11918.  
  11919. ____________ 
  11920.  
  11921. Value returned: This function does not return a value. 
  11922.  
  11923.  
  11924. ΓòÉΓòÉΓòÉ 14.6.14. set_editwin_property() ΓòÉΓòÉΓòÉ
  11925.  
  11926. set_editwin_property()   Primitive 
  11927.  
  11928. Purpose: To set various properties of the main editor window. 
  11929.  
  11930. ____________ 
  11931.  
  11932. Syntax: void set_editwin_property( flag ) 
  11933.  
  11934. ____________ 
  11935.  
  11936. Description: This function allows you to set these properties: 
  11937.  
  11938. EWC_TO_TOP     Brings the main editor window to the top of the PM window stack. 
  11939.  
  11940. EWC_MAXIMIZE   Maximizes the main editor window. 
  11941.  
  11942. EWC_NORMAL     Sizes the editor window to its non-maximized state. 
  11943.  
  11944. EWC_MINIMIZE   Minimizes the main editor window. 
  11945.  
  11946. ____________ 
  11947.  
  11948. Value returned:  No value is returned. 
  11949.  
  11950.  
  11951. ΓòÉΓòÉΓòÉ 14.6.15. toggle_file_backup() ΓòÉΓòÉΓòÉ
  11952.  
  11953. toggle_file_backup()   PEL 
  11954.  
  11955. Purpose: Toggles creation of backup files. 
  11956.  
  11957. ____________ 
  11958.  
  11959. Syntax: void toggle_file_backup([int on]) 
  11960.  
  11961. ____________ 
  11962.  
  11963. Description: The toggle_file_backup() function turns on or off backup file 
  11964. processing.  When the on argument is zero, this feature is turned off.  Other 
  11965. values for on turn it on.  When the on argument is omitted, the feature is 
  11966. toggled to its opposite condition. 
  11967.  
  11968. The location where backup files are created is determined by the 
  11969. backup_directory variable.  The extension applied to the backup file is set by 
  11970. the backup_file_ext variable.  When these two variables are set to their 
  11971. default values, backups will be made under the original filename in a 
  11972. subdirectory named BACKUP on the current drive. 
  11973.  
  11974. ____________ 
  11975.  
  11976. Value returned: No useful value is returned by this function. 
  11977.  
  11978.  
  11979. ΓòÉΓòÉΓòÉ 14.6.16. toggle_status_bar() ΓòÉΓòÉΓòÉ
  11980.  
  11981. toggle_status_bar()   PEL 
  11982.  
  11983. Purpose:  Sets or toggles the status bar. 
  11984.  
  11985. ____________ 
  11986.  
  11987. Syntax:   toggle_status_bar( enable ) 
  11988.  
  11989. ____________ 
  11990.  
  11991. Arguments: 
  11992.  
  11993. o enable - forced direction of toggle 
  11994.  
  11995. Description: If the optional parameter enable is specified, it forces the 
  11996. status bar to toggle either on if TRUE, or off if FALSE.  If the parameter is 
  11997. not specified, the current state of status bar is toggled. 
  11998.  
  11999. ____________ 
  12000.  
  12001. Value returned: 
  12002.  
  12003. ____________ 
  12004.  
  12005. Value returned:  none 
  12006.  
  12007.  
  12008. ΓòÉΓòÉΓòÉ 14.6.17. toggle_stb_flags() ΓòÉΓòÉΓòÉ
  12009.  
  12010. toggle_stb_flags()   PEL 
  12011.  
  12012. Purpose:  Toggles the value of the search_flags variable. 
  12013.  
  12014. ____________ 
  12015.  
  12016. Syntax:   toggle_stb_flags([long mask, long value]) 
  12017.  
  12018. ____________ 
  12019.  
  12020. Arguments: 
  12021.  
  12022. o mask - status_bar_flags bit to toggle 
  12023. o on - forced direction of toggle 
  12024.  
  12025. Description: toggle_stb_flags() changes the state of the bit in 
  12026. status_bar_flags specified by the mask argument.  If the optional argument, 
  12027. value, is supplied, the bit changes to that value.  Otherwise the state of the 
  12028. bit toggles. 
  12029.  
  12030. ____________ 
  12031.  
  12032. Value returned:  TRUE  -  mask bit of status_bar_flags was turned on 
  12033. FALSE -  the bit was turned off 
  12034.  
  12035. See also: status_bar_flags 
  12036.  
  12037.  
  12038. ΓòÉΓòÉΓòÉ 14.6.18. tracking_bottom ΓòÉΓòÉΓòÉ
  12039.  
  12040. tracking_bottom   read only,   Primitive 
  12041.  
  12042. Purpose:  Bottom side of the tracking rectangle. 
  12043.  
  12044. ____________ 
  12045.  
  12046. Type:  int tracking_bottom 
  12047.  
  12048. ____________ 
  12049.  
  12050. Description:  When you create a new window by clicking your mouse and dragging 
  12051. across the main editor window, the value of the bottom left corner is set just 
  12052. before EVENT_TRACKING_DONE is generated.  The tracking_bottom variable contains 
  12053. the value of the window's lowest, or bottom, position. 
  12054.  
  12055. ____________ 
  12056.  
  12057. See also: EVENT_TRACKING_DONE, tracking_width, tracking_height, tracking_left 
  12058.  
  12059.  
  12060. ΓòÉΓòÉΓòÉ 14.6.19. tracking_height ΓòÉΓòÉΓòÉ
  12061.  
  12062. tracking_height   read only,   Primitive 
  12063.  
  12064. Purpose:  Height of tracking rectangle. 
  12065.  
  12066. ____________ 
  12067.  
  12068. Type:  int tracking_height 
  12069.  
  12070. ____________ 
  12071.  
  12072. Description:  When you create a new window by clicking your mouse and dragging 
  12073. across the main editor window, the value of the window height is set just 
  12074. before EVENT_TRACKING_DONE is generated.  The tracking_height variable contains 
  12075. the value of the window height, in pixels. 
  12076.  
  12077. ____________ 
  12078.  
  12079. See also:  EVENT_TRACKING_DONE, tracking_width, tracking_left, tracking_bottom 
  12080.  
  12081.  
  12082. ΓòÉΓòÉΓòÉ 14.6.20. tracking_left ΓòÉΓòÉΓòÉ
  12083.  
  12084. tracking_left   read only,   Primitive 
  12085.  
  12086. Purpose:  Left side of tracking rectangle. 
  12087.  
  12088. ____________ 
  12089.  
  12090. Type:  int tracking_left 
  12091.  
  12092. ____________ 
  12093.  
  12094. Description:  When you create a new window by clicking your mouse and dragging 
  12095. across the main editor window, the value of the window height is set just 
  12096. before EVENT_TRACKING_DONE is generated.  The tracking_left variable contains 
  12097. the y value of the lower left corner of the new window. 
  12098.  
  12099. ____________ 
  12100.  
  12101. See also:  EVENT_TRACKING_DONE, tracking_height, tracking_bottom, 
  12102. tracking_width 
  12103.  
  12104.  
  12105. ΓòÉΓòÉΓòÉ 14.6.21. tracking_width ΓòÉΓòÉΓòÉ
  12106.  
  12107. tracking_width    read only,   Primitive 
  12108.  
  12109. Purpose:  Width of tracking rectangle. 
  12110.  
  12111. ____________ 
  12112.  
  12113. Type:  int tracking_width 
  12114.  
  12115. ____________ 
  12116.  
  12117. Description: When you create a new window by clicking your mouse and dragging 
  12118. across the main editor window, the value of the window width is set just before 
  12119. EVENT_TRACKING_DONE is generated.  The tracking_width variable contains the 
  12120. value of the window's width, in pixels. 
  12121.  
  12122. ____________ 
  12123.  
  12124. See also:  EVENT_TRACKING_DONE, tracking_bottom, tracking_height, tracking_left 
  12125.  
  12126.  
  12127. ΓòÉΓòÉΓòÉ 14.6.22. update_current_view() ΓòÉΓòÉΓòÉ
  12128.  
  12129. update_current_view()   Primitive 
  12130.  
  12131. Purpose:  To update the display of the current window. 
  12132.  
  12133. ____________ 
  12134.  
  12135. Syntax:   update_current_view() 
  12136.  
  12137. ____________ 
  12138.  
  12139. Arguments:  none 
  12140.  
  12141. Description: This function will update the display of the current window, and 
  12142. is different from display_update() in that it will only update the current 
  12143. window, not every visible instance of the current buffer in a window.  If you 
  12144. wish to do the minimal amount of redrawing necessary, this is the function to 
  12145. call. 
  12146.  
  12147. ____________ 
  12148.  
  12149. Value returned:  none 
  12150.  
  12151.  
  12152. ΓòÉΓòÉΓòÉ 14.6.23. write_and_exit() ΓòÉΓòÉΓòÉ
  12153.  
  12154. write_and_exit()   PEL 
  12155.  
  12156. Purpose:  Save all buffers and exit the editor. 
  12157.  
  12158. ____________ 
  12159.  
  12160. Syntax:   void write_and_exit() 
  12161.  
  12162. ____________ 
  12163.  
  12164. Arguments: none. 
  12165.  
  12166. Description: The write_and_exit() function is used to save all modified buffers 
  12167. and to exit the editor immediately after. 
  12168.  
  12169. ____________ 
  12170.  
  12171. Value returned: none. 
  12172.  
  12173.  
  12174. ΓòÉΓòÉΓòÉ 14.7. Event Handling ΓòÉΓòÉΓòÉ
  12175.  
  12176. Events are occurrences that are significant to a task.  Some events require 
  12177. special attention.  For example, when your birthday comes around each year, 
  12178. that is an event.  On that day (at the very least) you deserve special 
  12179. attention.  Within an editing environment such as PREDITOR/2 there are many 
  12180. events that require special treatment.  Most of these events can occur at any 
  12181. time without warning. 
  12182.  
  12183. To write an extension language program that constantly checks at every stage to 
  12184. see if any events need handling would be very tedious.  Instead, PREDITOR/2 has 
  12185. an event handling system that handles events for you.  You need only tell the 
  12186. editor the name of one or more functions to run, and the event, whether 
  12187. pre-defined or user-defined, that will cause the function to be run. 
  12188.  
  12189. attach_event_handler() 
  12190.           Associates a function with an event. 
  12191. delete_event() 
  12192.           Removes association between an event and a function. 
  12193. execute_event_handler() 
  12194.           Executes the functions associated with an event. 
  12195. new_edit_file() 
  12196.           Performs extension dependent tasks upon load. 
  12197. query_event() 
  12198.           Determine what functions are bound to an event. 
  12199.  
  12200.  
  12201. ΓòÉΓòÉΓòÉ 14.7.1. attach_event_handler() ΓòÉΓòÉΓòÉ
  12202.  
  12203. attach_event_handler()   Primitive 
  12204.  
  12205. Purpose: Associates a function with an event. 
  12206.  
  12207. ____________ 
  12208.  
  12209. Syntax:  int attach_event_handler(int event, funcid id) 
  12210.  
  12211. ____________ 
  12212.  
  12213. Description: The attach_event_handler() function designates a function to be 
  12214. executed whenever the event identified by the event argument occurs.  The event 
  12215. argument specifies the event by number and the id argument provides the 
  12216. function's numeric id.  A listing of the event constants follows: 
  12217.  
  12218. o EVENT.ACTIVATE 
  12219. o EVENT.BUFFER_CREATED 
  12220. o EVENT.CLOSING_REMOTE_WINDOW 
  12221. o EVENT.CTRL_BREAK 
  12222. o EVENT.DEACTIVATE 
  12223. o EVENT.DELETE_CHARS 
  12224. o EVENT.DELETING_BUFFER 
  12225. o EVENT.DELETING_WINDOW 
  12226. o EVENT.DISPLAY_UPDATE 
  12227. o EVENT.EDITOR_RUNNING 
  12228. o EVENT.EDIT_FILE_SAVE 
  12229. o EVENT.EMULATION_CHANGED 
  12230. o EVENT.ERROR 
  12231. o EVENT.EXIT_EDITOR 
  12232. o EVENT.FILE_DROPPED 
  12233. o EVENT.FIRST_MOD 
  12234. o EVENT.FUNCTION_CHANGED 
  12235. o EVENT.HELP_INVOKED 
  12236. o EVENT.IDLE_THRESHOLD 
  12237. o EVENT.IDLE_TIME 
  12238. o EVENT.INSERT_KEY 
  12239. o EVENT.INSERT_NEWLINE 
  12240. o EVENT.INSERT_STRING 
  12241. o EVENT.INVALID_PCHAR 
  12242. o EVENT.KEYPRESS 
  12243. o EVENT.KEYPRESS_AFTER 
  12244. o EVENT.LMOUSE_DRAG 
  12245. o EVENT.MENU_COMMAND 
  12246. o EVENT.MMOUSE_DRAG 
  12247. o EVENT.MOUSE_LEFT_CLICK1 
  12248. o EVENT.MOUSE_LEFT_CLICK2 
  12249. o EVENT.MOUSE_LEFT_DOWN 
  12250. o EVENT.MOUSE_LEFT_UP 
  12251. o EVENT.MOUSE_MID_CLICK1 
  12252. o EVENT.MOUSE_MID_CLICK2 
  12253. o EVENT.MOUSE_MID_DOWN 
  12254. o EVENT.MOUSE_MID_UP 
  12255. o EVENT.MOUSE_RIGHT_CLICK1 
  12256. o EVENT.MOUSE_RIGHT_CLICK2 
  12257. o EVENT.MOUSE_RIGHT_DOWN 
  12258. o EVENT.MOUSE_RIGHT_UP 
  12259. o EVENT.NEW_CURNT_BUFFER 
  12260. o EVENT.NEW_CURNT_SCREEN 
  12261. o EVENT.NEW_CURNT_WINDOW 
  12262. o EVENT.NEW_EDIT_FILE 
  12263. o EVENT.NEW_EMPTY_BUFFER 
  12264. o EVENT.NEW_SCREEN_SIZE 
  12265. o EVENT.PAGECHANGED 
  12266. o EVENT.PIPE_DATA 
  12267. o EVENT.PROCESS_COMPLETE 
  12268. o EVENT.READ_ONLY_MOD 
  12269. o EVENT.RESIZE_EDITWIN 
  12270. o EVENT.RMOUSE_DRAG 
  12271. o EVENT.SCROLL_HORZ 
  12272. o EVENT.SCROLL_VERT 
  12273. o EVENT.SHELL_EXIT 
  12274. o EVENT.SYSTEM_MENU_KEY 
  12275. o EVENT.TEMP_SPACE_OVFLW 
  12276. o EVENT.TOOLBAR_COMMAND 
  12277. o EVENT_TRACKING_DONE 
  12278. o EVENT.UNASSGN_KEY 
  12279. o EVENT.WINDOW_MODE_CHANGE 
  12280.  
  12281. More information on these events may be found in the "Event Handling" chapter 
  12282. in Part One of this manual. 
  12283.  
  12284. The association created by this function is not exclusive.  Other functions may 
  12285. also be associated with the event and other events may cause the indicated 
  12286. function to be executed.  The functions attached to an event are executed in 
  12287. the reverse order from which they were attached. 
  12288.  
  12289. ____________ 
  12290.  
  12291. Value returned: 
  12292.  
  12293. Upon successful completion, the attach_event_handler() function returns a 
  12294. non-zero (TRUE) value.  If the event argument is not a valid event or the id 
  12295. argument is not a defined function id, the function will fail.  A value of zero 
  12296. (FALSE) is then returned. 
  12297.  
  12298.  
  12299. ΓòÉΓòÉΓòÉ 14.7.1.1. EVENT.ACTIVATE ΓòÉΓòÉΓòÉ
  12300.  
  12301. This event is generated when a text window in the editor is activated.  This 
  12302. usually happens when the window doesn't have focus and you click on it with the 
  12303. mouse. 
  12304.  
  12305.  
  12306. ΓòÉΓòÉΓòÉ 14.7.1.2. EVENT.BUFFER_CREATED ΓòÉΓòÉΓòÉ
  12307.  
  12308. EVENT.BUFFER_CREATED "New Buffer Created" 
  12309.  
  12310. This event is generated when a new buffer is created. 
  12311.  
  12312.  
  12313. ΓòÉΓòÉΓòÉ 14.7.1.3. EVENT.CLOSING_REMOTE_WINDOW ΓòÉΓòÉΓòÉ
  12314.  
  12315. EVENT.CLOSING_REMOTE_WINDOW "Remote Window Closing" 
  12316.  
  12317. This event is generated when a remote window is closed through the system menu. 
  12318.  
  12319. Example 
  12320.  
  12321. This event is used to clean up after the Pel Debugger when the user closes it 
  12322. through its system menu. 
  12323.  
  12324.  
  12325. ΓòÉΓòÉΓòÉ 14.7.1.4. EVENT.CTRL_BREAK ΓòÉΓòÉΓòÉ
  12326.  
  12327. EVENT.CTRL_BREAK 
  12328.  
  12329.  
  12330. ΓòÉΓòÉΓòÉ 14.7.1.5. EVENT.DEACTIVATE ΓòÉΓòÉΓòÉ
  12331.  
  12332. This event is generated when a text window loses the active state.  This 
  12333. usually happens when you click on another window with the mouse. 
  12334.  
  12335.  
  12336. ΓòÉΓòÉΓòÉ 14.7.1.6. EVENT.DELETE_CHARS ΓòÉΓòÉΓòÉ
  12337.  
  12338. EVENT.DELETE_CHARS "Character(s) Deleted from Buffer" 
  12339.  
  12340. This event is generated when a character is deleted from the current buffer. 
  12341.  
  12342.  
  12343. ΓòÉΓòÉΓòÉ 14.7.1.7. EVENT.DELETING_BUFFER ΓòÉΓòÉΓòÉ
  12344.  
  12345. EVENT.DELETING_BUFFER "Buffer Being Deleted" 
  12346.  
  12347. This event is generated just before a buffer that is being deleted is actually 
  12348. deleted.  Even though the buffer being deleted might not have been the current 
  12349. buffer, for the duration of the event the current_buffer variable is set to the 
  12350. buffer being deleted. 
  12351.  
  12352. Example: 
  12353.  
  12354. This might be used to perform some sort of cleanup operation on a file of a 
  12355. particular type. 
  12356.  
  12357.  
  12358. ΓòÉΓòÉΓòÉ 14.7.1.8. EVENT.DELETING_WINDOW ΓòÉΓòÉΓòÉ
  12359.  
  12360. EVENT.DELETING_WINDOW "Window Being Deleted" 
  12361.  
  12362. This event is generated just before a window that is being deleted is actually 
  12363. deleted.  Even though the window being deleted might not have been the current 
  12364. window, for the duration of the event the current_window variabled is set to 
  12365. the window being deleted. 
  12366.  
  12367. Example 
  12368.  
  12369. This might be used in MDI mode to re-tile all of the remaining windows by first 
  12370. hiding the window that is going to be deleted, and then tiling. 
  12371.  
  12372.  
  12373. ΓòÉΓòÉΓòÉ 14.7.1.9. EVENT.DISPLAY_UPDATE ΓòÉΓòÉΓòÉ
  12374.  
  12375. EVENT.DISPLAY_UPDATE 
  12376.  
  12377.  
  12378. ΓòÉΓòÉΓòÉ 14.7.1.10. EVENT.EDITOR_RUNNING ΓòÉΓòÉΓòÉ
  12379.  
  12380. EVENT.EDITOR_RUNNING "Editor Up and Running" 
  12381.  
  12382. This event is generated when the editor has finished initialization and is 
  12383. "ready to use." 
  12384.  
  12385.  
  12386. ΓòÉΓòÉΓòÉ 14.7.1.11. EVENT.EDIT_FILE_SAVE ΓòÉΓòÉΓòÉ
  12387.  
  12388. EVENT.EDIT_FILE_SAVE 
  12389.  
  12390.  
  12391. ΓòÉΓòÉΓòÉ 14.7.1.12. EVENT.EMULATION_CHANGED ΓòÉΓòÉΓòÉ
  12392.  
  12393. EVENT.EMULATION_CHANGED 
  12394.  
  12395.  
  12396. ΓòÉΓòÉΓòÉ 14.7.1.13. EVENT.ERROR ΓòÉΓòÉΓòÉ
  12397.  
  12398. EVENT.ERROR "Error Ocurred" 
  12399.  
  12400. This event is generated when an error has been reported through the error() 
  12401. function.  This will catch most, but not all errors generated while pel is 
  12402. executing. 
  12403.  
  12404.  
  12405. ΓòÉΓòÉΓòÉ 14.7.1.14. EVENT.EXIT_EDITOR ΓòÉΓòÉΓòÉ
  12406.  
  12407. EVENT.EXIT_EDITOR "Shell Process Exited" 
  12408.  
  12409. This event is generated when a process started in the background through 
  12410. system() completes. 
  12411.  
  12412.  
  12413. ΓòÉΓòÉΓòÉ 14.7.1.15. EVENT.FILE_DROPPED ΓòÉΓòÉΓòÉ
  12414.  
  12415. EVENT.FILE_DROPPED "File Dropped on Editor" 
  12416.  
  12417. This event is generated when a file object is dropped onto the editor in the 
  12418. OS/2 Workplace Shell.  The variable dropped_file contains the fully- qualified 
  12419. path of the file dropped. 
  12420.  
  12421. Example 
  12422.  
  12423. This event is used to handle Drag 'n Drop from the Workplace Shell. 
  12424.  
  12425.  
  12426. ΓòÉΓòÉΓòÉ 14.7.1.16. EVENT.FIRST_MOD ΓòÉΓòÉΓòÉ
  12427.  
  12428. EVENT.FIRST_MOD "First Modification of Current Buffer" 
  12429.  
  12430. This event is generated upon the first modification of the current buffer. 
  12431.  
  12432.  
  12433. ΓòÉΓòÉΓòÉ 14.7.1.17. EVENT.FUNCTION_CHANGED ΓòÉΓòÉΓòÉ
  12434.  
  12435. EVENT.FUNCTION_CHANGED 
  12436.  
  12437.  
  12438. ΓòÉΓòÉΓòÉ 14.7.1.18. EVENT.HELP_INVOKED ΓòÉΓòÉΓòÉ
  12439.  
  12440. EVENT.HELP_INVOKED 
  12441.  
  12442.  
  12443. ΓòÉΓòÉΓòÉ 14.7.1.19. EVENT.IDLE_THRESHOLD ΓòÉΓòÉΓòÉ
  12444.  
  12445. EVENT.IDLE_THRESHOLD 
  12446.  
  12447.  
  12448. ΓòÉΓòÉΓòÉ 14.7.1.20. EVENT.IDLE_TIME ΓòÉΓòÉΓòÉ
  12449.  
  12450. EVENT.IDLE_TIME 
  12451.  
  12452.  
  12453. ΓòÉΓòÉΓòÉ 14.7.1.21. EVENT.INSERT_KEY ΓòÉΓòÉΓòÉ
  12454.  
  12455. EVENT.INSERT_KEY "Key Inserted Into Buffer" 
  12456.  
  12457. This event is generated when a single character has been inserted into the 
  12458. current buffer. 
  12459.  
  12460.  
  12461. ΓòÉΓòÉΓòÉ 14.7.1.22. EVENT.INSERT_NEWLINE ΓòÉΓòÉΓòÉ
  12462.  
  12463. EVENT.INSERT_NEWLINE "Newline Inserted Into Buffer" 
  12464.  
  12465. This event is generated when a new line is inserted into the current buffer. 
  12466.  
  12467.  
  12468. ΓòÉΓòÉΓòÉ 14.7.1.23. EVENT.INSERT_STRING ΓòÉΓòÉΓòÉ
  12469.  
  12470. EVENT.INSERT_STRING "String Inserted Into Buffer" 
  12471.  
  12472. This event is generated when a string has been inserted into the current 
  12473. buffer. 
  12474.  
  12475.  
  12476. ΓòÉΓòÉΓòÉ 14.7.1.24. EVENT.INVALID_PCHAR ΓòÉΓòÉΓòÉ
  12477.  
  12478. EVENT.INVALID_PCHAR "Invalid Prompt Character" 
  12479.  
  12480. Example: This event is used to impliment the expansion of command-line commands 
  12481. in the command dialog.  The tab character is an invalid pchar, and triggers the 
  12482. event which expands your command. 
  12483.  
  12484.  
  12485. ΓòÉΓòÉΓòÉ 14.7.1.25. EVENT.KEYPRESS ΓòÉΓòÉΓòÉ
  12486.  
  12487. EVENT.KEYPRESS "Key Pressed" 
  12488.  
  12489. This event in not triggered by non-character keys that do not have functions 
  12490. attached to them. 
  12491.  
  12492. Example 
  12493.  
  12494. This event is used to implement temporary selections with the mouse. When you 
  12495. highlight a block with the mouse and then press a key, the highlighted block is 
  12496. removed in an EVENT.KEYPRESS handler. 
  12497.  
  12498.  
  12499. ΓòÉΓòÉΓòÉ 14.7.1.26. EVENT.KEYPRESS_AFTER ΓòÉΓòÉΓòÉ
  12500.  
  12501. EVENT.KEYPRESS_AFTER "After Key Pressed" 
  12502.  
  12503. This event is generated after the function bound to a key has been been 
  12504. executed.  This event is not triggered by non-character keys. 
  12505.  
  12506.  
  12507. ΓòÉΓòÉΓòÉ 14.7.1.27. EVENT.LMOUSE_DRAG ΓòÉΓòÉΓòÉ
  12508.  
  12509. EVENT.LMOUSE_DRAG "Left Button Dragged" 
  12510.  
  12511. DRAG is generated when the mouse pointer is moved while holding down a mouse 
  12512. button. 
  12513.  
  12514.  
  12515. ΓòÉΓòÉΓòÉ 14.7.1.28. EVENT.MENU_COMMAND ΓòÉΓòÉΓòÉ
  12516.  
  12517. EVENT.MENU_COMMAND "Menu Command" 
  12518.  
  12519. This event is generated whenever a menu item is chosen.  The menu function has 
  12520. already been executed. 
  12521.  
  12522.  
  12523. ΓòÉΓòÉΓòÉ 14.7.1.29. EVENT.MMOUSE_DRAG ΓòÉΓòÉΓòÉ
  12524.  
  12525. EVENT.MMOUSE_DRAG "Middle Button Dragged" 
  12526.  
  12527. DRAG is generated when the mouse pointer is moved while holding down a mouse 
  12528. button. 
  12529.  
  12530.  
  12531. ΓòÉΓòÉΓòÉ 14.7.1.30. EVENT.MOUSE_LEFT_CLICK1 ΓòÉΓòÉΓòÉ
  12532.  
  12533. EVENT.MOUSE_LEFT_CLICK1 
  12534.  
  12535.  
  12536. ΓòÉΓòÉΓòÉ 14.7.1.31. EVENT.MOUSE_LEFT_CLICK2 ΓòÉΓòÉΓòÉ
  12537.  
  12538. EVENT.MOUSE_LEFT_CLICK2 
  12539.  
  12540.  
  12541. ΓòÉΓòÉΓòÉ 14.7.1.32. EVENT.MOUSE_LEFT_DOWN ΓòÉΓòÉΓòÉ
  12542.  
  12543. EVENT.MOUSE_LEFT_DOWN 
  12544.  
  12545.  
  12546. ΓòÉΓòÉΓòÉ 14.7.1.33. EVENT.MOUSE_LEFT_UP ΓòÉΓòÉΓòÉ
  12547.  
  12548. EVENT.MOUSE_LEFT_UP 
  12549.  
  12550.  
  12551. ΓòÉΓòÉΓòÉ 14.7.1.34. EVENT.MOUSE_MID_CLICK1 ΓòÉΓòÉΓòÉ
  12552.  
  12553. EVENT.MOUSE_MID_CLICK1 
  12554.  
  12555.  
  12556. ΓòÉΓòÉΓòÉ 14.7.1.35. EVENT.MOUSE_MID_CLICK2 ΓòÉΓòÉΓòÉ
  12557.  
  12558. EVENT.MOUSE_MID_CLICK2 
  12559.  
  12560.  
  12561. ΓòÉΓòÉΓòÉ 14.7.1.36. EVENT.MOUSE_MID_DOWN ΓòÉΓòÉΓòÉ
  12562.  
  12563. EVENT.MOUSE_MID_DOWN 
  12564.  
  12565.  
  12566. ΓòÉΓòÉΓòÉ 14.7.1.37. EVENT.MOUSE_MID_UP ΓòÉΓòÉΓòÉ
  12567.  
  12568. EVENT.MOUSE_MID_UP 
  12569.  
  12570.  
  12571. ΓòÉΓòÉΓòÉ 14.7.1.38. EVENT.MOUSE_RIGHT_CLICK1 ΓòÉΓòÉΓòÉ
  12572.  
  12573. EVENT.MOUSE_RIGHT_CLICK1 
  12574.  
  12575.  
  12576. ΓòÉΓòÉΓòÉ 14.7.1.39. EVENT.MOUSE_RIGHT_CLICK2 ΓòÉΓòÉΓòÉ
  12577.  
  12578. EVENT.MOUSE_RIGHT_CLICK2 
  12579.  
  12580.  
  12581. ΓòÉΓòÉΓòÉ 14.7.1.40. EVENT.MOUSE_RIGHT_DOWN ΓòÉΓòÉΓòÉ
  12582.  
  12583. EVENT.MOUSE_RIGHT_DOWN 
  12584.  
  12585.  
  12586. ΓòÉΓòÉΓòÉ 14.7.1.41. EVENT.MOUSE_RIGHT_UP ΓòÉΓòÉΓòÉ
  12587.  
  12588. EVENT.MOUSE_RIGHT_UP 
  12589.  
  12590.  
  12591. ΓòÉΓòÉΓòÉ 14.7.1.42. EVENT.NEW_CURNT_BUFFER ΓòÉΓòÉΓòÉ
  12592.  
  12593. EVENT.NEW_CURNT_BUFFER 
  12594.  
  12595.  
  12596. ΓòÉΓòÉΓòÉ 14.7.1.43. EVENT.NEW_CURNT_SCREEN ΓòÉΓòÉΓòÉ
  12597.  
  12598. EVENT.NEW_CURNT_SCREEN 
  12599.  
  12600.  
  12601. ΓòÉΓòÉΓòÉ 14.7.1.44. EVENT.NEW_CURNT_WINDOW ΓòÉΓòÉΓòÉ
  12602.  
  12603. EVENT.NEW_CURNT_WINDOW 
  12604.  
  12605.  
  12606. ΓòÉΓòÉΓòÉ 14.7.1.45. EVENT.NEW_EDIT_FILE ΓòÉΓòÉΓòÉ
  12607.  
  12608. EVENT.NEW_EDIT_FILE 
  12609.  
  12610.  
  12611. ΓòÉΓòÉΓòÉ 14.7.1.46. EVENT.NEW_EMPTY_BUFFER ΓòÉΓòÉΓòÉ
  12612.  
  12613. EVENT.NEW_EMPTY_BUFFER "New Scratch Buffer Created" 
  12614.  
  12615. This event is generated when a new scratch buffer is created. 
  12616.  
  12617.  
  12618. ΓòÉΓòÉΓòÉ 14.7.1.47. EVENT.NEW_SCREEN_SIZE ΓòÉΓòÉΓòÉ
  12619.  
  12620. EVENT.NEW_SCREEN_SIZE 
  12621.  
  12622.  
  12623. ΓòÉΓòÉΓòÉ 14.7.1.48. EVENT.PAGECHANGED ΓòÉΓòÉΓòÉ
  12624.  
  12625. EVENT.PAGECHANGED 
  12626.  
  12627.  
  12628. ΓòÉΓòÉΓòÉ 14.7.1.49. EVENT.PIPE_DATA ΓòÉΓòÉΓòÉ
  12629.  
  12630. EVENT.PIPE_DATA "Pipe Data Received" 
  12631.  
  12632. This event is generated when data is sent to an OS/2 Pipe.  The variable 
  12633. pipe_data contains the string of data, process_id contains the id of the 
  12634. process which sent the data to the pipe, and process_pipe is the id of the 
  12635. pipe. 
  12636.  
  12637. Example 
  12638.  
  12639. This event is used to implement the Command box from the Tools menu. 
  12640.  
  12641.  
  12642. ΓòÉΓòÉΓòÉ 14.7.1.50. EVENT.PROCESS_COMPLETE ΓòÉΓòÉΓòÉ
  12643.  
  12644. EVENT.PROCESS_COMPLETE "Pipe Process Complete" 
  12645.  
  12646. This event is generated when a process using pipes has completed.  The variable 
  12647. process_id contains the id of the process that caused the 
  12648. EVENT.PROCESS_COMPLETE, process_rc contains the return code of the process_id 
  12649. process, and process_pipe contains the id of process_id's pipe. 
  12650.  
  12651.  
  12652. ΓòÉΓòÉΓòÉ 14.7.1.51. EVENT.READ_ONLY_MOD ΓòÉΓòÉΓòÉ
  12653.  
  12654. EVENT.READ_ONLY_MOD 
  12655.  
  12656.  
  12657. ΓòÉΓòÉΓòÉ 14.7.1.52. EVENT.RESIZE_EDITWIN ΓòÉΓòÉΓòÉ
  12658.  
  12659. EVENT.RESIZE_EDITWIN "Editor Window is Resizing" 
  12660.  
  12661. This event is generated when the editor window is resized. 
  12662.  
  12663. Example 
  12664.  
  12665. This event is used in Tools/Vcs/Vdiff to keep two side-by-side windows sized 
  12666. proportionally when the editor window is resized. 
  12667.  
  12668.  
  12669. ΓòÉΓòÉΓòÉ 14.7.1.53. EVENT.RMOUSE_DRAG ΓòÉΓòÉΓòÉ
  12670.  
  12671. EVENT.RMOUSE_DRAG "Right Button Dragged" 
  12672.  
  12673. DRAG is generated when the mouse pointer is moved while holding down a mouse 
  12674. button. 
  12675.  
  12676.  
  12677. ΓòÉΓòÉΓòÉ 14.7.1.54. EVENT.SCROLL_HORZ ΓòÉΓòÉΓòÉ
  12678.  
  12679. EVENT.SCROLL_HORZ 
  12680.  
  12681.  
  12682. ΓòÉΓòÉΓòÉ 14.7.1.55. EVENT.SCROLL_VERT ΓòÉΓòÉΓòÉ
  12683.  
  12684. EVENT.SCROLL_VERT 
  12685.  
  12686.  
  12687. ΓòÉΓòÉΓòÉ 14.7.1.56. EVENT.SHELL_EXIT ΓòÉΓòÉΓòÉ
  12688.  
  12689. EVENT.SHELL_EXIT 
  12690.  
  12691.  
  12692. ΓòÉΓòÉΓòÉ 14.7.1.57. EVENT.SYSTEM_MENU_KEY ΓòÉΓòÉΓòÉ
  12693.  
  12694. EVENT.SYSTEM_MENU_KEY 
  12695.  
  12696.  
  12697. ΓòÉΓòÉΓòÉ 14.7.1.58. EVENT.TEMP_SPACE_OVFLW ΓòÉΓòÉΓòÉ
  12698.  
  12699. EVENT.TEMP_SPACE_OVFLW 
  12700.  
  12701.  
  12702. ΓòÉΓòÉΓòÉ 14.7.1.59. EVENT.TOOLBAR_COMMAND ΓòÉΓòÉΓòÉ
  12703.  
  12704. EVENT.TOOLBAR_COMMAND "Toolbar Command" 
  12705.  
  12706. This event is generated whenever a toolbar button is clicked on. The button 
  12707. function has already been executed. 
  12708.  
  12709.  
  12710. ΓòÉΓòÉΓòÉ 14.7.1.60. EVENT_TRACKING_DONE ΓòÉΓòÉΓòÉ
  12711.  
  12712. EVENT_TRACKING_DONE This event is generated when you drag the mouse on the 
  12713. desktop of the editor when in MDI mode. 
  12714.  
  12715. See also: tracking_height, tracking_width, tracking_left, tracking_bottom 
  12716.  
  12717.  
  12718. ΓòÉΓòÉΓòÉ 14.7.1.61. EVENT.UNASSGN_KEY ΓòÉΓòÉΓòÉ
  12719.  
  12720. EVENT.UNASSGN_KEY 
  12721.  
  12722.  
  12723. ΓòÉΓòÉΓòÉ 14.7.1.62. EVENT.WINDOW_MODE_CHANGE ΓòÉΓòÉΓòÉ
  12724.  
  12725. EVENT.WINDOW_MODE_CHANGE "Window Mode Changing" 
  12726.  
  12727. This event is generated when a window's state is changed through 
  12728. restore_window(), hide_window(), expand_window(), collapse_window(). This event 
  12729. will not be generated when the user clicks on the minimize or maximize buttons 
  12730. of a window. 
  12731.  
  12732.  
  12733. ΓòÉΓòÉΓòÉ 14.7.2. delete_event() ΓòÉΓòÉΓòÉ
  12734.  
  12735. delete_event()   Primitive 
  12736.  
  12737. Purpose: Removes association between an event and a function. 
  12738.  
  12739. ____________ 
  12740.  
  12741. Syntax:  int delete_event(int event, funcid id) 
  12742.  
  12743. ____________ 
  12744.  
  12745. Description: The delete_event() function breaks the association between the 
  12746. event indicated by the event argument and the function specified by id.  After 
  12747. executing delete_event(), the named function will not be executed automatically 
  12748. when the event is triggered.  Other functions associated with the event will 
  12749. still be executed. 
  12750.  
  12751. ____________ 
  12752.  
  12753. Value returned: Upon successful completion, the delete_event() function returns 
  12754. a non-zero (TRUE) value.  If the event argument is not a valid event or the id 
  12755. argument is not a function id associated with that event, the function will 
  12756. fail.  A value of zero (FALSE) is then returned. 
  12757.  
  12758.  
  12759. ΓòÉΓòÉΓòÉ 14.7.3. execute_event_handler() ΓòÉΓòÉΓòÉ
  12760.  
  12761. execute_event_handler()   Primitive 
  12762.  
  12763. Purpose: Executes the functions associated with an event. 
  12764.  
  12765. ____________ 
  12766.  
  12767. Syntax:  int execute_event_handler(int event) 
  12768.  
  12769. ____________ 
  12770.  
  12771. Description: The execute_event_handler(). function causes all of the functions 
  12772. associated with an event to be executed just as if the event had occurred.  The 
  12773. event to be triggered is indicated by the event argument. 
  12774.  
  12775. ____________ 
  12776.  
  12777. Value returned: 
  12778.  
  12779. Upon successful completion, the execute_event_handler() function returns a 
  12780. non-zero (TRUE) value.  If the event argument is not a valid event, the 
  12781. function will fail.  A value of zero (FALSE) is then returned. 
  12782.  
  12783.  
  12784. ΓòÉΓòÉΓòÉ 14.7.4. new_edit_file() ΓòÉΓòÉΓòÉ
  12785.  
  12786. new_edit_file()   PEL 
  12787.  
  12788. Purpose: Performs extension dependent tasks upon load. 
  12789.  
  12790. ____________ 
  12791.  
  12792. Syntax: void new_edit_file() 
  12793.  
  12794. ____________ 
  12795.  
  12796. Description: The new_edit_file() function is an event handler designed to 
  12797. perform filename extension dependent tasks when a new file is read in for 
  12798. editing.  It attempts to execute a user-written function whose name is based on 
  12799. the filename extension of the new file. 
  12800.  
  12801. The name of the function is the same as filename extension prefixed with an 
  12802. underscore.  For example, if a file with the extension .COB is loaded, 
  12803. new_edit_file() attempts to execute a function called _cob.  If the extension 
  12804. is .C it executes a function named _c. 
  12805.  
  12806. This function must be installed with the attach_event_handler() function before 
  12807. it will be effective. 
  12808.  
  12809. ____________ 
  12810.  
  12811. Value returned: No useful value is returned by this function. 
  12812.  
  12813.  
  12814. ΓòÉΓòÉΓòÉ 14.7.5. query_event() ΓòÉΓòÉΓòÉ
  12815.  
  12816. query_event   Primitive 
  12817.  
  12818. Purpose:  Determine what functions are bound to an event. 
  12819.  
  12820. ____________ 
  12821.  
  12822. Syntax:   str query_event(long num) 
  12823.  
  12824. ____________ 
  12825.  
  12826. Arguments: 
  12827.  
  12828. o num - event id 
  12829.  
  12830. Description: The query_event() function is used to find out what functions are 
  12831. bound to an event.  This is useful before using an attach_event_handler() so 
  12832. the same function is not bound twice to an event. 
  12833.  
  12834. ____________ 
  12835.  
  12836. Value returned: An array of the functions bound to the event. 
  12837.  
  12838.  
  12839. ΓòÉΓòÉΓòÉ 14.8. Gui Dialog ΓòÉΓòÉΓòÉ
  12840.  
  12841. about_dialog() 
  12842.           Displays information about the product 
  12843. bookmark_list() 
  12844.           To display the list of current bookmarks. 
  12845. buffer_list() 
  12846.           Shows summary of defined buffers. 
  12847. color_dialog() 
  12848.           Displays a color dialog box 
  12849. display_error_file_key() 
  12850.           To parse an error file and display errors in a list dialog. 
  12851. font_dialog() 
  12852.           To display the font dialog. 
  12853. gui_change() 
  12854.           Invoke the cahnge dialog 
  12855. gui_command() 
  12856.           To display the command dialog. 
  12857. gui_font_dialog() 
  12858.           To display the font dialog. 
  12859. gui_open() 
  12860.           To open a file by prompting the user with the standard file dialog. 
  12861. gui_print() 
  12862.           To display the print dialog. 
  12863. gui_print_select() 
  12864.           To display the printer select dialog. 
  12865. gui_save() 
  12866.           To save the current buffer, prompting the user for a filename through 
  12867.           the saveas_dialog() if it is a scratch buffer. 
  12868. gui_saveas() 
  12869.           To prompt the user for a file name to save the current buffer as 
  12870.           through the saveas_dialog(). 
  12871. keys_dialog() 
  12872.           To display the keys dialog. 
  12873. open_dialog() 
  12874.           Displays an open dialog box 
  12875. print_dialog() 
  12876.           Displays a print dialog box 
  12877. saveas_dialog() 
  12878.           Displays a save as dialog box 
  12879.  
  12880.  
  12881. ΓòÉΓòÉΓòÉ 14.8.1. about_dialog() ΓòÉΓòÉΓòÉ
  12882.  
  12883. about_dialog()   Primitive 
  12884.  
  12885. Purpose: Displays information about the product 
  12886.  
  12887. ____________ 
  12888.  
  12889. Syntax: void about_dialog() 
  12890.  
  12891. ____________ 
  12892.  
  12893. Description: The about_dialog() function displays version and license 
  12894. information about the currently installed product. 
  12895.  
  12896. ____________ 
  12897.  
  12898. Value returned: The about_dialog() function does not return a value. 
  12899.  
  12900.  
  12901. ΓòÉΓòÉΓòÉ 14.8.2. bookmark_list() ΓòÉΓòÉΓòÉ
  12902.  
  12903. bookmark_list()   PEL 
  12904.  
  12905. Purpose:  To display the list of current bookmarks. 
  12906.  
  12907. ____________ 
  12908.  
  12909. Syntax:   bookmark_list() 
  12910.  
  12911. ____________ 
  12912.  
  12913. Arguments:  none 
  12914.  
  12915. Description: 
  12916.  
  12917. ____________ 
  12918.  
  12919. Value returned:  none 
  12920.  
  12921.  
  12922. ΓòÉΓòÉΓòÉ 14.8.3. buffer_list() ΓòÉΓòÉΓòÉ
  12923.  
  12924. buffer_list()   PEL 
  12925.  
  12926. Purpose: Shows summary of defined buffers. 
  12927.  
  12928. ____________ 
  12929.  
  12930. Syntax:  void buffer_list([int sys]) 
  12931.  
  12932. ____________ 
  12933.  
  12934. Description: The buffer_list() function pops up a list of active buffers. 
  12935. Buffers that are write- protected have "(R/O)" appearing after the buffer name. 
  12936. You may then select and change the default buffer, save or delete a buffer.  A 
  12937. usage message appears in the dialog window. 
  12938.  
  12939. If the sys argument is supplied and is non- zero, system buffers will also be 
  12940. included in this list. 
  12941.  
  12942. ____________ 
  12943.  
  12944. Value returned: 
  12945.  
  12946. No useful value is returned by this function. 
  12947.  
  12948.  
  12949. ΓòÉΓòÉΓòÉ 14.8.4. color_dialog() ΓòÉΓòÉΓòÉ
  12950.  
  12951. color_dialog()   Primitive 
  12952.  
  12953. Purpose: Displays a color dialog box 
  12954.  
  12955. ____________ 
  12956.  
  12957. Syntax: void color_dialog() 
  12958.  
  12959. ____________ 
  12960.  
  12961. Description: The color_dialog() function displays a color dialog box and allows 
  12962. the user to change the colors relating to the currently active window. 
  12963.  
  12964. The colors that are configurable are: 
  12965.  
  12966. o Error text on the status bar 
  12967. o Help text on the status bar 
  12968. o Line command color foreground and background 
  12969. o Line number color foreground and background 
  12970. o Message text on the status bar 
  12971. o Notify text on the status bar 
  12972. o Text color foreground and background 
  12973. o Warning text on the status bar 
  12974.  
  12975. ____________ 
  12976.  
  12977. Value returned: The color_dialog() function does not return a value. 
  12978.  
  12979.  
  12980. ΓòÉΓòÉΓòÉ 14.8.5. display_error_file_key() ΓòÉΓòÉΓòÉ
  12981.  
  12982. display_error_file_key()   PEL 
  12983.  
  12984. Purpose:  To parse an error file and display errors in a list dialog. 
  12985.  
  12986. ____________ 
  12987.  
  12988. Syntax:   display_error_file_key( [str errorFileName] ) 
  12989.  
  12990. ____________ 
  12991.  
  12992. Arguments: 
  12993.  
  12994. o errorFileName - the name of the file containing error messages 
  12995.  
  12996. Description: This function will parse a compiler error file for the type of 
  12997. error(warning or error), file name, line and column number of each error.  It 
  12998. will then display a list of the errors in a dialog box, from which you can view 
  12999. the source code corresponding to each error. 
  13000.  
  13001. ____________ 
  13002.  
  13003. Value returned:  none 
  13004.  
  13005.  
  13006. ΓòÉΓòÉΓòÉ 14.8.6. font_dialog() ΓòÉΓòÉΓòÉ
  13007.  
  13008. font_dialog()   Primitive 
  13009.  
  13010. Purpose:  To display the font dialog. 
  13011.  
  13012. ____________ 
  13013.  
  13014. Syntax:   font_dialog( [long customdlg] ) 
  13015.  
  13016. ____________ 
  13017.  
  13018. Arguments: 
  13019.  
  13020. o customdlg - dialog to use 
  13021.  
  13022. Description: If customdlg is TRUE, the editor's customized version of the 
  13023. dialog, with Apply to All and Make Default buttons is used.  If customdlg is 
  13024. FALSE, the standard font dialog is used. 
  13025.  
  13026. ____________ 
  13027.  
  13028. Value returned:  none 
  13029.  
  13030.  
  13031. ΓòÉΓòÉΓòÉ 14.8.7. gui_change() ΓòÉΓòÉΓòÉ
  13032.  
  13033. gui_change()   PEL 
  13034.  
  13035. Purpose:  Invoke the cahnge dialog 
  13036.  
  13037. ____________ 
  13038.  
  13039. Syntax:   void gui_change() 
  13040.  
  13041. ____________ 
  13042.  
  13043. Arguments: none 
  13044.  
  13045. Description: The gui_change() function invokes the Change dialog.  The user can 
  13046. enter the search and replace strings in a gui format. 
  13047.  
  13048. ____________ 
  13049.  
  13050. Value returned: none 
  13051.  
  13052.  
  13053. ΓòÉΓòÉΓòÉ 14.8.8. gui_command() ΓòÉΓòÉΓòÉ
  13054.  
  13055. gui_command()   PEL 
  13056.  
  13057. Purpose:  To display the command dialog. 
  13058.  
  13059. ____________ 
  13060.  
  13061. Syntax:   gui_command() 
  13062.  
  13063. ____________ 
  13064.  
  13065. Arguments:  none 
  13066.  
  13067. Description: 
  13068.  
  13069. ____________ 
  13070.  
  13071. Value returned:  none 
  13072.  
  13073.  
  13074. ΓòÉΓòÉΓòÉ 14.8.9. gui_font_dialog() ΓòÉΓòÉΓòÉ
  13075.  
  13076. gui_font_dialog()   PEL 
  13077.  
  13078. Purpose:  To display the font dialog. 
  13079.  
  13080. ____________ 
  13081.  
  13082. Syntax:   gui_font_dialog() 
  13083.  
  13084. ____________ 
  13085.  
  13086. Arguments:  none 
  13087.  
  13088. Description: 
  13089.  
  13090. ____________ 
  13091.  
  13092. Value returned:  none 
  13093.  
  13094.  
  13095. ΓòÉΓòÉΓòÉ 14.8.10. gui_open() ΓòÉΓòÉΓòÉ
  13096.  
  13097. gui_open()   PEL 
  13098.  
  13099. Purpose:  To open a file by prompting the user with the standard file dialog. 
  13100.  
  13101. ____________ 
  13102.  
  13103. Syntax:   gui_open( str initialPath ) 
  13104.  
  13105. ____________ 
  13106.  
  13107. Arguments: 
  13108.  
  13109. o initialPath - initial path for open dialog 
  13110.  
  13111. Description: 
  13112.  
  13113. ____________ 
  13114.  
  13115. Value returned: TRUE  -  successful FALSE -  failure, user chose cancel 
  13116.  
  13117.  
  13118. ΓòÉΓòÉΓòÉ 14.8.11. gui_print() ΓòÉΓòÉΓòÉ
  13119.  
  13120. gui_print()   PEL 
  13121.  
  13122. Purpose:  To display the print dialog. 
  13123.  
  13124. ____________ 
  13125.  
  13126. Syntax:   gui_print() 
  13127.  
  13128. ____________ 
  13129.  
  13130. Arguments:  none 
  13131.  
  13132. Description: 
  13133.  
  13134. ____________ 
  13135.  
  13136. Value returned:  none 
  13137.  
  13138.  
  13139. ΓòÉΓòÉΓòÉ 14.8.12. gui_print_select() ΓòÉΓòÉΓòÉ
  13140.  
  13141. gui_print_select()   PEL 
  13142.  
  13143. Purpose:  To display the printer select dialog. 
  13144.  
  13145. ____________ 
  13146.  
  13147. Syntax:   gui_print_select() 
  13148.  
  13149. ____________ 
  13150.  
  13151. Arguments:  none 
  13152.  
  13153. Description: 
  13154.  
  13155. ____________ 
  13156.  
  13157. Value returned:  none 
  13158.  
  13159.  
  13160. ΓòÉΓòÉΓòÉ 14.8.13. gui_save() ΓòÉΓòÉΓòÉ
  13161.  
  13162. gui_save()   PEL 
  13163.  
  13164. Purpose:  To save the current buffer, prompting the user for a filename through 
  13165. the saveas_dialog() if it is a scratch buffer. 
  13166.  
  13167. ____________ 
  13168.  
  13169. Syntax:   gui_save() 
  13170.  
  13171. ____________ 
  13172.  
  13173. Arguments:  none 
  13174.  
  13175. Description: 
  13176.  
  13177. ____________ 
  13178.  
  13179. Value returned:  none 
  13180.  
  13181.  
  13182. ΓòÉΓòÉΓòÉ 14.8.14. gui_saveas() ΓòÉΓòÉΓòÉ
  13183.  
  13184. gui_saveas()   PEL 
  13185.  
  13186. Purpose:  To prompt the user for a file name to save the current buffer as 
  13187. through the saveas_dialog(). 
  13188.  
  13189. ____________ 
  13190.  
  13191. Syntax:   gui_saveas( str initialPath ) 
  13192.  
  13193. ____________ 
  13194.  
  13195. Arguments: 
  13196.  
  13197. o initialPath - initial path of the saveas_dialog() 
  13198.  
  13199. Description: This function differs from the saveas_dialog() function in that it 
  13200. will not just prompt the user for a file name, but will also then save the 
  13201. buffer under that name. 
  13202.  
  13203. ____________ 
  13204.  
  13205. Value returned: The value returned is the number of bytes successfully written 
  13206. by write_buffer(). 
  13207.  
  13208.  
  13209. ΓòÉΓòÉΓòÉ 14.8.15. keys_dialog() ΓòÉΓòÉΓòÉ
  13210.  
  13211. keys_dialog()   PEL 
  13212.  
  13213. Purpose:  To display the keys dialog. 
  13214.  
  13215. ____________ 
  13216.  
  13217. Syntax:   keys_dialog() 
  13218.  
  13219. ____________ 
  13220.  
  13221. Arguments:  none 
  13222.  
  13223. Description: This dialog will enable you to change your key assignments as you 
  13224. wish.  Many of the utility functions in the editor do not have default key 
  13225. assignments because they are not a strict part of any emulation.  Through this 
  13226. dialog, you can assign your most oft-used function to keystrokes, thus saving 
  13227. yourself much typing time. 
  13228.  
  13229. ____________ 
  13230.  
  13231. Value returned:  none 
  13232.  
  13233.  
  13234. ΓòÉΓòÉΓòÉ 14.8.16. open_dialog() ΓòÉΓòÉΓòÉ
  13235.  
  13236. open_dialog()   Primitive 
  13237.  
  13238. Purpose: Displays an open dialog box 
  13239.  
  13240. ____________ 
  13241.  
  13242. Syntax: string  open_dialog(string default_file,string title) 
  13243.  
  13244. ____________ 
  13245.  
  13246. Description: The open_dialog() function will display an open dialog box which 
  13247. allows selection of a file.  The open dialog box displays a file list for 
  13248. selecting files, a directory list for displaying files in different 
  13249. directories, and a drives list for displaying files on different drives.  The 
  13250. open_dialog() function does not open the file selected.  The function only 
  13251. returns the filename selected.  The open_dialog() function will allow multiple 
  13252. selected filenames.  Multiple filenames are return in a semi-colon delimited 
  13253. string.  The default_file argument contains the initial file or wildcard 
  13254. selection displayed in the open dialog box.  If default_file contains a drive 
  13255. and/or directory name then the open dialog box will update the directory and 
  13256. drive lists respectively.  The title argument contains the title of the dialog 
  13257. box when it is displayed. 
  13258.  
  13259. ____________ 
  13260.  
  13261. Value returned: The value returned by open_dialog() is the full path name of 
  13262. the file selected from the open dialog box. 
  13263.  
  13264.  
  13265. ΓòÉΓòÉΓòÉ 14.8.17. print_dialog() ΓòÉΓòÉΓòÉ
  13266.  
  13267. print_dialog()   Primitive 
  13268.  
  13269. Purpose: Displays a print dialog box 
  13270.  
  13271. ____________ 
  13272.  
  13273. Syntax: short print_dialog() 
  13274.  
  13275. ____________ 
  13276.  
  13277. Description: The print_dialog() function displays a dialog box that allows the 
  13278. user to configure print jobs from within the editor. 
  13279.  
  13280. ____________ 
  13281.  
  13282. Value returned: The print_dialog() function returns the result of the dialog. 
  13283. If a non-zero value is returned the Print button was selected otherwise the 
  13284. cancel button was selected. 
  13285.  
  13286.  
  13287. ΓòÉΓòÉΓòÉ 14.8.18. saveas_dialog() ΓòÉΓòÉΓòÉ
  13288.  
  13289. saveas_dialog()   Primitive 
  13290.  
  13291. Purpose: Displays a save as dialog box 
  13292.  
  13293. ____________ 
  13294.  
  13295. Syntax: string saveas_dialog(string default_file) 
  13296.  
  13297. ____________ 
  13298.  
  13299. Description: The saveas_dialog() function displays a dialog box that allows 
  13300. selection of a file.  The save as dialog box displays a file list for selecting 
  13301. files, a directory list for displaying files in different directories, and a 
  13302. drives list for displaying files on different drives.  The saveas_dialog() 
  13303. function does not save the current buffer. The user is responsible for saving 
  13304. the file after the file name is returned.  The default_file argument is the 
  13305. initial file name displayed in the in the save as dialog box. 
  13306.  
  13307. ____________ 
  13308.  
  13309. Value returned: The value returned by saveas_dialog() is the full path name of 
  13310. the file selected from the save as dialog box. 
  13311.  
  13312.  
  13313. ΓòÉΓòÉΓòÉ 14.9. Help ΓòÉΓòÉΓòÉ
  13314.  
  13315. attach_help() 
  13316.           Attaches a help file to the editor or a dialog box 
  13317. delete_help() 
  13318.           Removes a help_file assocation 
  13319. display_help() 
  13320.           Displays help for the key passed in. 
  13321. display_help_item() 
  13322.           To display on-line help on a string. 
  13323. gui_help_index() 
  13324.           To display the help index. 
  13325. load_ndx_help() 
  13326.           To initialize the NDX file system. 
  13327. ndx_help() 
  13328.           To look up help for a symbol in an ndx file. 
  13329. user_help_lines() 
  13330.           Entry point for user defined help. 
  13331.  
  13332.  
  13333. ΓòÉΓòÉΓòÉ 14.9.1. attach_help() ΓòÉΓòÉΓòÉ
  13334.  
  13335. attach_help()   Primitive 
  13336.  
  13337. Purpose: Attaches a help file to the editor or a dialog box 
  13338.  
  13339. ____________ 
  13340.  
  13341. Syntax: void attach_help(string help_file[, long dlgid ] ) 
  13342.  
  13343. ____________ 
  13344.  
  13345. Description: The attach_help() function attaches a help file to either a dialog 
  13346. box or the editor.  The attach_help() function call must be called before any 
  13347. calls to display_help().  The display_help() function uses the help file 
  13348. associated with a window to display help information. If attach_help() is not 
  13349. called before display_help(), no help information will be displayed.  The 
  13350. help_file argument contains the name of the help file.  Under OS/2 this file 
  13351. must be a .HLP file that was created with the IPFC compiler.  The optional 
  13352. dlgid argument contains the id of the dialog box that the help file is 
  13353. associated with.  If this value is not specified the help file is associated 
  13354. with the editor window. 
  13355.  
  13356. ____________ 
  13357.  
  13358. Value returned: No value is returned from this function. 
  13359.  
  13360.  
  13361. ΓòÉΓòÉΓòÉ 14.9.2. delete_help() ΓòÉΓòÉΓòÉ
  13362.  
  13363. delete_help()   Primitive 
  13364.  
  13365. Purpose: Removes a help_file assocation 
  13366.  
  13367. ____________ 
  13368.  
  13369. Syntax: void delete_help( [ long dlgid ] ) 
  13370.  
  13371. ____________ 
  13372.  
  13373. Description: The delete_help() function removes the association between a help 
  13374. file and a window.  The delete_help() function should be used if a help file is 
  13375. no longer needed.  The optional dlgid argument contains the id of the dialog 
  13376. box whose help file is deleted.  If this argument is not given the help file 
  13377. associated with the editor window is deleted. 
  13378.  
  13379. ____________ 
  13380.  
  13381. Value returned: No value is returned from this function. 
  13382.  
  13383.  
  13384. ΓòÉΓòÉΓòÉ 14.9.3. display_help() ΓòÉΓòÉΓòÉ
  13385.  
  13386. display_help()   Primitive 
  13387.  
  13388. Purpose: Displays help for the key passed in. 
  13389.  
  13390. ____________ 
  13391.  
  13392. Syntax: short display_help( any key [, long dlgid] ) 
  13393.  
  13394. ____________ 
  13395.  
  13396. Description: The display_help() function displays help that is associated with 
  13397. the key that is passed in.  The argument passed in must be a string or a long. 
  13398. The display_help() function will use the currently loaded help file established 
  13399. with attach_help(). 
  13400.  
  13401. There are some standard reserved keys that are used by the help system. 
  13402.  
  13403. Reserved keys:          Meaning: 
  13404. HelpTOC                 Display the table of contents. 
  13405. HelpIndex               Display help index. 
  13406. HelpOnHelp              Display help on help system itself. 
  13407.  
  13408. ____________ 
  13409.  
  13410. Value returned: This function returns zero for success and non-zero for 
  13411. failure. 
  13412.  
  13413. ____________ 
  13414.  
  13415. See also: attach_help(), delete_help() 
  13416.  
  13417.  
  13418. ΓòÉΓòÉΓòÉ 14.9.4. display_help_item() ΓòÉΓòÉΓòÉ
  13419.  
  13420. display_help_item()   PEL 
  13421.  
  13422. Purpose:  To display on-line help on a string. 
  13423.  
  13424. ____________ 
  13425.  
  13426. Syntax:   display_help_item( str item ) 
  13427.  
  13428. ____________ 
  13429.  
  13430. Arguments: 
  13431.  
  13432. o item - the name of the help item to display help on. 
  13433.  
  13434. Description: First searches the NDX help previously loaded with the 
  13435. load_ndx_help() function for the item.  If it is not found, then the editor's 
  13436. help file is invoked to look up the item.  If it is still not found, the help 
  13437. system will display an error message stating that the topic could not be found. 
  13438.  
  13439. Note: If the item is not passed, the symbol under the cursor is used. 
  13440.  
  13441. ____________ 
  13442.  
  13443. Value returned:  None 
  13444.  
  13445. ____________ 
  13446.  
  13447. See also:  first_help, fast_help, ndx_help(), load_ndx_help() 
  13448.  
  13449.  
  13450. ΓòÉΓòÉΓòÉ 14.9.5. gui_help_index() ΓòÉΓòÉΓòÉ
  13451.  
  13452. gui_help_index()   PEL 
  13453.  
  13454. Purpose:  To display the help index. 
  13455.  
  13456. ____________ 
  13457.  
  13458. Syntax:   gui_help_index() 
  13459.  
  13460. ____________ 
  13461.  
  13462. Arguments:  none 
  13463.  
  13464. Description: 
  13465.  
  13466. ____________ 
  13467.  
  13468. Value returned:  none 
  13469.  
  13470.  
  13471. ΓòÉΓòÉΓòÉ 14.9.6. load_ndx_help() ΓòÉΓòÉΓòÉ
  13472.  
  13473. load_ndx_help()   PEL 
  13474.  
  13475. Purpose:  To initialize the NDX file system. 
  13476.  
  13477. ____________ 
  13478.  
  13479. Syntax:   load_ndx_help() 
  13480.  
  13481. ____________ 
  13482.  
  13483. Arguments:  None. 
  13484.  
  13485. Description: This function will load all the .ndx files specified in the 
  13486. HELPNDX environment variable.  The DPATH environment variable is searched to 
  13487. locate the .ndx files After initializing the NDX help system, context-sensitive 
  13488. or keyword help will search the loaded .ndx files for help on the word at the 
  13489. current cursor location. 
  13490.  
  13491. ____________ 
  13492.  
  13493. Value returned:  None. 
  13494.  
  13495. ____________ 
  13496.  
  13497. See also: ndx_help(), display_help_item() 
  13498.  
  13499.  
  13500. ΓòÉΓòÉΓòÉ 14.9.7. ndx_help() ΓòÉΓòÉΓòÉ
  13501.  
  13502. ndx_help()   PEL 
  13503.  
  13504. Purpose:  To look up help for a symbol in an ndx file. 
  13505.  
  13506. ____________ 
  13507.  
  13508. Syntax:   ndx_help( str symbol, [str ndx_file] ) 
  13509.  
  13510. ____________ 
  13511.  
  13512. Arguments: 
  13513.  
  13514. o symbol  - symbol to look up help for 
  13515. o ndx_file - ndx file to look for help in, if not specified 
  13516.  
  13517. Description: Before calling this function, load_ndx_help() must be called in 
  13518. order to initialize the NDX help system. 
  13519.  
  13520. ____________ 
  13521.  
  13522. Value returned: TRUE  -  success, found help FALSE -  failure, could not find 
  13523. help 
  13524.  
  13525. ____________ 
  13526.  
  13527. See also:  first_help, fast_help, load_ndx_help(), display_help_item() 
  13528.  
  13529.  
  13530. ΓòÉΓòÉΓòÉ 14.9.8. user_help_lines() ΓòÉΓòÉΓòÉ
  13531.  
  13532. user_help_lines()   PEL 
  13533.  
  13534. Purpose:  Entry point for user defined help. 
  13535.  
  13536. ____________ 
  13537.  
  13538. Syntax:   void user_help_lines(menuhndl main_menu ) 
  13539.  
  13540. ____________ 
  13541.  
  13542. Arguments: 
  13543.  
  13544. o main_menu - handle of the main menu 
  13545.  
  13546. Description: The user_help_lines() function is the entry point for user defined 
  13547. help on menus.  Help is added using the modify_menuitem() function. 
  13548.  
  13549. ____________ 
  13550.  
  13551. Value returned: none. 
  13552.  
  13553.  
  13554. ΓòÉΓòÉΓòÉ 14.10. Key mapping ΓòÉΓòÉΓòÉ
  13555.  
  13556. A Keymap tells SPE what function has been assigned which keystroke.  It is a 
  13557. table that the editor uses to look up which function has been associated with a 
  13558. specific keystroke.  The assignments in a keymap may easily be changed, or you 
  13559. may use an entirely different keymap when the current one does not serve your 
  13560. purpose. 
  13561.  
  13562. Keymaps are assigned an id number when they are created.  After creation with 
  13563. the create_keymap() function, the keymap is referenced by this id.  A stack of 
  13564. keymaps may be used to simplify changing from one keyboard definition to 
  13565. another. Keymaps may be pushed onto and popped off of this stack using the 
  13566. push_keymap() and pop_keymap() functions. 
  13567.  
  13568. There is one primary keymap, referred to as the current keymap.  A portion or 
  13569. all of the current keymap may be redefined by a keymap local to the current 
  13570. buffer.  Together, these keymaps are responsible for the interpretation of all 
  13571. keyboard input.  These two keymaps are identified by the current_keymap and 
  13572. buffer_keymap variables. 
  13573.  
  13574. assign_key() 
  13575.           Assigns a function to a keystroke. 
  13576. brief() 
  13577.           Makes the editor operate similarly to the BRIEF editor. 
  13578. clear_keymap() 
  13579.           Deletes all key assignments from a keymap definition. 
  13580. create_keymap() 
  13581.           Creates new keymap in preparation for customization. 
  13582. cua() 
  13583.           To switch to the CUA emulation. 
  13584. delete_keymap() 
  13585.           Deletes a keyboard definition from the system. 
  13586. emacs() 
  13587.           Switch to the emacs emulation. 
  13588. execute_key_action() 
  13589.           Perform the function associated with a key. 
  13590. function_binding() 
  13591.           Reports what keys a function is bound to. 
  13592. int_to_key() 
  13593.           Interprets a keycode into the name-string of the key. 
  13594. ispf() 
  13595.           To switch to the ispf emulation. 
  13596. key_to_int() 
  13597.           Tells the keycode associated with the name of a key. 
  13598. keymap_binding() 
  13599.           Reports the name of the function assigned to a key. 
  13600. learn_key() 
  13601.           Records keystrokes for assignment to a key. 
  13602. list_keymap() 
  13603.           To list the current keymap in various formats. 
  13604. native() 
  13605.           Installs the native keyboard definition. 
  13606. playback() 
  13607.           Reissue a series of previously recorded keystrokes. 
  13608. pop_keymap() 
  13609.           Restore the most recently saved keyboard definition. 
  13610. print_bindings() 
  13611.           To read keys and display helpful information on their bindings. 
  13612. push_keymap() 
  13613.           Saves a keymap on the stack, makes another current. 
  13614. record() 
  13615.           Store keystrokes in a string for later replay. 
  13616. record_key() 
  13617.           record() function with messages and prompting added. 
  13618. repeat_key_action() 
  13619.           Repeats the key action that follows. 
  13620. reset_keymap() 
  13621.           Redefines the current keymap to operate like another. 
  13622. scroll_lock_status() 
  13623.           To report the status of the scroll lock key. 
  13624. vi() 
  13625.           Makes the editor operate similarly to Unix_ VI editor. 
  13626.  
  13627.  
  13628. ΓòÉΓòÉΓòÉ 14.10.1. assign_key() ΓòÉΓòÉΓòÉ
  13629.  
  13630. assign_key()   Primitive 
  13631.  
  13632. Purpose: Assigns a function to a keystroke. 
  13633.  
  13634. ____________ 
  13635.  
  13636. Syntax:  int assign_key(str key, str function_call) 
  13637.  
  13638. ____________ 
  13639.  
  13640. Description: The assign_key() function records a key assignment in the current 
  13641. keymap.  The key argument gives the name of the key, to which a function is to 
  13642. be assigned, in string form. 
  13643.  
  13644. Within the key string, keystrokes may be represented numerically or as 
  13645. descriptive strings called keynames.  The simpler method is to specify the 
  13646. keystroke by keyname. 
  13647.  
  13648. When specifying a keystroke by numeric string, the number is preceded by a 
  13649. pound symbol, #.  Decimal values must be used. Hexadecimal representations are 
  13650. not acceptable in this context.  The number may be the character's ASCII value 
  13651. or, when you need to be more explicit, the character's key id. 
  13652.  
  13653. Keys that can be represented by a single character may be referenced by placing 
  13654. that character in the string.  A few characters are used for special purposes 
  13655. and must be preceded by a backslash when used to represent themselves.  These 
  13656. characters include the pound symbol, #, and angle brackets, <>.  They must be 
  13657. represented in this manner:  \#, \< and \>. 
  13658.  
  13659. Keys such as Tab, Esc and F1 whose names require more than one character to 
  13660. describe must be enclosed in angle brackets, <>, as follows: <Tab>, <Esc> and 
  13661. <F1>.  When a keystroke involves more than one key pressed simultaneously both 
  13662. key names are placed within the angle brackets.  These keynames must be 
  13663. separated by a single dash; a space or underscore is not acceptable.  A list of 
  13664. these keynames appears in the "Keymapping" chapter in Part One of this manual. 
  13665.  
  13666. The keyname and numeric methods of specifying keystrokes may be inter-mixed 
  13667. within the key string, as demonstrated in the following example: 
  13668.  
  13669.   #3a<tab> 
  13670.  
  13671. This example describes the keystrokes  [Ctrl][C],[a],[Tab]. The function_call 
  13672. argument usually gives a string containing just the name of a function to be 
  13673. assigned to the key.  It may, however, contain a function name and arguments or 
  13674. an assignment to a variable. Here is a typical example of an assign_key() 
  13675. function assignment: 
  13676.  
  13677. assign_key("<Alt-F10>","displayDate") 
  13678.  
  13679. When specifying arguments to a function within the function_call string, 
  13680. parentheses and commas are not used.  The name of the function and each of the 
  13681. arguments are separated by spaces only: 
  13682.  
  13683. assign_key("<Ctrl-U>","restore_position 1") 
  13684.  
  13685. Calling this same function from within source code would use the form 
  13686. restore_position(1).  This is incorrect form for assigning to a key, however. 
  13687.  
  13688. Here is an example of the function_call argument containing a variable 
  13689. assignment: assign_key("<Alt-L>","message_level = 3") 
  13690.  
  13691. ____________ 
  13692.  
  13693. Value returned: 
  13694.  
  13695. No useful value is returned by this function. 
  13696.  
  13697.  
  13698. ΓòÉΓòÉΓòÉ 14.10.2. brief() ΓòÉΓòÉΓòÉ
  13699.  
  13700. brief()   PEL 
  13701.  
  13702. Purpose: Makes the editor operate similarly to the BRIEF editor. 
  13703.  
  13704. ____________ 
  13705.  
  13706. Syntax:  void brief() 
  13707.  
  13708. ____________ 
  13709.  
  13710. Description: The brief() function executes a setup and installs a special 
  13711. keyboard definition that causes the editor to operate like the popular BRIEF 
  13712. editor.  This is one of the "emulation packages" provided with the editor.  For 
  13713. a list of differences between the editor's BRIEF emulation and the BRIEF editor 
  13714. see Appendix B of the User's Manual. 
  13715.  
  13716. ____________ 
  13717.  
  13718. Value returned: No useful value is returned by this function. 
  13719.  
  13720.  
  13721. ΓòÉΓòÉΓòÉ 14.10.3. clear_keymap() ΓòÉΓòÉΓòÉ
  13722.  
  13723. clear_keymap()   Primitive 
  13724.  
  13725. Purpose: Deletes all key assignments from a keymap definition. 
  13726.  
  13727. ____________ 
  13728.  
  13729. Syntax:  int clear_keymap([keymapid keymap]) 
  13730.  
  13731. ____________ 
  13732.  
  13733. Description: The clear_keymap() function removes all key assignments from the 
  13734. keyboard definition described by the keymap argument.  The keymap argument is 
  13735. the numeric id associated with a previously defined keyboard definition. 
  13736.  
  13737. If the keymap argument is omitted, the keymap currently in use is initialized. 
  13738. For this reason, some care should be exercised when using the clear_keymap(). 
  13739. function. 
  13740.  
  13741. There is one key function which is always defined: the [Ctrl][Break] key 
  13742. combination.  This key combination allows an orderly exit from the editor. 
  13743.  
  13744. ____________ 
  13745.  
  13746. Value returned: 
  13747.  
  13748. This function returns a non-zero (TRUE) value unless an invalid keymap argument 
  13749. is supplied.  In the latter case, the clear_keymap() function returns a zero 
  13750. (FALSE) value. 
  13751.  
  13752.  
  13753. ΓòÉΓòÉΓòÉ 14.10.4. create_keymap() ΓòÉΓòÉΓòÉ
  13754.  
  13755. create_keymap()   Primitive 
  13756.  
  13757. Purpose: Creates new keymap in preparation for customization. 
  13758.  
  13759. ____________ 
  13760.  
  13761. Syntax:  keymapid create_keymap([keymapid keymap]) 
  13762.  
  13763. ____________ 
  13764.  
  13765. Description: The create_keymap() function produces a new keymap that may then 
  13766. be customized.  The new keymap is initialized to the values of the keymap 
  13767. described by the keymap argument.  If the keymap argument is missing, the 
  13768. empty_keymap is used.  If an invalid argument is specified, the function will 
  13769. fail. 
  13770.  
  13771. ____________ 
  13772.  
  13773. Value returned: 
  13774.  
  13775. The value returned by create_keymap() is the id assigned to the new keymap by 
  13776. the system.  A return value of zero indicates that the function has failed. 
  13777.  
  13778. ____________ 
  13779.  
  13780. See also:  current_keymap, delete_keymap(). 
  13781.  
  13782.  
  13783. ΓòÉΓòÉΓòÉ 14.10.5. cua() ΓòÉΓòÉΓòÉ
  13784.  
  13785. cua()   PEL 
  13786.  
  13787. Purpose:  To switch to the CUA emulation. 
  13788.  
  13789. ____________ 
  13790.  
  13791. Syntax:   cua() 
  13792.  
  13793. ____________ 
  13794.  
  13795. Arguments:  none 
  13796.  
  13797. Description: 
  13798.  
  13799. ____________ 
  13800.  
  13801. Value returned:  none 
  13802.  
  13803.  
  13804. ΓòÉΓòÉΓòÉ 14.10.6. delete_keymap() ΓòÉΓòÉΓòÉ
  13805.  
  13806. delete_keymap()   Primitive 
  13807.  
  13808. Purpose: Deletes a keyboard definition from the system. 
  13809.  
  13810. ____________ 
  13811.  
  13812. Syntax:  int delete_keymap(keymapid keymap) 
  13813.  
  13814. ____________ 
  13815.  
  13816. Description: The delete_keymap(). function disposes of a keymap definition and 
  13817. undefines the associated id.  This function may not be performed on the keymap 
  13818. currently in use. This function should be used with discretion since its use 
  13819. can result in references to non-existent keyboard definitions on the keymap 
  13820. stack. 
  13821.  
  13822. ____________ 
  13823.  
  13824. Value returned: The value returned by the delete_keymap(). function is non-zero 
  13825. (TRUE) upon successful completion.  A return value of zero or FALSE indicates 
  13826. that the function has failed. 
  13827.  
  13828.  
  13829. ΓòÉΓòÉΓòÉ 14.10.7. emacs() ΓòÉΓòÉΓòÉ
  13830.  
  13831. emacs()   PEL 
  13832.  
  13833. Purpose:  Switch to the emacs emulation. 
  13834.  
  13835. ____________ 
  13836.  
  13837. Syntax:   emacs() 
  13838.  
  13839. ____________ 
  13840.  
  13841. Arguments:  none 
  13842.  
  13843. Description: 
  13844.  
  13845. ____________ 
  13846.  
  13847. Value returned:  none 
  13848.  
  13849.  
  13850. ΓòÉΓòÉΓòÉ 14.10.8. execute_key_action() ΓòÉΓòÉΓòÉ
  13851.  
  13852. execute_key_action()   PEL 
  13853.  
  13854. Purpose: Perform the function associated with a key. 
  13855.  
  13856. ____________ 
  13857.  
  13858. Syntax:  any execute_key_action(str keys) 
  13859.  
  13860. ____________ 
  13861.  
  13862. Description: The execute_key_action() function executes the function associated 
  13863. with the keystroke described by keys as if it had been typed in from the 
  13864. keyboard.  The keys argument gives the name of the keystroke in string form.  A 
  13865. table containing the allowable key-name strings appears in the "Keymapping" 
  13866. chapter in Part One of this manual. 
  13867.  
  13868. ____________ 
  13869.  
  13870. Value returned: 
  13871.  
  13872. This function's return value may be either a string or an integer, depending on 
  13873. the value returned by the function that it executes.  If an invalid argument is 
  13874. supplied, the return value will be an empty string.  If, however, a valid 
  13875. key-name string is supplied but no function is associated with that keystroke, 
  13876. the string value "undefined" is returned. 
  13877.  
  13878.  
  13879. ΓòÉΓòÉΓòÉ 14.10.9. function_binding() ΓòÉΓòÉΓòÉ
  13880.  
  13881. function_binding()   Primitive 
  13882.  
  13883. Purpose: Reports what keys a function is bound to. 
  13884.  
  13885. ____________ 
  13886.  
  13887. Syntax:  str function_binding(funcid func [, keymapid keymap]) 
  13888.  
  13889. ____________ 
  13890.  
  13891. Description: The function_binding() function tells the key or keystroke 
  13892. combination to which the function described by the func argument is bound.  If 
  13893. func is bound to more than one keystroke, all of the associated keystrokes are 
  13894. reported.  The keymap argument may be used to specify the keymap to which the 
  13895. query is to apply.  If keymap is not supplied, the query applies to the current 
  13896. keymap. 
  13897.  
  13898. ____________ 
  13899.  
  13900. Value returned: 
  13901.  
  13902. The value returned by function_binding(). is a string containing the keystrokes 
  13903. associated with the function.  The keystrokes take the form of the key id (scan 
  13904. code and ASCII value) in decimal notation preceded by a pound sign ( # ): 
  13905.  
  13906.   "#123#432#45565" 
  13907.  
  13908. The example above shows a keystroke sequence of three key ids.  The function is 
  13909. assigned to this combination of keys. If the function has been assigned to more 
  13910. than one keystroke combination, each keystroke combination is separated from 
  13911. the one preceding by a space:   "#123#432#45565 #4543 #23423" 
  13912.  
  13913. This second example shows three different key sequences that may be used to 
  13914. execute the function.  The first key sequence involves three separate key ids. 
  13915.  
  13916.  
  13917. ΓòÉΓòÉΓòÉ 14.10.10. int_to_key() ΓòÉΓòÉΓòÉ
  13918.  
  13919. int_to_key()   Primitive 
  13920.  
  13921. Purpose: Interprets a keycode into the name-string of the key. 
  13922.  
  13923. ____________ 
  13924.  
  13925. Syntax:  str int_to_key(int char) 
  13926.  
  13927. ____________ 
  13928.  
  13929. Description: The int_to_key() function provides the key- name string 
  13930. corresponding to the key described by the char argument.  The char argument is 
  13931. a keycode value such as that returned by the getkey() or getchar() keyboard 
  13932. input functions. 
  13933.  
  13934. ____________ 
  13935.  
  13936. Value returned: 
  13937.  
  13938. The value returned by the int_to_key() function is the key's descriptive 
  13939. string. A table containing the key-name strings used by this function appears 
  13940. in the "Keymapping" chapter in Part One of this manual.  Passing an invalid 
  13941. argument to this function will result in an empty string being returned. 
  13942.  
  13943.  
  13944. ΓòÉΓòÉΓòÉ 14.10.11. ispf() ΓòÉΓòÉΓòÉ
  13945.  
  13946. ispf()   PEL 
  13947.  
  13948. Purpose:  To switch to the ispf emulation. 
  13949.  
  13950. ____________ 
  13951.  
  13952. Syntax:   ispf() 
  13953.  
  13954. ____________ 
  13955.  
  13956. Arguments:  none 
  13957.  
  13958. Description: 
  13959.  
  13960. ____________ 
  13961.  
  13962. Value returned: 
  13963.  
  13964.  
  13965. ΓòÉΓòÉΓòÉ 14.10.12. key_to_int() ΓòÉΓòÉΓòÉ
  13966.  
  13967. key_to_int()   Primitive 
  13968.  
  13969. Purpose: Tells the keycode associated with the name of a key. 
  13970.  
  13971. ____________ 
  13972.  
  13973. Syntax:  int key_to_int(str key) 
  13974.  
  13975. ____________ 
  13976.  
  13977. Description: The key_to_int() function provides the scan code and any ASCII 
  13978. equivalent for the key described by the key argument.  The key argument is 
  13979. string containing the name of a key.  A table containing the key-name strings 
  13980. used by this function appears in the "Keymapping" chapter in Part One of this 
  13981. manual. 
  13982.  
  13983. ____________ 
  13984.  
  13985. Value returned: 
  13986.  
  13987. The value returned by the key_to_int() function is in the same format as that 
  13988. returned by the getkey() function.  The least significant (lowest) byte 
  13989. contains the ASCII value of the key and the next byte contains the scan code. 
  13990. Passing an invalid argument to this function will result in a zero value 
  13991. returned. 
  13992.  
  13993.  
  13994. ΓòÉΓòÉΓòÉ 14.10.13. keymap_binding() ΓòÉΓòÉΓòÉ
  13995.  
  13996. keymap_binding()   Primitive 
  13997.  
  13998. Purpose: Reports the name of the function assigned to a key. 
  13999.  
  14000. ____________ 
  14001.  
  14002. Syntax:  str keymap_binding(str keys [, keymapid keymap]) 
  14003.  
  14004. ____________ 
  14005.  
  14006. Description: The keymap_binding() function reports what function is associated 
  14007. with the keystroke or keystrokes described by the keys argument.  The keys 
  14008. argument describes the keystrokes in string form.  These descriptive strings 
  14009. are called key-name strings.  A table containing the allowable key-name strings 
  14010. appears in the "Keymapping" chapter in Part One of this manual. 
  14011.  
  14012. The keymap argument may be used optionally to specify that the inquiry applies 
  14013. to a keyboard definition other than the one currently in use.  If the keymap 
  14014. argument is omitted, the assignment reported applies to the current keymap or 
  14015. the local keymap assignment, if any. 
  14016.  
  14017. ____________ 
  14018.  
  14019. Value returned: 
  14020.  
  14021. The string returned by this function upon successful completion contains the 
  14022. name of the function that will be executed when the described keystroke is 
  14023. executed. 
  14024.  
  14025. An empty string is returned if the keymap has no function assigned to the 
  14026. specified key or if the key combination is not recognized. 
  14027.  
  14028.  
  14029. ΓòÉΓòÉΓòÉ 14.10.14. learn_key() ΓòÉΓòÉΓòÉ
  14030.  
  14031. learn_key()   PEL 
  14032.  
  14033. Purpose: Records keystrokes for assignment to a key. 
  14034.  
  14035. ____________ 
  14036.  
  14037. Syntax: void learn_key() 
  14038.  
  14039. ____________ 
  14040.  
  14041. Description: The learn_key() function is an extension of the record() and 
  14042. playback() functions allowing keystroke recordings to be assigned to a specific 
  14043. key.  This allows more than one series of keystrokes to be defined at a time. 
  14044. When learn_key() is invoked, it requests the key combination to which the 
  14045. recording is to be assigned and then recording begins.  The recording sequence 
  14046. is terminated by pressing again the key to which the recording is to be 
  14047. assigned. 
  14048.  
  14049. ____________ 
  14050.  
  14051. Value returned: No useful value is returned by this function. 
  14052.  
  14053.  
  14054. ΓòÉΓòÉΓòÉ 14.10.15. list_keymap() ΓòÉΓòÉΓòÉ
  14055.  
  14056. list_keymap()   PEL 
  14057.  
  14058. Purpose:  To list the current keymap in various formats. 
  14059.  
  14060. ____________ 
  14061.  
  14062. Syntax:   list_keymap( str format, int noBrackets, int plus ) 
  14063.  
  14064. ____________ 
  14065.  
  14066. Arguments: 
  14067.  
  14068. o format - one of various output formats: 
  14069. o noBrackets - whether or not to display "<>" chars 
  14070. o plus - use '+' symbol instead of '-' symbol for key strings(i.e. <Alt-S> 
  14071.   becomes <Alt+S> ) 
  14072.  
  14073. Description: This function is useful whenever you need a list of the key 
  14074. bindings in your keymap.  Choose the formatting style that suites your purpose. 
  14075. "pel" -  outputs the current keymap as a series of pel commands that you can 
  14076. block copy into your own macros.  "cfg" -  outputs the current keymap as a 
  14077. series of entries in the configuration file that you can block copy into your 
  14078. own configuration file.  ""   -  outputs the keymap in an easy-to-read table. 
  14079.  
  14080. ____________ 
  14081.  
  14082. Value returned:  none 
  14083.  
  14084.  
  14085. ΓòÉΓòÉΓòÉ 14.10.16. native() ΓòÉΓòÉΓòÉ
  14086.  
  14087. native()   PEL 
  14088.  
  14089. Purpose: Installs the native keyboard definition. 
  14090.  
  14091. ____________ 
  14092.  
  14093. Syntax: void native() 
  14094.  
  14095. ____________ 
  14096.  
  14097. Description: The native() function executes a setup and installs the factory 
  14098. keyboard definition.  This is one of the "emulation packages" provided with the 
  14099. editor. Other keyboard definitions are described in the Appendices to the 
  14100. User's Manual. 
  14101.  
  14102. ____________ 
  14103.  
  14104. Value returned: No useful value is returned by this function. 
  14105.  
  14106.  
  14107. ΓòÉΓòÉΓòÉ 14.10.17. playback() ΓòÉΓòÉΓòÉ
  14108.  
  14109. playback()   Primitive 
  14110.  
  14111. Purpose: Reissue a series of previously recorded keystrokes. 
  14112.  
  14113. ____________ 
  14114.  
  14115. Syntax: int playback([str recording [, keymapid keymap]]) 
  14116.  
  14117. ____________ 
  14118.  
  14119. Description: The playback() function issues the keystrokes contained in the 
  14120. recording argument.  If this argument is not supplied, playback() replays the 
  14121. keystrokes in the last string recorded.  These keystrokes have the effect of 
  14122. being entered using the keyboard definition indicated by the keymap argument. 
  14123. If the keymap argument is not specified, the keystrokes are issued through the 
  14124. keymap currently in effect. 
  14125.  
  14126. ____________ 
  14127.  
  14128. Value returned: The value returned by the playback() function is non-zero 
  14129. (TRUE) on successful completion.  The function will fail if a function assigned 
  14130. to one of the keystrokes issued cannot be successfully completed.  It will also 
  14131. fail if there is an invalid keystroke contained in the recording argument. 
  14132. Upon failure, the function returns a zero (FALSE) value. 
  14133.  
  14134.  
  14135. ΓòÉΓòÉΓòÉ 14.10.18. pop_keymap() ΓòÉΓòÉΓòÉ
  14136.  
  14137. pop_keymap()   PEL 
  14138.  
  14139. Purpose: Restore the most recently saved keyboard definition. 
  14140.  
  14141. ____________ 
  14142.  
  14143. Syntax: int pop_keymap() 
  14144.  
  14145. ____________ 
  14146.  
  14147. Description: The pop_keymap() function restores a keymap previously saved with 
  14148. the push_keymap() function. The keymap on the stack which was most recently 
  14149. saved is removed from the stack and made the current keymap. 
  14150.  
  14151. ____________ 
  14152.  
  14153. Value returned: The pop_keymap() function returns a non-zero (TRUE) value.  If 
  14154. there are no keymaps remaining on the stack, the function will return a zero 
  14155. (FALSE) value. 
  14156.  
  14157.  
  14158. ΓòÉΓòÉΓòÉ 14.10.19. print_bindings() ΓòÉΓòÉΓòÉ
  14159.  
  14160. print_bindings()   PEL 
  14161.  
  14162. Purpose:  To read keys and display helpful information on their bindings. 
  14163.  
  14164. ____________ 
  14165.  
  14166. Syntax:   print_bindings() 
  14167.  
  14168. ____________ 
  14169.  
  14170. Arguments:  none 
  14171.  
  14172. Description: When you call this function, it will keep reading the key- 
  14173. combinations you press and displaying information on them until you hit the 
  14174. <Esc> key.  It will then ask you if you want to terminate the sequence of key 
  14175. queries or if you want information on the <Esc> key itself.  Either 'y' or 
  14176. hitting <Esc> again will terminate this function, 'n' will display information 
  14177. on the <Esc> key and continue.  Information displayed:  scan code(hex) scan 
  14178. code(dec) ascii value key name key binding 
  14179.  
  14180. ____________ 
  14181.  
  14182. Value returned:  none 
  14183.  
  14184.  
  14185. ΓòÉΓòÉΓòÉ 14.10.20. push_keymap() ΓòÉΓòÉΓòÉ
  14186.  
  14187. push_keymap()   PEL 
  14188.  
  14189. Purpose: Saves a keymap on the stack, makes another current. 
  14190.  
  14191. ____________ 
  14192.  
  14193. Syntax: int push_keymap([keymapid keymap]) 
  14194.  
  14195. ____________ 
  14196.  
  14197. Description: The push_keymap() function saves the current keyboard definition 
  14198. on the stack it shares with the pop_keymap() function.  It then makes the 
  14199. keymap described by the keymap argument the new current keymap.  If the keymap 
  14200. argument does not represent a valid keymap, this function does nothing but 
  14201. return an error. 
  14202.  
  14203. If the keymap argument is omitted the current keyboard definition remains the 
  14204. same.  However, that keymap's id has been saved on the stack for later 
  14205. restoration. 
  14206.  
  14207. ____________ 
  14208.  
  14209. Value returned: Upon successful completion, the push_keymap() function returns 
  14210. a non-zero (TRUE) value.  On error this function returns a zero (FALSE) value. 
  14211.  
  14212.  
  14213. ΓòÉΓòÉΓòÉ 14.10.21. record() ΓòÉΓòÉΓòÉ
  14214.  
  14215. record()   Primitive 
  14216.  
  14217. Purpose: Store keystrokes in a string for later replay. 
  14218.  
  14219. ____________ 
  14220.  
  14221. Syntax: str record([int flag]) 
  14222.  
  14223. ____________ 
  14224.  
  14225. Description: The record() function is used to turn on and also to turn off the 
  14226. recording of keystrokes as they are entered from the keyboard.  The flag 
  14227. argument is used to indicate whether recording is to be turned on or off.  When 
  14228. flag is 1, recording is turned on. When flag is 0, recording is turned off.  If 
  14229. this argument is omitted, recording will be toggled:  if it is on, it will be 
  14230. turned off; if it is off, it will be turned on. 
  14231.  
  14232. If recording is explicitly turned on when it is already on, the recording 
  14233. process is re-initialized and previously recorded keystrokes are abandoned. 
  14234. Turning recording off when it is already off has no effect. 
  14235.  
  14236. There are a few key sequences that can't be recorded, such as [Ctrl][Break] and 
  14237. [Ctrl][Alt][Del].  The rule governing what can be recorded and what cannot is 
  14238. as follows:  If it can't be detected with the getkey() function it can't be 
  14239. recorded.  A table of the recognized key sequences is given in the "Console 
  14240. I/O" chapter in Part One of this manual. Use the record_key() function for 
  14241. assignment to a keystroke. 
  14242.  
  14243. ____________ 
  14244.  
  14245. Value returned: When record() turns recording off, a string is always returned. 
  14246. The string contains ASCII values corresponding to the keys that have been 
  14247. typed. Each keycode is represented by two character sequences.  The string may 
  14248. be empty, if no valid keystrokes are typed.  When recording is turned on, an 
  14249. empty string is returned. 
  14250.  
  14251.  
  14252. ΓòÉΓòÉΓòÉ 14.10.22. record_key() ΓòÉΓòÉΓòÉ
  14253.  
  14254. record_key()   PEL 
  14255.  
  14256. Purpose: record() function with messages and prompting added. 
  14257.  
  14258. ____________ 
  14259.  
  14260. Syntax: str record_key() 
  14261.  
  14262. ____________ 
  14263.  
  14264. Description: The record_key() function is a version of the record() functions 
  14265. more suitable for assignment to a keystroke.  It, too, turns on and off the 
  14266. recording of keystrokes entered from the keyboard. This function sends a 
  14267. message to the dialog window indicating whether calling the function has turned 
  14268. recording on or off. 
  14269.  
  14270. As with the record() function, it may only remember one series of keystrokes at 
  14271. a time.  If another series of keystrokes has already been recorded, the user is 
  14272. prompted before overwriting the previous recording.  If the record_key() 
  14273. function is called while recording is already in process, the keystroke is 
  14274. ignored. 
  14275.  
  14276. ____________ 
  14277.  
  14278. Value returned: No useful value is returned by this function. 
  14279.  
  14280.  
  14281. ΓòÉΓòÉΓòÉ 14.10.23. repeat_key_action() ΓòÉΓòÉΓòÉ
  14282.  
  14283. repeat_key_action()   PEL 
  14284.  
  14285. Purpose: Repeats the key action that follows. 
  14286.  
  14287. ____________ 
  14288.  
  14289. Syntax: void repeat_key_action() 
  14290.  
  14291. ____________ 
  14292.  
  14293. Description: The repeat_key_action() function prompts the user for a number of 
  14294. repetitions and then waits for the user to press a key.  It then repeats the 
  14295. action associated with that key the specified number of times.  The action to 
  14296. be repeated may be anything from repeatedly inserting a character into the 
  14297. buffer to paging down a specified number of times. 
  14298.  
  14299. ____________ 
  14300.  
  14301. Value returned: No useful value is returned by this function. 
  14302.  
  14303.  
  14304. ΓòÉΓòÉΓòÉ 14.10.24. reset_keymap() ΓòÉΓòÉΓòÉ
  14305.  
  14306. reset_keymap()   Primitive 
  14307.  
  14308. Purpose: Redefines the current keymap to operate like another. 
  14309.  
  14310. ____________ 
  14311.  
  14312. Syntax: int reset_keymap([keymapid keymap]) 
  14313.  
  14314. ____________ 
  14315.  
  14316. Description: The reset_keymap() function redefines the current keymap to be a 
  14317. copy of the keyboard definition described by the keymap argument.  The keymap 
  14318. argument is the numeric id associated with a previously defined keyboard 
  14319. definition. 
  14320.  
  14321. If keymap is omitted, the keyboard is re- initialized to the assignments of the 
  14322. system default keyboard (factory_keymap).  If keymap is supplied but does not 
  14323. represent a valid keyboard, this function will fail. 
  14324.  
  14325. ____________ 
  14326.  
  14327. Value returned: The reset_keymap() function returns a non-zero (TRUE) value 
  14328. upon successful completion.  If the function fails, a zero (FALSE) value is 
  14329. returned. 
  14330.  
  14331.  
  14332. ΓòÉΓòÉΓòÉ 14.10.25. scroll_lock_status() ΓòÉΓòÉΓòÉ
  14333.  
  14334. scroll_lock_status()   PEL 
  14335.  
  14336. Purpose:  To report the status of the scroll lock key. 
  14337.  
  14338. ____________ 
  14339.  
  14340. Syntax:   scroll_lock_status() 
  14341.  
  14342. ____________ 
  14343.  
  14344. Arguments:  none 
  14345.  
  14346. Description: 
  14347.  
  14348. ____________ 
  14349.  
  14350. Value returned: TRUE  -  scroll lock on FALSE -  scroll lock off 
  14351.  
  14352.  
  14353. ΓòÉΓòÉΓòÉ 14.10.26. vi() ΓòÉΓòÉΓòÉ
  14354.  
  14355. vi()   PEL 
  14356.  
  14357. Purpose: Makes the editor operate similarly to Unix_ VI editor. 
  14358.  
  14359. ____________ 
  14360.  
  14361. Syntax: void vi() 
  14362.  
  14363. ____________ 
  14364.  
  14365. Description: The vi() function configures the editor to approximate the 
  14366. operation of the popular UNIX editor, VI.  This is one of the "emulation 
  14367. packages" provided with the editor. 
  14368.  
  14369. Because of certain inherent differences in the way the editor performs tasks 
  14370. and the way VI performs similar tasks, this function does not attempt a 
  14371. complete emulation of VI.  For a list of the keys in the editor's VI emulation 
  14372. see Appendix B of the User's Manual. 
  14373.  
  14374. ____________ 
  14375.  
  14376. Value returned: No useful value is returned by this function. 
  14377.  
  14378.  
  14379. ΓòÉΓòÉΓòÉ 14.11. Menus ΓòÉΓòÉΓòÉ
  14380.  
  14381. append_menuitem() 
  14382.           Appends a menu item to a menu. 
  14383. create_menu() 
  14384.           Creates a menu. 
  14385. delete_menu() 
  14386.           Deletes a menu 
  14387. delete_menuitem() 
  14388.           Removes a menu item from a menu 
  14389. fix_menu_text() 
  14390.           To update the menu accelerator text. 
  14391. insert_menuitem() 
  14392.           Inserts a menu item into a menu. 
  14393. menu_functions() 
  14394.           Lists the functions to execute when a menu item is selected. 
  14395. menu_info() 
  14396.           Retrieves information about a menu. 
  14397. modify_menuitem() 
  14398.           Modifies attributes of a particular menu item. 
  14399. show_popup() 
  14400.           Displays a popup menu 
  14401. user_menu() 
  14402.           Entry point for user defined help. 
  14403.  
  14404.  
  14405. ΓòÉΓòÉΓòÉ 14.11.1. append_menuitem() ΓòÉΓòÉΓòÉ
  14406.  
  14407. append_menuitem()   Primitive 
  14408.  
  14409. Purpose: Appends a menu item to a menu. 
  14410.  
  14411. ____________ 
  14412.  
  14413. Syntax: void append_menuitem(long menuid, short itemid, short flags, [any 
  14414. itemInfo, [any itemText]]) 
  14415.  
  14416. ____________ 
  14417.  
  14418. Arguments: menuid - the menu to append the item into.  The menuid argument must 
  14419. have been returned by the create_menu() function. 
  14420.  
  14421. itemid - the id of the newly created menu id. 
  14422.  
  14423. flags - contains information on the characteristics of the menu item.  The 
  14424. flags argument can be any one or more of the following combined with the or() 
  14425. function: 
  14426.  
  14427. Types of Menu Items 
  14428.  
  14429. MI_SEPARATOR - menu item is a separator 
  14430.  
  14431. MI_SUBMENU - menu item is a submenu 
  14432.  
  14433. MI_MENUITEM - menu item is a normal menu item 
  14434.  
  14435. Styles of Menu Items 
  14436.  
  14437. MI_CHECKED - menu item is checked 
  14438.  
  14439. MI_UNCHECKED - menu item is not checked 
  14440.  
  14441. MI_DISABLED - menu item is disabled 
  14442.  
  14443. MI_ENABLED - menu item is enabled 
  14444.  
  14445. MI_DEFAULT - MI_ENABLED | MI_MENUITEM 
  14446.  
  14447. iteminfo - depends on the type of item created according to the flags argument. 
  14448.  
  14449. Possible Flag Values 
  14450.  
  14451. MI_SEPARATOR - Not used. 
  14452.  
  14453. MI_SUBMENU - Submenu id. 
  14454.  
  14455. MI_MENUITEM - Function id of function to call when menu item is selected. Must 
  14456. be a value returned from function_id(). 
  14457.  
  14458. itemText - this contains text that is displayed for the new menu item. This 
  14459. argument is only used for MI_SUBMENU and MI_MENUITEM types of menu items. 
  14460.  
  14461. help - contains an index into the program's help table.  When [F1} is pressed 
  14462. on the menu item, the helpl argument will be used to display help for the 
  14463. particular menu item.  The help file must have been previously loaded with the 
  14464. attach_help() function. 
  14465.  
  14466. ____________ 
  14467.  
  14468. Description: The append_menuitem() function appends a menu item into a menu. 
  14469.  
  14470. ____________ 
  14471.  
  14472. Value returned: None. 
  14473.  
  14474.  
  14475. ΓòÉΓòÉΓòÉ 14.11.2. create_menu() ΓòÉΓòÉΓòÉ
  14476.  
  14477. create_menu()   Primitive 
  14478.  
  14479. Purpose: Creates a menu. 
  14480.  
  14481. ____________ 
  14482.  
  14483. Syntax: menuid create_menu([int resource_id], [str resource_dll]) 
  14484.  
  14485. ____________ 
  14486.  
  14487. Arguments: resource_id - the id of the menu in the resource file 
  14488.  
  14489. resource_dll - the name of the DLL that stores the menu resource. If this 
  14490. argument is not specified, the executable will be searched for the menu 
  14491. resource. 
  14492.  
  14493. ____________ 
  14494.  
  14495. Description: The create_menu() function creates a menu that can be displayed as 
  14496. the main menu or as a popup menu. 
  14497.  
  14498. The menu can be loaded from a resource file by providing the resource id 
  14499. argument and optionally a resource DLL if the menu resource is not bound to the 
  14500. executable file. 
  14501.  
  14502. ____________ 
  14503.  
  14504. Value returned: The new menu is returned upon success.  A zero value is 
  14505. returned if the function fails. 
  14506.  
  14507.  
  14508. ΓòÉΓòÉΓòÉ 14.11.3. delete_menu() ΓòÉΓòÉΓòÉ
  14509.  
  14510. delete_menu()   Primitive 
  14511.  
  14512. Purpose: Deletes a menu 
  14513.  
  14514. ____________ 
  14515.  
  14516. Syntax: void delete_menu(menuid menu) 
  14517.  
  14518. ____________ 
  14519.  
  14520. Description: The delete_menu() function deletes and frees the memory associated 
  14521. with the menu argument. The menu argument contains the menuid to delete and 
  14522. must have been returned from the create_menu() function. 
  14523.  
  14524. ____________ 
  14525.  
  14526. Value returned: The delete_menu() function does not return a value. 
  14527.  
  14528.  
  14529. ΓòÉΓòÉΓòÉ 14.11.4. fix_menu_text() ΓòÉΓòÉΓòÉ
  14530.  
  14531. fix_menu_text()   PEL 
  14532.  
  14533. Purpose:  To update the menu accelerator text. 
  14534.  
  14535. ____________ 
  14536.  
  14537. Syntax:   fix_menu_text( [[int id, funcid functionid], [str prefix]] ) 
  14538.  
  14539. ____________ 
  14540.  
  14541. Arguments: 
  14542.  
  14543. o id - id of the menuitem 
  14544. o functionid - function to display key bindings for 
  14545. o prefix - string prefix to use 
  14546.  
  14547. Description: This function updates the menu accelerator text to reflect the 
  14548. current keymap.  This is used when the emulation mode is changed to insure that 
  14549. the accelerator text is up to date. The prefix argument can be used to specify 
  14550. multiple-keystroke accelerators.  When you type <Ctrl-X> in emacs, for 
  14551. instance, the keymap is temporarily changed to implement the multiple- 
  14552. keystroke commands that begin with <Ctrl-X>.  In the case of emacs, the prefix 
  14553. argument of fix_menu_text() is set to "Ctrl+X-" while the id and functionid 
  14554. arguments are set to the function assigned to <Ctrl-S> in the new keymap and 
  14555. the effected menu item, respectively. 
  14556.  
  14557. ____________ 
  14558.  
  14559. Value returned:  none 
  14560.  
  14561.  
  14562. ΓòÉΓòÉΓòÉ 14.11.5. delete_menuitem() ΓòÉΓòÉΓòÉ
  14563.  
  14564. delete_menuitem()   Primitive 
  14565.  
  14566. Purpose: Removes a menu item from a menu 
  14567.  
  14568. ____________ 
  14569.  
  14570. Syntax: void delete_menuitem(menuid menu, short itemid) 
  14571.  
  14572. ____________ 
  14573.  
  14574. Description: The delete_menuitem() function will remove the specified item from 
  14575. a menu. The menu argument contains the menu to remove the item from.  The menu 
  14576. argument must have been returned from the create_menu() function. The itemid 
  14577. argument is the id of the menu item to delete.  The item id must be the same id 
  14578. as the id used in the append_menuitem() function. 
  14579.  
  14580. ____________ 
  14581.  
  14582. Value returned: The delete_menuitem() function does not return a value. 
  14583.  
  14584.  
  14585. ΓòÉΓòÉΓòÉ 14.11.6. insert_menuitem() ΓòÉΓòÉΓòÉ
  14586.  
  14587. insert_menuitem()   Primitive 
  14588.  
  14589. Purpose: Inserts a menu item into a menu. 
  14590.  
  14591. ____________ 
  14592.  
  14593. Syntax: void insert_menuitem(long  menuid, short itemid, short before_item_id, 
  14594. short  flags,  [any itemInfo], [str itemText], [str help]) 
  14595.  
  14596. ____________ 
  14597.  
  14598. Description: The insert_menuitem() function inserts a menu item into a menu. 
  14599.  
  14600. The menuid argument is the menu to append the item into.  The menuid argument 
  14601. must have been returned from the create_menu() function. 
  14602.  
  14603. The itemid argument is the id of the newly created menu id. 
  14604.  
  14605. The flags argument contains information on the characteristics of the menu 
  14606. item.  The flags argument can be any of the following or'ed together: 
  14607.  
  14608. Types of menu items: 
  14609.  
  14610. MI_SEPARATOR        - menu item is a separator 
  14611. MI_SUBMENU          - menu item is a submenu 
  14612. MI_MENUITEM         - menu item is a normal menu item 
  14613.  
  14614. Styles of menu item: 
  14615.  
  14616. MI_CHECKED          - menu item is checked 
  14617. MI_UNCHECKED        - menu item is not checked 
  14618. MI_DISABLED         - menu item is disabled 
  14619. MI_ENABLED          - menu item is enabled 
  14620. MI_DEFAULT          - MI_ENABLED | MI_MENUITEM 
  14621. The itemInfo argument depends on the type of item created according to the 
  14622. flags argument. 
  14623.  
  14624. Flags argument contains: ItemInfo must be: 
  14625. MI_SEPARATOR            Not used 
  14626. MI_SUBMENU              Submenu id 
  14627. MI_MENUITEM             function id of function to call when menu item is 
  14628.                         selected. Must be returned from function_id(). 
  14629.  
  14630. The itemText argument contains the text that is displayed for the new menu 
  14631. item.  This argument is only used for MI_SUBMENU and MI_MENUITEM types of menu 
  14632. items. 
  14633.  
  14634. The optional help argument contains an index into the programs help table. 
  14635. When F1 is pressed on the menu item, the help argument will be used to display 
  14636. help for the particular menu item.  The help file must have been previously 
  14637. loaded with the attach_help() function. 
  14638.  
  14639. ____________ 
  14640.  
  14641. Value returned: The insert_menuitem() function does not return a value. 
  14642.  
  14643.  
  14644. ΓòÉΓòÉΓòÉ 14.11.7. menu_functions ΓòÉΓòÉΓòÉ
  14645.  
  14646. menu_functions. 
  14647.  
  14648. Purpose: Lists the functions to execute when a menu item is selected. 
  14649.  
  14650. ____________ 
  14651.  
  14652. Syntax: menu_functions 
  14653.  
  14654. ____________ 
  14655.  
  14656. Description: The menu_functions variable contains a list of the functions to 
  14657. execute when a menu item is selected.  It is your responsibility to enter this 
  14658. information when you create a menu. Control structures, examples To run 
  14659. gui_command when the menu with the command ID of 6 is selected, you would 
  14660. enter: 
  14661.  
  14662. menu_functions[6] = "gui_command" 
  14663.  
  14664.  
  14665. ΓòÉΓòÉΓòÉ 14.11.8. menu_info() ΓòÉΓòÉΓòÉ
  14666.  
  14667. menu_info()    Primitive 
  14668.  
  14669. Purpose: Retrieves information about a menu. 
  14670.  
  14671. ____________ 
  14672.  
  14673. Syntax: any menu_info(long menuid,short flags,opt short itemid) 
  14674.  
  14675. ____________ 
  14676.  
  14677. Description: The menu_info() function retrieved information about a menu 
  14678. depending on the flags specified. 
  14679.  
  14680. The menuid argument contains the menu id that information is requested for.  If 
  14681. menuid is not 0 then the argument must contain a value that was returned from 
  14682. create_menu(). 
  14683.  
  14684. The flags argument contains one of the following: 
  14685.  
  14686.  
  14687.   MI_CHECKED   - gets the checked/unchecked state of the menu
  14688. item.
  14689.  
  14690.   MI_ENABLED   - determines whether to menu item is enabled or
  14691.  
  14692.           disabled.
  14693.  
  14694.   MI_ITEMCOUNT  - calculates the number of menu items in the
  14695. menu.
  14696.  
  14697.   MI_ITEMTEXT   - retrieves the text associated with the menu
  14698. item.
  14699.  
  14700.   MI_MENUHANDLE  - retrieves the menu id of a submenu.
  14701.  
  14702. The itemid argument contains the menu item id that is used to retrieve the 
  14703. desired information. 
  14704.  
  14705. ____________ 
  14706.  
  14707. Value returned: The menu_info() function returns the following values: 
  14708.  
  14709.  
  14710.   If menuid == 0 then
  14711.   returns the menuid of the main menu.
  14712.  
  14713.   If menuid != 0 and flags == MI_CHECKED then
  14714.   returns 1 if itemid is selected, otherwise 0.
  14715.  
  14716.   If menuid != 0 and flags == MI_ENABLED then
  14717.   returns 1 if itemid is enabled, otherwise 0.
  14718.  
  14719.   If menuid != 0 and flags == MI_ITEMCOUNT then
  14720.   returns number of items contained in menuid.
  14721.  
  14722.   If menuid != 0 and flags == MI_MENUHANDLE then
  14723.   returns the submenu menuid
  14724.  
  14725.  
  14726. ΓòÉΓòÉΓòÉ 14.11.9. modify_menuitem() ΓòÉΓòÉΓòÉ
  14727.  
  14728. modify_menuitem()   Primitive 
  14729.  
  14730. Purpose: Modifies attributes of a particular menu item. 
  14731.  
  14732. ____________ 
  14733.  
  14734. Syntax: void modify_menuitem(long  menuid, short itemid, short flag, opt any 
  14735. info) 
  14736.  
  14737. ____________ 
  14738.  
  14739. Description: The modify_menuitem() modifies the attributes of the menuid menu 
  14740. item. The following attributes of the menu can be modified: 
  14741.  
  14742. - Check or uncheck menu item
  14743. - Enable or disable menu item
  14744. - Item text of menu item
  14745. - Help text of menu item
  14746. - Macro id associated with the menu item
  14747.  
  14748. The menuid argument contains the id of the menu which contains the menu item to 
  14749. be modified.  menuid must be a value returned from the create_menu() function. 
  14750.  
  14751. The itemid argument contains the id of the menu item that is going to be 
  14752. modified. 
  14753.  
  14754. The flag argument contains the operation to be performed on the menu item. The 
  14755. flag argument must contain one of the following values: 
  14756.  
  14757. MI_CHECKED     - sets or unsets a check mark next to the menu item. 
  14758.  
  14759. MI_ENABLED     - enables or disables the menu item. 
  14760.  
  14761. MI_ITEMTEXT    - sets the menu text for the menu item. 
  14762.  
  14763. MI_HELPTEXT    - sets the help text for the menu item. 
  14764.  
  14765. MI_FUNCTIONID  - sets the macro id associated with the menu item. 
  14766. The info parameters contains flag specific information.  The followings values 
  14767. are valid for a given flag: 
  14768.  
  14769.   flag      info
  14770.   ----------   ---------
  14771.   MI_CHECKED   0 - uncheck
  14772.          1 - check
  14773.  
  14774.   MI_ENABLED   0 - disable
  14775.          1 - enable
  14776.  
  14777.   MI_ITEMTEXT   String containing item text
  14778.  
  14779.   MI_HELPTEXT   String containing help text
  14780.  
  14781.   MI_FUNCTIONID  Macroid of function
  14782.  
  14783. ____________ 
  14784.  
  14785. Value returned: The modify_menuitem() function does not return a value. 
  14786.  
  14787.  
  14788. ΓòÉΓòÉΓòÉ 14.11.10. show_popup() ΓòÉΓòÉΓòÉ
  14789.  
  14790. show_popup()   Primitive 
  14791.  
  14792. Purpose: Displays a popup menu 
  14793.  
  14794. ____________ 
  14795.  
  14796. Syntax: void show_popup(long menuid) 
  14797.  
  14798. ____________ 
  14799.  
  14800. Description: The show_popup() function displays a popup menu. 
  14801.  
  14802. The menuid argument contains the id of the menu that is to be displayed as a 
  14803. popup menu.  The menuid argument must be a value returned from the 
  14804. create_menu() function call. 
  14805.  
  14806. ____________ 
  14807.  
  14808. Value returned: This function does not return a value. 
  14809.  
  14810.  
  14811. ΓòÉΓòÉΓòÉ 14.11.11. user_menu() ΓòÉΓòÉΓòÉ
  14812.  
  14813. user_menu()   PEL 
  14814.  
  14815. Purpose:  Entry point for user defined help. 
  14816.  
  14817. ____________ 
  14818.  
  14819. Syntax:   void user_menu(menuhndl main_menu ) 
  14820.  
  14821. ____________ 
  14822.  
  14823. Arguments: 
  14824.  
  14825. o main_menu - handle of the main menu 
  14826.  
  14827. Description: The user_menu() function is the entry point for user defined 
  14828. menus.  Menus are added using the append_menuitem() function. 
  14829.  
  14830. ____________ 
  14831.  
  14832. Value returned: None. 
  14833.  
  14834.  
  14835. ΓòÉΓòÉΓòÉ 14.12. Miscellaneous ΓòÉΓòÉΓòÉ
  14836.  
  14837. abs() 
  14838.           Find the absolute value of an integer. 
  14839. add_compiler() 
  14840.           Add a new compiler to the list of supported compilers. 
  14841. change_footer_font() 
  14842.           To change the printing footer font. 
  14843. change_header_font() 
  14844.           To change the printing header font. 
  14845. change_menu() 
  14846.           To attach a menu to a window. 
  14847. change_print_font() 
  14848.           To change the printing font. 
  14849. compile_buffer() 
  14850.           Compiles the current buffer. 
  14851. debug() 
  14852.           Invokes the debugging package. 
  14853. delete_line_command() 
  14854.           Delete a line command from the line command list. 
  14855. execute_on_window() 
  14856.           Execute a function in a window other than the current window. 
  14857. max() 
  14858.           Find the maximum of two integer values. 
  14859. min() 
  14860.           Find the minimum of two integer values. 
  14861. minimize_and_save() 
  14862.           To write all buffers and minimize the editor. 
  14863. play() 
  14864.           Play music from the speaker. 
  14865. print() 
  14866.           Send text to the standard output device a la AWK. 
  14867. print_select_dialog() 
  14868.           Allows selecting a printer 
  14869. process_command_line() 
  14870.           Interprets the editor command line arguments and options. 
  14871. restore_position() 
  14872.           Move to a previously saved position in the buffer. 
  14873. save_position() 
  14874.           Note the current buffer position in special stack. 
  14875. startup() 
  14876.           Controls editor initialization process. 
  14877. symbol_under_cursor() 
  14878.           To return the word under the cursor. 
  14879. update_config_section() 
  14880.           To update a section of the config file 
  14881. update_current_caption() 
  14882.           To update the caption(title) of the current window. 
  14883. update_line_command() 
  14884.           Redraw the line number area in ISPF mode. 
  14885. write_state_file() 
  14886.           Save the state sections of the config file. 
  14887.  
  14888.  
  14889. ΓòÉΓòÉΓòÉ 14.12.1. abs() ΓòÉΓòÉΓòÉ
  14890.  
  14891. abs()   PEL 
  14892.  
  14893. Purpose: Find the absolute value of an integer. 
  14894.  
  14895. ____________ 
  14896.  
  14897. Syntax: int abs(int value) 
  14898.  
  14899. ____________ 
  14900.  
  14901. Description: The abs() function calculates the arithmetic absolute value of the 
  14902. argument value. 
  14903.  
  14904. ____________ 
  14905.  
  14906. Value returned: 
  14907.  
  14908. If value <  0, abs() returns (-1) * value. 
  14909.  
  14910. If value >= 0, abs() returns value. 
  14911.  
  14912.  
  14913. ΓòÉΓòÉΓòÉ 14.12.2. add_compiler() ΓòÉΓòÉΓòÉ
  14914.  
  14915. add_compiler()   PEL 
  14916.  
  14917. Purpose: Add a new compiler to the list of supported compilers. 
  14918.  
  14919. ____________ 
  14920.  
  14921. Syntax:  void add_compiler(str ext_list, str cmd_line [, str err_name ] 
  14922.  
  14923. ____________ 
  14924.  
  14925. Description: The add_compiler() function adds support for a compiler for which 
  14926. support is not built-in.  If the need for the added compiler is on-going, the 
  14927. add_compiler() call should be placed in the configuration file or local_setup() 
  14928. function so that this information will be retained from one editor session to 
  14929. the next. 
  14930.  
  14931. The first argument, ext_list, is a list of the filename extensions used by the 
  14932. new compiler.  Elements of the list may be separated by spaces or commas.  The 
  14933. principle extension appears first in this list.  Other extensions in the list 
  14934. signify header files or other "include" files that are not normally named on 
  14935. the compiler command line. 
  14936.  
  14937. The second argument, cmd_line, is used to define the command line normally used 
  14938. for compiling these files.  Remember that this command line is presented to the 
  14939. user for editing just before execution, so it is not necessary that this 
  14940. command line fit all anticipated situations. Several built-in macros have been 
  14941. defined for use in the cmd_line string.  These allow you to refer to the source 
  14942. file name and parts of the source file name in general terms.  These macros are 
  14943. as follows: 
  14944.  
  14945. MACRO REPLACEMENT VALUE 
  14946. $< complete name of the source file. 
  14947. $r root (basename) of the source file. 
  14948. $e extension of source file, excluding "." 
  14949. $p drive and path of source file (ends in "\") 
  14950.  
  14951. The optional third argument, err_name, determines which predefined rule set to 
  14952. use in interpreting the error listing file and names the file in which any 
  14953. errors generated during a compile will be captured.  If this argument is 
  14954. omitted or null, the generic rule set is used and the source file's extension 
  14955. is used as the error file's basename (root). 
  14956.  
  14957. The correct rule set allows the editor to place the cursor at the offending 
  14958. position in the proper source file.  The defined rule sets are identified by 
  14959. labels which may be used as the err_name argument. These include:  "generic", 
  14960. "pel", "TurboC", "Clipper", and "none".  Character case is not significant when 
  14961. specifying these strings.  If the err_name argument does not match one of these 
  14962. labels, the generic rules are used and the err_name string is used only as a 
  14963. basename for the error listing file. 
  14964.  
  14965. The "generic" rule set accommodates the error listing format used by Microsoft 
  14966. compilers, Lattice C, Borland's Turbo Pascal, and many others.  The "pel" rule 
  14967. set is designed for use with the editor function library source files. 
  14968. "TurboC" identifies the rules for use with Borland's Turbo C and "Clipper" 
  14969. identifies the dBase dialect error format rules.  If no rule set is to be used, 
  14970. the label "none" is used. In this case, captured errors are displayed in a 
  14971. window rather than at their position within the source file. 
  14972.  
  14973. Compiler support added with the add_compiler() function takes precedence over 
  14974. rules previously defined for the specified extension.  For example, there is 
  14975. built-in support for files with the extension ".C".  If you specify the .C 
  14976. extension in the ext_list argument to an add_compiler() call, the built-in 
  14977. rules for that extension are superseded. 
  14978.  
  14979. ____________ 
  14980.  
  14981. Value returned: No useful value is returned by this function. 
  14982.  
  14983.  
  14984. ΓòÉΓòÉΓòÉ 14.12.3. change_footer_font() ΓòÉΓòÉΓòÉ
  14985.  
  14986. change_footer_font()   Primitive 
  14987.  
  14988. Purpose:  To change the printing footer font. 
  14989.  
  14990. ____________ 
  14991.  
  14992. Syntax:   change_footer_font( str name, long width, long height, long 
  14993. attributes ) 
  14994.  
  14995. ____________ 
  14996.  
  14997. Arguments: 
  14998.  
  14999. o name - the name of the new footer font 
  15000. o width - the width of the new footer font 
  15001. o height - the height of the new footer font 
  15002. o attributes - the attributes of the new footer font 
  15003.  
  15004. Description: 
  15005.  
  15006. ____________ 
  15007.  
  15008. Value returned:  none 
  15009.  
  15010.  
  15011. ΓòÉΓòÉΓòÉ 14.12.4. change_header_font() ΓòÉΓòÉΓòÉ
  15012.  
  15013. change_header_font()   Primitive 
  15014.  
  15015. Purpose:  To change the printing header font. 
  15016.  
  15017. ____________ 
  15018.  
  15019. Syntax:   change_header_font( str name, long width, long height, long 
  15020. attributes ) 
  15021.  
  15022. ____________ 
  15023.  
  15024. Arguments: 
  15025.  
  15026. o name - the name of the new header font 
  15027. o width - the width of the new header font 
  15028. o height - the height of the new header font 
  15029. o attributes - the attributes of the new header font 
  15030.  
  15031. Description: 
  15032.  
  15033. ____________ 
  15034.  
  15035. Value returned:  none 
  15036.  
  15037.  
  15038. ΓòÉΓòÉΓòÉ 14.12.5. change_menu() ΓòÉΓòÉΓòÉ
  15039.  
  15040. change_menu()   Primitive 
  15041.  
  15042. Purpose:  To attach a menu to a window. 
  15043.  
  15044. ____________ 
  15045.  
  15046. Syntax:   change_menu( long mh, [long parent] ) 
  15047.  
  15048. ____________ 
  15049.  
  15050. Arguments: 
  15051.  
  15052. o mh - menu to change to 
  15053. o parent - optional, parent of the menu 
  15054.  
  15055. Description: 
  15056.  
  15057. ____________ 
  15058.  
  15059. Value returned: Handle of the menu replaced, 0 if none there 
  15060.  
  15061.  
  15062. ΓòÉΓòÉΓòÉ 14.12.6. change_print_font() ΓòÉΓòÉΓòÉ
  15063.  
  15064. change_print_font()   Primitive 
  15065.  
  15066. Purpose:  To change the printing font. 
  15067.  
  15068. ____________ 
  15069.  
  15070. Syntax:   change_print_font( str name, long width, long height, long attributes 
  15071.  
  15072. ____________ 
  15073.  
  15074. Arguments: 
  15075.  
  15076. o name - the name of the new printing font 
  15077. o width - the width of the new printing font 
  15078. o height - the height of the new printing font 
  15079. o attributes - the attributes of the new printing font 
  15080.  
  15081. Description: 
  15082.  
  15083. ____________ 
  15084.  
  15085. Value returned:  none 
  15086.  
  15087.  
  15088. ΓòÉΓòÉΓòÉ 14.12.7. compile_buffer() ΓòÉΓòÉΓòÉ
  15089.  
  15090. compile_buffer()   PEL 
  15091.  
  15092. Purpose: Compiles the current buffer. 
  15093.  
  15094. ____________ 
  15095.  
  15096. Syntax:  void compile_buffer([bool list_all], [bool background], [bool 
  15097. disable_dialog], [string input_file], [string source_file]) 
  15098.  
  15099. ____________ 
  15100.  
  15101. Arguments: 
  15102.  
  15103. list_all - a flag which causes all output from the compiler to be placed into 
  15104. the dialog.  If list_all is not provided, the value of list_all_output is used. 
  15105.  
  15106. background - a flag which causes the compiler to be executed in the background. 
  15107. If you do not set this flag, it defaults to TRUE. 
  15108.  
  15109. disable_dialog - a flag which causes the compiler to be executed in the 
  15110. background.  If you do not set this flag, it defaults to TRUE. 
  15111.  
  15112. input_file - the name of a file to be used as input to the compiler.  If the 
  15113. first character is -, >, or < a temporary file containing the rest of the 
  15114. characters is created and used. 
  15115.  
  15116. source_file - the name of the source file to compile.  If omitted, the 
  15117. current_buffer is used. 
  15118.  
  15119. ____________ 
  15120.  
  15121. Description: The compile_buffer() function attempts to compile the current 
  15122. buffer using rules associated with the file type.  The current buffer is saved 
  15123. to disk to ensure that the file the compiler works on reflects all changes. 
  15124. The buffer's filename extension is scrutinized to determine which compiler will 
  15125. be used and then that compiler is called. 
  15126.  
  15127. The editor has a number of built-in rules that determine what command line is 
  15128. issued for a file bearing a certain extension.  If the built-in rules do not 
  15129. suit your particular situation, you may use the add_compiler() function to 
  15130. extend or modify the built-in rules. 
  15131.  
  15132. ____________ 
  15133.  
  15134. Value returned: 
  15135.  
  15136. The status returned by the compiler is returned. 
  15137.  
  15138. ____________ 
  15139.  
  15140. See also:  add_compiler(), display_error_file_key(), goto_next_error() 
  15141.  
  15142.  
  15143. ΓòÉΓòÉΓòÉ 14.12.8. debug() ΓòÉΓòÉΓòÉ
  15144.  
  15145. debug()   PEL 
  15146.  
  15147. Purpose: Invokes the debugging package. 
  15148.  
  15149. ____________ 
  15150.  
  15151. Syntax:  void debug() 
  15152.  
  15153. ____________ 
  15154.  
  15155.  Description: The debug() function provides a convenient method of finding out 
  15156. what the extension language functions you have written are doing when they 
  15157. aren't doing what you expected.  This function uses a number of low-level 
  15158. functions to allow you to set break points, step through your code, and trace 
  15159. into functions or step over them. 
  15160.  
  15161. ____________ 
  15162.  
  15163. Value returned: No useful value is returned by this function. 
  15164.  
  15165.  
  15166. ΓòÉΓòÉΓòÉ 14.12.9. delete_line_command() ΓòÉΓòÉΓòÉ
  15167.  
  15168. delete_line_command   Primitive 
  15169.  
  15170. Purpose:  Delete a line command from the line command list. 
  15171.  
  15172. ____________ 
  15173.  
  15174. Syntax:   void delete_line_command([int num]) 
  15175.  
  15176. ____________ 
  15177.  
  15178. Arguments: 
  15179.  
  15180. o num - linenumber of the command to delete 
  15181.  
  15182. Description: The delete_line_command() deletes the command from the specified 
  15183. line.  If no line is specified, all commands are deleted form the current view. 
  15184.  
  15185. ____________ 
  15186.  
  15187. Value returned: none. 
  15188.  
  15189.  
  15190. ΓòÉΓòÉΓòÉ 14.12.10. execute_on_window() ΓòÉΓòÉΓòÉ
  15191.  
  15192. execute_on_window   Primitive 
  15193.  
  15194. Purpose:  Execute a function in a window other than the current window. 
  15195.  
  15196. ____________ 
  15197.  
  15198. Syntax:   any execute_on_window(str funcname, long winid) 
  15199.  
  15200. ____________ 
  15201.  
  15202. Arguments: 
  15203.  
  15204. o funcname - name of the function to execute 
  15205. o winid - id of the window in which the function will be executed 
  15206.  
  15207. Description: The execute_on_window() function executes the given function in 
  15208. the specified window.  This prevents the user from having to switch to that 
  15209. window in order to perform the function. 
  15210.  
  15211. ____________ 
  15212.  
  15213. Value returned: Return value from the function call, or 0 if failure. 
  15214.  
  15215.  
  15216. ΓòÉΓòÉΓòÉ 14.12.11. max() ΓòÉΓòÉΓòÉ
  15217.  
  15218. max()   PEL 
  15219.  
  15220. Purpose: Find the maximum of two integer values. 
  15221.  
  15222. ____________ 
  15223.  
  15224. Syntax: int max(int value1, int value2) 
  15225.  
  15226. ____________ 
  15227.  
  15228. Description: The max() function finds the parameter of with the largest value. 
  15229. This value is then passed as the return value. 
  15230.  
  15231. ____________ 
  15232.  
  15233. Value returned: 
  15234.  
  15235. If value1 <  value2, max() returns value2. 
  15236.  
  15237. If value1 >= value2, max() returns value1. 
  15238.  
  15239.  
  15240. ΓòÉΓòÉΓòÉ 14.12.12. min() ΓòÉΓòÉΓòÉ
  15241.  
  15242. min()   PEL 
  15243.  
  15244. Purpose: Find the minimum of two integer values. 
  15245.  
  15246. ____________ 
  15247.  
  15248. Syntax: int min(int value1, int value2) 
  15249.  
  15250. ____________ 
  15251.  
  15252. Description: The min() function finds the parameter of with the smallest value. 
  15253. This value is then passed as the return value. 
  15254.  
  15255. ____________ 
  15256.  
  15257. Value returned: 
  15258.  
  15259. If value1 <  value2, min() returns value1. 
  15260.  
  15261. If value1 >= value2, min() returns value2. 
  15262.  
  15263.  
  15264. ΓòÉΓòÉΓòÉ 14.12.13. minimize_and_save() ΓòÉΓòÉΓòÉ
  15265.  
  15266. minimize_and_save()   PEL 
  15267.  
  15268. Purpose:  To write all buffers and minimize the editor. 
  15269.  
  15270. ____________ 
  15271.  
  15272. Syntax:   minimize_and_save() 
  15273.  
  15274. ____________ 
  15275.  
  15276. Arguments:  none 
  15277.  
  15278. Description: Because it is more efficient to leave the editor running all of 
  15279. the time instead of quiting and restarting it every time you want to edit a 
  15280. file, this function has been provided to save all modified buffers and minimize 
  15281. the editor. Simply call this function when you would normally quit the editor, 
  15282. and it will behave as you would expect, except that the editor will still be 
  15283. running in the background.  This function is frequently assigned to the 
  15284. standard "quit" key of the user's emulation and provides a good transition for 
  15285. those users who find it hard to break the habit of quiting the editor when done 
  15286. editing a file. 
  15287.  
  15288. ____________ 
  15289.  
  15290. Value returned:  none 
  15291.  
  15292.  
  15293. ΓòÉΓòÉΓòÉ 14.12.14. play() ΓòÉΓòÉΓòÉ
  15294.  
  15295. play()   Primitive 
  15296.  
  15297. Purpose: Play music from the speaker. 
  15298.  
  15299. ____________ 
  15300.  
  15301. Syntax: void play(str string) 
  15302.  
  15303. ____________ 
  15304.  
  15305. Description: The play() function produces musical notes to be emitted from the 
  15306. speaker, based on instructions contained in the string argument.  The 
  15307. instructions in the string must conform to a special "Play" language.  This 
  15308. language is similar to that used by the Microsoft Basic PLAY statement, and is 
  15309. described below. 
  15310.  
  15311. The play() function is capable of playing 84 different notes, comprising 7 
  15312. octaves.  These notes may be specified by number ( 1-84 ) or by octave and 
  15313. letter ( A-G ).  Octaves are numbered from 0 to 6.  In addition, duration and 
  15314. tempo may also be indicated. 
  15315.  
  15316. Specifying Notes 
  15317.  
  15318. Notes may be specified by placing some combination of the letters A through G 
  15319. into the s argument or by inserting the letter N immediately followed by the 
  15320. note number.  Note letters A to G may be followed by either # or + to indicate 
  15321. sharp, or by - to indicate flat.  Note numbers range from 1 to 84, with 1 
  15322. representing the lowest note and 84 representing the highest. 
  15323.  
  15324. Octaves 
  15325.  
  15326. When specifying notes by letter, stating the octave is usually desirable. 
  15327. Initially, the octave is set by inserting the letter o in the play string 
  15328. followed immediately by the octave number ( 0-6 ). Later in the string you may 
  15329. wish to change octaves by inserting another o instruction, or by using the < or 
  15330. > instruction. 
  15331.  
  15332. The < and > instructions shift the octave down and up respectively for the 
  15333. notes that follow.  These instructions shift the effective octave a single 
  15334. octave per instruction and have no effect if the shift would advance the octave 
  15335. higher than 6 or lower than 0. 
  15336.  
  15337. Rests 
  15338.  
  15339. Rests may be played by specifying note 0 in conjunction with the N instruction 
  15340. ( N0 ), or by using the pause instruction.  The pause instruction is the letter 
  15341. P followed by a number in the range of 1 to 64 to specify the length of the 
  15342. pause ( e.g., P2 ).  A value of 1 signifies a rest equivalent to a whole note, 
  15343. 4 a quarter note, 8 an eighth note and so on.  The higher the number, the 
  15344. shorter the rest. 
  15345.  
  15346. Duration and Tempo 
  15347.  
  15348. Just as the length of a pause may be set, the duration and tempo of notes may 
  15349. also be specified. The L instruction determines the relative length of each 
  15350. note that follows it.  It is immediately followed by a number indicating the 
  15351. value of the notes ( e.g., L4 ).  This number is in the same range and has the 
  15352. same meaning as the number following the pause instruction, described above. A 
  15353. dot placed after the note letter has the same effect on duration as a dot 
  15354. placed after a note in a musical score:  the duration of the note is increased 
  15355. by half. 
  15356.  
  15357. The actual time allotted to notes is determined by the tempo instruction.  The 
  15358. tempo instruction takes the form of a T followed by a number.  The number 
  15359. specifies the number of quarter notes per minute. If the T instruction is not 
  15360. specified, a value of 120 quarter notes per minute is used.  A range of values 
  15361. from 32 to 255 may be specified. 
  15362.  
  15363. Style 
  15364.  
  15365. The musical style of the notes may also be set, which also affects the 
  15366. duration.  The style instruction is the letter M followed by either an N, L or 
  15367. S for Normal Legato or Staccato, respectively.  The default setting is 
  15368. equivalent to MN, which causes notes to be sustained for seven eighths of the 
  15369. interval indicated by the length ( L ) instruction.  The ML instruction causes 
  15370. notes to be sustained for the full interval, and MS instruction for three 
  15371. fourths the interval. 
  15372.  
  15373. Notation  Description 
  15374. A-G       Notes within the current octave. 
  15375. Nn        Note n within the range 1 to 84. 
  15376. N0        Rest. 
  15377. #,+       Note postfix modifiers indicating sharp. 
  15378. -         Note postfix modifier indicating flat. 
  15379. <         Set octave one octave lower. 
  15380. >         Set octave one octave higher. 
  15381. On        Set octave to octave n in range 0 to 6. 
  15382. Pn        Pause for n interval in range 1 to 64. 
  15383. Ln        Sustain notes for n interval in range 1 to 64. 
  15384. ┬╖         Note Postfix modifier indicating dotted note. 
  15385. Tn        Set tempo to n quarter notes per minute. 
  15386. MN        Set style to Normal (sustain 7/8ths interval). 
  15387. ML        Set style to Legato (sustain entire interval). 
  15388. MN        Set style to Staccato (sustain 3/4ths interval). 
  15389.  
  15390. Value returned: No useful value is returned by this function. 
  15391.  
  15392.  
  15393. ΓòÉΓòÉΓòÉ 14.12.15. print() ΓòÉΓòÉΓòÉ
  15394.  
  15395. print()   Primitive 
  15396.  
  15397. Purpose: Send text to the standard output device a la AWK. 
  15398.  
  15399. ____________ 
  15400.  
  15401. Syntax: void print(any expr [, any expr...]) 
  15402.  
  15403. ____________ 
  15404.  
  15405. Description: The print() function is an AWK statement.  The default action for 
  15406. print is to send the string equivalent of any expressions given as arguments to 
  15407. the Standard Output Device.  The output always ends with a new-line sequence. 
  15408.  
  15409. EXAMPLE 
  15410.  
  15411.   print("All is well.") 
  15412.  
  15413. Using print() in this manner usually has the effect of making a mess of the 
  15414. editor's display. 
  15415.  
  15416. ____________ 
  15417.  
  15418. Value returned: No useful value is returned by this function. 
  15419.  
  15420.  
  15421. ΓòÉΓòÉΓòÉ 14.12.16. print_select_dialog() ΓòÉΓòÉΓòÉ
  15422.  
  15423. print_select_dialog()   Primitive 
  15424.  
  15425. Purpose: Allows selecting a printer 
  15426.  
  15427. ____________ 
  15428.  
  15429. Syntax: void print_select_dialog() 
  15430.  
  15431. ____________ 
  15432.  
  15433. Description: The print_select_dialog() function allows the user to select a 
  15434. default printer. 
  15435.  
  15436. ____________ 
  15437.  
  15438. Value returned: This function does not return any value. 
  15439.  
  15440.  
  15441. ΓòÉΓòÉΓòÉ 14.12.17. process_command_line() ΓòÉΓòÉΓòÉ
  15442.  
  15443. process_command_line()   PEL 
  15444.  
  15445. Purpose: Interprets the editor command line arguments and options. 
  15446.  
  15447. ____________ 
  15448.  
  15449. Syntax: void process_command_line() 
  15450.  
  15451. ____________ 
  15452.  
  15453. Description: The process_command_line() function performs the start-up task of 
  15454. interpreting flags and filenames specified on the command line.  The 
  15455. interpretation and handling of the command line may be modified by changing 
  15456. this function.  The function is supplied in the file NUCLEUS.PEL.  This 
  15457. function is called by startup(). 
  15458.  
  15459. ____________ 
  15460.  
  15461. Value returned: No useful value is returned by this function. 
  15462.  
  15463.  
  15464. ΓòÉΓòÉΓòÉ 14.12.18. restore_position() ΓòÉΓòÉΓòÉ
  15465.  
  15466. restore_position() 
  15467.  
  15468. Purpose: Move to a previously saved position in the buffer. 
  15469.  
  15470. ____________ 
  15471.  
  15472. Syntax: int restore_position([int go_there]) 
  15473.  
  15474. ____________ 
  15475.  
  15476. Description: The restore_position() function "pops" the most recently saved 
  15477. buffer position from the position stack it shares with the save_position() 
  15478. function. The stack operates on a last-in, first-out basis. If the go_there 
  15479. argument represents a non-zero value the cursor moves to the saved position. 
  15480. If the go_there argument is omitted or is zero, the saved position is removed 
  15481. from the stack and not used. 
  15482.  
  15483. ____________ 
  15484.  
  15485. Value returned: This function returns no useful value. 
  15486.  
  15487. ____________ 
  15488.  
  15489. See also:   save_position() 
  15490.  
  15491.  
  15492. ΓòÉΓòÉΓòÉ 14.12.19. save_position() ΓòÉΓòÉΓòÉ
  15493.  
  15494. save_position()   Primitive 
  15495.  
  15496. Purpose: Note the current buffer position in special stack. 
  15497.  
  15498. ____________ 
  15499.  
  15500. Syntax: int save_position() 
  15501.  
  15502. ____________ 
  15503.  
  15504. Description: The save_position() function stores the current position within 
  15505. the buffer on the position stack it shares with the restore_position() 
  15506. function.  The stack operates on a last-in, first-out basis. 
  15507.  
  15508. This differs from the drop_anchor() function primarily in that no block of text 
  15509. is highlighted. 
  15510.  
  15511. ____________ 
  15512.  
  15513. Value returned: No useful value is returned by this function. 
  15514.  
  15515.  
  15516. ΓòÉΓòÉΓòÉ 14.12.20. startup() ΓòÉΓòÉΓòÉ
  15517.  
  15518. startup()   PEL 
  15519.  
  15520. Purpose: Controls editor initialization process. 
  15521.  
  15522. ____________ 
  15523.  
  15524. Syntax: void startup() 
  15525.  
  15526. ____________ 
  15527.  
  15528. Description: The startup() function performs a number of tasks associated with 
  15529. initialization of the editor. Among these tasks are:  reading and processing 
  15530. the configuration file, performing "local" setup, interpreting the command line 
  15531. and assigning an initial emulation mode (not necessarily in that order).  This 
  15532. is done primarily by calling other initialization functions described elsewhere 
  15533. in this manual:  process_command_line() and local_setup().  The startup() 
  15534. function is found in the supplied source file STARTUP.PEL. 
  15535.  
  15536. ____________ 
  15537.  
  15538. Value returned: No useful value is returned by this function. 
  15539.  
  15540.  
  15541. ΓòÉΓòÉΓòÉ 14.12.21. symbol_under_cursor() ΓòÉΓòÉΓòÉ
  15542.  
  15543. symbol_under_cursor()   PEL 
  15544.  
  15545. Purpose:  To return the word under the cursor. 
  15546.  
  15547. ____________ 
  15548.  
  15549. Syntax:   symbol_under_cursor( [regex symbol_regex] ) 
  15550.  
  15551. ____________ 
  15552.  
  15553. Arguments: 
  15554.  
  15555. o symbol_regex  - optional definition of a word 
  15556.  
  15557. Description: This function returns the word at the current cursor location. It 
  15558. is used in many functions that operate on search patterns, and provides a 
  15559. simple way to save keystrokes. 
  15560.  
  15561. ____________ 
  15562.  
  15563. Value returned:  The word at the current cursor location as a string 
  15564.  
  15565.  
  15566. ΓòÉΓòÉΓòÉ 14.12.22. update_config_section() ΓòÉΓòÉΓòÉ
  15567.  
  15568. update_config_section()   PEL 
  15569.  
  15570. Purpose:  To update a section of the config file 
  15571.  
  15572. ____________ 
  15573.  
  15574. Syntax:   update_config_section( str section_name, array data_array ) 
  15575.  
  15576. ____________ 
  15577.  
  15578. Arguments: 
  15579.  
  15580. o section_name  - the section heading to update, starting and ending with '$' 
  15581. o data_array   - an array containing the lines you wish to put in the config 
  15582.   section 
  15583.  
  15584. Description: This function has been provided to update a section of the 
  15585. configuration file.  The previous data in the section will be deleted, and the 
  15586. elements of the data array will be inserted into the section on separate lines. 
  15587.  
  15588. ____________ 
  15589.  
  15590. Value returned:  none 
  15591.  
  15592.  
  15593. ΓòÉΓòÉΓòÉ 14.12.23. update_current_caption() ΓòÉΓòÉΓòÉ
  15594.  
  15595. update_current_caption()   Primitive 
  15596.  
  15597. Purpose:  To update the caption(title) of the current window. 
  15598.  
  15599. ____________ 
  15600.  
  15601. Syntax:   update_current_caption() 
  15602.  
  15603. ____________ 
  15604.  
  15605. Arguments:  none 
  15606.  
  15607. Description: Under most circumstances, the caption of each text window is 
  15608. updated when appropriate.  When the buffer_filename is changed, however, the 
  15609. caption currently needs to be updated manually through this function. 
  15610.  
  15611. ____________ 
  15612.  
  15613. Value returned: TRUE  -  current window is valid, caption updated FALSE - 
  15614. current window is invalid 
  15615.  
  15616.  
  15617. ΓòÉΓòÉΓòÉ 14.12.24. update_line_command() ΓòÉΓòÉΓòÉ
  15618.  
  15619. update_line_command   Primitive 
  15620.  
  15621. Purpose:  Redraw the line number area in ISPF mode. 
  15622.  
  15623. ____________ 
  15624.  
  15625. Syntax:   void update_line_command([int num]) 
  15626.  
  15627. ____________ 
  15628.  
  15629. Arguments: 
  15630.  
  15631. o num - line to be redrawn 
  15632.  
  15633. Description: The update_line_command() function redraws the line command area 
  15634. when in ISPF mode.  If the optional parameter is supplied, it is the only line 
  15635. redrawn. 
  15636.  
  15637. ____________ 
  15638.  
  15639. Value returned: none. 
  15640.  
  15641.  
  15642. ΓòÉΓòÉΓòÉ 14.12.25. write_state_file() ΓòÉΓòÉΓòÉ
  15643.  
  15644. write_state_file()   PEL 
  15645.  
  15646. Purpose:  Save the state sections of the config file. 
  15647.  
  15648. ____________ 
  15649.  
  15650. Syntax:   void write_state_file() 
  15651.  
  15652. ____________ 
  15653.  
  15654. Arguments: none. 
  15655.  
  15656. Description: The write_state_file() function saves the sections of the config 
  15657. file that record the state of the editor.  This function is usually attached to 
  15658. EVENT.EXIT_EDITOR. 
  15659.  
  15660. ____________ 
  15661.  
  15662. Value returned: none. 
  15663.  
  15664.  
  15665. ΓòÉΓòÉΓòÉ 14.13. Motion ΓòÉΓòÉΓòÉ
  15666.  
  15667. The variables and functions in the Motion category provide a variety of 
  15668. controls over cursor action and cursor position.  The cursor position and the 
  15669. current location within the buffer are synonymous.  Each buffer you create has 
  15670. a current location.  The cursor is located at the current location of the 
  15671. active buffer.  The variables describe the limits of where the cursor may go, 
  15672. and how scrolling operates.  The functions move the cursor to positions 
  15673. relative to its current position or relative to the window or screen. 
  15674.  
  15675. Virtual Space 
  15676.  
  15677. One of the limits described by a variable, and observed by many of the 
  15678. functions in this category, is whether the cursor may move to locations in the 
  15679. buffer where there are no characters.  For example, space may be visible within 
  15680. the window beyond the end of the line, or where a tab pushes the text following 
  15681. to the next tab-stop. 
  15682.  
  15683. This space that is visible in the window but not represented by characters in 
  15684. the buffer is known variously as "the ozone" or "virtual space".  Many cursor 
  15685. motion functions will operate somewhat differently, depending on whether you 
  15686. have enabled movements into virtual space. 
  15687.  
  15688. Goto vs Scroll 
  15689.  
  15690. There are several functions whose names differ only in that one begins with 
  15691. scroll_ and the other begins with goto_ ( e.g., goto_window_middle() and scroll 
  15692. _window_middle() ).  The functions that begin with goto_ primarily change the 
  15693. cursor position.  Many do not change what portion of the buffer the editor 
  15694. shows in the window.  Those that do, only do so as required as a result of 
  15695. changing the cursor position. 
  15696.  
  15697. In contrast, the primary task of the scroll_ functions is to shift the text 
  15698. viewed in the window.  If the cursor position changes, it is a secondary 
  15699. effect. 
  15700.  
  15701. center_cursor() 
  15702.           This function scrolls the current line to the center of the current 
  15703.           window 
  15704. down() 
  15705.           Move the cursor by lines toward the bottom of buffer. 
  15706. goto_bol() 
  15707.           Moves the cursor to the beginning of the current line. 
  15708. goto_bolc() 
  15709.           Move cursor to the begining of the line command area. 
  15710. goto_bookmark() 
  15711.           Moves to non-local bookmarks. 
  15712. goto_bookmark_key() 
  15713.           Move to single bookmark or prompt if more than one. 
  15714. goto_buffer_bottom() 
  15715.           Moves the cursor to the end of the current buffer. 
  15716. goto_buffer_offset() 
  15717.           Move the cursor to a specified buffer position. 
  15718. goto_buffer_top() 
  15719.           Moves the cursor to the beginning of the buffer. 
  15720. goto_eol() 
  15721.           Moves the cursor to the end of the current line. 
  15722. goto_line() 
  15723.           Go to the first column of a line specified by number. 
  15724. goto_line_key() 
  15725.           Prompts for and moves to a specified line. 
  15726. goto_line_or_mark() 
  15727.           Prompts for line or mark number. 
  15728. goto_mark() 
  15729.           Move cursor to position indicated by a bookmark. 
  15730. goto_next_tab() 
  15731.           Move the cursor to the next tab stop position. 
  15732. goto_old_line() 
  15733.           Go to line when only its original line number is known. 
  15734. goto_pos() 
  15735.           Move to a specific line and column within the buffer. 
  15736. goto_prev_tab() 
  15737.           Move the cursor to the previous tab stop position. 
  15738. goto_window_bottom() 
  15739.           Moves cursor to the text in the last line of the window. 
  15740. goto_window_left() 
  15741.           Moves cursor to text at the left edge of the window. 
  15742. goto_window_middle() 
  15743.           Moves cursor to text in the middle line of the window. 
  15744. goto_window_right() 
  15745.           Moves cursor to text at the right edge of the window. 
  15746. goto_window_top() 
  15747.           Moves cursor to the text in the first line of the window. 
  15748. left() 
  15749.           Move cursor to the left on the line. 
  15750. next_char() 
  15751.           Move cursor to a subsequent character in the buffer. 
  15752. next_line() 
  15753.           Moves cursor to the start of text on subsequent line. 
  15754. next_paragraph() 
  15755.           Move forward in the buffer to the begining of the next paragraph 
  15756. next_section() 
  15757.           Move forward in the buffer to the begining of the next section 
  15758. next_sentence() 
  15759.           Moves the cursor to beginning of next sentence. 
  15760. next_word() 
  15761.           Moves cursor to the first character of following word. 
  15762. page_down() 
  15763.           Move the cursor ahead in the buffer one page. 
  15764. page_up() 
  15765.           Move the cursor backward in the buffer one page. 
  15766. prev_char() 
  15767.           Move cursor to a previous character in the buffer. 
  15768. prev_line() 
  15769.           Moves cursor to the start of text on previous line. 
  15770. prev_paragraph() 
  15771.           Move backward in the buffer to the begining of the previous paragraph 
  15772. prev_section() 
  15773.           Move backward in the buffer to the begining of the previous section 
  15774. prev_sentence() 
  15775.           Moves cursor to beginning of previous sentence. 
  15776. prev_word() 
  15777.           Moves cursor to the first character of previous word. 
  15778. right() 
  15779.           Move cursor to the right on the line. 
  15780. rs_down() 
  15781.           To provide a more convenient down() for real space only movement. 
  15782. rs_page_down() 
  15783.           To provide a more convenient page_down() for real space only 
  15784.           movement. 
  15785. rs_page_up() 
  15786.           To provide a more convenient page_up() for real space only movement. 
  15787. rs_up() 
  15788.           To provide a more convenient up() for real space only movement. 
  15789. scroll_down_1() 
  15790.           Scroll one line toward the end of the buffer. 
  15791. scroll_down_half() 
  15792.           Scrolls toward end of buffer by half a window. 
  15793. scroll_horizontal() 
  15794.           Move text right or left while cursor maintains position. 
  15795. scroll_left_1() 
  15796.           Scroll toward start of line by one column. 
  15797. scroll_or_pan() 
  15798.           Tells condition of Scroll Lock key. 
  15799. scroll_up_half() 
  15800.           Scrolls toward start of buffer by half a window. 
  15801. scroll_vertical() 
  15802.           Move text up or down while cursor maintains position. 
  15803. scroll_window_bottom() 
  15804.           Scroll cursor line to position relative to window bottom 
  15805. scroll_window_middle() 
  15806.           Scroll cursor line to position relative to window center. 
  15807. scroll_window_top() 
  15808.           Scroll cursor line to position relative window top 
  15809. skip_whitespace() 
  15810.           Move cursor to beginning of text on current line. 
  15811. up() 
  15812.           Move the cursor by lines toward the top of the buffer. 
  15813. up_whitespace() 
  15814.           Move cursor up to the begining of whitespace. 
  15815.  
  15816.  
  15817. ΓòÉΓòÉΓòÉ 14.13.1. center_cursor() ΓòÉΓòÉΓòÉ
  15818.  
  15819. center_cursor()   PEL 
  15820.  
  15821. Purpose:  This function scrolls the current line to the center of the current 
  15822. window 
  15823.  
  15824. ____________ 
  15825.  
  15826. Syntax:   center_cursor() 
  15827.  
  15828. ____________ 
  15829.  
  15830. Arguments:  none 
  15831.  
  15832. Description: 
  15833.  
  15834. ____________ 
  15835.  
  15836. Value returned:   none 
  15837.  
  15838.  
  15839. ΓòÉΓòÉΓòÉ 14.13.2. down() ΓòÉΓòÉΓòÉ
  15840.  
  15841. down()   Primitive 
  15842.  
  15843. Purpose: Move the cursor by lines toward the bottom of buffer. 
  15844.  
  15845. ____________ 
  15846.  
  15847. Syntax:  int down([int lines]) 
  15848.  
  15849. ____________ 
  15850.  
  15851. Description: The down() function advances the cursor the number of lines found 
  15852. in the lines argument.  If the lines argument is not supplied, 1 line is 
  15853. assumed. 
  15854.  
  15855. Negative values for lines are allowed and result in the cursor moving in the 
  15856. opposite direction.  In other words, calling down() with -3 as the argument is 
  15857. the as calling up() with 3 as the argument. 
  15858.  
  15859. The column position of the cursor resulting from a call to down() may be 
  15860. affected by the buffer_flags variable described above. If movement into VIRTUAL 
  15861. SPACE is allowed, the cursor always maintains the same column position at its 
  15862. new line location. 
  15863.  
  15864. If movements into VIRTUAL SPACE are disallowed the column position may change. 
  15865. When the down() function would position the cursor beyond the end-of-line, it 
  15866. moves to the nearest column on the new line location which contains a 
  15867. character.  If down() moves the cursor into a tab, the cursor always moves to 
  15868. the beginning of the tab. 
  15869.  
  15870. If there are fewer lines remaining between the cursor position and the end of 
  15871. the buffer than the lines argument specifies, the cursor is moved to the last 
  15872. line of the buffer.  A short beep is issued from the speaker if there are no 
  15873. lines between the cursor and the end of the buffer. 
  15874.  
  15875. ____________ 
  15876.  
  15877. Value returned: 
  15878.  
  15879. The down() function returns a non-zero (TRUE) value to indicate that the cursor 
  15880. has been moved.  If the cursor does not move as a result of this function, a 
  15881. zero or FALSE value is returned. 
  15882.  
  15883.  
  15884. ΓòÉΓòÉΓòÉ 14.13.3. goto_bol() ΓòÉΓòÉΓòÉ
  15885.  
  15886. goto_bol()   Primitive 
  15887.  
  15888. Purpose: Moves the cursor to the beginning of the current line. 
  15889.  
  15890. ____________ 
  15891.  
  15892. Syntax:  int goto_bol() 
  15893.  
  15894. ____________ 
  15895.  
  15896. Description: The goto_bol() function moves the cursor to the beginning of the 
  15897. line it currently occupies. 
  15898.  
  15899. ____________ 
  15900.  
  15901. Value returned: 
  15902.  
  15903. The value returned by the goto_bol() function is non-zero (TRUE) if the cursor 
  15904. was moved.  If the cursor was already at the beginning of the line a zero 
  15905. (FALSE) value is returned. 
  15906.  
  15907.  
  15908. ΓòÉΓòÉΓòÉ 14.13.4. goto_bolc() ΓòÉΓòÉΓòÉ
  15909.  
  15910. goto_bolc   Primitive 
  15911.  
  15912. Purpose:  Move cursor to the begining of the line command area. 
  15913.  
  15914. ____________ 
  15915.  
  15916. Syntax:   void goto_bolc() 
  15917.  
  15918. ____________ 
  15919.  
  15920. Arguments: none. 
  15921.  
  15922. Description: The goto_bolc() function moves the cursor to the begining of the 
  15923. line number area.  This function is valid only in the ISPF emulation mode. 
  15924.  
  15925. ____________ 
  15926.  
  15927. Value returned: none. 
  15928.  
  15929.  
  15930. ΓòÉΓòÉΓòÉ 14.13.5. goto_bookmark() ΓòÉΓòÉΓòÉ
  15931.  
  15932. goto_bookmark()   PEL 
  15933.  
  15934. Purpose: Moves to non-local bookmarks. 
  15935.  
  15936. ____________ 
  15937.  
  15938. Syntax:  void goto_bookmark([int n]) 
  15939.  
  15940. ____________ 
  15941.  
  15942. Description: The goto_bookmark() function is an enhanced version of the 
  15943. goto_mark() function.  The function goto_mark() requires that the mark be 
  15944. defined in the current buffer.  If the function place_bookmark() is used to 
  15945. define the bookmark, goto_bookmark() can move to it regardless of the buffer in 
  15946. which it was defined.  In addition, this function prompts for the mark number 
  15947. if not supplied. 
  15948.  
  15949. There is no limit to the number of bookmarks you can place. 
  15950.  
  15951. ____________ 
  15952.  
  15953. Value returned: 
  15954.  
  15955. No useful value is returned by this function. 
  15956.  
  15957.  
  15958. ΓòÉΓòÉΓòÉ 14.13.6. goto_bookmark_key() ΓòÉΓòÉΓòÉ
  15959.  
  15960. goto_bookmark_key()   PEL 
  15961.  
  15962. Purpose: Move to single bookmark or prompt if more than one. 
  15963.  
  15964. ____________ 
  15965.  
  15966. Syntax:  void goto_bookmark_key() 
  15967.  
  15968. ____________ 
  15969.  
  15970. Description: The goto_bookmark_key() function is an enhanced version of 
  15971. goto_bookmark().  If only one bookmark is defined, the cursor is moved without 
  15972. prompting.  If more than one bookmark is defined, the available bookmark values 
  15973. are displayed on the prompt line. 
  15974.  
  15975. ____________ 
  15976.  
  15977. Value returned: 
  15978.  
  15979. No useful value is returned by this function. 
  15980.  
  15981.  
  15982. ΓòÉΓòÉΓòÉ 14.13.7. goto_buffer_bottom() ΓòÉΓòÉΓòÉ
  15983.  
  15984. goto_buffer_bottom()   Primitive 
  15985.  
  15986. Purpose: Moves the cursor to the end of the current buffer. 
  15987.  
  15988. ____________ 
  15989.  
  15990. Syntax:  int goto_buffer_bottom() 
  15991.  
  15992. ____________ 
  15993.  
  15994. Description: The goto_buffer_bottom() function moves the cursor to the position 
  15995. immediately following the last character in the current buffer. 
  15996.  
  15997. ____________ 
  15998.  
  15999. Value returned: 
  16000.  
  16001. The goto_buffer_bottom() function returns a non-zero (TRUE) value to indicate 
  16002. that the cursor has been moved.  If the cursor does not move as a result of 
  16003. this function, a zero or FALSE value is returned. 
  16004.  
  16005.  
  16006. ΓòÉΓòÉΓòÉ 14.13.8. goto_buffer_offset() ΓòÉΓòÉΓòÉ
  16007.  
  16008. goto_buffer_offset()   Primitive 
  16009.  
  16010. Purpose: Move the cursor to a specified buffer position. 
  16011.  
  16012. ____________ 
  16013.  
  16014. Syntax:  void goto_buffer_offset(int num) 
  16015.  
  16016. ____________ 
  16017.  
  16018. Description: The goto_buffer_offset() function places the cursor at the 
  16019. position in the buffer dictated by the num argument.  The num argument 
  16020. represents the number of characters which are to precede the cursor at its new 
  16021. position. 
  16022.  
  16023. If num specifies an offset greater than the contents of the buffer, the cursor 
  16024. position is moved to the end of the buffer. Negative values for num move the 
  16025. cursor to the beginning of the buffer. 
  16026.  
  16027. ____________ 
  16028.  
  16029. Value returned: 
  16030.  
  16031. No useful value is returned by this function. 
  16032.  
  16033. ____________ 
  16034.  
  16035. See also:  buffer_offset, buffer_size, buffer_last_line 
  16036.  
  16037.  
  16038. ΓòÉΓòÉΓòÉ 14.13.9. goto_buffer_top() ΓòÉΓòÉΓòÉ
  16039.  
  16040. goto_buffer_top()   Primitive 
  16041.  
  16042. Purpose: Moves the cursor to the beginning of the buffer. 
  16043.  
  16044. ____________ 
  16045.  
  16046. Syntax:  int goto_buffer_top() 
  16047.  
  16048. ____________ 
  16049.  
  16050. Description: The goto_buffer_top() function moves the cursor to the first 
  16051. character in the current buffer regardless of its previous location. 
  16052.  
  16053. ____________ 
  16054.  
  16055. Value returned: 
  16056.  
  16057. The goto_buffer_top() function returns a non-zero (TRUE) value if the cursor 
  16058. was moved.  A zero or FALSE value is returned if the cursor was already at the 
  16059. beginning of the buffer. 
  16060.  
  16061.  
  16062. ΓòÉΓòÉΓòÉ 14.13.10. goto_eol() ΓòÉΓòÉΓòÉ
  16063.  
  16064. goto_eol()   Primitive 
  16065.  
  16066. Purpose: Moves the cursor to the end of the current line. 
  16067.  
  16068. ____________ 
  16069.  
  16070. Syntax:  int goto_eol() 
  16071.  
  16072. ____________ 
  16073.  
  16074. Description: The function goto_eol() moves the cursor to the end of the current 
  16075. line. 
  16076.  
  16077. ____________ 
  16078.  
  16079. Value returned: 
  16080.  
  16081. The goto_eol() function returns a non-zero (TRUE) value to indicate that the 
  16082. cursor has been moved.  If the cursor does not move as a result of this 
  16083. function, a zero or FALSE value is returned. 
  16084.  
  16085.  
  16086. ΓòÉΓòÉΓòÉ 14.13.11. goto_line() ΓòÉΓòÉΓòÉ
  16087.  
  16088. goto_line()   PEL 
  16089.  
  16090. Purpose: Go to the first column of a line specified by number. 
  16091.  
  16092. ____________ 
  16093.  
  16094. Syntax:  void goto_line(int num) 
  16095.  
  16096. ____________ 
  16097.  
  16098. Description: The goto_line() function moves the cursor to the first column of 
  16099. the line indicated by the num argument. 
  16100.  
  16101. The num argument must specify an integer with a positive value corresponding to 
  16102. an existing line of text.  A number higher than any existing line moves the 
  16103. cursor to the last line in the buffer.  If zero or a negative value is 
  16104. specified for num, the cursor is moved to the beginning of the buffer. 
  16105.  
  16106. ____________ 
  16107.  
  16108. Value returned: 
  16109.  
  16110. No useful value is returned by this function. 
  16111.  
  16112.  
  16113. ΓòÉΓòÉΓòÉ 14.13.12. goto_line_key() ΓòÉΓòÉΓòÉ
  16114.  
  16115. goto_line_key()   PEL 
  16116.  
  16117. Purpose: Prompts for and moves to a specified line. 
  16118.  
  16119. ____________ 
  16120.  
  16121. Syntax:  void goto_line_key() 
  16122.  
  16123. ____________ 
  16124.  
  16125. Description: The goto_line_key() function is a close relative of the 
  16126. goto_line() function, suitable for assigning to a key.  It prompts for the 
  16127. buffer line number where you wish to place the cursor and then goes there. 
  16128.  
  16129. ____________ 
  16130.  
  16131. Value returned: 
  16132.  
  16133. No useful value is returned by this function. 
  16134.  
  16135.  
  16136. ΓòÉΓòÉΓòÉ 14.13.13. goto_line_or_mark() ΓòÉΓòÉΓòÉ
  16137.  
  16138. goto_line_or_mark()   PEL 
  16139.  
  16140. Purpose: Prompts for line or mark number. 
  16141.  
  16142. ____________ 
  16143.  
  16144. Syntax:  void goto_line_or_mark() 
  16145.  
  16146. ____________ 
  16147.  
  16148. Description: The goto_line_or_mark() function prompts for a line number at 
  16149. which to place the cursor, but allows entering a mark number instead, if 
  16150. preceded by "Mark #".  This makes it unnecessary to have separate key 
  16151. assignments for each of these requirements. 
  16152.  
  16153. ____________ 
  16154.  
  16155. Value returned: 
  16156.  
  16157. No useful value is returned by this function. 
  16158.  
  16159.  
  16160. ΓòÉΓòÉΓòÉ 14.13.14. goto_mark() ΓòÉΓòÉΓòÉ
  16161.  
  16162. goto_mark()   Primitive 
  16163.  
  16164. Purpose: Move cursor to position indicated by a bookmark. 
  16165.  
  16166. ____________ 
  16167.  
  16168. Syntax:  int goto_mark(int num) 
  16169.  
  16170. ____________ 
  16171.  
  16172. Description: The goto_mark() function moves the cursor to the column position 
  16173. at the bookmark indicated by the num argument.  The num argument is a numeric 
  16174. id given to a bookmark when it was created.  If num is not a valid bookmark, 
  16175. the cursor is not moved. 
  16176.  
  16177. This function may be used to move to the next bookmark in the buffer by using 
  16178. the next_mark() function as the argument. 
  16179.  
  16180. ____________ 
  16181.  
  16182. Value returned: 
  16183.  
  16184. The value returned by goto_mark() is non- zero (TRUE) if the named mark has 
  16185. been previously defined.  If the mark has not been defined the value returned 
  16186. is zero (FALSE). 
  16187.  
  16188.  
  16189. ΓòÉΓòÉΓòÉ 14.13.15. goto_next_tab() ΓòÉΓòÉΓòÉ
  16190.  
  16191. goto_next_tab()   Primitive 
  16192.  
  16193. Purpose: Move the cursor to the next tab stop position. 
  16194.  
  16195. ____________ 
  16196.  
  16197. Syntax:  int goto_next_tab() 
  16198.  
  16199. ____________ 
  16200.  
  16201. Description: The goto_next_tab() function moves the cursor to the tab stop 
  16202. immediately following its current position. If the buffer_flags variable allows 
  16203. movements into VIRTUAL SPACE, the tab stop may be beyond the end of the current 
  16204. line of text. 
  16205.  
  16206. If movements into VIRTUAL SPACE are not allowed, the cursor will move to the 
  16207. first tab stop on the following line, when the current line does not extend to 
  16208. the next tab stop.  If the cursor is already past the last tab stop in the 
  16209. buffer, a short beep is emitted from the speaker and the cursor is not moved. 
  16210.  
  16211. ____________ 
  16212.  
  16213. Value returned: 
  16214.  
  16215. The function goto_next_tab() returns the number of columns the cursor moved in 
  16216. order to reach the next tab stop.  If the cursor does not move, the value 
  16217. returned is zero. 
  16218.  
  16219. ____________ 
  16220.  
  16221. See also:  goto_prev_tab() 
  16222.  
  16223.  
  16224. ΓòÉΓòÉΓòÉ 14.13.16. goto_old_line() ΓòÉΓòÉΓòÉ
  16225.  
  16226. goto_old_line()   Primitive 
  16227.  
  16228. Purpose: Go to line when only its original line number is known. 
  16229.  
  16230. ____________ 
  16231.  
  16232. Syntax:  int goto_old_line(int num) 
  16233.  
  16234. ____________ 
  16235.  
  16236. Description: The function goto_old_line() moves the cursor to the new location 
  16237. of the line denoted by the num argument.  As with goto_line(), the cursor moves 
  16238. to the first column of that line. 
  16239.  
  16240. The num argument is the number of the line at which the desired text was found 
  16241. originally, or following the most recent save.  When a buffer is saved, 
  16242. information about the previous locations of lines is lost. 
  16243.  
  16244. If the line referred to by num has been deleted, the cursor moves to the 
  16245. location from which the line was deleted. 
  16246.  
  16247. ____________ 
  16248.  
  16249. Value returned: 
  16250.  
  16251. The goto_old_line() function returns a non- zero (TRUE) value if the cursor is 
  16252. moved as a result of calling this function. Otherwise the function returns zero 
  16253. (FALSE). 
  16254.  
  16255.  
  16256. ΓòÉΓòÉΓòÉ 14.13.17. goto_pos() ΓòÉΓòÉΓòÉ
  16257.  
  16258. goto_pos()   Primitive 
  16259.  
  16260. Purpose: Move to a specific line and column within the buffer. 
  16261.  
  16262. ____________ 
  16263.  
  16264. Syntax:  int goto_pos(int line, int column) 
  16265.  
  16266. ____________ 
  16267.  
  16268. Description: The goto_pos() function moves the cursor to the buffer line and 
  16269. column number indicated in the arguments.  If the value of the line argument 
  16270. exceeds the number of lines in the buffer, the cursor is placed on the last 
  16271. line. 
  16272.  
  16273. When movements into VIRTUAL SPACE are not allowed, two special conditions 
  16274. apply:  If the value of the column argument exceeds the number of columns in 
  16275. the line, the cursor is placed at the end of the line. In addition, if the 
  16276. column location specified would place the cursor in the middle of a tab, the 
  16277. cursor is instead positioned at the beginning of a tab.  When movements into 
  16278. VIRTUAL SPACE are permitted, the cursor is placed at the indicated column, 
  16279. regardless. 
  16280.  
  16281. A zero value may be used for either argument and has special meaning.  When a 
  16282. zero value is supplied as an argument, it specifies that the current line or 
  16283. column number is to be preserved; depending on which argument is so specified. 
  16284.  
  16285. If the line number specified is out of range, the editor will go to the last 
  16286. line of the file.  If already on the last line, it will go to the end of the 
  16287. line. 
  16288.  
  16289. The following are two examples from common usage:   goto_pos(0,1) 
  16290.  
  16291. This example moves the cursor to the first column of the line it presently 
  16292. occupies.   goto_pos(1,0) 
  16293.  
  16294. This example moves the cursor to the first line of the buffer, but the column 
  16295. it occupies is unchanged. 
  16296.  
  16297. If a negative value is supplied as an argument to this function, it is treated 
  16298. as a value of 1. 
  16299.  
  16300. ____________ 
  16301.  
  16302. Value returned: 
  16303.  
  16304. This function returns TRUE (a non-zero value) if the cursor moved.  It returns 
  16305. FALSE (zero) if the cursor did not move. 
  16306.  
  16307.  
  16308. ΓòÉΓòÉΓòÉ 14.13.18. goto_prev_tab() ΓòÉΓòÉΓòÉ
  16309.  
  16310. goto_prev_tab()   Primitive 
  16311.  
  16312. Purpose: Move the cursor to the previous tab stop position. 
  16313.  
  16314. ____________ 
  16315.  
  16316. Syntax:  int goto_prev_tab() 
  16317.  
  16318. ____________ 
  16319.  
  16320. Description: The goto_prev_tab() function moves the cursor to the tab stop 
  16321. immediately preceding its current position. 
  16322.  
  16323. The cursor will move to the last tab stop within the preceding line, when the 
  16324. current line does not contain a previous tab stop. If the cursor already 
  16325. precedes the first tab stop in the buffer, a short beep is emitted from the 
  16326. speaker and the cursor is not moved. 
  16327.  
  16328. ____________ 
  16329.  
  16330. Value returned: 
  16331.  
  16332. The function goto_prev_tab() returns the number of columns the cursor moved in 
  16333. order to reach the previous tab stop.  If the cursor does not move, the value 
  16334. returned is zero (FALSE). 
  16335.  
  16336. ____________ 
  16337.  
  16338. See also:  goto_next_tab() 
  16339.  
  16340.  
  16341. ΓòÉΓòÉΓòÉ 14.13.19. goto_window_bottom() ΓòÉΓòÉΓòÉ
  16342.  
  16343. goto_window_bottom()   PEL 
  16344.  
  16345. Purpose: Moves cursor to the text in the last line of the window. 
  16346.  
  16347. ____________ 
  16348.  
  16349. Syntax:  void goto_window_bottom() 
  16350.  
  16351. ____________ 
  16352.  
  16353. Description: The goto_window_bottom() function moves the cursor to the last 
  16354. visible line in the current window.  The column position is maintained when 
  16355. possible.  When movements into VIRTUAL SPACE are not permitted the cursor may 
  16356. be required to move left to the nearest real character. 
  16357.  
  16358. ____________ 
  16359.  
  16360. Value returned: 
  16361.  
  16362. No useful value is returned by goto_window_bottom(). 
  16363.  
  16364.  
  16365. ΓòÉΓòÉΓòÉ 14.13.20. goto_window_left() ΓòÉΓòÉΓòÉ
  16366.  
  16367. goto_window_left()   PEL 
  16368.  
  16369. Purpose: Moves cursor to text at the left edge of the window. 
  16370.  
  16371. ____________ 
  16372.  
  16373. Syntax:  void goto_window_left() 
  16374.  
  16375. ____________ 
  16376.  
  16377. Description: The goto_window_left() function moves the cursor to the first 
  16378. position at the left edge or border of the window.  The cursor does not change 
  16379. lines and text is not scrolled.  When movements into VIRTUAL SPACE are not 
  16380. permitted, the cursor may be required to move away from the edge of the window 
  16381. to the nearest real character. 
  16382.  
  16383. ____________ 
  16384.  
  16385. Value returned: 
  16386.  
  16387. No useful value is returned by goto_window_left(). 
  16388.  
  16389.  
  16390. ΓòÉΓòÉΓòÉ 14.13.21. goto_window_middle() ΓòÉΓòÉΓòÉ
  16391.  
  16392. goto_window_middle()   PEL 
  16393.  
  16394. Purpose: Moves cursor to text in the middle line of the window. 
  16395.  
  16396. ____________ 
  16397.  
  16398. Syntax:  void goto_window_middle() 
  16399.  
  16400. ____________ 
  16401.  
  16402. Description: The goto_window_middle() function moves the cursor to the middle 
  16403. most line visible in the current window.  The column position is maintained 
  16404. when possible.  When movements into VIRTUAL SPACE are not permitted the cursor 
  16405. may be required to move left to the nearest real character. 
  16406.  
  16407. ____________ 
  16408.  
  16409. Value returned: 
  16410.  
  16411. No useful value is returned by goto_window_middle(). 
  16412.  
  16413. goto_window_right() 
  16414.  
  16415.  
  16416. ΓòÉΓòÉΓòÉ 14.13.22. goto_window_right() ΓòÉΓòÉΓòÉ
  16417.  
  16418. Purpose: Moves cursor to text at the right edge of the window.   PEL 
  16419.  
  16420. ____________ 
  16421.  
  16422. Syntax:  void goto_window_right() 
  16423.  
  16424. ____________ 
  16425.  
  16426. Description: The goto_window_right() function moves the cursor to the last 
  16427. position at the right edge or border of the window.  The cursor does not change 
  16428. lines and text is not scrolled.  When movements into VIRTUAL SPACE are not 
  16429. permitted the cursor may be required to move away from the edge of the window 
  16430. to the nearest real character. 
  16431.  
  16432. ____________ 
  16433.  
  16434. Value returned: 
  16435.  
  16436. No useful value is returned by goto_window_right(). 
  16437.  
  16438.  
  16439. ΓòÉΓòÉΓòÉ 14.13.23. goto_window_top() ΓòÉΓòÉΓòÉ
  16440.  
  16441. goto_window_top()   PEL 
  16442.  
  16443. Purpose: Moves cursor to the text in the first line of the window. 
  16444.  
  16445. ____________ 
  16446.  
  16447. Syntax:  void goto_window_top() 
  16448.  
  16449. ____________ 
  16450.  
  16451. Description: The goto_window_top() function moves the cursor to the first 
  16452. visible line in the current window.  The column position is maintained when 
  16453. possible.  When movements into VIRTUAL SPACE are not permitted the cursor may 
  16454. be required to move left to the nearest real character. 
  16455.  
  16456. ____________ 
  16457.  
  16458. Value returned: 
  16459.  
  16460. No useful value is returned by goto_window_top(). 
  16461.  
  16462.  
  16463. ΓòÉΓòÉΓòÉ 14.13.24. left() ΓòÉΓòÉΓòÉ
  16464.  
  16465. left()   Primitive 
  16466.  
  16467. Purpose: Move cursor to the left on the line. 
  16468.  
  16469. ____________ 
  16470.  
  16471. Syntax: int left([int positions]) 
  16472.  
  16473. ____________ 
  16474.  
  16475. Description: the left() function moves the cursor to the left by the number of 
  16476. positions specified by the positions argument.  If the positions argument is 
  16477. omitted, a value of one is assumed. 
  16478.  
  16479. Depending on the value of the buffer_flags variable, positions are interpreted 
  16480. as either columns or characters.  If movements into VIRTUAL SPACE are allowed, 
  16481. the positions argument is interpreted as columns.  When movements into VIRTUAL 
  16482. SPACE are disallowed, positions means characters; excluding end-of-line 
  16483. sequences. 
  16484.  
  16485. If the value of positions is greater than the number of columns or characters 
  16486. between the cursor and the beginning of the line, the cursor moves only to the 
  16487. beginning of the line. Negative values for positions are allowed and result in 
  16488. the cursor moving in the opposite direction.  In other words, calling left() 
  16489. with -3 as the argument is the as calling right() with 3 as the argument. 
  16490.  
  16491. ____________ 
  16492.  
  16493. Value returned: The left() function returns the actual number of columns or 
  16494. characters traversed.  This will be the same number as the positions argument, 
  16495. except when there are too few columns or characters between the cursor position 
  16496. and the beginning of the buffer to execute the move completely. 
  16497.  
  16498. ____________ 
  16499.  
  16500. See also:   prev_char() 
  16501.  
  16502.  
  16503. ΓòÉΓòÉΓòÉ 14.13.25. next_char() ΓòÉΓòÉΓòÉ
  16504.  
  16505. next_char()   Primitive 
  16506.  
  16507. Purpose: Move cursor to a subsequent character in the buffer. 
  16508.  
  16509. ____________ 
  16510.  
  16511. Syntax: int next_char([int chars]) 
  16512.  
  16513. ____________ 
  16514.  
  16515. Description: The next_char() function moves the cursor forward in the buffer by 
  16516. the number of characters specified by the chars argument.  The end-of-line 
  16517. sequence is always treated as a single character.  If the chars argument is 
  16518. omitted, a value of one is assumed. 
  16519.  
  16520. Negative values for chars are allowed and result in the cursor moving in the 
  16521. opposite direction.  In other words, calling next_char() with -3 as the 
  16522. argument is the as calling prev_char() with 3 as the argument. 
  16523.  
  16524. This function is identical to the right()function described below, except that 
  16525. it never causes the cursor to enter virtual space regardless of the setting of 
  16526. the buffer_flags variable. 
  16527.  
  16528. ____________ 
  16529.  
  16530. Value returned: The next_char() function returns the actual number of 
  16531. characters traversed.  This will be the same number as the chars argument, 
  16532. except when there are too few columns or characters between the cursor position 
  16533. and the end of the buffer to execute the move completely. 
  16534.  
  16535. ____________ 
  16536.  
  16537. See also:   right() 
  16538.  
  16539.  
  16540. ΓòÉΓòÉΓòÉ 14.13.26. next_line() ΓòÉΓòÉΓòÉ
  16541.  
  16542. next_line()   PEL 
  16543.  
  16544. Purpose: Moves cursor to the start of text on subsequent line. 
  16545.  
  16546. ____________ 
  16547.  
  16548. Syntax: void next_line() 
  16549.  
  16550. ____________ 
  16551.  
  16552. Description: The next_line() function moves the cursor to the subsequent line 
  16553. in the buffer.  If there is any text on the line the cursor is placed on the 
  16554. first character of this text.  Otherwise, the cursor is placed at the end of 
  16555. the line. 
  16556.  
  16557. ____________ 
  16558.  
  16559. Value returned: No useful value is returned by this function. 
  16560.  
  16561.  
  16562. ΓòÉΓòÉΓòÉ 14.13.27. next_paragraph() ΓòÉΓòÉΓòÉ
  16563.  
  16564. next_paragraph()   PEL 
  16565.  
  16566. Purpose:  Move forward in the buffer to the begining of the next paragraph 
  16567.  
  16568. ____________ 
  16569.  
  16570. Syntax:   void next_paragraph(int count) 
  16571.  
  16572. ____________ 
  16573.  
  16574. Arguments: 
  16575.  
  16576. o count - number of paragraphs to move 
  16577.  
  16578. Description: The next_paragraph() function moves the cursor to the begining of 
  16579. the next paragraph.  If an argument is specified, the cursor is moved count 
  16580. paragraphs. 
  16581.  
  16582. ____________ 
  16583.  
  16584. Value returned: none. 
  16585.  
  16586.  
  16587. ΓòÉΓòÉΓòÉ 14.13.28. next_section() ΓòÉΓòÉΓòÉ
  16588.  
  16589. next_section()   PEL 
  16590.  
  16591. Purpose:  Move forward in the buffer to the begining of the next section 
  16592.  
  16593. ____________ 
  16594.  
  16595. Syntax:   void next_section(int count) 
  16596.  
  16597. ____________ 
  16598.  
  16599. Arguments: 
  16600.  
  16601. o count - number of sections to move 
  16602.  
  16603. Description: The next_section() function moves the cursor to the begining of 
  16604. the next section.  If an argument is specified, the cursor is moved count 
  16605. sections.  A section is defined as a line begining with "{" 
  16606.  
  16607. ____________ 
  16608.  
  16609. Value returned: none. 
  16610.  
  16611.  
  16612. ΓòÉΓòÉΓòÉ 14.13.29. next_sentence() ΓòÉΓòÉΓòÉ
  16613.  
  16614. next_sentence()   PEL 
  16615.  
  16616. Purpose: Moves the cursor to beginning of next sentence. 
  16617.  
  16618. ____________ 
  16619.  
  16620. Syntax: void next_sentence([int n]) 
  16621.  
  16622. ____________ 
  16623.  
  16624. Description: The next_sentence() function advances the cursor to the first 
  16625. non-whitespace character following a period and one or more spaces.  The n 
  16626. argument may be used to indicate motions of more than one sentence. 
  16627.  
  16628. ____________ 
  16629.  
  16630. Value returned: No useful value is returned by this function. 
  16631.  
  16632.  
  16633. ΓòÉΓòÉΓòÉ 14.13.30. next_word() ΓòÉΓòÉΓòÉ
  16634.  
  16635. next_word()   PEL 
  16636.  
  16637. Purpose: Moves cursor to the first character of following word. 
  16638.  
  16639. ____________ 
  16640.  
  16641. Syntax: int next_word([int count [, str regex]]) 
  16642.  
  16643. ____________ 
  16644.  
  16645. Description: The next_word() function moves the cursor to the first character 
  16646. of a word following the current position in the buffer.  The number of words 
  16647. the cursor moves forward is determined by the value of the count argument.  If 
  16648. this argument is not supplied the cursor moves forward one word. 
  16649.  
  16650. The regex argument is a string containing a regular expression.  This string 
  16651. defines what constitutes a word.  If this argument is omitted, a word is 
  16652. defined as non-whitespace characters following one or more characters of 
  16653. whitespace (spaces or tabs). 
  16654.  
  16655. ____________ 
  16656.  
  16657. Value returned: The value returned by next_word() is non-zero (TRUE) if the 
  16658. cursor moved.  Otherwise a zero (FALSE) value is returned. 
  16659.  
  16660.  
  16661. ΓòÉΓòÉΓòÉ 14.13.31. page_down() ΓòÉΓòÉΓòÉ
  16662.  
  16663. page_down()   Primitive 
  16664.  
  16665. Purpose: Move the cursor ahead in the buffer one page. 
  16666.  
  16667. ____________ 
  16668.  
  16669. Syntax: int page_down([int pan]) 
  16670.  
  16671. ____________ 
  16672.  
  16673. Description: The page_down() function advances the cursor position within the 
  16674. buffer by a page.  A page is defined as the number of lines of text in the 
  16675. window, less the value of the window_page_overlap variable. 
  16676.  
  16677. If there is less than a page between the cursor position and the end of the 
  16678. buffer, the last line of text is scrolled up to the cursor position. 
  16679.  
  16680. The cursor may either scroll or pan as a result of the page_down() function. 
  16681. When panning, the cursor attempts to maintain its position relative the window 
  16682. regardless of the motion of text.  When scrolling, it attempts to maintain its 
  16683. position within the buffer. 
  16684.  
  16685. You may dictate whether this function causes the cursor to scroll or pan by 
  16686. supplying the pan argument.  When pan is zero the cursor will scroll. Other 
  16687. values for pan will cause the cursor to pan. If you do not supply the pan 
  16688. argument, cursor action is determined by the condition of the scroll_means_pan 
  16689. variable. 
  16690.  
  16691. ____________ 
  16692.  
  16693. Value returned: The value returned by the page_down() functions is the number 
  16694. of lines actually scrolled.  If the cursor was already on the last line of the 
  16695. buffer, a zero is returned. 
  16696.  
  16697.  
  16698. ΓòÉΓòÉΓòÉ 14.13.32. page_up() ΓòÉΓòÉΓòÉ
  16699.  
  16700. page_up()   Primitive 
  16701.  
  16702. Purpose: Move the cursor backward in the buffer one page. 
  16703.  
  16704. ____________ 
  16705.  
  16706. Syntax: int page_up([int pan]) 
  16707.  
  16708. ____________ 
  16709.  
  16710. Description: The page_up() function moves the cursor position backward within 
  16711. the buffer by a page.  A page is defined as the number of lines of text in the 
  16712. window, less the value of the window_page_overlap variable.  If there is less 
  16713. that a page of text between the current cursor position and the beginning of 
  16714. the buffer, the cursor moves to the first line of text in the buffer. 
  16715.  
  16716. The cursor may either scroll or pan as a result of the page_up() function. 
  16717. When panning, the cursor attempts to maintain its position relative the window 
  16718. regardless of the motion of text.  When scrolling, it attempts to maintain its 
  16719. position within the buffer. 
  16720.  
  16721. You may dictate whether this function causes the cursor to scroll or pan by 
  16722. supplying the pan argument.  When pan is zero the cursor will scroll. Other 
  16723. values for pan will cause the cursor to pan. If you do not supply the pan 
  16724. argument, cursor action is determined by the condition of the scroll_means_pan 
  16725. variable. 
  16726.  
  16727. ____________ 
  16728.  
  16729. Value returned: The value returned by the page_up() functions is the number of 
  16730. lines actually scrolled.  If the cursor was already on the first line of the 
  16731. buffer, a zero is returned. 
  16732.  
  16733.  
  16734. ΓòÉΓòÉΓòÉ 14.13.33. prev_char() ΓòÉΓòÉΓòÉ
  16735.  
  16736. prev_char()   Primitive 
  16737.  
  16738. Purpose: Move cursor to a previous character in the buffer. 
  16739.  
  16740. ____________ 
  16741.  
  16742. Syntax: int prev_char([int chars]) 
  16743.  
  16744. ____________ 
  16745.  
  16746. Description: The prev_char() function moves the cursor backward in the buffer 
  16747. by the number of characters specified by the chars argument.  The end-of-line 
  16748. sequence always counts as a single character.  If the chars argument is 
  16749. omitted, a value of one is assumed. 
  16750.  
  16751. Negative values for chars are allowed and result in the cursor moving in the 
  16752. opposite direction.  In other words, calling prev_char() with -3 as the 
  16753. argument is the as calling next_char() with 3 as the argument. 
  16754.  
  16755. This function is identical to the left() function, except that it never causes 
  16756. the cursor to enter virtual space regardless of the setting of the buffer_flags 
  16757. variable. 
  16758.  
  16759. ____________ 
  16760.  
  16761. Value returned: The prev_char() function returns the actual number of 
  16762. characters traversed.  This will be the same number as the chars argument, 
  16763. except when there are too few columns or characters between the cursor position 
  16764. and the beginning of the buffer to execute the move completely. 
  16765.  
  16766. ____________ 
  16767.  
  16768. See also:   left() 
  16769.  
  16770.  
  16771. ΓòÉΓòÉΓòÉ 14.13.34. prev_line() ΓòÉΓòÉΓòÉ
  16772.  
  16773. prev_line()   PEL 
  16774.  
  16775. Purpose: Moves cursor to the start of text on previous line. 
  16776.  
  16777. ____________ 
  16778.  
  16779. Syntax: void prev_line() 
  16780.  
  16781. ____________ 
  16782.  
  16783. Description: The prev_line() function moves the cursor to the previous line in 
  16784. the buffer.  If there is any text on the line the cursor is placed on the first 
  16785. character of this text.  Otherwise, the cursor is placed at the end of the 
  16786. line. 
  16787.  
  16788. ____________ 
  16789.  
  16790. Value returned: No useful value is returned by this function. 
  16791.  
  16792.  
  16793. ΓòÉΓòÉΓòÉ 14.13.35. prev_paragraph() ΓòÉΓòÉΓòÉ
  16794.  
  16795. prev_paragraph()   PEL 
  16796.  
  16797. Purpose:  Move backward in the buffer to the begining of the previous paragraph 
  16798.  
  16799. ____________ 
  16800.  
  16801. Syntax:   void prev_paragraph(int count) 
  16802.  
  16803. ____________ 
  16804.  
  16805. Arguments: 
  16806.  
  16807. o count - number of paragraphs to move 
  16808.  
  16809. Description: The prev_paragraph() function moves the cursor to the begining of 
  16810. the previous paragraph.  If an argument is specified, the cursor is moved count 
  16811. paragraphs. 
  16812.  
  16813. ____________ 
  16814.  
  16815. Value returned: none. 
  16816.  
  16817.  
  16818. ΓòÉΓòÉΓòÉ 14.13.36. prev_section() ΓòÉΓòÉΓòÉ
  16819.  
  16820. prev_section()   PEL 
  16821.  
  16822. Purpose:  Move backward in the buffer to the begining of the previous section 
  16823.  
  16824. ____________ 
  16825.  
  16826. Syntax:   void prev_section(int count) 
  16827.  
  16828. ____________ 
  16829.  
  16830. Arguments: 
  16831.  
  16832. o count - number of sections to move 
  16833.  
  16834. Description: The prev_section() function moves the cursor to the begining of 
  16835. the previous section.  If an argument is specified, the cursor is moved count 
  16836. sections.  A section is defined as a line begining with "{" 
  16837.  
  16838. ____________ 
  16839.  
  16840. Value returned: none. 
  16841.  
  16842.  
  16843. ΓòÉΓòÉΓòÉ 14.13.37. prev_sentence() ΓòÉΓòÉΓòÉ
  16844.  
  16845. prev_sentence()   PEL 
  16846.  
  16847. Purpose: Moves cursor to beginning of previous sentence. 
  16848.  
  16849. ____________ 
  16850.  
  16851. Syntax: void prev_sentence([int n]) 
  16852.  
  16853. ____________ 
  16854.  
  16855. Description: The prev_sentence() function moves the cursor backward to the 
  16856. first non-whitespace character following a period and one or more spaces.  The 
  16857. n argument may be used to indicate motions of more than one sentence. 
  16858.  
  16859. ____________ 
  16860.  
  16861. Value returned: No useful value is returned by this function. 
  16862.  
  16863.  
  16864. ΓòÉΓòÉΓòÉ 14.13.38. prev_word() ΓòÉΓòÉΓòÉ
  16865.  
  16866. prev_word()   PEL 
  16867.  
  16868. Purpose: Moves cursor to the first character of previous word. 
  16869.  
  16870. ____________ 
  16871.  
  16872. Syntax: int prev_word([int count [, str regex]]) 
  16873.  
  16874. ____________ 
  16875.  
  16876. Description: The prev_word() function moves the cursor to the first character 
  16877. of a word preceding the current position in the buffer.  When the cursor is 
  16878. located within a word, the prev_word() function moves it to the beginning of 
  16879. that word. 
  16880.  
  16881. The number of words the cursor moves backward is determined by the value of the 
  16882. count argument.  If this argument is not supplied the cursor moves backward one 
  16883. word. 
  16884.  
  16885. The regex argument is a string containing a regular expression.  This string 
  16886. defines what constitutes a word.  If this argument is omitted, a word is 
  16887. defined as non-whitespace characters following one or more characters of 
  16888. whitespace (spaces or tabs). 
  16889.  
  16890. ____________ 
  16891.  
  16892. Value returned: The value returned by prev_word() is non-zero (TRUE) if the 
  16893. cursor moved.  Otherwise a zero (FALSE) value is returned. 
  16894.  
  16895.  
  16896. ΓòÉΓòÉΓòÉ 14.13.39. right() ΓòÉΓòÉΓòÉ
  16897.  
  16898. right()   Primitive 
  16899.  
  16900. Purpose: Move cursor to the right on the line. 
  16901.  
  16902. ____________ 
  16903.  
  16904. Syntax: int right([int positions]) 
  16905.  
  16906. ____________ 
  16907.  
  16908. Description: The right() function moves the cursor to the right by the number 
  16909. of positions specified by the positions argument.  If the positions argument is 
  16910. omitted, a value of one is assumed. 
  16911.  
  16912. Depending on the value of the buffer_flags variable, positions are interpreted 
  16913. as either columns or characters.  If movements into virtual space are allowed, 
  16914. the positions argument is interpreted as columns.  The right() function always 
  16915. moves the cursor to the right the number of characters indicated.  It does not 
  16916. move the cursor to the following line. 
  16917.  
  16918. When movements into virtual space are disallowed, positions means characters; 
  16919. excluding end-of-line sequences.  The right() function then follows the text in 
  16920. the buffer.  If the value of positions is greater than the number of columns or 
  16921. characters between the cursor and the end-of-line, the cursor is moved to the 
  16922. beginning of text in the following line.  The cursor is then moved to the right 
  16923. any additional positions. 
  16924.  
  16925. Negative values for positions are allowed and result in the cursor moving in 
  16926. the opposite direction.  In other words, calling right() with -3 as the 
  16927. argument is the as calling left() with 3 as the argument. 
  16928.  
  16929. ____________ 
  16930.  
  16931. Value returned: The right() function returns the actual number of columns or 
  16932. characters traversed.  This will be the same number as the positions argument, 
  16933. except when movements into virtual space are disabled and there are too few 
  16934. characters between the cursor position and the end of the buffer to execute the 
  16935. move completely. 
  16936.  
  16937. ____________ 
  16938.  
  16939. See also:   next_char() 
  16940.  
  16941.  
  16942. ΓòÉΓòÉΓòÉ 14.13.40. rs_down() ΓòÉΓòÉΓòÉ
  16943.  
  16944. rs_down()   PEL 
  16945.  
  16946. Purpose:  To provide a more convenient down() for real space only movement. 
  16947.  
  16948. ____________ 
  16949.  
  16950. Syntax:   rs_down() 
  16951.  
  16952. ____________ 
  16953.  
  16954. Arguments:  none 
  16955.  
  16956. Description: This function provides a more convenient way of moving down when 
  16957. the cursor is constrained to real space.  If the cursor is past the end of a 
  16958. line, or in virtual space past a tab, the cursor is moved left to the nearest 
  16959. "real" column, while the "virtual" column position is saved.  If you move down 
  16960. again, rs_down() will restore the previous column position if it is not in real 
  16961. space. 
  16962.  
  16963. ____________ 
  16964.  
  16965. Value returned:  none 
  16966.  
  16967.  
  16968. ΓòÉΓòÉΓòÉ 14.13.41. rs_page_down() ΓòÉΓòÉΓòÉ
  16969.  
  16970. rs_page_down()   PEL 
  16971.  
  16972. Purpose:  To provide a more convenient page_down() for real space only 
  16973. movement. 
  16974.  
  16975. ____________ 
  16976.  
  16977. Syntax:   rs_page_down() 
  16978.  
  16979. ____________ 
  16980.  
  16981. Arguments:  none 
  16982.  
  16983. Description: This function provides a more convenient way of paging down when 
  16984. the cursor is constrained to real space.  If the cursor is past the end of a 
  16985. line, or in virtual space past a tab, the cursor is moved left to the nearest 
  16986. "real" column, while the "virtual" column position is saved.  If you page down 
  16987. again, rs_page_down() will restore the previous column position if it is not in 
  16988. real space. 
  16989.  
  16990. ____________ 
  16991.  
  16992. Value returned:  none 
  16993.  
  16994.  
  16995. ΓòÉΓòÉΓòÉ 14.13.42. rs_page_up() ΓòÉΓòÉΓòÉ
  16996.  
  16997. rs_page_up()   PEL 
  16998.  
  16999. Purpose:  To provide a more convenient page_up() for real space only movement. 
  17000.  
  17001. ____________ 
  17002.  
  17003. Syntax:   rs_page_up() 
  17004.  
  17005. ____________ 
  17006.  
  17007. Arguments:  none 
  17008.  
  17009. Description: This function provides a more convenient way of paging up when the 
  17010. cursor is constrained to real space.  If the cursor is past the end of a line, 
  17011. or in virtual space past a tab, the cursor is moved left to the nearest "real" 
  17012. column, while the "virtual" column position is saved.  If you page up again, 
  17013. rs_page_up() will restore the previous column position if it is not in real 
  17014. space. 
  17015.  
  17016. ____________ 
  17017.  
  17018. Value returned:  none 
  17019.  
  17020.  
  17021. ΓòÉΓòÉΓòÉ 14.13.43. rs_up() ΓòÉΓòÉΓòÉ
  17022.  
  17023. rs_up()   PEL 
  17024.  
  17025. Purpose:  To provide a more convenient up() for real space only movement. 
  17026.  
  17027. ____________ 
  17028.  
  17029. Syntax:   rs_up() 
  17030.  
  17031. ____________ 
  17032.  
  17033. Arguments:  none 
  17034.  
  17035. Description: This function provides a more convenient way of moving up when the 
  17036. cursor is constrained to real space.  If the cursor is past the end of a line, 
  17037. or in virtual space past a tab, the cursor is moved left to the nearest "real" 
  17038. column, while the "virtual" column position is saved.  If you move up again, 
  17039. rs_up() will restore the previous column position if it is not in real space. 
  17040.  
  17041. ____________ 
  17042.  
  17043. Value returned:  none 
  17044.  
  17045.  
  17046. ΓòÉΓòÉΓòÉ 14.13.44. scroll_down_1() ΓòÉΓòÉΓòÉ
  17047.  
  17048. scroll_down_1()   PEL 
  17049.  
  17050. Purpose: Scroll one line toward the end of the buffer. 
  17051.  
  17052. ____________ 
  17053.  
  17054. Syntax: void scroll_down_1() 
  17055.  
  17056. ____________ 
  17057.  
  17058. Description: The scroll_down_1() function scrolls the text in the current 
  17059. window toward the end of the buffer by one line.  This has the effect of making 
  17060. the text in the window appear to move up. 
  17061.  
  17062. ____________ 
  17063.  
  17064. Value returned: No useful value is returned by this function. 
  17065.  
  17066.  
  17067. ΓòÉΓòÉΓòÉ 14.13.45. scroll_down_half() ΓòÉΓòÉΓòÉ
  17068.  
  17069. scroll_down_half()   PEL 
  17070.  
  17071. Purpose: Scrolls toward end of buffer by half a window. 
  17072.  
  17073. ____________ 
  17074.  
  17075. Syntax: void scroll_down_half() 
  17076.  
  17077. ____________ 
  17078.  
  17079. Description: The scroll_down_half() function scrolls the text in the current 
  17080. window toward the end of the buffer by a number of lines equivalent to half the 
  17081. window height.  This has the effect of making the text in the window appear to 
  17082. move up. 
  17083.  
  17084. ____________ 
  17085.  
  17086. Value returned: No useful value is returned by this function. 
  17087.  
  17088.  
  17089. ΓòÉΓòÉΓòÉ 14.13.46. scroll_horizontal() ΓòÉΓòÉΓòÉ
  17090.  
  17091. scroll_horizontal()   Primitive 
  17092.  
  17093. Purpose: Move text right or left while cursor maintains position. 
  17094.  
  17095. ____________ 
  17096.  
  17097. Syntax: int scroll_horizontal([int offset [, int pan]]) pan]]) 
  17098.  
  17099. ____________ 
  17100.  
  17101. Description: The scroll_horizontal() function scrolls the text in the current 
  17102. window by the number of columns indicated by the offset argument.  Positive 
  17103. values for offset allow viewing text off-window to the right while negative 
  17104. values make text toward the beginning of the line visible.  If the offset 
  17105. argument is omitted the text is scrolled one column right. 
  17106.  
  17107. The cursor may either scroll or pan as a result of the scroll_horizontal() 
  17108. function.  When panning, the cursor attempts to maintain its position relative 
  17109. the window regardless of the motion of text.  When scrolling, it attempts to 
  17110. maintain its position within the buffer. 
  17111.  
  17112. You may determine whether this function causes the cursor to scroll or pan by 
  17113. supplying the pan argument.  When pan is zero the cursor will scroll. Other 
  17114. values for pan will cause the cursor to pan. If you do not supply the pan 
  17115. argument, cursor action is determined by the condition of the scroll_means_pan 
  17116. variable. 
  17117.  
  17118. The maximum number of columns text may be scrolled to the right is equal to the 
  17119. number of visible columns in the current line.  The maximum number of columns 
  17120. text may be scrolled to the left is equal to the number of off-window columns 
  17121. to the left of the window. 
  17122.  
  17123. ____________ 
  17124.  
  17125. Value returned: scroll_horizontal() returns the number of columns scrolled 
  17126. (negative or positive).  This is normally the same value as the offset 
  17127. argument, unless offset was greater than allowable limits.  In that case, the 
  17128. maximum number of columns to scroll is returned. 
  17129.  
  17130. ____________ 
  17131.  
  17132. See also:   scroll_means_pan, scroll_vertical(), buffer_flags 
  17133.  
  17134.  
  17135. ΓòÉΓòÉΓòÉ 14.13.47. scroll_left_1() ΓòÉΓòÉΓòÉ
  17136.  
  17137. scroll_left_1()   PEL 
  17138.  
  17139. Purpose: Scroll toward start of line by one column. 
  17140.  
  17141. ____________ 
  17142.  
  17143. Syntax:  void scroll_left_1() 
  17144.  
  17145. ____________ 
  17146.  
  17147. Description: The scroll_left_1() function scrolls the text in the current 
  17148. window toward the beginning of the line by one column.  This has the effect of 
  17149. making the text in the window appear to move to the right. 
  17150.  
  17151. ____________ 
  17152.  
  17153. Value returned: No useful value is returned by this function. 
  17154.  
  17155.  
  17156. ΓòÉΓòÉΓòÉ 14.13.48. scroll_or_pan() ΓòÉΓòÉΓòÉ
  17157.  
  17158. scroll_or_pan()   PEL 
  17159.  
  17160. Purpose: Tells condition of Scroll Lock key. 
  17161.  
  17162. ____________ 
  17163.  
  17164. Syntax: int scroll_or_pan() 
  17165.  
  17166. ____________ 
  17167.  
  17168. Description: The scroll_or_pan() function reports the condition of the Scroll 
  17169. Lock key.  This value may be used for assignment to the scroll_means_pan 
  17170. variable. 
  17171.  
  17172. ____________ 
  17173.  
  17174. Value returned: The value returned by the scroll_or_pan() function is zero 
  17175. (FALSE) if the Scroll Lock key is toggled off.  If the Scroll Lock key is 
  17176. toggled on the function returns TRUE (1). scroll_right_1() 
  17177.  
  17178. Purpose: Scroll toward end of line by one column. 
  17179.  
  17180. ____________ 
  17181.  
  17182. Syntax:  int scroll_right_1 
  17183.  
  17184. ____________ 
  17185.  
  17186. Description: The scroll_right_1() function scrolls the text in the current 
  17187. window toward the end of current line by one column.  This has the effect of 
  17188. making the text in the window appear to move to the left. 
  17189.  
  17190. ____________ 
  17191.  
  17192. Value returned: No useful value is returned by this function. scroll_up_1() 
  17193.  
  17194. Purpose: Scrolls toward start of buffer by one line. 
  17195.  
  17196. ____________ 
  17197.  
  17198. Syntax:  void scroll_up_1() 
  17199.  
  17200. ____________ 
  17201.  
  17202. Description: The scroll_up_1() function scrolls the text in the current window 
  17203. toward the beginning of the buffer by one line.  This has the effect of making 
  17204. the text in the window appear to move down. 
  17205.  
  17206. ____________ 
  17207.  
  17208. Value returned: No useful value is returned by this function. 
  17209.  
  17210.  
  17211. ΓòÉΓòÉΓòÉ 14.13.49. scroll_up_half() ΓòÉΓòÉΓòÉ
  17212.  
  17213. scroll_up_half()   PEL 
  17214.  
  17215. Purpose: Scrolls toward start of buffer by half a window. 
  17216.  
  17217. ____________ 
  17218.  
  17219. Syntax: void scroll_up_half() 
  17220.  
  17221. ____________ 
  17222.  
  17223. Description: The scroll_up_half() function scrolls the text in the current 
  17224. window toward the beginning of the buffer by a number of lines equivalent to 
  17225. half the window height.  This has the effect of making the text in the window 
  17226. appear to move down. 
  17227.  
  17228. ____________ 
  17229.  
  17230. Value returned: No useful value is returned by this function. 
  17231.  
  17232.  
  17233. ΓòÉΓòÉΓòÉ 14.13.50. scroll_vertical() ΓòÉΓòÉΓòÉ
  17234.  
  17235. scroll_vertical()   Primitive 
  17236.  
  17237. Purpose: Move text up or down while cursor maintains position. 
  17238.  
  17239. ____________ 
  17240.  
  17241. Syntax: int scroll_vertical([int offset [, int pan]]) 
  17242.  
  17243. ____________ 
  17244.  
  17245. Description: The scroll_vertical() function scrolls the text in the current 
  17246. window by the number of lines indicated in the offset argument.  Positive 
  17247. values for offset scroll text down while negative values scroll toward the 
  17248. beginning of the buffer.  If the offset argument is omitted the text is 
  17249. scrolled one line down. 
  17250.  
  17251. If there are less than offset lines between the cursor position and the 
  17252. applicable buffer limit, the cursor is moved to the first or last line of the 
  17253. buffer. 
  17254.  
  17255. The cursor may either scroll or pan as a result of the scroll_vertical() 
  17256. function.  When panning, the cursor attempts to maintain its position relative 
  17257. the window regardless of the motion of text.  When scrolling, it attempts to 
  17258. maintain its position within the buffer. 
  17259.  
  17260. You may dictate whether this function causes the cursor to scroll or pan by 
  17261. supplying the pan argument.  When pan is zero the cursor will scroll. Other 
  17262. values for pan will cause the cursor to pan. If you do not supply the pan 
  17263. argument, cursor action is determined by the condition of the scroll_means_pan 
  17264. variable. 
  17265.  
  17266. ____________ 
  17267.  
  17268. Value returned: scroll_vertical() returns the number of lines scrolled 
  17269. (negative or positive).  This is normally the same value as the offset 
  17270. argument, unless offset was greater than allowable limits.  In that case, the 
  17271. maximum number of lines to scroll is returned. 
  17272.  
  17273.  
  17274. ΓòÉΓòÉΓòÉ 14.13.51. scroll_window_bottom() ΓòÉΓòÉΓòÉ
  17275.  
  17276. scroll_window_bottom()   PEL 
  17277.  
  17278. Purpose: Scroll cursor line to position relative to window bottom 
  17279.  
  17280. ____________ 
  17281.  
  17282. Syntax: void scroll_window_bottom([int offset]) 
  17283.  
  17284. ____________ 
  17285.  
  17286. Description: The scroll_window_bottom() function scrolls the line containing 
  17287. the cursor to a position offset lines from the bottom of the window.  If the 
  17288. offset argument is omitted or is a value less than 0, the cursor line becomes 
  17289. the bottom line in the window. 
  17290.  
  17291. The operation of this function is affected by the state of the scroll_means_pan 
  17292. variable and the scroll lock key.  Refer to the description of the variable 
  17293. scroll_means_pan for an explanation. 
  17294.  
  17295. ____________ 
  17296.  
  17297. Value returned: No useful value is returned by this function. 
  17298.  
  17299.  
  17300. ΓòÉΓòÉΓòÉ 14.13.52. scroll_window_middle() ΓòÉΓòÉΓòÉ
  17301.  
  17302. scroll_window_middle()   PEL 
  17303.  
  17304. Purpose: Scroll cursor line to position relative to window center. 
  17305.  
  17306. ____________ 
  17307.  
  17308. Syntax: void scroll_window_middle([int offset]) 
  17309.  
  17310. ____________ 
  17311.  
  17312. Description: The scroll_window_middle() function scrolls the line containing 
  17313. the cursor to a position offset lines from the center of the window.  Positive 
  17314. values for offset place the line below the center of the window, while negative 
  17315. values place it above the center.  If the offset argument is omitted or is 0, 
  17316. the cursor line becomes the center line of the window. 
  17317.  
  17318. The operation of this function is affected by the state of the scroll_means_pan 
  17319. variable and the scroll lock key.  Refer to the description of the variable 
  17320. scroll_means_pan for an explanation. 
  17321.  
  17322. ____________ 
  17323.  
  17324. Value returned: No useful value is returned by this function. 
  17325.  
  17326.  
  17327. ΓòÉΓòÉΓòÉ 14.13.53. scroll_window_top() ΓòÉΓòÉΓòÉ
  17328.  
  17329. scroll_window_top()   PEL 
  17330.  
  17331. Purpose: Scroll cursor line to position relative window top 
  17332.  
  17333. ____________ 
  17334.  
  17335. Syntax: void scroll_window_top([int offset]) 
  17336.  
  17337. ____________ 
  17338.  
  17339. Description: The scroll_window_top() function scrolls the line containing the 
  17340. cursor to a position offset lines from the top of the window.  If the offset 
  17341. argument is omitted or is a value less than 0, the cursor line becomes the top 
  17342. line in the window. 
  17343.  
  17344. The operation of this function is affected by the state of the scroll_means_pan 
  17345. variable and the scroll lock key.  Refer to the description of the variable 
  17346. scroll_means_pan for an explanation. 
  17347.  
  17348. ____________ 
  17349.  
  17350. Value returned: No useful value is returned by this function. 
  17351.  
  17352.  
  17353. ΓòÉΓòÉΓòÉ 14.13.54. skip_whitespace() ΓòÉΓòÉΓòÉ
  17354.  
  17355. skip_whitespace()   PEL 
  17356.  
  17357. Purpose: Move cursor to beginning of text on current line. 
  17358.  
  17359. ____________ 
  17360.  
  17361. Syntax: void skip_whitespace() 
  17362.  
  17363. ____________ 
  17364.  
  17365. Description: The skip_whitespace() function moves the cursor to the first 
  17366. character on the current line that is not a whitespace character (space or 
  17367. tab).  The function is not affected by the position of the cursor within the 
  17368. line prior to invoking skip_whitespace().  If the line contains only whitespace 
  17369. the cursor moves to the end of the line. 
  17370.  
  17371. ____________ 
  17372.  
  17373. Value returned: No useful value is returned by this function. 
  17374.  
  17375.  
  17376. ΓòÉΓòÉΓòÉ 14.13.55. up() ΓòÉΓòÉΓòÉ
  17377.  
  17378. up()   Primitive 
  17379.  
  17380. Purpose: Move the cursor by lines toward the top of the buffer. 
  17381.  
  17382. ____________ 
  17383.  
  17384. Syntax: int up([int lines]) 
  17385.  
  17386. ____________ 
  17387.  
  17388. Description: The up() function moves the cursor the number of lines found in 
  17389. the lines argument toward the beginning of the buffer.  If the lines argument 
  17390. is not supplied, one line is assumed. 
  17391.  
  17392. Negative values for lines are allowed and result in the cursor moving in the 
  17393. opposite direction.  In other words, calling up() with -3 as the argument is 
  17394. the as calling down() with 3 as the argument. 
  17395.  
  17396. The column position of the cursor resulting from a call to up() may be affected 
  17397. by the buffer_flags variable described above.  If movement into VIRTUAL SPACE 
  17398. is allowed, the cursor always maintains the same column position at its new 
  17399. line location. 
  17400.  
  17401. If movements into VIRTUAL SPACE are disallowed, the column position may change. 
  17402. When the up() function would position the cursor beyond the end-of-line, it 
  17403. moves to the nearest column on the new line location which contains a 
  17404. character.  If up() moves the cursor into a tab, the cursor always moves to the 
  17405. beginning of the tab. 
  17406.  
  17407. If there are fewer lines remaining between the cursor position and the 
  17408. beginning of the buffer than the lines argument specifies, the cursor is moved 
  17409. to the first line of the buffer.  A short beep is then issued from the speaker. 
  17410.  
  17411. ____________ 
  17412.  
  17413. Value returned: The up() function returns the actual number of lines traversed. 
  17414. This will be the same number as the lines argument, except when there are too 
  17415. few lines between the cursor position and the beginning of the buffer to 
  17416. execute the move completely. 
  17417.  
  17418.  
  17419. ΓòÉΓòÉΓòÉ 14.13.56. up_whitespace() ΓòÉΓòÉΓòÉ
  17420.  
  17421. up_whitespace()   PEL 
  17422.  
  17423. Purpose:  Move cursor up to the begining of whitespace. 
  17424.  
  17425. ____________ 
  17426.  
  17427. Syntax:   void up_whitespace() 
  17428.  
  17429. ____________ 
  17430.  
  17431. Arguments: none. 
  17432.  
  17433. Description: The up_whitespace() function moves the cursor up in the buffer, 
  17434. remaining in the same column, until it reaches the begining of whitespace for 
  17435. that column.  If BUFFER_REAL_SPACE_ONLY is on, this function may not have the 
  17436. desired effect. 
  17437.  
  17438. ____________ 
  17439.  
  17440. Value returned: none. 
  17441.  
  17442.  
  17443. ΓòÉΓòÉΓòÉ 14.13.57. wp ΓòÉΓòÉΓòÉ
  17444.  
  17445. wp()   PEL 
  17446.  
  17447. Purpose:  Sets word processing mode options. 
  17448.  
  17449. ____________ 
  17450.  
  17451. Syntax:   int wp(int on_off, int wrap_continous, int carry_comments) 
  17452.  
  17453. ____________ 
  17454.  
  17455. Arguments: 
  17456.  
  17457. o onoff - if 1, word processing is enabled and word wrap occurs otherwise 
  17458.   disables word processing mode. 
  17459. o wrap_continous - if 1, wraps paragraph when you add new text to a line of an 
  17460.   existing paragraph. Otherwise new text will not wrap unless you execute 
  17461.   wrap_paragraph().  Word processing must be enabled for the wrap_continous 
  17462.   argument to work. 
  17463. o carry_comment - if 1 and your left margin is set to a value greater than 
  17464.   zero, the characters in the columns preceding the left margin are copied to 
  17465.   the beginning of the new line when you press [Enter].  This feature is 
  17466.   especially useful when you write comment blocks. 
  17467.  
  17468. Description: The wp() functions enables or disables word processing mode in the 
  17469. editor.  The arguments supplied to the function determine the word processing 
  17470. mode settings. 
  17471.  
  17472. ____________ 
  17473.  
  17474. Value returned: none. 
  17475.  
  17476.  
  17477. ΓòÉΓòÉΓòÉ 14.14. Notebook ΓòÉΓòÉΓòÉ
  17478.  
  17479. append_notebook_page() 
  17480.           Appends a page to a notebook 
  17481. begin_notebook() 
  17482.           Displays and enables a notebook dialog box 
  17483. count_notebook_pages() 
  17484.           Counts the number pages in a notebook 
  17485. create_notebook_template() 
  17486.           Creates a blank notebook template 
  17487. create_page() 
  17488.           Creates a new page in a notebook. 
  17489. create_page_template() 
  17490.           Creates a blank notebook page template 
  17491. delete_notebook() 
  17492.           Deletes a notebook and frees all associated memory 
  17493. delete_notebook_page() 
  17494.           Removes a page from a notebook 
  17495. delete_page() 
  17496.           Delete a page from a notebook. 
  17497. get_notebook_page_dialog() 
  17498.           Retrieves the dialog window associated with a notebook page 
  17499. insert_notebook_page_after() 
  17500.           Inserts a notebook page after another page 
  17501. insert_notebook_page_at_top() 
  17502.           Inserts a page as the first page of the notebook 
  17503. insert_notebook_page_before() 
  17504.           Inserts a notebook page before another page 
  17505. set_notebook_backpages() 
  17506.           Sets where the notebook pages intersect 
  17507. set_notebook_binder_type() 
  17508.           Sets the binder type for a notebook 
  17509. set_notebook_button_size() 
  17510.           Sets the size of the notebook arrow buttons in pixels 
  17511. set_notebook_major_tab_size() 
  17512.           Sets the size of the major tabs in pixels 
  17513. set_notebook_minor_tab_size() 
  17514.           Sets the size of the major tabs in pixels 
  17515. set_notebook_page_dialog() 
  17516.           Changes the dialog window associated with a notebook page 
  17517. set_notebook_page_stat_text() 
  17518.  
  17519. set_notebook_page_tab_text() 
  17520.           Sets the text displayed on the tab for a notebook page 
  17521. set_notebook_status_align() 
  17522.           Sets the text alignment of the status area in a notebook. 
  17523. set_notebook_tab_align() 
  17524.           Sets the alignment of notebook tab text 
  17525. set_notebook_tab_location() 
  17526.           Sets location of the major tabs 
  17527. set_notebook_tab_type() 
  17528.           Sets the style of notebook tabs 
  17529. settings_notebook() 
  17530.           Display the settings notebook 
  17531. turnto_notebook_page() 
  17532.           Brings a notebook page to the top of the notebook 
  17533.  
  17534.  
  17535. ΓòÉΓòÉΓòÉ 14.14.1. append_notebook_page() ΓòÉΓòÉΓòÉ
  17536.  
  17537. append_notebook_page()   Primitive 
  17538.  
  17539. Purpose: Appends a page to a notebook 
  17540.  
  17541. ____________ 
  17542.  
  17543. Syntax: long append_notebook_page(long nbid,long pageid[, string stat_text[, 
  17544. string tab_text [, short tab_type, [ short auto_size ]]]]) 
  17545.  
  17546. ____________ 
  17547.  
  17548. Description: The append_notebook_page() function appends a page to a notebook 
  17549. dialog box. The nbid argument contains the notebook id.  The nbid argument must 
  17550. be a valid notebook id returned from the create_notebook functions. The pageid 
  17551. argument contains the page id to append into the notebook. This argument must 
  17552. be a valid page id return from the create_page functions. The optional 
  17553. stat_text argument contains the text to display on the notebook page status 
  17554. area. The optional tab_text argument contains the text to display on the 
  17555. notebook tab associated with the notebook page. The optional tab_type argument 
  17556. contains style of the tab to use for the notebook page. The auto_size argument 
  17557. allows the notebook to automatically resize itself if the notebook page is 
  17558. larger than the notebook.  The default is TRUE. 
  17559.  
  17560. ____________ 
  17561.  
  17562. Value returned: This function returns the page id of the notebook page in the 
  17563. notebook. 
  17564.  
  17565.  
  17566. ΓòÉΓòÉΓòÉ 14.14.2. begin_notebook() ΓòÉΓòÉΓòÉ
  17567.  
  17568. begin_notebook()   Primitive 
  17569.  
  17570. Purpose: Displays and enables a notebook dialog box 
  17571.  
  17572. ____________ 
  17573.  
  17574. Syntax: void begin_notebook(long nbid) 
  17575.  
  17576. ____________ 
  17577.  
  17578. Description: The begin_notebook() function displays a notebook dialog box. The 
  17579. nbid argument contains the id of the notebook dialog box to display. 
  17580.  
  17581. ____________ 
  17582.  
  17583. Value returned: No value is returned from this function. 
  17584.  
  17585.  
  17586. ΓòÉΓòÉΓòÉ 14.14.3. count_notebook_pages() ΓòÉΓòÉΓòÉ
  17587.  
  17588. count_notebook_pages()   Primitive 
  17589.  
  17590. Purpose: Counts the number pages in a notebook 
  17591.  
  17592. ____________ 
  17593.  
  17594. Syntax: short count_notebook_pages(long nbid) 
  17595.  
  17596. ____________ 
  17597.  
  17598. Description: The count_notebook_pages() function counts the number of notebook 
  17599. pages associated with a notebook. The nbid argument contains the notebook id. 
  17600.  
  17601. ____________ 
  17602.  
  17603. Value returned: The count_notebook_pages() returns the number of notebook pages 
  17604. associated with the specified notebook. 
  17605.  
  17606.  
  17607. ΓòÉΓòÉΓòÉ 14.14.4. create_notebook_template() ΓòÉΓòÉΓòÉ
  17608.  
  17609. create_notebook_template()   Primitive 
  17610.  
  17611. Purpose: Creates a blank notebook template 
  17612.  
  17613. ____________ 
  17614.  
  17615. Syntax: long create_notebook_template([[[[[[[macroid callback_id], long 
  17616. parent], string label], short x0], short y0], short width], short height]) 
  17617.  
  17618. ____________ 
  17619.  
  17620. Description: The create_notebook_template() function creates a blank notebook 
  17621. dialog box.  Notebook pages are added to the notebook template with the 
  17622. append/insert notebook page functions. 
  17623.  
  17624. The optional callback_id argument contains the function id to call when a 
  17625. significant event occurs to the notebook dialog box.  If callback_id is not 
  17626. specified or is zero then no callback function is used. 
  17627.  
  17628. The optional parent argument contains the id of the notebook's parent.  If not 
  17629. specified or zero the editor window is used as the parent. 
  17630.  
  17631. The optional label argument contains the caption or title bar text of the 
  17632. notebook. 
  17633.  
  17634. The optional x0 argument contains the initial x coordinate of the notebook 
  17635. dialog box. 
  17636.  
  17637. The optional y0 argument contains the initial y coordinate of the notebook 
  17638. dialog box. 
  17639.  
  17640. The optional width argument contains the initial width of the notebook dialog 
  17641. box. 
  17642.  
  17643. The optional height argument contains the initial height of the notebook dialog 
  17644. box. 
  17645.  
  17646. ____________ 
  17647.  
  17648. Value returned: The create_notebook_template() returns the id of the newly 
  17649. created notebook dialog box on success. If create_notebook_template() fails 
  17650. FALSE is returned. 
  17651.  
  17652.  
  17653. ΓòÉΓòÉΓòÉ 14.14.5. create_page() ΓòÉΓòÉΓòÉ
  17654.  
  17655. create_page()   Primitive 
  17656.  
  17657. Purpose:  Creates a new page in a notebook. 
  17658.  
  17659. ____________ 
  17660.  
  17661. Syntax:   long create_page(funcid callback_id, long par, long resid, [str 
  17662. szFile]) 
  17663.  
  17664. ____________ 
  17665.  
  17666. Arguments: 
  17667.  
  17668. o callback_id - function id of the callback 
  17669. o par - 
  17670. o resid - 
  17671. o szFile - 
  17672.  
  17673. Description: The create_page() function creates a page that can be inserted 
  17674. into a notebook. 
  17675.  
  17676. ____________ 
  17677.  
  17678. Value returned: Dialog handle of the newly created page. 
  17679.  
  17680.  
  17681. ΓòÉΓòÉΓòÉ 14.14.6. create_page_template() ΓòÉΓòÉΓòÉ
  17682.  
  17683. create_page_template()   Primitive 
  17684.  
  17685. Purpose: Creates a blank notebook page template 
  17686.  
  17687. ____________ 
  17688.  
  17689. Syntax: long create_page_template(macroid callback_id,long parent,[[[[short x0, 
  17690. short y0], short width], short height]) 
  17691.  
  17692. ____________ 
  17693.  
  17694. Description: The create_page_template() function creates a blank notebook page 
  17695. template.  Controls are added to the notebook page template the same way 
  17696. controls are added to a dialog box.  The notebook page template is added to a 
  17697. notebook with one of the insert/append notebook page functions. The callback_id 
  17698. argument contains the function id to call when a significant event occurs with 
  17699. the notebook page. The parent argument contains the parent window of the 
  17700. notebook page template.  If the parent argument is zero then the editor window 
  17701. is used as the parent otherwise parent must be a valid dialog box id returned 
  17702. from one of the create_notebook functions. The optional x0 argument contains 
  17703. the initial x coordinate of the notebook page in pixels. The optional y0 
  17704. argument contains the initial y coordinate of the notebook page in pixels. The 
  17705. optional width argument contains the initial width of the notebook page in 
  17706. pixels. The optional height argument contains the initial height of the 
  17707. notebook page in pixels. 
  17708.  
  17709. ____________ 
  17710.  
  17711. Value returned: The create_page_template() function returns the id of the newly 
  17712. created notebook page template.  The return value is used when adding controls 
  17713. to the notebook and added the page template to a notebook. 
  17714.  
  17715.  
  17716. ΓòÉΓòÉΓòÉ 14.14.7. delete_page() ΓòÉΓòÉΓòÉ
  17717.  
  17718. delete_page   Primitive 
  17719.  
  17720. Purpose:  Delete a page from a notebook. 
  17721.  
  17722. ____________ 
  17723.  
  17724. Syntax:   delete_page(long dlghand) 
  17725.  
  17726. ____________ 
  17727.  
  17728. Arguments: 
  17729.  
  17730. o dlghand - handle of the page to be deleted. 
  17731.  
  17732. Description: The delete_page() function deletes the specified page from a 
  17733. notebook.  The processing is similar to the delete_dialog() function. 
  17734.  
  17735. ____________ 
  17736.  
  17737. Value returned: none. 
  17738.  
  17739.  
  17740. ΓòÉΓòÉΓòÉ 14.14.8. delete_notebook() ΓòÉΓòÉΓòÉ
  17741.  
  17742. delete_notebook()   Primitive 
  17743.  
  17744. Purpose: Deletes a notebook and frees all associated memory 
  17745.  
  17746. ____________ 
  17747.  
  17748. Syntax: void delete_notebook(long nbid) 
  17749.  
  17750. ____________ 
  17751.  
  17752. Description: The delete_notebook() function deletes the specified notebook and 
  17753. frees all associated memory. The notebook id becomes invalid after this call 
  17754. and can no longer be used in any notebook functions. The nbid argument contains 
  17755. the id of the notebook dialog box to delete. 
  17756.  
  17757. ____________ 
  17758.  
  17759. Value returned: No value is returned from this function. 
  17760.  
  17761.  
  17762. ΓòÉΓòÉΓòÉ 14.14.9. delete_notebook_page() ΓòÉΓòÉΓòÉ
  17763.  
  17764. delete_notebook_page()   Primitive 
  17765.  
  17766. Purpose: Removes a page from a notebook 
  17767.  
  17768. ____________ 
  17769.  
  17770. Syntax: void delete_notebook_page(long nbid, long pageid) 
  17771.  
  17772. ____________ 
  17773.  
  17774. Description: The delete_notebook_page() function removes a page from a 
  17775. notebook.  The page is no longer visible on the notebook. The nbid argument 
  17776. contains the notebook id.  The nbid argument must be a valid notebook id 
  17777. returned from the create_notebook functions. The pageid argument contains the 
  17778. page of the notebook to delete. The pageid argument must be a valid page 
  17779. returned from one of the insert/append notebook functions. 
  17780.  
  17781. ____________ 
  17782.  
  17783. Value returned: No value is returned from this function. 
  17784.  
  17785.  
  17786. ΓòÉΓòÉΓòÉ 14.14.10. get_notebook_page_dialog() ΓòÉΓòÉΓòÉ
  17787.  
  17788. get_notebook_page_dialog()      Primitive 
  17789.  
  17790. Purpose: Retrieves the dialog window associated with a notebook page 
  17791.  
  17792. ____________ 
  17793.  
  17794. Syntax: long get_notebook_page_dialog(long nbid, long pageid) 
  17795.  
  17796. ____________ 
  17797.  
  17798. Description: The get_notebook_page_dialog() function retrieves the dialog 
  17799. window associated with a notebook page. The nbid argument contains the notebook 
  17800. id.  The nbid argument must be a valid notebook id returned from the 
  17801. create_notebook functions. The pageid argument contains the page of the 
  17802. notebook to associate to the dialog window.  The pageid argument must be a 
  17803. valid page returned from one of the insert/append notebook functions. 
  17804.  
  17805. ____________ 
  17806.  
  17807. Value returned: This function returns the dialog id associated with the 
  17808. notebook page if successfull, otherwise 0 is returned. 
  17809.  
  17810.  
  17811. ΓòÉΓòÉΓòÉ 14.14.11. insert_notebook_page_after() ΓòÉΓòÉΓòÉ
  17812.  
  17813. insert_notebook_page_after()   Primitive 
  17814.  
  17815. Purpose: Inserts a notebook page after another page 
  17816.  
  17817. ____________ 
  17818.  
  17819. Syntax: long insert_notebook_page_after(long nbid, long after_page, long pageid 
  17820. [, string stat_text [, string tab_text [, short tab_type, [ short auto_resize 
  17821. ]]]]) 
  17822.  
  17823. ____________ 
  17824.  
  17825. Description: The insert_notebook_page_before() function inserts a page after 
  17826. another page of the notebook. The nbid argument contains the notebook id.  The 
  17827. nbid argument must be a valid notebook id returned from the create_notebook 
  17828. functions. The after_page argument contains the page of the notebook to insert 
  17829. after.  The after_page argument must be a valid page returned from one of the 
  17830. insert/append notebook functions. The pageid argument contains the page id to 
  17831. insert into the notebook. This argument must be a valid page id return from the 
  17832. create_page functions. The optional stat_text argument contains the text to 
  17833. display on the notebook page status area. The optional tab_text argument 
  17834. contains the text to display on the notebook tab associated with the notebook 
  17835. page. The optional tab_type argument contains style of the tab to use for the 
  17836. notebook page. The auto_size argument allows the notebook to automatically 
  17837. resize itself if the notebook page is larger than the notebook.  The default is 
  17838. TRUE. 
  17839.  
  17840. ____________ 
  17841.  
  17842. Value returned: This function returns the page id of the notebook page in the 
  17843. notebook. 
  17844.  
  17845.  
  17846. ΓòÉΓòÉΓòÉ 14.14.12. insert_notebook_page_at_top() ΓòÉΓòÉΓòÉ
  17847.  
  17848. insert_notebook_page_at_top()   Primitive 
  17849.  
  17850. Purpose: Inserts a page as the first page of the notebook 
  17851.  
  17852. ____________ 
  17853.  
  17854. Syntax: long insert_notebook_page_at_top(long nbid,long pageid [, string 
  17855. stat_text [, string tab_text [, short tab_type [,short auto_size]]]]) 
  17856.  
  17857. ____________ 
  17858.  
  17859. Description: The insert_notebook_page_at_top() function inserts a page as the 
  17860. first page of the notebook. The nbid argument contains the notebook id.  The 
  17861. nbid argument must be a valid notebook id returned from the create_notebook 
  17862. functions. The pageid argument contains the page id to append into the 
  17863. notebook. This argument must be a valid page id return from the create_page 
  17864. functions. The optional stat_text argument contains the text to display on the 
  17865. notebook page status area. The optional tab_text argument contains the text to 
  17866. display on the notebook tab associated with the notebook page. The optional 
  17867. tab_type argument contains style of the tab to use for the notebook page. The 
  17868. auto_size argument allows the notebook to automatically resize itself if the 
  17869. notebook page is larger than the notebook.  The default is TRUE. 
  17870.  
  17871. ____________ 
  17872.  
  17873. Value returned: This function returns the page id of the notebook page in the 
  17874. notebook. 
  17875.  
  17876.  
  17877. ΓòÉΓòÉΓòÉ 14.14.13. insert_notebook_page_before() ΓòÉΓòÉΓòÉ
  17878.  
  17879. insert_notebook_page_before()   Primitive 
  17880.  
  17881. Purpose: Inserts a notebook page before another page 
  17882.  
  17883. ____________ 
  17884.  
  17885. Syntax: long insert_notebook_page_before(long nbid, long before_page, long 
  17886. pageid [, string stat_text [, string tab_text [, short tab_type, [ short 
  17887. auto_resize ]]]]) 
  17888.  
  17889. ____________ 
  17890.  
  17891. Description: The insert_notebook_page_before() function inserts a page before 
  17892. another page of the notebook. The nbid argument contains the notebook id.  The 
  17893. nbid argument must be a valid notebook id returned from the create_notebook 
  17894. functions. The before_page argument contains the page of the notebook to insert 
  17895. before.  The before_page argument must be a valid page returned from one of the 
  17896. insert/append notebook functions. The pageid argument contains the page id to 
  17897. insert into the notebook. This argument must be a valid page id return from the 
  17898. create_page functions. The optional stat_text argument contains the text to 
  17899. display on the notebook page status area. The optional tab_text argument 
  17900. contains the text to display on the notebook tab associated with the notebook 
  17901. page. The optional tab_type argument contains style of the tab to use for the 
  17902. notebook page. The auto_size argument allows the notebook to automatically 
  17903. resize itself if the notebook page is larger than the notebook.  The default is 
  17904. TRUE. 
  17905.  
  17906. ____________ 
  17907.  
  17908. Value returned: This function returns the page id of the notebook page in the 
  17909. notebook. 
  17910.  
  17911.  
  17912. ΓòÉΓòÉΓòÉ 14.14.14. set_notebook_backpages() ΓòÉΓòÉΓòÉ
  17913.  
  17914. set_notebook_backpages()   Primitive 
  17915.  
  17916. Purpose: Sets where the notebook pages intersect 
  17917.  
  17918. ____________ 
  17919.  
  17920. Syntax: void set_notebook_backpages(long nbid, short style) 
  17921.  
  17922. ____________ 
  17923.  
  17924. Description: The set_notebook_backpages() function sets the intersection point 
  17925. for all the notebook pages.  There are 4 possible intersection points of the 
  17926. notebook pages; bottom right, bottom left, top right, and top left. The nbid 
  17927. argument contains the notebook id. The style argument contains the desired 
  17928. intersection points for the notebook pages.  The valid values for style are: 
  17929.  
  17930. o 0 - bottom right 
  17931. o 1 - bottom left 
  17932. o 2 - top right 
  17933. o 3 - top left 
  17934.  
  17935. ____________ 
  17936.  
  17937. Value returned: No value is returned from this function. 
  17938.  
  17939.  
  17940. ΓòÉΓòÉΓòÉ 14.14.15. set_notebook_binder_type() ΓòÉΓòÉΓòÉ
  17941.  
  17942. set_notebook_binder_type()   Primitive 
  17943.  
  17944. Purpose: Sets the binder type for a notebook 
  17945.  
  17946. ____________ 
  17947.  
  17948. Syntax: void set_notebook_binder_type(long nbid, short type) 
  17949.  
  17950. ____________ 
  17951.  
  17952. Description: The set_notebook_binder_type() function sets the type of binder 
  17953. displayed on the notebook page.  The available binder types are solid and 
  17954. spiral. The nbid argument contains the id of the notebook dialog box. The type 
  17955. argument contains the type of binder to use.  The type arugument must contain 
  17956. one of the following values: 
  17957.  
  17958. o 0 - solid binder 
  17959. o 1 - spiral binder 
  17960.  
  17961. ____________ 
  17962.  
  17963. Value returned: No value is returned from this function. 
  17964.  
  17965.  
  17966. ΓòÉΓòÉΓòÉ 14.14.16. set_notebook_button_size() ΓòÉΓòÉΓòÉ
  17967.  
  17968. set_notebook_button_size()   Primitive 
  17969.  
  17970. Purpose: Sets the size of the notebook arrow buttons in pixels 
  17971.  
  17972. ____________ 
  17973.  
  17974. Syntax: void set_notebook_button_size(long nbid, short width, short height) 
  17975.  
  17976. ____________ 
  17977.  
  17978. Description: The set_notebook_button_size() function sets the size of the arrow 
  17979. buttons on a notebook dialog box. The arrow buttons are usually located in the 
  17980. lower right corner of the notebook page. The nbid argument contains the id of 
  17981. the notebook dialog box. The width argument contains the new pixel width of the 
  17982. arrow buttons. The height argument contains the new pixel height of the arrow 
  17983. buttons. 
  17984.  
  17985. ____________ 
  17986.  
  17987. Value returned: No value is returned from this function. 
  17988.  
  17989.  
  17990. ΓòÉΓòÉΓòÉ 14.14.17. set_notebook_major_tab_size() ΓòÉΓòÉΓòÉ
  17991.  
  17992. set_notebook_major_tab_size()   Primitive 
  17993.  
  17994. Purpose: Sets the size of the major tabs in pixels 
  17995.  
  17996. ____________ 
  17997.  
  17998. Syntax: void set_notebook_major_tab_size( long nbid, short width, short height) 
  17999.  
  18000. ____________ 
  18001.  
  18002. Description: The set_notebook_major_tab_size() function sets the size of major 
  18003. tabs.  This function affects all major tabs for the notebook dialog box.  Major 
  18004. tabs are usually aligned vertically along the right hand side of the dialog 
  18005. box.  Major tabs can have minor tabs associated with them. The nbid argument 
  18006. contains the id of the notebook dialog box. The width argument contains the new 
  18007. pixel width of the major tabs. The height argument contains the new pixel 
  18008. height of the major tabs. 
  18009.  
  18010. ____________ 
  18011.  
  18012. Value returned: No value is returned from this function. 
  18013.  
  18014.  
  18015. ΓòÉΓòÉΓòÉ 14.14.18. set_notebook_minor_tab_size() ΓòÉΓòÉΓòÉ
  18016.  
  18017. set_notebook_minor_tab_size()   Primitive 
  18018.  
  18019. Purpose: Sets the size of the major tabs in pixels 
  18020.  
  18021. ____________ 
  18022.  
  18023. Syntax: void set_notebook_minor_tab_size(long nbid, short width, short height) 
  18024.  
  18025. ____________ 
  18026.  
  18027. Description: The set_notebook_minor_tab_size() function sets the size of minor 
  18028. tabs.  This function affects all minor tabs for the notebook dialog box.  Minor 
  18029. tabs are always associated with a major tab and are usually aligned 
  18030. horizontally along the bottom of the dialog box.  Minor tabs are only visible 
  18031. when the assocaited major tab is selected. The nbid argument contains the id of 
  18032. the notebook dialog box. The width argument contains the new pixel width of the 
  18033. minor tabs. The height argument contains the new pixel height of the minor 
  18034. tabs. 
  18035.  
  18036. ____________ 
  18037.  
  18038. Value returned: No value is returned from this function. 
  18039.  
  18040.  
  18041. ΓòÉΓòÉΓòÉ 14.14.19. set_notebook_page_dialog() ΓòÉΓòÉΓòÉ
  18042.  
  18043. set_notebook_page_dialog()   Primitive 
  18044.  
  18045. Purpose: Changes the dialog window associated with a notebook page 
  18046.  
  18047. ____________ 
  18048.  
  18049. Syntax: long set_notebook_page_dialog(long nbid, long pageid, long dlgid) 
  18050.  
  18051. ____________ 
  18052.  
  18053. Description: The set_notebook_page_dialog() function changes the dialog window 
  18054. associated with a notebook page. The nbid argument contains the notebook id. 
  18055. The nbid argument must be a valid notebook id returned from the create_notebook 
  18056. functions. The pageid argument contains the page of the notebook to associate 
  18057. to the dialog window.  The pageid argument must be a valid page returned from 
  18058. one of the insert/append notebook functions. The dlgid argument contains the 
  18059. new dialog box to associate with the notebook page.  The dlgid argument must be 
  18060. a valid id returned from one of the create_dialog or create_page functions. 
  18061.  
  18062. ____________ 
  18063.  
  18064. Value returned: Returns TRUE if page was successfully changed, FALSE otherwise. 
  18065.  
  18066.  
  18067. ΓòÉΓòÉΓòÉ 14.14.20. set_notebook_page_stat_text() ΓòÉΓòÉΓòÉ
  18068.  
  18069. set_notebook_page_stat_text()   Primitive 
  18070.  
  18071. Purpose: 
  18072.  
  18073. ____________ 
  18074.  
  18075. Syntax: void use_resource_file(opt string) 
  18076.  
  18077. ____________ 
  18078.  
  18079. Description: 
  18080.  
  18081. ____________ 
  18082.  
  18083. Value returned: 
  18084.  
  18085.  
  18086. ΓòÉΓòÉΓòÉ 14.14.21. set_notebook_page_tab_text() ΓòÉΓòÉΓòÉ
  18087.  
  18088. set_notebook_page_tab_text()   Primitive 
  18089.  
  18090. Purpose: Sets the text displayed on the tab for a notebook page 
  18091.  
  18092. ____________ 
  18093.  
  18094. Syntax: void set_notebook_page_tab_text(long nbid, long pageid, string 
  18095. tab_text) 
  18096.  
  18097. ____________ 
  18098.  
  18099. Description: The set_notebook_page_tab_text() function sets the text displayed 
  18100. on the tabe for a notebook page. The nbid argument contains the notebook id. 
  18101. The nbid argument must be a valid notebook id returned from the create_notebook 
  18102. functions. The pageid argument contains the page of the notebook to whose tab 
  18103. text will be changed.  The pageid argument must be a valid page returned from 
  18104. one of the insert/append notebook functions. 
  18105.  
  18106. ____________ 
  18107.  
  18108. Value returned: This function does not return a value. 
  18109.  
  18110.  
  18111. ΓòÉΓòÉΓòÉ 14.14.22. set_notebook_status_align() ΓòÉΓòÉΓòÉ
  18112.  
  18113. set_notebook_status_align()   Primitive 
  18114.  
  18115. Purpose: Sets the text alignment of the status area in a notebook. 
  18116.  
  18117. ____________ 
  18118.  
  18119. Syntax: void set_notebook_status_align( long nbid, short alignment) 
  18120.  
  18121. ____________ 
  18122.  
  18123. Description: The set_notebook_status_align() function sets the alignment of the 
  18124. status area text at the bottom of the notebook page.  Valid alignment settings 
  18125. are left, right, and center. The nbid argument contains the notebook id. The 
  18126. alignment argument contains the new alignment for the status area text.  Valid 
  18127. values for alignment are: 
  18128.  
  18129. o 0 - left 
  18130. o 1 - center 
  18131. o 2 - right 
  18132.  
  18133. ____________ 
  18134.  
  18135. Value returned: No value is returned from this function. 
  18136.  
  18137.  
  18138. ΓòÉΓòÉΓòÉ 14.14.23. set_notebook_tab_align() ΓòÉΓòÉΓòÉ
  18139.  
  18140. set_notebook_tab_align()   Primitive 
  18141.  
  18142. Purpose: Sets the alignment of notebook tab text 
  18143.  
  18144. ____________ 
  18145.  
  18146. Syntax: void set_notebook_tab_align(long nbid, short alignment) 
  18147.  
  18148. ____________ 
  18149.  
  18150. Description: The set_notebook_tab_align() function sets the alignment of the 
  18151. text displayed in a notebook tab.  The possible alignments are left, center, 
  18152. and right. The nbid argument contains the notebook id. The alignment argument 
  18153. contains the desired alignment for the notebook tab text.  The valid values for 
  18154. alignment are: 
  18155.  
  18156. o 0 - left 
  18157. o 1 - center 
  18158. o 2 - right 
  18159.  
  18160. ____________ 
  18161.  
  18162. Value returned: No value is returned from this function. 
  18163.  
  18164.  
  18165. ΓòÉΓòÉΓòÉ 14.14.24. set_notebook_tab_location() ΓòÉΓòÉΓòÉ
  18166.  
  18167. set_notebook_tab_location()   Primitive 
  18168.  
  18169. Purpose: Sets location of the major tabs 
  18170.  
  18171. ____________ 
  18172.  
  18173. Syntax: void set_notebook_tab_location(long nbid, short loc) 
  18174.  
  18175. ____________ 
  18176.  
  18177. Description: The set_notebook_tab_location() function sets the location of the 
  18178. major tabs.  Minor tabs are adjusted appropriately when the major tab location 
  18179. is changed. Major tabs can be positioned on the left, right, top, or bottom 
  18180. sides of the notebook. The nbid argument contains the id of the notebook dialog 
  18181. box. The type argument contains the type of binder to use.  The type argument 
  18182. must contain one of the following values: 
  18183.  
  18184. o 0 - left 
  18185. o 1 - right 
  18186. o 2 - top 
  18187. o 3 - bottom 
  18188.  
  18189. ____________ 
  18190.  
  18191. Value returned: No value is returned from this function. 
  18192.  
  18193.  
  18194. ΓòÉΓòÉΓòÉ 14.14.25. set_notebook_tab_type() ΓòÉΓòÉΓòÉ
  18195.  
  18196. set_notebook_tab_type()   Primitive 
  18197.  
  18198. Purpose: Sets the style of notebook tabs 
  18199.  
  18200. ____________ 
  18201.  
  18202. Syntax: void set_notebook_tab_type(long nbid, short type) 
  18203.  
  18204. ____________ 
  18205.  
  18206. Description: The set_notebook_tab_type() function sets the style of the tabs 
  18207. contained on the notebook.  The possible styles of tabs are square, rounded, or 
  18208. polygon. The nbid argument contains the id of the notebook dialog box. The type 
  18209. argument contains the style of the tabs.  The type arugument must contain one 
  18210. of the following values: 
  18211.  
  18212. o 0 - square tabs 
  18213. o 1 - rounded tabs 
  18214. o 2 - polygon tabs 
  18215.  
  18216. ____________ 
  18217.  
  18218. Value returned: No value is returned from this function. 
  18219.  
  18220.  
  18221. ΓòÉΓòÉΓòÉ 14.14.26. settings_notebook() ΓòÉΓòÉΓòÉ
  18222.  
  18223. settings_notebook()   PEL 
  18224.  
  18225. Purpose:  Display the settings notebook 
  18226.  
  18227. ____________ 
  18228.  
  18229. Syntax:   void settings_notebook() 
  18230.  
  18231. ____________ 
  18232.  
  18233. Arguments: none. 
  18234.  
  18235. Description: The settings_notebook() function displays the settings notebook. 
  18236. Many of the editor can be viewed and set in the settings notebook. 
  18237.  
  18238. ____________ 
  18239.  
  18240. Value returned: none. 
  18241.  
  18242.  
  18243. ΓòÉΓòÉΓòÉ 14.14.27. turnto_notebook_page() ΓòÉΓòÉΓòÉ
  18244.  
  18245. turnto_notebook_page()   Primitive 
  18246.  
  18247. Purpose: Brings a notebook page to the top of the notebook 
  18248.  
  18249. ____________ 
  18250.  
  18251. Syntax: void turnto_notebook_page(long nbid, long pagid) 
  18252.  
  18253. ____________ 
  18254.  
  18255. Description: The turnto_notebook_page() function brings a notebook page to the 
  18256. top of the notebook. The nbid argument contains the notebook id.  The nbid 
  18257. argument must be a valid notebook id returned from the create_notebook 
  18258. functions. The pageid argument contains the page of the notebook to delete. The 
  18259. pageid argument must be a valid page returned from one of the insert/append 
  18260. notebook functions. 
  18261.  
  18262. ____________ 
  18263.  
  18264. Value returned: No value is returned from this function. 
  18265.  
  18266.  
  18267. ΓòÉΓòÉΓòÉ 14.15. PEL Programming ΓòÉΓòÉΓòÉ
  18268.  
  18269. The Programming and PEL category contains primarily the variables and functions 
  18270. inherited from PEL.  This category is augmented by several functions that 
  18271. assist in the programming and debugging of extension language programs.  Many 
  18272. of these functions and variables serve several purposes and therefore are also 
  18273. listed in other categories. 
  18274.  
  18275. Among the functions and variables unique to this category are the AWK print() 
  18276. function and the OFS and ORS variables provided for its sole use.  The print() 
  18277. function outputs a list of arguments to the standard output device. The OFS 
  18278. string or Output Field Separator is sent to the output device between each pair 
  18279. of arguments given to the print() function.  Each call to print() ends with the 
  18280. ORS string or Output Record Separator being sent to the device. 
  18281.  
  18282. Another variable unique to this category is the SUBSEP variable.  PEL uses it 
  18283. when simulating multidimensional arrays using the single dimension arrays 
  18284. provided.  You access the elements of these additional dimensions by using the 
  18285. split() function, supplying the SUBSEP variable as an argument. 
  18286.  
  18287. The function_caller(), function_id() and function_name() routines provide some 
  18288. assistance in tracing the progress of your functions.  However, they are also 
  18289. useful in controlling program flow and translating between the two methods of 
  18290. functions:  by numeric id and by name string. 
  18291.  
  18292. Another function useful in determining program flow is argcount().  It may be 
  18293. desirable for your function to take different actions depending on how many 
  18294. arguments have been passed to it.  The argcount() function gives you a method 
  18295. of determining how many arguments have been passed from any given function 
  18296. call. The number of arguments passed may often be determined by other means. 
  18297. Arguments that have been omitted will receive a value of 0 or will be an empty 
  18298. string. If, however, 0 or an empty string is an acceptable value for the 
  18299. argument, then argcount() provides the only method of determining the number of 
  18300. arguments passed. 
  18301.  
  18302. Although you will find descriptions of the sub() and gsub() functions in the 
  18303. "String Manipulation" chapter, it is worth mentioning again that these are the 
  18304. only functions in AWK that  modify any of their arguments.  Since there are no 
  18305. pointers in AWK, all arguments to functions are passed by value rather than by 
  18306. passing a pointer to the actual variable.  This means that a function cannot 
  18307. modify the original variable because it doesn't know where the variable is.  It 
  18308. only has the value contained in the variable.  Nonetheless, the sub() and 
  18309. gsub() functions do modify the string argument they receive.  Reportedly this 
  18310. is done by magic, however, you are free to suspect cheating. 
  18311.  
  18312. argcount() 
  18313.           Reports the number of arguments passed to the current function. 
  18314. ctags_make() 
  18315.           Creates a C language tags file from C source code. 
  18316. display_array() 
  18317.           To display the contents of an array in a selection dialog. 
  18318. execute_auto() 
  18319.           To call a function with the word at the current cursor location as a 
  18320.           parameter. 
  18321. expand_template() 
  18322.           Expand a template if one can be located at or near the cursor. 
  18323. expand_template_key() 
  18324.           Expand symbol near cursor if possible 
  18325. function_caller() 
  18326.           Reports the name of the calling function. 
  18327. function_id() 
  18328.           Reports the id associated with a function name. 
  18329. function_name() 
  18330.           Reports the name associated with a function id. 
  18331. goto_matching() 
  18332.           To move the cursor to the symbol matching the symbol at the current 
  18333.           cursor location. 
  18334. mark_matching() 
  18335.           To highlight the region between the symbol at the cursor and its 
  18336.           matching pair. 
  18337. mark_matching_next() 
  18338.           To highlight the region between the next two matching symbols. 
  18339. next_field_key() 
  18340.           Moves the cursor to the next field of the template. 
  18341. nop() 
  18342.           Provides a method of assigning no task to a table entry. 
  18343. optional_function() 
  18344.           To call a specified function with parameters if that function exists, 
  18345.           otherwise fail without raising an error. 
  18346. pe() 
  18347.           Toggles pausing between messages. 
  18348. peltags() 
  18349.           To locate the pel source code for a specified symbol. 
  18350. peltags_auto() 
  18351.           To locate the pel source code for the symbol at the current cursor 
  18352.           position. 
  18353. peltags_make() 
  18354.           To create a .tag file for the pel source code. 
  18355. remove_expand_template_key() 
  18356.           To remove a key currently assigned to perform template expansion. 
  18357. remove_next_field_key() 
  18358.           To remove a key currently assigned to perform template field 
  18359.           advancement. 
  18360. set_environment() 
  18361.           Set an environment variable to the specified value. 
  18362. set_expand_template_key() 
  18363.           To assign the key for which template expansion occurs. 
  18364. set_next_field_key() 
  18365.           To assign the key which advances to the next field of a template. 
  18366. split() 
  18367.           Create an array from a string. 
  18368. tags() 
  18369.           To search through the tags files in tags_path for a symbol 
  18370. tags_auto() 
  18371.           To search through the tags files in tags_path for the word at the 
  18372.           current cursor position. 
  18373. toggle_electric() 
  18374.           Toggles template expansion on or off. 
  18375. typeof() 
  18376.           Reports the data type of a variable in string form. 
  18377.  
  18378.  
  18379. ΓòÉΓòÉΓòÉ 14.15.1. argcount() ΓòÉΓòÉΓòÉ
  18380.  
  18381. argcount()   Primitive 
  18382.  
  18383. Purpose:  Reports the number of arguments passed to the current function. 
  18384.  
  18385. ____________ 
  18386.  
  18387. Syntax:  int argcount() 
  18388.  
  18389. ____________ 
  18390.  
  18391. Description: The argcount() function tells how many arguments were actually 
  18392. passed to the function currently executing.  This function enhances the ability 
  18393. to write PEL functions that can accept a variable number of arguments. 
  18394.  
  18395. If arguments are omitted when calling a function the values the function 
  18396. receives for these arguments will be 0 or an empty string.  In some cases it is 
  18397. useful to distinguish an omitted argument from one that was supplied as one of 
  18398. these values. The argcount function provides a method of doing this. 
  18399.  
  18400. ____________ 
  18401.  
  18402. Value returned: 
  18403.  
  18404. The value returned by the argcount() function is the number of arguments 
  18405. supplied in the function call to the current function. 
  18406.  
  18407.  
  18408. ΓòÉΓòÉΓòÉ 14.15.2. ctags_make() ΓòÉΓòÉΓòÉ
  18409.  
  18410. ctags_make()   PEL 
  18411.  
  18412. Purpose:  Creates a C language tags file from C source code. 
  18413.  
  18414. ____________ 
  18415.  
  18416. Syntax:   void ctags_make(str listOfFiles, str extraString) 
  18417.  
  18418. ____________ 
  18419.  
  18420. Arguments: 
  18421.  
  18422. listOfFile - space separated list of files. 
  18423.  
  18424. extraString - string which validates a function definition. 
  18425.  
  18426. Description: The ability to quickly view function definitions and constant 
  18427. #defines in C and C++ is invaluable for any software developer.  This function 
  18428. will parse C and C++ source code files for function names, #defines, typedefs, 
  18429. structure definitions and class declarations, and then save all of these 
  18430. symbols and their locations in a file named ctags.tag.  Later, when you wish to 
  18431. view the source code for any one of these symbols, you simply call the function 
  18432. tags() with the name of the symbol as a parameter, or call tags_auto() with 
  18433. your cursor placed on the symbol, and the appropriate file will be loaded with 
  18434. the source code visible. 
  18435.  
  18436. When you run ctags_make(), it will report the date that the tags file was last 
  18437. updated, and will prompt you for the extensions of the files you wish to parse. 
  18438.  
  18439. The editor's current working directory must be the directory you wish to create 
  18440. the .tag file for, so you will probably want to call cd() first. 
  18441.  
  18442. Note:  parsing source files takes a long time, so be prepared to let the editor 
  18443. run in the background for a while until it is done parsing.  It will beep to 
  18444. let you know it is done. 
  18445.  
  18446. ____________ 
  18447.  
  18448. ____________ 
  18449.  
  18450. Value returned:  None. 
  18451.  
  18452.  
  18453. ΓòÉΓòÉΓòÉ 14.15.3. display_array() ΓòÉΓòÉΓòÉ
  18454.  
  18455. display_array()   PEL 
  18456.  
  18457. Purpose:  To display the contents of an array in a selection dialog. 
  18458.  
  18459. ____________ 
  18460.  
  18461. Syntax:   display_array( array the_array, [str name] ) 
  18462.  
  18463. ____________ 
  18464.  
  18465. Arguments: 
  18466.  
  18467. o the_array - the array to display 
  18468. o name    - name to use in the dialog title 
  18469.  
  18470. Description: 
  18471.  
  18472. ____________ 
  18473.  
  18474. Value returned:  none 
  18475.  
  18476.  
  18477. ΓòÉΓòÉΓòÉ 14.15.4. execute_auto() ΓòÉΓòÉΓòÉ
  18478.  
  18479. execute_auto()   PEL 
  18480.  
  18481. Purpose:  To call a function with the word at the current cursor location as a 
  18482. parameter. 
  18483.  
  18484. ____________ 
  18485.  
  18486. Syntax:   execute_auto( str fun, [regex symbol_regex] ) 
  18487.  
  18488. ____________ 
  18489.  
  18490. Arguments: 
  18491.  
  18492. o fun      - function to call 
  18493. o symbol_regex - definition of a word, optional 
  18494.  
  18495. Description: There are many useful pel functions such as search and grep which 
  18496. take a string as a parameter to perform an operation on. As often-used utility 
  18497. functions, the user might like to call these functions from an assigned 
  18498. keystroke, and will often want to perform the function's operation on either 
  18499. the current selected block or on the word at the current cursor location. 
  18500. execute_auto() will call the specified function with one parameter: the text 
  18501. currenty highlighted, or if nothing is highlighted, the word at the current 
  18502. cursor location.  For example:  assign_key( "<F10>", "execute_auto grep" ) 
  18503. causes the F10 key to, in effect, be assigned to grep() with either the 
  18504. highlighted block or the current word as a parameter. 
  18505.  
  18506. ____________ 
  18507.  
  18508. Value returned: If successful, execute_auto() returns the value returned by the 
  18509. function it calls.  If no function was specified, it returns either the text 
  18510. currently selected or the word at the cursor location.  If no text is selected 
  18511. and a word cannot be found at the current cursor location, a warning message is 
  18512. displayed and FALSE is returned. 
  18513.  
  18514.  
  18515. ΓòÉΓòÉΓòÉ 14.15.5. expand_template() ΓòÉΓòÉΓòÉ
  18516.  
  18517. expand_template()   PEL 
  18518.  
  18519. Purpose:  Expand a template if one can be located at or near the cursor. 
  18520.  
  18521. ____________ 
  18522.  
  18523. Syntax:   int expand_template( int noError ) 
  18524.  
  18525. ____________ 
  18526.  
  18527. Arguments: 
  18528.  
  18529. o noError - flag indicating whether the error mesages should be displayed 
  18530.  
  18531. Description: The expand_template() function looks at the symbol under the 
  18532. cursor and tries to expand it.  The template it uses is based on the extension 
  18533. and can be set on the extensions page of the notebook.  To use this function, 
  18534. the editor must be in electric_mode. 
  18535.  
  18536. ____________ 
  18537.  
  18538. Value returned: 
  18539.  
  18540. TRUE - template successfully expanded 
  18541.  
  18542. FALSE - template not expanded 
  18543.  
  18544.  
  18545. ΓòÉΓòÉΓòÉ 14.15.6. expand_template_key() ΓòÉΓòÉΓòÉ
  18546.  
  18547. expand_template_key()   PEL 
  18548.  
  18549. Purpose:  Expand symbol near cursor if possible 
  18550.  
  18551. ____________ 
  18552.  
  18553. Syntax:   void expand_template_key() 
  18554.  
  18555. ____________ 
  18556.  
  18557. Arguments: none 
  18558.  
  18559. Description: expand_template_key() expands the symbol near the cursor if 
  18560. possible, but if it can not be expanded, the default action of the "key" is 
  18561. taken.  The "key" is the keystroke combination used to invoke the function. 
  18562.  
  18563. ____________ 
  18564.  
  18565. Value returned: none 
  18566.  
  18567.  
  18568. ΓòÉΓòÉΓòÉ 14.15.7. function_caller() ΓòÉΓòÉΓòÉ
  18569.  
  18570. function_caller()   Primitive 
  18571.  
  18572. Purpose: Reports the name of the calling function. 
  18573.  
  18574. ____________ 
  18575.  
  18576. Syntax:  str function_caller() 
  18577.  
  18578. ____________ 
  18579.  
  18580. Description: The function_caller() function tells which function, by name, 
  18581. called the function currently executing.  It is primarily used to select 
  18582. between courses of action, often depending on whether the function was invoked 
  18583. from the keyboard or not. 
  18584.  
  18585. ____________ 
  18586.  
  18587. Value returned: 
  18588.  
  18589. The value returned by function_caller() is a string containing the name of the 
  18590. invoking function.  If the function was called from the keyboard it returns the 
  18591. string "Keyboard".  If called by an internal primitive rather than a PEL 
  18592. function, the string returned is "Primitive". 
  18593.  
  18594.  
  18595. ΓòÉΓòÉΓòÉ 14.15.8. function_id() ΓòÉΓòÉΓòÉ
  18596.  
  18597. function_id()   Primitive 
  18598.  
  18599. Purpose: Reports the id associated with a function name. 
  18600.  
  18601. ____________ 
  18602.  
  18603. Syntax:  funcid function_id(any function [, any arg2 ... [, any. arg5]]) 
  18604.  
  18605. ____________ 
  18606.  
  18607. Description: The function_id() function provides a method of discovering the 
  18608. numeric id associated with a function.  The function is specified by named in 
  18609. the function argument. 
  18610.  
  18611. In addition, this function provides access to an advanced the editor 
  18612. programming feature called "anonymous functions".  These are transient 
  18613. functions that provide a programming short-cut.  These functions do not appear 
  18614. in the source code as functions. They are essentially other existing functions 
  18615. called with a defined set of constant arguments. 
  18616.  
  18617. You might write a function to create a certain size window in the following 
  18618. conventional manner: function my_window {   create_window(5,5,20,70) }  You may 
  18619. alternately use function_id() to obtain the function id of such a function 
  18620. without ever writing it: 
  18621.  
  18622. fid = function_id("create_window 5 5 20 70") 
  18623.  
  18624. This is the method used internally for several features, including assigning to 
  18625. keys functions that require arguments. This use of function_id() sometimes 
  18626. requires supplying additional arguments to function_id().  This is freely 
  18627. allowed. The above example could also be written: 
  18628.  
  18629. fid = function_id("create_window",5,5,20,70) 
  18630.  
  18631. ____________ 
  18632.  
  18633. Value returned: 
  18634.  
  18635. The value returned by the function_id() function is the corresponding function 
  18636. id if the function has been defined. Otherwise, the function returns a zero 
  18637. value. 
  18638.  
  18639.  
  18640. ΓòÉΓòÉΓòÉ 14.15.9. function_name() ΓòÉΓòÉΓòÉ
  18641.  
  18642. function_name()   Primitive 
  18643.  
  18644. Purpose: Reports the name associated with a function id. 
  18645.  
  18646. ____________ 
  18647.  
  18648. Syntax:  str function_name(funcid id) 
  18649.  
  18650. ____________ 
  18651.  
  18652. Description: The function_name() function provides a method of discovering the 
  18653. name of a function associated with a numeric function id.  The function id is 
  18654. specified in the id argument. 
  18655.  
  18656. ____________ 
  18657.  
  18658. Value returned: 
  18659.  
  18660. The value returned by the function_name() function is a string containing the 
  18661. name of the function if it has been defined. Otherwise, the function returns an 
  18662. empty string. 
  18663.  
  18664.  
  18665. ΓòÉΓòÉΓòÉ 14.15.10. goto_matching() ΓòÉΓòÉΓòÉ
  18666.  
  18667. goto_matching()   PEL 
  18668.  
  18669. Purpose:  To move the cursor to the symbol matching the symbol at the current 
  18670. cursor location. 
  18671.  
  18672. ____________ 
  18673.  
  18674. Syntax:   goto_matching() 
  18675.  
  18676. ____________ 
  18677.  
  18678. Arguments:  none 
  18679.  
  18680. Description: When trying to locate the source of a syntax error, oftentimes it 
  18681. can be difficult to detect unbalanced parentheses or braces in the C language, 
  18682. begin and end in PASCAL, etc.  This function automates the process of finding 
  18683. these matching pairs.  If you place the cursor on one of the defined matching 
  18684. pairs, calling this function will move the cursor to the location of its 
  18685. matching symbol. 
  18686.  
  18687. See also:  matching_pairs 
  18688.  
  18689. ____________ 
  18690.  
  18691. Value returned: 
  18692.  
  18693. TRUE  -  success 
  18694.  
  18695. FALSE -  failure, either not on a valid symbol, or there is an unbalanced pair 
  18696.  
  18697.  
  18698. ΓòÉΓòÉΓòÉ 14.15.11. mark_matching() ΓòÉΓòÉΓòÉ
  18699.  
  18700. mark_matching()   PEL 
  18701.  
  18702. Purpose:  To highlight the region between the symbol at the cursor and its 
  18703. matching pair. 
  18704.  
  18705. ____________ 
  18706.  
  18707. Syntax:   mark_matching() 
  18708.  
  18709. ____________ 
  18710.  
  18711. Arguments:  none 
  18712.  
  18713. Description: When trying to locate the source of a syntax error, oftentimes it 
  18714. can be difficult to detect unbalanced parentheses or braces in the C language, 
  18715. begin and end in PASCAL, etc.  This function automates the process of finding 
  18716. these matching pairs.  If you place the cursor on one of the defined matching 
  18717. pairs, calling this function will highlight the text between the current symbol 
  18718. and its matching symbol. 
  18719.  
  18720. See also:  matching_pairs 
  18721.  
  18722. ____________ 
  18723.  
  18724. Value returned: 
  18725.  
  18726. TRUE  -  successful 
  18727.  
  18728. FALSE -  failure, either not on a valid symbol or could not find the matching 
  18729. pair 
  18730.  
  18731.  
  18732. ΓòÉΓòÉΓòÉ 14.15.12. mark_matching_next() ΓòÉΓòÉΓòÉ
  18733.  
  18734. mark_matching_next()   PEL 
  18735.  
  18736. Purpose:  To highlight the region between the next two matching symbols. 
  18737.  
  18738. ____________ 
  18739.  
  18740. Syntax:   mark_matching_next() 
  18741.  
  18742. ____________ 
  18743.  
  18744. Arguments:  none 
  18745.  
  18746. Description: This function will search forward for the next occurance of one of 
  18747. the defined matching pairs, and then highlight the region between it and its 
  18748. own matching symbol. 
  18749.  
  18750. See also:  matching_pairs 
  18751.  
  18752. ____________ 
  18753.  
  18754. Value returned:  none 
  18755.  
  18756.  
  18757. ΓòÉΓòÉΓòÉ 14.15.13. next_field_key() ΓòÉΓòÉΓòÉ
  18758.  
  18759. next_field_key()   PEL 
  18760.  
  18761. Purpose:  Moves the cursor to the next field of the template. 
  18762.  
  18763. ____________ 
  18764.  
  18765. Syntax:   void next_field_key() 
  18766.  
  18767. ____________ 
  18768.  
  18769. Arguments: none. 
  18770.  
  18771. Description: The next_field_key() function looks forward in the buffer to find 
  18772. the next field of the expanded template.  If one is not found, the default 
  18773. action of the key pressed is taken. 
  18774.  
  18775. ____________ 
  18776.  
  18777. Value returned: none. 
  18778.  
  18779.  
  18780. ΓòÉΓòÉΓòÉ 14.15.14. nop() ΓòÉΓòÉΓòÉ
  18781.  
  18782. nop()   Primitive 
  18783.  
  18784. Purpose: Provides a method of assigning no task to a table entry. 
  18785.  
  18786. ____________ 
  18787.  
  18788. Syntax: void nop() 
  18789.  
  18790. ____________ 
  18791.  
  18792. Description: The nop() function does nothing.  It does this as quickly and 
  18793. quietly as possible. 
  18794.  
  18795. This function is primarily used for assignment to keys in a keymap or other 
  18796. table where a function must be specified but no action is desired.  For 
  18797. example, when the nop() function has been assigned to a key, nothing happens 
  18798. when that key is depressed. 
  18799.  
  18800. ____________ 
  18801.  
  18802. Value returned: No value is returned by this function. 
  18803.  
  18804.  
  18805. ΓòÉΓòÉΓòÉ 14.15.15. optional_function() ΓòÉΓòÉΓòÉ
  18806.  
  18807. optional_function()   PEL 
  18808.  
  18809. Purpose:  To call a specified function with parameters if that function exists, 
  18810. otherwise fail without raising an error. 
  18811.  
  18812. ____________ 
  18813.  
  18814. Syntax:   optional_function( str fn_name, [any arg1,... [any arg5]] ) 
  18815.  
  18816. ____________ 
  18817.  
  18818. Arguments: 
  18819.  
  18820. o fn_name - name of the function to call 
  18821. o arg1   - first argument to the function 
  18822. o arg2   - second argument to the function 
  18823. o arg3   - third argument to the function 
  18824. o arg4   - fourth argument to the function 
  18825. o arg5   - fifth argument to the function 
  18826.  
  18827. Description: This function is used to add optional "packages" to the editor. 
  18828. Normally you would get a pel compiler error if one pel file called a function 
  18829. from another pel file that was not compiled into the .ae file. However, in the 
  18830. case of the settings notebook, we wanted to give the user to option of 
  18831. compiling in certain pel files or not.  So, in order to create optional pages 
  18832. in the notebook, such as the extension page, we used optional_function() to 
  18833. create that page.  If the function to create the page was in the .ae file, then 
  18834. fine, the page appears in the notebook. If not, then fine, you chose not to use 
  18835. those features of the editor. 
  18836.  
  18837. ____________ 
  18838.  
  18839. Value returned: If the fn_name function exists, the value returned is the value 
  18840. returned by calling that function.  Otherwise, FALSE is returned. 
  18841.  
  18842.  
  18843. ΓòÉΓòÉΓòÉ 14.15.16. pe() ΓòÉΓòÉΓòÉ
  18844.  
  18845. pe()   PEL 
  18846.  
  18847. Purpose: Toggles pausing between messages. 
  18848.  
  18849. ____________ 
  18850.  
  18851. Syntax: void pe([int on]) 
  18852.  
  18853. ____________ 
  18854.  
  18855. Description: pe() is a tersely named function to modify the pause_on_error 
  18856. variable, suitable for executing through the PEL interpreter ( ).  When the on 
  18857. argument is omitted, this function toggles pausing between error messages to 
  18858. its opposite condition. When the argument is supplied, a zero value turns 
  18859. pausing off, while other values turn pausing on. 
  18860.  
  18861. ____________ 
  18862.  
  18863. Value returned: No useful value is returned by this function. 
  18864.  
  18865.  
  18866. ΓòÉΓòÉΓòÉ 14.15.17. peltags() ΓòÉΓòÉΓòÉ
  18867.  
  18868. peltags()   PEL 
  18869.  
  18870. Purpose:  To locate the pel source code for a specified symbol. 
  18871.  
  18872. ____________ 
  18873.  
  18874. Syntax:   peltags( str symbol ) 
  18875.  
  18876. ____________ 
  18877.  
  18878. Arguments: 
  18879.  
  18880. o symbol - the symbol to find the source code for 
  18881.  
  18882. Description: This function operates similarly to ctags(), and will find the 
  18883. declarations of pel variables and functions. 
  18884.  
  18885. See also:  peltags_make(), peltags_auto() 
  18886.  
  18887. ____________ 
  18888.  
  18889. Value returned: 
  18890.  
  18891. TRUE  -  success, found the source code for the symbol 
  18892.  
  18893. FALSE -  failure, could not find source for the symbol 
  18894.  
  18895.  
  18896. ΓòÉΓòÉΓòÉ 14.15.18. peltags_auto() ΓòÉΓòÉΓòÉ
  18897.  
  18898. peltags_auto()   PEL 
  18899.  
  18900. Purpose:  To locate the pel source code for the symbol at the current cursor 
  18901. position. 
  18902.  
  18903. ____________ 
  18904.  
  18905. Syntax:   peltags_auto() 
  18906.  
  18907. ____________ 
  18908.  
  18909. Arguments:  none 
  18910.  
  18911. Description: 
  18912.  
  18913. See also:  peltags(), peltags_make() 
  18914.  
  18915. ____________ 
  18916.  
  18917. Value returned: 
  18918.  
  18919. TRUE  -  success, found the source code for the symbol 
  18920.  
  18921. FALSE -  failure, could not find source for the symbol 
  18922.  
  18923.  
  18924. ΓòÉΓòÉΓòÉ 14.15.19. peltags_make() ΓòÉΓòÉΓòÉ
  18925.  
  18926. peltags_make()   PEL 
  18927.  
  18928. Purpose:  To create a .tag file for the pel source code. 
  18929.  
  18930. ____________ 
  18931.  
  18932. Syntax:   peltags_make() 
  18933.  
  18934. ____________ 
  18935.  
  18936. Arguments:  none 
  18937.  
  18938. Description: This function operates similarly to ctags_make(), and will create 
  18939. a file called peltags.tag that contains the locations of all pel functions and 
  18940. variables.  Note:  Parsing all of the pel source takes quite a while. Leave the 
  18941. function running in the background while you do other work; it will beep to 
  18942. tell you it is done.  Note2: This function operates on the current working 
  18943. directory, so be sure to chdir() to the pel source directory before calling 
  18944. this function. 
  18945.  
  18946. See also:  peltags(), peltags_auto() 
  18947.  
  18948. ____________ 
  18949.  
  18950. Value returned:  none 
  18951.  
  18952.  
  18953. ΓòÉΓòÉΓòÉ 14.15.20. remove_expand_template_key() ΓòÉΓòÉΓòÉ
  18954.  
  18955. remove_expand_template_key()   PEL 
  18956.  
  18957. Purpose:  To remove a key currently assigned to perform template expansion. 
  18958.  
  18959. ____________ 
  18960.  
  18961. Syntax:   remove_expand_template_key( str key ) 
  18962.  
  18963. ____________ 
  18964.  
  18965. Arguments: 
  18966.  
  18967. o key - the key you no longer wish to perform template expansion 
  18968.  
  18969. Description: If you are using template expansion but do not like the default 
  18970. expansion key, you can use this function to restore that key's normal behavior. 
  18971. For example, if you remove the default expand template key <Space> with this 
  18972. function, it will revert to operating as a space bar. 
  18973.  
  18974. ____________ 
  18975.  
  18976. Value returned:  none 
  18977.  
  18978.  
  18979. ΓòÉΓòÉΓòÉ 14.15.21. remove_next_field_key() ΓòÉΓòÉΓòÉ
  18980.  
  18981. remove_next_field_key()   PEL 
  18982.  
  18983. Purpose:  To remove a key currently assigned to perform template field 
  18984. advancement. 
  18985.  
  18986. ____________ 
  18987.  
  18988. Syntax:   remove_next_field_key( str key ) 
  18989.  
  18990. ____________ 
  18991.  
  18992. Arguments: 
  18993.  
  18994. o key - the key you no longer wish to perform template field advancement. 
  18995.  
  18996. Description: If you are using template expansion but do not like the default 
  18997. next field key, you can use this function to restore that key's normal 
  18998. behavior.  For example, if you remove the default next field key <Enter> with 
  18999. this function, it will revert to operating as an ente key. 
  19000.  
  19001. ____________ 
  19002.  
  19003. Value returned:  none 
  19004.  
  19005.  
  19006. ΓòÉΓòÉΓòÉ 14.15.22. set_environment() ΓòÉΓòÉΓòÉ
  19007.  
  19008. set_environment()   PEL 
  19009.  
  19010. Purpose:  Set an environment variable to the specified value. 
  19011.  
  19012. ____________ 
  19013.  
  19014. Syntax:   void set_environment(str env_var, any value) 
  19015.  
  19016. ____________ 
  19017.  
  19018. Arguments: 
  19019.  
  19020. o env_var - environment variable to change 
  19021. o value - new value of the environment variable 
  19022.  
  19023. Description: The set_environment() function allows the user to set system 
  19024. environment variables from within the editor.  The variable passed as the first 
  19025. parameter will have the value of the second parameter after this is called. 
  19026.  
  19027. ____________ 
  19028.  
  19029. Value returned: none. 
  19030.  
  19031.  
  19032. ΓòÉΓòÉΓòÉ 14.15.23. set_expand_template_key() ΓòÉΓòÉΓòÉ
  19033.  
  19034. set_expand_template_key()   PEL 
  19035.  
  19036. Purpose:  To assign the key for which template expansion occurs. 
  19037.  
  19038. ____________ 
  19039.  
  19040. Syntax:   set_expand_template_key( str key ) 
  19041.  
  19042. ____________ 
  19043.  
  19044. Arguments: 
  19045.  
  19046. o key - the keyname to assign template expansion to. 
  19047.  
  19048. Description: When you enable template expansion, a default key is assigned to 
  19049. perform the expansion.  However, you may wish to choose a different or 
  19050. additional key for this purpose.  This function will enable template expansion 
  19051. for the key you specify, and will keep track of the function previously bound 
  19052. to that key. When you press the key it will expand a template if you have typed 
  19053. an abbreviation, and otherwise will call the old function.  In other words, 
  19054. when there is a template to be expanded, it will expand it, and if not then the 
  19055. key will behave as it did before.  For example, if you assign the tab key to do 
  19056. template expansion:  set_expand_template_key( "<Tab>" )  The tab key will 
  19057. expand defined template abreviations, but will function as a tab key otherwise. 
  19058.  
  19059. ____________ 
  19060.  
  19061. Value returned:  none 
  19062.  
  19063.  
  19064. ΓòÉΓòÉΓòÉ 14.15.24. set_next_field_key() ΓòÉΓòÉΓòÉ
  19065.  
  19066. set_next_field_key()   PEL 
  19067.  
  19068. Purpose:  To assign the key which advances to the next field of a template. 
  19069.  
  19070. ____________ 
  19071.  
  19072. Syntax:   set_next_field_key( str key ) 
  19073.  
  19074. ____________ 
  19075.  
  19076. Arguments: 
  19077.  
  19078. o key - The key to make "the next field key" 
  19079.  
  19080. Description: When you enable template expansion, a default key is assigned to 
  19081. advance to the next field of a template.  However, you may wish to choose a 
  19082. different or additional key for this purpose. This function will enable field 
  19083. advancement for the key you specify, and will keep track of the function 
  19084. previously bound to that key.  When you press the key it will advance to the 
  19085. next field of the current template, or if there is no current template, it will 
  19086. call the old function.  In other words, when there is a field to advance to, it 
  19087. will advance to it, and if not then the key will behave as it did before.  For 
  19088. example, if you assign the tab key to do field advancement: 
  19089. set_next_field_key( "<Tab>" )  The tab key will expand defined template 
  19090. abreviations, but will function as a tab key otherwise. 
  19091.  
  19092. ____________ 
  19093.  
  19094. Value returned:  none 
  19095.  
  19096.  
  19097. ΓòÉΓòÉΓòÉ 14.15.25. split() ΓòÉΓòÉΓòÉ
  19098.  
  19099. split()   Primitive 
  19100.  
  19101. Purpose: Create an array from a string. 
  19102.  
  19103. ____________ 
  19104.  
  19105. Syntax: int split(str st, array arr [, str fs]) 
  19106.  
  19107. ____________ 
  19108.  
  19109. Description: The split() function makes an AWK array by breaking up the st 
  19110. argument into fields.  Each of these fields then becomes an element of the 
  19111. array arr. Each element of the array is sequentially subscripted with numeric 
  19112. strings. 
  19113.  
  19114. The fs argument specifies a field separator, which character or characters 
  19115. determines where one field ends and the next begins.  If the argument is 
  19116. omitted, the value of the FS variable will be used as a separator.  By default, 
  19117. FS is a space. 
  19118.  
  19119. EXAMPLE 
  19120.  
  19121. split("11:53:45",timeArr,":") 
  19122.  
  19123. In the resulting array, 
  19124.  
  19125.   timeArr[1] == "11"
  19126.   timeArr[2] == "53"
  19127.   timeArr[3] == "45"
  19128.  
  19129. ____________ 
  19130.  
  19131. Value returned: The value returned by split() is the number of elements added 
  19132. to the array. 
  19133.  
  19134.  
  19135. ΓòÉΓòÉΓòÉ 14.15.26. tags() ΓòÉΓòÉΓòÉ
  19136.  
  19137. tags()   PEL 
  19138.  
  19139. Purpose:  To search through the tags files in tags_path for a symbol 
  19140.  
  19141. ____________ 
  19142.  
  19143. Syntax:   tags( str symbol ) 
  19144.  
  19145. ____________ 
  19146.  
  19147. Arguments: 
  19148.  
  19149. o symbol - the symbol to search for 
  19150.  
  19151. Description: This function searches through the files specified in the 
  19152. tags_path variable for the functions and variable locations stored in the ┬╖tag 
  19153. files.  If it finds the symbol, it loads the file tagged, and moves the cursor 
  19154. to the location of the symbol, usually a function or variable definition. 
  19155.  
  19156. See also:  tags_auto(), ctags_make(), peltags_make(), peltags(), peltags_auto() 
  19157.  
  19158. ____________ 
  19159.  
  19160. Value returned: 
  19161.  
  19162. TRUE  -  the symbol was found 
  19163.  
  19164. FALSE -  the symbol was not found 
  19165.  
  19166.  
  19167. ΓòÉΓòÉΓòÉ 14.15.27. tags_auto() ΓòÉΓòÉΓòÉ
  19168.  
  19169. tags_auto()   PEL 
  19170.  
  19171. Purpose:  To search through the tags files in tags_path for the word at the 
  19172. current cursor position. 
  19173.  
  19174. ____________ 
  19175.  
  19176. Syntax:   tags_auto() 
  19177.  
  19178. ____________ 
  19179.  
  19180. Arguments:  none 
  19181.  
  19182. Description: This function searches through the files specified in the 
  19183. tags_path variable for the functions and variable locations stored in the .tag 
  19184. files.  If it finds the symbol, it loads the file tagged, and moves the cursor 
  19185. to the location of the symbol, usually a function or variable definition. 
  19186.  
  19187. See also:  tags(), ctags_make(), peltags_make(), peltags(), peltags_auto() 
  19188.  
  19189. ____________ 
  19190.  
  19191. Value returned:  the symbol searched for 
  19192.  
  19193.  
  19194. ΓòÉΓòÉΓòÉ 14.15.28. toggle_electric() ΓòÉΓòÉΓòÉ
  19195.  
  19196. toggle_electric()   PEL 
  19197.  
  19198. Purpose: Toggles template expansion on or off. 
  19199.  
  19200. ____________ 
  19201.  
  19202. Syntax: void toggle_electric([int on]) 
  19203.  
  19204. ____________ 
  19205.  
  19206. Description: The toggle_electric() function toggles the state of PREDITOR/2's 
  19207. code processing package, sometimes called the "electric" package.  This package 
  19208. provides assistance with programming-language-specific tasks.  These tasks 
  19209. include construct template and pair matching. 
  19210.  
  19211. The optional force argument allows you to force the code processing to the 
  19212. condition you desire.  If the force argument is non-zero (TRUE), this feature 
  19213. is turned on regardless of its previous condition. If force is zero, this 
  19214. feature is always turned off. 
  19215.  
  19216. By default, code processing package is off.  It may, however, be turned on by 
  19217. the emulation mode you have selected.  The code processing package is described 
  19218. more fully in Appendix B of Part One of this manual. 
  19219.  
  19220. This function has a synonym, ╨ÿ.  A very short name has been selected for this 
  19221. synonym to facilitate its execution interactively.  This is done through 
  19222. execute_function(), which in standard keymaps is available by pressing the 
  19223. key. 
  19224.  
  19225. ____________ 
  19226.  
  19227. Value returned: No useful value is returned by this function. 
  19228.  
  19229.  
  19230. ΓòÉΓòÉΓòÉ 14.15.29. typeof() ΓòÉΓòÉΓòÉ
  19231.  
  19232. typeof()   Primitive 
  19233.  
  19234. Purpose: Reports the data type of a variable in string form. 
  19235.  
  19236. ____________ 
  19237.  
  19238. Syntax: str typeof(any arg) 
  19239.  
  19240. ____________ 
  19241.  
  19242. Description: The typeof() function tells the type or class of variable that has 
  19243. been provided as the arg argument to the function.  This enables a program to 
  19244. test a variable before passing it to a function requiring a specific type of 
  19245. argument. 
  19246.  
  19247. ____________ 
  19248.  
  19249. Value returned: The value returned by the typeof() function is one of the 
  19250. following descriptive strings: 
  19251.  
  19252. Descriptive String       Meaning 
  19253. "int"                    A signed integer using <= 32 bits. 
  19254. "string"                 A string of up to 8000 characters. 
  19255. "regular expression"     A string; may contain meta chars. 
  19256. "array"                  Variable w/subscripted elements. 
  19257. "fileid"                 A file handle/descriptor. 
  19258. "bufid"                  A buffer identification number. 
  19259. "keymapid"               A keymap identification number. 
  19260. "winid"                  A window identification number. 
  19261. "functionid"             A function identification number. 
  19262. "uninitialized"          A variable not yet assigned a type. 
  19263.  
  19264. When tested for type, markids are identified as integers.  This allows a mark 
  19265. id to be more readily compared to an integer. 
  19266.  
  19267.  
  19268. ΓòÉΓòÉΓòÉ 14.16. Resources ΓòÉΓòÉΓòÉ
  19269.  
  19270. call_dll 
  19271.           Calls a function from a DLL. 
  19272. get_resource_string() 
  19273.           Retrieves a string stored in a resource file 
  19274. load_module() 
  19275.           Loads a DLL into memory. 
  19276. use_resource_file() 
  19277.           Sets a new resource dll the default 
  19278.  
  19279.  
  19280. ΓòÉΓòÉΓòÉ 14.16.1. call_dll() ΓòÉΓòÉΓòÉ
  19281.  
  19282. call_dll() 
  19283.  
  19284. Purpose: Calls a function from a DLL. 
  19285.  
  19286. ____________ 
  19287.  
  19288. Syntax: call_dll (str module, any function, [types, [parm1, ...]]) 
  19289.  
  19290. ____________ 
  19291.  
  19292. Arguments: module - the name of the DLL that stores the function 
  19293.  
  19294. function - either the name of the function or the ordinal number of the 
  19295. function to call 
  19296.  
  19297. types - a string containing the types of the return value and each parameter. 
  19298. The first character defines the type of the return value and each successive 
  19299. character defines the type of each parameter. 
  19300.  
  19301. Valid Parameter Types 
  19302. A - Any pointer 
  19303. C - Character 
  19304. L - Long integer 
  19305. S - Short integer 
  19306. V - Void (return value only) 
  19307. Z - Character pointer (string) 
  19308.  
  19309. Note:  If a parameter is passed without a corresponding character in the types 
  19310. string, the type is assumed to be either string (Z) or long (L) depending on 
  19311. the type of PEL variable passed.  The default type of the return value is Void 
  19312. (V). 
  19313.  
  19314. ____________ 
  19315.  
  19316. Description: The call_dll() function calls a function from a DLL. If the DLL 
  19317. has not been loaded by load_module() or a previous call to call_dll(), it will 
  19318. be loaded automatically before the function is called. 
  19319.  
  19320. ____________ 
  19321.  
  19322. Value returned:  The value from the called function is returned. 
  19323.  
  19324.  
  19325. ΓòÉΓòÉΓòÉ 14.16.2. get_resource_string() ΓòÉΓòÉΓòÉ
  19326.  
  19327. get_resource_string()   Primitive 
  19328.  
  19329. Purpose: Retrieves a string stored in a resource file 
  19330.  
  19331. ____________ 
  19332.  
  19333. Syntax: string get_resource_string(short resid, [string resfile]) 
  19334.  
  19335. ____________ 
  19336.  
  19337. Description: The get_resource_string() function retrieves a string stored in a 
  19338. resource file.  The string must be stored in a resource file as a STRINGTABLE 
  19339. resource. 
  19340.  
  19341. The resid argument is the resource id of the string to be loaded.  The string 
  19342. resource must either reside in the editors executable file or in a resource 
  19343. DLL. 
  19344.  
  19345. The resfile argument contains the name of the resource DLL to use to load the 
  19346. string. 
  19347.  
  19348. ____________ 
  19349.  
  19350. Value returned: The string from the STRINGTABLE is returned. 
  19351.  
  19352.  
  19353. ΓòÉΓòÉΓòÉ 14.16.3. load_module() ΓòÉΓòÉΓòÉ
  19354.  
  19355. load_module. 
  19356.  
  19357. Purpose: Loads a DLL into memory. 
  19358.  
  19359. ____________ 
  19360.  
  19361. Syntax: load_module (str name) 
  19362.  
  19363. ____________ 
  19364.  
  19365. Arguments: name - the name of the DLL to load. 
  19366.  
  19367. ____________ 
  19368.  
  19369. Description: The load_module() function loads a DLL into memory to enable you 
  19370. to call functions. 
  19371.  
  19372. ____________ 
  19373.  
  19374. Value returned:  None. 
  19375.  
  19376.  
  19377. ΓòÉΓòÉΓòÉ 14.16.4. use_resource_file() ΓòÉΓòÉΓòÉ
  19378.  
  19379. use_resource_file()   Primitive 
  19380.  
  19381. Purpose: Sets a new resource dll the default 
  19382.  
  19383. ____________ 
  19384.  
  19385. Syntax: void use_resource_file([string resource_dll]) 
  19386.  
  19387. ____________ 
  19388.  
  19389. Description: The use_resource_file() function sets the default resource dll. 
  19390. The new resource dll is used in all subsequent functions that require resources 
  19391. to be loaded and do not specify a resource file. The optional resource_dll 
  19392. argument contains the name of a resource dll to use as the default.  If no 
  19393. value is specified the executable file is used as the default location of 
  19394. resources. 
  19395.  
  19396. ____________ 
  19397.  
  19398. Value returned: This function does not return a value. 
  19399.  
  19400.  
  19401. ΓòÉΓòÉΓòÉ 14.17. Searching ΓòÉΓòÉΓòÉ
  19402.  
  19403. The variables and functions used in search and replacement operations allow 
  19404. specifying either a string or a  as the search pattern.  The regular 
  19405. expressions supported by PREDITOR/2 are most similar to those used in PEL, the 
  19406. Toolbox Language, with a few special extensions.  You will find PREDITOR/2's 
  19407. version of regular expressions presented in the "Regular Expressions" chapter 
  19408. of the PREDITOR/2 User's Guide.  Some further instructions are required, 
  19409. however, on using regular expressions in functions. 
  19410.  
  19411. A regular expression [may be presented as an argument to a function in several 
  19412. ways.  You may enter a function that contains a regular expression as a command 
  19413. to SPE's PEL interpreter or you may enter it in the source code of a function 
  19414. you are going to compile. 
  19415.  
  19416. context_search() 
  19417.           To search for the word at the current cursor location 
  19418. fgrep() 
  19419.           To grep for a string in files on disk 
  19420. freplace() 
  19421.           Replaces all occurrences of a string with a new string. 
  19422. grep() 
  19423.           Locate lines containing a string. 
  19424. grep_auto() 
  19425.           To perform a grep in the current buffer for the word at the current 
  19426.           cursor location 
  19427. gui_find() 
  19428.           To display the find dialog. 
  19429. replace() 
  19430.           Unadorned text pattern replacement function. 
  19431. replace_again() 
  19432.           Repeats a previous replace without further prompting. 
  19433. replace_backward() 
  19434.           Prompts for parameters, replaces backward in buffer. 
  19435. replace_forward() 
  19436.           Prompts for parameters, replaces backward in buffer. 
  19437. routines() 
  19438.           Makes menu of subroutines found in the current buffer. 
  19439. search() 
  19440.           Unadorned text pattern matching function. 
  19441. search_again() 
  19442.           Repeats a previous search without further prompting. 
  19443. search_backward() 
  19444.           Prompts for parameters, searches backward in buffer. 
  19445. search_forward() 
  19446.           Prompts for parameters and searches forward in buffer. 
  19447. search_i() 
  19448.           Searches for matching text as each character is typed. 
  19449. search_path() 
  19450.           Searches for a file within a specified location. 
  19451. string_replace() 
  19452.           Replace existing strings in the buffer with a replacement string. 
  19453. string_search() 
  19454.           Search for a string in the buffer. 
  19455. symbol_match() 
  19456.           List functions and variables matching a string. 
  19457. toggle_search_flags() 
  19458.           Changes the value of the search_flags variable. 
  19459. wgrep() 
  19460.           To perform a grep on all buffers loaded in the editor. 
  19461. wreplace() 
  19462.           Searches and replaces across multiple buffers. 
  19463. wreplace_again() 
  19464.           Repeats a previous search and replace across buffers without 
  19465.           prompting. 
  19466. wroutines() 
  19467.           Find the routines in all of the opened buffers. 
  19468. wsearch() 
  19469.           Text pattern matching across buffers. 
  19470. wsearch_again() 
  19471.           Repeats a previous search across buffers without prompting. 
  19472.  
  19473.  
  19474. ΓòÉΓòÉΓòÉ 14.17.1. context_search() ΓòÉΓòÉΓòÉ
  19475.  
  19476. context_search()   PEL 
  19477.  
  19478. Purpose:  To search for the word at the current cursor location 
  19479.  
  19480. ____________ 
  19481.  
  19482. Syntax:   context_search( ) 
  19483.  
  19484. ____________ 
  19485.  
  19486. Arguments:  none 
  19487.  
  19488. Description: This function provides a convenient short-cut that can save typing 
  19489. keystrokes.  Simply place the cursor over the word you want to find more 
  19490. occurances of and call this function through the command dialog or through a 
  19491. key assignment. 
  19492.  
  19493. ____________ 
  19494.  
  19495. Value returned:  None. 
  19496.  
  19497.  
  19498. ΓòÉΓòÉΓòÉ 14.17.2. fgrep() ΓòÉΓòÉΓòÉ
  19499.  
  19500. fgrep()   PEL 
  19501.  
  19502. Purpose:  To grep for a string in files on disk 
  19503.  
  19504. ____________ 
  19505.  
  19506. Syntax:   fgrep( str search_for, [str infileToGrep, int recursive] ) 
  19507.  
  19508. ____________ 
  19509.  
  19510. Arguments: 
  19511.  
  19512. o search_for - string to grep for 
  19513. o infileToGrep - file or files to grep 
  19514. o recursive - a TRUE value indicates that the fgrep will be recursive 
  19515.  
  19516. Description: This function will grep through files on disk for a specified 
  19517. string.  The infileToGrep parameter may contain wildcards and paths delimited 
  19518. by semicolons. 
  19519.  
  19520. See also:  grep(), wgrep() 
  19521.  
  19522. ____________ 
  19523.  
  19524. Value returned:  None. 
  19525.  
  19526.  
  19527. ΓòÉΓòÉΓòÉ 14.17.3. freplace() ΓòÉΓòÉΓòÉ
  19528.  
  19529. freplace() 
  19530.  
  19531. Purpose:  Replaces all occurrences of a string with a new string. 
  19532.  
  19533. ____________ 
  19534.  
  19535. Syntax:  freplace( str srch, str replacement, str listOfFiles, [int recursive]) 
  19536.  
  19537. ____________ 
  19538.  
  19539. Arguments: 
  19540.  
  19541. srch - the string to be replaced 
  19542.  
  19543. replacement - the new string to replace srch 
  19544.  
  19545. listOfFiles - files to be changed 
  19546.  
  19547. recursive - a TRUE value indicates that the function will be recursive 
  19548.  
  19549. ____________ 
  19550.  
  19551. Description: The freplace function replaces all occurrences of a string with a 
  19552. new string in the files you specify. 
  19553.  
  19554. ____________ 
  19555.  
  19556. Example: 
  19557.  
  19558. freplace ("boat", "rocket", "c:\src\zoom\*.c;c:\sail\*.h*", FALSE) 
  19559.  
  19560. The example above replaces all occurrences of "boat" with "rocket" in all .C 
  19561. files in the C:\SRC\ZOOM directory,  and in all of the .H* files in the C:\SAIL 
  19562. directory.  Because the recursive argument is FALSE, the subdirectories to the 
  19563. specified directories are not searched and changed. 
  19564.  
  19565.  
  19566. ΓòÉΓòÉΓòÉ 14.17.4. grep() ΓòÉΓòÉΓòÉ
  19567.  
  19568. grep()   PEL 
  19569.  
  19570. Purpose: Locate lines containing a string. 
  19571.  
  19572. ____________ 
  19573.  
  19574. Syntax:  void grep(str strpat) 
  19575.  
  19576. ____________ 
  19577.  
  19578. Description: The grep() function searches through the current buffer for lines 
  19579. containing the string specified by the strpat argument. Lines containing 
  19580. matches are displayed in the form of a menu, allowing the user to select a line 
  19581. of interest with the arrow keys or mouse.  The user may then move to that line 
  19582. by pressing the GOTO push button. 
  19583.  
  19584. ____________ 
  19585.  
  19586. Value returned: 
  19587.  
  19588. No useful value is returned by this function. 
  19589.  
  19590.  
  19591. ΓòÉΓòÉΓòÉ 14.17.5. grep_auto() ΓòÉΓòÉΓòÉ
  19592.  
  19593. grep_auto()   PEL 
  19594.  
  19595. Purpose:  To perform a grep in the current buffer for the word at the current 
  19596. cursor location 
  19597.  
  19598. ____________ 
  19599.  
  19600. Syntax:   grep_auto( [int numSearchCount, [int allBuffers]] ) 
  19601.  
  19602. ____________ 
  19603.  
  19604. Arguments: 
  19605.  
  19606. o numSearchCount - the maximum number of occurrances to find 
  19607. o allBuffers   - if TRUE, search all loaded buffers, else, just the current 
  19608.   buffer 
  19609.  
  19610. Description: 
  19611.  
  19612. ____________ 
  19613.  
  19614. Value returned:  none 
  19615.  
  19616.  
  19617. ΓòÉΓòÉΓòÉ 14.17.6. gui_find() ΓòÉΓòÉΓòÉ
  19618.  
  19619. gui_find()   PEL 
  19620.  
  19621. Purpose:  To display the find dialog. 
  19622.  
  19623. ____________ 
  19624.  
  19625. Syntax:   gui_find() 
  19626.  
  19627. ____________ 
  19628.  
  19629. Arguments:  none 
  19630.  
  19631. Description: 
  19632.  
  19633. ____________ 
  19634.  
  19635. Value returned:  none 
  19636.  
  19637.  
  19638. ΓòÉΓòÉΓòÉ 14.17.7. replace() ΓòÉΓòÉΓòÉ
  19639.  
  19640. replace()   Primitive 
  19641.  
  19642. Purpose: Unadorned text pattern replacement function. 
  19643.  
  19644. ____________ 
  19645.  
  19646. Syntax: int replace(str pattern, str replacement, int flags) 
  19647.  
  19648. ____________ 
  19649.  
  19650. Description: The replace() function examines the current buffer for one or more 
  19651. occurrences of text matching the pattern argument.  The pattern may be a 
  19652. regular expression or a simple string to match, depending upon the value of the 
  19653. flags argument.  The matching text is replaced with the contents of the 
  19654. replacement string. The direction of search and other searching parameters are 
  19655. also controlled by the flags argument.  The position of the cursor at the end 
  19656. of the search portion of the operation may be controlled through regular 
  19657. expressions, but by default is placed at the beginning of the matching text. 
  19658.  
  19659. The values allowed for flags are those that may be represented by a single 
  19660. byte.  Each bit of the flags byte sets a searching parameter.  The search_flags 
  19661. variable is normally used as the flags argument if the search parameters 
  19662. currently in use are acceptable.  A complete description of the meaning given 
  19663. to the bits of flag may be found under search_flags. 
  19664.  
  19665. The replacement operation is repeated as dictated by the variable search_count. 
  19666. If search_count is 1 or 0 the replacement is carried out once.  If search_count 
  19667. is greater than 1 the operation is repeated that number of times or until it is 
  19668. unsuccessful.  In any case, the value of search_count is reset to 0 upon 
  19669. completion. 
  19670.  
  19671. ____________ 
  19672.  
  19673. Value returned: The value returned by replace() is the number of replacements 
  19674. made.  If no matches are found, a zero value is returned. 
  19675.  
  19676.  
  19677. ΓòÉΓòÉΓòÉ 14.17.8. replace_again() ΓòÉΓòÉΓòÉ
  19678.  
  19679. replace_again()   PEL 
  19680.  
  19681. Purpose: Repeats a previous replace without further prompting. 
  19682.  
  19683. ____________ 
  19684.  
  19685. Syntax: int replace_again() 
  19686.  
  19687. ____________ 
  19688.  
  19689. Description: The replace_again() function continues a replace operation for the 
  19690. next occurrence of matching text. It uses the variables replace_pattern, 
  19691. search_pattern and search_flags as parameters to the operation without 
  19692. prompting.  These variables usually reflect the parameters of any previous 
  19693. replace operation but may be modified by user- written programs. 
  19694.  
  19695. This replace function does not restore the cursor to its original position 
  19696. after the replacement, but rather leaves the cursor at the position where the 
  19697. match occurred. 
  19698.  
  19699. ____________ 
  19700.  
  19701. Value returned: The value returned by the replace_again() function is non-zero 
  19702. (TRUE) if a match was found.  If not, a value of zero (FALSE) is returned. 
  19703.  
  19704.  
  19705. ΓòÉΓòÉΓòÉ 14.17.9. replace_backward() ΓòÉΓòÉΓòÉ
  19706.  
  19707. replace_backward()   PEL 
  19708.  
  19709. Purpose: Prompts for parameters, replaces backward in buffer. 
  19710.  
  19711. ____________ 
  19712.  
  19713. Syntax: int replace_backward([str pattern [, str replacement]]) 
  19714.  
  19715. ____________ 
  19716.  
  19717. Description: The replace_backward() function is designed to be assigned to a 
  19718. key.  When no arguments are supplied or if the arguments are empty strings, it 
  19719. prompts the user for the search pattern and the replacement string.  If there 
  19720. have been any previous search or replacement operations, the patterns used in 
  19721. those operations are presented to the user for editing. 
  19722.  
  19723. If an argument other than an empty string is supplied the user is not prompted 
  19724. for that argument.  If both arguments are supplied and neither is an empty 
  19725. string, no prompting occurs. If only one argument is supplied, it is assumed to 
  19726. be the pattern argument. 
  19727.  
  19728. Whether or not arguments are supplied,  parameter settings from the prior 
  19729. search or replace are used. If there were no such prior operations, the 
  19730. settings found in search_flags are used. 
  19731.  
  19732. This replace function restores the cursor to its original position after the 
  19733. replacement rather than leaving the cursor at the position where the match 
  19734. occurred. 
  19735.  
  19736. This function resets the SEARCH_FORWARD bit of the search_flags variable.  Thus 
  19737. it always searches the buffer for matches beginning with the text preceding the 
  19738. cursor position. 
  19739.  
  19740. ____________ 
  19741.  
  19742. Value returned: The value returned by the replace_backward() function is 
  19743. non-zero (TRUE) if a match was found. If not, a value of zero (FALSE) is 
  19744. returned. 
  19745.  
  19746.  
  19747. ΓòÉΓòÉΓòÉ 14.17.10. replace_forward() ΓòÉΓòÉΓòÉ
  19748.  
  19749. replace_forward()   PEL 
  19750.  
  19751. Purpose: Prompts for parameters, replaces backward in buffer. 
  19752.  
  19753. ____________ 
  19754.  
  19755. Syntax: int replace_forward([str pattern [, str replacement]]) 
  19756.  
  19757. ____________ 
  19758.  
  19759. Description: The replace_forward() function is designed to be assigned to a 
  19760. key.  When no arguments are supplied or if the arguments are empty strings, it 
  19761. prompts the user for the search pattern and the replacement string.  If there 
  19762. have been any previous search or replacement operations, the patterns used in 
  19763. those operations are presented to the user for editing. 
  19764.  
  19765. If an argument other than an empty string is supplied the user is not prompted 
  19766. for that argument.  If both arguments are supplied and neither is an empty 
  19767. string, no prompting occurs. If only one argument is supplied, it is assumed to 
  19768. be the pattern argument. 
  19769.  
  19770. Whether or not arguments are supplied,  parameter settings from the prior 
  19771. search or replace are used. If there were no such prior operations, the 
  19772. settings found in search_flags are used. 
  19773.  
  19774. This replace function restores the cursor to its original position after the 
  19775. replacement rather than leaving the cursor at the position where the match 
  19776. occurred. 
  19777.  
  19778. This function sets the SEARCH_FORWARD bit of the search_flags variable.  Thus 
  19779. it always searches the buffer for matches beginning with the text following the 
  19780. cursor position. 
  19781.  
  19782. ____________ 
  19783.  
  19784. Value returned: The value returned by the replace_forward() function is 
  19785. non-zero (TRUE) if a match was found. If not, a value of zero (FALSE) is 
  19786. returned. 
  19787.  
  19788.  
  19789. ΓòÉΓòÉΓòÉ 14.17.11. routines() ΓòÉΓòÉΓòÉ
  19790.  
  19791. routines()   PEL 
  19792.  
  19793. Purpose: Makes menu of subroutines found in the current buffer. 
  19794.  
  19795. ____________ 
  19796.  
  19797. Syntax: void routines() 
  19798.  
  19799. ____________ 
  19800.  
  19801. Description: The routines() function scans the current buffer for subroutines 
  19802. (functions) and places them in a menu-like list.  The arrow keys or mouse may 
  19803. then be used to select a subroutine of interest.  The user may then move 
  19804. directly to that subroutine by pressing  . *  This function operates on .PEL 
  19805. and .C files only. 
  19806.  
  19807. ____________ 
  19808.  
  19809. Value returned: 
  19810.  
  19811.  
  19812. ΓòÉΓòÉΓòÉ 14.17.12. search() ΓòÉΓòÉΓòÉ
  19813.  
  19814. search()   Primitive 
  19815.  
  19816. Purpose: Unadorned text pattern matching function. 
  19817.  
  19818. ____________ 
  19819.  
  19820. Syntax: int search(str pattern, int flags) 
  19821.  
  19822. ____________ 
  19823.  
  19824. Description: The search() function examines the current buffer for one or more 
  19825. occurrences of text matching the pattern argument.  The pattern may be a 
  19826. regular expression or a simple string to match, depending upon the condition of 
  19827. the flags variable.  The direction of search and other searching parameters are 
  19828. also controlled by the flags argument.  The position of the cursor at the end 
  19829. of the search may be controlled through regular expressions, but by default is 
  19830. placed at the beginning of the matching text. 
  19831.  
  19832. The values allowed for flags are those that may be represented by a single 
  19833. byte.  Each bit of the flags byte sets a searching parameter.  The search_flags 
  19834. variable is normally used as the flags argument if the search parameters 
  19835. currently in use are acceptable.  A complete description of the meaning given 
  19836. to the bits of flag may be found under search_flags 
  19837.  
  19838. The search operation is repeated as dictated by the variable search_count  If 
  19839. search_count is 1 or 0 the search is carried out once.  If search_count is 
  19840. greater than 1 the operation is repeated that number of times or until it is 
  19841. unsuccessful.  In any case, the value of search_count is reset to 0 upon 
  19842. completion. 
  19843.  
  19844. ____________ 
  19845.  
  19846. Value returned: The value returned by search() is the number of matches found. 
  19847. This will normally be one.  If no matches are found, a zero value is returned. 
  19848.  
  19849. ____________ 
  19850.  
  19851. See also:  search_again(), search_forward(), search_backward(), search_i() 
  19852.  
  19853.  
  19854. ΓòÉΓòÉΓòÉ 14.17.13. search_again() ΓòÉΓòÉΓòÉ
  19855.  
  19856. search_again()   PEL 
  19857.  
  19858. Purpose: Repeats a previous search without further prompting. 
  19859.  
  19860. ____________ 
  19861.  
  19862. Syntax: int search_again() 
  19863.  
  19864. ____________ 
  19865.  
  19866. Description: The search_again() function continues a search for the next 
  19867. occurrence of matching text.  It uses the variables search_pattern and 
  19868. search_flags as parameters to the operation without prompting. These variables 
  19869. usually reflect the parameters of any previous search operation but may be 
  19870. modified by user-written programs. 
  19871.  
  19872. ____________ 
  19873.  
  19874. Value returned: The value returned by the search_again() function is non-zero 
  19875. (TRUE) if a match was found.  If not, a value of zero (FALSE) is returned. 
  19876.  
  19877.  
  19878. ΓòÉΓòÉΓòÉ 14.17.14. search_backward() ΓòÉΓòÉΓòÉ
  19879.  
  19880. search_backward()   PEL 
  19881.  
  19882. Purpose: Prompts for parameters, searches backward in buffer. 
  19883.  
  19884. ____________ 
  19885.  
  19886. Syntax: int search_backward([str pattern]) 
  19887.  
  19888. ____________ 
  19889.  
  19890. Description: The search_backward() function is designed to be assigned to a 
  19891. key.  It prompts the user for the search string when the pattern argument is 
  19892. not specified.  If there have been any previous searches, the search string 
  19893. used in the preceding search is presented to the user for editing.  If the 
  19894. pattern string is supplied no prompting occurs. In either case, the function 
  19895. then searches the buffer for matches beginning with the text preceding the 
  19896. cursor position. 
  19897.  
  19898. The search parameter settings from the prior search are also used.  If there 
  19899. was no prior search, the settings found in search_flags are used.  This 
  19900. function resets the SEARCH_FORWARD bit of the search_flags variable. 
  19901.  
  19902. ____________ 
  19903.  
  19904. Value returned: The value returned by the search_backward() function is 
  19905. non-zero (TRUE) if a match was found. If not, a value of zero (FALSE) is 
  19906. returned. 
  19907.  
  19908.  
  19909. ΓòÉΓòÉΓòÉ 14.17.15. search_forward() ΓòÉΓòÉΓòÉ
  19910.  
  19911. search_forward()   PEL 
  19912.  
  19913. Purpose: Prompts for parameters and searches forward in buffer. 
  19914.  
  19915. ____________ 
  19916.  
  19917. Syntax: int search_forward([str pattern]) 
  19918.  
  19919. ____________ 
  19920.  
  19921. Description: The search_forward() function is designed to be assigned to a key. 
  19922. It prompts the user for the search string when the pattern argument is not 
  19923. specified.  If there have been any previous searches, the search string used in 
  19924. the preceding search is presented to the user for editing.  If the pattern 
  19925. string is supplied no prompting occurs. In either case, the function then 
  19926. searches the buffer for matches beginning with the text following the cursor 
  19927. position. 
  19928.  
  19929. The search parameter settings from the prior search are also used.  If there 
  19930. was no prior search, the settings found in search_flags are used.  This 
  19931. function sets the SEARCH_FORWARD bit of the search_flags variable. 
  19932.  
  19933. ____________ 
  19934.  
  19935. Value returned: The value returned by the search_forward() function is non-zero 
  19936. (TRUE) if a match was found.  If not, a value of zero (FALSE) is returned. 
  19937.  
  19938.  
  19939. ΓòÉΓòÉΓòÉ 14.17.16. search_i() ΓòÉΓòÉΓòÉ
  19940.  
  19941. search_i()   PEL 
  19942.  
  19943. Purpose: Searches for matching text as each character is typed. 
  19944.  
  19945. ____________ 
  19946.  
  19947. Syntax: void search_i() 
  19948.  
  19949. ____________ 
  19950.  
  19951. Description: The search_i() function performs an incremental search in the 
  19952. current buffer.  In this case, the term incremental means that the search is 
  19953. performed as each character of the search string is typed in interactively. 
  19954. This ensures that the minimum number of keystrokes are typed to obtain the 
  19955. desired match. 
  19956.  
  19957. This type of search will be familiar to users of the EMACS editor.  For others, 
  19958. a simple example illustrates the use of this function.  You have a file 
  19959. containing the following words: 
  19960.  
  19961.   fast 
  19962.  
  19963.   after 
  19964.  
  19965.   ftime 
  19966.  
  19967. With the cursor at the beginning of the file, you invoke the search_i() 
  19968. function.  The function prompts you for the search string.  To search for the 
  19969. word "ftime" you would begin by typing the letter "f".  Without waiting for 
  19970. further input, the function begins searching for this letter.  The cursor 
  19971. immediately moves to the first letter of the word "fast".  As you type the 
  19972. second letter, "t", the cursor moves to the first occurrence of the letters 
  19973. "ft" which is in the word "after".  As soon as you type the third letter, "i", 
  19974. the cursor moves to the beginning of the word "ftime".  Since this word is the 
  19975. subject of your search, no further typing is required.  You then press the 
  19976. escape key to terminate search_i(). 
  19977.  
  19978. ____________ 
  19979.  
  19980. Value returned: None. 
  19981.  
  19982.  
  19983. ΓòÉΓòÉΓòÉ 14.17.17. search_path() ΓòÉΓòÉΓòÉ
  19984.  
  19985. search_path() 
  19986.  
  19987. Purpose:  Searches for a file within a specified location. 
  19988.  
  19989. ____________ 
  19990.  
  19991. Syntax:  void search_path(str filename, str srchstring, [long flag]) 
  19992.  
  19993. ____________ 
  19994.  
  19995. Arguments: 
  19996.  
  19997. filename - the file to search for 
  19998.  
  19999. srchstring - the path or environment variable to search 
  20000.  
  20001. flag - if srchstring contains a path to search separated by a semicolon, set 
  20002. this value to 1.  Otherwise, srchstring is considered to be an environment 
  20003. variable to search. 
  20004.  
  20005. ____________ 
  20006.  
  20007. Description: The search_path() function searches for the given file name in the 
  20008. given srchstring argument. 
  20009.  
  20010. ____________ Control structures, examples To search for TEXT.TXT in your PATH 
  20011. environment variable, you would enter: 
  20012.  
  20013. fullpath = search_path("TEXT.TXT", "PATH") 
  20014.  
  20015. ____________ 
  20016.  
  20017. Value returned: If found, the fully qualified path is returned.  An empty 
  20018. string ("") is returned if the path is not found. 
  20019.  
  20020.  
  20021. ΓòÉΓòÉΓòÉ 14.17.18. string_replace() ΓòÉΓòÉΓòÉ
  20022.  
  20023. string_replace()   PEL 
  20024.  
  20025. Purpose:  Replace existing strings in the buffer with a replacement string. 
  20026.  
  20027. ____________ 
  20028.  
  20029. Syntax:   int string_replace(str srch, str repl) 
  20030.  
  20031. ____________ 
  20032.  
  20033. Arguments: 
  20034.  
  20035. o srch - search value 
  20036. o repl - replacement value 
  20037.  
  20038. Description: The string_replace() function searches the current buffer for 
  20039. srch. When an occurrence of the search pattern is found, the user is prompted 
  20040. to replace, skip, or replace global.  If global is selected, the remaining 
  20041. occurences of srch are replaced with repl. 
  20042.  
  20043. ____________ 
  20044.  
  20045. Value returned: The number of occurences replaced. 
  20046.  
  20047.  
  20048. ΓòÉΓòÉΓòÉ 14.17.19. string_search() ΓòÉΓòÉΓòÉ
  20049.  
  20050. string_search()   PEL 
  20051.  
  20052. Purpose:  Search for a string in the buffer. 
  20053.  
  20054. ____________ 
  20055.  
  20056. Syntax:   int string_search(str sspatt, [short sflags]) 
  20057.  
  20058. ____________ 
  20059.  
  20060. Arguments: 
  20061.  
  20062. o sspatt - pattern to search for in the buffer 
  20063. o sflags - search flags 
  20064.  
  20065. Description: The string_search() function searches for sspatt in the current 
  20066. buffer.  sflags is used as the search flags if provided.  If not, the current 
  20067. search_flags are used. 
  20068.  
  20069. ____________ 
  20070.  
  20071. Value returned: Number of occurences found. 
  20072.  
  20073.  
  20074. ΓòÉΓòÉΓòÉ 14.17.20. symbol_match() ΓòÉΓòÉΓòÉ
  20075.  
  20076. symbol_match()   Primitive 
  20077.  
  20078. Purpose: List functions and variables matching a string. 
  20079.  
  20080. ____________ 
  20081.  
  20082. Syntax: array symbol_match(str symbol_name [, int match_type]) 
  20083.  
  20084. ____________ 
  20085.  
  20086. Description: The symbol_match() function compiles a list of functions or 
  20087. variables whose names begin with the string named by the symbol_name argument. 
  20088. For example, the function call below returns a list of all functions and 
  20089. variables that begin with the string "toggle_": 
  20090.  
  20091. func_list = symbol_match("toggle_") 
  20092.  
  20093. By default, the function lists all functions and variables that match the 
  20094. string, both primitives (builtins) and those defined in PEL.  The list may be 
  20095. narrowed or widened to include local functions and variables by specifying the 
  20096. optional match_type argument. The accepted values for match_type are as 
  20097. follows: 
  20098.  
  20099. o ALL_FUN 
  20100. o ALL_VAR 
  20101. o GLOBAL_ALL 
  20102. o GLOBAL_FUN 
  20103. o GLOBAL_VAR 
  20104. o LOCAL_ALL 
  20105. o LOCAL_FUN 
  20106. o LOCAL_VAR 
  20107. o PRIMITIVE_ALL 
  20108. o PRIMITIVE_FUN 
  20109. o PRIMITIVE_VAR 
  20110.  
  20111. These values may be combined to receive a list containing symbols of more than 
  20112. one type.  For example, a value of (ALL_FUN + ALL_VAR) may be used to include 
  20113. all types of symbols in the list. 
  20114.  
  20115. ____________ 
  20116.  
  20117. Value returned: This function returns an array of strings containing the 
  20118. matching symbols.  Elements which represent local functions or variables take 
  20119. the form filename:.symbol_name. 
  20120.  
  20121.  
  20122. ΓòÉΓòÉΓòÉ 14.17.21. toggle_search_flags() ΓòÉΓòÉΓòÉ
  20123.  
  20124. toggle_search_flags()   PEL 
  20125.  
  20126. Purpose:  Changes the value of the search_flags variable. 
  20127.  
  20128. ____________ 
  20129.  
  20130. Syntax:   toggle_search_flags (long mask, [long value]) 
  20131.  
  20132. ____________ 
  20133.  
  20134. Arguments: 
  20135.  
  20136. o mask - search_flags bit to toggle 
  20137. o on - forced direction of toggle 
  20138.  
  20139. Description: toggle_search_flags() changes the state of the bit in search_flags 
  20140. specified by the mask argument.  If the optional argument, value, is supplied, 
  20141. the bit changes to that value.  Otherwise the state of the bit toggles. 
  20142.  
  20143. ____________ 
  20144.  
  20145. Value returned: 
  20146.  
  20147. TRUE  -  mask bit of search_flags was turned on 
  20148.  
  20149. FALSE -  the bit was turned off 
  20150.  
  20151. See also: search_flags 
  20152.  
  20153.  
  20154. ΓòÉΓòÉΓòÉ 14.17.22. wgrep() ΓòÉΓòÉΓòÉ
  20155.  
  20156. wgrep()   PEL 
  20157.  
  20158. Purpose:  To perform a grep on all buffers loaded in the editor. 
  20159.  
  20160. ____________ 
  20161.  
  20162. Syntax:   wgrep( str search_for, [int numSearchCount] ) 
  20163.  
  20164. ____________ 
  20165.  
  20166. Arguments: 
  20167.  
  20168. o search_for   -  the string to grep for 
  20169. o numSearchCount -  the maximum number of occurances to find 
  20170.  
  20171. Description: 
  20172.  
  20173. See also:  grep(), fgrep() 
  20174.  
  20175. ____________ 
  20176.  
  20177. Value returned:  none 
  20178.  
  20179.  
  20180. ΓòÉΓòÉΓòÉ 14.17.23. wreplace() ΓòÉΓòÉΓòÉ
  20181.  
  20182. wreplace()   PEL 
  20183.  
  20184. Purpose:  Searches and replaces across multiple buffers. 
  20185.  
  20186. ____________ 
  20187.  
  20188. Syntax:  int wreplace(str srch, str replacement) 
  20189.  
  20190. ____________ 
  20191.  
  20192. Arguments: 
  20193.  
  20194. srch - string to replace. 
  20195.  
  20196. replacement - new string to replace srch 
  20197.  
  20198. ____________ 
  20199.  
  20200. Description: The wreplace() function examines all edit buffers for one or more 
  20201. occurences of text matching the srch argument, and replaces these occurrences 
  20202. with the replacement argument. 
  20203.  
  20204. ____________ 
  20205.  
  20206. Value returned: None. 
  20207.  
  20208. ____________ 
  20209.  
  20210. See also:  wreplace_again() 
  20211.  
  20212.  
  20213. ΓòÉΓòÉΓòÉ 14.17.24. wreplace_again() ΓòÉΓòÉΓòÉ
  20214.  
  20215. wreplace_again()   PEL 
  20216.  
  20217. Purpose:  Repeats a previous search and replace across buffers without 
  20218. prompting. 
  20219.  
  20220. ____________ 
  20221.  
  20222. Syntax:  int wreplace_again() 
  20223.  
  20224. ____________ 
  20225.  
  20226. Description: The wreplace_again() function continues a search and changes the 
  20227. next occurrence of matching text.  This function is simply a repeat of the most 
  20228. recent wreplace() function call. 
  20229.  
  20230. ____________ 
  20231.  
  20232. Value returned:  None. 
  20233.  
  20234.  
  20235. ΓòÉΓòÉΓòÉ 14.17.25. wroutines() ΓòÉΓòÉΓòÉ
  20236.  
  20237. wroutines()   PEL 
  20238.  
  20239. Purpose:  Find the routines in all of the opened buffers. 
  20240.  
  20241. ____________ 
  20242.  
  20243. Syntax:   void wroutines() 
  20244.  
  20245. ____________ 
  20246.  
  20247. Arguments: none. 
  20248.  
  20249. Description: The wroutines() function searches all of the buffers in the buffer 
  20250. list to find the functions defined in them.  The resulting list is displayed in 
  20251. a list box. 
  20252.  
  20253. ____________ 
  20254.  
  20255. Value returned: none. 
  20256.  
  20257.  
  20258. ΓòÉΓòÉΓòÉ 14.17.26. wsearch() ΓòÉΓòÉΓòÉ
  20259.  
  20260. wsearch()   PEL 
  20261.  
  20262. Purpose: Text pattern matching across buffers. 
  20263.  
  20264. ____________ 
  20265.  
  20266. Syntax: int wsearch(str pattern, int flags) 
  20267.  
  20268. ____________ 
  20269.  
  20270. Description: The wsearch() function examines all edit buffers for one or more 
  20271. occurrences of text matching the pattern argument.  It is similar to the 
  20272. search() function, which searches only the current buffer. 
  20273.  
  20274. The pattern may be a regular expression or a simple string to match, depending 
  20275. upon the condition of the flags variable.  The direction of search and other 
  20276. searching parameters are also controlled by the flags argument.  The position 
  20277. of the cursor at the end of the search may be controlled through regular 
  20278. expressions, but by default is placed at the beginning of the matching text. 
  20279.  
  20280. The values allowed for flags are those that may be represented by a single 
  20281. byte.  Each bit of the flags byte sets a searching parameter.  The search_flags 
  20282. variable is normally used as the flags argument if the search parameters 
  20283. currently in use are acceptable.  A complete description of the meaning given 
  20284. to the bits of flag may be found under search_flags. 
  20285.  
  20286. The search operation is repeated as dictated by the variable search_count.  If 
  20287. search_count is 1 or 0 the search is carried out once.  If search_count is 
  20288. greater than 1 the operation is repeated that number of times or until it is 
  20289. unsuccessful.  In any case, the value of search_count is reset to 0 upon 
  20290. completion. 
  20291.  
  20292. ____________ 
  20293.  
  20294. Value returned: The value returned by wsearch() is the number of matches found. 
  20295. This will normally be one.  If no matches are found, a zero value is returned. 
  20296.  
  20297.  
  20298. ΓòÉΓòÉΓòÉ 14.17.27. wsearch_again() ΓòÉΓòÉΓòÉ
  20299.  
  20300. wsearch_again()   PEL 
  20301.  
  20302. Purpose: Repeats a previous search across buffers without prompting. 
  20303.  
  20304. ____________ 
  20305.  
  20306. Syntax: int wsearch_again() 
  20307.  
  20308. ____________ 
  20309.  
  20310. Description: The wsearch_again() function continues a search for the next 
  20311. occurrence of matching text.  This function is similar to the search_again() 
  20312. function, which searches only the current buffer.  It uses the variables 
  20313. search_pattern and search_flags as parameters to the operation without 
  20314. prompting. 
  20315.  
  20316. These variables usually reflect the parameters of any previous search operation 
  20317. but may be modified by user-written programs. 
  20318.  
  20319. ____________ 
  20320.  
  20321. Value returned: The value returned by the wsearch_again() function is non-zero 
  20322. (TRUE) if a match was found.  If not, a value of zero (FALSE) is returned 
  20323.  
  20324.  
  20325. ΓòÉΓòÉΓòÉ 14.18. String Manipulation ΓòÉΓòÉΓòÉ
  20326.  
  20327. The functions in the String Manipulation category provide the capabilities to 
  20328. locate strings or convert them from one form to another.  There are functions 
  20329. to locate or change substrings, to determine if a character is numeric or 
  20330. punctuation, and functions to translate one character to another. 
  20331.  
  20332. There are several functions that manipulate the case of  in the strings 
  20333. provided to them as arguments.  These functions are toupper(), tolower() and 
  20334. toreverse().  There are several similar functions in the Word Processing 
  20335. category that perform the corresponding service on a marked block of text 
  20336. rather than a string.  They have been similarly named upper(), lower() and 
  20337. reverse(). 
  20338.  
  20339. The sub() and gsub() functions are unique in AWK in that they modify the string 
  20340. argument you give it.  Other functions return the modified string or value but 
  20341. never modify an argument.  gsub() instead returns the number of substitutions 
  20342. it made within the supplied string. 
  20343.  
  20344. atoi() 
  20345.           Convert an ASCII string to an integer. 
  20346. chr() 
  20347.           Makes a one character string from an ASCII value. 
  20348. cindex() 
  20349.           Reports position of the first occurrence of a character. 
  20350. compress() 
  20351.           Deletes multiple occurrences of a character. 
  20352. gsub() 
  20353.           Replace occurrences of a substring with another. 
  20354. index() 
  20355.           Reports position of the first occurrence of a sub-string. 
  20356. insert_string() 
  20357.           Insert a string into current buffer at cursor position. 
  20358. int_to_ascii() 
  20359.           Interprets a keycode into the corresponding ASCII value. 
  20360. isalnum() 
  20361.           Tells if characters are in the alpha-numeric set. 
  20362. isalpha() 
  20363.           Tells if characters are in the alphabetical set. 
  20364. isascii() 
  20365.           Tells if characters are in the ASCII set. 
  20366. iscntrl() 
  20367.           Tells if characters are in the control character set. 
  20368. isdigit() 
  20369.           Tells if characters represent numbers. 
  20370. isgraph() 
  20371.           Tells if characters have visible printing representation. 
  20372. islower() 
  20373.           Tells if characters are lower-case letters. 
  20374. isprint() 
  20375.           Tells if characters have printable representation. 
  20376. ispunct() 
  20377.           Tells if characters represent punctuation. 
  20378. isspace() 
  20379.           Tells if characters are white-space. 
  20380. isupper() 
  20381.           Tells if characters are lower-case letters. 
  20382. isxdigit() 
  20383.           Tells if characters represent hexadecimal numbers. 
  20384. length() 
  20385.           Tells the length of a specified string. 
  20386. ltrim() 
  20387.           Deletes specified characters from beginning of line. 
  20388. match() 
  20389.           Returns the position of the first occurrence of a matching string. 
  20390. ord() 
  20391.           Casts a one character string as an integer value. 
  20392. prefix() 
  20393.           Obtain a sub-string from the beginning of a string. 
  20394. quote_regex() 
  20395.           Converts possible metacharacters to literals. 
  20396. rindex() 
  20397.           Reports position of the last occurrence of a sub-string. 
  20398. sprintf() 
  20399.           Creates a formatted string. 
  20400. strmax() 
  20401.           Returns the string with the highest lexical value. 
  20402. strmin() 
  20403.           Returns the string with the lowest lexical value. 
  20404. strrepeat() 
  20405.           Makes a string by concatenating repetitions of another. 
  20406. strtok() 
  20407.           This function parses a string into sub strings delimited by the 
  20408.           regular expression delimeter specified. 
  20409. sub() 
  20410.           Replace first occurrence of a substring with another 
  20411. substr() 
  20412.           Create a new string from a portion of another string. 
  20413. suffix() 
  20414.           Creates a string from the tail of another string. 
  20415. tolower() 
  20416.           Converts all letters in a string to lower-case. 
  20417. toupper() 
  20418.           Converts all letters in a string to upper-case. 
  20419. trans() 
  20420.           Translates characters in one string to those in another. 
  20421. trim() 
  20422.           Deletes specified characters from end of line. 
  20423.  
  20424.  
  20425. ΓòÉΓòÉΓòÉ 14.18.1. atoi() ΓòÉΓòÉΓòÉ
  20426.  
  20427. atoi()   Primitive 
  20428.  
  20429. Purpose: Convert an ASCII string to an integer. 
  20430.  
  20431. ____________ 
  20432.  
  20433. Syntax:  int atoi(str s [, int radix]) 
  20434.  
  20435. ____________ 
  20436.  
  20437. Description: The atoi() function converts the s string argument into an 
  20438. integer.  The numeric portion of the s string may be any value that may be 
  20439. represented by a 32 bit signed integer (-2,147,483,646 to 2,147,483,647). By 
  20440. default, the number contained in the string is assumed to be in decimal 
  20441. notation.  Other notations must be explicitly named by the radix argument. 
  20442.  
  20443. The values for the radix argument must be in the range of 2 to 16.  Specify 2 
  20444. for binary, 8 for octal, 10 for decimal or 16 for hexadecimal.  The string may 
  20445. contain non-numeric characters, but these must follow the numeric portion of 
  20446. the string. Otherwise the numeric portion will not be converted. 
  20447.  
  20448. ____________ 
  20449.  
  20450. Value returned: 
  20451.  
  20452. The value returned by the atoi() function is the integer equivalent of the 
  20453. numeric portion of the string.  A zero value is returned if any non-numeric 
  20454. character precedes the numeric portion of the string. This includes leading 
  20455. whitespace.  If radix is not one of the allowed values, it is considered an 
  20456. error, and a zero value is returned. 
  20457.  
  20458. ____________ 
  20459.  
  20460. Example: 
  20461.  
  20462. testInt = atoi("329 programmers") 
  20463.  
  20464. The value of testInt is then 329. 
  20465.  
  20466.  
  20467. ΓòÉΓòÉΓòÉ 14.18.2. chr() ΓòÉΓòÉΓòÉ
  20468.  
  20469. chr()   Primitive 
  20470.  
  20471. Purpose: Makes a one character string from an ASCII value. 
  20472.  
  20473. ____________ 
  20474.  
  20475. Syntax:  str chr(int num) 
  20476.  
  20477. ____________ 
  20478.  
  20479. Description: The chr() function creates a new string containing a single 
  20480. character.  The character contained in the string is the character equivalent 
  20481. of the value in the num argument. 
  20482.  
  20483. Values for num may be from 0 to 255.  If any other value is supplied, only the 
  20484. lowest byte is considered. 
  20485.  
  20486. ____________ 
  20487.  
  20488. Value returned: 
  20489.  
  20490. The value returned by the chr() function is the new one character string. 
  20491.  
  20492.  
  20493. ΓòÉΓòÉΓòÉ 14.18.3. cindex() ΓòÉΓòÉΓòÉ
  20494.  
  20495. cindex()   Primitive 
  20496.  
  20497. Purpose: Reports position of the first occurrence of a character. 
  20498.  
  20499. ____________ 
  20500.  
  20501. Syntax:  int cindex(str s, str c) 
  20502.  
  20503. ____________ 
  20504.  
  20505. Description: The cindex() function searches the s string argument for 
  20506. occurrences of the character or characters in the c argument.  The function 
  20507. then reports the position in the s string at which the character first 
  20508. occurred.  More than one character may be supplied in the c argument.  When 
  20509. this is done, the position of whichever character of c occurs in s first is 
  20510. reported. 
  20511.  
  20512. This function differs from index() in that it considers c as a series of 
  20513. characters rather than as a sub-string. 
  20514.  
  20515. ____________ 
  20516.  
  20517. Value returned: 
  20518.  
  20519. The value returned by the cindex function is the ordinal position of the 
  20520. "found" character within the string.  If no matches were found, or if one of 
  20521. the arguments is an empty string, the function returns a zero value. 
  20522.  
  20523.  
  20524. ΓòÉΓòÉΓòÉ 14.18.4. compress() ΓòÉΓòÉΓòÉ
  20525.  
  20526. compress()   PEL 
  20527.  
  20528. Purpose: Deletes multiple occurrences of a character. 
  20529.  
  20530. ____________ 
  20531.  
  20532. Syntax:  str compress(str s [, str t]) 
  20533.  
  20534. ____________ 
  20535.  
  20536. Description: The compress() function creates a new string from the s argument. 
  20537. The new string is the same as the argument except that all occurrences of the 
  20538. characters in the t argument are reduced to a single occurrence of the first 
  20539. character of t.  Sequential occurrences of one or more of the characters of t, 
  20540. regardless of order, are likewise compressed to one occurrence of the t 
  20541. argument's first character. 
  20542.  
  20543. This function is intended primarily as a method of "collapsing" white space. 
  20544. For this reason, if the t argument is not specified, this function will 
  20545. compress occurrences of tabs and spaces into single occurrences of spaces. 
  20546. This action is the same as if the string " \t" (space followed by tab) were 
  20547. provided as the t argument. 
  20548.  
  20549. ____________ 
  20550.  
  20551. Value returned: 
  20552.  
  20553. The value returned by the compress function is the newly compressed string. 
  20554.  
  20555. ____________ 
  20556.  
  20557. Examples: 
  20558.  
  20559.  
  20560.   compress("THIS     that")
  20561.  
  20562.   returns:  "THIS that"
  20563.  
  20564.  
  20565. and:
  20566.  
  20567.  
  20568.   compress("EDCBA","ABCDE")
  20569.  
  20570.   returns:  "A"
  20571.  
  20572.  
  20573. ΓòÉΓòÉΓòÉ 14.18.5. gsub() ΓòÉΓòÉΓòÉ
  20574.  
  20575. gsub()   Primitive 
  20576.  
  20577. Purpose: Replace occurrences of a substring with another. 
  20578.  
  20579. ____________ 
  20580.  
  20581. Syntax:  int gsub(str regex, str repl, str s) 
  20582.  
  20583. ____________ 
  20584.  
  20585. Description: The gsub() function substitutes the specified replacement string, 
  20586. repl, for substrings matching the regex argument within the string S.  The 
  20587. regex argument is a regular expression. 
  20588.  
  20589. The special characters that may be used in the regex argument are those 
  20590. described in the "Regular Expressions" chapter of the User's Manual.  These 
  20591. characters may be used without regard to the state of the search_flags 
  20592. variable.  The scope of the match is always maximal. 
  20593.  
  20594. ____________ 
  20595.  
  20596. Value returned: 
  20597.  
  20598. The value returned by the gsub() variable is the number of replacements made. 
  20599. If any of the arguments is an empty string, the function will return an empty 
  20600. string. 
  20601.  
  20602. ____________ 
  20603.  
  20604. See also:  sub() 
  20605.  
  20606.  
  20607. ΓòÉΓòÉΓòÉ 14.18.6. index() ΓòÉΓòÉΓòÉ
  20608.  
  20609. index()   Primitive 
  20610.  
  20611. Purpose: Reports position of the first occurrence of a sub-string. 
  20612.  
  20613. ____________ 
  20614.  
  20615. Syntax:  int index(str s, str sub) 
  20616.  
  20617. ____________ 
  20618.  
  20619. Description: The index() function searches the s string argument for the first 
  20620. occurrence of the sub-string in the sub argument.  The function then reports 
  20621. the position in the s string at which the sub-string occurred. This function 
  20622. differs from cindex() in that it considers sub as a sub-string rather than a 
  20623. series of characters. 
  20624.  
  20625. ____________ 
  20626.  
  20627. Value returned: 
  20628.  
  20629. The value returned by the index() function is the ordinal position at which the 
  20630. sub- string begins.  If no matches were found, or if one of the arguments was 
  20631. not a valid string, the function returns a zero value. 
  20632.  
  20633. ____________ 
  20634.  
  20635. See also:  rindex() 
  20636.  
  20637.  
  20638. ΓòÉΓòÉΓòÉ 14.18.7. insert_string() ΓòÉΓòÉΓòÉ
  20639.  
  20640. insert_string()   Primitive 
  20641.  
  20642. Purpose: Insert a string into current buffer at cursor position. 
  20643.  
  20644. ____________ 
  20645.  
  20646. Syntax:  str insert_string(str string) 
  20647.  
  20648. ____________ 
  20649.  
  20650. Description: The insert_string() function incorporates a string specified by 
  20651. the string argument into the current buffer at the current cursor position. 
  20652. After the insertion, the cursor is positioned at the end of the inserted 
  20653. string.  The included string may contain new lines and tabs, as desired. New 
  20654. lines found in the string are converted to conform to the buffer_eol_string 
  20655. currently in effect. 
  20656.  
  20657. The primary use of this function is to insert boilerplate text into the buffer. 
  20658. For example, this function might be used to add text specific to a certain 
  20659. programming language, such as control structures. 
  20660.  
  20661. ____________ 
  20662.  
  20663. Value returned: 
  20664.  
  20665. This function returns the inserted string or an empty string if the supplied 
  20666. string was empty. 
  20667.  
  20668.  
  20669. ΓòÉΓòÉΓòÉ 14.18.8. int_to_ascii() ΓòÉΓòÉΓòÉ
  20670.  
  20671. int_to_ascii()   Primitive 
  20672.  
  20673. Purpose: Interprets a keycode into the corresponding ASCII value. 
  20674.  
  20675. ____________ 
  20676.  
  20677. Syntax:  int int_to_ascii(int char) 
  20678.  
  20679. ____________ 
  20680.  
  20681. Description: The int_to_ascii() function provides the ASCII character 
  20682. corresponding to the key described by the char argument.  The char argument is 
  20683. a keycode value such as that returned by the getkey() or getchar() keyboard 
  20684. input functions. 
  20685.  
  20686. ____________ 
  20687.  
  20688. Value returned: 
  20689.  
  20690. The value returned by the int_to_ascii() function is the key's ASCII value. 
  20691.  
  20692.  
  20693. ΓòÉΓòÉΓòÉ 14.18.9. isalnum() ΓòÉΓòÉΓòÉ
  20694.  
  20695. isalnum()   Primitive 
  20696.  
  20697. Purpose: Tells if characters are in the alpha-numeric set. 
  20698.  
  20699. ____________ 
  20700.  
  20701. Syntax:  int isalnum(str s) 
  20702.  
  20703. ____________ 
  20704.  
  20705. Description: The isalnum() function tests the characters in the s argument 
  20706. string to determine if they are alpha-numeric characters.  Alpha- numeric 
  20707. characters include upper-case characters (A - Z), lower-case characters (a - z) 
  20708. and numeric characters (0 - 9). 
  20709.  
  20710. ____________ 
  20711.  
  20712. Value returned: 
  20713.  
  20714. When all the characters in the argument string are within the definition of 
  20715. alpha- numeric characters, the isalnum() function returns a non-zero value 
  20716. (TRUE).  If any of the characters are other than alpha- numeric, the function 
  20717. returns zero (FALSE). 
  20718.  
  20719.  
  20720. ΓòÉΓòÉΓòÉ 14.18.10. isalpha() ΓòÉΓòÉΓòÉ
  20721.  
  20722. isalpha()   Primitive 
  20723.  
  20724. Purpose: Tells if characters are in the alphabetical set. 
  20725.  
  20726. ____________ 
  20727.  
  20728. Syntax:  int isalpha(str s) 
  20729.  
  20730. ____________ 
  20731.  
  20732. Description: The isalpha() function tests the characters in the s argument 
  20733. string to determine if they characters of the alphabet.  This includes 
  20734. upper-case characters (A - Z) and lower-case characters (a - z). 
  20735.  
  20736. ____________ 
  20737.  
  20738. Value returned: 
  20739.  
  20740. When all the characters in the argument string are letters in (A - Z) or (a - 
  20741. z), the isalpha() function returns a non-zero value.  If any of the characters 
  20742. are not letters of the alphabet, the function returns zero. 
  20743.  
  20744.  
  20745. ΓòÉΓòÉΓòÉ 14.18.11. isascii() ΓòÉΓòÉΓòÉ
  20746.  
  20747. isascii()   Primitive 
  20748.  
  20749. Purpose: Tells if characters are in the ASCII set. 
  20750.  
  20751. ____________ 
  20752.  
  20753. Syntax:  int isascii(str s) 
  20754.  
  20755. ____________ 
  20756.  
  20757. Description: The isascii() function tests the characters in the s argument 
  20758. string to determine if the character corresponds to an ASCII value.  This 
  20759. includes characters with values from 0 to 127. 
  20760.  
  20761. ____________ 
  20762.  
  20763. Value returned: 
  20764.  
  20765. When all the characters in the argument string have a corresponding ASCII 
  20766. value, the isascii() function returns a non-zero value.  If any of the 
  20767. characters are not ASCII, the function returns zero. 
  20768.  
  20769.  
  20770. ΓòÉΓòÉΓòÉ 14.18.12. iscntrl() ΓòÉΓòÉΓòÉ
  20771.  
  20772. iscntrl()   Primitive 
  20773.  
  20774. Purpose: Tells if characters are in the control character set. 
  20775.  
  20776. ____________ 
  20777.  
  20778. Syntax:  int iscntrl(str s) 
  20779.  
  20780. ____________ 
  20781.  
  20782. Description: The iscntrl() function tests the characters in the s argument 
  20783. string to determine if their value corresponds to a control character.  Control 
  20784. characters are those with an ASCII value between 0 and 31, and 127, the delete 
  20785. character. 
  20786.  
  20787. ____________ 
  20788.  
  20789. Value returned: 
  20790.  
  20791. When all the characters in the argument string are control characters, the 
  20792. iscntrl() function returns a non-zero value.  If any of the characters is not a 
  20793. control character, the function returns zero. 
  20794.  
  20795.  
  20796. ΓòÉΓòÉΓòÉ 14.18.13. isdigit() ΓòÉΓòÉΓòÉ
  20797.  
  20798. isdigit()   Primitive 
  20799.  
  20800. Purpose: Tells if characters represent numbers. 
  20801.  
  20802. ____________ 
  20803.  
  20804. Syntax:  int isdigit(str s) 
  20805.  
  20806. ____________ 
  20807.  
  20808. Description: The isdigit() function tests the characters in the s argument 
  20809. string to determine if they are an ASCII representation of a digit.  A 
  20810. character is deemed to be a digit if it is in the set of 0 to 9. 
  20811.  
  20812. ____________ 
  20813.  
  20814. Value returned: 
  20815.  
  20816. When all the characters in the argument string are digits, the isdigit() 
  20817. function returns a non-zero value.  If any of the characters does not represent 
  20818. a numeral, the function returns zero. 
  20819.  
  20820.  
  20821. ΓòÉΓòÉΓòÉ 14.18.14. isgraph() ΓòÉΓòÉΓòÉ
  20822.  
  20823. isgraph()   Primitive 
  20824.  
  20825. Purpose: Tells if characters have visible printing representation. 
  20826.  
  20827. ____________ 
  20828.  
  20829. Syntax:  int isgraph(str s) 
  20830.  
  20831. ____________ 
  20832.  
  20833. Description: The isgraph() function tests the characters in the s argument 
  20834. string to determine if they are printing characters.  The isgraph() function 
  20835. does not consider the space a printing character, as the isprint() function 
  20836. does.  A character is deemed graphic if its ASCII value is within the range of 
  20837. 33 to 126. 
  20838.  
  20839. ____________ 
  20840.  
  20841. Value returned: 
  20842.  
  20843. When all the characters in the argument string are printable, the isgraph() 
  20844. function returns a non-zero value.  If any of the characters is non-printable 
  20845. or is a space, the function returns zero. 
  20846.  
  20847.  
  20848. ΓòÉΓòÉΓòÉ 14.18.15. islower() ΓòÉΓòÉΓòÉ
  20849.  
  20850. islower()   Primitive 
  20851.  
  20852. Purpose: Tells if characters are lower-case letters. 
  20853.  
  20854. ____________ 
  20855.  
  20856. Syntax:  int islower(str s) 
  20857.  
  20858. ____________ 
  20859.  
  20860. Description: The islower() function tests the characters in the s argument 
  20861. string to determine if they are lower-case letters.  The characters a to z are 
  20862. considered lower- case. 
  20863.  
  20864. ____________ 
  20865.  
  20866. Value returned: 
  20867.  
  20868. When all the characters in the argument string are lower-case, the islower() 
  20869. function returns a non-zero value.  If the string contains any characters that 
  20870. are not lower-case, the function returns zero. 
  20871.  
  20872.  
  20873. ΓòÉΓòÉΓòÉ 14.18.16. isprint() ΓòÉΓòÉΓòÉ
  20874.  
  20875. isprint()   Primitive 
  20876.  
  20877. Purpose: Tells if characters have printable representation. 
  20878.  
  20879. ____________ 
  20880.  
  20881. Syntax:  int isprint(str s) 
  20882.  
  20883. ____________ 
  20884.  
  20885. Description: The isprint() function tests the characters in the s argument 
  20886. string to determine if they are printing characters.  The isprint() function 
  20887. considers the space a printing character, whereas the isgraph() function does 
  20888. not.  A character is deemed printable if its ASCII value is within the range of 
  20889. 32 to 126. 
  20890.  
  20891. ____________ 
  20892.  
  20893. Value returned: 
  20894.  
  20895. When all the characters in the argument string are printable, the isprint() 
  20896. function returns a non-zero value.  If the string contains any characters that 
  20897. are not printable, the function returns zero. 
  20898.  
  20899.  
  20900. ΓòÉΓòÉΓòÉ 14.18.17. ispunct() ΓòÉΓòÉΓòÉ
  20901.  
  20902. ispunct()   Primitive 
  20903.  
  20904. Purpose: Tells if characters represent punctuation. 
  20905.  
  20906. ____________ 
  20907.  
  20908. Syntax:  int ispunct(str s) 
  20909.  
  20910. ____________ 
  20911.  
  20912. Description: The ispunct() function tests the characters in the s argument 
  20913. string to determine if they are punctuation.  A character is deemed to be 
  20914. punctuation if its ASCII value falls in any of the following ranges:  33 - 47, 
  20915. 58 - 64, 91 - 96, 123 - 126. 
  20916.  
  20917. ____________ 
  20918.  
  20919. Value returned: 
  20920.  
  20921. When all the characters in the argument string are punctuation, the ispunct() 
  20922. function returns a non-zero value.  If any of the characters does not represent 
  20923. punctuation, the function returns zero. 
  20924.  
  20925.  
  20926. ΓòÉΓòÉΓòÉ 14.18.18. isspace() ΓòÉΓòÉΓòÉ
  20927.  
  20928. isspace()   Primitive 
  20929.  
  20930. Purpose: Tells if characters are white-space. 
  20931.  
  20932. ____________ 
  20933.  
  20934. Syntax:  int isspace(str s) 
  20935.  
  20936. ____________ 
  20937.  
  20938. Description: The isspace() function tests the characters in the s argument 
  20939. string to determine if they are white-space characters.  White- space 
  20940. characters are defined as space, tab, carriage return, line feed, form feed and 
  20941. vertical tab.  The ASCII values of these characters are described by the set 9 
  20942. to 13 and 32. 
  20943.  
  20944. ____________ 
  20945.  
  20946. Value returned: 
  20947.  
  20948. When all the characters in the argument string are white-space, the isspace() 
  20949. function returns a non-zero value.  If any of the characters does not represent 
  20950. white- space, the function returns zero. 
  20951.  
  20952.  
  20953. ΓòÉΓòÉΓòÉ 14.18.19. isupper() ΓòÉΓòÉΓòÉ
  20954.  
  20955. isupper()   Primitive 
  20956.  
  20957. Purpose: Tells if characters are lower-case letters. 
  20958.  
  20959. ____________ 
  20960.  
  20961. Syntax:  int isupper(str s) 
  20962.  
  20963. ____________ 
  20964.  
  20965. Description: The isupper() function tests the characters in the s argument 
  20966. string to determine if they are upper-case letters.  The characters A to Z are 
  20967. considered upper- case. 
  20968.  
  20969. ____________ 
  20970.  
  20971. Value returned: 
  20972.  
  20973. When all the characters in the argument string are upper-case, the isupper() 
  20974. function returns a non-zero value.  If the string contains any characters that 
  20975. are not upper-case, the function returns zero. 
  20976.  
  20977.  
  20978. ΓòÉΓòÉΓòÉ 14.18.20. isxdigit() ΓòÉΓòÉΓòÉ
  20979.  
  20980. isxdigit()   Primitive 
  20981.  
  20982. Purpose: Tells if characters represent hexadecimal numbers. 
  20983.  
  20984. ____________ 
  20985.  
  20986. Syntax:  int isxdigit(str s) 
  20987.  
  20988. ____________ 
  20989.  
  20990. Description: The isxdigit() function tests the characters in the s argument 
  20991. string to determine if they are an ASCII representation of a hexadecimal digit. 
  20992. A character is deemed to be a hexadecimal digit if it is in the set of 0 to 9 
  20993. and either A to F or a to f. 
  20994.  
  20995. ____________ 
  20996.  
  20997. Value returned: 
  20998.  
  20999. When all the characters in the argument string are hexadecimal digits, the 
  21000. isxdigit() function returns a non-zero value.  If any of the characters does 
  21001. not represent a hexadecimal number, the function returns zero. 
  21002.  
  21003.  
  21004. ΓòÉΓòÉΓòÉ 14.18.21. length() ΓòÉΓòÉΓòÉ
  21005.  
  21006. length()   Primitive 
  21007.  
  21008. Purpose: Tells the length of a specified string. 
  21009.  
  21010. ____________ 
  21011.  
  21012. Syntax: int length(str s) 
  21013.  
  21014. ____________ 
  21015.  
  21016. Description: The length() function reports the length of the s argument string. 
  21017.  
  21018. ____________ 
  21019.  
  21020. Value returned: The value returned by length is the number of characters in the 
  21021. string.  If the s argument does not represent a defined string, the length will 
  21022. be reported as 0. 
  21023.  
  21024. ____________ Compatibility: This function is used in the same manner as the 
  21025. like-named AWK function. 
  21026.  
  21027.  
  21028. ΓòÉΓòÉΓòÉ 14.18.22. ltrim() ΓòÉΓòÉΓòÉ
  21029.  
  21030. ltrim()   PEL 
  21031.  
  21032. Purpose: Deletes specified characters from beginning of line. 
  21033.  
  21034. ____________ 
  21035.  
  21036. Syntax: str ltrim(str s [, str t]) 
  21037.  
  21038. ____________ 
  21039.  
  21040. Description: The ltrim() function creates a new string from the s argument, in 
  21041. which the characters in the t argument have been stripped from the left side of 
  21042. the string.  The new string will not begin with any of the characters specified 
  21043. by t. 
  21044.  
  21045. If the t argument is omitted, all white-space will be stripped from the left 
  21046. end of the line.  For the purpose of this function, white-space is defined as 
  21047. spaces and tabs. 
  21048.  
  21049. ____________ 
  21050.  
  21051. Value returned: The value returned by the ltrim() function is the newly created 
  21052. string. 
  21053.  
  21054. See also: trim() 
  21055.  
  21056.  
  21057. ΓòÉΓòÉΓòÉ 14.18.23. match() ΓòÉΓòÉΓòÉ
  21058.  
  21059. match()   Primitive 
  21060.  
  21061. Purpose: Returns the position of the first occurrence of a matching string. 
  21062.  
  21063. ____________ 
  21064.  
  21065. Syntax: int match(str s, str regex, [int ignoreCase]) 
  21066.  
  21067. ____________ 
  21068.  
  21069. Description: The match() function searches the s argument for the first 
  21070. occurrence of text matching the regex argument.  The function then reports the 
  21071. position in the s string at which the match occurred. 
  21072.  
  21073. The regex argument is a regular expression, using the special characters 
  21074. defined for regular expressions.  These characters are described in the 
  21075. "Regular Expressions" chapter of the PREDITOR/2 User's Guide. The special 
  21076. meaning of these characters is in effect without regard to the state of the 
  21077. search_flags variable.  The scope of the match is always maximal. 
  21078.  
  21079. By default, match() is case sensitive.  If you specify the ignoreCase argument 
  21080. to 1, the match() function will be case insensitive. 
  21081.  
  21082. ____________ 
  21083.  
  21084. Value returned: The value returned by the match() function is the ordinal 
  21085. position at which the matching text begins. If no matches were found, or if one 
  21086. of the arguments was not a valid string, the function returns a zero value. 
  21087.  
  21088. ____________ 
  21089.  
  21090. See also: RSTART, RLENGTH 
  21091.  
  21092.  
  21093. ΓòÉΓòÉΓòÉ 14.18.24. ord() ΓòÉΓòÉΓòÉ
  21094.  
  21095. ord()   Primitive 
  21096.  
  21097. Purpose: Casts a one character string as an integer value. 
  21098.  
  21099. ____________ 
  21100.  
  21101. Syntax: int ord(str s) 
  21102.  
  21103. ____________ 
  21104.  
  21105. Description: The ord() function reports the ASCII value of the character in the 
  21106. s string argument.  If the string argument contains more than one character, 
  21107. only the first character will be considered. 
  21108.  
  21109. ____________ 
  21110.  
  21111. Value returned: The value returned by the ord() function is the ASCII value 
  21112. corresponding to the first character of the s argument.  If the string is empty 
  21113. or has not been defined, the function will return a zero value. 
  21114.  
  21115.  
  21116. ΓòÉΓòÉΓòÉ 14.18.25. prefix() ΓòÉΓòÉΓòÉ
  21117.  
  21118. prefix()   Primitive 
  21119.  
  21120. Purpose: Obtain a sub-string from the beginning of a string. 
  21121.  
  21122. ____________ 
  21123.  
  21124. Syntax: str prefix(str s, int num) 
  21125.  
  21126. ____________ 
  21127.  
  21128. Description: The prefix() function creates a new string which is a sub-string 
  21129. of the s argument.  The sub-string is copied from the beginning of the string 
  21130. argument. The number of characters copied into the new string is determined by 
  21131. the value of the num argument. 
  21132.  
  21133. ____________ 
  21134.  
  21135. Value returned: The value returned by the prefix() function is the newly 
  21136. created string.  If the num argument is greater than the length of the string, 
  21137. the entire string is returned.  If the supplied string is empty, an empty 
  21138. string is returned. 
  21139.  
  21140.  
  21141. ΓòÉΓòÉΓòÉ 14.18.26. quote_regex() ΓòÉΓòÉΓòÉ
  21142.  
  21143. quote_regex()   PEL 
  21144.  
  21145. Purpose: Converts possible metacharacters to literals. 
  21146.  
  21147. ____________ 
  21148.  
  21149. Syntax: str quote_regex(str s) 
  21150.  
  21151. ____________ 
  21152.  
  21153. Description: The quote_regex() function creates a new string based on the one 
  21154. provided in the s argument.  The new string is identical to the argument except 
  21155. that a backslash precedes each character that has special meaning in regular 
  21156. expressions.  These characters, called metacharacters, are described in the 
  21157. "Regular Expressions" chapter of the User's Manual.  The preceding backslash 
  21158. ensures that these characters will not be given special meaning. 
  21159.  
  21160. This function is useful when you wish to search for an ordinary string which is 
  21161. to used as part of a larger regular expression. 
  21162.  
  21163. ____________ 
  21164.  
  21165. Value returned: The value returned by the quote_regex() function is the newly 
  21166. created string. 
  21167.  
  21168.  
  21169. ΓòÉΓòÉΓòÉ 14.18.27. rindex() ΓòÉΓòÉΓòÉ
  21170.  
  21171. rindex()   Primitive 
  21172.  
  21173. Purpose: Reports position of the last occurrence of a sub-string. 
  21174.  
  21175. ____________ 
  21176.  
  21177. Syntax: int rindex(str s, str sub) 
  21178.  
  21179. ____________ 
  21180.  
  21181. Description: The rindex() function searches the s string argument for the 
  21182. right-most occurrence of the sub- string in the sub argument.  The function 
  21183. then reports the position in the s string at which the sub-string occurred. 
  21184.  
  21185. ____________ 
  21186.  
  21187. Value returned: The value returned by the rindex() function is the ordinal 
  21188. position at which the sub-string begins. If no matches were found, or if one of 
  21189. the arguments was not a valid string, the function returns a zero value. 
  21190.  
  21191. ____________ 
  21192.  
  21193. See also:  index() 
  21194.  
  21195.  
  21196. ΓòÉΓòÉΓòÉ 14.18.28. sprintf() ΓòÉΓòÉΓòÉ
  21197.  
  21198. sprintf()   Primitive 
  21199.  
  21200. Purpose: Creates a formatted string. 
  21201.  
  21202. ____________ 
  21203.  
  21204. Syntax: str sprintf(str fmt [, any args,...]) 
  21205.  
  21206. ____________ 
  21207.  
  21208. Description: The sprintf() function creates a string, formatted as indicated by 
  21209. the fmt and args arguments. 
  21210.  
  21211. The fmt string argument may contain both text to be printed literally and 
  21212. format control characters. Format control characters specify how the args 
  21213. arguments are to be formatted and included in the output string.  These format 
  21214. control characters are described under the fprintf() function. 
  21215.  
  21216. ____________ 
  21217.  
  21218. Value returned: 
  21219.  
  21220. The sprintf() function returns the newly created string on successful 
  21221. completion.  Upon failure, normally due to incorrectly formed arguments, the 
  21222. function returns an empty string. 
  21223.  
  21224.  
  21225. ΓòÉΓòÉΓòÉ 14.18.29. strmax() ΓòÉΓòÉΓòÉ
  21226.  
  21227. strmax()   Primitive 
  21228.  
  21229. Purpose: Returns the string with the highest lexical value. 
  21230.  
  21231. ____________ 
  21232.  
  21233. Syntax: str strmax(str s1 [, str s2 ...]) 
  21234.  
  21235. ____________ 
  21236.  
  21237. Description: The strmax() function creates a new string that is a copy of the 
  21238. argument string having the greatest lexical value.  This function is useful 
  21239. primarily in sorting.  The following examples will clarify: 
  21240.  
  21241.   strmax("cat","dog")
  21242.    returns "dog".
  21243.  
  21244.   strmax("xxxx","XXXX")
  21245.    returns "xxxx".
  21246.  
  21247.   strmax("20","100")
  21248.    returns "20".
  21249.  
  21250.   strmax("AAA","AAAA")
  21251.    returns "AAAA".
  21252.  
  21253. ____________ 
  21254.  
  21255. Value returned: Upon successful completion, strmax() returns the new string. 
  21256.  
  21257.  
  21258. ΓòÉΓòÉΓòÉ 14.18.30. strmin() ΓòÉΓòÉΓòÉ
  21259.  
  21260. strmin()   Primitive 
  21261.  
  21262. Purpose: Returns the string with the lowest lexical value. 
  21263.  
  21264. ____________ 
  21265.  
  21266. Syntax: str strmin(str s1 [, str s2 ...]) 
  21267.  
  21268. ____________ 
  21269.  
  21270. Description: The strmin() function creates a new string that is a copy of the 
  21271. argument string having the lowest lexical value.  This function is primarily 
  21272. useful in sorting.  For examples see the strmax() function above.  In each case 
  21273. strmin() would return the opposite argument to that returned by strmax(). 
  21274.  
  21275. ____________ 
  21276.  
  21277. Value returned: Upon successful completion, strmin() returns the new string. 
  21278.  
  21279.  
  21280. ΓòÉΓòÉΓòÉ 14.18.31. strrepeat() ΓòÉΓòÉΓòÉ
  21281.  
  21282. strrepeat()   PEL 
  21283.  
  21284. Purpose: Makes a string by concatenating repetitions of another. 
  21285.  
  21286. ____________ 
  21287.  
  21288. Syntax: str strrepeat(str s, int num) 
  21289.  
  21290. ____________ 
  21291.  
  21292. Description: The strrepeat() function creates a new string containing 
  21293. repetitions of the string indicated by the s  argument.  The number of 
  21294. repetitions contained in the new string is determined by the value of the num 
  21295. argument. 
  21296.  
  21297. ____________ 
  21298.  
  21299. Value returned: The value returned by the strrepeat() function is the newly 
  21300. defined string. 
  21301.  
  21302.  
  21303. ΓòÉΓòÉΓòÉ 14.18.32. strtok() ΓòÉΓòÉΓòÉ
  21304.  
  21305. strtok()   PEL 
  21306.  
  21307. Purpose:  This function parses a string into sub strings delimited by the 
  21308. regular expression delimeter specified. 
  21309.  
  21310. ____________ 
  21311.  
  21312. Syntax:   strtok( str to_parse, regex delimeter ) 
  21313.  
  21314. ____________ 
  21315.  
  21316. Arguments: 
  21317.  
  21318. o to_parse  - the string to parse 
  21319. o delimeter - the regex delimeter of the sub-strings in str 
  21320.  
  21321. Description: This function works similarly to the C function strtok(), but not 
  21322. identically.  The first call to strtok() includes the parameters to_parse and 
  21323. delimeter, and returns the first sub-string in to_parse.  Sub-sequent calls to 
  21324. strtok() provide no parameters, and return the subsequent sub-strings in 
  21325. to_parse.  When no more sub-strings can be found in to_parse, strtok() returns 
  21326. "". For example, to parse the string "one, two, three, four" using strtok(): 
  21327. str    = "one, two, three, four" substr  = strtok( str, "[, ]+" )  # delimit by 
  21328. >= 1 commas # or spaces  do message( substr ) while ( (substr = strtok()) ) 
  21329. The above code would displays messages for each of the four strings delimited 
  21330. by commas or spaces in str. 
  21331.  
  21332. ____________ 
  21333.  
  21334. Value returned:  The next sub-string, or "" if no more sub-strings 
  21335.  
  21336.  
  21337. ΓòÉΓòÉΓòÉ 14.18.33. sub() ΓòÉΓòÉΓòÉ
  21338.  
  21339. sub()   Primitive 
  21340.  
  21341. Purpose: Replace first occurrence of a substring with another 
  21342.  
  21343. ____________ 
  21344.  
  21345. Syntax: int sub(str regex, str repl, str s) 
  21346.  
  21347. ____________ 
  21348.  
  21349. Description: The sub() function substitutes the specified replacement string, 
  21350. repl, for the left-most substring matching the regex argument within string S. 
  21351. The regex argument is a regular expression. 
  21352.  
  21353. The special characters that may be used in the regex argument are those defined 
  21354. for regular expressions.  These characters are described in the "Regular 
  21355. Expressions" chapter of the User's Manual. The special meaning of these 
  21356. characters may be used without regard to the state of the search_flags 
  21357. variable.  The scope of the match is always maximal. 
  21358.  
  21359. ____________ 
  21360.  
  21361. Value returned: The value returned by the sub() variable is one (TRUE) if a 
  21362. match was found.  The function returns zero (FALSE) if no match was found. 
  21363.  
  21364.  
  21365. ΓòÉΓòÉΓòÉ 14.18.34. substr() ΓòÉΓòÉΓòÉ
  21366.  
  21367. substr()   Primitive 
  21368.  
  21369. Purpose: Create a new string from a portion of another string. 
  21370.  
  21371. ____________ 
  21372.  
  21373. Syntax: str substr(str s, int pos [, int count]) 
  21374.  
  21375. ____________ 
  21376.  
  21377. Description: The substr() function creates a string by making a copy of a 
  21378. portion of the s argument.  Characters are copied into the new string starting 
  21379. with the character indicated by the pos argument.  The pos argument describes 
  21380. the ordinal position of the starting character within the string. 
  21381.  
  21382. The count argument tells the number of characters to be copied.  If this number 
  21383. exceeds the number of characters available for copying, all available 
  21384. characters are copied into the new string.  If the count argument is omitted, 
  21385. the remainder of the string is copied beginning at the pos position. 
  21386.  
  21387. ____________ 
  21388.  
  21389. Value returned: Upon successful completion, the substr() function returns the 
  21390. newly created string.  If an empty string or negative number has been provided 
  21391. as an argument, the function returns an empty string. 
  21392.  
  21393.  
  21394. ΓòÉΓòÉΓòÉ 14.18.35. suffix() ΓòÉΓòÉΓòÉ
  21395.  
  21396. suffix()   Primitive 
  21397.  
  21398. Purpose: Creates a string from the tail of another string. 
  21399.  
  21400. ____________ 
  21401.  
  21402. Syntax: str suffix(str s, int count) 
  21403.  
  21404. ____________ 
  21405.  
  21406. Description: The suffix() function creates a string by making a copy of a 
  21407. portion of the s argument.  The number of characters copied into the new string 
  21408. is indicated by the count argument.  Count characters are copied from the end 
  21409. of the s string to the new string. 
  21410.  
  21411. ____________ 
  21412.  
  21413. Value returned: Upon successful completion, the suffix() function returns the 
  21414. newly created string.  If an empty string or negative number has been provided 
  21415. as an argument, the function returns an empty string. 
  21416.  
  21417.  
  21418. ΓòÉΓòÉΓòÉ 14.18.36. tolower() ΓòÉΓòÉΓòÉ
  21419.  
  21420. tolower()   Primitive 
  21421.  
  21422. Purpose: Converts all letters in a string to lower-case. 
  21423.  
  21424. ____________ 
  21425.  
  21426. Syntax: str tolower(str s) 
  21427.  
  21428. ____________ 
  21429.  
  21430. Description: The tolower() function creates a new string from the s argument in 
  21431. which all upper-case letters have been converted to lower-case.  The numbers 
  21432. punctuation and white-space in the string are not modified by this function. 
  21433.  
  21434. ____________ 
  21435.  
  21436. Value returned: The value returned by the tolower() function is the newly 
  21437. created string.  If the argument represents an empty string, the function will 
  21438. return an empty string. 
  21439.  
  21440.  
  21441. ΓòÉΓòÉΓòÉ 14.18.37. toupper() ΓòÉΓòÉΓòÉ
  21442.  
  21443. toupper()   Primitive 
  21444.  
  21445. Purpose: Converts all letters in a string to upper-case. 
  21446.  
  21447. ____________ 
  21448.  
  21449. Syntax: str toupper(str s) 
  21450.  
  21451. ____________ 
  21452.  
  21453. Description: The toupper() function creates a new string from the s argument in 
  21454. which all lower-case letters have been converted to upper-case.  The numbers 
  21455. punctuation and white-space in the string are not modified by this function. 
  21456.  
  21457. ____________ 
  21458.  
  21459. Value returned: The value returned by the toupper() function is the newly 
  21460. created string.  If the argument represents an empty string, the function will 
  21461. return an empty string. 
  21462.  
  21463.  
  21464. ΓòÉΓòÉΓòÉ 14.18.38. trans() ΓòÉΓòÉΓòÉ
  21465.  
  21466. trans()   PEL 
  21467.  
  21468. Purpose: Translates characters in one string to those in another. 
  21469.  
  21470. ____________ 
  21471.  
  21472. Syntax: str trans(str s, str tr, str repl) 
  21473.  
  21474. ____________ 
  21475.  
  21476. Description: The trans() function creates a new string, translating individual 
  21477. characters of one string to those found in another.  For those familiar with 
  21478. the UNIX_ operating environment, this function works similarly to the "tr" 
  21479. command found in that environment. Each character in the s argument is compared 
  21480. to the characters in tr.  If a character in s matches the character at position 
  21481. n of tr, it is replaced by character n of repl.  If the tr string is longer 
  21482. than the repl string, there will be some characters in tr that have no 
  21483. corresponding character in the repl argument.  In these cases, the character in 
  21484. tr is deleted from the s string when creating the new string. 
  21485.  
  21486. ____________ 
  21487.  
  21488. Value returned: The value returned by the trans() function is the newly created 
  21489. string.  If the first or second argument supplied to this function is an empty 
  21490. string, the function will fail and an empty string is returned. 
  21491.  
  21492.  
  21493. ΓòÉΓòÉΓòÉ 14.18.39. trim() ΓòÉΓòÉΓòÉ
  21494.  
  21495. trim()   PEL 
  21496.  
  21497. Purpose: Deletes specified characters from end of line. 
  21498.  
  21499. ____________ 
  21500.  
  21501. Syntax: str trim(str s [, str t]) 
  21502.  
  21503. ____________ 
  21504.  
  21505. Description: The trim() function creates a new string from the s argument, in 
  21506. which the characters in the t argument have been stripped from the right side 
  21507. of the string.  The new string will not end with any of the characters 
  21508. specified by t. 
  21509.  
  21510. If the t argument is omitted, all white-space will be stripped from the right 
  21511. end of the line.  For the purpose of this function, white-space is defined as 
  21512. spaces and tabs. 
  21513.  
  21514. ____________ 
  21515.  
  21516. Value returned: The value returned by the trim() function is the newly created 
  21517. string.  If any of the arguments do not represent a defined string, the 
  21518. function will return an empty string. 
  21519.  
  21520.  
  21521. ΓòÉΓòÉΓòÉ 14.19. System Interface ΓòÉΓòÉΓòÉ
  21522.  
  21523. The variables and functions in the System Interface category provide for low 
  21524. level file input/output and other useful DOS services.  In addition, this 
  21525. category contains a few higher level file-handling utilities, such as f 
  21526. ilecopy() and filemove(). 
  21527.  
  21528. Many of these functions are similar, if not identical, to functions provided by 
  21529. the major  compilers.  For this reason the issue of compatibility with similar 
  21530. functions is addressed in the complete description of these functions. These 
  21531. complete descriptions may be found in the Library Reference Manual. 
  21532.  
  21533. The area where PREDITOR/2 functions most commonly deviate from their C 
  21534. counterparts is that of return value.  PREDITOR/2 functions adhere to a 
  21535. convention of returning a non-zero value on success and a zero value on 
  21536. failure, whenever reasonable. The errno variable provides further information 
  21537. when errors occur. 
  21538.  
  21539. The file handles provided as variables here allow access to the standard 
  21540. devices.  Such devices as stdout and stderr may be redirected or even closed 
  21541. without affecting editor operations. 
  21542.  
  21543. abort() 
  21544.           Terminate the editing session abnormally. 
  21545. bld_fnam() 
  21546.           To build a fully qualified path out of its components 
  21547. buildpath() 
  21548.           Creates an absolute path from a partial or relative one. 
  21549. chdir() 
  21550.           Set the default directory. 
  21551. close_pipes() 
  21552.           Close the pipes opened by create_pipes() 
  21553. create_pipes() 
  21554.           Opens I/O pipes to communicate with other programs 
  21555. create_temp_name() 
  21556.           Creates a string containing a unique filename. 
  21557. disk_free() 
  21558.           Reports storage space available on a drive. 
  21559. dos_box() 
  21560.           Execute system commands from within the editor. 
  21561. dos_drive() 
  21562.           Obtain or set the current drive. 
  21563. dos_verify_state() 
  21564.           Obtain or set the verify flag. 
  21565. dos_window() 
  21566.           Run a command in a window. 
  21567. editor_path() 
  21568.           Tells where the editor Home Directory is. 
  21569. fclose() 
  21570.           Close the file associated with a handle. 
  21571. fgetc() 
  21572.           Gets a character from a file. 
  21573. fgets() 
  21574.           To get a string from a file handle. 
  21575. filecopy() 
  21576.           File copying utility. 
  21577. filemode() 
  21578.           Obtain or set the attributes of a file if it exists. 
  21579. filemove() 
  21580.           File moving utility 
  21581. filesize() 
  21582.           Determine the size of a file. 
  21583. filetime() 
  21584.           Obtain or set the timestamp associated with a file. 
  21585. filter() 
  21586.           Processes a portion of a buffer through a command. 
  21587. findfirst() 
  21588.           Begin a directory search. 
  21589. findnext() 
  21590.           Continue a directory search. 
  21591. fopen() 
  21592.           Open a file for processing. 
  21593. fprintf() 
  21594.           Writes a formatted string to a device. 
  21595. fputc() 
  21596.           Puts a character in a file. 
  21597. fread() 
  21598.           Read a portion of a file into the active buffer. 
  21599. fseek() 
  21600.           Move the file pointer. 
  21601. ftell() 
  21602.           Reports current position of file pointer. 
  21603. fwrite() 
  21604.           Write a block of text to a file. 
  21605. getcwd() 
  21606.           Obtain the current working directory of a drive. 
  21607. idle() 
  21608.           Allows processing of the message queue 
  21609. mkdir() 
  21610.           Create a new directory. 
  21611. path_ext() 
  21612.           Extract the filename extension from a string. 
  21613. path_fname() 
  21614.           Extract a filename from a string. 
  21615. path_path() 
  21616.           To return the path portion of a fully qualified path and filename. 
  21617. pgetc() 
  21618.           Read a character from a read pipe. Does not return until a character 
  21619.           is available. 
  21620. pgets() 
  21621.           Read a string from an input pipe. Does not return until data is 
  21622.           available. 
  21623. pop_dir() 
  21624.           Makes previously stored directory current. 
  21625. pputc() 
  21626.           Write a character into an output pipe. 
  21627. pputs() 
  21628.           Write a string into an output pipe. 
  21629. pread() 
  21630.           Read a string from an input pipe into the active buffer. 
  21631. process_pipes() 
  21632.           Process strings from an input pipe. Issues PIPE_DATA_EVENTs when data 
  21633.           is available. 
  21634. push_dir() 
  21635.           Saves the current directory and logs to new one. 
  21636. pwd() 
  21637.           Displays the current working directory 
  21638. pwrite() 
  21639.           Write a block of text to an output pipe. 
  21640. query_pid() 
  21641.           Query the process id of a pipe. 
  21642. rename() 
  21643.           Change the name of a file or series of files. 
  21644. rmdir() 
  21645.           Delete a file directory. 
  21646. spawn() 
  21647.           Starts a detached process 
  21648. system() 
  21649.           Allows command execution without exiting to OS2 
  21650. system_key() 
  21651.           Prompts user for operating system command. 
  21652. unlink() 
  21653.           Delete a file. 
  21654. unlock_edit_files() 
  21655.           Unlocks all files that have been locked. 
  21656. unlock_file() 
  21657.           Unlocks a filesthat has been locked. 
  21658.  
  21659.  
  21660. ΓòÉΓòÉΓòÉ 14.19.1. abort() ΓòÉΓòÉΓòÉ
  21661.  
  21662. abort()   Primitive 
  21663.  
  21664. Purpose: Terminate the editing session abnormally. 
  21665.  
  21666. ____________ 
  21667.  
  21668. Syntax:  void abort([int code]) 
  21669.  
  21670. ____________ 
  21671.  
  21672. Description: abort() immediately terminates the editing session, returning 
  21673. control to the operating system.  Any edits not previously saved are lost.  In 
  21674. addition, no "clean-up" is attempted and therefore no temporary files are 
  21675. deleted. 
  21676.  
  21677. The code argument determines what exit code is returned to the operating 
  21678. system. Values for code of 255 and greater return an exit code of 255.  If the 
  21679. code is not supplied, an exit code of three is used. 
  21680.  
  21681. ____________ 
  21682.  
  21683. Value returned: 
  21684.  
  21685. abort() returns no value since it never returns. 
  21686.  
  21687. ____________ 
  21688.  
  21689. Compatibility: 
  21690.  
  21691. This function is similar to the ANSI C abort() function except that the exit 
  21692. code may be specified. 
  21693.  
  21694.  
  21695. ΓòÉΓòÉΓòÉ 14.19.2. bld_fnam() ΓòÉΓòÉΓòÉ
  21696.  
  21697. bld_fnam()   PEL 
  21698.  
  21699. Purpose:  To build a fully qualified path out of its components 
  21700.  
  21701. ____________ 
  21702.  
  21703. Syntax:   bld_fnam( str path, str name, str ext ) 
  21704.  
  21705. ____________ 
  21706.  
  21707. Arguments: 
  21708.  
  21709. o path   -  path to the file 
  21710. o name   -  name of the file 
  21711. o ext    -  extension of the file 
  21712.  
  21713. Description: 
  21714.  
  21715. ____________ 
  21716.  
  21717. Value returned:  The fully qualified path and filename 
  21718.  
  21719.  
  21720. ΓòÉΓòÉΓòÉ 14.19.3. buildpath() ΓòÉΓòÉΓòÉ
  21721.  
  21722. buildpath()   Primitive 
  21723.  
  21724. Purpose: Creates an absolute path from a partial or relative one. 
  21725.  
  21726. ____________ 
  21727.  
  21728. Syntax:  str buildpath(str path) 
  21729.  
  21730. ____________ 
  21731.  
  21732. Description: The buildpath() function constructs an explicitly defined path 
  21733. from the partial or relative path supplied in the path argument.  For example, 
  21734. if you are currently logged to drive C: and your current working directory is 
  21735. \BIN\POLY the following results may be obtained: 
  21736.  
  21737.  
  21738.     fullpath = buildpath("TEST")
  21739.  
  21740. then
  21741.     fullpath == "c:\bin\poly\test"
  21742.  
  21743. evaluates to TRUE.
  21744.  
  21745. The buildpath function also expands directories referenced as ".." or ".". This 
  21746. function may also be used to convert paths containing forward slashes or mixed 
  21747. forward and backslashes to all backslashes. This is particularly useful when 
  21748. comparing paths. 
  21749.  
  21750. ____________ 
  21751.  
  21752. Value returned: 
  21753.  
  21754. The value returned by the buildpath function is the string containing the 
  21755. explicit, fully expanded path. 
  21756.  
  21757.  
  21758. ΓòÉΓòÉΓòÉ 14.19.4. chdir() ΓòÉΓòÉΓòÉ
  21759.  
  21760. chdir()   Primitive 
  21761.  
  21762. Purpose: Set the default directory. 
  21763.  
  21764. ____________ 
  21765.  
  21766. Syntax:  int chdir(str path) 
  21767.  
  21768. ____________ 
  21769.  
  21770. Description: chdir() changes the current working directory to the directory 
  21771. contained in the path argument.  The function will fail if path does not 
  21772. specify an existing directory. 
  21773.  
  21774. The path argument may contain a drive element.  When path contains a drive 
  21775. element, that drive becomes the default drive.  When using this function to 
  21776. change drives you must specify the drive letter followed by a colon as a 
  21777. minimum. 
  21778.  
  21779. When the path argument is a literal string rather than a variable, it must be 
  21780. enclosed in double quotes.  Backslashes or forward- slashes may be used as path 
  21781. separators. Keep in mind that backslashes must be quoted with a second 
  21782. backslash in PEL source code. 
  21783.  
  21784. ____________ 
  21785.  
  21786. Value returned: 
  21787.  
  21788. When chdir is successful a non-zero value is returned.  A returned value of 
  21789. zero indicates failure. 
  21790.  
  21791. ____________ 
  21792.  
  21793. Compatibility: 
  21794.  
  21795. chdir() differs from like-named C function supported by major compilers in that 
  21796. the default drive may be changed with this function.  Return values also 
  21797. differ. 
  21798.  
  21799. ____________ 
  21800.  
  21801. Example: 
  21802.  
  21803. chdir("b:\\test") 
  21804.  
  21805.  
  21806. ΓòÉΓòÉΓòÉ 14.19.5. close_pipes() ΓòÉΓòÉΓòÉ
  21807.  
  21808. close_pipes()   Primitive 
  21809.  
  21810. Purpose:   Close the pipes opened by create_pipes() 
  21811.  
  21812. ____________ 
  21813.  
  21814. Syntax:   void   close_pipes([pipeid pipe]) 
  21815.  
  21816. ____________ 
  21817.  
  21818. Description: Closes the specified pipeid.  If the pipeid is not specified, then 
  21819. the last pipe that was opened will be closed. 
  21820.  
  21821. ____________ 
  21822.  
  21823. Value returned: 
  21824.  
  21825.  
  21826. ΓòÉΓòÉΓòÉ 14.19.6. create_pipes() ΓòÉΓòÉΓòÉ
  21827.  
  21828. create_pipes().   Primitive 
  21829.  
  21830. Purpose: Opens I/O pipes to communicate with other programs 
  21831.  
  21832. ____________ 
  21833.  
  21834. Syntax:  pipeid create_pipes([long buffer_size]) 
  21835.  
  21836. ____________ 
  21837.  
  21838. Description: Opens two pipes, one for input and one for output and returns a 
  21839. "Handle" to the new pipes that may be passed to other primitives such as 
  21840. process_pipes, system, pread, pwrite, etc... 
  21841.  
  21842. If the buffer_size is specified it is used as the size of the OS's pipe buffer. 
  21843. If it is not specified 1K bytes is assumed. 
  21844.  
  21845. ____________ 
  21846.  
  21847. Value returned: 
  21848.  
  21849. Handle to the new pipes. 
  21850.  
  21851.  
  21852. ΓòÉΓòÉΓòÉ 14.19.7. create_temp_name() ΓòÉΓòÉΓòÉ
  21853.  
  21854. create_temp_name()   Primitive 
  21855.  
  21856. Purpose: Creates a string containing a unique filename. 
  21857.  
  21858. ____________ 
  21859.  
  21860. Syntax: str create_temp_name([int min_size, [str extension, [str prefix]]]) 
  21861.  
  21862. ____________ 
  21863.  
  21864. Description: The create_temp_name() function creates a unique filename, using 
  21865. the path named by the TMP or TEMP environment variable.  This function provides 
  21866. the filename, including drive and path elements, in string form.  While this 
  21867. function does create the file, it does nothing to ensure that the file will 
  21868. automatically be deleted. 
  21869.  
  21870. The optional min_size argument allows you to specify the anticipated file size 
  21871. in advance.  Given this information, the function will ensure that the path 
  21872. selected for the file has adequate storage space available for the file.  The 
  21873. min_size argument represents the minimum file size in bytes. 
  21874.  
  21875. The optional extension argument allows you to specify the extension the 
  21876. temporary filename should have.  The default file extension is TMP. 
  21877.  
  21878. The optional prefix argument allows you to specify the prefix used in creating 
  21879. the temporary filename.  Only the first 3 characters of the prefix is used.  If 
  21880. the prefix is not an empty string the temporary name will contain: 
  21881.  
  21882.   pre_001.ext
  21883.  
  21884.   where pre is the prefix specified and 001 is used to make the
  21885. file
  21886.   name unique.
  21887.  
  21888. The filename provided by this function should be created before making 
  21889. subsequent calls to this function.  If the file is not created, the same 
  21890. filename could be selected again. 
  21891.  
  21892. ____________ 
  21893.  
  21894. Value returned: The value returned by the create_temp_name() function is the 
  21895. newly created string containing the filename.  If all of the directories 
  21896. designated for temporary files are full, the function will fail and return an 
  21897. empty string. 
  21898.  
  21899.  
  21900. ΓòÉΓòÉΓòÉ 14.19.8. disk_free() ΓòÉΓòÉΓòÉ
  21901.  
  21902. disk_free()   Primitive 
  21903.  
  21904. Purpose: Reports storage space available on a drive. 
  21905.  
  21906. ____________ 
  21907.  
  21908. Syntax:  int disk_free([str drive or int drive]) 
  21909.  
  21910. ____________ 
  21911.  
  21912. Description: If the drive argument is present, disk_free() reports the amount 
  21913. of free disk space for the drive specified in that argument.  The drive 
  21914. argument may be a string whose first character is the letter of the drive of 
  21915. interest.  The rest of the string is ignored.  Alternately, drive may be a 
  21916. drive number, where drive A: is 0, drive B: is 1 and so on. 
  21917.  
  21918. If drive is not supplied, disk_free() reports the amount of free disk space for 
  21919. the default drive. 
  21920.  
  21921. ____________ 
  21922.  
  21923. Value returned: 
  21924.  
  21925. The number of bytes of free disk space is returned on successful completion.  A 
  21926. value of zero is returned if the function has failed. 
  21927.  
  21928. To distinguish between a disk-full condition and an invalid drive specification 
  21929. (or other error) it is necessary to consult the errno variable. If this 
  21930. variable is zero, the disk is full. Non-zero values for errno indicate that the 
  21931. function failed. 
  21932.  
  21933.  
  21934. ΓòÉΓòÉΓòÉ 14.19.9. dos_box() ΓòÉΓòÉΓòÉ
  21935.  
  21936. dos_box()   PEL 
  21937.  
  21938. Purpose:  Execute system commands from within the editor. 
  21939.  
  21940. ____________ 
  21941.  
  21942. Syntax:   int function dos_box(cmd, flags, title) 
  21943.  
  21944. ____________ 
  21945.  
  21946. Arguments: 
  21947.  
  21948. o cmd - command to execute 
  21949. o flags - flags that are passed to the system command 
  21950. o title - string title to use for the dos box 
  21951.  
  21952. Description: The dos_box() command displays a dialog box that allows the user 
  21953. to enter system commands.  You can use the scrap buffer to paste and copy text 
  21954. to the command line.  The up and down arrow keys work like you would expect in 
  21955. an OS/2 window, displaying the last commands eneterd. Click on OK or press 
  21956. Enter to execute the command.  Click on Cancel to close the dialog. 
  21957.  
  21958. Value returned: Return code from the system() command. 
  21959.  
  21960.  
  21961. ΓòÉΓòÉΓòÉ 14.19.10. dos_drive() ΓòÉΓòÉΓòÉ
  21962.  
  21963. dos_drive()   Primitive 
  21964.  
  21965. Purpose: Obtain or set the current drive. 
  21966.  
  21967. ____________ 
  21968.  
  21969. Syntax:  str dos_drive([str id or int id]) 
  21970.  
  21971. ____________ 
  21972.  
  21973. Description: dos_drive() has two modes of operation. The mode selected depends 
  21974. on whether the id argument has been supplied. If id is present, the drive it 
  21975. specifies becomes the current default drive.  In this mode, id may be any 
  21976. string whose first character is the letter of the drive which is to become the 
  21977. default.  The rest of the string is ignored.  Alternately, id may be a drive 
  21978. number, where drive A: is 0, drive B: is 1 and so on. 
  21979.  
  21980. If id is not supplied, dos_drive() is treated as an inquiry as to which drive 
  21981. is the current default. 
  21982.  
  21983. ____________ 
  21984.  
  21985. Value returned: 
  21986.  
  21987. On success, dos_drive() returns a new string.  This string contains the letter 
  21988. of the drive which is the current default followed by a colon.  This string 
  21989. reflects the new default drive, if any has been requested. 
  21990.  
  21991. On failure, an empty string is returned. 
  21992.  
  21993.  
  21994. ΓòÉΓòÉΓòÉ 14.19.11. dos_verify_state() ΓòÉΓòÉΓòÉ
  21995.  
  21996. dos_verify_state()   Primitive 
  21997.  
  21998. Purpose: Obtain or set the verify flag. 
  21999.  
  22000. ____________ 
  22001.  
  22002. Syntax:  int dos_verify_state([int state]) 
  22003.  
  22004. ____________ 
  22005.  
  22006. Description: When the DOS verify flag is on, writes to disk are immediately 
  22007. re-read to ensure that the correct data has been written.  The 
  22008. dos_verify_state() function may be used to check and set the status of this 
  22009. flag. 
  22010.  
  22011. The state argument, if supplied, may be either zero or non-zero.  The value of 
  22012. 0 indicates that the verify flag is to be turned off, while any other value 
  22013. indicates that it is to be turned on. 
  22014.  
  22015. If the state argument is omitted, the function is treated as an inquiry only 
  22016. and the verify flag is not modified. 
  22017.  
  22018. ____________ 
  22019.  
  22020. Value returned: dos_verify_state() returns the status of the verify flag in 
  22021. effect at the time this function was called.  This function cannot fail. 
  22022.  
  22023.  
  22024. ΓòÉΓòÉΓòÉ 14.19.12. dos_window() ΓòÉΓòÉΓòÉ
  22025.  
  22026. dos_window()   Primitive 
  22027.  
  22028. Purpose: Run a command in a window. 
  22029.  
  22030. ____________ 
  22031.  
  22032. Syntax:  int dos_window([str command]) 
  22033.  
  22034. ____________ 
  22035.  
  22036. Description: The dos_window() function is like the system() function in that it 
  22037. allows you to execute a DOS command without leaving the editor. However, output 
  22038. appears in the current window rather than printing the output on a cleared 
  22039. screen.  There are some limitations on the use of this function, however, which 
  22040. are discussed below. 
  22041.  
  22042. The command to be executed is specified by the command argument.  If this 
  22043. argument is omitted the command interpreter described by the COMspeC 
  22044. environment variable is invoked.  By default this command interpreter is 
  22045. COMMAND.COM.  In this case you must type EXIT_ to return to the editor. 
  22046.  
  22047. Example:   dos_window("dir")  The output from this command may be redirected to 
  22048. a file, however, the output will continue to appear on the screen.  In 
  22049. addition, if the redirected output exceeds 16K characters, only the last 16K 
  22050. are saved in the file. 
  22051.  
  22052. Example:   dos_window(">out")  This example invokes the command interpreter and 
  22053. redirects all output to a file named OUT. 
  22054.  
  22055. The current window may be an icon or otherwise too small to display the output 
  22056. from the command.  In this case the screen is cleared and the output is 
  22057. displayed there unless it has been redirected. 
  22058.  
  22059. Some cosmetic aspects of the output are determined by the cursor location 
  22060. within the window when dos_window() is called.  If the cursor is in the upper 
  22061. left corner of the window the screen will be cleared before output begins. 
  22062. Otherwise output will appear at the cursor location overwriting any text 
  22063. already visible there. The contents of the buffer, however, is not overwritten. 
  22064. Some cautions must be observed in using this functions:  1) Do not run programs 
  22065. such as MODE that reset the display mode. 2) Do not use this function if you 
  22066. have any programs installed that boost the speed of output to the screen.  This 
  22067. includes any of the SCREEN BOOST programs included in the PolyBoost package and 
  22068. other programs that take over interrupts 10H or 29H. 
  22069.  
  22070. ____________ 
  22071.  
  22072. Value returned: 
  22073.  
  22074. The value returned by the dos_window() function is the error code returned by 
  22075. the command executed. 
  22076.  
  22077. ____________ 
  22078.  
  22079. See also:  system() 
  22080.  
  22081.  
  22082. ΓòÉΓòÉΓòÉ 14.19.13. editor_path() ΓòÉΓòÉΓòÉ
  22083.  
  22084. editor_path()   PEL 
  22085.  
  22086. Purpose: Tells where the editor Home Directory is. 
  22087.  
  22088. ____________ 
  22089.  
  22090. Syntax:  str editor_path() 
  22091.  
  22092. ____________ 
  22093.  
  22094. Description: The editor_path() function reports the directory in which the 
  22095. editor has been installed.  This is generally referred to as the editor Home 
  22096. Directory, which usually contains the editor executables, configuration file 
  22097. and function library. 
  22098.  
  22099. ____________ 
  22100.  
  22101. Value returned: 
  22102.  
  22103. The editor_path() function returns a string containing the path where the 
  22104. editor environment variable points. If the variable has not been defined, an 
  22105. empty string is returned. 
  22106.  
  22107.  
  22108. ΓòÉΓòÉΓòÉ 14.19.14. fclose() ΓòÉΓòÉΓòÉ
  22109.  
  22110. fclose()   Primitive 
  22111.  
  22112. Purpose: Close the file associated with a handle. 
  22113.  
  22114. ____________ 
  22115.  
  22116. Syntax:  int fclose(fileid handle) 
  22117.  
  22118. ____________ 
  22119.  
  22120. Description: fclose() closes the file indicated by the handle argument.  The 
  22121. handle argument must be a file handle created with fopen(). 
  22122.  
  22123. ____________ 
  22124.  
  22125. Value returned: 
  22126.  
  22127. fclose() returns a non-zero (TRUE) value if successful.  Upon failure, zero or 
  22128. FALSE is returned. 
  22129.  
  22130. ____________ 
  22131.  
  22132. Compatibility: Return values differ from those of the like-named C function 
  22133. supported by major compilers. 
  22134.  
  22135.  
  22136. ΓòÉΓòÉΓòÉ 14.19.15. fgetc() ΓòÉΓòÉΓòÉ
  22137.  
  22138. fgetc()   Primitive 
  22139.  
  22140. Purpose: Gets a character from a file. 
  22141.  
  22142. ____________ 
  22143.  
  22144. Syntax:  int fgetc(fileid file) 
  22145.  
  22146. ____________ 
  22147.  
  22148. Description: The fgetc() function reads the next character from the file 
  22149. described by the file argument.  This function allows reading the contents of a 
  22150. file into a string or other variable rather than into a buffer. 
  22151.  
  22152. ____________ 
  22153.  
  22154. Value returned: 
  22155.  
  22156. The value returned by fgetc() is an integer corresponding to the value of the 
  22157. character read from the file.  When successful, this value will not be a 
  22158. negative number.  If this function encounters the end of file or an error 
  22159. occurs a -1 value is returned and the errno variable is set.  If errno is zero, 
  22160. the end of file was encountered. When errno is other than zero an I/O error has 
  22161. occurred.  This function will fail on files that have been opened in 
  22162. Create/Truncate (Write Only) mode. 
  22163.  
  22164.  
  22165. ΓòÉΓòÉΓòÉ 14.19.16. fgets() ΓòÉΓòÉΓòÉ
  22166.  
  22167. fgets()   Primitive 
  22168.  
  22169. Purpose:  To get a string from a file handle. 
  22170.  
  22171. ____________ 
  22172.  
  22173. Syntax:   fgets( long fd ) 
  22174.  
  22175. ____________ 
  22176.  
  22177. Arguments: 
  22178.  
  22179. o fd - file handle to use 
  22180.  
  22181. Description: This function is similar but not identical to its C counterpart. 
  22182. It reads from the file handle's current offset until either it reaches a 
  22183. newline character or it reaches the end of the file.  The newline character is 
  22184. stripped out of the returned string. 
  22185.  
  22186. ____________ 
  22187.  
  22188. Value returned: The string read from the file handle, or if the end of the file 
  22189. is reached, 0.  If the only character on the line was the newline character, 
  22190. returns " ", a space. 
  22191.  
  22192.  
  22193. ΓòÉΓòÉΓòÉ 14.19.17. filecopy() ΓòÉΓòÉΓòÉ
  22194.  
  22195. filecopy()   Primitive 
  22196.  
  22197. Purpose: File copying utility. 
  22198.  
  22199. ____________ 
  22200.  
  22201. Syntax:  int filecopy(str old, str new) 
  22202.  
  22203. ____________ 
  22204.  
  22205. Description: The filecopy() function makes a duplicate of the file described by 
  22206. the old argument under the name or path location indicated in the new argument. 
  22207.  
  22208. The arguments taken by filecopy() may contain drive specifiers.  If an argument 
  22209. contains no path element the current working directory is assumed. 
  22210.  
  22211. If the file named in the new argument already exists, it is overwritten.  If 
  22212. the file described by the old argument cannot be opened or read the new file is 
  22213. not created or overwritten.  The new file is marked with the current date and 
  22214. time. 
  22215.  
  22216. When the new or old argument is expressed as a constant, it must be enclosed in 
  22217. double quotes.  Backslashes or forward- slashes may be used as path separators. 
  22218. Keep in mind that backslashes must be quoted with a second backslash in PEL 
  22219. source code. 
  22220.  
  22221. ____________ 
  22222.  
  22223. Value returned: 
  22224.  
  22225. Upon successful completion, filecopy() returns TRUE (non-zero).  On failure, it 
  22226. returns FALSE (zero). 
  22227.  
  22228.  
  22229. ΓòÉΓòÉΓòÉ 14.19.18. filemode() ΓòÉΓòÉΓòÉ
  22230.  
  22231. filemode()   Primitive 
  22232.  
  22233. Purpose: Obtain or set the attributes of a file if it exists. 
  22234.  
  22235. ____________ 
  22236.  
  22237. Syntax:  int filemode([str name [, int mode]]) 
  22238.  
  22239. ____________ 
  22240.  
  22241. Description: The filemode() function may be used to determine if a file exists 
  22242. and, if it exists, may be used to check or set the DOS file attributes of that 
  22243. file.  When the mode argument is present, filemode() modifies the permission 
  22244. settings associated with the file indicated by the name argument. 
  22245.  
  22246. The name argument is a filename and optional path element.  The path element 
  22247. may include a drive specification.  If name contains no path element, the 
  22248. default drive and directory are assumed.  If the name argument is not supplied, 
  22249. this function obtains the file attributes of the file which was the subject of 
  22250. last call to findfirst() or findnext().  If neither of these functions has been 
  22251. called during the current editor session, it is treated as an error. 
  22252.  
  22253. The new attribute settings are determined by which bits of the mode argument 
  22254. are set. Interpretation of the mode bits is performed as follows: 
  22255.  
  22256. Bit #   Attribute  Value to use 
  22257. Bit0    mode=1  Read-only 
  22258. Bit1    mode=2  Hidden 
  22259. Bit2    mode=4  System 
  22260. Bit5    mode=32  Archive 
  22261.  
  22262. The above attributes may be combined by either supplying each of the desired 
  22263. values separated by the OR operator ( | ), or by adding the appropriate values 
  22264. together. Only the least significant eight bits of mode are considered. 
  22265.  
  22266. If the mode argument is absent, this function is treated as an inquiry only. 
  22267. File attributes are not modified. filemode() may be used in this manner to 
  22268. determine if a file is present on disk. 
  22269.  
  22270. ____________ 
  22271.  
  22272. Value returned: 
  22273.  
  22274. Upon successful completion, filemode() returns the attributes of the file at 
  22275. the time the function was called.  If the file represented by the name argument 
  22276. does not exist or some other error occurs a value of -1 will be returned. 
  22277.  
  22278. Interpretation of the value returned is the same as the mode argument described 
  22279. above. All bits not in the least significant byte should be ignored since these 
  22280. are used to distinguish between a file attribute mask of 0 and a failure. 
  22281.  
  22282. ____________ 
  22283.  
  22284. Compatibility: This function serves a similar purpose to the chmod() or 
  22285. access() functions supported by major C compilers.  However, it differs from 
  22286. the PEL filemode() function in arguments and return value. 
  22287.  
  22288.  
  22289. ΓòÉΓòÉΓòÉ 14.19.19. filemove() ΓòÉΓòÉΓòÉ
  22290.  
  22291. filemove()   Primitive 
  22292.  
  22293. Purpose: File moving utility 
  22294.  
  22295. ____________ 
  22296.  
  22297. Syntax:  int filemove(str old, str new) 
  22298.  
  22299. ____________ 
  22300.  
  22301. Description: filemove() copies the file described by the old argument to the 
  22302. name or path location indicated in the new argument.  The original file is then 
  22303. deleted. 
  22304.  
  22305. The arguments taken by filemove() may contain drive specifiers.  If an argument 
  22306. contains no path element the current working directory is assumed.  The 
  22307. filename must be explicitly named in both the old and new arguments. 
  22308.  
  22309. If the file named in the new argument already exists, it is not overwritten. 
  22310. If the file described by the old argument cannot be opened, read or deleted the 
  22311. new file is not created or overwritten.  The new file is marked with the 
  22312. current time and date. 
  22313.  
  22314. When the new or old argument is expressed as a constant, it must be enclosed in 
  22315. double quotes.  Backslashes, forward- slashes or doubled backslashes may be 
  22316. used as path separators. 
  22317.  
  22318. ____________ 
  22319.  
  22320. Value returned: 
  22321.  
  22322. Upon successful completion, filemove() returns a non-zero (TRUE) value.  On 
  22323. failure, it returns zero or FALSE.  Consult errno to determine the source of 
  22324. the error. 
  22325.  
  22326.  
  22327. ΓòÉΓòÉΓòÉ 14.19.20. filesize() ΓòÉΓòÉΓòÉ
  22328.  
  22329. filesize()   Primitive 
  22330.  
  22331. Purpose: Determine the size of a file. 
  22332.  
  22333. ____________ 
  22334.  
  22335. Syntax:  int filesize([str name]) 
  22336.  
  22337. ____________ 
  22338.  
  22339. Description: filesize() is used to determine the amount of storage occupied by 
  22340. the file indicated in the name argument. 
  22341.  
  22342. The name argument is a filename and optional path element.  The path element 
  22343. may include a drive specification.  If name contains no path element, the 
  22344. default drive and directory are assumed.  If the name argument is not supplied, 
  22345. this function obtains the file size of the file which was the subject of last 
  22346. call to findfirst() or findnext().  If neither of these functions has been 
  22347. called during the current editor session, it is treated as an error. 
  22348.  
  22349. ____________ 
  22350.  
  22351. Value returned: 
  22352.  
  22353. When successfully completed, the value returned by filesize() is the number of 
  22354. bytes occupied by the file.  If the file does not exist or another error 
  22355. occurs, the value returned is -1. 
  22356.  
  22357. ____________ 
  22358.  
  22359. Compatibility: This function is common to the editor and PEL. 
  22360.  
  22361.  
  22362. ΓòÉΓòÉΓòÉ 14.19.21. filetime() ΓòÉΓòÉΓòÉ
  22363.  
  22364. filetime()   Primitive 
  22365.  
  22366. Purpose: Obtain or set the timestamp associated with a file. 
  22367.  
  22368. ____________ 
  22369.  
  22370. Syntax:  int filetime([str file [, int timestamp]]) 
  22371.  
  22372. ____________ 
  22373.  
  22374. Description: When the timestamp argument is supplied, filetime() sets the time 
  22375. and date of the file described in the file argument to the value of timestamp. 
  22376.  
  22377. The file argument is a string containing a filename.  This filename may not 
  22378. contain wildcard characters.  Optionally, file may also contain a path element 
  22379. including drive specifier.  If file does not contain a path element, the 
  22380. default drive and directory are assumed.  If the file argument is not supplied, 
  22381. this function obtains the timestamp of the file which was the subject of last 
  22382. call to findfirst() or findnext(). If neither of these functions has been 
  22383. called during the current editor session, it is treated as an error. 
  22384.  
  22385. The value supplied in the timestamp argument represents the time and date of 
  22386. the file in seconds since 00:00:00 January 1, 1970.  If timestamp is 0, the 
  22387. file will be set to the current system date and time. When timestamp is 
  22388. omitted, the function is treated as an inquiry only.  The timestamp on the file 
  22389. is not modified. 
  22390.  
  22391. ____________ 
  22392.  
  22393. Value returned: 
  22394.  
  22395. Upon successful completion, filetime() returns the date and time of the file in 
  22396. effect when the function was called. 
  22397.  
  22398. If an error occurs, a value of zero is returned. 
  22399.  
  22400. ____________ 
  22401.  
  22402. Compatibility: 
  22403.  
  22404. This function is common to the editor and PEL. 
  22405.  
  22406.  
  22407. ΓòÉΓòÉΓòÉ 14.19.22. filter() ΓòÉΓòÉΓòÉ
  22408.  
  22409. filter()   PEL 
  22410.  
  22411. Purpose: Processes a portion of a buffer through a command. 
  22412.  
  22413. ____________ 
  22414.  
  22415. Syntax:  int filter(str command) 
  22416.  
  22417. ____________ 
  22418.  
  22419. Description: The filter() function runs a portion of the current buffer through 
  22420. the command specified by the command argument.  The filter specified by the 
  22421. command argument must be a program that takes its input from the standard input 
  22422. device and sends the results to the standard output device. 
  22423.  
  22424. If a marked block of text has been defined, the text in that block is processed 
  22425. through the indicated command.  If no marked block exists, the entire buffer is 
  22426. processed. After the text has been processed, the resulting text is read into 
  22427. the buffer as a replacement for the marked block or buffer contents. 
  22428.  
  22429. ____________ 
  22430.  
  22431. Value returned: 
  22432.  
  22433. The value returned by the filter() function is the exit code returned by the 
  22434. filter subprocess.  This usually means a return value of 0 signifies success. 
  22435.  
  22436.  
  22437. ΓòÉΓòÉΓòÉ 14.19.23. findfirst() ΓòÉΓòÉΓòÉ
  22438.  
  22439. findfirst()   Primitive 
  22440.  
  22441. Purpose: Begin a directory search. 
  22442.  
  22443. ____________ 
  22444.  
  22445. Syntax:  str findfirst(str pattern [, int attr]) 
  22446.  
  22447. ____________ 
  22448.  
  22449. Description: findfirst() searches the directory for the first file, if any, 
  22450. matching the pattern argument.  The match may be further qualified by the file 
  22451. attribute described by the attr argument. 
  22452.  
  22453. The pattern argument is a filename which may contain standard DOS wildcard 
  22454. characters, * and ?, as described in the "Filename Matching" section of 
  22455. "General Operation" chapter of the User's Manual. It may also have a path 
  22456. element including drive specifier.  If pattern contains no path element, the 
  22457. default drive and directory are assumed.  Note!  Although a path may be 
  22458. specified as part of the pattern argument, this function returns only 
  22459. filenames, not paths. 
  22460.  
  22461. The search may be further limited or expanded by supplying the attr argument. 
  22462. This argument describes the file attributes that the directory entry must 
  22463. match.  If this argument is not supplied, normal, read-only and files with the 
  22464. archive bit set will match. 
  22465.  
  22466. The values allowed for attr are those that may be represented by a single byte. 
  22467. A number of descriptive identifiers have been defined in the standard library 
  22468. files for your use.  These identifiers and their numeric values are given 
  22469. below:  Identifier  Value _READ_ONLY  0x01 _HIDDEN    0x02 _SYSTEM    0x04 
  22470. _VOL_ID    0x08 _SUBDIR    0x10 _ARCHIVE   0x20 _NORMAL    0x40 
  22471.  
  22472. Any combination of the above values may be specified as the attr argument.  For 
  22473. instance, either of the examples below matches with files that have the Archive 
  22474. or Read-Only bits set: findfirst("*.*",_ARCHIVE + _READ_ONLY) 
  22475. findfirst("*.*",0x21) 
  22476.  
  22477. If you omit any of the library function files from a customized configuration 
  22478. of the editor, the identifiers list above may become unavailable.  If so, you 
  22479. will have to define similar variables yourself or use the numeric equivalent. 
  22480.  
  22481. ____________ 
  22482.  
  22483. Value returned: 
  22484.  
  22485. Returns a string containing the filename found.  The string returned does not 
  22486. contain any path element. 
  22487.  
  22488. If no matching file is found or some other error occurs, an empty string is 
  22489. returned. If an empty string is returned and errno is zero, no matching file 
  22490. was found. Otherwise, some other error occurred. 
  22491.  
  22492. ____________ 
  22493.  
  22494. Compatibility: 
  22495.  
  22496. This function is somewhat similar to the findfirst() or _dos_findfirst function 
  22497. supported by some C compilers.  The value corresponding to the _NORMAL label 
  22498. has been changed to allow searches that do not implicitly include these files. 
  22499.  
  22500.  
  22501. ΓòÉΓòÉΓòÉ 14.19.24. findnext() ΓòÉΓòÉΓòÉ
  22502.  
  22503. findnext()   Primitive 
  22504.  
  22505. Purpose: Continue a directory search. 
  22506.  
  22507. ____________ 
  22508.  
  22509. Syntax:  str findnext() 
  22510.  
  22511. ____________ 
  22512.  
  22513. Description: Subsequent to a call to findfirst(), the findnext() function is 
  22514. used to find the next file matching the pattern argument used in findfirst(). 
  22515.  
  22516. ____________ 
  22517.  
  22518. Value returned: 
  22519.  
  22520. Returns a string containing the filename found.  The string returned does not 
  22521. contain any path element. 
  22522.  
  22523. If no further matching file is found or some other error occurs, an empty 
  22524. string is returned.  If an empty string is returned and errno is zero, no 
  22525. matching file was found.  Otherwise, some other error occurred. 
  22526.  
  22527. ____________ 
  22528.  
  22529. Compatibility: 
  22530.  
  22531. This function is somewhat similar to the findnext() or _dos_findnext function 
  22532. supported by some C compilers. 
  22533.  
  22534.  
  22535. ΓòÉΓòÉΓòÉ 14.19.25. fopen() ΓòÉΓòÉΓòÉ
  22536.  
  22537. fopen()   Primitive 
  22538.  
  22539. Purpose: Open a file for processing. 
  22540.  
  22541. ____________ 
  22542.  
  22543. Syntax:  fileid fopen(str file, int mode) 
  22544.  
  22545. ____________ 
  22546.  
  22547. Description: The fopen() function opens the file indicated by the file argument 
  22548. in the manner indicated by the mode argument. 
  22549.  
  22550. The file argument may contain a path element, including drive specifier, as 
  22551. well as the required filename. 
  22552.  
  22553. One of the permissions indicated below may be specified by mode: 
  22554.  
  22555. Permission mode Description 
  22556. 0         Read only permission. 
  22557. 1         Create/Truncate (Write Only). 
  22558. 2         Read and Write permission.  (When used with fseek() allows 
  22559.           appending.) 
  22560.  
  22561. ____________ 
  22562.  
  22563. Value returned: 
  22564.  
  22565. fopen() returns the file handle of the file it has opened, upon successful 
  22566. completion. Zero may be a valid file handle.  On error, this function returns a 
  22567. value of -1. Further information may be available by examining the errno 
  22568. variable. 
  22569.  
  22570. ____________ 
  22571.  
  22572. Compatibility: 
  22573.  
  22574. Similar to the fopen() function supported by major C compilers.  Return values 
  22575. and modes available are somewhat different. 
  22576.  
  22577.  
  22578. ΓòÉΓòÉΓòÉ 14.19.26. fprintf() ΓòÉΓòÉΓòÉ
  22579.  
  22580. fprintf()   Primitive 
  22581.  
  22582. Purpose: Writes a formatted string to a device. 
  22583.  
  22584. ____________ 
  22585.  
  22586. Syntax:  void fprintf(fileid handle, str fmt [, any args,...]) 
  22587.  
  22588. ____________ 
  22589.  
  22590. Description: The fprintf() function formats a string, as indicated by the fmt 
  22591. and args arguments and writes it on the device indicated by the handle 
  22592. argument.  The handle argument must be a file id returned by the fopen() 
  22593. function.  The fmt string argument may contain both text to be printed 
  22594. literally and format control characters.  Format control characters specify how 
  22595. the args arguments are to be formatted and included in the output string. 
  22596.  
  22597. Format control characters are preceded by the percent ( % ) symbol.  The 
  22598. recognized format control characters and their meanings are given below: 
  22599.  
  22600. Format char.   Meaning 
  22601. c              An ASCII character. 
  22602. d or ld        An integer (decimal notation). 
  22603. o              An unsigned integer (octal notation). 
  22604. s              A string 
  22605. x              An unsigned integer (hex. notation). 
  22606. X              An unsigned integer (hex. , upper case letters). 
  22607.  
  22608. Since the % indicates that a format control character follows, %% must be used 
  22609. to represent a single percent symbol in the fmt string. 
  22610.  
  22611. There may be an intervening number, dash or a dot (followed by a number) 
  22612. between the % symbol and its format control character. The number indicates the 
  22613. reserved width of the field.  The field is padded until it is this width.  If 
  22614. the number contains a leading zero, the field is padded with zeros.  Otherwise 
  22615. the field is padded with spaces. 
  22616.  
  22617. The intervening dash ( - ) indicates that the expression is to be left 
  22618. justified within the field.  In the absence of the dash, the field will be 
  22619. right justified. 
  22620.  
  22621. The dot ( . ) is used to specify the maximum string width.  The number 
  22622. following the dot represents the maximum length of the string expression to be 
  22623. included.  If the expression is longer than the specified maximum, the 
  22624. remainder is truncated. 
  22625.  
  22626. ____________ 
  22627.  
  22628. Value returned: 
  22629.  
  22630. No useful value is returned by this function. 
  22631.  
  22632.  
  22633. ΓòÉΓòÉΓòÉ 14.19.27. fputc() ΓòÉΓòÉΓòÉ
  22634.  
  22635. fputc()   Primitive 
  22636.  
  22637. Purpose: Puts a character in a file. 
  22638.  
  22639. ____________ 
  22640.  
  22641. Syntax:  void fputc(int ch, fileid file) 
  22642.  
  22643. ____________ 
  22644.  
  22645. Description: The fputc() function writes a character to the file described by 
  22646. the file argument. The integer argument, ch, contains the value of the 
  22647. character.  This function uses fprintf() to achieve this result. 
  22648.  
  22649. ____________ 
  22650.  
  22651. Value returned: 
  22652.  
  22653. No useful value is returned by this function. 
  22654.  
  22655.  
  22656. ΓòÉΓòÉΓòÉ 14.19.28. fread() ΓòÉΓòÉΓòÉ
  22657.  
  22658. fread()   Primitive 
  22659.  
  22660. Purpose: Read a portion of a file into the active buffer. 
  22661.  
  22662. ____________ 
  22663.  
  22664. Syntax:  int fread(fileid handle, markid mark, int len) 
  22665.  
  22666. ____________ 
  22667.  
  22668. Description: The fread() function reads the number of characters indicated by 
  22669. the len argument from the file specified by handle.  This data is then inserted 
  22670. into the active buffer at the location indicated by the mark argument. 
  22671.  
  22672. The file handle supplied in the argument handle must have been previously 
  22673. created by the fopen function. 
  22674.  
  22675. The mark argument is the number of a previously defined editor bookmark in the 
  22676. active buffer.  Bookmark 0 is always defined as the current cursor position in 
  22677. that buffer. 
  22678.  
  22679. The len number of bytes to read is limited to 8100 bytes per read. 
  22680.  
  22681. ____________ 
  22682.  
  22683. Value returned: 
  22684.  
  22685. Upon success, fread() returns the number of bytes read.  If the handle or mark 
  22686. argument is invalid or if the file has been opened in a mode that does not 
  22687. permit reading this function will return -1. 
  22688.  
  22689. When the value returned is less than len, the end of the file has been reached 
  22690. or a media failure has occurred.  If a media failure is suspected, errno may 
  22691. then be consulted for additional information. 
  22692.  
  22693. ____________ 
  22694.  
  22695. Compatibility: 
  22696.  
  22697. This function differs from the ANSI C fread function in its return values and 
  22698. the destination of the data read. 
  22699.  
  22700.  
  22701. ΓòÉΓòÉΓòÉ 14.19.29. fseek() ΓòÉΓòÉΓòÉ
  22702.  
  22703. fseek()   Primitive 
  22704.  
  22705. Purpose: Move the file pointer. 
  22706.  
  22707. ____________ 
  22708.  
  22709. Syntax:  int fseek(fileid handle, int offset, int flag) 
  22710.  
  22711. ____________ 
  22712.  
  22713. Description: The fseek() function sets the pointer associated with a file to a 
  22714. new location. The file pointer to be moved is the pointer associated with the 
  22715. handle argument.  It is moved to the position indicated by the flag argument 
  22716. plus offset bytes.  You may determine the current position using the ftell() 
  22717. function. 
  22718.  
  22719. The permissible values for flag and their meaning are as follows: 
  22720.  
  22721. Value     Meaning 
  22722. 0         The beginning of the file. 
  22723. 1         The file pointer's current position. 
  22724. 2         The end of the file. 
  22725.  
  22726. ____________ 
  22727.  
  22728. Value returned: 
  22729.  
  22730. On successful completion, fseek returns the file pointer offset.  When seeking 
  22731. to the beginning of a file the return value will be zero.  If an error occurs, 
  22732. a value of -1 is returned. 
  22733.  
  22734. ____________ 
  22735.  
  22736. Compatibility: 
  22737.  
  22738. This function is similar to the like-named function supported by major C 
  22739. compilers except as to return values. 
  22740.  
  22741. ____________ 
  22742.  
  22743. See also:  ftell() 
  22744.  
  22745.  
  22746. ΓòÉΓòÉΓòÉ 14.19.30. ftell() ΓòÉΓòÉΓòÉ
  22747.  
  22748. ftell()   Primitive 
  22749.  
  22750. Purpose: Reports current position of file pointer. 
  22751.  
  22752. ____________ 
  22753.  
  22754. Syntax:  int ftell(fileid handle) 
  22755.  
  22756. ____________ 
  22757.  
  22758. Description: ftell() obtains the current position of the file pointer 
  22759. associated with the file indicated by the handle argument. 
  22760.  
  22761. ____________ 
  22762.  
  22763. Value returned: 
  22764.  
  22765. ftell() returns the file pointer position in number of bytes from the beginning 
  22766. of the file, when successful.  When the file pointer is at the beginning of the 
  22767. file this value will be zero. 
  22768.  
  22769. On error, ftell() returns -1.  To differentiate an error from the beginning of 
  22770. the file, consult the errno variable. If the file pointer is pointing to the 
  22771. beginning of the file, ftell() will return zero and errno will also be zero. 
  22772. If errno is a non-zero value, an error has occurred. 
  22773.  
  22774. ____________ 
  22775.  
  22776. Compatibility: 
  22777.  
  22778. This function is similar to the ftell function supported by major C compilers 
  22779. except as to the value returned on error. 
  22780.  
  22781.  
  22782. ΓòÉΓòÉΓòÉ 14.19.31. fwrite() ΓòÉΓòÉΓòÉ
  22783.  
  22784. fwrite()   Primitive 
  22785.  
  22786. Purpose: Write a block of text to a file. 
  22787.  
  22788. ____________ 
  22789.  
  22790. Syntax:  int fwrite(fileid handle, markid mark, int len) 
  22791.  
  22792. ____________ 
  22793.  
  22794. Description: The fwrite() function writes the number of characters indicated by 
  22795. the len argument to the file specified by handle from the active buffer.  The 
  22796. beginning of the data to be written is indicated by the mark argument.  The 
  22797. write operation begins at the position indicated by the file pointer associated 
  22798. with handle. 
  22799.  
  22800. The file handle supplied in the argument handle must have been previously 
  22801. created by the fopen() function. 
  22802.  
  22803. The mark argument is the number of a previously defined editor bookmark in the 
  22804. active buffer.  Bookmark 0 is always defined as the current cursor position in 
  22805. that buffer. If you wish to truncate a file at its current position, supply a 
  22806. value of 0 as the len argument to this function.  When writing a highlighted 
  22807. block of text, write_marked_block() is the appropriate function to use.  When 
  22808. writing all text between two bookmarks, the distance_between_marks() function 
  22809. may be used to provide the len value. 
  22810.  
  22811. ____________ 
  22812.  
  22813. Value returned: 
  22814.  
  22815. Upon success, fwrite() returns the number of bytes actually written.  If the 
  22816. handle or mark argument is invalid or if the file has been opened in a mode 
  22817. that does not permit writing this function will return - 1. 
  22818.  
  22819. Anytime the value returned is less than len, an error has occurred.  errno may 
  22820. then be consulted to determine the source of the error. 
  22821.  
  22822. ____________ 
  22823.  
  22824. Compatibility: 
  22825.  
  22826. This function differs from the fwrite function supported by major C compilers 
  22827. in its return values and the origin of the data written. 
  22828.  
  22829. ____________ 
  22830.  
  22831. See also:  write_marked_block() 
  22832.  
  22833.  
  22834. ΓòÉΓòÉΓòÉ 14.19.32. getcwd() ΓòÉΓòÉΓòÉ
  22835.  
  22836. getcwd()   Primitive 
  22837.  
  22838. Purpose: Obtain the current working directory of a drive. 
  22839.  
  22840. ____________ 
  22841.  
  22842. Syntax:  str getcwd([str drive or int drive]) 
  22843.  
  22844. ____________ 
  22845.  
  22846. Description: If the drive argument is present, getcwd() reports the current 
  22847. working directory, including full path name, for the drive specified in that 
  22848. argument.  The drive argument may be a string whose first character is the 
  22849. letter of the drive of interest.  The rest of the string is ignored. 
  22850. Alternately, drive may be a drive number, where drive A: is 0, drive B: is 1 
  22851. and so on. 
  22852.  
  22853. If drive is not supplied, getcwd() reports the current working directory for 
  22854. the default drive. 
  22855.  
  22856. ____________ 
  22857.  
  22858. Value returned: 
  22859.  
  22860. On success, getcwd() returns a new string. This string contains the full path 
  22861. name of the current working directory, including drive specifier.  The string 
  22862. always ends with a backslash and may be up to 129 characters long. 
  22863.  
  22864. On failure, an empty string is returned. 
  22865.  
  22866. ____________ 
  22867.  
  22868. Compatibility: 
  22869.  
  22870. getcwd() differs from the getcwd function supported by major C compilers.  The 
  22871. getcwd C function only returns the current working directory of the default 
  22872. drive, whereas getcwd() may be used to obtain the current working directory of 
  22873. any valid drive. 
  22874.  
  22875. The arguments required by these two functions are also different. 
  22876.  
  22877.  
  22878. ΓòÉΓòÉΓòÉ 14.19.33. idle() ΓòÉΓòÉΓòÉ
  22879.  
  22880. idle()   Primitive 
  22881.  
  22882. Purpose: Allows processing of the message queue 
  22883.  
  22884. ____________ 
  22885.  
  22886. Syntax: void idle() 
  22887.  
  22888. ____________ 
  22889.  
  22890. Description: The idle() function allows processing of the PM or Windows message 
  22891. queue.  Currently both PM and Windows implement a cooperative multi- tasking 
  22892. when it comes to handling thier respective message queues. The idle() function 
  22893. allows processing this message queue while executing PEL code.  Use this 
  22894. function with care as most of the PEL code is not reentrant and calling the 
  22895. idle() function may cause PEL code to be executed.  For instance, if in the 
  22896. middle of a long PEL process call idle() but do not allow the function you are 
  22897. currently executing to be called again. 
  22898.  
  22899. ____________ 
  22900.  
  22901. Value returned: This function does not return a value. 
  22902.  
  22903.  
  22904. ΓòÉΓòÉΓòÉ 14.19.34. mkdir() ΓòÉΓòÉΓòÉ
  22905.  
  22906. mkdir()   Primitive 
  22907.  
  22908. Purpose: Create a new directory. 
  22909.  
  22910. ____________ 
  22911.  
  22912. Syntax: int mkdir(str dir) 
  22913.  
  22914. ____________ 
  22915.  
  22916. Description: mkdir() makes a new directory according to the path and directory 
  22917. name given in the dir argument. 
  22918.  
  22919. ____________ 
  22920.  
  22921. Value returned: If successful, mkdir() returns a non-zero value. If an error 
  22922. occurs, a value of zero is returned. When a zero is returned, the errno will 
  22923. provide further information about the error.  If a directory or file by the 
  22924. name found in dir already exists, or if some other error has occurred, errno 
  22925. will be non-zero. 
  22926.  
  22927. ____________ Compatibility: This function is similar to the like-named function 
  22928. supported by major C compilers except as to return values. 
  22929.  
  22930.  
  22931. ΓòÉΓòÉΓòÉ 14.19.35. path_ext() ΓòÉΓòÉΓòÉ
  22932.  
  22933. path_ext()   Primitive 
  22934.  
  22935. Purpose: Extract the filename extension from a string. 
  22936.  
  22937. ____________ 
  22938.  
  22939. Syntax: str path_ext(str s) 
  22940.  
  22941. ____________ 
  22942.  
  22943. Description: The path_ext() function creates a new string containing the 
  22944. filename extension found in the s argument.  The new string begins with the dot 
  22945. found in the argument.  The string following the dot will be a maximum of three 
  22946. characters. 
  22947.  
  22948. ____________ 
  22949.  
  22950. Value returned: The value returned by the path_ext() argument is the newly 
  22951. created string.  If the string does not contain a dot, or period, the string 
  22952. returned will be empty.  If the argument string is undefined, an empty string 
  22953. will be returned. 
  22954.  
  22955.  
  22956. ΓòÉΓòÉΓòÉ 14.19.36. path_fname() ΓòÉΓòÉΓòÉ
  22957.  
  22958. path_fname()   Primitive 
  22959.  
  22960. Purpose: Extract a filename from a string. 
  22961.  
  22962. ____________ 
  22963.  
  22964. Syntax: str path_fname(str s) 
  22965.  
  22966. ____________ 
  22967.  
  22968. Description: The path_fname() function creates a string from the s argument. 
  22969. The s argument contains a filename and often a path element.  This function 
  22970. locates the filename within the string and copies it, less any extension, into 
  22971. the new string. 
  22972.  
  22973. ____________ 
  22974.  
  22975. Value returned: The value returned by the path_fname() function is the newly 
  22976. created string.  If the argument provided does not contain a filename and does 
  22977. not end with a path delimiter ( / or \ ), the last element of the path is 
  22978. returned.  If the argument is not a defined string, an empty string is 
  22979. returned. 
  22980.  
  22981.  
  22982. ΓòÉΓòÉΓòÉ 14.19.37. path_path() ΓòÉΓòÉΓòÉ
  22983.  
  22984. path_path()   PEL 
  22985.  
  22986. Purpose:  To return the path portion of a fully qualified path and filename. 
  22987.  
  22988. ____________ 
  22989.  
  22990. Syntax:   path_path( str pathfname ) 
  22991.  
  22992. ____________ 
  22993.  
  22994. Arguments: 
  22995.  
  22996. o pathfname  -  a fully qualified path and file name 
  22997.  
  22998. Description: This function is a handy utility that will take a fully qualified 
  22999. file name, such as buffer_filename, and return the path portion of the string, 
  23000. including the trailing backslash. 
  23001.  
  23002. ____________ 
  23003.  
  23004. Value returned:  The path including the trailing backslash 
  23005.  
  23006.  
  23007. ΓòÉΓòÉΓòÉ 14.19.38. pgetc() ΓòÉΓòÉΓòÉ
  23008.  
  23009. pgetc()   Primitive 
  23010.  
  23011. Purpose:  Read a character from a read pipe. Does not return until a character 
  23012. is available. 
  23013.  
  23014. Syntax:   short pgetc([pipeid pipe]) 
  23015.  
  23016. ____________ 
  23017.  
  23018. Description: Reads a character from the pipeid.  If the pipeid is not supplied 
  23019. then the character is read from the last pipe opened. 
  23020.  
  23021. ____________ 
  23022.  
  23023. Value returned: The character read from the pipe. 
  23024.  
  23025.  
  23026. ΓòÉΓòÉΓòÉ 14.19.39. pgets() ΓòÉΓòÉΓòÉ
  23027.  
  23028. pgets()   Primitive 
  23029.  
  23030. Purpose:  Read a string from an input pipe. Does not return until data is 
  23031. available. 
  23032.  
  23033. Syntax:   string pgets([long len, [pipeid pipe]]) 
  23034.  
  23035. ____________ 
  23036.  
  23037. Arguments: 
  23038.  
  23039. o len  - Number of bytes to read. 
  23040. o pipe -  PipeID of the pipe to read, Defaults to the last pipe opened. 
  23041.  
  23042. Description: Reads a string of len bytes from the pipeid.  If the pipeid is not 
  23043. supplied then the string is read from the last pipe opened. 
  23044.  
  23045. ____________ 
  23046.  
  23047. Value returned: The string read from the pipe. 
  23048.  
  23049.  
  23050. ΓòÉΓòÉΓòÉ 14.19.40. pop_dir() ΓòÉΓòÉΓòÉ
  23051.  
  23052. pop_dir()   PEL 
  23053.  
  23054. Purpose: Makes previously stored directory current. 
  23055.  
  23056. ____________ 
  23057.  
  23058. Syntax: void pop_dir() 
  23059.  
  23060. ____________ 
  23061.  
  23062. Description: The pop_dir() function restores as the current working directory a 
  23063. path that was previously saved on a stack.  The push_dir() function is used to 
  23064. store the current working directory on this stack. 
  23065.  
  23066. ____________ 
  23067.  
  23068. Value returned: No useful value is returned by this function. 
  23069.  
  23070.  
  23071. ΓòÉΓòÉΓòÉ 14.19.41. pputc() ΓòÉΓòÉΓòÉ
  23072.  
  23073. pputc()   Primitive 
  23074.  
  23075. Purpose:  Write a character into an output pipe. 
  23076.  
  23077. Syntax:   void pputc(short ch, [pipeid pipe]) 
  23078.  
  23079. ____________ 
  23080.  
  23081. Arguments: 
  23082.  
  23083. o ch  - The character to write. 
  23084. o pipe -  PipeID of the pipe to write to, Defaults to the last pipe opened. 
  23085.  
  23086. Description: Writes a character to the pipeid.  If the pipeid is not supplied 
  23087. then the character is written to the last pipe opened. 
  23088.  
  23089. ____________ 
  23090.  
  23091. Value returned: 
  23092.  
  23093.  
  23094. ΓòÉΓòÉΓòÉ 14.19.42. pputs() ΓòÉΓòÉΓòÉ
  23095.  
  23096. pputs()   Primitive 
  23097.  
  23098. Purpose:  Write a string into an output pipe. 
  23099.  
  23100. Syntax:   void pputs(string data, [pipeid pipe]) 
  23101.  
  23102. ____________ 
  23103.  
  23104. Arguments: 
  23105.  
  23106. o data -  The string to write. 
  23107. o pipe -  PipeID of the pipe to write to, Defaults to the last pipe opened. 
  23108.  
  23109. Description: Writes a string to the pipeid.  If the pipeid is not supplied then 
  23110. the string is written to the last pipe opened. 
  23111.  
  23112. ____________ 
  23113.  
  23114. Value returned: 
  23115.  
  23116.  
  23117. ΓòÉΓòÉΓòÉ 14.19.43. pread() ΓòÉΓòÉΓòÉ
  23118.  
  23119. pread()   Primitive 
  23120.  
  23121. Purpose:  Read a string from an input pipe into the active buffer. 
  23122.  
  23123. Syntax:   long pread(markid mark,long len, [pipeid pipe]) 
  23124.  
  23125. ____________ 
  23126.  
  23127. Arguments: 
  23128.  
  23129. o mark - Position in the current buffer to insert the string at. 
  23130. o len - Number of bytes to read. 
  23131. o pipe - PipeID of the pipe to read, Defaults to the last pipe opened. 
  23132.  
  23133. Description: Reads a string of len bytes from the pipeid.  If the pipeid is not 
  23134. supplied then the string is read from the last pipe opened. 
  23135.  
  23136. ____________ 
  23137.  
  23138. Value returned: The number of bytes actually read or -1 for error. 
  23139.  
  23140.  
  23141. ΓòÉΓòÉΓòÉ 14.19.44. process_pipes() ΓòÉΓòÉΓòÉ
  23142.  
  23143. process_pipes()   Primitive 
  23144.  
  23145. Purpose:  Process strings from an input pipe. Issues PIPE_DATA_EVENTs when data 
  23146. is available. 
  23147.  
  23148. Syntax:   long process_pipes([pipeid,[bool bufferLines, [bool insert]]]) 
  23149.  
  23150. ____________ 
  23151.  
  23152. Description: Starts a second thread which reads a string from the input pipe 
  23153. and then issues a PIPE_DATA event.  Since the processing is performed in a 
  23154. second thread the primitive will return immediatly. The second thread continues 
  23155. execution until the pipe is closed.  If bufferLines is set, then the PIPE_DATA 
  23156. will be returned one line at a time regardless of how the child process sends 
  23157. it.  If insert if set, EVENT.PIPE_DATA events will not be generated, instead 
  23158. the piped data will be inserted into the current_buffer. This method is used by 
  23159. the dos_window primitive.  If the pipeid is not specified,  then the last pipe 
  23160. opened will be processed. 
  23161.  
  23162. ____________ 
  23163.  
  23164. Value returned: The Thread ID of the second thread or 0 if an Error occured. 
  23165.  
  23166.  
  23167. ΓòÉΓòÉΓòÉ 14.19.45. push_dir() ΓòÉΓòÉΓòÉ
  23168.  
  23169. push_dir()   PEL 
  23170.  
  23171. Purpose: Saves the current directory and logs to new one. 
  23172.  
  23173. ____________ 
  23174.  
  23175. Syntax: void push_dir(str new_cwd) 
  23176.  
  23177. ____________ 
  23178.  
  23179. Description: The push_dir() function records the current working directory on a 
  23180. "stack" and makes the directory named in the new_cwd argument current.  The 
  23181. pop_dir() function is used to restore the directory most recently saved on the 
  23182. stack. 
  23183.  
  23184. ____________ 
  23185.  
  23186. Value returned: No useful value is returned by this function. 
  23187.  
  23188.  
  23189. ΓòÉΓòÉΓòÉ 14.19.46. pwd() ΓòÉΓòÉΓòÉ
  23190.  
  23191. pwd() 
  23192.  
  23193. Purpose: Displays the current working directory 
  23194.  
  23195. ____________ 
  23196.  
  23197. Syntax: pwd() 
  23198.  
  23199. ____________ 
  23200.  
  23201. Arguments: None. 
  23202.  
  23203. ____________ 
  23204.  
  23205. Description:  The pwd() function displays the current working directory in a 
  23206. message box or on your status bar. 
  23207.  
  23208. ____________ 
  23209.  
  23210. Value returned: The current working directory. 
  23211.  
  23212.  
  23213. ΓòÉΓòÉΓòÉ 14.19.47. pwrite() ΓòÉΓòÉΓòÉ
  23214.  
  23215. pwrite()   Primitive 
  23216.  
  23217. Purpose:  Write a block of text to an output pipe. 
  23218.  
  23219. Syntax:   long pwrite(markid mark,long len, [pipeid pipe]) 
  23220.  
  23221. ____________ 
  23222.  
  23223. Arguments: 
  23224.  
  23225. o mark - The beginning of the data to be written from the current buffer. 
  23226. o len - Number of bytes to write. 
  23227. o pipe - PipeID of the pipe to write, Defaults to the last pipe opened. 
  23228.  
  23229. Description: Writes a string to the pipeid.  If the pipeid is not supplied then 
  23230. the string is written to the last pipe opened. 
  23231.  
  23232. ____________ 
  23233.  
  23234. Value returned: The number of bytes actually written or -1 for error. 
  23235.  
  23236.  
  23237. ΓòÉΓòÉΓòÉ 14.19.48. query_pid() ΓòÉΓòÉΓòÉ
  23238.  
  23239. query_pid   Primitive 
  23240.  
  23241. Purpose:  Query the process id of a pipe. 
  23242.  
  23243. ____________ 
  23244.  
  23245. Syntax:   long query_pid([long pipeid]) 
  23246.  
  23247. ____________ 
  23248.  
  23249. Arguments: 
  23250.  
  23251. o pipeid -id of the pipe to query 
  23252.  
  23253. Description: The query_pid() function returns the process id of the specified 
  23254. pipe.  If no pipe id is supplied, the editor uses the default pipe id. 
  23255.  
  23256. ____________ 
  23257.  
  23258. Value returned: Process id of the specified pipe. 
  23259.  
  23260.  
  23261. ΓòÉΓòÉΓòÉ 14.19.49. rename() ΓòÉΓòÉΓòÉ
  23262.  
  23263. rename()   Primitive 
  23264.  
  23265. Purpose: Change the name of a file or series of files. 
  23266.  
  23267. ____________ 
  23268.  
  23269. Syntax: int rename(str old, str new) 
  23270.  
  23271. ____________ 
  23272.  
  23273. Description: The rename() function changes the names of files matching the file 
  23274. specification in the old argument to match the pattern indicated by new. 
  23275.  
  23276. The old and new arguments may not contain wildcard characters.  If the new file 
  23277. specification contains a drive specifier, it must match that given in old. 
  23278.  
  23279. ____________ 
  23280.  
  23281. Value returned: When successful, rename() returns a non-zero value. If an error 
  23282. occurs, a zero value is returned. 
  23283.  
  23284. ____________ Compatibility: rename() differs from the ANSI C function of the 
  23285. same name in that return values are different. 
  23286.  
  23287.  
  23288. ΓòÉΓòÉΓòÉ 14.19.50. rmdir() ΓòÉΓòÉΓòÉ
  23289.  
  23290. rmdir()   Primitive 
  23291.  
  23292. Purpose: Delete a file directory. 
  23293.  
  23294. ____________ 
  23295.  
  23296. Syntax: int rmdir(str dir) 
  23297.  
  23298. ____________ 
  23299.  
  23300. Description: The rmdir() function removes the directory indicated by the dir 
  23301. argument. 
  23302.  
  23303. The dir argument may contain a path element, including a drive specifier.  If 
  23304. no path element is supplied, the current working directory is assumed to be the 
  23305. parent directory of the directory to be deleted. 
  23306.  
  23307. To succeed, the directory indicated by dir must not contain any files and must 
  23308. not be the current working directory.  Attempts to delete the root directory 
  23309. will also fail. 
  23310.  
  23311. ____________ 
  23312.  
  23313. Value returned: If the directory is successfully removed, the rmdir() returns a 
  23314. non-zero value.  If it fails, a zero value is returned.  Consult the errno to 
  23315. determine the nature of the failure. 
  23316.  
  23317. ____________ Compatibility: This function is similar to the like-named function 
  23318. supported by major C compilers, except as to return codes. 
  23319.  
  23320.  
  23321. ΓòÉΓòÉΓòÉ 14.19.51. spawn() ΓòÉΓòÉΓòÉ
  23322.  
  23323. spawn()   Primitive 
  23324.  
  23325. Purpose: Starts a detached process 
  23326.  
  23327. ____________ 
  23328.  
  23329. Syntax: long  spawn(string cmd [, string params]) 
  23330.  
  23331. ____________ 
  23332.  
  23333. Description: The spawn() function starts a detached session.  The parent 
  23334. process is not able to query any information about the new session.  This 
  23335. function is useful if you want to use the editor to launch other applications 
  23336. and are not concerned with their status.  Use the system() function if you need 
  23337. more detailed information on a process once it has started.  This function 
  23338. cannot be used to run operating system internal commands (i.e. dir).  The cmd 
  23339. argument contains the name of the program to execute. The cmd argument must 
  23340. contain a valid executable program.  The optional params argument contains any 
  23341. command line arguments to pass to the program. 
  23342.  
  23343. ____________ 
  23344.  
  23345. Value returned: This function returns the value returned from the operating 
  23346. system's attempt to execute the program. 
  23347.  
  23348.  
  23349. ΓòÉΓòÉΓòÉ 14.19.52. system() ΓòÉΓòÉΓòÉ
  23350.  
  23351. system()   Primitive 
  23352.  
  23353. Purpose: Allows command execution without exiting to OS2 
  23354.  
  23355. ____________ 
  23356.  
  23357. Syntax: long system([[[[[str command], any stdin], any stdout], any stderr], 
  23358. short flags]) shell_parse]]) 
  23359.  
  23360. ____________ 
  23361.  
  23362. Arguments: 
  23363.  
  23364. o cmd - Command to be executed. 
  23365.  
  23366. o inArg - The file to use for stdin, either a String that contains the 
  23367.   filename, the FileId of an opened file to use, or the PipeId of a pipe 
  23368.   created with create_pipes.  Any other type will cause stdin to NOT be 
  23369.   re-directed. 
  23370.  
  23371. o outArg - The file to use for stdout, either a String that contains the 
  23372.   filename, the FileId of an opened file to use, or the PipeId of a pipe 
  23373.   created with create_pipes.  Any other type will cause stdout to NOT be 
  23374.   re-directed. 
  23375.  
  23376. o errArg - The file to use for stderr, either a String that contains the 
  23377.   filename. the FileId of an opened file to use, or the PipeId of a pipe 
  23378.   created with create_pipes.  Any other type will cause stderr to NOT be 
  23379.   re-directed.  If OutArg is specified and errArg is not, then stderr will also 
  23380.   be re-directed to the stdout file. 
  23381.  
  23382. o flags  - Bitmapped flags used to control how the command is executed: 
  23383.  
  23384.     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  23385.     ΓöéFlag           ΓöéHex value ΓöéDescription                   Γöé
  23386.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23387.     ΓöéSESSION        Γöé0x0001    ΓöéStart command in separate     Γöé
  23388.     Γöé               Γöé          Γöésession.                      Γöé
  23389.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23390.     ΓöéSHELL          Γöé0x0002    ΓöéStart command with command    Γöé
  23391.     Γöé               Γöé          Γöéshell (CMD.EXE or COMMAND,COM)Γöé
  23392.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23393.     ΓöéASYNC          Γöé0x0004    ΓöéRun command asyncronously.    Γöé
  23394.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23395.     ΓöéDETACHED       Γöé0x0008    ΓöéDo not run command as a child Γöé
  23396.     Γöé               Γöé          Γöéprocess.                      Γöé
  23397.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23398.     ΓöéNOEXPOSE       Γöé0x0010    ΓöéDo not allow exposes while    Γöé
  23399.     Γöé               Γöé          Γöécommand executes.             Γöé
  23400.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23401.     ΓöéNOSESSION      Γöé0x0020    ΓöéForce command to start in sameΓöé
  23402.     Γöé               Γöé          Γöésession.                      Γöé
  23403.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23404.     ΓöéMAXIMIZE       Γöé0x0040    ΓöéStart session maximized.      Γöé
  23405.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23406.     ΓöéMINIMIZE       Γöé0x0080    ΓöéStart session minimized.      Γöé
  23407.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23408.     ΓöéQUIET          Γöé0x0100    ΓöéStart CMD.EXE with /Quiet     Γöé
  23409.     Γöé               Γöé          Γöéswitch.                       Γöé
  23410.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23411.     ΓöéDOSSHELL       Γöé0x0200    ΓöéStart a DOS session.          Γöé
  23412.     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  23413.  
  23414.   All commands default to synchronous execution. To perform an asynchronous 
  23415.   command, precede the command name with the '@' sign, i.e. system( "@test.exe" 
  23416.   ), runs 'test.exe' as an asynchronous child process. Also, if the flags 
  23417.   parameter is not sepecified, the default is to run the command in a seperate 
  23418.   session (if no files are re-directed). 
  23419.  
  23420.   The flags may also be specified as leading characters in the cmd string, the 
  23421.   values are as follows: 
  23422.  
  23423.     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  23424.     ΓöéFlag ΓöéDescription                             Γöé
  23425.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23426.     Γöé'@'  ΓöéRun command asyncronously.              Γöé
  23427.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23428.     Γöé'&'  ΓöéDo not run command as a child process.  Γöé
  23429.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23430.     Γöé'*'  ΓöéStart command with command shell        Γöé
  23431.     Γöé     Γöé(CMD.EXE or COMMAND,COM)                Γöé
  23432.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23433.     Γöé'+'  ΓöéStart command in separate session.      Γöé
  23434.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23435.     Γöé'?'  ΓöéForce command to start in same session  Γöé
  23436.     Γöé     Γöéas editor.                              Γöé
  23437.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23438.     Γöé'='  Γöé Do not allow exposes while command     Γöé
  23439.     Γöé     Γöéexecutes.                               Γöé
  23440.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23441.     Γöé'^'  ΓöéStart session maximized.                Γöé
  23442.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23443.     Γöé'|'  ΓöéStart session minimized.                Γöé
  23444.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23445.     Γöé'%'  ΓöéStart a DOS session.                    Γöé
  23446.     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  23447.  
  23448. o dos_settings - Table of DOS settings where the index is the setting name and 
  23449.   the value is the value.  The available settings are the same as are shown in 
  23450.   the DOS Settings dialog from the Settings notebook of a DOS Program Object. 
  23451.   Examples: 
  23452.  
  23453.     ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  23454.     ΓöéSetting        ΓöéValue     Γöé
  23455.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23456.     Γöés["DOS_FILES"] Γöé10        Γöé
  23457.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23458.     Γöés["DOS_HIGH"]  Γöé"ON"      Γöé
  23459.     Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  23460.     Γöés["DOS_UMB"]   Γöé0         Γöé
  23461.     ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  23462.  
  23463. Description: The system() allows executing an external OS/2, PM, or DOS 
  23464. program.  The following arguments list the various options when executing the 
  23465. system command. 
  23466.  
  23467. ____________ 
  23468.  
  23469. Value returned: Error code if command failed to execute, or return code of 
  23470. command if command executed synchronously, else Process ID if command executed 
  23471. asynchronously. 
  23472.  
  23473. ____________ 
  23474.  
  23475. See also:   SYS_ (system flags),dos_window() 
  23476.  
  23477.  
  23478. ΓòÉΓòÉΓòÉ 14.19.53. system_key() ΓòÉΓòÉΓòÉ
  23479.  
  23480. system_key()   PEL 
  23481.  
  23482. Purpose: Prompts user for operating system command. 
  23483.  
  23484. ____________ 
  23485.  
  23486. Syntax: void system_key() 
  23487.  
  23488. ____________ 
  23489.  
  23490. Description: The system_key() function prompts the user for a command and sends 
  23491. it to the operating system for execution.  If the command fails, a warning 
  23492. giving the error code is displayed in the dialog box. This function is intended 
  23493. for processing single commands without "shelling out".  If it is necessary to 
  23494. execute a series of commands, the system() function may be preferable. 
  23495.  
  23496. ____________ 
  23497.  
  23498. Value returned: No useful value is returned by this function. 
  23499.  
  23500.  
  23501. ΓòÉΓòÉΓòÉ 14.19.54. unlink() ΓòÉΓòÉΓòÉ
  23502.  
  23503. unlink()   Primitive 
  23504.  
  23505. Purpose: Delete a file. 
  23506.  
  23507. ____________ 
  23508.  
  23509. Syntax: int unlink(str path) 
  23510.  
  23511. ____________ 
  23512.  
  23513. Description: unlink() removes the file indicated by path.  The path argument 
  23514. must contain an explicit filename; no wildcard characters are allowed.  It may 
  23515. also contain a path element, including drive specifier. If path contains no 
  23516. path element, the current drive and directory are assumed. 
  23517.  
  23518. When the path argument is expressed as a constant, it must be enclosed in 
  23519. double quotes.  Backslashes, forward-slashes or doubled backslashes may be used 
  23520. as path separators. 
  23521.  
  23522. ____________ 
  23523.  
  23524. Value returned: If the file indicated by path does not exist, or if permission 
  23525. to delete the file is not obtained, a value of zero is returned.  Non-zero 
  23526. values indicate the function was successfully completed. 
  23527.  
  23528. ____________ Compatibility: This function is identical to the ANSI C remove() 
  23529. and the UNIX_ unlink() except as to return values. 
  23530.  
  23531.  
  23532. ΓòÉΓòÉΓòÉ 14.19.55. unlock_edit_files() ΓòÉΓòÉΓòÉ
  23533.  
  23534. unlock_edit_files()   PEL 
  23535.  
  23536. Purpose:  Unlocks all files that have been locked. 
  23537.  
  23538. ____________ 
  23539.  
  23540. Syntax:   void unlock_edit_files() 
  23541.  
  23542. ____________ 
  23543.  
  23544. Arguments: none. 
  23545.  
  23546. Description: The unlock_edit_files() function unlocks all files which have been 
  23547. locked by deleting the associated semaphore file. 
  23548.  
  23549. ____________ 
  23550.  
  23551. Value returned: none. 
  23552.  
  23553.  
  23554. ΓòÉΓòÉΓòÉ 14.19.56. unlock_file() ΓòÉΓòÉΓòÉ
  23555.  
  23556. unlock_file()   PEL 
  23557.  
  23558. Purpose:  Unlocks a filesthat has been locked. 
  23559.  
  23560. ____________ 
  23561.  
  23562. Syntax:   void unlock_file(str fname) 
  23563.  
  23564. ____________ 
  23565.  
  23566. Arguments: 
  23567.  
  23568. o fname - name of file to unlock 
  23569.  
  23570. Description: The unlock_file() function unlock fname by deleting the associated 
  23571. semaphore file. 
  23572.  
  23573. ____________ 
  23574.  
  23575. Value returned: none. 
  23576.  
  23577.  
  23578. ΓòÉΓòÉΓòÉ 14.20. Text Editing ΓòÉΓòÉΓòÉ
  23579.  
  23580. The functions in the Text Editing category allow you to modify the current 
  23581. buffer in various ways.  These functions cover virtually all aspects of the 
  23582. text editing process, from inserting the typed character to undoing or even 
  23583. redoing major edits. 
  23584.  
  23585. Undo and Redo 
  23586.  
  23587. The undo and redo features deserve special mention.  The allows the user to 
  23588. reverse the effects of one or a series of edit operations.  This has become a 
  23589. popular and valued feature in a programmer's editor. 
  23590.  
  23591. The PREDITOR/2 undo function can undo almost any operation affecting the 
  23592. contents of a buffer -- except an undo operation itself. 
  23593.  
  23594. The redo() function allows undoing the effects of an undo().  This not only 
  23595. enables the user to restore edits that have inadvertently been undone, it 
  23596. allows the user to alternate between two or more conditions of the buffer to 
  23597. reflect on which is most desirable.  The undo_index() function allows you to 
  23598. undo or redo even large numbers of edits in a single command. 
  23599.  
  23600. PREDITOR/2 stores each operation on a buffer on an "undo/redo stack" and 
  23601. assigned a sequential .  Each buffer has its own undo stack and sequence of 
  23602. operation numbers.  For each call to the undo() function, PREDITOR/2 reverses 
  23603. the most recent operation on the stack and decrements the current operation 
  23604. number for that buffer. 
  23605.  
  23606. An operation that has been undone is not lost, however, and is performed again 
  23607. if redo() is called before further editing.  Whenever editing recommences, the 
  23608. contents of the stack beyond the current operation are lost. 
  23609.  
  23610. The current operation number may be obtained and recorded for later use by 
  23611. calling the undo_index() function.  This number serves as a snapshot of the 
  23612. current state of edits to the buffer.  The operation number obtained from 
  23613. undo_index() may be supplied to the undo() function, which will undo all 
  23614. operations subsequent to the one named. 
  23615.  
  23616. It should be noted that, unlike many programmer's editors, the Sage 
  23617. Professional Editor places no arbitrary limit on the number of operations that 
  23618. may be undone. The number of edits that may be undone or redone is limited only 
  23619. by available disk space.  Usually the number of edits between buffer saves will 
  23620. be only a small fraction of the number possible. 
  23621.  
  23622. append_to_scrap() 
  23623.           Add text to the current contents of the scrap buffer. 
  23624. backspace() 
  23625.           Deletes the character preceding the cursor. 
  23626. copy_to_scrap() 
  23627.           Copy a portion of current buffer to scrap buffer. 
  23628. copy_to_scrap_key() 
  23629.           Copy or append portion of buffer to scrap. 
  23630. cut() 
  23631.           Copy text to the scrap buffer and then delete it. 
  23632. delete_chars() 
  23633.           Delete text from the current edit buffer. 
  23634. delete_prev_word() 
  23635.           To delete the word previous to the current cursor location. 
  23636. delete_to_eol() 
  23637.           Delete from the cursor position to the end of the line. 
  23638. delete_to_scrap() 
  23639.           Copy text to the scrap buffer and then delete it. 
  23640. delete_word() 
  23641.           Delete word or words following cursor. 
  23642. indent_columns() 
  23643.           Indent lines by adding whitespace to the left of text. 
  23644. insert_key() 
  23645.           Insert the character associated with a key into buffer. 
  23646. insert_newline() 
  23647.           Insert end-of-line marker and move cursor to next line. 
  23648. insert_scrap() 
  23649.           Insert contents of scrap buffer at cursor position. 
  23650. open_line() 
  23651.           Inserts a new line following the current line. 
  23652. redo() 
  23653.           Undoes the effects of a previous undo(). 
  23654. redo_index() 
  23655.           Queries the value of the redo index. 
  23656. undo() 
  23657.           Reverses the effects of a previous edit operation. 
  23658. undo_index() 
  23659.           Reports current operation number of undo/redo stack. 
  23660.  
  23661.  
  23662. ΓòÉΓòÉΓòÉ 14.20.1. append_to_scrap() ΓòÉΓòÉΓòÉ
  23663.  
  23664. append_to_scrap()   Primitive 
  23665.  
  23666. Purpose: Add text to the current contents of the scrap buffer. 
  23667.  
  23668. ____________ 
  23669.  
  23670. Syntax:  int append_to_scrap() 
  23671.  
  23672. ____________ 
  23673.  
  23674. Description: If a block or region of text has been selected, the 
  23675. append_to_scrap() function will copy the text in that block into the scrap 
  23676. buffer.  If no block of text has been defined, the character at the cursor is 
  23677. appended to the scrap buffer. 
  23678.  
  23679. In any case, the text appended to the scrap buffer is not deleted from its 
  23680. original location in the edit buffer.  Any previous contents of the scrap 
  23681. buffer are preserved. 
  23682.  
  23683. This function allows you to accumulate text in the scrap buffer which may later 
  23684. be inserted elsewhere in the buffer with the insert_scrap() function. 
  23685.  
  23686. ____________ 
  23687.  
  23688. Value returned: 
  23689.  
  23690. When successful, the append_to_scrap() function returns a non-zero value 
  23691. (TRUE). If for any reason the function can not be completed, a zero (FALSE) 
  23692. value will be returned. 
  23693.  
  23694.  
  23695. ΓòÉΓòÉΓòÉ 14.20.2. backspace() ΓòÉΓòÉΓòÉ
  23696.  
  23697. backspace()   Primitive 
  23698.  
  23699. Purpose: Deletes the character preceding the cursor. 
  23700.  
  23701. ____________ 
  23702.  
  23703. Syntax:  int backspace() 
  23704.  
  23705. ____________ 
  23706.  
  23707. Description: The effect of the backspace() function is dependent upon the value 
  23708. on the buffer_flags variable.  If insert mode is in effect, this function 
  23709. deletes the character preceding the current cursor position.  The contents of 
  23710. the line to the right of the deleted character and the cursor are shifted to 
  23711. the left. 
  23712.  
  23713. If the buffer_flags variable specifies overtype mode, the backspace function 
  23714. replaces the character preceding the current cursor position with a single 
  23715. space.  The contents of the line to the right of the cursor does not move 
  23716. unless the character deleted is a tab.  However, the cursor does shift to the 
  23717. left. 
  23718.  
  23719. When in insert mode, backspace() deletes the end-of-line marker on the 
  23720. preceding line when the cursor is at the beginning of the line.  This has the 
  23721. effect of appending the current line onto the preceding line. In overtype mode, 
  23722. backspace() will not delete the new line.  Instead, when the cursor is at the 
  23723. beginning of the line beep() is called.  If backspace() is called when the 
  23724. cursor is at the beginning of the buffer, the beep() function is executed and 
  23725. no other action is taken. 
  23726.  
  23727. When the cursor is positioned beyond the end of the line (virtual space 
  23728. enabled), executing the backspace() function performs a back-tab.  That is, the 
  23729. cursor is moved to the closest tab setting to the left of its current position. 
  23730.  
  23731. ____________ 
  23732.  
  23733. Value returned: The backspace() function returns a non-zero value (TRUE) upon 
  23734. successful completion. If the cursor is not moved, a value of zero (FALSE) is 
  23735. returned. 
  23736.  
  23737. ____________ 
  23738.  
  23739. See also:  buffer_eol_string, buffer_flags 
  23740.  
  23741.  
  23742. ΓòÉΓòÉΓòÉ 14.20.3. copy_to_scrap() ΓòÉΓòÉΓòÉ
  23743.  
  23744. copy_to_scrap()   Primitive 
  23745.  
  23746. Purpose: Copy a portion of current buffer to scrap buffer. 
  23747.  
  23748. ____________ 
  23749.  
  23750. Syntax:  int copy_to_scrap() 
  23751.  
  23752. ____________ 
  23753.  
  23754. Description: The copy_to_scrap() function copies a character or region of text 
  23755. from the current buffer to the scrap buffer.  Unlike the append_to_scrap() 
  23756. function, copy_to_scrap() overwrites the previous contents of the scrap buffer. 
  23757.  
  23758. If no block of text has been defined, the character at the cursor is copied to 
  23759. the scrap buffer. 
  23760.  
  23761. ____________ 
  23762.  
  23763. Value returned: 
  23764.  
  23765. When successful, the copy_to_scrap function returns a non-zero value (TRUE). If 
  23766. for any reason the function can not be completed, a zero (FALSE) value will be 
  23767. returned. 
  23768.  
  23769. ____________ 
  23770.  
  23771. See also:  delete_to_scrap(), append_to_scrap() 
  23772.  
  23773.  
  23774. ΓòÉΓòÉΓòÉ 14.20.4. copy_to_scrap_key() ΓòÉΓòÉΓòÉ
  23775.  
  23776. copy_to_scrap_key()   PEL 
  23777.  
  23778. Purpose: Copy or append portion of buffer to scrap. 
  23779.  
  23780. ____________ 
  23781.  
  23782. Syntax:  void copy_to_scrap_key([int append]) 
  23783.  
  23784. ____________ 
  23785.  
  23786. Description: The copy_to_scrap_key() function is an enhanced version of the 
  23787. copy_to_scrap() function intended for assignment to a keystroke.  It differs 
  23788. from the copy_to_scrap() function in that it will either append or copy the 
  23789. current selection to scrap and display a status message. If the append argument 
  23790. is present and non- null the selection is appended to current contents of 
  23791. scrap.  Otherwise scrap is overwritten. 
  23792.  
  23793. ____________ 
  23794.  
  23795. Value returned: 
  23796.  
  23797. No useful value is returned by this function. buffer_original_filename, 
  23798. attach_window_buffer(), edit_file() 
  23799.  
  23800.  
  23801. ΓòÉΓòÉΓòÉ 14.20.5. cut() ΓòÉΓòÉΓòÉ
  23802.  
  23803. cut()   PEL 
  23804.  
  23805. Purpose: Copy text to the scrap buffer and then delete it. 
  23806.  
  23807. ____________ 
  23808.  
  23809. Syntax:  int cut() 
  23810.  
  23811. ____________ 
  23812.  
  23813. Description: The cut() function copies a block of text to the scrap buffer in 
  23814. the same manner as the copy_to_scrap() function, described above.  If no block 
  23815. has been defined the line containing the cursor is copied to the scrap buffer. 
  23816. With no block defined the character at the cursor position is copied. 
  23817.  
  23818. After this is done, however, the cut() function deletes the copied text from 
  23819. its original location in the edit buffer.  The text may then be re-inserted 
  23820. elsewhere in the buffer through use of the insert_scrap() or paste() function. 
  23821.  
  23822. This function has the effect of removing any selection marker (anchor) that was 
  23823. used to mark the block to be deleted.  If any previous selections were made, 
  23824. the most recent selection becomes active. 
  23825.  
  23826. This function is synonymous with the delete_to_scrap() function. 
  23827.  
  23828. ____________ 
  23829.  
  23830. Value returned: 
  23831.  
  23832. When successful, the cut() function returns a non-zero value (TRUE).  If for 
  23833. any reason the function can not be completed, a zero (FALSE) value will be 
  23834. returned. 
  23835.  
  23836.  
  23837. ΓòÉΓòÉΓòÉ 14.20.6. delete_chars() ΓòÉΓòÉΓòÉ
  23838.  
  23839. delete_chars()   Primitive 
  23840.  
  23841. Purpose: Delete text from the current edit buffer. 
  23842.  
  23843. ____________ 
  23844.  
  23845. Syntax:  int delete_chars([int num]) 
  23846.  
  23847. ____________ 
  23848.  
  23849. Description: The delete_chars() function removes characters from the current 
  23850. buffer.  The number of characters to delete is specified by the num argument. 
  23851. If the num argument is not supplied the function deletes the selected block of 
  23852. text if one has been marked.  Otherwise this function deletes a single 
  23853. character. 
  23854.  
  23855. ____________ 
  23856.  
  23857. Value returned: 
  23858.  
  23859. The delete_chars() function returns a non- zero value (TRUE) upon successful 
  23860. completion.  If there are no characters for the delete function to remove, the 
  23861. function will return a zero value (FALSE). 
  23862.  
  23863.  
  23864. ΓòÉΓòÉΓòÉ 14.20.7. delete_prev_word() ΓòÉΓòÉΓòÉ
  23865.  
  23866. delete_prev_word()   PEL 
  23867.  
  23868. Purpose:  To delete the word previous to the current cursor location. 
  23869.  
  23870. ____________ 
  23871.  
  23872. Syntax:   delete_prev_word( [int n] ) 
  23873.  
  23874. ____________ 
  23875.  
  23876. Arguments: 
  23877.  
  23878. o n - optional, the number of words to delete 
  23879.  
  23880. Description: This function will delete the word previous to the curren cursor 
  23881. location.  If the cursor is in the middle of a word, this function will delete 
  23882. only to the beginning of the current word. 
  23883.  
  23884. ____________ 
  23885.  
  23886. Value returned:  none 
  23887.  
  23888.  
  23889. ΓòÉΓòÉΓòÉ 14.20.8. delete_to_eol() ΓòÉΓòÉΓòÉ
  23890.  
  23891. delete_to_eol()   Primitive 
  23892.  
  23893. Purpose: Delete from the cursor position to the end of the line. 
  23894.  
  23895. ____________ 
  23896.  
  23897. Syntax:  int delete_to_eol() 
  23898.  
  23899. ____________ 
  23900.  
  23901. Description: The delete_to_eol() function deletes all text from the cursor 
  23902. position to the end of the line.  This includes any character under the cursor 
  23903. position.  The end-of-line sequence is not deleted. 
  23904.  
  23905. ____________ 
  23906.  
  23907. Value returned: The value returned by delete_to_eol() is non-zero (TRUE) unless 
  23908. there were no characters to delete, in which case a zero value (FALSE) is 
  23909. returned. 
  23910.  
  23911. ____________ 
  23912.  
  23913. See also:  buffer_eol_string, delete_chars() 
  23914.  
  23915.  
  23916. ΓòÉΓòÉΓòÉ 14.20.9. delete_to_scrap() ΓòÉΓòÉΓòÉ
  23917.  
  23918. delete_to_scrap()   Primitive 
  23919.  
  23920. Purpose: Copy text to the scrap buffer and then delete it. 
  23921.  
  23922. ____________ 
  23923.  
  23924. Syntax:  int delete_to_scrap() 
  23925.  
  23926. ____________ 
  23927.  
  23928. Description: The delete_to_scrap() function copies a block of text to the scrap 
  23929. buffer in the same manner as the copy_to_scrap() function, described above. 
  23930. When no block has been defined the character at the cursor position is copied. 
  23931.  
  23932. After this is done, however, the delete_to_scrap() function deletes the copied 
  23933. text from its original location in the edit buffer.  The text may then be re- 
  23934. inserted elsewhere in the buffer through use of the insert_scrap() function. 
  23935.  
  23936. This function has the effect of removing any selection marker (anchor) that was 
  23937. used to mark the block to be deleted.  If any previous selections were made, 
  23938. the most recent selection becomes active. 
  23939.  
  23940. For those who are familiar with the concepts of "cut and paste", this function 
  23941. is analogous to "cut".  The insert_scrap() function serves as a "paste" 
  23942. feature. 
  23943.  
  23944. ____________ 
  23945.  
  23946. Value returned: When successful, the delete_to_scrap() function returns a 
  23947. non-zero value (TRUE). If for any reason the function can not be completed, a 
  23948. zero (FALSE) value will be returned. 
  23949.  
  23950.  
  23951. ΓòÉΓòÉΓòÉ 14.20.10. delete_word() ΓòÉΓòÉΓòÉ
  23952.  
  23953. delete_word()   PEL 
  23954.  
  23955. Purpose: Delete word or words following cursor. 
  23956.  
  23957. ____________ 
  23958.  
  23959. Syntax:  void delete_word([int n]) 
  23960.  
  23961. ____________ 
  23962.  
  23963. Description: The delete_word() function deletes from current position to the 
  23964. next word.  The number of words to be deleted may be specified as the n 
  23965. argument.  A word is defined as a series of non-whitespace characters 
  23966. surrounded by whitespace. Whitespace includes spaces, tabs, newlines, beginning 
  23967. and end of buffer. 
  23968.  
  23969. ____________ 
  23970.  
  23971. Value returned: 
  23972.  
  23973. No useful value is returned by this function. 
  23974.  
  23975.  
  23976. ΓòÉΓòÉΓòÉ 14.20.11. end_dump_mode ΓòÉΓòÉΓòÉ
  23977.  
  23978. end_dump_mode()   PEL 
  23979.  
  23980. Purpose: Turns hex-dump mode off. 
  23981.  
  23982. ____________ 
  23983.  
  23984. Syntax: end_dump_mode() 
  23985.  
  23986. ____________ 
  23987.  
  23988. Description:  The end_dump_mode() function turns hex-dump mode off. 
  23989.  
  23990. ____________ 
  23991.  
  23992. Value returned: None. 
  23993.  
  23994. ____________ 
  23995.  
  23996. See also: window_flags, toggle_dump_mode(), begin_dump_mode(), 
  23997. toggle_dump_window(), toggle_dump_side(), set_dump_format(), window_keymap, 
  23998. mouse_event_offset, mouse_event_line, mouse_event_column, mouse_event_side, 
  23999. mouse_event_digit, dump_digit, dump_bytes_per_line, default_dump_bytes_per_line 
  24000.  
  24001.  
  24002. ΓòÉΓòÉΓòÉ 14.20.12. indent_columns() ΓòÉΓòÉΓòÉ
  24003.  
  24004. indent_columns()   Primitive 
  24005.  
  24006. Purpose: Indent lines by adding whitespace to the left of text. 
  24007.  
  24008. ____________ 
  24009.  
  24010. Syntax:  int indent_columns([int num]) 
  24011.  
  24012. ____________ 
  24013.  
  24014. Description: The indent_columns() function shifts a line or lines of text to 
  24015. the right by inserting whitespace preceding the left end of text. If no marked 
  24016. block of text has been defined, whitespace is added to the current line only. 
  24017. If a block has been defined, each line of text in the block is indented. The 
  24018. cursor position is changed as a result of this function if it is located within 
  24019. the indented text. 
  24020.  
  24021. If a column marked block of text has been defined, whitespace is added to each 
  24022. line immediately to the left of the column at which the block begins.  When 
  24023. other types of blocks exist, whitespace is added to the beginning of each line 
  24024. in the block. 
  24025.  
  24026. The number of spaces added to each line is determined by the value of the num 
  24027. argument.  If the num argument is omitted, a value of 1 is assumed for that 
  24028. argument. 
  24029.  
  24030. ____________ 
  24031.  
  24032. Value returned: 
  24033.  
  24034. This function returns a non-zero value (TRUE) when successfully completed.  A 
  24035. zero value (FALSE) is returned if an invalid value is supplied for the num 
  24036. argument. 
  24037.  
  24038.  
  24039. ΓòÉΓòÉΓòÉ 14.20.13. insert_key() ΓòÉΓòÉΓòÉ
  24040.  
  24041. insert_key()   Primitive 
  24042.  
  24043. Purpose: Insert the character associated with a key into buffer. 
  24044.  
  24045. ____________ 
  24046.  
  24047. Syntax:  int insert_key([int char]) 
  24048.  
  24049. ____________ 
  24050.  
  24051. Description: The insert_key() function inserts the character, whose ASCII value 
  24052. is specified by the char argument, into the buffer at the cursor position.  If 
  24053. the char argument is not supplied, the ASCII value of the most recently pressed 
  24054. key is inserted.  The current position in the buffer is incremented to account 
  24055. for this addition. The char argument may also be a key id obtained from a 
  24056. function such as getkey(). Only the ASCII portion of the key id, which also 
  24057. contains the scan code, is used.  The scan code is ignored.  If there is no 
  24058. ASCII value to use an error occurs. 
  24059.  
  24060. Most ordinary keyboard keys will call this function to insert the character 
  24061. corresponding to the key pressed.  If word- wrap features are enabled, text 
  24062. that exceeds the margin defined by wp_right_margin will be word-wrapped to the 
  24063. following line. 
  24064.  
  24065. ____________ 
  24066.  
  24067. Value returned: 
  24068.  
  24069. This function returns a non-zero or TRUE value unless the buffer_flags variable 
  24070. is set to disallow edits to the buffer.  In this case a zero or FALSE value is 
  24071. returned. 
  24072.  
  24073. ____________ 
  24074.  
  24075. See also:  delete_chars(), buffer_flags, insert_string() 
  24076.  
  24077.  
  24078. ΓòÉΓòÉΓòÉ 14.20.14. insert_newline() ΓòÉΓòÉΓòÉ
  24079.  
  24080. insert_newline()   Primitive 
  24081.  
  24082. Purpose: Insert end-of-line marker and move cursor to next line. 
  24083.  
  24084. ____________ 
  24085.  
  24086. Syntax:  int insert_newline() 
  24087.  
  24088. ____________ 
  24089.  
  24090. Description: The insert_newline() function inserts an end-of-line sequence 
  24091. (buffer_eol_string) into the buffer at the current cursor position, and returns 
  24092. the cursor to the beginning of the new line. 
  24093.  
  24094. This function may also perform additional duties if the buffer_flags variable 
  24095. indicate they are required.  When the WP_ENABLED bit of the buffer_flags is 
  24096. set, the insert_newline() function honors the left-hand margin defined by the 
  24097. wp_left_margin variable.  After the end-of- line marker has been inserted, 
  24098. whitespace is added to the new line up to the column position contained in 
  24099. wp_left_margin. 
  24100.  
  24101. ____________ 
  24102.  
  24103. Value returned: 
  24104.  
  24105. This function will return a non-zero value except when the buffer_flags 
  24106. variable indicates that the buffer may not be modified.  Under these 
  24107. circumstances, the function returns zero. 
  24108.  
  24109. ____________ 
  24110.  
  24111. See also:  buffer_eol_string, buffer_flags, toggle_auto_indent 
  24112.  
  24113.  
  24114. ΓòÉΓòÉΓòÉ 14.20.15. insert_scrap() ΓòÉΓòÉΓòÉ
  24115.  
  24116. insert_scrap()   Primitive 
  24117.  
  24118. Purpose: Insert contents of scrap buffer at cursor position. 
  24119.  
  24120. ____________ 
  24121.  
  24122. Syntax:  int insert_scrap() 
  24123.  
  24124. ____________ 
  24125.  
  24126. Description: The insert_scrap() function inserts the contents of the scrap 
  24127. buffer into the current buffer.  When no block of text has been selected the 
  24128. text is inserted at the beginning of the line containing the cursor. 
  24129. Otherwise, the text is inserted at the current cursor position. 
  24130.  
  24131. After the insertion, the cursor is positioned at the end of the inserted text. 
  24132. The contents of the scrap buffer are not modified or lost. 
  24133.  
  24134. For those who are familiar with the concepts of "cut and paste", the 
  24135. delete_to_scrap() function is analogous to "cut".  This function serves as a 
  24136. "paste" feature. 
  24137.  
  24138. ____________ 
  24139.  
  24140. Value returned: 
  24141.  
  24142. When successful, the insert_scrap() function returns a non-zero value (TRUE). 
  24143. If for any reason the function can not be completed, a zero (FALSE) value will 
  24144. be returned. 
  24145.  
  24146. See also: cut(), paste(). 
  24147.  
  24148.  
  24149. ΓòÉΓòÉΓòÉ 14.20.16. open_line() ΓòÉΓòÉΓòÉ
  24150.  
  24151. open_line()   Primitive 
  24152.  
  24153. Purpose: Inserts a new line following the current line. 
  24154.  
  24155. ____________ 
  24156.  
  24157. Syntax: int open_line() 
  24158.  
  24159. ____________ 
  24160.  
  24161. Description: The open_line() function opens a new line immediately below the 
  24162. current one and positions the cursor at the beginning of that line.  The effect 
  24163. of this function is always the same as moving the cursor to the end of the 
  24164. current line and executing a insert_newline().  The insert_newline() function 
  24165. is normally assigned to the  key unless auto- indent is on. 
  24166.  
  24167. ____________ 
  24168.  
  24169. Value returned: The value returned by open_line() is non-zero (TRUE) upon 
  24170. success.  If the buffer is not editable the function will fail and return zero 
  24171. or FALSE. 
  24172.  
  24173.  
  24174. ΓòÉΓòÉΓòÉ 14.20.17. paste() ΓòÉΓòÉΓòÉ
  24175.  
  24176. paste()   PEL 
  24177.  
  24178. Purpose: Insert contents of scrap buffer at cursor position. 
  24179.  
  24180. ____________ 
  24181.  
  24182. Syntax: int paste() 
  24183.  
  24184. ____________ 
  24185.  
  24186. Description: The paste() function is a synynom for the insert_scrap() function. 
  24187. They function exactly the same. 
  24188.  
  24189. ____________ 
  24190.  
  24191. Value returned: TRUE if successful, FALSE if an error occured. 
  24192.  
  24193.  
  24194. ΓòÉΓòÉΓòÉ 14.20.18. redo() ΓòÉΓòÉΓòÉ
  24195.  
  24196. redo()   Primitive 
  24197.  
  24198. Purpose: Undoes the effects of a previous undo(). 
  24199.  
  24200. ____________ 
  24201.  
  24202. Syntax: int redo([int index]) 
  24203.  
  24204. ____________ 
  24205.  
  24206. Description: The redo() function restores the current buffer to a state prior 
  24207. to an undo() function call.  If the index argument is not specified, redo() 
  24208. reverses the effects of the most recent undo().  The index argument is a buffer 
  24209. operation number.  When specified, redo() restores the buffer to its condition 
  24210. when this operation number was the most recent edit.  The current operation 
  24211. number may be obtained and recorded for later use by calling the undo_index() 
  24212. function.  In order to be able to redo() an undo() there must be no intervening 
  24213. edit operations. 
  24214.  
  24215. This function is particularly useful when "undoing" a series of edits.  If one 
  24216. or more desired edits are inadvertently undone, they may be "redone" through 
  24217. the use of this function.  A series of undo() calls may be reversed by 
  24218. successive calls to the redo() function. 
  24219.  
  24220. ____________ 
  24221.  
  24222. Value returned: The value returned by the redo() function is non- zero (TRUE) 
  24223. if the edit operation is successfully redone.  A zero value (FALSE) is returned 
  24224. if there was nothing to redo or if an error prevented the operation from being 
  24225. redone. 
  24226.  
  24227. ____________ 
  24228.  
  24229. See also:   undo() 
  24230.  
  24231.  
  24232. ΓòÉΓòÉΓòÉ 14.20.19. redo_index() ΓòÉΓòÉΓòÉ
  24233.  
  24234. redo_index()   Primitive 
  24235.  
  24236. Purpose:  Queries the value of the redo index. 
  24237.  
  24238. ____________ 
  24239.  
  24240. Syntax:   int redo_index() 
  24241.  
  24242. ____________ 
  24243.  
  24244. Arguments: none. 
  24245.  
  24246. Description: The redo_index() function is used to query the value of the redo 
  24247. index. 
  24248.  
  24249. ____________ 
  24250.  
  24251. Value returned: Value of the redo index. 
  24252.  
  24253.  
  24254. ΓòÉΓòÉΓòÉ 14.20.20. undo() ΓòÉΓòÉΓòÉ
  24255.  
  24256. undo()   Primitive 
  24257.  
  24258. Purpose: Reverses the effects of a previous edit operation. 
  24259.  
  24260. ____________ 
  24261.  
  24262. Syntax: int undo([int index]) 
  24263.  
  24264. ____________ 
  24265.  
  24266. Description: The undo() function restores the current buffer to its condition 
  24267. previous to one or a series of recent edit or motion operations.  If the index 
  24268. argument is not specified, undo() reverses the effects of the most recent edit. 
  24269.  
  24270. Each operation on a buffer is assigned a sequential operation number.  The 
  24271. index argument is one of these buffer operation numbers.  undo() uses this 
  24272. argument to reverse the effects of all edits with operation numbers subsequent 
  24273. to index. 
  24274.  
  24275. The current operation number may be obtained and recorded for later use by 
  24276. calling the undo_index() function.  A series of edit operations or commands may 
  24277. also be reversed by successive calls to the undo() function. 
  24278.  
  24279. If a desired edit operation is inadvertently undone, the redo() function allows 
  24280. reversing the effect of an undo(). 
  24281.  
  24282. Operations which may be undone are stored, as they are executed, on an 
  24283. "undo/redo stack".  Each buffer has its own undo stack.  For each call to the 
  24284. undo() function, the most recent operation on the stack is reversed and the 
  24285. current operation number for that buffer is decremented. 
  24286.  
  24287. The operation that was undone is not lost, however, and is performed again if 
  24288. redo() is called before further editing.  Whenever editing commences again the 
  24289. contents of the stack beyond the current operation are lost. 
  24290.  
  24291. ____________ 
  24292.  
  24293. Value returned: The value returned by the undo() function is non- zero (TRUE) 
  24294. if the edit operation is successfully undone.  A zero value (FALSE) is returned 
  24295. if there was nothing to undo or if an error prevented an operation from being 
  24296. undone. 
  24297.  
  24298. ____________ 
  24299.  
  24300. See also:   redo(), undo_index() 
  24301.  
  24302.  
  24303. ΓòÉΓòÉΓòÉ 14.20.21. undo_index() ΓòÉΓòÉΓòÉ
  24304.  
  24305. undo_index()   Primitive 
  24306.  
  24307. Purpose: Reports current operation number of undo/redo stack. 
  24308.  
  24309. ____________ 
  24310.  
  24311. Syntax: int undo_index() 
  24312.  
  24313. ____________ 
  24314.  
  24315. Description: The undo_index() function returns a value that the undo() or 
  24316. redo() function can use to restore the current state of the buffer after 
  24317. additional edits have been made. 
  24318.  
  24319. Each operation on a buffer is assigned a sequential operation number.  This 
  24320. function returns the number of the operation most recently performed. When 
  24321. supplied as an argument to the undo() function, undo() reverses the effects of 
  24322. all edits with operation numbers subsequent to this value.  After a series of 
  24323. undo() calls, the redo() function can re-perform the series of operations up to 
  24324. this value. 
  24325.  
  24326. An example will clarify the use of these operation numbers: 
  24327.  
  24328. You type the letters "a", "b" and "c" into a new, empty buffer.  This 
  24329. represents three different edit operations.  Let us number them 1, 2, and 3. 
  24330. You are not sure of the next letters you are about to type and you think you 
  24331. may wish to return to the current state of the buffer if things don't work out. 
  24332. You therefore execute the undo_index() function and store away the value it 
  24333. gives you, which is the number 3. 
  24334.  
  24335. Next you type the letters "x", "y" and "z".  We number these operations 4, 5, 
  24336. and 6.  Already you are dissatisfied with the direction things are taking, so 
  24337. you call the undo() function, supplying the value you received from 
  24338. undo_index() as an argument.  Before doing so, however, you execute 
  24339. undo_index() and store away the value ( 6 ) that it returns.  Soon the contents 
  24340. of the buffer is again the letters "a", "b" and "c".  Remorse motivates you to 
  24341. execute the redo() function, using the value from the second execution of 
  24342. undo_index() as an argument.  The contents of the buffer is then "abcxyz". 
  24343.  
  24344. ____________ 
  24345.  
  24346. Value returned: The undo_index() function returns the number of the operation 
  24347. most recently performed in the current buffer. 
  24348.  
  24349.  
  24350. ΓòÉΓòÉΓòÉ 14.21. Time and Date ΓòÉΓòÉΓòÉ
  24351.  
  24352. The Time and Date function category is closely akin to the String manipulation 
  24353. category since most times and dates are represented in strings. These functions 
  24354. all use or produce a special time integer that contains the number of seconds 
  24355. since 00:00:00 January 1, 1970.  Both dates and times are stored using this 
  24356. type of integer. 
  24357.  
  24358. The ctime() function supplies the time and date in the most verbose form. The 
  24359. string returned by this function includes the complete time and date including 
  24360. day of the week.  If you require just the date or just the time, the dos_date() 
  24361. or dos_time() function, respectively, will probably serve your purpose better. 
  24362. To create a time integer you use the time() function.  You supply the 
  24363. individual values for year, month and so on in descending order of significance 
  24364. until you reach the desired level of precision.  You need not specify elements 
  24365. of lesser significance, such as seconds. 
  24366.  
  24367. ctime() 
  24368.           Supplies the time and date in string form. 
  24369. dos_date() 
  24370.           Converts encoded date into corresponding date string. 
  24371. dos_time() 
  24372.           Converts encoded time into time string. 
  24373. time() 
  24374.           Creates an encoded time value from elements. 
  24375.  
  24376.  
  24377. ΓòÉΓòÉΓòÉ 14.21.1. ctime() ΓòÉΓòÉΓòÉ
  24378.  
  24379. ctime()  AWK   Primitive 
  24380.  
  24381. Purpose: Supplies the time and date in string form. 
  24382.  
  24383. ____________ 
  24384.  
  24385. Syntax:  str ctime([int time]) 
  24386.  
  24387. ____________ 
  24388.  
  24389. Description: The ctime() function interprets the date stored in the time 
  24390. argument into a character string.  If the time argument is omitted the string 
  24391. contains the current date and time.  The coding of the time argument is 
  24392. described in detail in the description of the filetime() function. 
  24393.  
  24394. The character string takes the following form: 
  24395.  
  24396.  
  24397.     week _ daymonthdayhh : mm : ssyear
  24398.  
  24399. week_day is the first three characters of the day of the week and month is the 
  24400. first three letters of the month.  day represents the day of the month.  This 
  24401. is followed by the time of day, given in 24 hour format, and the year.  For 
  24402. example: 
  24403.  
  24404.  
  24405.   Wed Jul 05 15:03:22 1989
  24406.  
  24407. ____________ 
  24408.  
  24409. Value returned: The value returned by the ctime() function is the string 
  24410. containing the date and time. 
  24411.  
  24412. ____________ 
  24413.  
  24414. Compatibility: 
  24415.  
  24416. This function is quite similar to the ctime function supported by major C 
  24417. compilers except that the string returned does not contain a new-line sequence. 
  24418.  
  24419.  
  24420. ΓòÉΓòÉΓòÉ 14.21.2. dos_date() ΓòÉΓòÉΓòÉ
  24421.  
  24422. dos_date()   Primitive 
  24423.  
  24424. Purpose: Converts encoded date into corresponding date string. 
  24425.  
  24426. ____________ 
  24427.  
  24428. Syntax:  str dos_date([int datenum]) 
  24429.  
  24430. ____________ 
  24431.  
  24432. Description: The dos_date() function converts the date encoded in the datenum 
  24433. argument into a discernable string.  This string follows the form: MM/DD/YY. 
  24434. When the datenum argument is omitted, the string produced contains the current 
  24435. date. 
  24436.  
  24437. ____________ 
  24438.  
  24439. Value returned: 
  24440.  
  24441. The value returned by the dos_date() function is the new string containing the 
  24442. date.  If the datenum argument indicates a date prior to January 1, 1980 the 
  24443. function will return an empty string. 
  24444.  
  24445.  
  24446. ΓòÉΓòÉΓòÉ 14.21.3. dos_time() ΓòÉΓòÉΓòÉ
  24447.  
  24448. dos_time()   Primitive 
  24449.  
  24450. Purpose: Converts encoded time into time string. 
  24451.  
  24452. ____________ 
  24453.  
  24454. Syntax:  str dos_time([int timenum]) 
  24455.  
  24456. ____________ 
  24457.  
  24458. Description: The dos_time() function converts the time encoded in the timenum 
  24459. argument into a discernable string.  This string follows the form:  HH:MM:SS. 
  24460. If the datenum argument is omitted, the string produced contains the current 
  24461. time. 
  24462.  
  24463. ____________ 
  24464.  
  24465. Value returned: 
  24466.  
  24467. The value returned by the dos_time() function is the new string containing the 
  24468. time.  If a negative value is supplied as an argument, the function will return 
  24469. an empty string. 
  24470.  
  24471.  
  24472. ΓòÉΓòÉΓòÉ 14.21.4. time() ΓòÉΓòÉΓòÉ
  24473.  
  24474. time()   Primitive 
  24475.  
  24476. Purpose: Creates an encoded time value from elements. 
  24477.  
  24478. ____________ 
  24479.  
  24480. Syntax: int time([int yr [,mo [,day [,hr [,min [,sec]]]]]]) [,sec]]]]]]) 
  24481.  
  24482. ____________ 
  24483.  
  24484. Description: The time() function assembles the components of a date, specified 
  24485. as arguments to the function, into a timestamp integer.  The components that 
  24486. may be specified are year, month, day, hour, minute and second. 
  24487.  
  24488. The values allowed for these arguments are as follows:  The yr argument may be 
  24489. any value from 1980 onward.  The mo argument may be in the range from 1 to 12. 
  24490. The day argument may be from 1 to 31.  The hr argument may be from 0 to 23. 
  24491. The min and sec arguments may each be from 0 to 59. 
  24492.  
  24493. Each of the arguments to this function may optionally be omitted in order from 
  24494. the least significant to the most significant.  If an argument is omitted, the 
  24495. lowest allowable value for that argument is used.  If all arguments are 
  24496. omitted, however, the function is treated as a current time inquiry. 
  24497.  
  24498. ____________ 
  24499.  
  24500. Value returned: The value returned by time() is the number of seconds since 
  24501. 00:00:00 GMT, January 1, 1970. 
  24502.  
  24503.  
  24504. ΓòÉΓòÉΓòÉ 14.22. Toolbar ΓòÉΓòÉΓòÉ
  24505.  
  24506. create_toolbar() 
  24507.           Creates a toolbar template 
  24508. delete_toolbar() 
  24509.           Removes a toolbar and frees all memory associated with it 
  24510. delete_toolbaritem() 
  24511.           To remove a toolbar item from a toolbar. 
  24512. hide_toolbar() 
  24513.           To hide a toolbar. 
  24514. insert_toolbaritem() 
  24515.           To insert a toolbar item(a button) onto the toolbar. 
  24516. modify_toolbaritem() 
  24517.           To modify the attributes of a particular toolbar button. 
  24518. show_toolbar() 
  24519.           Displays a toolbar on a window 
  24520. toggle_toolbar() 
  24521.           Sets or toggles the state of the toolbar. 
  24522. toolbar_info() 
  24523.           To provide information on a toolbar 
  24524.  
  24525.  
  24526. ΓòÉΓòÉΓòÉ 14.22.1. create_toolbar() ΓòÉΓòÉΓòÉ
  24527.  
  24528. create_toolbar()   Primitive 
  24529.  
  24530. Purpose: Creates a toolbar template 
  24531.  
  24532. ____________ 
  24533.  
  24534. Syntax: long create_toolbar([long parent]) 
  24535.  
  24536. ____________ 
  24537.  
  24538. Description: The create_toolbar() function creates a blank toolbar template 
  24539. sutable for placement of toolbar items.  Use the insert_toolbaritem() function 
  24540. to place toolbar items on a toolbar. 
  24541.  
  24542. The optional parent argument contains the window which will contain the 
  24543. toolbar.  If no value is specified the main editor window will contain the 
  24544. toolbar.  If parent is specified it must be a valid dialog box id returned from 
  24545. one of the create_dialog functions. 
  24546.  
  24547. ____________ 
  24548.  
  24549. Value returned: The create_toolbar() function returns an id to the newly 
  24550. created toolbar.  This value is later used to add items to the toolbar. 
  24551.  
  24552.  
  24553. ΓòÉΓòÉΓòÉ 14.22.2. delete_toolbar() ΓòÉΓòÉΓòÉ
  24554.  
  24555. delete_toolbar()   Primitive 
  24556.  
  24557. Purpose: Removes a toolbar and frees all memory associated with it 
  24558.  
  24559. ____________ 
  24560.  
  24561. Syntax: void delete_toolbar(long toolbar) 
  24562.  
  24563. ____________ 
  24564.  
  24565. Description: The delete_toolbar() function removes a toolbar from a window and 
  24566. frees all associated memory used by the toolbar.  The toolbar id becomes 
  24567. invalid after this call. 
  24568.  
  24569. The toolbar argument contains the id of the toolbar to delete. This value must 
  24570. be a value returned from the create_toolbar() function call. 
  24571.  
  24572. ____________ 
  24573.  
  24574. Value returned: This function does not return a value. 
  24575.  
  24576.  
  24577. ΓòÉΓòÉΓòÉ 14.22.3. delete_toolbaritem() ΓòÉΓòÉΓòÉ
  24578.  
  24579. delete_toolbaritem()   Primitive 
  24580.  
  24581. Purpose:  To remove a toolbar item from a toolbar. 
  24582.  
  24583. ____________ 
  24584.  
  24585. Syntax:   delete_toolbaritem( long tbhand, short itemid ) 
  24586.  
  24587. ____________ 
  24588.  
  24589. Arguments: 
  24590.  
  24591. o tbhand  - the handle of the toolbar to remove the item from 
  24592. o itemid - the id of the item to remove 
  24593.  
  24594. Description: 
  24595.  
  24596. ____________ 
  24597.  
  24598. Value returned:  none 
  24599.  
  24600.  
  24601. ΓòÉΓòÉΓòÉ 14.22.4. hide_toolbar() ΓòÉΓòÉΓòÉ
  24602.  
  24603. hide_toolbar()   Primitive 
  24604.  
  24605. Purpose:  To hide a toolbar. 
  24606.  
  24607. ____________ 
  24608.  
  24609. Syntax:   hide_toolbar( long tbhand ) 
  24610.  
  24611. ____________ 
  24612.  
  24613. Arguments: 
  24614.  
  24615. o tbhand - the handle of the tooblar to hide 
  24616.  
  24617. Description: The hide_toolbar() function hides a toolbar so it is no longer 
  24618. visible. The memory associated with hide_toolbar() is not freed and the toolbar 
  24619. id is still a valid toolbar id.  To make the toolbar visible call the 
  24620. show_toolbar() function. 
  24621.  
  24622. The toolbar argument contains the toolbar id of the toolbar which will be 
  24623. hidden. 
  24624.  
  24625. ____________ 
  24626.  
  24627. Value returned:  none 
  24628.  
  24629. ____________ 
  24630.  
  24631. See also:create_toolbar(), show_toolbar() 
  24632.  
  24633.  
  24634. ΓòÉΓòÉΓòÉ 14.22.5. insert_toolbaritem() ΓòÉΓòÉΓòÉ
  24635.  
  24636. insert_toolbaritem()   Primitive 
  24637.  
  24638. Purpose:  To insert a toolbar item(a button) onto the toolbar. 
  24639.  
  24640. ____________ 
  24641.  
  24642. Syntax:   insert_toolbaritem( long tbhand, long itemid, long position, long 
  24643. ResId, macroid action ) 
  24644.  
  24645. ____________ 
  24646.  
  24647. Arguments: 
  24648.  
  24649. o tbhand  - the handle of the toolbar to insert onto 
  24650. o itemid  - the id of the button to insert 
  24651. o position - the x position on the toolbar to insert the button 
  24652. o ResId   - the id of the button resource 
  24653. o action  - the function to execute when the button is pressed 
  24654.  
  24655. Description: 
  24656.  
  24657. ____________ 
  24658.  
  24659. Value returned:  none 
  24660.  
  24661.  
  24662. ΓòÉΓòÉΓòÉ 14.22.6. modify_toolbaritem() ΓòÉΓòÉΓòÉ
  24663.  
  24664. modify_toolbaritem()   Primitive 
  24665.  
  24666. Purpose:  To modify the attributes of a particular toolbar button. 
  24667.  
  24668. ____________ 
  24669.  
  24670. Syntax:   modify_toolbaritem( long tbhand, short item_id, short flag, [any 
  24671. info] ) 
  24672.  
  24673. ____________ 
  24674.  
  24675. Arguments: 
  24676.  
  24677. o tbhand   -  the handle of the toolbar 
  24678. o item_id  -  the id of the button 
  24679. o flag    -  the attribute to set 
  24680. o info    -  information specific to the flag 
  24681.  
  24682. Description: 
  24683.  
  24684. ____________ 
  24685.  
  24686. Value returned:  none 
  24687.  
  24688.  
  24689. ΓòÉΓòÉΓòÉ 14.22.7. show_toolbar() ΓòÉΓòÉΓòÉ
  24690.  
  24691. show_toolbar()   Primitive 
  24692.  
  24693. Purpose: Displays a toolbar on a window 
  24694.  
  24695. ____________ 
  24696.  
  24697. Syntax: void show_toolbar(long toolbar) 
  24698.  
  24699. ____________ 
  24700.  
  24701. Description: The show_toolbar() function displays the specified toolbar on it's 
  24702. parent window.  The toolbar argument contains the toolbar id to display. 
  24703.  
  24704. ____________ 
  24705.  
  24706. Value returned: No value is returned from this function. 
  24707.  
  24708.  
  24709. ΓòÉΓòÉΓòÉ 14.22.8. toggle_toolbar() ΓòÉΓòÉΓòÉ
  24710.  
  24711. toggle_toolbar()   PEL 
  24712.  
  24713. Purpose:  Sets or toggles the state of the toolbar. 
  24714.  
  24715. ____________ 
  24716.  
  24717. Syntax:   toggle_toolbar( enable ) 
  24718.  
  24719. ____________ 
  24720.  
  24721. Arguments: 
  24722.  
  24723. o enable - forced direction of toggle 
  24724.  
  24725. Description: If the optional parameter on is specified, it forces the toolbar 
  24726. to toggle either on if TRUE, or off if FALSE.  If the parameter is not 
  24727. specified, the current state of toolbar is toggled. 
  24728.  
  24729. ____________ 
  24730.  
  24731. Value returned:  none 
  24732.  
  24733.  
  24734. ΓòÉΓòÉΓòÉ 14.22.9. toolbar_info() ΓòÉΓòÉΓòÉ
  24735.  
  24736. toolbar_info()   Primitive 
  24737.  
  24738. Purpose:  To provide information on a toolbar 
  24739.  
  24740. ____________ 
  24741.  
  24742. Syntax:   toolbar_info( long tbhand, [short flag, [short item_id, [short 
  24743. noErrorMsg]]] ) 
  24744.  
  24745. ____________ 
  24746.  
  24747. Arguments: 
  24748.  
  24749. o tbhand    -  the handle of the toolbar to query; if zero, handle of editor 
  24750.   window's toolbar is returned. 
  24751. o flag     -  the type of info to query 
  24752. o item_id    -  id of a toolbar item to query, not necessary for some flags 
  24753. o noErrorMsg  -  do not display an error message if the item does not exist or 
  24754.   the query is invalid.  Can be used to check for validity of an id. 
  24755.  
  24756. Description: This function is used to query information about a toolbar, such 
  24757. as querying the bitmap associated with a button, or checking whether a button 
  24758. is currently enabled or disabled.  Valid queries are: 
  24759.  
  24760. TB_IS_VISIBLE 
  24761.           TRUE if toolbar is visible 
  24762. TI_DISABLED 
  24763.           TRUE if button is disabled, FALSE if not 
  24764. TI_DOWN 
  24765.           TRUE if button is down, FALSE if up 
  24766. TI_ENABLED 
  24767.           TRUE if button is enabled, FALSE if not 
  24768. TI_FUNCTIONID 
  24769.           funcid called when the button is pressed 
  24770. TI_ITEMBITMAP 
  24771.           bitmap associated with the button 
  24772. TI_UP 
  24773.           TRUE if button is up, FALSE if down 
  24774.  
  24775. ____________ 
  24776.  
  24777. Value returned: If successful, the value returned is the information requested, 
  24778. otherwise, uninitialized is returned. 
  24779.  
  24780.  
  24781. ΓòÉΓòÉΓòÉ 14.23. Types ΓòÉΓòÉΓòÉ
  24782.  
  24783. AutoIndent() 
  24784.           Query the auto indent state of the given type. 
  24785. Block() 
  24786.           Query information about block style syntax highlighting items. 
  24787. BufferFlags() 
  24788.           Query the buffer flags used for a type. 
  24789. Category() 
  24790.           Query information about a syntax highlighting category for a type. 
  24791. CommandLine() 
  24792.           Query the command line for the compiler of a type. 
  24793. CopyType() 
  24794.           Copy all of the information associated with one type to another. 
  24795. EscapeCharacter() 
  24796.           Query the escape chracter defined for the given type. 
  24797. Keyword() 
  24798.           Query information about Keyword style syntax highlighting items. 
  24799. LeftMargin() 
  24800.           Query the position of the left margin. 
  24801. Line() 
  24802.           Query information about Line style syntax highlighting items. 
  24803. Margins() 
  24804.           Query the position of the margins. 
  24805. MatchingPairs() 
  24806.           Query the matching pairs defined for the given type. 
  24807. RightMargin() 
  24808.           Query the position of the right margin. 
  24809. SetType() 
  24810.           Add an extension-type association to the extensions array. 
  24811. StyleDelimiters() 
  24812.           Query the style delimiters defined for the given type. 
  24813. Syntax() 
  24814.           Query the state of syntax highlighting for a type. 
  24815. Template() 
  24816.           Query which template is assigned to a type. 
  24817. add_syntax_category() 
  24818.           Add a new syntax highlighting caegory to the specified type. 
  24819. add_syntax_item() 
  24820.  
  24821. add_type() 
  24822.           Add a new type to the languages array. 
  24823. load_factory_<type_name>_syntax() 
  24824.           Load the factory default syntax highlighting items for <type_name>. 
  24825. load_user_<type_name>_syntax() 
  24826.           Load the user defined syntax highlighting items for <type_name>. 
  24827. set_auto_indent() 
  24828.           Define the auto indent status for a type. 
  24829. set_buffer_flags() 
  24830.           Define the buffer flags for a type. 
  24831. set_case_sensitive() 
  24832.           Define whether syntax highlighting for a type is case sensitive. 
  24833. set_escape_character() 
  24834.           Define the escape character used in syntax highlighting for a type. 
  24835. set_expand_template() 
  24836.           Define the template expansion status for a type. 
  24837. set_left_margin() 
  24838.           Define the left margin for a type. 
  24839. set_margins() 
  24840.           Define the margins for a type. 
  24841. set_pairs() 
  24842.           Define the matching pairs used for a type. 
  24843. set_right_margin() 
  24844.           Define the right margin for a type. 
  24845. set_style_delimiters() 
  24846.           Define the style delimiters used in syntax highlighting for a type. 
  24847. set_syntax() 
  24848.           Define the syntax highlighting status for a type. 
  24849. set_tabs() 
  24850.           Define the tab stops used for a type. 
  24851.  
  24852.  
  24853. ΓòÉΓòÉΓòÉ 14.23.1. add_syntax_category() ΓòÉΓòÉΓòÉ
  24854.  
  24855. add_syntax_category()   PEL 
  24856.  
  24857. Purpose:  Add a new syntax highlighting caegory to the specified type. 
  24858.  
  24859. ____________ 
  24860.  
  24861. Syntax:   add_syntax_category(str type, int index, str name, long fg, long bg) 
  24862.  
  24863. ____________ 
  24864.  
  24865. Arguments: 
  24866.  
  24867. o type - name of type 
  24868. o index - category number 
  24869. o name - category name 
  24870. o fg - foreground color for items in the category 
  24871. o bg - background color for items in the category 
  24872.  
  24873. Description: The add_syntax_category() function adds a new category to the list 
  24874. of available categories for the specified type.  If index is less than zero, 
  24875. the editor either adds a category of name "name" and assigns it a number, or if 
  24876. "name" already exists, it is modified to have the new colors.  If index >= 0, 
  24877. it is used as the category number, and the specified category is created or 
  24878. modified. 
  24879.  
  24880. ____________ 
  24881.  
  24882. Value returned: 
  24883.  
  24884. See also: 
  24885.  
  24886. o languages[] 
  24887.  
  24888.  
  24889. ΓòÉΓòÉΓòÉ 14.23.2. add_syntax_item() ΓòÉΓòÉΓòÉ
  24890.  
  24891. add_syntax_item()   PEL 
  24892.  
  24893. Purpose: 
  24894.  
  24895. ____________ 
  24896.  
  24897. Syntax:   add_syntax_item(str type, int style, str item, long value, [long 
  24898. MASK]) 
  24899.  
  24900. ____________ 
  24901.  
  24902. Arguments: 
  24903.  
  24904. o type - name of a type 
  24905. o style - the kind of style the new item will be 
  24906. o item - the syntax highlighting item being added 
  24907. o value - the value to be assigned to the item 
  24908. o MASK - mask applied to the existing item value and the new value 
  24909.  
  24910. Description: The add_syntax_item() function adds a new item to the syntax 
  24911. highlighting array for the given type or modifies an existing item. The style 
  24912. argument is one of defined constants LINE, KEYWORD, or BLOCK. The item being 
  24913. added must be  valid for the indicated style, as this function does not handle 
  24914. validation.  All the information relevant to an item is passed in the value 
  24915. parameter.  If a MASK is specified, the value parameter is MASKed over the 
  24916. existing item value, otherwise the item value is replaced with "value". 
  24917.  
  24918. ____________ 
  24919.  
  24920. Value returned: 
  24921.  
  24922. See also: 
  24923.  
  24924. o languages[] 
  24925.  
  24926.  
  24927. ΓòÉΓòÉΓòÉ 14.23.3. add_type() ΓòÉΓòÉΓòÉ
  24928.  
  24929. add_type()   PEL 
  24930.  
  24931. Purpose:  Add a new type to the languages array. 
  24932.  
  24933. ____________ 
  24934.  
  24935. Syntax:   add_type(str name, [str compiler, [str template, [str tab_stobs, [str 
  24936. margins, [str matching, [str escape_ch, [long flags, [int indent, [int syntax, 
  24937. [str delimiters, [int sensitive, [int expand]]]]]]]) 
  24938.  
  24939. ____________ 
  24940.  
  24941. Arguments: 
  24942.  
  24943. o name - the name of the new type 
  24944. o compiler - name of the compiler assigned to the type 
  24945. o template - name of the template for the type 
  24946. o tab_stobs - tab stop definition 
  24947. o margins - string of left and right margins 
  24948. o matching - the set of matching pairs 
  24949. o escape_ch - character used as the escape character 
  24950. o flags - flags to be used as buffer flags 
  24951. o indent - auto indent flag 
  24952. o syntax - syntax hightlighting flag 
  24953. o delimiters - string of characters that delimts keywords 
  24954. o sensitive - flag indicating if syntax highlighting items are case sensitive 
  24955. o expand - flag for turning on template expansion 
  24956.  
  24957. Description: The add_type() function adds a new type to the languages[] array. 
  24958. All of the information provided in the function call is saved and applied to 
  24959. buffers that have extensions mapped to the type. 
  24960.  
  24961. ____________ 
  24962.  
  24963. Value returned: 
  24964.  
  24965. ____________ 
  24966.  
  24967. See also: 
  24968.  
  24969. o buffer_tabs 
  24970. o languages[] 
  24971.  
  24972.  
  24973. ΓòÉΓòÉΓòÉ 14.23.4. add_<type_name>_type() ΓòÉΓòÉΓòÉ
  24974.  
  24975. add_<type_name>_type()   PEL 
  24976.  
  24977. Purpose:  Set up the default values for a specific type. 
  24978.  
  24979. ____________ 
  24980.  
  24981. Syntax:   add_<type_name>_type() 
  24982.  
  24983. ____________ 
  24984.  
  24985. Arguments: 
  24986.  
  24987. Description: The add_<type_name>_name() functions set up the default values for 
  24988. some predefined types including: 
  24989.  
  24990. o add_awk_type() 
  24991. o add_cobol_type() 
  24992. o add_pascal_type() 
  24993. o add_pel_type() 
  24994. o add_rexx_type() 
  24995. o add_vdiff_ref_type() 
  24996. o add_vdiff_target_type() 
  24997.  
  24998. ____________ 
  24999.  
  25000. Value returned: 
  25001.  
  25002. See also: 
  25003.  
  25004.  
  25005. ΓòÉΓòÉΓòÉ 14.23.5. AutoIndent() ΓòÉΓòÉΓòÉ
  25006.  
  25007. AutoIndent()   PEL 
  25008.  
  25009. Purpose:  Query the auto indent state of the given type. 
  25010.  
  25011. ____________ 
  25012.  
  25013. Syntax:   AutoIndent(str index) 
  25014.  
  25015. ____________ 
  25016.  
  25017. Arguments: 
  25018.  
  25019. o index - extension or type name 
  25020.  
  25021. Description: The AutoInent() function returns the auto indent status of the 
  25022. given index.  The index may either be a type name or an extension. 
  25023.  
  25024. ____________ 
  25025.  
  25026. Value returned: 
  25027.  
  25028. Value returned:TRUE if on, FALSE if off. 
  25029.  
  25030. See also: 
  25031.  
  25032. o auto_indent_mode 
  25033. o languages[] 
  25034.  
  25035.  
  25036. ΓòÉΓòÉΓòÉ 14.23.6. Block() ΓòÉΓòÉΓòÉ
  25037.  
  25038. Block()   PEL 
  25039.  
  25040. Purpose:  Query information about block style syntax highlighting items. 
  25041.  
  25042. ____________ 
  25043.  
  25044. Syntax:   Block(str index, [str word, [long MASK]]) 
  25045.  
  25046. ____________ 
  25047.  
  25048. Arguments: 
  25049.  
  25050. o index - extension or type name 
  25051. o word - syntax highlighting item 
  25052. o MASK - information mask 
  25053.  
  25054. Description: The Block() function returns the array of items that are block 
  25055. styles of the given index.  The index may either be a type name or an 
  25056. extension.  If the second parameter, word, is specified, information about the 
  25057. block style "word" is returned.  The information returned depends on MASK.  If 
  25058. not supplied, all information available for "word" is returned. Otherwise the 
  25059. following table is used: 
  25060.  
  25061. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  25062. ΓöéCATEGORY_MASK  ΓöéCategory number of word       Γöé
  25063. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25064. ΓöéITEM_MASK      ΓöéSyntax style index of word    Γöé
  25065. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25066. ΓöéFLAG_MASK      ΓöéSpecial flags for advanced    Γöé
  25067. Γöé               Γöéhighlighting                  Γöé
  25068. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  25069.  
  25070. ____________ 
  25071.  
  25072. Value returned: Requested information or -1. 
  25073.  
  25074. See also: 
  25075.  
  25076. o languages[] 
  25077.  
  25078.  
  25079. ΓòÉΓòÉΓòÉ 14.23.7. BufferFlags() ΓòÉΓòÉΓòÉ
  25080.  
  25081. BufferFlags()   PEL 
  25082.  
  25083. Purpose:  Query the buffer flags used for a type. 
  25084.  
  25085. ____________ 
  25086.  
  25087. Syntax:   BufferFlags(str index) 
  25088.  
  25089. ____________ 
  25090.  
  25091. Arguments: 
  25092.  
  25093. o index - extension or type name 
  25094.  
  25095. Description: 
  25096.  
  25097. The BufferFlags() function returns the buffer flags of the given index.  These 
  25098. flags are used whenever a buffer of this type is loaded.  The index may either 
  25099. be a type name or an extension. 
  25100.  
  25101. ____________ 
  25102.  
  25103. Value returned: Buffer flags for the type. 
  25104.  
  25105. See also: 
  25106.  
  25107. o buffer_flags 
  25108. o languages[] 
  25109.  
  25110.  
  25111. ΓòÉΓòÉΓòÉ 14.23.8. Category() ΓòÉΓòÉΓòÉ
  25112.  
  25113. Category()   PEL 
  25114.  
  25115. Purpose:  Query information about a syntax highlighting category for a type. 
  25116.  
  25117. ____________ 
  25118.  
  25119. Syntax:   Category(str index, [any word, [int flag]]) 
  25120.  
  25121. ____________ 
  25122.  
  25123. Arguments: 
  25124.  
  25125. o index - extension or type name 
  25126. o word - category name or number 
  25127. o flag - flag indicating what information to query 
  25128.  
  25129. Description: The Category() function can be used to retrieve various 
  25130. information from a type's array of syntax highlighting categories. The index 
  25131. may either be a type name or an extension.  The word parameter may either be a 
  25132. category name or a category number.  If it is not supplied, the entire array of 
  25133. categories is returned.  The flag parameter indicates what information to 
  25134. return on a particular category. 
  25135.  
  25136. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  25137. ΓöéFlag   ΓöéInformation returned     Γöé
  25138. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25139. Γöé1      ΓöéForeground color         Γöé
  25140. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25141. Γöé2      ΓöéBackground color         Γöé
  25142. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25143. Γöéother  ΓöéCategory name or number  Γöé
  25144. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  25145.  
  25146. ____________ 
  25147.  
  25148. Value returned: See above. 
  25149.  
  25150. See also: 
  25151.  
  25152. o languages[] 
  25153.  
  25154.  
  25155. ΓòÉΓòÉΓòÉ 14.23.9. CommandLine() ΓòÉΓòÉΓòÉ
  25156.  
  25157. CommandLine()   PEL 
  25158.  
  25159. Purpose:  Query the command line for the compiler of a type. 
  25160.  
  25161. ____________ 
  25162.  
  25163. Syntax:   CommandLine(str index, [int expand, [str fname]]) 
  25164.  
  25165. ____________ 
  25166.  
  25167. Arguments: 
  25168.  
  25169. o index - compiler name, extension or type name 
  25170. o expand - flag that forces the command line to be expanded 
  25171. o fname - file name used in the expand command line 
  25172.  
  25173. Description: 
  25174.  
  25175. The CommandLine() function returns the command line used by the given index 
  25176. when compile_buffer() is invoked.  The index may either be compiler name, type 
  25177. name or an extension.  If the second parameter is TRUE, the command line is 
  25178. expanded and the third parameter is used as the input file name. 
  25179.  
  25180. ____________ 
  25181.  
  25182. Value returned: Command line for the given index, or error code less than 0. 
  25183.  
  25184. See also: 
  25185.  
  25186. o compilers[] 
  25187.  
  25188.  
  25189. ΓòÉΓòÉΓòÉ 14.23.10. CopyType() ΓòÉΓòÉΓòÉ
  25190.  
  25191. CopyType()   PEL 
  25192.  
  25193. Purpose:  Copy all of the information associated with one type to another. 
  25194.  
  25195. ____________ 
  25196.  
  25197. Syntax:   CopyType(str type, str new_type) 
  25198.  
  25199. ____________ 
  25200.  
  25201. Arguments: 
  25202.  
  25203. o type - type to copy from 
  25204. o new_type - type to copy to 
  25205.  
  25206. Description: The CopyType() function copies all of the information defined for 
  25207. type to the corresponding fields of new_type.  If new_type does not exist, this 
  25208. function will create it. 
  25209.  
  25210. ____________ 
  25211.  
  25212. Value returned: 
  25213.  
  25214. See also: 
  25215.  
  25216. o languages[] 
  25217.  
  25218.  
  25219. ΓòÉΓòÉΓòÉ 14.23.11. EscapeCharacter() ΓòÉΓòÉΓòÉ
  25220.  
  25221. EscapeCharacter()   PEL 
  25222.  
  25223. Purpose:  Query the escape chracter defined for the given type. 
  25224.  
  25225. ____________ 
  25226.  
  25227. Syntax:   EscapeCharacter(str index) 
  25228.  
  25229. ____________ 
  25230.  
  25231. Arguments: 
  25232.  
  25233. o index - extension or type name 
  25234.  
  25235. Description: The EscapeCharacter() function returns the escape character used 
  25236. by the type.  Line styles preceded by the escape character and marked as being 
  25237. escapable are not syntax highlighted.  The index may either be a type name or 
  25238. an extension. 
  25239.  
  25240. ____________ 
  25241.  
  25242. Value returned: 
  25243.  
  25244. See also: 
  25245.  
  25246. o languages[] 
  25247.  
  25248.  
  25249. ΓòÉΓòÉΓòÉ 14.23.12. get_case_sensitive() ΓòÉΓòÉΓòÉ
  25250.  
  25251. get_case_sensitive()   PEL 
  25252.  
  25253. Purpose:  Query the state of the case sensitive flag of a type. 
  25254.  
  25255. ____________ 
  25256.  
  25257. Syntax:   int get_case_sensitive(str index) 
  25258.  
  25259. ____________ 
  25260.  
  25261. Arguments: 
  25262.  
  25263. o index - file extension or type name 
  25264.  
  25265. Description: The get_case_sensitive() function returns the state of the case 
  25266. sensitive flag.  The flag is used to determine whether syntax highlighting 
  25267. items are case sensitive or not.  The index parameter can be either a file 
  25268. extension or a type name. 
  25269.  
  25270. ____________ 
  25271.  
  25272. Value returned: The state of the case sensitive flag for the type. 
  25273.  
  25274. See also: 
  25275.  
  25276. o case_insensitive 
  25277. o languages[] 
  25278.  
  25279.  
  25280. ΓòÉΓòÉΓòÉ 14.23.13. get_expand_template() ΓòÉΓòÉΓòÉ
  25281.  
  25282. get_expand_template()   PEL 
  25283.  
  25284. Purpose:  Query the state of the template expansion of a type. 
  25285.  
  25286. ____________ 
  25287.  
  25288. Syntax:   int get_expand_template(str index) 
  25289.  
  25290. ____________ 
  25291.  
  25292. Arguments: 
  25293.  
  25294. o index - file extension or type name 
  25295.  
  25296. Description: The get_expand_template() function returns the state of template 
  25297. exansion for the given index.  The index parameter can be either a file 
  25298. extension or a type name. 
  25299.  
  25300. ____________ 
  25301.  
  25302. Value returned: The state of the case sensitive flag for the type. 
  25303.  
  25304. See also: 
  25305.  
  25306. o electric_mode 
  25307. o expand_template() 
  25308. o languages[] 
  25309.  
  25310.  
  25311. ΓòÉΓòÉΓòÉ 14.23.14. Keyword() ΓòÉΓòÉΓòÉ
  25312.  
  25313. Keyword()   PEL 
  25314.  
  25315. Purpose:  Query information about Keyword style syntax highlighting items. 
  25316.  
  25317. ____________ 
  25318.  
  25319. Syntax:   Keyword(str index, [str word, [long MASK]]) 
  25320.  
  25321. ____________ 
  25322.  
  25323. Arguments: 
  25324.  
  25325. o index - extension or type name 
  25326. o word - syntax highlighting item 
  25327. o MASK - information mask 
  25328.  
  25329. Description: The Keyword() function returns the array of items that are keyword 
  25330. styles of the given index.  The index may either be a type name or an 
  25331. extension.  If the second parameter, word, is specified, information about the 
  25332. keyword style "word" is returned.  The information returned depends on MASK. 
  25333. If not supplied, all information available for "word" is returned. Otherwise 
  25334. the following table is used: 
  25335.  
  25336. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  25337. ΓöéCATEGORY_MASK  ΓöéCategory number of word       Γöé
  25338. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25339. ΓöéITEM_MASK      ΓöéSyntax style index of word    Γöé
  25340. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25341. ΓöéFLAG_MASK      ΓöéSpecial flags for advanced    Γöé
  25342. Γöé               Γöéhighlighting                  Γöé
  25343. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  25344.  
  25345. ____________ 
  25346.  
  25347. Value returned: Requested information or -1. 
  25348.  
  25349. See also: 
  25350.  
  25351. o languages[] 
  25352.  
  25353.  
  25354. ΓòÉΓòÉΓòÉ 14.23.15. LeftMargin() ΓòÉΓòÉΓòÉ
  25355.  
  25356. LeftMargin()   PEL 
  25357.  
  25358. Purpose:  Query the position of the left margin. 
  25359.  
  25360. ____________ 
  25361.  
  25362. Syntax:   LeftMargin(str index) 
  25363.  
  25364. ____________ 
  25365.  
  25366. Arguments: 
  25367.  
  25368. o index - extension or type name 
  25369.  
  25370. Description: The LeftMargin() function returns the position of the left margin 
  25371. for the specified index.  The index may either be a type name or an extension. 
  25372.  
  25373. ____________ 
  25374.  
  25375. Value returned: The left margin for the type or FALSE. 
  25376.  
  25377. See also: 
  25378.  
  25379.  
  25380. ΓòÉΓòÉΓòÉ 14.23.16. Line() ΓòÉΓòÉΓòÉ
  25381.  
  25382. Line()   PEL 
  25383.  
  25384. Purpose:  Query information about Line style syntax highlighting items. 
  25385.  
  25386. ____________ 
  25387.  
  25388. Syntax:   Line(str index, [str word, [long MASK]]) 
  25389.  
  25390. ____________ 
  25391.  
  25392. Arguments: 
  25393.  
  25394. o index - extension or type name 
  25395. o word - syntax highlighting item 
  25396. o MASK - information mask 
  25397.  
  25398. Description: The Line() function returns the array of items that are line 
  25399. styles of the given index.  The index may either be a type name or an 
  25400. extension.  If the second parameter, word, is specified, information about the 
  25401. line style "word" is returned.  The information returned depends on MASK.  If 
  25402. not supplied, all information available for "word" is returned. Otherwise the 
  25403. following table is used: 
  25404.  
  25405. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  25406. ΓöéCATEGORY_MASK  ΓöéCategory number of word       Γöé
  25407. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25408. ΓöéITEM_MASK      ΓöéSyntax style index of word    Γöé
  25409. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25410. ΓöéFLAG_MASK      ΓöéSpecial flags for advanced    Γöé
  25411. Γöé               Γöéhighlighting                  Γöé
  25412. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  25413. ΓöéCOLUMN_MASK    ΓöéColumn word must begin in.    Γöé
  25414. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  25415.  
  25416. ____________ 
  25417.  
  25418. Value returned: Requested information or -1. 
  25419.  
  25420. See also: 
  25421.  
  25422. o languages[] 
  25423.  
  25424.  
  25425. ΓòÉΓòÉΓòÉ 14.23.17. load_factory_<type_name>_syntax() ΓòÉΓòÉΓòÉ
  25426.  
  25427. load_factory_<type_name>_syntax()   PEL 
  25428.  
  25429. Purpose:  Load the factory default syntax highlighting items for <type_name>. 
  25430.  
  25431. ____________ 
  25432.  
  25433. Syntax:   load_factory_<type_name>_syntax() 
  25434.  
  25435. ____________ 
  25436.  
  25437. Arguments: 
  25438.  
  25439. Description: The load_factory_<type_name>_syntax() functions are provided as a 
  25440. base for syntax highlighting.  These functions are located in the 
  25441. <type_name>.pel source files that are included with PREDITOR/2.  The first time 
  25442. you load a file with an extension mapped to <type_name> and you have syntax 
  25443. highlighting turned on, the corresponding load_user_<type_name>_syntax() 
  25444. function is called.  Initially those functions contain a single call of the 
  25445. load_factory_<type_name>_syntax() function.  These functions load each 
  25446. individual syntax item with its color into an array that used for highlighting. 
  25447.  
  25448. ____________ 
  25449.  
  25450. Value returned: 
  25451.  
  25452. See also: 
  25453.  
  25454. o languages[] 
  25455. o load_user_<type_name>_syntax() 
  25456.  
  25457.  
  25458. ΓòÉΓòÉΓòÉ 14.23.18. load_user_<type_name>_syntax() ΓòÉΓòÉΓòÉ
  25459.  
  25460. load_user_<type_name>_syntax()   PEL 
  25461.  
  25462. Purpose:  Load the user defined syntax highlighting items for <type_name>. 
  25463.  
  25464. ____________ 
  25465.  
  25466. Syntax:   load_user_<type_name>_syntax() 
  25467.  
  25468. ____________ 
  25469.  
  25470. Arguments: 
  25471.  
  25472. Description: The load_user_<type_name>_syntax() functions load all of the 
  25473. syntax itmes defined for <type_name>.  These functions are located in 
  25474. language.pel and are written there whenever the information of an item of that 
  25475. type is modified in the settings notebook. Initially these functions contain a 
  25476. single call of the load_factory_<type_name>_syntax() function. 
  25477.  
  25478. ____________ 
  25479.  
  25480. Value returned: 
  25481.  
  25482. See also: 
  25483.  
  25484. o languages[] 
  25485. o load_factory_<type_name>_syntax() 
  25486.  
  25487.  
  25488. ΓòÉΓòÉΓòÉ 14.23.19. RightMargin() ΓòÉΓòÉΓòÉ
  25489.  
  25490. RightMargin()   PEL 
  25491.  
  25492. Purpose:  Query the position of the right margin. 
  25493.  
  25494. ____________ 
  25495.  
  25496. Syntax:   RightMargin(str index) 
  25497.  
  25498. ____________ 
  25499.  
  25500. Arguments: 
  25501.  
  25502. o index - extension or type name 
  25503.  
  25504. Description: The RightMargin() function returns the position of the right 
  25505. margin for the specified index.  The index may either be a type name or an 
  25506. extension. 
  25507.  
  25508. ____________ 
  25509.  
  25510. Value returned: The right margin for the type or FALSE. 
  25511.  
  25512. See also: 
  25513.  
  25514.  
  25515. ΓòÉΓòÉΓòÉ 14.23.20. Margins() ΓòÉΓòÉΓòÉ
  25516.  
  25517. Margins()   PEL 
  25518.  
  25519. Purpose:  Query the position of the margins. 
  25520.  
  25521. ____________ 
  25522.  
  25523. Syntax:   str Margins(str index) 
  25524.  
  25525. ____________ 
  25526.  
  25527. Arguments: 
  25528.  
  25529. o index - extension or type name 
  25530.  
  25531. Description: The Margins() function returns the positions of the margins for 
  25532. the specified index.  In the returned string, the left margin precedes the 
  25533. right margin and they are separated by a space.  The index may either be a type 
  25534. name or an extension. 
  25535.  
  25536. ____________ 
  25537.  
  25538. Value returned: The margins for the type or FALSE. 
  25539.  
  25540. See also: 
  25541.  
  25542.  
  25543. ΓòÉΓòÉΓòÉ 14.23.21. MatchingPairs() ΓòÉΓòÉΓòÉ
  25544.  
  25545. MatchingPairs()   PEL 
  25546.  
  25547. Purpose:  Query the matching pairs defined for the given type. 
  25548.  
  25549. ____________ 
  25550.  
  25551. Syntax:   str MatchingPairs(str index) 
  25552.  
  25553. ____________ 
  25554.  
  25555. Arguments: 
  25556.  
  25557. o index - extension or type name 
  25558.  
  25559. Description: The MatchingPairs() function returns the matching pairs defined 
  25560. for the specified index.  In the returned string, pairs are separated by a 
  25561. space, and opening and closing structures are separated by a space.  The index 
  25562. may either be a type name or an extension. 
  25563.  
  25564. ____________ 
  25565.  
  25566. Value returned: The matching pairs for the type or FALSE. 
  25567.  
  25568. See also: 
  25569.  
  25570.  
  25571. ΓòÉΓòÉΓòÉ 14.23.22. set_auto_indent() ΓòÉΓòÉΓòÉ
  25572.  
  25573. set_auto_indent()   PEL 
  25574.  
  25575. Purpose:  Define the auto indent status for a type. 
  25576.  
  25577. ____________ 
  25578.  
  25579. Syntax:   set_auto_indent(str index, int flag) 
  25580.  
  25581. ____________ 
  25582.  
  25583. Arguments: 
  25584.  
  25585. o index - extension or type name 
  25586. o flag - new state of auto indent 
  25587.  
  25588. Description: The set_auto_indent() function changes the state of auto indenting 
  25589. for the given index to the value in flag.  Index may be either an extension or 
  25590. a type name. 
  25591.  
  25592. ____________ 
  25593.  
  25594. Value returned: 
  25595.  
  25596. See also: 
  25597.  
  25598. o auto_indent_mode 
  25599. o languages[] 
  25600.  
  25601.  
  25602. ΓòÉΓòÉΓòÉ 14.23.23. set_buffer_flags() ΓòÉΓòÉΓòÉ
  25603.  
  25604. set_buffer_flags()   PEL 
  25605.  
  25606. Purpose:  Define the buffer flags for a type. 
  25607.  
  25608. ____________ 
  25609.  
  25610. Syntax:   set_buffer_flags(str index, long flag) 
  25611.  
  25612. ____________ 
  25613.  
  25614. Arguments: 
  25615.  
  25616. o index - extension or type name 
  25617. o flag - new buffer flags for the type 
  25618.  
  25619. Description: The set_buffer_flags() function changes the buffer flags for the 
  25620. given index to the value in flag.  Index may be either an extension or a type 
  25621. name. 
  25622.  
  25623. ____________ 
  25624.  
  25625. Value returned: 
  25626.  
  25627. See also: 
  25628.  
  25629. o buffer_flags 
  25630. o languages[] 
  25631.  
  25632.  
  25633. ΓòÉΓòÉΓòÉ 14.23.24. set_case_sensitive() ΓòÉΓòÉΓòÉ
  25634.  
  25635. set_case_sensitive()   PEL 
  25636.  
  25637. Purpose:  Define whether syntax highlighting for a type is case sensitive. 
  25638.  
  25639. ____________ 
  25640.  
  25641. Syntax:   set_case_sensitive(str index, int flag) 
  25642.  
  25643. ____________ 
  25644.  
  25645. Arguments: 
  25646.  
  25647. o index - extension or type name 
  25648. o flag - new buffer flags for the type 
  25649.  
  25650. Description: The set_case_sensitive() function changes the state of case 
  25651. sensitivity for the given index to the value in flag.  Index may be either an 
  25652. extension or a type name. 
  25653.  
  25654. ____________ 
  25655.  
  25656. Value returned: 
  25657.  
  25658. See also: 
  25659.  
  25660. o case_insensitive 
  25661. o languages[] 
  25662.  
  25663.  
  25664. ΓòÉΓòÉΓòÉ 14.23.25. set_escape_character() ΓòÉΓòÉΓòÉ
  25665.  
  25666. set_escape_character()   PEL 
  25667.  
  25668. Purpose:  Define the escape character used in syntax highlighting for a type. 
  25669.  
  25670. ____________ 
  25671.  
  25672. Syntax:   set_escape_character(str index, string flag) 
  25673.  
  25674. ____________ 
  25675.  
  25676. Arguments: 
  25677.  
  25678. o index - extension or type name 
  25679. o flag - new escape character for the type 
  25680.  
  25681. Description: The set_escape_character() function changes the character used to 
  25682. begin an escape sequence for the given index to the value in flag.  The escape 
  25683. character can be place in front of line styles that are defined as escapable to 
  25684. prevent them from being highlighted.  Index may be either an extension or a 
  25685. type name. 
  25686.  
  25687. ____________ 
  25688.  
  25689. Value returned: 
  25690.  
  25691. See also: 
  25692.  
  25693. o escape_character 
  25694. o languages[] 
  25695.  
  25696.  
  25697. ΓòÉΓòÉΓòÉ 14.23.26. set_expand_template() ΓòÉΓòÉΓòÉ
  25698.  
  25699. set_expand_template()   PEL 
  25700.  
  25701. Purpose:  Define the template expansion status for a type. 
  25702.  
  25703. ____________ 
  25704.  
  25705. Syntax:   set_expand_template(str index, int flag) 
  25706.  
  25707. ____________ 
  25708.  
  25709. Arguments: 
  25710.  
  25711. o index - extension or type name 
  25712. o flag - new state of template expansion 
  25713.  
  25714. Description: The set_expand_template() function changes the state of template 
  25715. expansion for the given index to the value in flag.  Index may be either an 
  25716. extension or a type name. 
  25717.  
  25718. ____________ 
  25719.  
  25720. Value returned: 
  25721.  
  25722. See also: 
  25723.  
  25724. o auto_indent_mode 
  25725. o languages[] 
  25726.  
  25727.  
  25728. ΓòÉΓòÉΓòÉ 14.23.27. set_left_margin() ΓòÉΓòÉΓòÉ
  25729.  
  25730. set_left_margin()   PEL 
  25731.  
  25732. Purpose:  Define the left margin for a type. 
  25733.  
  25734. ____________ 
  25735.  
  25736. Syntax:   set_left_margin(str index, int flag) 
  25737.  
  25738. ____________ 
  25739.  
  25740. Arguments: 
  25741.  
  25742. o index - extension or type name 
  25743. o flag - new value for the left margin 
  25744.  
  25745. Description: The set_left_margin() function changes the left margin for the 
  25746. given index to the value in flag.  Index may be either an extension or a type 
  25747. name. 
  25748.  
  25749. ____________ 
  25750.  
  25751. Value returned: 
  25752.  
  25753. See also: 
  25754.  
  25755. o languages[] 
  25756. o wp_left_margin 
  25757. o wp_right_margin 
  25758.  
  25759.  
  25760. ΓòÉΓòÉΓòÉ 14.23.28. set_right_margin() ΓòÉΓòÉΓòÉ
  25761.  
  25762. set_right_margin()   PEL 
  25763.  
  25764. Purpose:  Define the right margin for a type. 
  25765.  
  25766. ____________ 
  25767.  
  25768. Syntax:   set_right_margin(str index, int flag) 
  25769.  
  25770. ____________ 
  25771.  
  25772. Arguments: 
  25773.  
  25774. o index - extension or type name 
  25775. o flag - new value for the right margin 
  25776.  
  25777. Description: The set_right_margin() function changes the right margin for the 
  25778. given index to the value in flag.  Index may be either an extension or a type 
  25779. name. 
  25780.  
  25781. ____________ 
  25782.  
  25783. Value returned: 
  25784.  
  25785. See also: 
  25786.  
  25787. o languages[] 
  25788. o wp_left_margin 
  25789. o wp_right_margin 
  25790.  
  25791.  
  25792. ΓòÉΓòÉΓòÉ 14.23.29. set_margins() ΓòÉΓòÉΓòÉ
  25793.  
  25794. set_margins()   PEL 
  25795.  
  25796. Purpose:  Define the margins for a type. 
  25797.  
  25798. ____________ 
  25799.  
  25800. Syntax:   set_margins(str index, string flag) 
  25801.  
  25802. ____________ 
  25803.  
  25804. Arguments: 
  25805.  
  25806. o index - extension or type name 
  25807. o flag - new value for the margins 
  25808.  
  25809. Description: The set_margins() function changes the margins used in word 
  25810. processing mode for the given index to the value in flag.  "flag" must be a 
  25811. string of characters in which the left margin is followed by <space> and then 
  25812. the right margin. Index may be either an extension or a type name. 
  25813.  
  25814. ____________ 
  25815.  
  25816. Value returned: 
  25817.  
  25818. See also: 
  25819.  
  25820. o languages[] 
  25821. o wp_left_margin 
  25822. o wp_right_margin 
  25823.  
  25824.  
  25825. ΓòÉΓòÉΓòÉ 14.23.30. set_pairs() ΓòÉΓòÉΓòÉ
  25826.  
  25827. set_pairs()   PEL 
  25828.  
  25829. Purpose:  Define the matching pairs used for a type. 
  25830.  
  25831. ____________ 
  25832.  
  25833. Syntax:   set_pairs(str index, string flag) 
  25834.  
  25835. ____________ 
  25836.  
  25837. Arguments: 
  25838.  
  25839. o index - extension or type name 
  25840. o flag - new matching pairs for the type 
  25841.  
  25842. Description: The set_pairs() function changes the string defining the set of 
  25843. matching pairs for the specified index.  The pairs specified in the flag 
  25844. parameter are separated by a space, and opening and closing structures are 
  25845. separated by a space.  The index may either be a type name or an extension. 
  25846.  
  25847. ____________ 
  25848.  
  25849. Value returned: 
  25850.  
  25851. See also: 
  25852.  
  25853. o matching_pairs 
  25854. o languages[] 
  25855.  
  25856.  
  25857. ΓòÉΓòÉΓòÉ 14.23.31. set_style_delimiters() ΓòÉΓòÉΓòÉ
  25858.  
  25859. set_style_delimiters()   PEL 
  25860.  
  25861. Purpose:  Define the style delimiters used in syntax highlighting for a type. 
  25862.  
  25863. ____________ 
  25864.  
  25865. Syntax:   set_style_delimiters(str index, string flag) 
  25866.  
  25867. ____________ 
  25868.  
  25869. Arguments: 
  25870.  
  25871. o index - extension or type name 
  25872. o flag - new style delimiters for the type 
  25873.  
  25874. Description: The set_style_delimiters() function changes the characters used to 
  25875. delimit keywords for syntax highlighting.  The space and tab characters are 
  25876. automatically used, so they do not need to be included in the string.  Index 
  25877. may be either an extension or a type name. 
  25878.  
  25879. ____________ 
  25880.  
  25881. Value returned: 
  25882.  
  25883. See also: 
  25884.  
  25885. o escape_character 
  25886. o languages[] 
  25887.  
  25888.  
  25889. ΓòÉΓòÉΓòÉ 14.23.32. set_syntax() ΓòÉΓòÉΓòÉ
  25890.  
  25891. set_syntax()   PEL 
  25892.  
  25893. Purpose:  Define the syntax highlighting status for a type. 
  25894.  
  25895. ____________ 
  25896.  
  25897. Syntax:   set_syntax(str index, int flag) 
  25898.  
  25899. ____________ 
  25900.  
  25901. Arguments: 
  25902.  
  25903. o index - extension or type name 
  25904. o flag - new state of syntax highlighting 
  25905.  
  25906. Description: The set_syntax() function changes the state of syntax highlighting 
  25907. for the given index to the value in flag.  Index may be either an extension or 
  25908. a type name. 
  25909.  
  25910. ____________ 
  25911.  
  25912. Value returned: 
  25913.  
  25914. See also: 
  25915.  
  25916. o syntax_highlight 
  25917. o languages[] 
  25918.  
  25919.  
  25920. ΓòÉΓòÉΓòÉ 14.23.33. set_tabs() ΓòÉΓòÉΓòÉ
  25921.  
  25922. set_tabs()   PEL 
  25923.  
  25924. Purpose:  Define the tab stops used for a type. 
  25925.  
  25926. ____________ 
  25927.  
  25928. Syntax:   set_tabs(str index, string flag) 
  25929.  
  25930. ____________ 
  25931.  
  25932. Arguments: 
  25933.  
  25934. o index - extension or type name 
  25935. o flag - new tab stops for the type 
  25936.  
  25937. Description: The set_tabs() function changes the string defining the tab stops 
  25938. for the specified index.  The index may either be a type name or an extension. 
  25939.  
  25940. ____________ 
  25941.  
  25942. Value returned: 
  25943.  
  25944. See also: 
  25945.  
  25946. o buffer_tabs 
  25947. o languages[] 
  25948.  
  25949.  
  25950. ΓòÉΓòÉΓòÉ 14.23.34. SetType() ΓòÉΓòÉΓòÉ
  25951.  
  25952. SetType()   PEL 
  25953.  
  25954. Purpose:  Add an extension-type association to the extensions array. 
  25955.  
  25956. ____________ 
  25957.  
  25958. Syntax:   SetType(str ext, str type) 
  25959.  
  25960. ____________ 
  25961.  
  25962. Arguments: 
  25963.  
  25964. o ext - file extension 
  25965. o type - name of a type 
  25966.  
  25967. Description: The SetType() function adds ext to the extensions[] array and maps 
  25968. ext to the type "type".  The first character of "ext" must be a "." and "type" 
  25969. must be a name that can be used as part of a function name i.e. it can only 
  25970. include alphanumeric characters and the "_" character. 
  25971.  
  25972. ____________ 
  25973.  
  25974. Value returned: 
  25975.  
  25976. See also: 
  25977.  
  25978. o extensions[] 
  25979. o Type() 
  25980.  
  25981.  
  25982. ΓòÉΓòÉΓòÉ 14.23.35. Style() ΓòÉΓòÉΓòÉ
  25983.  
  25984. Style()   PEL 
  25985.  
  25986. Purpose:  Query the style of a syntax highlighting item. 
  25987.  
  25988. ____________ 
  25989.  
  25990. Syntax:   int Style(str index, str item) 
  25991.  
  25992. ____________ 
  25993.  
  25994. Arguments: 
  25995.  
  25996. o index - file extension or type name 
  25997. o item - syntax highlighting item 
  25998.  
  25999. Description: The Style() function returns the style of a syntax highlighting 
  26000. item.  The index parameter can be either a file extension or a type name. 
  26001.  
  26002. ____________ 
  26003.  
  26004. Value returned: The function returns LINE, KEYWORD, BLOCK or FALSE. 
  26005.  
  26006. See also: 
  26007.  
  26008. o languages[] 
  26009.  
  26010.  
  26011. ΓòÉΓòÉΓòÉ 14.23.36. StyleDelimiters() ΓòÉΓòÉΓòÉ
  26012.  
  26013. StyleDelimiters()   PEL 
  26014.  
  26015. Purpose:  Query the style delimiters defined for the given type. 
  26016.  
  26017. ____________ 
  26018.  
  26019. Syntax:   StyleDelimiters(str index) 
  26020.  
  26021. ____________ 
  26022.  
  26023. Arguments: 
  26024.  
  26025. o index - extension or type name 
  26026.  
  26027. Description: The StyleDelimiters function returns the characters that are 
  26028. defined as delimiting keywords for the type.  In order for keywords to be 
  26029. syntax highlighted, they must be surrounded by style delimiters.  Space and tab 
  26030. are implicitly included.  The index may either be a type name or an extension. 
  26031.  
  26032. ____________ 
  26033.  
  26034. Value returned: The style delimiters for the type or FALSE. 
  26035.  
  26036. See also: 
  26037.  
  26038. o languages[] 
  26039.  
  26040.  
  26041. ΓòÉΓòÉΓòÉ 14.23.37. Syntax() ΓòÉΓòÉΓòÉ
  26042.  
  26043. Syntax()   PEL 
  26044.  
  26045. Purpose:  Query the state of syntax highlighting for a type. 
  26046.  
  26047. ____________ 
  26048.  
  26049. Syntax:   int Syntax(str index) 
  26050.  
  26051. ____________ 
  26052.  
  26053. Arguments: 
  26054.  
  26055. o index - extension or type name 
  26056.  
  26057. Description: The Syntax() function returns whether syntax highlighting is 
  26058. turned on for a type.  The index may either be a type name or an extension. 
  26059.  
  26060. ____________ 
  26061.  
  26062. Value returned: TRUE is syntax highlighting is on, FALSE otherwise. 
  26063.  
  26064. See also: 
  26065.  
  26066. o languages[] 
  26067.  
  26068.  
  26069. ΓòÉΓòÉΓòÉ 14.23.38. Tabs() ΓòÉΓòÉΓòÉ
  26070.  
  26071. Tabs()   PEL 
  26072.  
  26073. Purpose:  Query the tab stops for a type. 
  26074.  
  26075. ____________ 
  26076.  
  26077. Syntax:   str Tabs(str index) 
  26078.  
  26079. ____________ 
  26080.  
  26081. Arguments: 
  26082.  
  26083. o index - file extension or type name 
  26084.  
  26085. Description: The Tabs() function returns the tab stops used by buffers of type 
  26086. "index".  The index parameter can be either a file extension or a type name. 
  26087.  
  26088. ____________ 
  26089.  
  26090. Value returned: The tab stops used by buffers of type "index" 
  26091.  
  26092. See also: 
  26093.  
  26094. o buffer_tabs 
  26095. o languages[] 
  26096.  
  26097.  
  26098. ΓòÉΓòÉΓòÉ 14.23.39. Template() ΓòÉΓòÉΓòÉ
  26099.  
  26100. Template()   PEL 
  26101.  
  26102. Purpose:  Query which template is assigned to a type. 
  26103.  
  26104. ____________ 
  26105.  
  26106. Syntax:   str Template(str index) 
  26107.  
  26108. ____________ 
  26109.  
  26110. Arguments: 
  26111.  
  26112. o index - extension or type name 
  26113.  
  26114. Description: The Template() function returns which template is assigned to a 
  26115. type.  The index may either be a type name or an extension. 
  26116.  
  26117. ____________ 
  26118.  
  26119. Value returned: The name of the template used for template expansion for the 
  26120. type. 
  26121.  
  26122. See also: 
  26123.  
  26124. o languages[] 
  26125.  
  26126.  
  26127. ΓòÉΓòÉΓòÉ 14.23.40. Type() ΓòÉΓòÉΓòÉ
  26128.  
  26129. Type()   PEL 
  26130.  
  26131. Purpose:  Query the type associated with an extension. 
  26132.  
  26133. ____________ 
  26134.  
  26135. Syntax:   str Type(str ext) 
  26136.  
  26137. ____________ 
  26138.  
  26139. Arguments: 
  26140.  
  26141. o ext - file extension 
  26142.  
  26143. Description: The Type() function returns the type name associated with the 
  26144. given extension.  The ext parameter must begin with a ".". 
  26145.  
  26146. ____________ 
  26147.  
  26148. Value returned: The type associated with the extension. 
  26149.  
  26150. See also: 
  26151.  
  26152. o languages[] 
  26153.  
  26154.  
  26155. ΓòÉΓòÉΓòÉ 14.24. User Interface ΓòÉΓòÉΓòÉ
  26156.  
  26157. The User Interface category contains the functions and variables used in 
  26158. creating menus, prompting the user and accessing a mouse. 
  26159.  
  26160. Menus and Prompting 
  26161.  
  26162. The functions provided for prompting the user are confirm() and prompt(). These 
  26163. allow prompting for either a single character response or inputting a string, 
  26164. respectively. 
  26165.  
  26166. There are several lower level  used in creating and manipulating menus that are 
  26167. also listed in this category.  Their use is normally limited to advanced users. 
  26168. These functions include:  highlight_screen() and highlight_window() 
  26169.  
  26170. Mouse Access 
  26171.  
  26172. You access the mouse almost entirely through the use of variables.  Using a 
  26173. mouse in extension language functions is easier than anticipated by most people 
  26174. who have not previously programmed for a mouse. 
  26175.  
  26176. You begin by determining if a working mouse is installed.  The mouse_available 
  26177. variable will provide this information.  If the mouse is present, you declare 
  26178. your intent to use the mouse by setting the mouse_enabled variable.  The next 
  26179. step is to determine what appearance you will give the mouse.  Since the 
  26180. PREDITOR/2 mouse has a software cursor, you may select the character and 
  26181. attribute that indicates the current mouse position.  It is often preferable 
  26182. just to change or complement the attribute of the existing character to 
  26183. indicate the mouse position.  Whichever you choose to do, you control the 
  26184. appearance of the mouse through the values of the mouse_cursor_mask and 
  26185. mouse_display_mask variables. 
  26186.  
  26187. You may use either of two different pairs of variables to mouse determine and 
  26188. set the location of the mouse cursor.  These pairs of variables are mouse_ 
  26189. display_x/mouse_display_y and mouse_pixel_x/mouse_pixel_y.  While the mouse_ 
  26190. display_... variables describe the position of the mouse in lines and columns, 
  26191. the mouse_pixel_... variables describe it in pixels.  Pixels provide a higher 
  26192. resolution.  You may use either pair of these variables, even though you are in 
  26193. text mode.  In contrast to variables such as current_line and current_column, 
  26194. which begin the count with 1, both of these pairs of variables are zero origin. 
  26195.  
  26196. Finally, you may determine what mouse buttons are depressed through the 
  26197. mouse_buttons variable.  Alternately, you may wish to determine which mouse 
  26198. buttons are depressed through the use of Events.  There are several  button 
  26199. events described under the "Event Handling" category. 
  26200.  
  26201. In addition, the functions window_border_contains(), window_contains() and 
  26202. window_containing() will assist you in determining where the mouse is pointing. 
  26203. The first two provide True/False answers to your assertions about a window 
  26204. location and the third identifies which window is showing at a specified 
  26205. location. 
  26206.  
  26207. add_prompt_history() 
  26208.           To add a string to a prompt history 
  26209. beep() 
  26210.           Emits a short tone from the speaker. 
  26211. confirm() 
  26212.           Prompts user and obtains a response. 
  26213. current_history_item() 
  26214.           To get an item from a history. 
  26215. delete_history_item() 
  26216.           To delete an item from a history list 
  26217. display_errors() 
  26218.           Parses an error file and places the results in a dialog. 
  26219. error() 
  26220.           Displays formatted output in dialog window. 
  26221. flush_keyboard() 
  26222.           Discards keyboard input currently waiting to be read. 
  26223. getchar() 
  26224.           Read an ASCII character from the keyboard. 
  26225. getkey() 
  26226.           Get a key code from the keyboard. 
  26227. highlight_screen() 
  26228.           Change the attribute of an area of text on the screen. 
  26229. highlight_window() 
  26230.           Change the attribute of an area of text in a window. 
  26231. message() 
  26232.           Displays formatted output in the Dialog window. 
  26233. notify() 
  26234.           Alerts user to a condition and allows response. 
  26235. prompt() 
  26236.           Presents a string for editing. 
  26237. prompt_history() 
  26238.           Prompt for string; remember previous strings. 
  26239. toggle_pause() 
  26240.           Toggles pausing on errors. 
  26241. ungetkey() 
  26242.           Return a character to the keyboard buffer. 
  26243. warning() 
  26244.           Displays formatted output in the Dialog window. 
  26245.  
  26246.  
  26247. ΓòÉΓòÉΓòÉ 14.24.1. add_prompt_history() ΓòÉΓòÉΓòÉ
  26248.  
  26249. add_prompt_history()   PEL 
  26250.  
  26251. Purpose:  To add a string to a prompt history 
  26252.  
  26253. ____________ 
  26254.  
  26255. Syntax:   add_prompt_history( str histName, str patt) 
  26256.  
  26257. ____________ 
  26258.  
  26259. Arguments: 
  26260.  
  26261. o histName - the history to add to 
  26262. o patt - the pattern to add 
  26263.  
  26264. Description: The add_prompt_history() function adds patt to the end of 
  26265. histName's history list. 
  26266.  
  26267. ____________ 
  26268.  
  26269. Value returned: The "patt"ern added to the list. 
  26270.  
  26271.  
  26272. ΓòÉΓòÉΓòÉ 14.24.2. beep() ΓòÉΓòÉΓòÉ
  26273.  
  26274. beep()   Primitive 
  26275.  
  26276. Purpose: Emits a short tone from the speaker. 
  26277.  
  26278. ____________ 
  26279.  
  26280. Syntax:  void beep() 
  26281.  
  26282. ____________ 
  26283.  
  26284. Description: The beep() function outputs a brief note from the speaker.  If 
  26285. this sound does not meet with your approval or you wish to define a series of 
  26286. different sounds, a new sound can be recorded in the beep_string() variable. 
  26287.  
  26288. ____________ 
  26289.  
  26290. Value returned: 
  26291.  
  26292. No value is returned from this function. 
  26293.  
  26294.  
  26295. ΓòÉΓòÉΓòÉ 14.24.3. confirm() ΓòÉΓòÉΓòÉ
  26296.  
  26297. confirm()   Primitive 
  26298.  
  26299. Purpose: Prompts user and obtains a response. 
  26300.  
  26301. ____________ 
  26302.  
  26303. Syntax:  str confirm(str prompt, str responses) 
  26304.  
  26305. ____________ 
  26306.  
  26307. Description: The confirm() function displays the message provided in the prompt 
  26308. argument.  It then reads the keyboard until one of the characters in the 
  26309. responses string is typed or the user hits the escape key.  When a character 
  26310. other than escape or the specified responses is typed, the function replies 
  26311. with a beep(). 
  26312.  
  26313. The confirm function treats the characters in the responses argument in a 
  26314. case-sensitive fashion.  This means that if both "Y" and "y" are acceptable 
  26315. responses, both characters must be included in the string. 
  26316.  
  26317. ____________ 
  26318.  
  26319. Value returned: 
  26320.  
  26321. The value returned by the confirm function is either a string containing the 
  26322. response accepted or an empty string if the user pressed escape. 
  26323.  
  26324.  
  26325. ΓòÉΓòÉΓòÉ 14.24.4. current_history_item() ΓòÉΓòÉΓòÉ
  26326.  
  26327. current_history_item()   PEL 
  26328.  
  26329. Purpose:  To get an item from a history. 
  26330.  
  26331. ____________ 
  26332.  
  26333. Syntax:   current_history_item( str history, str index ) 
  26334.  
  26335. ____________ 
  26336.  
  26337. Arguments: 
  26338.  
  26339. o history  - history to index 
  26340. o index   - index in the history 
  26341.  
  26342. Description: 
  26343.  
  26344. ____________ 
  26345.  
  26346. Value returned: 
  26347.  
  26348.  
  26349. ΓòÉΓòÉΓòÉ 14.24.5. delete_history_item() ΓòÉΓòÉΓòÉ
  26350.  
  26351. delete_history_item()   PEL 
  26352.  
  26353. Purpose:  To delete an item from a history list 
  26354.  
  26355. ____________ 
  26356.  
  26357. Syntax:   delete_history_item( str histName, str pattern ) 
  26358.  
  26359. ____________ 
  26360.  
  26361. Arguments: 
  26362.  
  26363. o histName - the name of the history 
  26364. o pattern  - the item in the history to delete 
  26365.  
  26366. Description: 
  26367.  
  26368. ____________ 
  26369.  
  26370. Value returned: TRUE  -  the delete was successful FALSE -  the pattern was not 
  26371. found in the history 
  26372.  
  26373.  
  26374. ΓòÉΓòÉΓòÉ 14.24.6. display_errors() ΓòÉΓòÉΓòÉ
  26375.  
  26376. display_errors()   PEL 
  26377.  
  26378. Purpose:  Parses an error file and places the results in a dialog. 
  26379.  
  26380. ____________ 
  26381.  
  26382. Syntax:   void display_errors([str sourceFileName, str errorFileName, str 
  26383. errorCompiler, bool saveFile, bool list_all, long dlgid])) 
  26384.  
  26385. ____________ 
  26386.  
  26387. Arguments:  sourceFileName = the name of the file the errors are for, it 
  26388. defaults to the current buffer's filename, 
  26389.  
  26390. errorFileName  = the name of the file that contains the errors, it defualt to 
  26391. the same as sourceFileName, but with .ERR as the extension. 
  26392.  
  26393. errorCompiler = the name of the compiler, it is looked up in the compiler 
  26394. settings if not specified. 
  26395.  
  26396. saveFile = a flag which if set, causes the errorFileName to be saved after the 
  26397. errors are extracted, otherwise the errorFileName will be deleted. 
  26398.  
  26399. list_all = a flag which if set, causes all lines in errorFileName to be placed 
  26400. into the dialog. If it is not provided, then the value of list_all_output is 
  26401. used. 
  26402.  
  26403. dlgid = the handle of the dialog to place the errors, if it is not provided, a 
  26404. new dialog will be created. 
  26405.  
  26406. Description: The errorFileName file is parsed and the results are placed into a 
  26407. compile list dialog. 
  26408.  
  26409. ____________ 
  26410.  
  26411. Value returned: None. 
  26412.  
  26413.  
  26414. ΓòÉΓòÉΓòÉ 14.24.7. error() ΓòÉΓòÉΓòÉ
  26415.  
  26416. error()   Primitive 
  26417.  
  26418. Purpose: Displays formatted output in dialog window. 
  26419.  
  26420. ____________ 
  26421.  
  26422. Syntax:  void error(str fmt [, any args,...]) 
  26423.  
  26424. ____________ 
  26425.  
  26426. Description: The error() function prints a formatted message to the Dialog 
  26427. window and aborts the PEL program currently processing.  If no dialog window 
  26428. has been defined, a window pops up to display the message.  In this case the 
  26429. editor pauses for a key to be typed before closing the window.  The output from 
  26430. this function is suppressed if the variable message_level is 3.  The extension 
  26431. language program, however, aborts regardless of how message_level is set. 
  26432.  
  26433. The fmt and args arguments follow the argument form of the fprintf() function. 
  26434.  
  26435. ____________ 
  26436.  
  26437. Value returned: No useful value is returned by this function. 
  26438.  
  26439. ____________ 
  26440.  
  26441. See also:  message_level 
  26442.  
  26443.  
  26444. ΓòÉΓòÉΓòÉ 14.24.8. flush_keyboard() ΓòÉΓòÉΓòÉ
  26445.  
  26446. flush_keyboard()   Primitive 
  26447.  
  26448. Purpose: Discards keyboard input currently waiting to be read. 
  26449.  
  26450. ____________ 
  26451.  
  26452. Syntax:  int flush_keyboard() 
  26453.  
  26454. ____________ 
  26455.  
  26456. Description: The flush_keyboard() function empties the keyboard buffer of all 
  26457. pending input.  This is often desirable before prompted input, to ensure that 
  26458. perceived input is in response to the prompt. 
  26459.  
  26460. ____________ 
  26461.  
  26462. Value returned: 
  26463.  
  26464. The value returned by the flush_keyboard() function is non-zero (TRUE) if there 
  26465. were characters pending in the keyboard buffer. If there were no characters 
  26466. pending, the function returns a zero (FALSE) value. 
  26467.  
  26468.  
  26469. ΓòÉΓòÉΓòÉ 14.24.9. getchar() ΓòÉΓòÉΓòÉ
  26470.  
  26471. getchar()   Primitive 
  26472.  
  26473. Purpose: Read an ASCII character from the keyboard. 
  26474.  
  26475. ____________ 
  26476.  
  26477. Syntax:  int getchar() 
  26478.  
  26479. ____________ 
  26480.  
  26481. Description: The getchar() function waits for a character to be received from 
  26482. the keyboard and then returns its ASCII value or key code. 
  26483.  
  26484. ____________ 
  26485.  
  26486. Value returned: 
  26487.  
  26488. If the key pressed has an ASCII value, that value will be returned.  If the 
  26489. value returned is zero, a non-ASCII key has been pressed.  In this case, 
  26490. calling getchar() again will obtain the key code. 
  26491.  
  26492. ____________ 
  26493.  
  26494. Example: 
  26495.  
  26496. function read_key {
  26497.   local inchar
  26498.   inchar = getchar()
  26499.   if (inchar == 0 && keyboard_input_pending)
  26500.    inchar = shiftl(getchar(),8)
  26501.   return inchar
  26502. }
  26503.  
  26504. This example returns the input; either ASCII value or key code. 
  26505.  
  26506. ____________ 
  26507.  
  26508. See also:  getkey(), keyboard_input_pending 
  26509.  
  26510.  
  26511. ΓòÉΓòÉΓòÉ 14.24.10. getkey() ΓòÉΓòÉΓòÉ
  26512.  
  26513. getkey()   Primitive 
  26514.  
  26515. Purpose: Get a key code from the keyboard. 
  26516.  
  26517. ____________ 
  26518.  
  26519. Syntax:  int getkey() 
  26520.  
  26521. ____________ 
  26522.  
  26523. Description: The getkey() waits for a key to be pressed. It then returns the 
  26524. key's key code. 
  26525.  
  26526. ____________ 
  26527.  
  26528. Value returned: 
  26529.  
  26530. The getkey() function returns the key code of the key pressed.  Use the 
  26531. int_to_ascii() function to convert the returned value to ASCII. 
  26532.  
  26533. ____________ 
  26534.  
  26535. See also:  getchar(), keyboard_input_pending, int_to_ascii() 
  26536.  
  26537.  
  26538. ΓòÉΓòÉΓòÉ 14.24.11. highlight_screen() ΓòÉΓòÉΓòÉ
  26539.  
  26540. highlight_screen()   Primitive 
  26541.  
  26542. Purpose: Change the attribute of an area of text on the screen. 
  26543.  
  26544. ____________ 
  26545.  
  26546. Syntax:  void highlight_screen(int x, y, wide, high, attr) 
  26547.  
  26548. ____________ 
  26549.  
  26550. Description: The highlight_screen() function changes the text attribute of a 
  26551. specified area of the screen.  The area whose attribute is to be changed or 
  26552. highlighted need not appear within any window. 
  26553.  
  26554. The x and y arguments to this function are the screen column and line offsets. 
  26555. These two arguments indicate where highlighting begins. 
  26556.  
  26557. The wide and high arguments define the number of columns and lines that are to 
  26558. be highlighted.  These arguments will normally be at least 1. 
  26559.  
  26560. The attr argument is the attribute to be given to the text in the described 
  26561. area. Permissible attribute values and their meanings are shown in a table in 
  26562. the "Windowing" section in Part One of this manual. 
  26563.  
  26564. ____________ 
  26565.  
  26566. Value returned: 
  26567.  
  26568. This function returns no useful value. 
  26569.  
  26570. ____________ 
  26571.  
  26572. See also:  highlight_window(), 
  26573.  
  26574.  
  26575. ΓòÉΓòÉΓòÉ 14.24.12. highlight_window() ΓòÉΓòÉΓòÉ
  26576.  
  26577. highlight_window()   Primitive 
  26578.  
  26579. Purpose: Change the attribute of an area of text in a window. 
  26580.  
  26581. ____________ 
  26582.  
  26583. Syntax:  void highlight_window(int x, y, wide, high, attr [, winid win]) 
  26584.  
  26585. ____________ 
  26586.  
  26587. Description: The highlight_window() function changes the text attribute of a 
  26588. specified area of a window.  The text whose attribute will change or be 
  26589. highlighted is assumed to be in the current window unless the optional win 
  26590. argument is supplied. 
  26591.  
  26592. The x and y arguments to this function are column and line offsets from the 
  26593. beginning of text in the window.  These two arguments indicate where 
  26594. highlighting begins.  The variables window_text_x0 and window_text_y0 describe 
  26595. the location where text begins in the window. 
  26596.  
  26597. The wide and high arguments define the number of columns and lines that are to 
  26598. be highlighted.  These arguments will normally be at least 1. 
  26599.  
  26600. The attr argument is the attribute to be given to the text in the described 
  26601. area. Permissible attribute values and their meanings are shown in a table in 
  26602. the "Windowing" section in Part One of this manual. 
  26603.  
  26604. ____________ 
  26605.  
  26606. Value returned: 
  26607.  
  26608. This function returns no useful value. 
  26609.  
  26610. ____________ 
  26611.  
  26612. See also:  highlight_screen(). 
  26613.  
  26614.  
  26615. ΓòÉΓòÉΓòÉ 14.24.13. message() ΓòÉΓòÉΓòÉ
  26616.  
  26617. message()   Primitive 
  26618.  
  26619. Purpose: Displays formatted output in the Dialog window. 
  26620.  
  26621. ____________ 
  26622.  
  26623. Syntax: void message(str fmt [, any args,...]) 
  26624.  
  26625. ____________ 
  26626.  
  26627. Description: The message() function prints a formatted message to the Dialog 
  26628. window.  If no dialog window has been defined, a window pops up to display the 
  26629. message. In this case the editor pauses for a key to be typed before closing 
  26630. the window.  The output from this function is suppressed if the variable 
  26631. message_level is greater than 0. 
  26632.  
  26633. This function is primarily used to display informative messages, such as a 
  26634. message telling the user that a task has been completed.  The fmt and args 
  26635. arguments follow the argument specifications of the fprintf() function. 
  26636.  
  26637. ____________ 
  26638.  
  26639. Value returned: No useful value is returned by this function. 
  26640.  
  26641. ____________ 
  26642.  
  26643. See also:   message_level 
  26644.  
  26645.  
  26646. ΓòÉΓòÉΓòÉ 14.24.14. notify() ΓòÉΓòÉΓòÉ
  26647.  
  26648. notify()   Primitive 
  26649.  
  26650. Purpose: Alerts user to a condition and allows response. 
  26651.  
  26652. ____________ 
  26653.  
  26654. Syntax: void notify(str fmt [, any args,...]) 
  26655.  
  26656. ____________ 
  26657.  
  26658. Description: The notify() function prints a formatted message to the Dialog 
  26659. window.  If no dialog window has been defined, a window pops up to display the 
  26660. message. In this case the editor pauses for a key to be typed before closing 
  26661. the window.  The output from this function is suppressed if the variable 
  26662. message_level is greater than 1. 
  26663.  
  26664. This function is primarily used for responses to queries and to notify the user 
  26665. of additional actions to take.  The messages printed by notify() normally need 
  26666. to be seen by the user.  The fmt and args arguments follow the argument 
  26667. specifications of the fprintf() function. 
  26668.  
  26669. ____________ 
  26670.  
  26671. Value returned: No useful value is returned by this function. 
  26672.  
  26673. ____________ 
  26674.  
  26675. See also:   message_level, message(), warning(), error(). 
  26676.  
  26677.  
  26678. ΓòÉΓòÉΓòÉ 14.24.15. prompt() ΓòÉΓòÉΓòÉ
  26679.  
  26680. prompt()   Primitive 
  26681.  
  26682. Purpose: Presents a string for editing. 
  26683.  
  26684. ____________ 
  26685.  
  26686. Syntax: str prompt(str title [, str default], str helpid, bool highlight, long 
  26687. parent) 
  26688.  
  26689. Arguments:  message - describes the input requested. 
  26690.  
  26691. default - initial value for the string. 
  26692.  
  26693. helpid - help is displayed if you press [F1] or the help button. 
  26694.  
  26695. highlight - highlight the default text. 
  26696.  
  26697. parent - parent of the dialog. 
  26698.  
  26699. ____________ 
  26700.  
  26701. Description: The prompt() function requests a string value from the user.  An 
  26702. initial value for this string may be supplied in the default argument.  The 
  26703. message string describes the input requested and is displayed in the dialog 
  26704. window. 
  26705.  
  26706. This function is useful in obtaining values for assignment to editor string 
  26707. variables, and also string arguments to functions.  It may be used to obtain a 
  26708. directory to use or for inputting any string. 
  26709.  
  26710. When editing an initial value, the first key struck by the user determines if 
  26711. the string is to be edited or replaced.  If the key struck represents a 
  26712. character, the string is re-initialized and that character becomes the sole 
  26713. contents of the string. If instead the key struck is a cursor key  , or [Bksp] 
  26714. the initial string is retained for editing.  The  key ends the editing process 
  26715. and sends away the dialog window. 
  26716.  
  26717. ____________ 
  26718.  
  26719. Value returned: The value returned by the prompt() function is the string 
  26720. specified by the user. 
  26721.  
  26722.  
  26723. ΓòÉΓòÉΓòÉ 14.24.16. prompt_history() ΓòÉΓòÉΓòÉ
  26724.  
  26725. prompt_history()   PEL 
  26726.  
  26727. Purpose: Prompt for string; remember previous strings. 
  26728.  
  26729. ____________ 
  26730.  
  26731. Syntax: str prompt_history(str index, str message, str default, int usehistory, 
  26732. int highlight, str helpid ) 
  26733.  
  26734. ____________ 
  26735.  
  26736. Description: Like prompt(), this function prompts for string input, but 
  26737. pressing the up and down arrow keys allows it to recall previous responses. 
  26738. The index argument is user-defined string with which previous responses are 
  26739. associated. 
  26740.  
  26741. For example, previous search string entries that were associated with the index 
  26742. string SEARCH are available whenever SEARCH is specified again. 
  26743.  
  26744. The message argument contains the prompt displayed to the user when the prompt 
  26745. dialog box is displayed.  The default argument contains the default string to 
  26746. be placed in the edit field of the dialog box.  The usehistory argument 
  26747. contains a 1 if history is to be used.  The highlight argument contains a 1 if 
  26748. you want the default text in the edit field to be highlighted.  The helpid 
  26749. argument contains the help string index into the cpe.hlp file. 
  26750.  
  26751. ____________ 
  26752.  
  26753. Value returned: The prompt_history() function returns the string entered as a 
  26754. response. 
  26755.  
  26756.  
  26757. ΓòÉΓòÉΓòÉ 14.24.17. toggle_pause() ΓòÉΓòÉΓòÉ
  26758.  
  26759. toggle_pause()   PEL 
  26760.  
  26761. Purpose: Toggles pausing on errors. 
  26762.  
  26763. ____________ 
  26764.  
  26765. Syntax: void toggle_pause([int force]) 
  26766.  
  26767. ____________ 
  26768.  
  26769. Description: The toggle_pause() function toggles the state of the 
  26770. pause_on_error variable.  Toggling pausing on ensures that each warning, error, 
  26771. or informative message may be read before another is displayed. The 
  26772. toggle_pause() function is particularly useful when you are testing 
  26773. user-written functions that display a series of debugging messages. 
  26774.  
  26775. The optional force argument allows you to force the pausing feature to the 
  26776. condition you desire.  If the force argument is non-zero (TRUE), auto-indent is 
  26777. turned on regardless of its previous condition. If force is zero (FALSE), this 
  26778. feature is always turned off. 
  26779.  
  26780. A synonym has been defined for this function, pe(). This synonym has a very 
  26781. short name in order to facilitate its execution interactively.  This is done 
  26782. through execute_function(), which is available through the  function in 
  26783. standard keymaps.  By default, pausing is off. 
  26784.  
  26785. ____________ 
  26786.  
  26787. Value returned: No useful value is returned by this function. 
  26788.  
  26789.  
  26790. ΓòÉΓòÉΓòÉ 14.24.18. ungetkey() ΓòÉΓòÉΓòÉ
  26791.  
  26792. ungetkey()   Primitive 
  26793.  
  26794. Purpose: Return a character to the keyboard buffer. 
  26795.  
  26796. ____________ 
  26797.  
  26798. Syntax: int ungetkey(int char) 
  26799.  
  26800. ____________ 
  26801.  
  26802. Description: The ungetkey() function pushes the character indicated by the char 
  26803. argument back into the keyboard buffer.  This character will be the next 
  26804. character available for later reading.  This may be a character read by either 
  26805. the getchar() or the getkey() function.  In the case of extended keycodes, two 
  26806. characters will actually be returned to the buffer. 
  26807.  
  26808. Unlike the similar DOS function, more than one character may be un-read between 
  26809. reads. 
  26810.  
  26811. ____________ 
  26812.  
  26813. Value returned: The value returned, upon successful completion, is the ASCII 
  26814. value of the character re-inserted into the keyboard buffer.  This will be a 
  26815. value identical to the char argument. 
  26816.  
  26817.  
  26818. ΓòÉΓòÉΓòÉ 14.24.19. warning() ΓòÉΓòÉΓòÉ
  26819.  
  26820. warning()   Primitive 
  26821.  
  26822. Purpose: Displays formatted output in the Dialog window. 
  26823.  
  26824. ____________ 
  26825.  
  26826. Syntax: void warning(str fmt [, any args,...]) 
  26827.  
  26828. ____________ 
  26829.  
  26830. Description: The warning() function prints a formatted message to the Dialog 
  26831. window.  If no dialog window has been defined, a window pops up to display the 
  26832. message. In this case the editor pauses for a key to be typed before closing 
  26833. the window.  The output from this function is suppressed if the variable 
  26834. message_level is 3. 
  26835.  
  26836. This function is primarily used to display messages that indicate a possible or 
  26837. impending error.  The fmt and args arguments follow the argument specifications 
  26838. of the fprintf() function. 
  26839.  
  26840. ____________ 
  26841.  
  26842. Value returned: No useful value is returned by this function. 
  26843.  
  26844. ____________ 
  26845.  
  26846. See also:   message_level 
  26847.  
  26848.  
  26849. ΓòÉΓòÉΓòÉ 14.25. Version Control System ΓòÉΓòÉΓòÉ
  26850.  
  26851. prev_vdiff() 
  26852.           Display the last vdiff results 
  26853. pvcs() 
  26854.           Toggles PVCS support features. 
  26855. pvcs_vdiff() 
  26856.           To perform a PVCS vdiff on two files and display its output in a 
  26857.           graphical format. 
  26858. system_pause() 
  26859.  
  26860. toggle_file_locking() 
  26861.           Toggles use of semaphore to ensure exclusive access. 
  26862. toggle_pvcs() 
  26863.           Toggles PVCS support features. 
  26864.  
  26865.  
  26866. ΓòÉΓòÉΓòÉ 14.25.1. prev_vdiff() ΓòÉΓòÉΓòÉ
  26867.  
  26868. prev_vdiff()   PEL 
  26869.  
  26870. Purpose:  Display the last vdiff results 
  26871.  
  26872. ____________ 
  26873.  
  26874. Syntax:   void prev_vdiff() 
  26875.  
  26876. ____________ 
  26877.  
  26878. Arguments: none. 
  26879.  
  26880. Description: The prev_vdiff() function displays the results of the last vdiff 
  26881. command without having to preform all of the processing again. 
  26882.  
  26883. ____________ 
  26884.  
  26885. Value returned: none. 
  26886.  
  26887.  
  26888. ΓòÉΓòÉΓòÉ 14.25.2. pvcs() ΓòÉΓòÉΓòÉ
  26889.  
  26890. pvcs()   PEL 
  26891.  
  26892. Purpose: Toggles PVCS support features. 
  26893.  
  26894. ____________ 
  26895.  
  26896. Syntax: void pvcs([int level]) 
  26897.  
  26898. ____________ 
  26899.  
  26900. Description: The pvcs() function is a more tersely named synonym of the 
  26901. toggle_pvcs() function.  It controls the level of automatic PVCS (Polytron 
  26902. Version Control System) support provided by the editor.  The following values 
  26903. have been defined for the level argument: 
  26904.  
  26905. Label                    Value 
  26906. PVCS_DISABLED            0 
  26907. PVCS_ENABLE_GETS         1 
  26908. PVCS_ENABLE_EMPTY_GETS   2 
  26909. PVCS_ENABLE_GETS +       3 
  26910. PVCS_ENABLE_EMPTY_GETS 
  26911.  
  26912. PVCS_DISABLED (0) means that no automatic PVCS support is desired. 
  26913. PVCS_ENABLE_GETS (1) indicates that if the user attempts to load a read-only 
  26914. file the user is given the opportunity to retrieve a writable copy of the file 
  26915. from its PVCS archive (logfile).  PVCS_ENABLE_EMPTY_GETS indicates that if the 
  26916. user attempts to load a non-existent file the user is given the opportunity to 
  26917. retrieve the file from its PVCS logfile. The PVCS_ENABLE_GETS and 
  26918. PVCS_ENABLE_EMPTY_GETS values may be combined (3) to prompt the user for 
  26919. retrieval of the file if it either doesn't exist or it is read-only. 
  26920.  
  26921. ____________ 
  26922.  
  26923. Value returned: No useful value is returned by this function. 
  26924.  
  26925.  
  26926. ΓòÉΓòÉΓòÉ 14.25.3. pvcs_vdiff() ΓòÉΓòÉΓòÉ
  26927.  
  26928. pvcs_vdiff()   PEL 
  26929.  
  26930. Purpose:  To perform a PVCS vdiff on two files and display its output in a 
  26931. graphical format. 
  26932.  
  26933. ____________ 
  26934.  
  26935. Syntax:   pvcs_vdiff() 
  26936.  
  26937. ____________ 
  26938.  
  26939. Arguments:  none 
  26940.  
  26941. Description: This function will first display a dialog prompting you for the 
  26942. PVCS files you wish to compare, the revision numbers, output orientation, etc. 
  26943. After you choose your preference, it performs the verson difference and 
  26944. displays those differences in a graphical format. Note: you must have called 
  26945. pvcs() before calling this function in order to enable PVCS support. 
  26946.  
  26947. ____________ 
  26948.  
  26949. Value returned:  none 
  26950.  
  26951.  
  26952. ΓòÉΓòÉΓòÉ 14.25.4. system_pause() ΓòÉΓòÉΓòÉ
  26953.  
  26954. system_pause()   PEL 
  26955.  
  26956. Purpose: 
  26957.  
  26958. ____________ 
  26959.  
  26960. Syntax:   system_pause(str cmd, short sys_flags ) 
  26961.  
  26962. ____________ 
  26963.  
  26964. Arguments: 
  26965.  
  26966. o cmd - command to be executed 
  26967. o sys_flags - flags passed to the system command 
  26968.  
  26969. Description: The system_pause() function executes cmd in a command shell and 
  26970. then runs the pause command.  This allows the user to view the results of the 
  26971. command before the shell goes away. 
  26972.  
  26973. ____________ 
  26974.  
  26975. Value returned: none. 
  26976.  
  26977.  
  26978. ΓòÉΓòÉΓòÉ 14.25.5. toggle_file_locking() ΓòÉΓòÉΓòÉ
  26979.  
  26980. toggle_file_locking()   PEL 
  26981.  
  26982. Purpose: Toggles use of semaphore to ensure exclusive access. 
  26983.  
  26984. ____________ 
  26985.  
  26986. Syntax: void toggle_file_locking([int on]) 
  26987.  
  26988. ____________ 
  26989.  
  26990. Description: The toggle_file_locking() function enables, disables or toggles 
  26991. the file locking feature.  This feature creates a special semaphore file in the 
  26992. directory where each of the files are that have been loaded for editing.  If 
  26993. the semaphore file already exists, the editor assumes the file is locked by 
  26994. another user or editor session and the file is loaded as Read-Only. 
  26995.  
  26996. The name of the semaphore file is the same as that of the file to be edited, 
  26997. except that the third character of the extension is an ampersand, "&". 
  26998. Extensions containing two or less characters are padded with underscores. 
  26999.  
  27000. ____________ 
  27001.  
  27002. Value returned: No useful value is returned by this function. 
  27003.  
  27004.  
  27005. ΓòÉΓòÉΓòÉ 14.25.6. toggle_pvcs() ΓòÉΓòÉΓòÉ
  27006.  
  27007. toggle_pvcs()   PEL 
  27008.  
  27009. Purpose: Toggles PVCS support features. 
  27010.  
  27011. ____________ 
  27012.  
  27013. Syntax: void toggle_pvcs([int level]) 
  27014.  
  27015. ____________ 
  27016.  
  27017. Description: The toggle_pvcs() function controls the level of automatic PVCS 
  27018. (Polytron Version Control System) support provided by the editor.  The 
  27019. following values have been defined for the level argument: 
  27020.  
  27021. Label                    Value 
  27022. PVCS_DISABLED            0 
  27023. PVCS_ENABLE_GETS         1 
  27024. PVCS_ENABLE_EMPTY_GETS   2 
  27025. PVCS_ENABLE_GETS +       3 
  27026. PVCS_ENABLE_EMPTY_GETS 
  27027.  
  27028. PVCS_DISABLED (0) means that no automatic PVCS support is desired. 
  27029. PVCS_ENABLE_GETS (1) indicates that if the user attempts to load a read-only 
  27030. file the user is given the opportunity to retrieve a writable copy of the file 
  27031. from its PVCS archive (logfile).  PVCS_ENABLE_EMPTY_GETS indicates that if the 
  27032. user attempts to load a non-existent file the user is given the opportunity to 
  27033. retrieve the file from its PVCS logfile. 
  27034.  
  27035. The PVCS_ENABLE_GETS and PVCS_ENABLE_EMPTY_GETS values may be combined (3) to 
  27036. prompt the user for retrieval of the file if it either doesn't exist or it is 
  27037. read-only. 
  27038.  
  27039. A more tersely named synonym for this function is the pvcs() function. 
  27040.  
  27041. ____________ 
  27042.  
  27043. Value returned: No useful value is returned by this function. 
  27044.  
  27045.  
  27046. ΓòÉΓòÉΓòÉ 14.26. Windowing ΓòÉΓòÉΓòÉ
  27047.  
  27048. You use the functions in this category for creating, deleting, moving, 
  27049. expanding and otherwise manipulating windows. 
  27050.  
  27051. Some of both the windowing functions and variables use screen or window 
  27052. coordinates.  It is important to note that these numbers differ from buffer 
  27053. text line and column counts in that they are offsets or zero origin values. In 
  27054. other words, the count begins with zero rather than one. 
  27055.  
  27056. The variables in the Windowing category provide a wide range of information and 
  27057. capabilities.  They allow setting appearance factors and setting appearance 
  27058. defaults.  In addition, these variables describe window dimensions, text and 
  27059. window locations, and indicate which window is current. 
  27060.  
  27061. Creating and Deleting Windows 
  27062.  
  27063. There are several functions in this group for creating and deleting windows. 
  27064. There are three methods of creating windows.  The function create_window() 
  27065. creates a window of arbitrary size and location.  These are called normal or 
  27066. overlapping windows.  The create_tiled_window() function splits an existing 
  27067. window in two either horizontally or vertically.  The final function with which 
  27068. you can create a window is create_factory_window().  You use this function for 
  27069. creating special purpose windows for which the current defaults would be 
  27070. inappropriate.  The window is instead created using the rather vanilla internal 
  27071. defaults. 
  27072.  
  27073. The delete_window() function may be used to delete any window but the screen 
  27074. area it occupied is not allocated to another window unless a contiguous window 
  27075. exists. 
  27076.  
  27077. When you delete the current window is deleted, the next window in the window 
  27078. list and its buffer become active.  When deleting both the current buffer and 
  27079. the current window the buffer should be deleted first.  If you delete the 
  27080. window first, the current buffer will change, often resulting in deleting the 
  27081. wrong buffer. 
  27082.  
  27083. Window States 
  27084.  
  27085. A window may exist in one of four states.  A window may be invisible, an icon, 
  27086. normal size or expanded to fill the screen.  Functions are provided to switch 
  27087. between window states and the window_flags variable can be examined to 
  27088. determine which state applies to the current window. 
  27089.  
  27090. The expand_window() function enlarges a window to the full-screen or zoomed 
  27091. state.  It will not, however, overlap a single line dialog area at the top or 
  27092. bottom of the screen, if one has been defined. 
  27093.  
  27094. The restore_window() function restores the window to its normal state.  In the 
  27095. normal state, the window occupies the dimensions originally reflected by the 
  27096. window_height and window_width variables. 
  27097.  
  27098. The collapse_window() function reduces a window to the icon state.  When in the 
  27099. icon state, the window occupies a few columns of a single line, with a mnemonic 
  27100. displayed in the block. 
  27101.  
  27102. The hide_window() function makes a window invisible.  It still exists but does 
  27103. not show on the screen even if there are no other windows to cover it up. This 
  27104. is particularly useful for creating virtual windows that contain a menu or 
  27105. something other than the usual buffer text.  Menus are described in the "User 
  27106. Interface" chapter of this manual. 
  27107.  
  27108. PREDITOR/2 remembers the  previously occupied by a window in its normal and 
  27109. icon states.  This means that changing an icon that you tucked away in a corner 
  27110. into a normal sized window may cause it to jump to center screen, if that were 
  27111. its previous normal position.  Conversely, collapsing the normal window causes 
  27112. its icon to jump back to the corner. 
  27113.  
  27114. PREDITOR/2 does not attempt to remember the size and position of a full-screen 
  27115. window, however.  This means that although you may resize or split a window 
  27116. when it is in its full-screen state, the window's new size will not be 
  27117. remembered when you change states.  Instead, the window will occupy the whole 
  27118. screen each time it changes to the full-screen state. 
  27119.  
  27120. Colors 
  27121.  
  27122. Among the appearance variables are several variables that control the colors 
  27123. applied to designated portions of windows and the screen.  There are also other 
  27124. color variables that are not specific to individual windows.  You will find a 
  27125. list of these variables in the "Editor System" chapter of this manual. 
  27126. However, they follow the same usage rules as the color variables in this 
  27127. chapter. 
  27128.  
  27129. When you want to change the color of a window you previously created, you make 
  27130. that window current and assign a value to the appropriate color_... variable. 
  27131. If you want to set the color that will be used for all windows subsequently 
  27132. created, just assign the desired value to the default_color_... equivalent. 
  27133. For a more permanent change to the colors used for all edit windows, place 
  27134. these default_color_... assignments in your local_setup() function and 
  27135. recompile your function library.  For further details, read the "Custom 
  27136. Configuration" section of the User's Manual. 
  27137.  
  27138. adjust_window() 
  27139.           Resize window using cursor keys. 
  27140. arrange_windows() 
  27141.           To arrange the MDI windows in a specified manner. 
  27142. attach_window_buffer() 
  27143.           Attaches an existing buffer to an existing window. 
  27144. begin_dump_mode() 
  27145.           Turns the hex-dump mode on. 
  27146. cascade_buffers() 
  27147.           To create a separate window for each buffer, and then cascade the 
  27148.           windows. 
  27149. collapse_window() 
  27150.           Reduce a window to an icon. 
  27151. compare_windows() 
  27152.           To compare the buffers attached to two windows 
  27153. create_factory_window() 
  27154.           Creates a new window for system use. 
  27155. create_tiled_window() 
  27156.           Splits the current window into two windows. 
  27157. create_window() 
  27158.           Creates a new window at named coordinates. 
  27159. delete_window() 
  27160.           Dispose of a window. 
  27161. delete_window_and_buffer() 
  27162.           Deletes a window and its associated buffer. 
  27163. delete_window_key() 
  27164.           Delete window; make normal window current. 
  27165. distance_to_window_bottom() 
  27166.           To return the distance from the cursor to the top of the current 
  27167.           window, in characters. 
  27168. distance_to_window_left() 
  27169.           To return the distance from the cursor to the left edge of the 
  27170.           current window, in characters. 
  27171. distance_to_window_middle() 
  27172.           To return the distance from the cursor to the middle of the current 
  27173.           window, in characters. 
  27174. distance_to_window_right() 
  27175.           To return the distance from the cursor to the right edge of the 
  27176.           current window, in characters. 
  27177. distance_to_window_top() 
  27178.           To return the distance from the cursor to the bottom of the current 
  27179.           window, in characters. 
  27180. expand_window() 
  27181.           Enlarge a window to fill the screen. 
  27182. frame_window() 
  27183.           Define or alter the dimensions of a window. 
  27184. hide_window() 
  27185.           Remove a window from the screen. 
  27186. is_system_window() 
  27187.           Tells if current window is for system use. 
  27188. keep_windows_cascaded() 
  27189.           Cascades all windows when the editor is resized. 
  27190. keep_windows_tiled() 
  27191.           keep_windows_tiled() 
  27192. keep_windows_tiled_horizontal() 
  27193.           Tiles all windows (horizontally) when the editor is resized. 
  27194. keep_windows_tiled_vertical() 
  27195.           Tiles all windows (vertically) when the editor is resized. 
  27196. larger_window() 
  27197.           Changes window to the next "larger" state. 
  27198. next_window() 
  27199.           Make subsequent window in list the current window. 
  27200. next_window_key() 
  27201.           To make the next window current. 
  27202. organize_windows() 
  27203.           Displays all defined windows as icons. 
  27204. prev_window() 
  27205.           Make preceding window on list the current window. 
  27206. prev_window_key() 
  27207.           To make the previous window current. 
  27208. raise_window() 
  27209.           Promote a window to the top of the list. 
  27210. restore_window() 
  27211.           Returns a window to its normal size. 
  27212. set_dump_format() 
  27213.           Sets the dump format in the WINDOW_CHARS bits of the window flags. 
  27214. smaller_window() 
  27215.           Changes current window to next smaller state. 
  27216. split_window_horizontal() 
  27217.           Split the current window horizontally. 
  27218. split_window_vertical() 
  27219.           Split the current window vertically. 
  27220. switch_to_mdi() 
  27221.           Switches windowing mode to mdi 
  27222. switch_to_sdi() 
  27223.           Switches windowing mode to sdi 
  27224. tile_buffers() 
  27225.           To create a separate window for each buffer, and then tile the 
  27226.           windows. 
  27227. tile_horizontal() 
  27228.           Tiles all windows horizontally. 
  27229. tile_vertical() 
  27230.           Tiles all windows vertically. 
  27231. toggle_dump_mode() 
  27232.           Toggles hex-dump mode on and off. 
  27233. toggle_dump_side() 
  27234.           Toggles the WINDOW_NUM_SIDE window flag on and off. 
  27235. toggle_dump_window() 
  27236.           Toggles the hex-dump window flags on and off. 
  27237. toggle_linenumbers() 
  27238.           Turns on or off display of line numbers. 
  27239. window_cascade() 
  27240.           Cascade all windows. 
  27241. window_tile() 
  27242.           Tile all windows. 
  27243. window_valid() 
  27244.           Tells whether a window is currently defined. 
  27245.  
  27246.  
  27247. ΓòÉΓòÉΓòÉ 14.26.1. adjust_window() ΓòÉΓòÉΓòÉ
  27248.  
  27249. adjust_window()   PEL 
  27250.  
  27251. Purpose:  Resize window using cursor keys. 
  27252.  
  27253. ____________ 
  27254.  
  27255. Syntax:   void adjust_window() 
  27256.  
  27257. ____________ 
  27258.  
  27259. Description: The adjust_window() function allows adjusting the size of the 
  27260. current window with cursor keys rather than with a mouse. A help message is 
  27261. printed in the dialog window.  The user indicates acceptance of the new window 
  27262. size by pressing Enter or returns the window to its unmodified size by pressing 
  27263. Esc. 
  27264.  
  27265. ____________ 
  27266.  
  27267. Value returned: No useful value is returned by this function. 
  27268.  
  27269.  
  27270. ΓòÉΓòÉΓòÉ 14.26.2. arrange_windows() ΓòÉΓòÉΓòÉ
  27271.  
  27272. arrange_windows()   Primitive 
  27273.  
  27274. Purpose:  To arrange the MDI windows in a specified manner. 
  27275.  
  27276. ____________ 
  27277.  
  27278. Syntax:   arrange_windows( int style ) 
  27279.  
  27280. ____________ 
  27281.  
  27282. Arguments: 
  27283.  
  27284. o style -  the style of arrangement to use, valid styles being: ICONIZE_WINDOWS 
  27285.   CASCADE_WINDOWS TILE_WINDOWS 
  27286.  
  27287. Description: 
  27288.  
  27289. ____________ 
  27290.  
  27291. Value returned: TRUE  -  arranged windows FALSE -  invalid style 
  27292.  
  27293.  
  27294. ΓòÉΓòÉΓòÉ 14.26.3. attach_window_buffer() ΓòÉΓòÉΓòÉ
  27295.  
  27296. attach_window_buffer()   Primitive 
  27297.  
  27298. Purpose: Attaches an existing buffer to an existing window. 
  27299.  
  27300. ____________ 
  27301.  
  27302. Syntax:  int attach_window_buffer(winid window, bufid buffer) 
  27303.  
  27304. ____________ 
  27305.  
  27306. Description: The attach_window_buffer() function connects a previously created 
  27307. buffer to a previously created window.  The contents of the buffer may then be 
  27308. viewed through the associated window. 
  27309.  
  27310. The window and buffer arguments are the numeric ids returned by the functions 
  27311. used to create the edit buffer and window respectively. 
  27312.  
  27313. Attaching a window to a buffer breaks any previous association the window had 
  27314. with another buffer.  A buffer, however, may have numerous windows attached to 
  27315. it.  The buffer's association with other windows therefore remains unchanged. 
  27316.  
  27317. If attach_window_buffer() is used to attach a buffer other than the currently 
  27318. active buffer to the current window, the buffer becomes the current buffer. 
  27319.  
  27320. The act of attaching a window to a buffer does not in itself make the contents 
  27321. of the window visible nor does the window automatically become the current 
  27322. window. The window may be hidden "under" another window.  In this case it will 
  27323. not become visible until it is made the current window or the obscuring window 
  27324. is moved or closed. 
  27325.  
  27326. ____________ 
  27327.  
  27328. Value returned: 
  27329.  
  27330. Upon successful completion, attach_window_buffer() returns a non-zero value 
  27331. (TRUE), otherwise a zero value (FALSE) is returned. 
  27332.  
  27333. ____________ 
  27334.  
  27335. See also:  edit_file(), create_buffer(), create_window() 
  27336.  
  27337.  
  27338. ΓòÉΓòÉΓòÉ 14.26.4. begin_dump_mode() ΓòÉΓòÉΓòÉ
  27339.  
  27340. begin_dump_mode()    PEL 
  27341.  
  27342. Purpose:  Turns the hex-dump mode on. 
  27343.  
  27344. ____________ 
  27345.  
  27346. Syntax:  begin_dump_mode(short fmt) 
  27347.  
  27348. ____________ 
  27349.  
  27350. Arguments:  fmt - sets the format of the number side.  The value for this 
  27351. argument can be any one of the WINDOW_CHARS bits.  If you do not specify a 
  27352. value for the fmt argument, the default value is WINDOW_DUMP (which is 0). 
  27353.  
  27354. ____________ 
  27355.  
  27356. Description:  The begin_dump_mode() function turns the hex_dump_mode on. 
  27357.  
  27358. ____________ 
  27359.  
  27360. See also:  window_flags, toggle_dump_mode(), end_dump_mode, toggle_dump_side(), 
  27361. toggle_dump_window(), set_dump_format(), window_keymap, mouse_event_offset, 
  27362. mouse_event_digit, dump_digit, dump_bytes_per_line, default_dump_bytes_per_line 
  27363.  
  27364.  
  27365. ΓòÉΓòÉΓòÉ 14.26.5. cascade_buffers() ΓòÉΓòÉΓòÉ
  27366.  
  27367. cascade_buffers()   PEL 
  27368.  
  27369. Purpose:  To create a separate window for each buffer, and then cascade the 
  27370. windows. 
  27371.  
  27372. ____________ 
  27373.  
  27374. Syntax:   cascade_buffers() 
  27375.  
  27376. ____________ 
  27377.  
  27378. Arguments:  none 
  27379.  
  27380. Description: 
  27381.  
  27382. ____________ 
  27383.  
  27384. Value returned:  none 
  27385.  
  27386.  
  27387. ΓòÉΓòÉΓòÉ 14.26.6. collapse_window() ΓòÉΓòÉΓòÉ
  27388.  
  27389. collapse_window()   Primitive 
  27390.  
  27391. Purpose: Reduce a window to an icon. 
  27392.  
  27393. ____________ 
  27394.  
  27395. Syntax:  void collapse_window([winid window]) 
  27396.  
  27397. ____________ 
  27398.  
  27399. Description: The collapse_window() function reduces the size of the window 
  27400. identified by the window argument to the  "icon" state.  If no window argument 
  27401. is specified, the current window is assumed.  If the window is already an icon, 
  27402. the state is not changed. 
  27403.  
  27404. The icon state is one of four states a window may occupy:  invisible, icon, 
  27405. normal or zoomed.  When the window is zoomed, it takes up the entire screen. 
  27406. In the normal state, the window occupies the dimensions originally reflected by 
  27407. the window_height and window_width variables.  When in the icon state, the 
  27408. window occupies a few columns of a single line, with a mnemonic displayed in 
  27409. the block.  In the invisible state the window does not appear on the screen. 
  27410.  
  27411. ____________ 
  27412.  
  27413. Value returned: 
  27414.  
  27415. No useful value is returned by the collapse_window function. 
  27416.  
  27417. ____________ 
  27418.  
  27419. See also:  expand_window(), hide_window(), restore_window() 
  27420.  
  27421.  
  27422. ΓòÉΓòÉΓòÉ 14.26.7. compare_windows() ΓòÉΓòÉΓòÉ
  27423.  
  27424. compare_windows()   PEL 
  27425.  
  27426. Purpose:  To compare the buffers attached to two windows 
  27427.  
  27428. ____________ 
  27429.  
  27430. Syntax:   compare_windows() 
  27431.  
  27432. ____________ 
  27433.  
  27434. Arguments:  none 
  27435.  
  27436. Description: This function compares two buffers:  the current buffer and the 
  27437. buffer attached to the next_window().  The cursor of each buffer is placed at 
  27438. the location of the first difference in the buffers, or at the end of the 
  27439. buffers if there is no difference.  The comparison starts at the current cursor 
  27440. location in each buffer. 
  27441.  
  27442. ____________ 
  27443.  
  27444. Value returned: TRUE  -  the comparison was successful FALSE -  the comparison 
  27445. was unsuccessful 
  27446.  
  27447.  
  27448. ΓòÉΓòÉΓòÉ 14.26.8. create_factory_window() ΓòÉΓòÉΓòÉ
  27449.  
  27450. create_factory_window()   PEL 
  27451.  
  27452. Purpose: Creates a new window for system use. 
  27453.  
  27454. ____________ 
  27455.  
  27456. Syntax:  winid create_factory_window([int x, y, wide, high [, flags]]) 
  27457.  
  27458. ____________ 
  27459.  
  27460. Description: The create_factory_window() function creates a new window and 
  27461. initializes the associated variables to the system internal defaults.  The 
  27462. window is placed at the location defined by the x, y, wide and high arguments. 
  27463.  
  27464. The x and y arguments indicate the column and line offset at which the editor 
  27465. will locate the upper left corner of the window.  The wide and high arguments 
  27466. indicate the number of columns and lines the window will occupy.  If any or all 
  27467. of these arguments is omitted the largest possible window is created.  This 
  27468. means that the window occupies the entire screen except for a single line at 
  27469. the top or bottom for a dialog window, if defined. 
  27470.  
  27471. The variables associated with the new window are initialized to internal 
  27472. defaults whenever reasonable.  The function will not, for example, select 
  27473. colors that will make the window effectively invisible against its background. 
  27474. The value of the corresponding default_ variables are ignored.  If, however, 
  27475. the optional flags argument is supplied, the window's window_flags variable is 
  27476. initialized to that value rather than the internal value. This is useful if the 
  27477. window to be used as a system window.  See the description of the 
  27478. default_window_flags variable for details of the flags argument.  The Zoom 
  27479. Status Field of the flags argument is always ignored. 
  27480.  
  27481. The newly created window is inserted into the windows list in the position 
  27482. immediately following the currently active window.  It is not automatically 
  27483. made current nor is it attached to any buffer. The function 
  27484. attach_window_buffer() is provided to define associations between windows and 
  27485. buffers. 
  27486.  
  27487. ____________ 
  27488.  
  27489. Value returned: 
  27490.  
  27491. create_factory_window() returns the numeric id that the editor system has given 
  27492. to the newly created window.  This id should be stored for later use but never 
  27493. modified. If the function fails a zero value is returned. 
  27494.  
  27495. ____________ 
  27496.  
  27497. See also:  edit_file(), create_window(), attach_window_buffer() 
  27498.  
  27499.  
  27500. ΓòÉΓòÉΓòÉ 14.26.9. create_tiled_window() ΓòÉΓòÉΓòÉ
  27501.  
  27502. create_tiled_window()   PEL 
  27503.  
  27504. Purpose: Splits the current window into two windows. 
  27505.  
  27506. ____________ 
  27507.  
  27508. Syntax:  void create_tiled_window(int pct [,int vert]) 
  27509.  
  27510. ____________ 
  27511.  
  27512. Description: The create_tiled_window() function creates adjacent or "tiled" 
  27513. windows by splitting the current window into two separate windows.  The two 
  27514. windows occupy the screen area formerly occupied by the window that was split. 
  27515. Both windows then view the current buffer. 
  27516.  
  27517. The pct argument specifies what percent of the original window will continue to 
  27518. be allocated to that window.  The balance is allocated to the new window. 
  27519.  
  27520. The default action is to split the window horizontally.  When split 
  27521. horizontally, the new window, the lower window, becomes current.  The vert 
  27522. argument is used to split the window vertically.  If the vert argument is 
  27523. supplied and is a value other than zero, windows are tiled vertically. The old 
  27524. window is then on the left and the window on the right is current. 
  27525.  
  27526. ____________ 
  27527.  
  27528. Value returned: 
  27529.  
  27530. No useful value is returned by this function. 
  27531.  
  27532. ____________ 
  27533.  
  27534. See also: current_window 
  27535.  
  27536.  
  27537. ΓòÉΓòÉΓòÉ 14.26.10. create_window() ΓòÉΓòÉΓòÉ
  27538.  
  27539. create_window()   Primitive 
  27540.  
  27541. Purpose: Creates a new window at named coordinates. 
  27542.  
  27543. ____________ 
  27544.  
  27545. Syntax:  winid create_window([int x, y, wide, high [, flags]]) 
  27546.  
  27547. ____________ 
  27548.  
  27549. Description: The create_window() function creates a new window and initializes 
  27550. the associated variables to the current editor system defaults.  The window is 
  27551. placed at the location defined by the x, y, wide and high arguments. 
  27552.  
  27553. The x and y arguments indicate the x and y offset in pixels at which the editor 
  27554. will locate the upper left corner of the window.  The wide and high arguments 
  27555. indicate the number of horizontal and vertical pixels the window will occupy. 
  27556. If any or all of these arguments is omitted the largest possible window is 
  27557. created.  This means that the window occupies the entire screen except for a 
  27558. single line at the top or bottom for a dialog window, if defined. 
  27559.  
  27560. The variables associated with the new window are initialized to the value of 
  27561. the corresponding default_ variables.  If,  however, the optional flags 
  27562. argument is supplied, the window's window_flags variable is initialized to that 
  27563. value rather than the value of default_window_flags.  This is useful if the 
  27564. window to be created is an  exception to the normal configuration.  See the 
  27565. description of the default_window_flags variable for details of the flags 
  27566. argument.  The Zoom Status Field of the flags argument is always ignored. 
  27567.  
  27568. .This function is generally used only when you are able to supply the 
  27569. dimensions of the window. 
  27570.  
  27571. The newly created window is inserted into the windows list in the position 
  27572. immediately following the currently active window.  It is not automatically 
  27573. made current nor is it attached to any buffer.  The function 
  27574. attach_window_buffer() is provided to define associations between windows and 
  27575. buffers. 
  27576.  
  27577. ____________ 
  27578.  
  27579. Value returned: create_window() returns the numeric id that the editor  system 
  27580. has given to the newly created window. This id should be stored for later use 
  27581. but never modified.  If the function fails a zero value is returned. 
  27582.  
  27583. See also: create_buffer(), attach_window_buffer(), create_factory_window(), 
  27584. edit_file(), create_tiled_window(), delete_window() 
  27585.  
  27586.  
  27587. ΓòÉΓòÉΓòÉ 14.26.11. delete_window() ΓòÉΓòÉΓòÉ
  27588.  
  27589. delete_window()   Primitive 
  27590.  
  27591. Purpose: Dispose of a window. 
  27592.  
  27593. ____________ 
  27594.  
  27595. Syntax:  void delete_window([winid window]) 
  27596.  
  27597. ____________ 
  27598.  
  27599. Description:  The delete_window() function discards the window described by the 
  27600. window argument.  The window argument is a window id number assigned by the 
  27601. editor system when the window was created.  If the window argument is omitted, 
  27602. the current window is deleted.  The window id of the deleted window is no 
  27603. longer valid. 
  27604.  
  27605. Caution should be exercised when deleting active windows and buffers. When the 
  27606. active window is deleted, the next window in the window list and its buffer 
  27607. become active.  When deleting both the current buffer and the current window 
  27608. the buffer should be deleted first.  If the window is deleted first the current 
  27609. buffer will change, often resulting in the wrong buffer being deleted. 
  27610.  
  27611. Unlike buffers, you may delete the last window.  You will then have very little 
  27612. to look at. 
  27613.  
  27614. ____________ 
  27615.  
  27616. Value returned: No useful value is returned by the delete_window() function. 
  27617.  
  27618.  
  27619. ΓòÉΓòÉΓòÉ 14.26.12. delete_window_and_buffer() ΓòÉΓòÉΓòÉ
  27620.  
  27621. delete_window_and_buffer()   PEL 
  27622.  
  27623. Purpose: Deletes a window and its associated buffer. 
  27624.  
  27625. ____________ 
  27626.  
  27627. Syntax:  void delete_window_and_buffer([winid win]) 
  27628.  
  27629. ____________ 
  27630.  
  27631. Description: The delete_window_and_buffer() function deletes the current buffer 
  27632. and window or, if a window is specified as an argument, deletes the specified 
  27633. window and associated buffer.  The function is useful for assignment to a key, 
  27634. and also avoids the pitfall of deleting the wrong buffer when the window is 
  27635. deleted first. 
  27636.  
  27637. ____________ 
  27638.  
  27639. Value returned: No useful value is returned by this function. 
  27640.  
  27641.  
  27642. ΓòÉΓòÉΓòÉ 14.26.13. delete_window_key() ΓòÉΓòÉΓòÉ
  27643.  
  27644. delete_window_key()   PEL 
  27645.  
  27646. Purpose: Delete window; make normal window current. 
  27647.  
  27648. ____________ 
  27649.  
  27650. Syntax:  void delete_window_key() 
  27651.  
  27652. ____________ 
  27653.  
  27654. Description: Like delete_window(), the delete_window_key() function deletes 
  27655. current window.  However, if the next window in the window list is a system 
  27656. window, delete_window_key() does not allow it to become the current window as 
  27657. the delete_window() function would.  Instead, this function makes the next 
  27658. normal window current.  If there is no other normal window, no windows are 
  27659. displayed. This behavior makes delete_window_key() more suitable for assignment 
  27660. to a key than its relative, delete_window(). 
  27661.  
  27662. ____________ 
  27663.  
  27664. Value returned: 
  27665.  
  27666. No useful value is returned by this function. 
  27667.  
  27668.  
  27669. ΓòÉΓòÉΓòÉ 14.26.14. distance_to_window_ ΓòÉΓòÉΓòÉ
  27670.  
  27671. distance_to_window_   PEL 
  27672.  
  27673. Purpose: Store distances from cursor to window extremities. 
  27674.  
  27675. ____________ 
  27676.  
  27677. Syntax:  int distance_to_window_...() 
  27678.  
  27679. ____________ 
  27680.  
  27681. Description: The several distance_to_window_ functions provide the distance in 
  27682. columns or lines between the current cursor position and various window limits. 
  27683.  
  27684. ____________ 
  27685.  
  27686. Value returned: 
  27687.  
  27688. The distance_to_window_ series of functions returns a value equal to the number 
  27689. of left/right/up/down cursor motions necessary to move to the indicated window 
  27690. extremity. 
  27691.  
  27692. See also:  distance_to_window_left(), distance_to_window_right(), 
  27693. distance_to_window_top(), distance_to_window_top() 
  27694.  
  27695.  
  27696. ΓòÉΓòÉΓòÉ 14.26.15. distance_to_window_bottom() ΓòÉΓòÉΓòÉ
  27697.  
  27698. distance_to_window_bottom()   PEL 
  27699.  
  27700. Purpose:  To return the distance from the cursor to the top of the current 
  27701. window, in characters. 
  27702.  
  27703. ____________ 
  27704.  
  27705. Syntax:   distance_to_window_bottom() 
  27706.  
  27707. ____________ 
  27708.  
  27709. Arguments:  none 
  27710.  
  27711. Description: 
  27712.  
  27713. ____________ 
  27714.  
  27715. Value returned: 
  27716.  
  27717.  
  27718. ΓòÉΓòÉΓòÉ 14.26.16. distance_to_window_left() ΓòÉΓòÉΓòÉ
  27719.  
  27720. distance_to_window_left()   PEL 
  27721.  
  27722. Purpose:  To return the distance from the cursor to the left edge of the 
  27723. current window, in characters. 
  27724.  
  27725. ____________ 
  27726.  
  27727. Syntax:   distance_to_window_left() 
  27728.  
  27729. ____________ 
  27730.  
  27731. Arguments:  none 
  27732.  
  27733. Description: 
  27734.  
  27735. ____________ 
  27736.  
  27737. Value returned: 
  27738.  
  27739.  
  27740. ΓòÉΓòÉΓòÉ 14.26.17. distance_to_window_middle() ΓòÉΓòÉΓòÉ
  27741.  
  27742. distance_to_window_middle()   PEL 
  27743.  
  27744. Purpose:  To return the distance from the cursor to the middle of the current 
  27745. window, in characters. 
  27746.  
  27747. ____________ 
  27748.  
  27749. Syntax:   distance_to_window_middle() 
  27750.  
  27751. ____________ 
  27752.  
  27753. Arguments:  none 
  27754.  
  27755. Description: 
  27756.  
  27757. ____________ 
  27758.  
  27759. Value returned: 
  27760.  
  27761.  
  27762. ΓòÉΓòÉΓòÉ 14.26.18. distance_to_window_right() ΓòÉΓòÉΓòÉ
  27763.  
  27764. distance_to_window_right()   PEL 
  27765.  
  27766. Purpose:  To return the distance from the cursor to the right edge of the 
  27767. current window, in characters. 
  27768.  
  27769. ____________ 
  27770.  
  27771. Syntax:   distance_to_window_right() 
  27772.  
  27773. ____________ 
  27774.  
  27775. Arguments:  none 
  27776.  
  27777. Description: 
  27778.  
  27779. ____________ 
  27780.  
  27781. Value returned: 
  27782.  
  27783.  
  27784. ΓòÉΓòÉΓòÉ 14.26.19. distance_to_window_top() ΓòÉΓòÉΓòÉ
  27785.  
  27786. distance_to_window_top()   PEL 
  27787.  
  27788. Purpose:  To return the distance from the cursor to the bottom of the current 
  27789. window, in characters. 
  27790.  
  27791. ____________ 
  27792.  
  27793. Syntax:   distance_to_window_top() 
  27794.  
  27795. ____________ 
  27796.  
  27797. Arguments:  none 
  27798.  
  27799. Description: 
  27800.  
  27801. ____________ 
  27802.  
  27803. Value returned: 
  27804.  
  27805.  
  27806. ΓòÉΓòÉΓòÉ 14.26.20. expand_window() ΓòÉΓòÉΓòÉ
  27807.  
  27808. expand_window()   Primitive 
  27809.  
  27810. Purpose: Enlarge a window to fill the screen. 
  27811.  
  27812. ____________ 
  27813.  
  27814. Syntax:  void expand_window([winid window]) 
  27815.  
  27816. ____________ 
  27817.  
  27818. Description: The expand_window() function enlarges the size of the window 
  27819. identified by the window argument to the "zoomed" state.  If no window argument 
  27820. is specified, the current window is assumed.  If the window is already zoomed, 
  27821. the state is not changed. 
  27822.  
  27823. The zoomed or full-screen state is one of four states a window may occupy: 
  27824. invisible, icon, normal or zoomed.  When the window is zoomed, it takes up the 
  27825. entire screen.  In the normal state, the window occupies the dimensions 
  27826. originally reflected by the window_height and window_width variables.  When in 
  27827. the icon state, the window occupies a few columns of a single line, with a 
  27828. mnemonic displayed in the block.  In the invisible state the window does not 
  27829. appear on the screen. 
  27830.  
  27831. ____________ 
  27832.  
  27833. Value returned: 
  27834.  
  27835. No useful value is returned by the expand_window() function. 
  27836.  
  27837. ____________ 
  27838.  
  27839. See also:  collapse_window(), hide_window(), restore_window() 
  27840.  
  27841.  
  27842. ΓòÉΓòÉΓòÉ 14.26.21. frame_window() ΓòÉΓòÉΓòÉ
  27843.  
  27844. frame_window()   Primitive 
  27845.  
  27846. Purpose: Define or alter the dimensions of a window. 
  27847.  
  27848. ____________ 
  27849.  
  27850. Syntax:  void frame_window([int x, y, wide, high [, winid win]]) 
  27851.  
  27852. ____________ 
  27853.  
  27854. Description: The frame_window() function allows you to define the size and 
  27855. location of a window. The window to be framed is designated by the win 
  27856. argument.  The win argument must be a window previously created by a call to 
  27857. create_window() or edit_file().  If this argument is omitted, the dimensions of 
  27858. the current window are redefined. 
  27859.  
  27860. The location and size of the window are defined by the x, y, wide and high 
  27861. arguments.  The x and y arguments indicate the column and line offset at which 
  27862. the editor will locate the upper left corner of the window. 
  27863.  
  27864. The wide and high arguments indicate the number of columns and lines the window 
  27865. will occupy. 
  27866.  
  27867. If the x or y argument specifies a position off screen, the value is set to the 
  27868. limit of that screen dimension.  When the value of the wide or high argument 
  27869. would cause the window to extend off screen, the values of the x and y 
  27870. arguments are reduced to allow the window to fit.  If this is not possible, the 
  27871. window is truncated to fit the screen. 
  27872.  
  27873. ____________ 
  27874.  
  27875. Value returned: 
  27876.  
  27877. No useful value is returned by the frame_window() function. 
  27878.  
  27879.  
  27880. ΓòÉΓòÉΓòÉ 14.26.22. hide_window() ΓòÉΓòÉΓòÉ
  27881.  
  27882. hide_window()   Primitive 
  27883.  
  27884. Purpose: Remove a window from the screen. 
  27885.  
  27886. ____________ 
  27887.  
  27888. Syntax:  void hide_window([winid window]) 
  27889.  
  27890. ____________ 
  27891.  
  27892. Description: The hide_window() function changes the state of a window to 
  27893. "invisible".  If no window argument is specified, the current window is 
  27894. assumed.  If the window is already invisible the state is not changed. The 
  27895. window is still defined but does not appear on the screen.  The window may be 
  27896. made visible again through the use of the restore_window() function. 
  27897.  
  27898. The invisible state is one of four states a window may occupy:  invisible, 
  27899. icon, normal or zoomed.  When the window is zoomed, it takes up the entire 
  27900. screen.  In the normal state, the window occupies the dimensions originally 
  27901. reflected by the window_height and window_width variables.  When in the icon 
  27902. state, the window is an icon (minimized).  In the invisible state the window 
  27903. does not appear on the screen.  However, the window's position and shape 
  27904. variables will reflect the same values as when the window is in its normal 
  27905. state. 
  27906.  
  27907. ____________ 
  27908.  
  27909. Value returned: 
  27910.  
  27911. No useful value is returned by the hide_window() function. 
  27912.  
  27913. ____________ 
  27914.  
  27915. See also:  expand_window(), collapse_window(), restore_window() 
  27916.  
  27917.  
  27918. ΓòÉΓòÉΓòÉ 14.26.23. is_system_window() ΓòÉΓòÉΓòÉ
  27919.  
  27920. is_system_window()   PEL 
  27921.  
  27922. Purpose: Tells if current window is for system use. 
  27923.  
  27924. ____________ 
  27925.  
  27926. Syntax:  int is_system_window() 
  27927.  
  27928. ____________ 
  27929.  
  27930. Description: The is_system_window() function reports whether the current window 
  27931. has been defined as a system window.  It is useful when creating a function 
  27932. that performs a task that should not be applied to system windows. 
  27933.  
  27934. ____________ 
  27935.  
  27936. Value returned: 
  27937.  
  27938. Returns TRUE if the current window is a system window, else FALSE. 
  27939.  
  27940.  
  27941. ΓòÉΓòÉΓòÉ 14.26.24. keep_windows_cascaded() ΓòÉΓòÉΓòÉ
  27942.  
  27943. keep_windows_cascaded() 
  27944.  
  27945. Purpose: Cascades all windows when the editor is resized. 
  27946.  
  27947. ____________ 
  27948.  
  27949. Syntax: void keep_windows_cascaded() 
  27950.  
  27951. ____________ 
  27952.  
  27953. Description: The keep_windows_cascaded() function automatically cascades all 
  27954. windows when you resize the editor. 
  27955.  
  27956. ____________ 
  27957.  
  27958. Value returned: None. 
  27959.  
  27960.  
  27961. ΓòÉΓòÉΓòÉ 14.26.25. keep_windows_tiled() ΓòÉΓòÉΓòÉ
  27962.  
  27963. keep_window_tiled() 
  27964.  
  27965. Purpose: Tiles all windows when the editor is resized. 
  27966.  
  27967. ____________ 
  27968.  
  27969. Syntax: void keep_windows_tiled() 
  27970.  
  27971. ____________ 
  27972.  
  27973. Description: The keep_windows_tiled() function automatically tiles all windows 
  27974. when you resize the editor. 
  27975.  
  27976. ____________ 
  27977.  
  27978. Value returned: None. 
  27979.  
  27980.  
  27981. ΓòÉΓòÉΓòÉ 14.26.26. keep_windows_tiled_horizontal() ΓòÉΓòÉΓòÉ
  27982.  
  27983. keep_windows_tiled_horizontal(). 
  27984.  
  27985. Purpose: Tiles all windows (horizontally) when the editor is resized. 
  27986.  
  27987. ____________ 
  27988.  
  27989. Syntax: void keep_windows_tiled_horizontal() 
  27990.  
  27991. ____________ 
  27992.  
  27993. Arguments: None. 
  27994.  
  27995. ____________ 
  27996.  
  27997. Description: When the editor window is resized, the 
  27998. keep_windows_tiled_horizontal() function calls tile_horizontal(). 
  27999. Automatically, all windows are tiled horizontally. 
  28000.  
  28001. ____________ 
  28002.  
  28003. Value returned: None. 
  28004.  
  28005. ____________ 
  28006.  
  28007. See also: tile_horizontal() 
  28008.  
  28009.  
  28010. ΓòÉΓòÉΓòÉ 14.26.27. keep_windows_tiled_vertical() ΓòÉΓòÉΓòÉ
  28011.  
  28012. Purpose: Tiles all windows (vertically) when the editor is resized. 
  28013.  
  28014. ____________ 
  28015.  
  28016. Syntax: void keep_windows_tiled_vertical() 
  28017.  
  28018. ____________ 
  28019.  
  28020. Arguments: None. 
  28021.  
  28022. ____________ 
  28023.  
  28024. Description: When the editor window is resized, the 
  28025. keep_windows_tiled_vertical() function calls tile_vertical(). Automatically, 
  28026. all windows are tiled vertically. 
  28027.  
  28028. ____________ 
  28029.  
  28030. Value returned: None. 
  28031.  
  28032. ____________ 
  28033.  
  28034. See also: tile_vertical() 
  28035.  
  28036.  
  28037. ΓòÉΓòÉΓòÉ 14.26.28. larger_window() ΓòÉΓòÉΓòÉ
  28038.  
  28039. larger_window()   PEL 
  28040.  
  28041. Purpose: Changes window to the next "larger" state. 
  28042.  
  28043. ____________ 
  28044.  
  28045. Syntax: void larger_window() 
  28046.  
  28047. ____________ 
  28048.  
  28049. Description: The larger_window() function expands the current window to normal 
  28050. size if it is an icon or full- screen if it is normal sized.  If the window is 
  28051. already full-screen this function has no effect. 
  28052.  
  28053. ____________ 
  28054.  
  28055. Value returned: No useful value is returned by this function. 
  28056.  
  28057.  
  28058. ΓòÉΓòÉΓòÉ 14.26.29. next_window() ΓòÉΓòÉΓòÉ
  28059.  
  28060. next_window()   Primitive 
  28061.  
  28062. Purpose: Make subsequent window in list the current window. 
  28063.  
  28064. ____________ 
  28065.  
  28066. Syntax: winid next_window([str pattern [,int include_sys]]) 
  28067.  
  28068. ____________ 
  28069.  
  28070. Description: The next_window() function may be used in two ways, depending on 
  28071. whether a pattern is supplied.  In either case, next_window() is used to change 
  28072. the currently active window. 
  28073.  
  28074. When the pattern argument is not present or is an empty string, next_window() 
  28075. may be used to increment forward through the windows list. 
  28076.  
  28077. When a pattern is specified, next_window() will look forward through the 
  28078. windows list for a window whose associated window_name matches the pattern 
  28079. argument.  The pattern argument may contain wildcard characters as described in 
  28080. the "Filename Matching" section of "General Operations" chapter of the User's 
  28081. Manual. 
  28082.  
  28083. If the pattern argument has been specified, you may optionally supply the 
  28084. include_sys argument also. This argument is used to tell next_window() not to 
  28085. skip system windows in moving through the windows list.  Normally, there is no 
  28086. need to access system windows unless you are writing a menuing routine. If you 
  28087. find the need, however, you may access system windows by supplying a non-zero 
  28088. value as the include_sys argument.  You may then increment through the windows 
  28089. list until you locate the system window of interest.  The following example 
  28090. increments through the list of all windows: 
  28091.  
  28092.   next_window("",1) 
  28093.  
  28094. The current window is the last to be compared to the pattern argument. 
  28095.  
  28096. ____________ 
  28097.  
  28098. Value returned: This function always returns the numeric id of the current 
  28099. window (current_window) as it exists after the operation.  If the function 
  28100. fails, either because pattern does not match any subsequent window buffers or 
  28101. there fewer than two windows in the list, the current window does not change. 
  28102.  
  28103.  
  28104. ΓòÉΓòÉΓòÉ 14.26.30. next_window_key() ΓòÉΓòÉΓòÉ
  28105.  
  28106. next_window_key()   PEL 
  28107.  
  28108. Purpose:  To make the next window current. 
  28109.  
  28110. ____________ 
  28111.  
  28112. Syntax:   next_window_key() 
  28113.  
  28114. ____________ 
  28115.  
  28116. Arguments:  none 
  28117.  
  28118. Description: 
  28119.  
  28120. ____________ 
  28121.  
  28122. Value returned:  none 
  28123.  
  28124.  
  28125. ΓòÉΓòÉΓòÉ 14.26.31. organize_windows() ΓòÉΓòÉΓòÉ
  28126.  
  28127. organize_windows()   PEL 
  28128.  
  28129. Purpose: Displays all defined windows as icons. 
  28130.  
  28131. ____________ 
  28132.  
  28133. Syntax: void organize_windows() 
  28134.  
  28135. ____________ 
  28136.  
  28137. Description: The organize_windows() function displays all defined windows in 
  28138. rows as icons.  This can be useful when working with a large number of windows. 
  28139.  
  28140. ____________ 
  28141.  
  28142. Value returned: No useful value is returned by this function. 
  28143.  
  28144.  
  28145. ΓòÉΓòÉΓòÉ 14.26.32. prev_window() ΓòÉΓòÉΓòÉ
  28146.  
  28147. prev_window()   Primitive 
  28148.  
  28149. Purpose: Make preceding window on list the current window. 
  28150.  
  28151. ____________ 
  28152.  
  28153. Syntax: winid prev_window([str pattern [, int include_sys]]) 
  28154.  
  28155. ____________ 
  28156.  
  28157. Description: The prev_window() function may be used in two ways, depending on 
  28158. whether the pattern argument is supplied.  In either case, prev_window() is 
  28159. used to change the currently active window. 
  28160.  
  28161. When the pattern argument is not present, prev_window() may be used to 
  28162. increment backward through the windows list. 
  28163.  
  28164. When pattern is supplied, prev_window() will jump backwards in the windows list 
  28165. to a window whose buffer_name matches the pattern argument.  The pattern 
  28166. argument may contain wildcard characters as described in the "Filename 
  28167. Matching" section of "General Operation" chapter of the User's Manual. 
  28168.  
  28169. If the pattern argument has been specified, you may optionally supply the 
  28170. include_sys argument also. This argument is used to tell prev_window() not to 
  28171. skip system windows in moving through the windows list.  Normally, there is no 
  28172. need to access system windows unless you are writing a menuing routine. If you 
  28173. find the need, however, you may access system windows by supplying a non-zero 
  28174. value as the include_sys argument.  You may then increment through the windows 
  28175. list until you locate the system window of interest.  The following example 
  28176. increments through the list of all windows: 
  28177.  
  28178.   prev_window("",1) 
  28179.  
  28180. The current window is the last to be compared to the pattern argument. 
  28181.  
  28182. ____________ 
  28183.  
  28184. Value returned: This function always returns the numeric id of the current 
  28185. window (current_window) as it exists after the operation.  If the function 
  28186. fails, either because pattern does not match any subsequent window buffers or 
  28187. there fewer than two windows in the list, the current window does not change. 
  28188.  
  28189.  
  28190. ΓòÉΓòÉΓòÉ 14.26.33. prev_window_key() ΓòÉΓòÉΓòÉ
  28191.  
  28192. prev_window_key()   PEL 
  28193.  
  28194. Purpose:  To make the previous window current. 
  28195.  
  28196. ____________ 
  28197.  
  28198. Syntax:   prev_window_key() 
  28199.  
  28200. ____________ 
  28201.  
  28202. Arguments:  none 
  28203.  
  28204. Description: 
  28205.  
  28206. ____________ 
  28207.  
  28208. Value returned:  none 
  28209.  
  28210.  
  28211. ΓòÉΓòÉΓòÉ 14.26.34. raise_window() ΓòÉΓòÉΓòÉ
  28212.  
  28213. raise_window()   Primitive 
  28214.  
  28215. Purpose: Promote a window to the top of the list. 
  28216.  
  28217. ____________ 
  28218.  
  28219. Syntax: void raise_window([winid window]) 
  28220.  
  28221. ____________ 
  28222.  
  28223. Description: The raise_window() function promotes the window named by the 
  28224. window argument to the top of the window list.  The window argument is a window 
  28225. id number assigned by the editor system when the window was created.  If this 
  28226. argument is omitted, the current window is raised.  Any other overlapping 
  28227. windows on the screen will appear overlaid by this window. 
  28228.  
  28229. As always, when the active window is changed, the buffer attached to the window 
  28230. made current is then the active buffer. 
  28231.  
  28232. ____________ 
  28233.  
  28234. Value returned: No useful value is returned by the raise_window() function. 
  28235.  
  28236.  
  28237. ΓòÉΓòÉΓòÉ 14.26.35. restore_window() ΓòÉΓòÉΓòÉ
  28238.  
  28239. restore_window()   Primitive 
  28240.  
  28241. Purpose: Returns a window to its normal size. 
  28242.  
  28243. ____________ 
  28244.  
  28245. Syntax: void restore_window([winid window]) 
  28246.  
  28247. ____________ 
  28248.  
  28249. Description: The restore_window() function returns a window to its normal size 
  28250. regardless of its current state. If no window argument is specified, the 
  28251. current window is assumed.  If the window is already at its normal size, the 
  28252. state is not changed. 
  28253.  
  28254. The normal state is one of four states a window may occupy:  invisible, icon, 
  28255. normal or zoomed.  When the window is zoomed, it takes up the entire screen. 
  28256. In the normal state, the window occupies the dimensions originally reflected by 
  28257. the window_height and window_width variables.  When in the icon state, the 
  28258. window occupies a few columns of a single line, with a mnemonic displayed in 
  28259. the block.  In the invisible state the window does not appear on the screen. 
  28260.  
  28261. ____________ 
  28262.  
  28263. Value returned: No useful value is returned by the restore_window() function. 
  28264.  
  28265.  
  28266. ΓòÉΓòÉΓòÉ 14.26.36. set_dump_format() ΓòÉΓòÉΓòÉ
  28267.  
  28268. set_dump_format()   PEL 
  28269.  
  28270. Purpose: Sets the dump format in the WINDOW_CHARS bits of the window flags. 
  28271.  
  28272. ____________ 
  28273.  
  28274. Syntax: set_dump_format(short fmt) 
  28275.  
  28276. ____________ 
  28277.  
  28278. Arguments: fmt - sets the format of the number side.  The value for this 
  28279. argument can be any one of the WINDOW_CHARS bits.  If you do not specify a 
  28280. value for fmt, the default value is WINDOW_DUMP, which is 0. 
  28281.  
  28282. ____________ 
  28283.  
  28284. Description: The set_dump_format() function sets the dump format in the 
  28285. WINDOW_CHARS bits of the window flags. 
  28286.  
  28287. ____________ 
  28288.  
  28289. Value returned: None. 
  28290.  
  28291. ____________ 
  28292.  
  28293. See also: window_flags, toggle_dump_mode(), begin_dump_mode(), end_dump_mode, 
  28294. toggle_dump_window(), toggle_dump_side(), window_keymap, mouse_event_offset, 
  28295. mouse_event_line, mouse_event_column, mouse_event_side, mouse_event_digit, 
  28296. dump_digit, dump_bytes_per_line, default_dump_bytes_per_line 
  28297.  
  28298.  
  28299. ΓòÉΓòÉΓòÉ 14.26.37. smaller_window() ΓòÉΓòÉΓòÉ
  28300.  
  28301. smaller_window()   PEL 
  28302.  
  28303. Purpose: Changes current window to next smaller state. 
  28304.  
  28305. ____________ 
  28306.  
  28307. Syntax: void smaller_window() 
  28308.  
  28309. ____________ 
  28310.  
  28311. Description: The smaller_window() function reduces current window to normal 
  28312. size if it is full-screen, or to icon if normal sized.  The function does 
  28313. nothing if the window is already an icon. 
  28314.  
  28315. ____________ 
  28316.  
  28317. Value returned: No useful value is returned by this function. 
  28318.  
  28319.  
  28320. ΓòÉΓòÉΓòÉ 14.26.38. split_window_horizontal() ΓòÉΓòÉΓòÉ
  28321.  
  28322. split_window_horizontal()   PEL 
  28323.  
  28324. Purpose: Split the current window horizontally. 
  28325.  
  28326. ____________ 
  28327.  
  28328. Syntax: void split_window_horizontal([int high]) 
  28329.  
  28330. ____________ 
  28331.  
  28332. Description: The split_window_horizontal() function divides the current window 
  28333. horizontally into two windows.  The high argument specifies the number of lines 
  28334. to be reserved for the current window.  The remainder of the lines currently 
  28335. allocated to the window will be given to the new window.  If the high argument 
  28336. is omitted, this function splits the current window in half. 
  28337.  
  28338. ____________ 
  28339.  
  28340. Value returned: No useful value is returned by this function. 
  28341.  
  28342.  
  28343. ΓòÉΓòÉΓòÉ 14.26.39. split_window_vertical() ΓòÉΓòÉΓòÉ
  28344.  
  28345. split_window_vertical()   PEL 
  28346.  
  28347. Purpose: Split the current window vertically. 
  28348.  
  28349. ____________ 
  28350.  
  28351. Syntax: void split_window_vertical([int wide]) 
  28352.  
  28353. ____________ 
  28354.  
  28355. Description: The split_window_vertical() function divides the current window 
  28356. vertically into two windows.  The wide argument specifies the number of columns 
  28357. to be reserved for the current window.  The remainder currently allocated to 
  28358. the window will be given to the new window.  If the wide argument is omitted, 
  28359. this function splits the current window in half. 
  28360.  
  28361. ____________ 
  28362.  
  28363. Value returned: No useful value is returned by this function. 
  28364.  
  28365.  
  28366. ΓòÉΓòÉΓòÉ 14.26.40. switch_to_mdi() ΓòÉΓòÉΓòÉ
  28367.  
  28368. switch_to_mdi()   PEL 
  28369.  
  28370. Purpose:  Switches windowing mode to mdi 
  28371.  
  28372. ____________ 
  28373.  
  28374. Syntax:   void switch_to_mdi() 
  28375.  
  28376. ____________ 
  28377.  
  28378. Arguments: none. 
  28379.  
  28380. Description: The switch_to_mdi() function sets the windowing mode to mdi.  This 
  28381. mode allows the user to open and display multiple windows.  If the editor is 
  28382. already in mdi mode, this funcion has no effect. 
  28383.  
  28384. ____________ 
  28385.  
  28386. Value returned: none. 
  28387.  
  28388.  
  28389. ΓòÉΓòÉΓòÉ 14.26.41. switch_to_sdi() ΓòÉΓòÉΓòÉ
  28390.  
  28391. switch_to_sdi()   PEL 
  28392.  
  28393. Purpose:  Switches windowing mode to sdi 
  28394.  
  28395. ____________ 
  28396.  
  28397. Syntax:   void switch_to_sdi() 
  28398.  
  28399. ____________ 
  28400.  
  28401. Arguments: none. 
  28402.  
  28403. Description: The switch_to_sdi() function sets the windowing mode to sdi.  This 
  28404. mode allows the user to open and display only one window at a time.  If the 
  28405. editor is already in sdi mode, this funcion has no effect. 
  28406.  
  28407. ____________ 
  28408.  
  28409. Value returned: none. 
  28410.  
  28411.  
  28412. ΓòÉΓòÉΓòÉ 14.26.42. tile_buffers() ΓòÉΓòÉΓòÉ
  28413.  
  28414. tile_buffers()   PEL 
  28415.  
  28416. Purpose:  To create a separate window for each buffer, and then tile the 
  28417. windows. 
  28418.  
  28419. ____________ 
  28420.  
  28421. Syntax:   tile_buffers() 
  28422.  
  28423. ____________ 
  28424.  
  28425. Arguments:  none 
  28426.  
  28427. Description: 
  28428.  
  28429. ____________ 
  28430.  
  28431. Value returned:  none 
  28432.  
  28433.  
  28434. ΓòÉΓòÉΓòÉ 14.26.43. tile_horizontal() ΓòÉΓòÉΓòÉ
  28435.  
  28436. tile_horizontal() 
  28437.  
  28438. Purpose: Tiles all windows horizontally. 
  28439.  
  28440. ____________ 
  28441.  
  28442. Syntax: void tile_horizontal() 
  28443.  
  28444. ____________ 
  28445.  
  28446. Description: When you call tile_horizontal(), all existing windows are tiled, 
  28447. side by side. 
  28448.  
  28449. ____________ 
  28450.  
  28451. Value returned: None. 
  28452.  
  28453.  
  28454. ΓòÉΓòÉΓòÉ 14.26.44. tile_vertical() ΓòÉΓòÉΓòÉ
  28455.  
  28456. tile_vertical() 
  28457.  
  28458. Purpose: Tiles all windows vertically. 
  28459.  
  28460. ____________ 
  28461.  
  28462. Syntax: void tile_vertical() 
  28463.  
  28464. ____________ 
  28465.  
  28466. Description: When you call tile_vertical(), all existing windows are tiled 
  28467. vertically, each one over the other. 
  28468.  
  28469. ____________ 
  28470.  
  28471. Value returned: None. 
  28472.  
  28473.  
  28474. ΓòÉΓòÉΓòÉ 14.26.45. toggle_dump_mode() ΓòÉΓòÉΓòÉ
  28475.  
  28476. toggle_dump_mode()   PEL 
  28477.  
  28478. Purpose:  Toggles hex-dump mode on and off. 
  28479.  
  28480. ____________ 
  28481.  
  28482. Syntax:  toggle_dump_mode(bool on, short format) 
  28483.  
  28484. ____________ 
  28485.  
  28486. Arguments: on - toggles the current state.  If this value is 0, the function is 
  28487. toggled off.  If this value is not equal to zero, the function is toggled on. 
  28488. If you do not specify a value for on, the current state is toggled. 
  28489.  
  28490. fmt - sets the format of the number side.  The value for this argument can be 
  28491. any one of the WINDOW_CHARS bits.  If you do not specify a value for the fmt 
  28492. argument, the default is WINDOW_DUMP, which is 0. 
  28493.  
  28494. ____________ 
  28495.  
  28496. Description: The toggle_dump_mode() function toggles hex-dump mode on and off. 
  28497. The difference between this function and the toggle_dump_window() function is 
  28498. that it calls the begin_dump_mode() and end_dump_mode functions which perform 
  28499. additional housekeeping tasks. 
  28500.  
  28501. ____________ 
  28502.  
  28503. Value returned:None. 
  28504.  
  28505. ____________ 
  28506.  
  28507. See also: begin_dump_mode(), end_dump_mode 
  28508.  
  28509.  
  28510. ΓòÉΓòÉΓòÉ 14.26.46. toggle_dump_side() ΓòÉΓòÉΓòÉ
  28511.  
  28512. toggle_dump_side().   PEL 
  28513.  
  28514. Purpose: Toggles the WINDOW_NUM_SIDE window flag on and off. 
  28515.  
  28516. ____________ 
  28517.  
  28518. Syntax: toggle_dump_side (bool on) 
  28519.  
  28520. ____________ 
  28521.  
  28522. Arguments:  on - toggles the current state.  If this value is 0, the function 
  28523. is toggled off.  If this value is not equal to zero, the function is toggled 
  28524. on.  If you do not specify a value for on, the current state is toggled. 
  28525.  
  28526. ____________ 
  28527.  
  28528. Description: The toggle_dump_side() function toggles the WINDOW_NUM_SIDE window 
  28529. flag on and off. 
  28530.  
  28531. ____________ 
  28532.  
  28533. See also: window_flags, toggle_dump_mode(), begin_dump_mode(), end_dump_mode, 
  28534. toggle_dump_side(), set_dump_format(), window_keymap, mouse_event_offset, 
  28535. mouse_event_line, mouse_event_column, mouse_event_side, mouse_event_digit, 
  28536. dump_digit, dump_bytes_per_line, default_dump_bytes_per_line 
  28537.  
  28538.  
  28539. ΓòÉΓòÉΓòÉ 14.26.47. toggle_dump_window() ΓòÉΓòÉΓòÉ
  28540.  
  28541. toggle_dump_window().   PEL 
  28542.  
  28543. Purpose: Toggles the hex-dump window flags on and off. 
  28544.  
  28545. ____________ 
  28546.  
  28547. Syntax: toggle_dump_window (bool on, short fmt) 
  28548.  
  28549. ____________ 
  28550.  
  28551. Arguments: on - toggles the current state.  If this value is 0, the function is 
  28552. toggled off.  If this value is not equal to zero, the function is toggled on. 
  28553. If you do not specify a value for on, the current state is toggled. 
  28554.  
  28555. fmt - sets the format of the number side.  The value for this argument can be 
  28556. any one of the WINDOW_CHARS bits.  If you do not specify a value, the default 
  28557. is WINDOW_DUMP, which is 0. 
  28558.  
  28559. ____________ 
  28560.  
  28561. Description: The toggle_dump_window() function toggles the hex-dump window 
  28562. flags on and off. 
  28563.  
  28564. ____________ 
  28565.  
  28566. Value returned: None. 
  28567.  
  28568. ____________ 
  28569.  
  28570. See also: window_flags, toggle_dump_mode(), begin_dump_mode(), end_dump_mode, 
  28571. toggle_dump_side(), set_dump_format(), window_keymap, mouse_event_offset, 
  28572. mouse_event_line, mouse_event_column, mouse_event_side, mouse_event_digit, 
  28573. dump_digit, dump_bytes_per_line, default_dump_bytes_per_line 
  28574.  
  28575.  
  28576. ΓòÉΓòÉΓòÉ 14.26.48. toggle_linenumbers() ΓòÉΓòÉΓòÉ
  28577.  
  28578. toggle_linenumbers()   PEL 
  28579.  
  28580. Purpose: Turns on or off display of line numbers. 
  28581.  
  28582. ____________ 
  28583.  
  28584. Syntax: void toggle_linenumbers([int on]) 
  28585.  
  28586. ____________ 
  28587.  
  28588. Description: The toggle_linenumbers() function turns on or off the display of 
  28589. line numbers in the current window. When the on argument is zero, this feature 
  28590. is turned off.  Other values for on turn it on.  When the on argument is 
  28591. omitted the feature is toggled to its opposite condition. 
  28592.  
  28593. ____________ 
  28594.  
  28595. Value returned: No useful value is returned by this function. 
  28596.  
  28597.  
  28598. ΓòÉΓòÉΓòÉ 14.26.49. window_cascade() ΓòÉΓòÉΓòÉ
  28599.  
  28600. window_cascade()   PEL 
  28601.  
  28602. Purpose:  Cascade all windows. 
  28603.  
  28604. ____________ 
  28605.  
  28606. Syntax:   void window_cascade() 
  28607.  
  28608. ____________ 
  28609.  
  28610. Arguments: none. 
  28611.  
  28612. Description: The window_cascade() function arranges all open windows so they 
  28613. are cascaded. 
  28614.  
  28615. ____________ 
  28616.  
  28617. Value returned: none. 
  28618.  
  28619.  
  28620. ΓòÉΓòÉΓòÉ 14.26.50. window_tile() ΓòÉΓòÉΓòÉ
  28621.  
  28622. window_tile()   PEL 
  28623.  
  28624. Purpose:  Tile all windows. 
  28625.  
  28626. ____________ 
  28627.  
  28628. Syntax:   void window_tile() 
  28629.  
  28630. ____________ 
  28631.  
  28632. Arguments: none. 
  28633.  
  28634. Description: The window_tile() function arranges all open windows so they are 
  28635. tiled.  This allows the user to see all of the windows at the same time without 
  28636. having to hide them. 
  28637.  
  28638. ____________ 
  28639.  
  28640. Value returned: none. 
  28641.  
  28642.  
  28643. ΓòÉΓòÉΓòÉ 14.26.51. window_valid ΓòÉΓòÉΓòÉ
  28644.  
  28645. window_valid()   Primitive 
  28646.  
  28647. Purpose: Tells whether a window is currently defined. 
  28648.  
  28649. ____________ 
  28650.  
  28651. Syntax: int window_valid([winid win]) 
  28652.  
  28653. ____________ 
  28654.  
  28655. Description: The window_valid() function reports whether the window id 
  28656. indicated by win argument is defined.  If the argument is omitted, the function 
  28657. tests the window id named by the current_window variable. 
  28658.  
  28659. ____________ 
  28660.  
  28661. Value returned: The value returned by this function is TRUE (non- zero) if the 
  28662. window is valid.  Otherwise, the function returns FALSE (zero). 
  28663.  
  28664.  
  28665. ΓòÉΓòÉΓòÉ 14.27. Word Processing ΓòÉΓòÉΓòÉ
  28666.  
  28667. The word processing category contains variables and functions that provide for 
  28668. auto-indent and word-wrap capabilities.  These features may be applied to a 
  28669. single paragraph in a single buffer or all active buffers. 
  28670.  
  28671. The word processing features of PREDITOR/2 are useful for writing reports and 
  28672. specifications.  In addition, they can simplify the task of making a long 
  28673. source code comment aesthetically acceptable without throwing the rest of the 
  28674. file into disarray.  PREDITOR/2 carries out these word processing features 
  28675. using pure ASCII characters and standard end-of-line sequences. 
  28676.  
  28677. You enable Word processing for a particular buffer by setting the WP_ENABLE bit 
  28678. of the buffer_flags variable.  The toggle_wp() function has [been provided t o 
  28679. perform this operation for you.  A tersely named synonym for this function, 
  28680. wp(), is suitable for executing from the keyboard whenever you desire word 
  28681. processing features.  The buffer_flags variable may be otherwise manipulated 
  28682. using the set_flag_bits() function. 
  28683.  
  28684. When you have word processing enabled, the paragraph you are editing is 
  28685. continuously reformatted to conform to margins.  You define these margins with 
  28686. the variables wp_left_margin and wp_right_margin. 
  28687.  
  28688. When new line is added to the buffer as a result of word-wrap, the entire 
  28689. contents of the word processing margin on the preceding line is copied to the 
  28690. beginning of the new line.  This is particularly useful when you wish to have 
  28691. each line begin with comment characters or some special character sequence. 
  28692.  
  28693. Word processing need not be enabled to make use of word processing functions, 
  28694. however.  You may wish to format a single paragraph using the wrap_paragraph() 
  28695. function.  The indent_...() and outwent_...() functions listed here operate 
  28696. independently of word processing.  These functions are useful for word 
  28697. processing, however, as well as shifting blocks of source code to show nesting. 
  28698.  
  28699. Auto-indent is somewhat similar to the word processing margin maintained when 
  28700. word processing is in effect.  It causes the  not only to begin a new line but 
  28701. also to copy any spaces and tabs at the beginning of the previous line to the 
  28702. new line.  This has the effect of indenting the cursor to the position 
  28703. immediately beneath the first non-whitespace character on the preceding line. 
  28704.  
  28705. The auto-indent and word processing modes are completely independent, however. 
  28706. You should select either auto-indent or word processing but not both. 
  28707.  
  28708. There are also several functions in this category that allow manipulating the 
  28709. case of characters.  The upper() function forces the characters in a marked 
  28710. block to upper case while the lower() function does the opposite.  There are 
  28711. also reverse(), which changes upper-case characters in a block to lower and 
  28712. lower to upper, and capitalize() to make the first character of words in the 
  28713. block upper-case. 
  28714.  
  28715. capitalize() 
  28716.           Makes first letter of words in block upper-case. 
  28717. get_region_as_str() 
  28718.           To read the highlighted region into a string 
  28719. indent_space_maybe() 
  28720.           Insert a space or indent selection 
  28721. indent_tab_maybe() 
  28722.           Insert a tab or indent the selection 
  28723. indent_tabs() 
  28724.           Indent lines by adding tabs to the left of text. 
  28725. insert_auto_indent() 
  28726.           Insert a new line and indent remaining text on the next line. 
  28727. lower() 
  28728.           Converts characters in a block to lower-case. 
  28729. outdent_columns() 
  28730.           Un-indent lines by deleting whitespace at left of text. 
  28731. outdent_space_maybe() 
  28732.           Delte a space or outdent selection 
  28733. outdent_tab_maybe() 
  28734.           Delete a tab or outdent the selection 
  28735. outdent_tabs() 
  28736.           Un-indent lines a specified number of tab stops. 
  28737. reverse() 
  28738.           Converts lower case to upper and upper to lower. 
  28739. toggle_auto_indent() 
  28740.           Toggles the auto-indent feature on or off. 
  28741. toggle_wp() 
  28742.           Toggles word processing mode. 
  28743. toreverse() 
  28744.           Reverses the case of characters in a string. 
  28745. upper() 
  28746.           Converts characters in a block to upper-case. 
  28747. wp() 
  28748.           Sets word processing mode options. 
  28749. wrap_paragraph() 
  28750.           Reformat a paragraph to conform to margins. 
  28751.  
  28752.  
  28753. ΓòÉΓòÉΓòÉ 14.27.1. capitalize() ΓòÉΓòÉΓòÉ
  28754.  
  28755. capitalize()   PEL 
  28756.  
  28757. Purpose: Makes first letter of words in block upper-case. 
  28758.  
  28759. ____________ 
  28760.  
  28761. Syntax:  void capitalize() 
  28762.  
  28763. ____________ 
  28764.  
  28765. Description: The capitalize() function converts the first character of each 
  28766. word in the selected block of text to upper-case.  If no block has been 
  28767. selected, only the word at the cursor is converted.  In this case, if the 
  28768. cursor is in the middle of a word the character under the cursor is made 
  28769. upper-case. 
  28770.  
  28771. ____________ 
  28772.  
  28773. Value returned: 
  28774.  
  28775. No useful value is returned by this function. 
  28776.  
  28777.  
  28778. ΓòÉΓòÉΓòÉ 14.27.2. get_region_as_str() ΓòÉΓòÉΓòÉ
  28779.  
  28780. get_region_as_str()   PEL 
  28781.  
  28782. Purpose:  To read the highlighted region into a string 
  28783.  
  28784. ____________ 
  28785.  
  28786. Syntax:   get_region_as_str( [str sep, [str term]] ) 
  28787.  
  28788. ____________ 
  28789.  
  28790. Arguments: 
  28791.  
  28792. o sep  - line separator for column selections 
  28793. o term - terminator for column selections 
  28794.  
  28795. Description: Read the characters in a region and return them as a string. For 
  28796. columnar selections, the two parameters "sep" and "term" specify a string to be 
  28797. used to separate each of the lines of the selection and to terminate the last 
  28798. line of the selection, respectively.  A suggestion for the values of these 
  28799. strings is " " and "\n" or, alternatively, "\n" and "\n". 
  28800.  
  28801. ____________ 
  28802.  
  28803. Value returned:  the highlighted region as a string 
  28804.  
  28805.  
  28806. ΓòÉΓòÉΓòÉ 14.27.3. indent_space_maybe() ΓòÉΓòÉΓòÉ
  28807.  
  28808. indent_space_maybe()   PEL 
  28809.  
  28810. Purpose:  Insert a space or indent selection 
  28811.  
  28812. ____________ 
  28813.  
  28814. Syntax:   void indent_space_maybe() 
  28815.  
  28816. ____________ 
  28817.  
  28818. Arguments: none 
  28819.  
  28820. Description: The indent_space_maybe() function indents the current selection by 
  28821. a column.  If no selection has been made, a space is inserted at the cursor 
  28822. position. 
  28823.  
  28824. ____________ 
  28825.  
  28826. Value returned: none. 
  28827.  
  28828.  
  28829. ΓòÉΓòÉΓòÉ 14.27.4. indent_tab_maybe() ΓòÉΓòÉΓòÉ
  28830.  
  28831. indent_tab_maybe()   PEL 
  28832.  
  28833. Purpose:  Insert a tab or indent the selection 
  28834.  
  28835. ____________ 
  28836.  
  28837. Syntax:   void indent_tab_maybe() 
  28838.  
  28839. ____________ 
  28840.  
  28841. Arguments: none 
  28842.  
  28843. Description: The indent_tab_maybe() function indents the current selection by a 
  28844. tabstop.  If no selection has been made, a tab is inserted at the cursor 
  28845. position. 
  28846.  
  28847. ____________ 
  28848.  
  28849. Value returned: none. 
  28850.  
  28851.  
  28852. ΓòÉΓòÉΓòÉ 14.27.5. indent_tabs() ΓòÉΓòÉΓòÉ
  28853.  
  28854. indent_tabs()   Primitive 
  28855.  
  28856. Purpose: Indent lines by adding tabs to the left of text. 
  28857.  
  28858. ____________ 
  28859.  
  28860. Syntax:  int indent_tabs([int num]) 
  28861.  
  28862. ____________ 
  28863.  
  28864. Description: The indent_tabs() function indents a line or lines of text by 
  28865. inserting a specified number of tabs preceding the left end of text.  If no 
  28866. marked block of text has been defined, tabs are added to the current line only. 
  28867. If a block has been defined, each line of text in the block is indented by 
  28868. adding tabs.  The cursor position is changed as a result of this function if it 
  28869. is located within the indented text. 
  28870.  
  28871. If a column marked block of text has been defined, whitespace is added to each 
  28872. line immediately to the left of the column at which the block begins.  When 
  28873. other types of blocks exist, whitespace is added to the beginning of each line 
  28874. in the block. 
  28875.  
  28876. The number of tabs added to each line is determined by the value of the num 
  28877. argument.  If the num argument is omitted, a value of 1 is assumed for that 
  28878. argument. 
  28879.  
  28880. ____________ 
  28881.  
  28882. Value returned: 
  28883.  
  28884. This function returns a non-zero value (TRUE) when successfully completed.  A 
  28885. zero value (FALSE) is returned if an invalid value is supplied for the num 
  28886. argument. 
  28887.  
  28888.  
  28889. ΓòÉΓòÉΓòÉ 14.27.6. insert_auto_indent() ΓòÉΓòÉΓòÉ
  28890.  
  28891. insert_auto_indent()   PEL 
  28892.  
  28893. Purpose:  Insert a new line and indent remaining text on the next line. 
  28894.  
  28895. ____________ 
  28896.  
  28897. Syntax:   void insert_auto_indent() 
  28898.  
  28899. ____________ 
  28900.  
  28901. Arguments: none. 
  28902.  
  28903. Description: The insert_auto_indent() function inserts a new line and moves the 
  28904. remaining text of the current line to the next line.  The new line is indented 
  28905. to the same column as the previous nonblank line. 
  28906.  
  28907. ____________ 
  28908.  
  28909. Value returned: none. 
  28910.  
  28911.  
  28912. ΓòÉΓòÉΓòÉ 14.27.7. lower() ΓòÉΓòÉΓòÉ
  28913.  
  28914. lower()   PEL 
  28915.  
  28916. Purpose: Converts characters in a block to lower-case. 
  28917.  
  28918. ____________ 
  28919.  
  28920. Syntax: void lower() 
  28921.  
  28922. ____________ 
  28923.  
  28924. Description: The lower() function converts all upper-case letters in a selected 
  28925. block of text to lower-case. If no block has been selected the character at the 
  28926. cursor is converted.  Numbers punctuation and white-space in the block are not 
  28927. modified by this function. 
  28928.  
  28929. ____________ 
  28930.  
  28931. Value returned: No useful value is returned by this function. 
  28932.  
  28933. ____________ 
  28934.  
  28935. See also:   tolower() 
  28936.  
  28937.  
  28938. ΓòÉΓòÉΓòÉ 14.27.8. outdent_columns() ΓòÉΓòÉΓòÉ
  28939.  
  28940. outdent_columns()   Primitive 
  28941.  
  28942. Purpose: Un-indent lines by deleting whitespace at left of text. 
  28943.  
  28944. ____________ 
  28945.  
  28946. Syntax: int outdent_columns([int num]) 
  28947.  
  28948. ____________ 
  28949.  
  28950. Description: The outdent_columns() function shifts text a specified number of 
  28951. columns to the left.  This is done by removing spaces or tabs from the 
  28952. whitespace preceding text in a line or lines of text.  The cursor moves with 
  28953. the text to maintain its relative position. 
  28954.  
  28955. If a column marked block of text has been defined, whitespace is removed from 
  28956. each line immediately to the left of the column at which the block begins. When 
  28957. other types of blocks exist, whitespace is removed from the beginning of each 
  28958. line in the block. 
  28959.  
  28960. The number of columns to shift each line is determined by the value of the num 
  28961. argument.  If the num argument is omitted, a value of 1 is assumed for that 
  28962. argument. 
  28963.  
  28964. ____________ 
  28965.  
  28966. Value returned: This function returns a non-zero value (TRUE) when successfully 
  28967. completed.  A zero value (FALSE) is returned if there is no whitespace to the 
  28968. left of text or an invalid value is supplied for the num argument. 
  28969.  
  28970.  
  28971. ΓòÉΓòÉΓòÉ 14.27.9. outdent_space_maybe() ΓòÉΓòÉΓòÉ
  28972.  
  28973. outdent_space_maybe()   PEL 
  28974.  
  28975. Purpose:  Delte a space or outdent selection 
  28976.  
  28977. ____________ 
  28978.  
  28979. Syntax:   void outdent_space_maybe() 
  28980.  
  28981. ____________ 
  28982.  
  28983. Arguments: none 
  28984.  
  28985. Description: The outdent_space_maybe() function outdents the current selection 
  28986. by a column.  If no selection has been made, a space is deleted before the 
  28987. cursor position. 
  28988.  
  28989. ____________ 
  28990.  
  28991. Value returned: none. 
  28992.  
  28993.  
  28994. ΓòÉΓòÉΓòÉ 14.27.10. outdent_tab_maybe() ΓòÉΓòÉΓòÉ
  28995.  
  28996. outdent_tab_maybe()   PEL 
  28997.  
  28998. Purpose:  Delete a tab or outdent the selection 
  28999.  
  29000. ____________ 
  29001.  
  29002. Syntax:   void outdent_tab_maybe() 
  29003.  
  29004. ____________ 
  29005.  
  29006. Arguments: none 
  29007.  
  29008. Description: The outdent_tab_maybe() function outdents the current selection by 
  29009. a tabstop.  If no selection has been made, a tab is deleted before the cursor 
  29010. position. 
  29011.  
  29012. ____________ 
  29013.  
  29014. Value returned: none. 
  29015.  
  29016.  
  29017. ΓòÉΓòÉΓòÉ 14.27.11. outdent_tabs() ΓòÉΓòÉΓòÉ
  29018.  
  29019. outdent_tabs()   Primitive 
  29020.  
  29021. Purpose: Un-indent lines a specified number of tab stops. 
  29022.  
  29023. ____________ 
  29024.  
  29025. Syntax: int outdent_tabs([int num]) 
  29026.  
  29027. ____________ 
  29028.  
  29029. Description: The outdent_tabs() function shifts text a specified number of tab 
  29030. stops to the left.  This is done by removing spaces or tabs from the whitespace 
  29031. preceding text in a line or lines of text.  The cursor moves with the text to 
  29032. maintain its relative position. 
  29033.  
  29034. If a column marked block of text has been defined, whitespace is removed from 
  29035. each line immediately to the left of the column at which the block begins. When 
  29036. other types of blocks exist, whitespace is removed from the beginning of each 
  29037. line in the block. 
  29038.  
  29039. The number of tabs stops to shift each line is determined by the value of the 
  29040. num argument.  If the num argument is omitted, a value of 1 is assumed for that 
  29041. argument. 
  29042.  
  29043. ____________ 
  29044.  
  29045. Value returned: This function returns a non-zero value (TRUE) when successfully 
  29046. completed.  A zero value (FALSE) is returned if there is no whitespace to the 
  29047. left of text or an invalid value is supplied for the num argument. 
  29048.  
  29049.  
  29050. ΓòÉΓòÉΓòÉ 14.27.12. reverse() ΓòÉΓòÉΓòÉ
  29051.  
  29052. reverse()   PEL 
  29053.  
  29054. Purpose: Converts lower case to upper and upper to lower. 
  29055.  
  29056. ____________ 
  29057.  
  29058. Syntax: void reverse() 
  29059.  
  29060. ____________ 
  29061.  
  29062. Description: The reverse() function reverses the case of the selected portion 
  29063. of the buffer.  Any character which was lower case is converted to upper and 
  29064. any upper case character becomes lower.  If no selection mark has been defined 
  29065. the case of the character under the cursor is reversed. 
  29066.  
  29067. The VI emulation package uses this function to allow converting a specified 
  29068. number of characters. 
  29069.  
  29070. ____________ 
  29071.  
  29072. Value returned: No useful value is returned by this function. 
  29073.  
  29074.  
  29075. ΓòÉΓòÉΓòÉ 14.27.13. toggle_auto_indent() ΓòÉΓòÉΓòÉ
  29076.  
  29077. toggle_auto_indent()   PEL 
  29078.  
  29079. Purpose: Toggles the auto-indent feature on or off. 
  29080.  
  29081. ____________ 
  29082.  
  29083. Syntax: void toggle_auto_indent([int force]) 
  29084.  
  29085. ____________ 
  29086.  
  29087. Description: The toggle_auto_indent() function toggles the state of 
  29088. PREDITOR/2's auto-indent feature.  This function therefore affects the action 
  29089. of the  key. 
  29090.  
  29091. When auto-indent is on, a special function is assigned to the  and   keys. 
  29092. These functions copy a like amount of whitespace preceding the text on the 
  29093. previous line to new lines.  If the previous line does not contain any 
  29094. printable characters, nothing is copied to the new line.  When auto-indent is 
  29095. off, the function usually assigned to the  key, insert_newline(), merely begins 
  29096. a new line by inserting the new line sequence. 
  29097.  
  29098. The optional force argument allows you to force the auto-indent feature to the 
  29099. condition you desire. If the force argument is non-zero (TRUE), auto- indent is 
  29100. turned on regardless of its previous condition.  If force is zero, this feature 
  29101. is always turned off. 
  29102.  
  29103. Auto-indent has some similarities to the word processing margin maintained when 
  29104. word processing is in effect.  These two modes are completely independent, 
  29105. however.  You should select either auto-indent or word processing but not both. 
  29106.  
  29107. By default, auto-indent is off.  It may, however, be turned on by the emulation 
  29108. mode you have selected. 
  29109.  
  29110. This function has a synonym, ai().  A very short name has been selected for 
  29111. this synonym to facilitate its execution interactively.  This is done through 
  29112. execute_function(), which in standard keymaps is available by pressing the[F10] 
  29113. key. 
  29114.  
  29115. ____________ 
  29116.  
  29117. Value returned: No useful value is returned by this function. 
  29118.  
  29119. ____________ 
  29120.  
  29121. See also:   buffer_flags, insert_newline() 
  29122.  
  29123.  
  29124. ΓòÉΓòÉΓòÉ 14.27.14. toggle_wp() ΓòÉΓòÉΓòÉ
  29125.  
  29126. toggle_wp()   PEL 
  29127.  
  29128. Purpose: Toggles word processing mode. 
  29129.  
  29130. ____________ 
  29131.  
  29132. Syntax: void toggle_wp([int force]) 
  29133.  
  29134. ____________ 
  29135.  
  29136. Description: The toggle_wp() function toggles the use of the editor's word 
  29137. processing features.  This is done by changing the WP_ENABLED bit of the 
  29138. buffer_flags variable. 
  29139.  
  29140. When the WP_ENABLED bit is on, word-wrap features are applied to the current 
  29141. paragraph of the buffer. As text is added or deleted from the paragraph, the 
  29142. lines of text are reformatted as necessary to conform to word processing 
  29143. margins (see wp_left_margin and wp_right_margin).  When reformatting a line of 
  29144. text results in no changes to that line, the editor assumes that the rest of 
  29145. the paragraph is already in proper format. 
  29146.  
  29147. When word processing is on and a new line is added to the buffer the entire 
  29148. contents of the word processing margin on the preceding line is copied to the 
  29149. beginning of the new line.  This is particularly useful when you wish to have 
  29150. each line begin with comment characters or some special character sequence. 
  29151.  
  29152. The optional force argument allows you to force the word-processing feature to 
  29153. the condition you desire.  If the force argument is non-zero (TRUE), 
  29154. auto-indent is turned on regardless of its previous condition.  If force is 
  29155. zero (FALSE), this feature is always turned off. 
  29156.  
  29157. The Auto-indent feature of the editor is somewhat similar to the word 
  29158. processing margin.  These two modes are completely independent, however.  You 
  29159. should select either auto-indent or word processing but not both. 
  29160.  
  29161. The synonym wp() has been defined for this function.  The very short name 
  29162. chosen for this synonym facilitates its execution interactively. This is done 
  29163. through execute_function(), which is available in standard keymaps through 
  29164. pressing the  key.  By default, word processing is off. 
  29165.  
  29166. The subject of word processing is discussed in greater detail in the "Word 
  29167. Processing" chapter in Part One of this manual. 
  29168.  
  29169. ____________ 
  29170.  
  29171. Value returned: No useful value is returned by this function. 
  29172.  
  29173.  
  29174. ΓòÉΓòÉΓòÉ 14.27.15. toreverse() ΓòÉΓòÉΓòÉ
  29175.  
  29176. toreverse()   PEL 
  29177.  
  29178. Purpose: Reverses the case of characters in a string. 
  29179.  
  29180. ____________ 
  29181.  
  29182. Syntax: str toreverse(str string) 
  29183.  
  29184. ____________ 
  29185.  
  29186. Description: The toreverse() function creates a string in which the upper case 
  29187. characters in the string argument are converted to lower case and the lower 
  29188. case characters to upper case.  This means that characters in the range 
  29189. "a".."z" become the corresponding character in the range "A".."Z" and vice 
  29190. versa. 
  29191.  
  29192. ____________ 
  29193.  
  29194. Value returned: The value returned by the toreverse() function is the newly 
  29195. created string containing the converted characters. 
  29196.  
  29197. ____________ 
  29198.  
  29199. See also:   reverse() 
  29200.  
  29201.  
  29202. ΓòÉΓòÉΓòÉ 14.27.16. upper() ΓòÉΓòÉΓòÉ
  29203.  
  29204. upper()   PEL 
  29205.  
  29206. Purpose: Converts characters in a block to upper-case. 
  29207.  
  29208. ____________ 
  29209.  
  29210. Syntax: void upper() 
  29211.  
  29212. ____________ 
  29213.  
  29214. Description: The upper() function converts all lower-case letters in a selected 
  29215. block of text to upper-case. If no block has been selected the character at the 
  29216. cursor is converted.  Numbers punctuation and white-space in the block are not 
  29217. modified by this function. 
  29218.  
  29219. ____________ 
  29220.  
  29221. Value returned: No useful value is returned by this function. 
  29222.  
  29223. ____________ 
  29224.  
  29225. See also:   toupper() 
  29226.  
  29227.  
  29228. ΓòÉΓòÉΓòÉ 14.27.17. wrap_paragraph() ΓòÉΓòÉΓòÉ
  29229.  
  29230. wrap_paragraph()   Primitive 
  29231.  
  29232. Purpose: Reformat a paragraph to conform to margins. 
  29233.  
  29234. ____________ 
  29235.  
  29236. Syntax: int wrap_paragraph() 
  29237.  
  29238. ____________ 
  29239.  
  29240. Description: The wrap_paragraph() function fills and wraps text in the current 
  29241. paragraph in units of words.  When completed, the text in the paragraph 
  29242. conforms to the limits defined by the wp_left_margin and wp_right_margin 
  29243. variables. 
  29244.  
  29245. If a marked block has been defined, the text is reformatted from the beginning 
  29246. of the marked block to the end of the last line containing marked text. If 
  29247. column marking is used, the wp_left_margin and wp_right_margin variables will 
  29248. be set to the column boundaries used. 
  29249.  
  29250. Only text to the right of the wp_left_margin will be formatted.  If text exists 
  29251. in the left-hand margin, its position will not be altered.  New lines may be 
  29252. created as the result of wrapping text.  When this happens, the whitespace or 
  29253. text occurring in the left margin of the preceding line is duplicated at the 
  29254. beginning of the new line. 
  29255.  
  29256. Word-wrap and word processing features of the editor are discussed in greater 
  29257. detail in the "Word Processing" chapter in Part One of this manual. 
  29258.  
  29259. ____________ 
  29260.  
  29261. Value returned: This function returns a non-zero value upon successful 
  29262. completion.  If an error occurs, a zero value is returned. 
  29263.  
  29264.  
  29265. ΓòÉΓòÉΓòÉ 15. PEL Variables ΓòÉΓòÉΓòÉ
  29266.  
  29267. Variable  Items 
  29268.  
  29269. The item descriptions for variables are very similar to those of functions. 
  29270. The name in the title line of course does not contain parentheses and there is 
  29271. no return value description.  Let's take a look at our example of an item 
  29272. description for a variable: 
  29273.  
  29274. window_text_width   read-only, window 
  29275.  
  29276. ____________ 
  29277.  
  29278. Purpose: Tells how many columns of text a window contains. 
  29279.  
  29280. ____________ 
  29281.  
  29282. Type:   int window_text_width 
  29283.  
  29284. ____________ 
  29285.  
  29286. Description: 
  29287.  
  29288. Each window has a window_text_width variable associated with it.  The 
  29289. window_text_width variable indicates how many columns of text can appear in the 
  29290. window.  Borders are not included in this measurement.  In addition, displaying 
  29291. line numbers reduces this measure. 
  29292.  
  29293. The first difference between this example and that of the description of a 
  29294. function is the additional information contained in the title line at the 
  29295. extreme right.  This title line indicates that the variable is read-only and is 
  29296. a "per window" variable. 
  29297.  
  29298. As you might expect, the read-only status means you can read the value variable 
  29299. contains but you may not modify that value directly.  The word window at the 
  29300. far right of the title line says that each window has a value corresponding to 
  29301. this variable.  Which value you get depends entirely on which window is 
  29302. current.  Similarly, the word buffer in this position identifies a variable 
  29303. that changes depending upon which buffer is current. 
  29304.  
  29305. Another couple of words that occasionally appear in the title line of the item 
  29306. description are AWK and PEL.  AWK is used to indicate that the variable or 
  29307. function has been inherited from the AWK programming language.  The PEL word is 
  29308. used to identify functions and variables that are defined in the extension 
  29309. language (PEL) source code. 
  29310.  
  29311. The last difference between the variable and function item descriptions is that 
  29312. instead of a synopsis of the syntax used by the function there is a type 
  29313. declaration.  Once again you are reminded that types are never declared in the 
  29314. editor's extension language.  These type declarations in the manual serve an 
  29315. informative purpose only.  If you put a similar declaration in your function 
  29316. source code you will receive an error from the PEL compiler. 
  29317.  
  29318.  
  29319. ΓòÉΓòÉΓòÉ 15.1. Blocks and Bookmarks ΓòÉΓòÉΓòÉ
  29320.  
  29321. _SELECTION 
  29322.           Constants defining types of selections. 
  29323. find_mark 
  29324.           Mark displayed when search pattern is found in ispf. 
  29325. marks_used 
  29326.           Stores the number of marks in use by user and system. 
  29327.  
  29328.  
  29329. ΓòÉΓòÉΓòÉ 15.1.1. _SELECTION ΓòÉΓòÉΓòÉ
  29330.  
  29331. _SELECTION 
  29332.  
  29333. Purpose:  Constants defining types of selections. 
  29334.  
  29335. ____________ 
  29336.  
  29337. Type:    const int _SELECTION 
  29338.  
  29339. ____________ 
  29340.  
  29341. Description: The constants defined in the _SELECTION section are used in 
  29342. functions like begin_selection() to define the type of selection. 
  29343.  
  29344. COLUMN_SELECTION 
  29345.           Selection is confined within column boundaries. 
  29346. INCLUSIVE_SELECTION 
  29347.           Selection includes current cursor position. 
  29348. LINE_SELECTION 
  29349.           Selection includes only whole lines. 
  29350. NO_SELECTION 
  29351.           No selection. 
  29352. NORMAL_SELECTION 
  29353.           Normal selection type. 
  29354.  
  29355. ____________ 
  29356.  
  29357.  
  29358. ΓòÉΓòÉΓòÉ 15.1.2. find_mark ΓòÉΓòÉΓòÉ
  29359.  
  29360. find_mark   PEL 
  29361.  
  29362. Purpose:  Mark displayed when search pattern is found in ispf. 
  29363.  
  29364. ____________ 
  29365.  
  29366. Type:    str find_mark 
  29367.  
  29368. ____________ 
  29369.  
  29370. Description: The find_mark variable is shown in the linenumber field when the 
  29371. search pattern is found on the corresponding line.  This will only be displayed 
  29372. int the ispf() emulation mode. 
  29373.  
  29374. ____________ 
  29375.  
  29376.  
  29377. ΓòÉΓòÉΓòÉ 15.1.3. marks_used ΓòÉΓòÉΓòÉ
  29378.  
  29379. marks_used  read-only   Primitive 
  29380.  
  29381. Purpose: Stores the number of marks in use by user and system. 
  29382.  
  29383. ____________ 
  29384.  
  29385. Type: int marks_used 
  29386.  
  29387. ____________ 
  29388.  
  29389. Description: This variable stores the number of bookmarks currently in use by 
  29390. the system, through library functions, and the user for all buffers. 
  29391.  
  29392. The actual number of bookmarks available to the user is somewhat less, however, 
  29393. since a number of additional bookmarks may be required by library functions. 
  29394. When possible, it is best to leave five bookmarks, times the number of buffers 
  29395. in use, available to library functions. 
  29396.  
  29397. This value is updated by the system and may not be modified by user functions. 
  29398.  
  29399. ____________ 
  29400.  
  29401. See also:   marks_in_buffer() 
  29402.  
  29403.  
  29404. ΓòÉΓòÉΓòÉ 15.2. Buffers ΓòÉΓòÉΓòÉ
  29405.  
  29406. BUFFER_ 
  29407.           Masks for the buffer_flags variable. 
  29408. buffer_eof_string 
  29409.           Tells whether Ctrl-Z character gets special treatment. 
  29410. buffer_eol_string 
  29411.           Designates the end-of-line character sequence. 
  29412. buffer_filename 
  29413.           Stores the name of the corresponding buffer disk file. 
  29414. buffer_flags 
  29415.           Stores a number of buffer attributes as flags. 
  29416. buffer_last_line 
  29417.           Stores the number of lines currently in the buffer. 
  29418. buffer_name 
  29419.           Provides an identifying label for the current buffer. 
  29420. buffer_offset 
  29421.           Tells number of characters preceding current position. 
  29422. buffer_original_filename 
  29423.           Stores the name of the file originally read into buffer. 
  29424. buffer_size 
  29425.           Tells the size of the buffer contents in characters. 
  29426. buffer_tabs 
  29427.           Contains the locations where tab stops are found. 
  29428. buffers_modified() 
  29429.           Tells number of edit buffers which have been altered. 
  29430. current_buffer 
  29431.           Identifies the currently active edit buffer. 
  29432. current_column 
  29433.           Stores the column number of the current position. 
  29434. current_line 
  29435.           Stores the line number of the current position. 
  29436. current_line_length 
  29437.           Stores the length of the current line in characters. 
  29438. current_line_offset 
  29439.           Stores the character offset of the current line position. 
  29440. current_line_width 
  29441.           Stores the length of the current line in columns. 
  29442. default_buffer_eof_string 
  29443.           Tells whether Ctrl-Z character gets special treatment. 
  29444. default_buffer_eol_string 
  29445.           Designates the end-of-line character sequence. 
  29446. default_buffer_flags 
  29447.           Stores a number of buffer attributes as flags. 
  29448. default_buffer_tabs 
  29449.           Contains the locations where tab stops are found. 
  29450. default_visible_end_buffer 
  29451.           Designates string representing the end of buffer. 
  29452. distance_next_tab 
  29453.           Indicates the number of columns to next tab stop. 
  29454. distance_prev_tab 
  29455.           Indicates the number of columns to previous tab stop. 
  29456. visible_end_buffer 
  29457.           Designates string representing the end of buffer. 
  29458.  
  29459.  
  29460. ΓòÉΓòÉΓòÉ 15.2.1. BUFFER_ ΓòÉΓòÉΓòÉ
  29461.  
  29462. BUFFER_   PEL 
  29463.  
  29464. Purpose: Masks for the buffer_flags variable. 
  29465.  
  29466. ____________ 
  29467.  
  29468. Type: const int BUFFER_ 
  29469.  
  29470. ____________ 
  29471.  
  29472. Description: The constants defined in the BUFFER_ section are used as masks to 
  29473. modify and examine the buffer_flags variable. 
  29474.  
  29475. o BUFFER_AUTOSAVE_MODIFIED 
  29476. o BUFFER_CONTROL_Z_IS_EOF 
  29477. o BUFFER_EXPAND_TABS 
  29478. o BUFFER_IN_VIRTUAL_SPACE 
  29479. o BUFFER_MODIFIED 
  29480. o BUFFER_NO_UNDO 
  29481. o BUFFER_OVERTYPE_MODE 
  29482. o BUFFER_POSITION_IS_VIRTUAL 
  29483. o BUFFER_READ_ONLY 
  29484. o BUFFER_REAL_SPACE_ONLY 
  29485. o BUFFER_SCRATCH 
  29486. o BUFFER_SNAP_TO_EOL 
  29487. o BUFFER_SYSTEM 
  29488. o BUFFER_TABS_TO_SPACES 
  29489. o BUFFER_WHOLE_LINES 
  29490. o BUFFER_WP_ENABLED 
  29491. o BUFFER_WP_WRAP_CONTINUOUS 
  29492.  
  29493. ____________ 
  29494.  
  29495.  
  29496. ΓòÉΓòÉΓòÉ 15.2.2. buffer_eof_string ΓòÉΓòÉΓòÉ
  29497.  
  29498. buffer_eof_string   Primitive 
  29499.  
  29500. Purpose: Tells whether Ctrl-Z character gets special treatment. 
  29501.  
  29502. ____________ 
  29503.  
  29504. Type:   str buffer_eof_string 
  29505.  
  29506. ____________ 
  29507.  
  29508. Description: 
  29509.  
  29510. Each edit buffer has a buffer_eof_string variable associated with it.  This 
  29511. variable is for use when creating or editing a file which should or already 
  29512. does use a Ctrl-Z character (1AH) to mark the End-Of-File (EOF).  Alternately, 
  29513. the EOF is determined by the file size recorded by the operating system. 
  29514.  
  29515. The permissible settings for this variable are either an empty string or a 
  29516. string containing only a Ctrl-Z.  When this variable is a Ctrl-Z rather than an 
  29517. empty string, the associated buffer receives special treatment when the file is 
  29518. read or written. Examples:   buffer_eof_string = "\x1a"   buffer_eof_string = 
  29519. chr(0x1a) 
  29520.  
  29521. When reading, data is read from the file into the buffer only until a Ctrl-Z 
  29522. character (ASCII decimal value 26) is read. The Ctrl-Z is not placed in the 
  29523. buffer and the rest of the file is ignored.  When writing the file, the 
  29524. contents of the buffer are written to disk with a Ctrl-Z character appended to 
  29525. the end. 
  29526.  
  29527. When this variable is an empty string the entire file, based on the size 
  29528. recorded by DOS, is read into the buffer.  No special treatment is given to 
  29529. Ctrl-Z. 
  29530.  
  29531. This variable may be modified at any time after the buffer has been created. 
  29532. However, the associated buffer must be the currently active buffer at the time 
  29533. it is modified. 
  29534.  
  29535. Since create_buffer() and therefore edit_file() create the buffer and read in 
  29536. the file as a single action you cannot affect the reading of the file by 
  29537. modifying this variable.  To recognize Ctrl-Z in a new buffer the 
  29538. default_buffer_eof_string must be set accordingly. 
  29539.  
  29540. The default value for this variable is taken from the default_buffer_eof_string 
  29541. variable at the time the buffer is created. 
  29542.  
  29543.  
  29544. ΓòÉΓòÉΓòÉ 15.2.3. buffer_eol_string ΓòÉΓòÉΓòÉ
  29545.  
  29546. buffer_eol_string   Primitive 
  29547.  
  29548. Purpose: Designates the end-of-line character sequence. 
  29549.  
  29550. ____________ 
  29551.  
  29552. Type:   str buffer_eol_string 
  29553.  
  29554. ____________ 
  29555.  
  29556. Description: 
  29557.  
  29558. Each edit buffer has a buffer_eol_string variable associated with it.  The 
  29559. value of this variable is set to the value of the default_buffer_eol_string 
  29560. variable at the time the buffer is created. 
  29561.  
  29562. The character or characters contained in the buffer_eol_string are used by the 
  29563. editor as the line termination sequence or end-of- line marker (EOL).  When the 
  29564. insert_newline() function is called this string is inserted in the text and the 
  29565. cursor moves to column 0 of the next line. The insert_newline() function is 
  29566. normally associated with the [Enter] or [Return] key. 
  29567.  
  29568. The value of buffer_eol_string may not be modified by the user.  You may 
  29569. influence its value, however, by changing the value of the 
  29570. default_buffer_eol_string variable. The value of buffer_eol_string is inherited 
  29571. from this variable at the time the buffer is created. 
  29572.  
  29573. The end of line string may be any one or two character sequence.  If two 
  29574. characters are used they may not be the same character.  Typical values for 
  29575. this variable include:  a carriage return and line feed combination, just a 
  29576. line feed or just a carriage return.  See the description of the 
  29577. default_buffer_eol_string variable for a description of this variable's default 
  29578. value. 
  29579.  
  29580. ____________ 
  29581.  
  29582. See also:  insert_newline(), default_buffer_eol_string 
  29583.  
  29584.  
  29585. ΓòÉΓòÉΓòÉ 15.2.4. buffer_filename ΓòÉΓòÉΓòÉ
  29586.  
  29587. buffer_filename   Primitive 
  29588.  
  29589. Purpose: Stores the name of the corresponding buffer disk file. 
  29590.  
  29591. ____________ 
  29592.  
  29593. Type:   str buffer_filename 
  29594.  
  29595. ____________ 
  29596.  
  29597. Description: 
  29598.  
  29599. Each edit buffer has a buffer_filename variable associated with it.  The 
  29600. variable buffer_filename contains the name of the file, including complete 
  29601. path, to which the edited buffer is intended to be saved. 
  29602.  
  29603. When the buffer is created, this variable is set to the value of the 
  29604. buffer_original_filename variable (input filename). 
  29605.  
  29606. A user written function that modifies this variable need not supply the entire 
  29607. path to the filename stored in buffer_filename. the editor will fill in the 
  29608. missing elements with the default drive and directory, as required.  If this 
  29609. variable contains an invalid drive or directory, an error is generated when an 
  29610. attempt is made to save the buffer to disk. 
  29611.  
  29612. ____________ 
  29613.  
  29614. See also:  buffer_original_filename 
  29615.  
  29616.  
  29617. ΓòÉΓòÉΓòÉ 15.2.5. buffer_flags ΓòÉΓòÉΓòÉ
  29618.  
  29619. buffer_flags   Primitive 
  29620.  
  29621. Purpose: Stores a number of buffer attributes as flags. 
  29622.  
  29623. ____________ 
  29624.  
  29625. Type:   int buffer_flags 
  29626.  
  29627. ____________ 
  29628.  
  29629. Description: 
  29630.  
  29631. Each buffer has a buffer_flags. variable associated with it.  The least 
  29632. significant 16 bits of the buffer_flags. variable describe the state of various 
  29633. attributes of the buffer.  Individual bits of buffer_flags are used by the 
  29634. editor to signify if the buffer has been modified since the last save, whether 
  29635. buffer may be modified and so on. The buffer_flags variable takes its initial 
  29636. value from the default_buffer_flags at the time the buffer is created. 
  29637.  
  29638. A number of descriptive identifiers have been defined in the standard library 
  29639. files to facilitate testing and modifying these bits.  These identifiers and 
  29640. their numeric values are given below.  Those bits which may not be modified by 
  29641. the user are noted as read-only (r/o): 
  29642.  
  29643. o BUFFER_SYSTEM 
  29644. o BUFFER_POSITION_IS_VIRTUAL 
  29645. o BUFFER_READ_ONLY 
  29646. o BUFFER_AUTOSAVE_MODIFIED 
  29647. o BUFFER_MODIFIED 
  29648. o BUFFER_OVERTYPE_MODE 
  29649. o BUFFER_EXPAND_TABS 
  29650. o BUFFER_WP_ENABLED 
  29651. o BUFFER_SNAP_TO_EOL 
  29652. o BUFFER_REAL_SPACE_ONLY 
  29653. o BUFFER_NO_UNDO 
  29654. o BUFFER_TABS_TO_SPACES 
  29655. o BUFFER_WHOLE_LINES 
  29656.  
  29657. When the bit corresponding to each of these attributes is set ( 1 ), that 
  29658. parameter is turned on.  Otherwise, the attribute is off ( 0 ). 
  29659.  
  29660. Some of the bits in this list are read-only.  You may consult the setting of 
  29661. these bits but you may not alter their state after the buffer is created. You 
  29662. may however control the value of these bits at the time the buffer is created. 
  29663.  
  29664. See create_buffer() for a description of how this is done. 
  29665.  
  29666.  
  29667. ΓòÉΓòÉΓòÉ 15.2.5.1. BUFFER_SYSTEM ΓòÉΓòÉΓòÉ
  29668.  
  29669. BUFFER_SYSTEM (r/o) (0x0001) 
  29670.  
  29671. This bit identifies the buffer as having been created for system use.  The 
  29672. contents of system buffers are not intended for editing and are not normally 
  29673. meaningful to the user.  This bit may only be modified by the system. 
  29674.  
  29675.  
  29676. ΓòÉΓòÉΓòÉ 15.2.5.2. BUFFER_POSITION_IS_VIRTUAL ΓòÉΓòÉΓòÉ
  29677.  
  29678. BUFFER_POSITION_IS_VIRTUAL (r/o) (0x0002) 
  29679.  
  29680. Tells the editor that the cursor is currently located in virtual space. 
  29681.  
  29682.  
  29683. ΓòÉΓòÉΓòÉ 15.2.5.3. BUFFER_READ_ONLY ΓòÉΓòÉΓòÉ
  29684.  
  29685. BUFFER_READ_ONLY (0x0010) 
  29686.  
  29687. This bit tells whether the file originally read into the buffer had a read-only 
  29688. file attribute.  When the editor detects that the file is read-only, it sets 
  29689. this bit.  The operating system will prevent the editor from overwriting the 
  29690. file until the file attribute is changed.  If you change the file attribute 
  29691. (see filemode()) during editing outside of the editor, you may modify this bit 
  29692. to reflect that change. 
  29693.  
  29694.  
  29695. ΓòÉΓòÉΓòÉ 15.2.5.4. BUFFER_AUTOSAVE_MODIFIED ΓòÉΓòÉΓòÉ
  29696.  
  29697. BUFFER_AUTOSAVE_MODIFIED (0x0020) 
  29698.  
  29699. This bit serves a similar purpose to the BUFFER_MODIFIED bit.  The difference 
  29700. is that BUFFER_AUTOSAVE_MODIFIED is used by the auto-save feature.  Auto-save, 
  29701. whose use is optional, automatically saves a file to disk after a specified 
  29702. period of keyboard inactivity.  This bit allows auto-save to determine if the 
  29703. file has been modified since the last auto-save or normal save operation. 
  29704.  
  29705.  
  29706. ΓòÉΓòÉΓòÉ 15.2.5.5. BUFFER_MODIFIED ΓòÉΓòÉΓòÉ
  29707.  
  29708. BUFFER_MODIFIED (0x0040) 
  29709.  
  29710. This bit identifies whether or not the buffer has been edited since the last 
  29711. save.  Resetting this bit to 0 allows exiting without being prompted to save 
  29712. changes even if the buffer has been modified. 
  29713.  
  29714.  
  29715. ΓòÉΓòÉΓòÉ 15.2.5.6. BUFFER_OVERTYPE_MODE ΓòÉΓòÉΓòÉ
  29716.  
  29717. BUFFER_OVERTYPE_MODE (0x0080) 
  29718.  
  29719. This bit indicates whether new characters typed are inserted (off) at the 
  29720. cursor position, or new characters typed overwrite (on) the characters at the 
  29721. cursor position.  This bit is consulted by the insert_key() and backspace() 
  29722. functions and determines their effect. 
  29723.  
  29724.  
  29725. ΓòÉΓòÉΓòÉ 15.2.5.7. BUFFER_EXPAND_TABS ΓòÉΓòÉΓòÉ
  29726.  
  29727. BUFFER_EXPAND_TABS (0x0100) 
  29728.  
  29729.  This bit causes tabs to be converted to spaces when writing the file, when it 
  29730. is on.  Changing the setting of this bit has no immediate effect, however. 
  29731.  
  29732.  
  29733. ΓòÉΓòÉΓòÉ 15.2.5.8. BUFFER_WP_ENABLED ΓòÉΓòÉΓòÉ
  29734.  
  29735. BUFFER_WP_ENABLED (0x0200) 
  29736.  
  29737. When the bit is on, word-wrap features are applied to the current paragraph of 
  29738. the buffer.  As text is added or deleted from the paragraph, the lines of text 
  29739. are reformatted as necessary to conform to word processing margins (see 
  29740. wp_left_margin and wp_right_margin). 
  29741.  
  29742.  
  29743. ΓòÉΓòÉΓòÉ 15.2.5.9. BUFFER_REAL_SPACE_ONLY ΓòÉΓòÉΓòÉ
  29744.  
  29745. BUFFER_REAL_SPACE_ONLY (0x0400) 
  29746.  
  29747. When set, the cursor will not enter virtual space.  If it is off, the cursor 
  29748. may enter virtual space. 
  29749.  
  29750.  
  29751. ΓòÉΓòÉΓòÉ 15.2.5.10. BUFFER_SNAP_TO_EOL ΓòÉΓòÉΓòÉ
  29752.  
  29753. BUFFER_SNAP_TO_EOL (0x0800) 
  29754.  
  29755.  When set, characters typed beyond the end of line in virtual space are moved 
  29756. backward to the end of line.  If the bit is not set, the characters remain 
  29757. where they are typed. 
  29758.  
  29759.  
  29760. ΓòÉΓòÉΓòÉ 15.2.5.11. BUFFER_NO_UNDO ΓòÉΓòÉΓòÉ
  29761.  
  29762. BUFFER_NO_UNDO (r/o) (0x1000) 
  29763.  
  29764. When a buffer is created with this bit set, the editor will not maintain a 
  29765. history of what has been modified in the file.  This means that the undo() and 
  29766. redo() features will have no effect for this buffer.  Normally this is only 
  29767. desirable for system buffers and other buffers used for temporary storage. 
  29768.  
  29769.  
  29770. ΓòÉΓòÉΓòÉ 15.2.5.12. BUFFER_TABS_TO_SPACES ΓòÉΓòÉΓòÉ
  29771.  
  29772. BUFFER_TABS_TO_SPACES. (0x2000) 
  29773.  
  29774. When set, the editor will fill in the appropriate number of real spaces instead 
  29775. of a tab. 
  29776.  
  29777.  
  29778. ΓòÉΓòÉΓòÉ 15.2.5.13. BUFFER_WHOLE_LINES ΓòÉΓòÉΓòÉ
  29779.  
  29780. BUFFER_WHOLE_LINES (0x4000) 
  29781.  
  29782. When the set, a newline is appended to the end of the file if not already 
  29783. present.  This bit is not set by default. 
  29784.  
  29785.  
  29786. ΓòÉΓòÉΓòÉ 15.2.6. buffer_last_line ΓòÉΓòÉΓòÉ
  29787.  
  29788. buffer_last_line   Primitive 
  29789.  
  29790. Purpose: Stores the number of lines currently in the buffer. 
  29791.  
  29792. ____________ 
  29793.  
  29794. Type:   int buffer_last_line 
  29795.  
  29796. ____________ 
  29797.  
  29798. Description: 
  29799.  
  29800. The buffer_last_line variable indicates the size of the buffer in lines.  This 
  29801. variable may be used to move directly to positions relative to the end of the 
  29802. buffer or to determine when you have reached the end of the buffer. 
  29803.  
  29804. This count includes the last line of the buffer even if it has not been 
  29805. terminated with an end-of-line sequence. 
  29806.  
  29807. When this value is initially calculated for large files, there can be a 
  29808. noticeable delay.  For this reason the value is not calculated until this 
  29809. variable is first used or interrogated.  Once the value has been calculated, it 
  29810. is kept updated and is then available without delay. 
  29811.  
  29812. ____________ 
  29813.  
  29814. See also:  current_line, buffer_size, buffer_offset, goto_buffer_offset() 
  29815.  
  29816.  
  29817. ΓòÉΓòÉΓòÉ 15.2.7. buffer_name ΓòÉΓòÉΓòÉ
  29818.  
  29819. buffer_name   Primitive 
  29820.  
  29821. Purpose: Provides an identifying label for the current buffer. 
  29822.  
  29823. ____________ 
  29824.  
  29825. Type:   str buffer_name 
  29826.  
  29827. ____________ 
  29828.  
  29829. Description: 
  29830.  
  29831. Each edit buffer has a buffer_name variable associated with it.  buffer_name is 
  29832. a string used as a label for the associated buffer.  This label is displayed as 
  29833. a title on the window viewing the buffer.  It is also possible to search for 
  29834. buffers with a certain buffer_name, using the next_buffer() and prev_buffer() 
  29835. functions. 
  29836.  
  29837. By default, this string is set to the base or root name of the variable 
  29838. buffer_filename when the buffer is created or when the name of the associated 
  29839. file is changed.  Changing this string value does not effect the value of 
  29840. buffer_filename, however. 
  29841.  
  29842.  
  29843. ΓòÉΓòÉΓòÉ 15.2.8. buffer_offset ΓòÉΓòÉΓòÉ
  29844.  
  29845. buffer_offset   Primitive 
  29846.  
  29847. Purpose: Tells number of characters preceding current position. 
  29848.  
  29849. ____________ 
  29850.  
  29851. Type:   int buffer_offset 
  29852.  
  29853. ____________ 
  29854.  
  29855. Description: 
  29856.  
  29857. Each edit buffer has a buffer_offset variable associated with it.  The 
  29858. buffer_offset variable stores the number of characters between the current 
  29859. position in the buffer and the beginning of the buffer. Tabs count as only one 
  29860. character in this calculation. 
  29861.  
  29862. This variable is Read-Only and may not be modified by the user or user written 
  29863. functions.  The initial value of this variable is zero. 
  29864.  
  29865. ____________ 
  29866.  
  29867. See also:  current_line, buffer_last_line, buffer_size, goto_buffer_offset() 
  29868.  
  29869.  
  29870. ΓòÉΓòÉΓòÉ 15.2.9. buffer_original_filename ΓòÉΓòÉΓòÉ
  29871.  
  29872. buffer_original_filename   Primitive 
  29873.  
  29874. Purpose: Stores the name of the file originally read into buffer. 
  29875.  
  29876. ____________ 
  29877.  
  29878. Type:   str buffer_original_filename 
  29879.  
  29880. ____________ 
  29881.  
  29882. Description: 
  29883.  
  29884. Each edit buffer has a buffer_original_filename variable associated with it. 
  29885. The variable buffer_original_filename contains the name of the file, including 
  29886. complete path, from which data was first read into the buffer. 
  29887.  
  29888. The value of this variable is set by the editor system at the time that the 
  29889. buffer is created and may not later be changed by the user. 
  29890.  
  29891. ____________ 
  29892.  
  29893. See also:  buffer_filename 
  29894.  
  29895.  
  29896. ΓòÉΓòÉΓòÉ 15.2.10. buffer_size ΓòÉΓòÉΓòÉ
  29897.  
  29898. buffer_size   Primitive 
  29899.  
  29900. Purpose: Tells the size of the buffer contents in characters. 
  29901.  
  29902. ____________ 
  29903.  
  29904. Type:   int buffer_size 
  29905.  
  29906. ____________ 
  29907.  
  29908. Description: 
  29909.  
  29910. Each edit buffer has a buffer_size variable associated with it.  The 
  29911. buffer_size variable stores the number of characters currently occupying the 
  29912. buffer. 
  29913.  
  29914. Tabs are counted as a single character. The value of buffer_size may vary from 
  29915. the size of the file on disk if alterations such as tab expansion have been 
  29916. made.  When the Ctrl-Z character is being treated as the end of file it is not 
  29917. included in this count. 
  29918.  
  29919. Unlike the variable buffer_last_line, there is never a delay in calculating 
  29920. this value regardless of the size of the file. 
  29921.  
  29922. ____________ 
  29923.  
  29924. See also: buffer_eof_string, buffer_offset, goto_buffer_offset(), 
  29925. buffer_last_line 
  29926.  
  29927.  
  29928. ΓòÉΓòÉΓòÉ 15.2.11. buffer_tabs ΓòÉΓòÉΓòÉ
  29929.  
  29930. buffer_tabs   Primitive 
  29931.  
  29932. Purpose: Contains the locations where tab stops are found. 
  29933.  
  29934. ____________ 
  29935.  
  29936. Type:   str buffer_tabs 
  29937.  
  29938. ____________ 
  29939.  
  29940. Description: 
  29941.  
  29942. Each edit buffer has a buffer_tabs variable associated with it.  This string 
  29943. stores a list of column numbers, in ascending order, at which tab stops are 
  29944. placed.  The maximum column number which may be specified in this string is 
  29945. 128.  References to higher column numbers will cause the editor to ignore the 
  29946. buffer_tabs variable and use the previous value instead. 
  29947.  
  29948. The interval between the last two tab stops on this list is used to define 
  29949. additional tab stops for columns beyond those listed. For example, if the 
  29950. buffer_tabs string were as follows:  "5  9" tab stops will be found at every 
  29951. fourth column regardless of how long the line is. 
  29952.  
  29953. This variable takes its initial value from the global variable 
  29954. default_buffer_tabs at the time the buffer is created. 
  29955.  
  29956.  
  29957. ΓòÉΓòÉΓòÉ 15.2.12. buffers_modified ΓòÉΓòÉΓòÉ
  29958.  
  29959. buffers_modified  read-only   Primitive 
  29960.  
  29961. Purpose: Tells number of edit buffers which have been altered. 
  29962.  
  29963. ____________ 
  29964.  
  29965. Type:   int buffers_modified 
  29966.  
  29967. ____________ 
  29968.  
  29969. Description: 
  29970.  
  29971. The buffers_modified variable stores the number of buffers containing edits 
  29972. which have not been saved to disk file.  When this variable has a zero value it 
  29973. may be considered safe to exit the editor without saving. 
  29974.  
  29975. This variable may only be modified by the system. 
  29976.  
  29977.  
  29978. ΓòÉΓòÉΓòÉ 15.2.13. current_buffer ΓòÉΓòÉΓòÉ
  29979.  
  29980. current_buffer   Primitive 
  29981.  
  29982. Purpose: Identifies the currently active edit buffer. 
  29983.  
  29984. ____________ 
  29985.  
  29986. Type:   bufid current_buffer 
  29987.  
  29988. ____________ 
  29989.  
  29990. Description: 
  29991.  
  29992. The buffer id for the currently active buffer is stored in current_buffer. This 
  29993. variable may be read, used in comparisons and may be assigned any valid buffer 
  29994. id.  Care should be taken in making assignments to current_buffer, however, 
  29995. since changing the current buffer changes the buffer associated with the 
  29996. current window. 
  29997.  
  29998. ____________ 
  29999.  
  30000. See also:  create_buffer(), delete_buffer(), attach_window_buffer() 
  30001.  
  30002.  
  30003. ΓòÉΓòÉΓòÉ 15.2.14. current_column ΓòÉΓòÉΓòÉ
  30004.  
  30005. current_column buffer   Primitive 
  30006.  
  30007. Purpose: Stores the column number of the current position. 
  30008.  
  30009. ____________ 
  30010.  
  30011. Type:   int current_column 
  30012.  
  30013. ____________ 
  30014.  
  30015. Description: 
  30016.  
  30017. Each edit buffer has a current_column variable associated with it.  The column 
  30018. number of the current position in the active buffer is stored in the variable 
  30019. current_column. 
  30020.  
  30021. The column count begins with column 1, which is the first column represented at 
  30022. the far left of the edit window before scrolling.  This is not a screen 
  30023. coordinate but rather a buffer location. 
  30024.  
  30025. When this value is modified by the user, the cursor moves to the column 
  30026. indicated by the new value. 
  30027.  
  30028. ____________ 
  30029.  
  30030. See also:  current_line 
  30031.  
  30032.  
  30033. ΓòÉΓòÉΓòÉ 15.2.15. current_line ΓòÉΓòÉΓòÉ
  30034.  
  30035. current_line   Primitive 
  30036.  
  30037. Purpose: Stores the line number of the current position. 
  30038.  
  30039. ____________ 
  30040.  
  30041. Type: int current_line 
  30042.  
  30043. ____________ 
  30044.  
  30045. Description: 
  30046.  
  30047. Each edit buffer has a current_line variable associated with it.  The line 
  30048. number of the current position in the active buffer is stored in the variable 
  30049. current_line. 
  30050.  
  30051. The line count begins with line 1, which is the first line of the buffer.  This 
  30052. is not a screen coordinate but rather a buffer location. 
  30053.  
  30054. When this value is modified by the user, the cursor moves to the line indicated 
  30055. by the new value.  Negative values assigned to current_line will be treated as 
  30056. 1. 
  30057.  
  30058. See also:  current_column 
  30059.  
  30060.  
  30061. ΓòÉΓòÉΓòÉ 15.2.16. current_line_length ΓòÉΓòÉΓòÉ
  30062.  
  30063. current_line_length   Primitive 
  30064.  
  30065. Purpose: Stores the length of the current line in characters. 
  30066.  
  30067. ____________ 
  30068.  
  30069. Type: int current_line_length 
  30070.  
  30071. ____________ 
  30072.  
  30073. Description: 
  30074.  
  30075. The current_line_length variable stores the number of characters in the current 
  30076. line. In this count tabs count only as a single character.  The number of 
  30077. columns occupied by the line will depend upon how many tabs the line contains. 
  30078.  
  30079. ____________ 
  30080.  
  30081. See also:  current_line_width 
  30082.  
  30083.  
  30084. ΓòÉΓòÉΓòÉ 15.2.17. current_line_offset ΓòÉΓòÉΓòÉ
  30085.  
  30086. current_line_offset   Primitive 
  30087.  
  30088. Purpose: Stores the character offset of the current line position. 
  30089.  
  30090. ____________ 
  30091.  
  30092. Type: current_line_offset 
  30093.  
  30094. ____________ 
  30095.  
  30096. Description: 
  30097.  
  30098. Each edit buffer has a current_line_offset variable associated with it.  The 
  30099. number of characters preceding the current position in the line is stored in 
  30100. the variable current_line_offset.  When the cursor is in column one this value 
  30101. will therefore be zero. 
  30102.  
  30103. This value may not be modified by the user or user written functions.  The 
  30104. variable current_column may be used to change the position in the line. 
  30105.  
  30106. ____________ 
  30107.  
  30108. See also:  current_column 
  30109.  
  30110.  
  30111. ΓòÉΓòÉΓòÉ 15.2.18. current_line_width ΓòÉΓòÉΓòÉ
  30112.  
  30113. current_line_width   Primitive 
  30114.  
  30115. Purpose: Stores the length of the current line in columns. 
  30116.  
  30117. ____________ 
  30118.  
  30119. Type: int current_line_width 
  30120.  
  30121. ____________ 
  30122.  
  30123. Description: 
  30124.  
  30125. The current_line_width variable stores the number of columns the current line 
  30126. occupies, based on current settings.  This is not a count of characters in the 
  30127. current line.  The number of characters in the line will depend upon how many 
  30128. columns are occupied by tabs. 
  30129.  
  30130. ____________ 
  30131.  
  30132. See also:  current_line_length 
  30133.  
  30134.  
  30135. ΓòÉΓòÉΓòÉ 15.2.19. default_buffer_eof_string ΓòÉΓòÉΓòÉ
  30136.  
  30137. default_buffer_eof_string   Primitive 
  30138.  
  30139. Purpose: Tells whether Ctrl-Z character gets special treatment. 
  30140.  
  30141. ____________ 
  30142.  
  30143. Type:   str default_buffer_eof_string 
  30144.  
  30145. ____________ 
  30146.  
  30147. Description: 
  30148.  
  30149. The default_buffer_eof_string variable contains the initial value of the 
  30150. buffer_eof_string variable when a new buffer is created. 
  30151.  
  30152. ____________ 
  30153.  
  30154. See also:  buffer_eof_string 
  30155.  
  30156.  
  30157. ΓòÉΓòÉΓòÉ 15.2.20. default_buffer_eol_string ΓòÉΓòÉΓòÉ
  30158.  
  30159. default_buffer_eol_string   Primitive 
  30160.  
  30161. Purpose: Designates the end-of-line character sequence. 
  30162.  
  30163. ____________ 
  30164.  
  30165. Type:   str default_buffer_eol_string 
  30166.  
  30167. ____________ 
  30168.  
  30169. Description: 
  30170.  
  30171. The default_buffer_eol_string variable contains the initial value of the 
  30172. buffer_eol_string variable when a new buffer is created. 
  30173.  
  30174. ____________ 
  30175.  
  30176. See also:  buffer_eol_string 
  30177.  
  30178.  
  30179. ΓòÉΓòÉΓòÉ 15.2.21. default_buffer_flags ΓòÉΓòÉΓòÉ
  30180.  
  30181. default_buffer_flags   Primitive 
  30182.  
  30183. Purpose: Stores a number of buffer attributes as flags. 
  30184.  
  30185. ____________ 
  30186.  
  30187. Type:   int default_buffer_flags 
  30188.  
  30189. ____________ 
  30190.  
  30191. Description: 
  30192.  
  30193. The default_buffer_flags variable contains the initial value of the 
  30194. buffer_flags variable when a new buffer created. 
  30195.  
  30196. ____________ 
  30197.  
  30198. See also:  buffer_flags 
  30199.  
  30200.  
  30201. ΓòÉΓòÉΓòÉ 15.2.22. default_buffer_tabs ΓòÉΓòÉΓòÉ
  30202.  
  30203. default_buffer_tabs   Primitive 
  30204.  
  30205. Purpose: Contains the locations where tab stops are found. 
  30206.  
  30207. ____________ 
  30208.  
  30209. Type:   str default_buffer_tabs 
  30210.  
  30211. ____________ 
  30212.  
  30213. Description: 
  30214.  
  30215. The default_buffer_tabs variable contains the initial value of the buffer_tabs 
  30216. variable when a new buffer is created. 
  30217.  
  30218. ____________ 
  30219.  
  30220. See also:  buffer_tabs 
  30221.  
  30222.  
  30223. ΓòÉΓòÉΓòÉ 15.2.23. default_visible_end_buffer ΓòÉΓòÉΓòÉ
  30224.  
  30225. default_visible_end_buffer   Primitive 
  30226.  
  30227. Purpose: Designates string representing the end of buffer. 
  30228.  
  30229. ____________ 
  30230.  
  30231. Type:   str default_visible_end_buffer 
  30232.  
  30233. ____________ 
  30234.  
  30235. Description: 
  30236.  
  30237. The default_visible_end_buffer variable contains the initial value of the 
  30238. visible_end_buffer variable when a new buffer is created. 
  30239.  
  30240. ____________ 
  30241.  
  30242. See also:  visible_end_buffer 
  30243.  
  30244.  
  30245. ΓòÉΓòÉΓòÉ 15.2.24. distance_next_tab ΓòÉΓòÉΓòÉ
  30246.  
  30247. distance_next_tab read-only   Primitive 
  30248.  
  30249. Purpose: Indicates the number of columns to next tab stop. 
  30250.  
  30251. ____________ 
  30252.  
  30253. Type:   int distance_next_tab 
  30254.  
  30255. ____________ 
  30256.  
  30257. Description: 
  30258.  
  30259. Each edit buffer has a distance_next_tab variable associated with it.  The 
  30260. number stored in distance_next_tab represents the column number of the current 
  30261. position subtracted from the column number of the tab stop to the right.  This 
  30262. gives the number of columns which must be transited to reach the next tab stop. 
  30263.  
  30264. This value is updated by the system and may not be modified by the user. 
  30265.  
  30266. ____________ 
  30267.  
  30268. See also:  distance_prev_tab 
  30269.  
  30270.  
  30271. ΓòÉΓòÉΓòÉ 15.2.25. distance_prev_tab ΓòÉΓòÉΓòÉ
  30272.  
  30273. distance_prev_tab  read-only   Primitive 
  30274.  
  30275. Purpose: Indicates the number of columns to previous tab stop. 
  30276.  
  30277. ____________ 
  30278.  
  30279. Type:   int distance_prev_tab 
  30280.  
  30281. ____________ 
  30282.  
  30283. Description: 
  30284.  
  30285. Each edit buffer has a distance_prev_tab variable associated with it.  The 
  30286. number stored in distance_prev_tab represents the column number of the tab stop 
  30287. to the left subtracted from the column number of the current position.  This 
  30288. gives the number of columns which must be transited to reach the previous tab 
  30289. stop. 
  30290.  
  30291. This value is updated by the system and may not be modified by the user. 
  30292.  
  30293. ____________ 
  30294.  
  30295. See also:  distance_next_tab 
  30296.  
  30297.  
  30298. ΓòÉΓòÉΓòÉ 15.2.26. visible_end_buffer ΓòÉΓòÉΓòÉ
  30299.  
  30300. visible_end_buffer   Primitive 
  30301.  
  30302. Purpose: Designates string representing the end of buffer. 
  30303.  
  30304. ____________ 
  30305.  
  30306. Type: str visible_end_buffer 
  30307.  
  30308. ____________ 
  30309.  
  30310. Description: Each window has a visible_end_buffer variable associated with it. 
  30311. The visible_end_buffer variable is a string to be displayed demonstrating the 
  30312. location of the end of the buffer.  This string is not saved in the file, but 
  30313. only appears on screen. 
  30314.  
  30315. Usually this string is a single character such as "\x04", which is a diamond. 
  30316. This variable takes its initial value from the global variable 
  30317. default_visible_end_buffer at the time the buffer is created. 
  30318.  
  30319. ____________ 
  30320.  
  30321. See also:   visible_newlines,visible_spaces, visible_tabs, 
  30322. visible_virtual_lines, visible_virtual_spaces 
  30323.  
  30324.  
  30325. ΓòÉΓòÉΓòÉ 15.3. Dialog Windows ΓòÉΓòÉΓòÉ
  30326.  
  30327. DAC_ 
  30328.           Dialog action codes. 
  30329. DCTRL_ 
  30330.           Constants defining dialog controls. 
  30331. DM_ 
  30332.           Constants for messages from dialog boxes. 
  30333. DRC_ 
  30334.           Constants used as callback function return values. 
  30335. DWC_ 
  30336.           Constants for dialog windows. 
  30337. callback_data 
  30338.           Contains information useful for processing in dialog callbacks. 
  30339. callback_dialog_handle 
  30340.           Contains the id of the dialog box which generated the last callback 
  30341.           message. 
  30342. callback_index 
  30343.           Contains the id of the dialog box item which generated the last 
  30344.           callback message. 
  30345. callback_msg 
  30346.           Contains the id of the event that caused the dialog callback to be 
  30347.           called. 
  30348.  
  30349.  
  30350. ΓòÉΓòÉΓòÉ 15.3.1. DCTRL_ ΓòÉΓòÉΓòÉ
  30351.  
  30352. DCTRL_   Primitive 
  30353.  
  30354. Purpose:  Constants defining dialog controls. 
  30355.  
  30356. ____________ 
  30357.  
  30358. Type:    const int DCTRL_ 
  30359.  
  30360. ____________ 
  30361.  
  30362. Description: The constants defined in the DCTRL_ section are used as parameters 
  30363. to the add_dialog_item().  They are easy to read names for the dialog controls. 
  30364.  
  30365. o DCTRL_CHECK_BOX 
  30366. o DCTRL_COMBO_BOX 
  30367. o DCTRL_DEFAULT_PUSH_BUTTON 
  30368. o DCTRL_EDIT 
  30369. o DCTRL_EDIT_KEY 
  30370. o DCTRL_GROUP_BOX 
  30371. o DCTRL_LIST_BOX 
  30372. o DCTRL_MLE 
  30373. o DCTRL_MLE_KEY 
  30374. o DCTRL_MULTI_LIST_BOX 
  30375. o DCTRL_NOTEBOOK 
  30376. o DCTRL_PUSH_BUTTON 
  30377. o DCTRL_RADIO_BUTTON 
  30378. o DCTRL_SPINBUTTON 
  30379. o DCTRL_STATIC_TEXT 
  30380. o DCTRL_TRISTATE 
  30381. o DCTRL_VALUESET 
  30382.  
  30383. ____________ 
  30384.  
  30385.  
  30386. ΓòÉΓòÉΓòÉ 15.3.2. DM_ ΓòÉΓòÉΓòÉ
  30387.  
  30388. DM_   Primitive 
  30389.  
  30390. Purpose:  Constants for messages from dialog boxes. 
  30391.  
  30392. ____________ 
  30393.  
  30394. Type:    const int DM_ 
  30395.  
  30396. ____________ 
  30397.  
  30398. Description: The constants defined in the DM_ section are the messages received 
  30399. from dialog boxes. 
  30400.  
  30401. o DM_ACTIVATE 
  30402. o DM_CANCEL 
  30403. o DM_CHANGE 
  30404. o DM_CLICK 
  30405. o DM_CLOSE 
  30406. o DM_DEACTIVATE 
  30407. o DM_DOUBLE_CLICK 
  30408. o DM_DROP_DOWN 
  30409. o DM_HELPREQUESTED 
  30410. o DM_INIT 
  30411. o DM_INVALID_PCHAR 
  30412. o DM_KEY 
  30413. o DM_KILL_FOCUS 
  30414. o DM_MENUCOMMAND 
  30415. o DM_MENUSELECT 
  30416. o DM_OK 
  30417. o DM_PAGECHANGED 
  30418. o DM_RESIZE 
  30419. o DM_SELECT 
  30420. o DM_SPIN_CHANGE 
  30421. o DM_SPIN_DOWN 
  30422. o DM_SPIN_END 
  30423. o DM_SPIN_UP 
  30424. o DM_SET_FOCUS 
  30425. o DM_VS_ENTER 
  30426. o DM_VS_HELP 
  30427. o DM_VS_SELECT 
  30428.  
  30429. ____________ 
  30430.  
  30431.  
  30432. ΓòÉΓòÉΓòÉ 15.3.3. DRC_ ΓòÉΓòÉΓòÉ
  30433.  
  30434. DRC_   Primitive 
  30435.  
  30436. Purpose:  Constants used as callback function return values. 
  30437.  
  30438. ____________ 
  30439.  
  30440. Type:    const int DRC_ 
  30441.  
  30442. ____________ 
  30443.  
  30444. Description: The constants defined in the DRC_ section are messages used as 
  30445. return values from dialog callbacks. 
  30446.  
  30447. DRC_CONTINUE 
  30448.           Passes the unprocessed message back to the operating system. 
  30449. DRC_EXIT 
  30450.           Exits the dialog. 
  30451. DRC_MSG_PROCESSED 
  30452.           Indicates that the message has been processed. 
  30453.  
  30454. ____________ 
  30455.  
  30456.  
  30457. ΓòÉΓòÉΓòÉ 15.3.4. DWC_ ΓòÉΓòÉΓòÉ
  30458.  
  30459. DWC_   Primitive 
  30460.  
  30461. Purpose:  Constants for dialog windows. 
  30462.  
  30463. ____________ 
  30464.  
  30465. Type:    const int DWC_ 
  30466.  
  30467. ____________ 
  30468.  
  30469. Description: The constants in the DWC_ section are for use in functions like 
  30470. set_dialog_window().  They are the dialog window controls. 
  30471.  
  30472. o DWC_HIDE 
  30473. o DWC_NORMALBORDER 
  30474. o DWC_POSITION 
  30475. o DWC_SHOW 
  30476. o DWC_SIZE 
  30477. o DWC_SIZEBORDER 
  30478. o DWC_STATUSBAR 
  30479. o DWC_STATUSBARSIZE 
  30480. o DWC_STATUSBARTEXT 
  30481. o DWC_STICKONTOP 
  30482. o DWC_SYS_MENU 
  30483. o DWC_TITLE 
  30484. o DWC_TO_TOP 
  30485.  
  30486. ____________ 
  30487.  
  30488.  
  30489. ΓòÉΓòÉΓòÉ 15.3.5. callback_data ΓòÉΓòÉΓòÉ
  30490.  
  30491. callback_data   Primitive 
  30492.  
  30493. Purpose: Contains information useful for processing in dialog callbacks. 
  30494.  
  30495. ____________ 
  30496.  
  30497. Type:   any callback_data 
  30498.  
  30499. ____________ 
  30500.  
  30501. Description: 
  30502.  
  30503. The callback_data handle contains data that is used when processing dialog box 
  30504. messages.  The information contained in callback_data is specific to each 
  30505. message generated by the dialog box manager.  The value of callback_data is 
  30506. valid only for the duration of the current callback function.  This variable is 
  30507. overwritten every time a dialog box callback message is generated. 
  30508.  
  30509. ____________ 
  30510.  
  30511. See also:  callback_dialog_handle, callback_index, callback_msg 
  30512.  
  30513.  
  30514. ΓòÉΓòÉΓòÉ 15.3.6. callback_dialog_handle ΓòÉΓòÉΓòÉ
  30515.  
  30516. callback_dialog_handle   Primitive 
  30517.  
  30518. Purpose: Contains the id of the dialog box which generated the last callback 
  30519. message. 
  30520.  
  30521. ____________ 
  30522.  
  30523. Type:   int callback_dialog_handle 
  30524.  
  30525. ____________ 
  30526.  
  30527. Description: 
  30528.  
  30529. The callback_dialog_handle contains the id of the dialog box that resulted in 
  30530. the callback function being called.  The value of callback_dialog_handle is 
  30531. valid only for the duration of the current callback function.  This variable is 
  30532. overwritten every time a dialog box callback message is generated. 
  30533.  
  30534. ____________ 
  30535.  
  30536. See also:  callback_data, callback_index, callback_msg 
  30537.  
  30538.  
  30539. ΓòÉΓòÉΓòÉ 15.3.7. callback_index ΓòÉΓòÉΓòÉ
  30540.  
  30541. callback_index   Primitive 
  30542.  
  30543. Purpose: Contains the id of the dialog box item which generated the last 
  30544. callback message. 
  30545.  
  30546. ____________ 
  30547.  
  30548. Type:   int callback_index 
  30549.  
  30550. ____________ 
  30551.  
  30552. Description: 
  30553.  
  30554. The callback_index variable contains the id of the dialog box control that 
  30555. resulted in the callback function being called.  The value of callback_index is 
  30556. valid only for the duration of the current callback function.  This variable is 
  30557. overwritten every time a dialog box callback message is generated. 
  30558.  
  30559. ____________ 
  30560.  
  30561. See also:  callback_dialog_handle, callback_index, callback_msg 
  30562.  
  30563.  
  30564. ΓòÉΓòÉΓòÉ 15.3.8. callback_msg ΓòÉΓòÉΓòÉ
  30565.  
  30566. callback_msg   Primitive 
  30567.  
  30568. Purpose: Contains the id of the event that caused the dialog callback to be 
  30569. called. 
  30570.  
  30571. ____________ 
  30572.  
  30573. Type:   int callback_msg 
  30574.  
  30575. ____________ 
  30576.  
  30577. Description: 
  30578.  
  30579. The callback_msg variable contains the message id that resulted in the callback 
  30580. function being called.  The value of callback_msg is valid only for the 
  30581. duration of the current callback function.  This variable is overwritten every 
  30582. time a dialog box callback message is generated. 
  30583.  
  30584. See the DM_ section for a list of possible messages that are sent to a user 
  30585. dialog callback function. 
  30586.  
  30587. ____________ 
  30588.  
  30589. See also:  callback_dialog_handle, callback_index, callback_msg 
  30590.  
  30591.  
  30592. ΓòÉΓòÉΓòÉ 15.3.9. DAC_ ΓòÉΓòÉΓòÉ
  30593.  
  30594. DAC_   Primitive 
  30595.  
  30596. Purpose: Dialog action codes. 
  30597.  
  30598. ____________ 
  30599.  
  30600. The following table lists all the valid dialog action codes(DAC) generated by 
  30601. the dialog manager. 
  30602.  
  30603. o DAC_ADD_INDEX 
  30604. o DAC_ADD_ITEM 
  30605. o DAC_APPEND_PAGE 
  30606. o DAC_BG_COLOR 
  30607. o DAC_CHECK 
  30608. o DAC_CLEAR 
  30609. o DAC_CLEAR_LIST 
  30610. o DAC_COPY 
  30611. o DAC_COUNT_ITEMS 
  30612. o DAC_COUNT_LINES 
  30613. o DAC_COUNT_SELECTED 
  30614. o DAC_CUT 
  30615. o DAC_DELETE_INDEX 
  30616. o DAC_DELETE_ITEM 
  30617. o DAC_DESELECT_INDEX 
  30618. o DAC_DESELECT_INDEX_RANGE 
  30619. o DAC_DESELECT_ITEMADDINDEX 
  30620. o DAC_DISABLE 
  30621. o DAC_EDIT_KEY_TEXT 
  30622. o DAC_EDIT_TEXT 
  30623. o DAC_ENABLE 
  30624. o DAC_FG_COLOR 
  30625. o DAC_FIND 
  30626. o DAC_FIRST_INDEX 
  30627. o DAC_FIRST_ITEM 
  30628. o DAC_FONT 
  30629. o DAC_GET_INDEX_ITEM 
  30630. o DAC_GET_LINE 
  30631. o DAC_GRAY_CHECK 
  30632. o DAC_HIDE 
  30633. o DAC_INSERT_PAGE_AFTER 
  30634. o DAC_INSERT_PAGE_AT_TOP 
  30635. o DAC_INSERT_PAGE_BEFORE 
  30636. o DAC_LINEDOWN 
  30637. o DAC_LINEUP 
  30638. o DAC_MODIFIED 
  30639. o DAC_NEXT_INDEX 
  30640. o DAC_NEXT_ITEM 
  30641. o DAC_NO_SORT 
  30642. o DAC_PAGEDOWN 
  30643. o DAC_PAGEUP 
  30644. o DAC_PASTE 
  30645. o DAC_POSITION 
  30646. o DAC_SCROLL_HORIZ 
  30647. o DAC_SCROLL_VERT 
  30648. o DAC_SELECTED_RANGE 
  30649. o DAC_SELECTED_TEXT 
  30650. o DAC_SELECTION 
  30651. o DAC_SELECT_INDEX 
  30652. o DAC_SELECT_INDEX_RANGE 
  30653. o DAC_SELECT_ITEM 
  30654. o DAC_SETFOCUS 
  30655. o DAC_SET_BACKPAGES 
  30656. o DAC_SET_BINDER_TYPE 
  30657. o DAC_SET_BUTTON_SIZE 
  30658. o DAC_SET_MAJOR_TAB_SIZE 
  30659. o DAC_SET_MINOR_TAB_SIZE 
  30660. o DAC_SET_STATUS_ALIGN 
  30661. o DAC_SET_TAB_ALIGN 
  30662. o DAC_SET_TAB_LOCATION 
  30663. o DAC_SET_TAB_TYPE 
  30664. o DAC_SET_TEXT_LEN 
  30665. o DAC_SHOW 
  30666. o DAC_SIZE 
  30667. o DAC_SORT_ASCENDING 
  30668. o DAC_SORT_DESCENDING 
  30669. o DAC_SPIN_DOWN 
  30670. o DAC_SPIN_LIMITS 
  30671. o DAC_SPIN_OVERRIDELIMITS 
  30672. o DAC_SPIN_TEXTLIMIT 
  30673. o DAC_SPIN_UP 
  30674. o DAC_SPIN_VALUE 
  30675. o DAC_TEXT 
  30676. o DAC_UNCHECK 
  30677. o DAC_UNDO 
  30678. o DAC_UNSELECT_ITEM 
  30679. o DAC_VS_QUERY_ITEM 
  30680. o DAC_VS_QUERY_METRICS 
  30681. o DAC_VS_QUERY_SELECTED 
  30682. o DAC_VS_SELECT_ITEM 
  30683. o DAC_VS_SET_ITEM 
  30684. o DAC_VS_SET_METRICS 
  30685.  
  30686.  
  30687. ΓòÉΓòÉΓòÉ 15.3.9.1. DAC_ADD_INDEX ΓòÉΓòÉΓòÉ
  30688.  
  30689. DAC_ADD_INDEX 
  30690.  
  30691. The DAC_ADD_INDEX flag adds a new item to a list box at the specified offset 
  30692. from the begining of the list.  The offset is a 0 based value that would add an 
  30693. item to the top of the list if a 0 index is specified. 
  30694.  
  30695. The following example adds an element to a list box before the 6th item in the 
  30696. list. 
  30697.    set_dialog_item( dlgid, listbox_index, DAC_ADD_INDEX, "New Item", 5 ); 
  30698.  
  30699.  
  30700. ΓòÉΓòÉΓòÉ 15.3.9.2. DAC_ADD_ITEM ΓòÉΓòÉΓòÉ
  30701.  
  30702. DAC_ADD_ITEM 
  30703.  
  30704. The DAC_ADD_ITEM flag adds an item to the end of a list box or combo box. 
  30705.  
  30706. The following example adds "New Item" to the end of a list box: 
  30707.    set_dialog_item(dlgid, listbox_index, DAC_ADD_ITEM, "New Item") 
  30708.  
  30709.  
  30710. ΓòÉΓòÉΓòÉ 15.3.9.3. DAC_APPEND_PAGE ΓòÉΓòÉΓòÉ
  30711.  
  30712. DAC_APPEND_PAGE 
  30713.  
  30714. The DAC_APPEND_PAGE flag appends a page to a notebook control. The 
  30715. DAC_APPEND_PAGE flag takes one required parameter and five optional parameters. 
  30716.  
  30717. Parameters: 
  30718.  
  30719. o Parameter 1(required): Page id returned from the create_page() function. 
  30720. o Parameter 2(optional): Text to be displayed on the status line. 
  30721. o Parameter 3(optional): Text to be displayed on the for the page. 
  30722. o Parameter 4(optional): Type of tab.  See DAC_SET_TAB_TYPE. 
  30723. o Parameter 5(optional): Display status text (TRUE) or not (FALSE) 
  30724. o Parameter 6(optional): Auto page size on (TRUE) or off (FALSE). Resizes the 
  30725.   notebook page whenever the notebook control is resized. 
  30726.  
  30727. The following example appends a page to an existing notebook control. The page 
  30728. is created with a status line with the text "Status line text" initially 
  30729. displayed on the status line.  The tab is displayed as a major tab with the 
  30730. text "Tab Text". 
  30731.    set_dialog_item(dlgid, notebook_index, DAC_APPEND_PAGE,            page_id, 
  30732. "Status line text",            "Tab Text", NBTAB_MAJOR, TRUE) 
  30733.  
  30734. The next example simply creates a default page with no status bar and no major 
  30735. or minor tab. 
  30736.    set_dialog_item(dlgid, notebook_index, DAC_APPEND_PAGE, page_id) 
  30737.  
  30738.  
  30739. ΓòÉΓòÉΓòÉ 15.3.9.4. DAC_CHECK ΓòÉΓòÉΓòÉ
  30740.  
  30741. DAC_CHECK 
  30742.  
  30743. The DAC_CHECK flag sets a check mark on a tristate, checkbox, or radio button. 
  30744.  
  30745. Example: 
  30746.    set_dialog_item(dlgid, control_index, DAC_CHECK) 
  30747.  
  30748.  
  30749. ΓòÉΓòÉΓòÉ 15.3.9.5. DAC_CLEAR ΓòÉΓòÉΓòÉ
  30750.  
  30751. DAC_CLEAR 
  30752.  
  30753. Example: 
  30754.    set_dialog_item(dlgd, control_index, DAC_CLEAR) 
  30755.  
  30756.  
  30757. ΓòÉΓòÉΓòÉ 15.3.9.6. DAC_CLEAR_LIST ΓòÉΓòÉΓòÉ
  30758.  
  30759. DAC_CLEAR_LIST 
  30760.  
  30761. The DAC_CLEAR_LIST flag clears all items from a listbox. 
  30762.  
  30763. Example: 
  30764.    set_dialog_item(dlgd, listbox_index, DAC_CLEAR_LIST) 
  30765.  
  30766.  
  30767. ΓòÉΓòÉΓòÉ 15.3.9.7. DAC_COPY ΓòÉΓòÉΓòÉ
  30768.  
  30769. DAC_COPY 
  30770.  
  30771. Example: 
  30772.    set_dialog_item(dlgd, control_index, DAC_COPY) 
  30773.  
  30774.  
  30775. ΓòÉΓòÉΓòÉ 15.3.9.8. DAC_COUNT_ITEMS ΓòÉΓòÉΓòÉ
  30776.  
  30777. DAC_COUNT_ITEMS 
  30778.  
  30779. Example: 
  30780.    set_dialog_item(dlgd, control_index, DAC_COUNT_ITEMS) 
  30781.  
  30782.  
  30783. ΓòÉΓòÉΓòÉ 15.3.9.9. DAC_COUNT_LINES ΓòÉΓòÉΓòÉ
  30784.  
  30785. DAC_COUNT_LINES 
  30786.  
  30787. Example: 
  30788.    set_dialog_item(dlgd, control_index, DAC_COUNT_LINES) 
  30789.  
  30790.  
  30791. ΓòÉΓòÉΓòÉ 15.3.9.10. DAC_COUNT_SELECTED ΓòÉΓòÉΓòÉ
  30792.  
  30793. DAC_COUNT_SELECTED 
  30794.  
  30795. Example: 
  30796.    set_dialog_item(dlgd, control_index, DAC_COUNT_SELECTED) 
  30797.  
  30798.  
  30799. ΓòÉΓòÉΓòÉ 15.3.9.11. DAC_CUT ΓòÉΓòÉΓòÉ
  30800.  
  30801. DAC_CUT 
  30802.  
  30803. Example: 
  30804.    set_dialog_item(dlgd, control_index, DAC_CUT) 
  30805.  
  30806.  
  30807. ΓòÉΓòÉΓòÉ 15.3.9.12. DAC_DELETE_INDEX ΓòÉΓòÉΓòÉ
  30808.  
  30809. DAC_DELETE_INDEX 
  30810.  
  30811. The DAC_DELETE_INDEX flag removes an item from a list box at the specified 
  30812. offset from the begining of the list.  If no value for the index parameter is 
  30813. specified the entire list box is cleared.  The index specified is a 0 based 
  30814. index. 
  30815.  
  30816. The following example removes the 6th element from a list box: 
  30817.    set_dialog_item(dlgid, listbox_index, DAC_DELETE_INDEX, 5) 
  30818.  
  30819. The following example removes all elements from a list box: 
  30820.    set_dialog_item(dlgid, listbox_index, DAC_DELETE_INDEX) 
  30821.  
  30822.  
  30823. ΓòÉΓòÉΓòÉ 15.3.9.13. DAC_DELETE_ITEM ΓòÉΓòÉΓòÉ
  30824.  
  30825. DAC_DELETE_ITEM 
  30826.  
  30827. The DAC_DELETE_ITEM flag removes a given string or all the items from a list 
  30828. box or combo box. 
  30829.  
  30830. The following example removes "New Item" from a list box: 
  30831.    set_dialog_item(dlgid, listbox_index, DAC_DELETE_ITEM, "New Item") 
  30832.  
  30833. The following example removes all items from a list box: 
  30834.    set_dialog_item(dlgid, listbox_index, DAC_DELETE_ITEM) 
  30835.  
  30836.  
  30837. ΓòÉΓòÉΓòÉ 15.3.9.14. DAC_DESELECT_ITEM ΓòÉΓòÉΓòÉ
  30838.  
  30839. DAC_DESELECT_ITEM 
  30840.  
  30841. The DAC_DESELECT_ITEM flag removes the selection emphasis from an item in a 
  30842. multiple or single select list box. 
  30843.  
  30844. The following example removes the selection from a single select list box (this 
  30845. will also remove all selections from a multiple select list box): 
  30846.    set_dialog_item(dlgid, listbox_index, DAC_DESELECT_ITEM) 
  30847.  
  30848. The following example removes the selection emphasis from the multiple select 
  30849. list box item "New Item": 
  30850.    set_dialog_item(dlgid, listbox_index, DAC_DESELECT_ITEM, "New Item") 
  30851.  
  30852.  
  30853. ΓòÉΓòÉΓòÉ 15.3.9.15. DAC_DESELECT_INDEX ΓòÉΓòÉΓòÉ
  30854.  
  30855. DAC_DESELECT_INDEX 
  30856.  
  30857. The DAC_DESELECT_INDEX flag removes the selection emphasis of a list box item 
  30858. given a zero based index. 
  30859.  
  30860. The following example removes the selection from a single select list box (this 
  30861. will also remove all selections from a multiple select list box): 
  30862.    set_dialog_item(dlgid, listbox_index, DAC_DESELECT_INDEX) 
  30863.  
  30864. The following example removes the selection emphasis from the 6th item in a 
  30865. multiple select list box: 
  30866.    set_dialog_item(dlgid, listbox_index, DAC_DESELECT_INDEX, 5) 
  30867.  
  30868.  
  30869. ΓòÉΓòÉΓòÉ 15.3.9.16. DAC_EDIT_KEY_TEXT ΓòÉΓòÉΓòÉ
  30870.  
  30871. DAC_EDIT_KEY_TEXT 
  30872.  
  30873. Example: 
  30874.    set_dialog_item(dlgd, control_index, DAC_EDIT_KEY_TEXT) 
  30875.  
  30876.  
  30877. ΓòÉΓòÉΓòÉ 15.3.9.17. DAC_EDIT_TEXT ΓòÉΓòÉΓòÉ
  30878.  
  30879. DAC_EDIT_TEXT 
  30880.  
  30881. Example: 
  30882.    set_dialog_item(dlgd, control_index, DAC_EDIT_TEXT) 
  30883.  
  30884.  
  30885. ΓòÉΓòÉΓòÉ 15.3.9.18. DAC_FIND ΓòÉΓòÉΓòÉ
  30886.  
  30887. DAC_FIND 
  30888.  
  30889. Example: 
  30890.    set_dialog_item(dlgd, control_index, DAC_FIND) 
  30891.  
  30892.  
  30893. ΓòÉΓòÉΓòÉ 15.3.9.19. DAC_FIRST_INDEX ΓòÉΓòÉΓòÉ
  30894.  
  30895. DAC_FIRST_INDEX 
  30896.  
  30897. Example: 
  30898.    set_dialog_item(dlgd, control_index, DAC_FIRST_INDEX) 
  30899.  
  30900.  
  30901. ΓòÉΓòÉΓòÉ 15.3.9.20. DAC_FIRST_ITEM ΓòÉΓòÉΓòÉ
  30902.  
  30903. DAC_FIRST_ITEM 
  30904.  
  30905. Example: 
  30906.    set_dialog_item(dlgd, control_index, DAC_FIRST_ITEM) 
  30907.  
  30908.  
  30909. ΓòÉΓòÉΓòÉ 15.3.9.21. DAC_FONT ΓòÉΓòÉΓòÉ
  30910.  
  30911. DAC_FONT 
  30912.  
  30913. Example: 
  30914.    set_dialog_item(dlgd, control_index, DAC_FONT) 
  30915.  
  30916.  
  30917. ΓòÉΓòÉΓòÉ 15.3.9.22. DAC_GET_INDEX_ITEM ΓòÉΓòÉΓòÉ
  30918.  
  30919. DAC_GET_INDEX_ITEM 
  30920.  
  30921. Example: 
  30922.    set_dialog_item(dlgd, control_index, DAC_GET_INDEX_ITEM) 
  30923.  
  30924.  
  30925. ΓòÉΓòÉΓòÉ 15.3.9.23. DAC_GET_LINE ΓòÉΓòÉΓòÉ
  30926.  
  30927. DAC_GET_LINE 
  30928.  
  30929. Example: 
  30930.    set_dialog_item(dlgd, control_index, DAC_GET_LINE) 
  30931.  
  30932.  
  30933. ΓòÉΓòÉΓòÉ 15.3.9.24. DAC_GRAY_CHECK ΓòÉΓòÉΓòÉ
  30934.  
  30935. DAC_GRAY_CHECK 
  30936.  
  30937. The DAC_GRAY_CHECK flag grays a tristate, checkbox, or radio button. 
  30938.  
  30939. Example: 
  30940.    set_dialog_item(dlgid, control_index, DAC_GRAY_CHECK) 
  30941.  
  30942.  
  30943. ΓòÉΓòÉΓòÉ 15.3.9.25. DAC_LINEDOWN ΓòÉΓòÉΓòÉ
  30944.  
  30945. DAC_LINEDOWN 
  30946.  
  30947. Example: 
  30948.    set_dialog_item(dlgd, control_index, DAC_LINEDOWN) 
  30949.  
  30950.  
  30951. ΓòÉΓòÉΓòÉ 15.3.9.26. DAC_LINEUP ΓòÉΓòÉΓòÉ
  30952.  
  30953. DAC_LINEUP 
  30954.  
  30955. Example: 
  30956.    set_dialog_item(dlgd, control_index, DAC_LINEUP) 
  30957.  
  30958.  
  30959. ΓòÉΓòÉΓòÉ 15.3.9.27. DAC_MODIFIED ΓòÉΓòÉΓòÉ
  30960.  
  30961. DAC_MODIFIED 
  30962.  
  30963. Example: 
  30964.    set_dialog_item(dlgd, control_index, DAC_MODIFIED) 
  30965.  
  30966.  
  30967. ΓòÉΓòÉΓòÉ 15.3.9.28. DAC_NEXT_INDEX ΓòÉΓòÉΓòÉ
  30968.  
  30969. DAC_NEXT_INDEX 
  30970.  
  30971. Example: 
  30972.    set_dialog_item(dlgd, control_index, DAC_NEXT_INDEX) 
  30973.  
  30974.  
  30975. ΓòÉΓòÉΓòÉ 15.3.9.29. DAC_NEXT_ITEM ΓòÉΓòÉΓòÉ
  30976.  
  30977. DAC_NEXT_ITEM 
  30978.  
  30979. Example: 
  30980.    set_dialog_item(dlgd, control_index, DAC_NEXT_ITEM) 
  30981.  
  30982.  
  30983. ΓòÉΓòÉΓòÉ 15.3.9.30. DAC_NO_SORT ΓòÉΓòÉΓòÉ
  30984.  
  30985. DAC_NO_SORT 
  30986.  
  30987. The DAC_NO_SORT flag indicates that items added to a list box are not sorted. 
  30988.  
  30989. The following example sets the no sort flag for the list box: 
  30990.    set_dialog_item(dlgid, listbox_index, DAC_SORT_DESCENDING) 
  30991.  
  30992.  
  30993. ΓòÉΓòÉΓòÉ 15.3.9.31. DAC_PAGEDOWN ΓòÉΓòÉΓòÉ
  30994.  
  30995. DAC_PAGEDOWN 
  30996.  
  30997. Example: 
  30998.    set_dialog_item(dlgd, control_index, DAC_PAGEDOWN) 
  30999.  
  31000.  
  31001. ΓòÉΓòÉΓòÉ 15.3.9.32. DAC_PAGEUP ΓòÉΓòÉΓòÉ
  31002.  
  31003. DAC_PAGEUP 
  31004.  
  31005. Example: 
  31006.    set_dialog_item(dlgd, control_index, DAC_PAGEUP) 
  31007.  
  31008.  
  31009. ΓòÉΓòÉΓòÉ 15.3.9.33. DAC_PASTE ΓòÉΓòÉΓòÉ
  31010.  
  31011. DAC_PASTE 
  31012.  
  31013. Example: 
  31014.    set_dialog_item(dlgd, control_index, DAC_PASTE) 
  31015.  
  31016.  
  31017. ΓòÉΓòÉΓòÉ 15.3.9.34. DAC_SCROLL_HORIZ ΓòÉΓòÉΓòÉ
  31018.  
  31019. DAC_SCROLL_HORIZ 
  31020.  
  31021. Example: 
  31022.    set_dialog_item(dlgd, control_index, DAC_SCROLL_HORIZ) 
  31023.  
  31024.  
  31025. ΓòÉΓòÉΓòÉ 15.3.9.35. DAC_SCROLL_VERT ΓòÉΓòÉΓòÉ
  31026.  
  31027. DAC_SCROLL_VERT 
  31028.  
  31029. Example: 
  31030.    set_dialog_item(dlgd, control_index, DAC_SCROLL_VERT) 
  31031.  
  31032.  
  31033. ΓòÉΓòÉΓòÉ 15.3.9.36. DAC_SELECT_INDEX ΓòÉΓòÉΓòÉ
  31034.  
  31035. DAC_SELECT_INDEX 
  31036.  
  31037. The DAC_SELECT_INDEX flag selects an item from a list box given an index into 
  31038. the list.  The index specified is a 0 based index, so if 0 where specified as 
  31039. the index the first item in the list will be selected. 
  31040.  
  31041. The following example attempts to select the 6th element from a list box: 
  31042.    set_dialog_item(dlgid, listbox_index, DAC_SELECT_INDEX, 5) 
  31043.  
  31044.  
  31045. ΓòÉΓòÉΓòÉ 15.3.9.37. DAC_SELECT_ITEM ΓòÉΓòÉΓòÉ
  31046.  
  31047. DAC_SELECT_ITEM 
  31048.  
  31049. The DAC_SELECT_ITEM flag selects an item from a list box.  This action returns 
  31050. TRUE if the selection was changed otherwise it returns FALSE. 
  31051.  
  31052. The following example attempts to select the "New Item" string exactly as 
  31053. entered from a list box: 
  31054.    set_dialog_item(dlgid, listbox_index, DAC_SELECT_ITEM, "New Item", TRUE) 
  31055.  
  31056. The following example selects any string from the list box that contains the 
  31057. substring "New Item" text string: 
  31058.    set_dialog_item(dlgid, listbox_index, DAC_SELECT_ITEM, "New Item", FALSE) 
  31059.  
  31060.  
  31061. ΓòÉΓòÉΓòÉ 15.3.9.38. DAC_SELECTED_RANGE ΓòÉΓòÉΓòÉ
  31062.  
  31063. DAC_SELECTED_RANGE 
  31064.  
  31065. Example: 
  31066.    set_dialog_item(dlgd, control_index, DAC_SELECTED_RANGE) 
  31067.  
  31068.  
  31069. ΓòÉΓòÉΓòÉ 15.3.9.39. DAC_SELECTED_TEXT ΓòÉΓòÉΓòÉ
  31070.  
  31071. DAC_SELECTED_TEXT 
  31072.  
  31073. Example: 
  31074.    set_dialog_item(dlgd, control_index, DAC_SELECTED_TEXT) 
  31075.  
  31076.  
  31077. ΓòÉΓòÉΓòÉ 15.3.9.40. DAC_SELECTION ΓòÉΓòÉΓòÉ
  31078.  
  31079. DAC_SELECTION 
  31080.  
  31081. Example: 
  31082.    set_dialog_item(dlgd, control_index, DAC_SELECTION) 
  31083.  
  31084.  
  31085. ΓòÉΓòÉΓòÉ 15.3.9.41. DAC_SET_BACKPAGES ΓòÉΓòÉΓòÉ
  31086.  
  31087. DAC_SET_BACKPAGES 
  31088.  
  31089. The DAC_SET_STATUS_ALIGN flag sets the location of the backpages on the 
  31090. notebook. Backpages are where the recessed edges of the notebook intersect. 
  31091. notebook       sets where back pages are shown 
  31092.  
  31093. The following values are used for setting the back page intersection: 
  31094.  
  31095. o 0 - BottomRight 
  31096. o 1 - BottomLeft 
  31097. o 2 - TopRight 
  31098. o 3 - TopLeft 
  31099.  
  31100. The following example sets the back pages intersection to the top right: 
  31101.    set_dialog_item(dlgid, notebook_index, DAC_SET_BACKPAGES, 2 ) 
  31102.  
  31103.  
  31104. ΓòÉΓòÉΓòÉ 15.3.9.42. DAC_SET_BINDER_TYPE ΓòÉΓòÉΓòÉ
  31105.  
  31106. DAC_SET_BINDER_TYPE 
  31107.  
  31108. The DAC_SET_BINDER_TYPE flag sets the type of binder the notebook control will 
  31109. display. The binder type can be either solid or spiral. 
  31110.  
  31111. The following example sets a spiral binder type for a notebook control: 
  31112.    set_dialog_item(dlgid, notebook_index, DAC_SET_BINDER_TYPE, 1) 
  31113.  
  31114. The following example sets a solid binder type for a notebook control: 
  31115.    set_dialog_item(dlgid, notebook_index, DAC_SET_BINDER_TYPE, 0) 
  31116.  
  31117.  
  31118. ΓòÉΓòÉΓòÉ 15.3.9.43. DAC_SET_BUTTON_SIZE ΓòÉΓòÉΓòÉ
  31119.  
  31120. DAC_SET_BUTTON_SIZE 
  31121.  
  31122. The DAC_SET_BUTTON_SIZE flag sets the width and height in pixels of the arrow 
  31123. buttons displayed on a notebook control. 
  31124.  
  31125. The following example sets the width of the arrow buttons to 32 pixels and the 
  31126. height to 40 pixels for the particular notebook control displayed in a dialog 
  31127. box: 
  31128.    set_dialog_item(dlgid, notebook_index, DAC_SET_BUTTON_SIZE, 32, 40) 
  31129.  
  31130.  
  31131. ΓòÉΓòÉΓòÉ 15.3.9.44. DAC_SET_MAJOR_TAB_SIZE ΓòÉΓòÉΓòÉ
  31132.  
  31133. DAC_SET_MAJOR_TAB_SIZE 
  31134.  
  31135. The DAC_SET_MAJOR_TAB_SIZE flag sets the width and height in pixels of the 
  31136. major tabs displayed on a notebook control. 
  31137.  
  31138. The following example sets the width of the major tabs to 50 pixels and the 
  31139. height to 30 pixels for the particular notebook control displayed in a dialog 
  31140. box: 
  31141.    set_dialog_item(dlgid, notebook_index, DAC_SET_MAJOR_TAB_SIZE, 50, 30) 
  31142.  
  31143.  
  31144. ΓòÉΓòÉΓòÉ 15.3.9.45. DAC_SET_MINOR_TAB_SIZE ΓòÉΓòÉΓòÉ
  31145.  
  31146. The DAC_SET_MINOR_TAB_SIZE sets the width and height in pixels of the minor 
  31147. tabs displayed on a notebook control. 
  31148.  
  31149. The following example sets the width of the minor tabs to 150 pixels and the 
  31150. height to 30 pixels for the particular notebook control displayed in a dialog 
  31151. box: 
  31152.    set_dialog_item(dlgid, notebook_index, DAC_SET_MINOR_TAB_SIZE, 150, 30) 
  31153.  
  31154.  
  31155. ΓòÉΓòÉΓòÉ 15.3.9.46. DAC_SET_STATUS_ALIGN ΓòÉΓòÉΓòÉ
  31156.  
  31157. DAC_SET_STATUS_ALIGN 
  31158.  
  31159. The DAC_SET_STATUS_ALIGN flag sets the alignment of the status line displayed 
  31160. on a notebook control. 
  31161.  
  31162. The following values are used for setting the status line alignment: 
  31163.  
  31164. o 0 - left 
  31165. o 1 - center 
  31166. o 2 - right 
  31167.  
  31168. The following example sets the status line alignment to center: 
  31169.    set_dialog_item(dlgid, notebook_index, DAC_SET_STATUS_ALIGN, 1 ) 
  31170.  
  31171.  
  31172. ΓòÉΓòÉΓòÉ 15.3.9.47. DAC_SET_TAB_ALIGN ΓòÉΓòÉΓòÉ
  31173.  
  31174. DAC_SET_TAB_ALIGN 
  31175.  
  31176. The DAC_SET_TAB_ALIGN flag sets the alignment of text within the tabs displayed 
  31177. on the notebook control. 
  31178.  
  31179. The following values are used for setting the tabs text alignment: 
  31180.  
  31181. o 0 - left 
  31182. o 1 - center 
  31183. o 2 - right 
  31184.  
  31185. The following example sets the text alignment to center of the tabs: 
  31186.    set_dialog_item(dlgid, notebook_index, DAC_SET_TAB_ALIGN, 1 ) 
  31187.  
  31188.  
  31189. ΓòÉΓòÉΓòÉ 15.3.9.48. DAC_SET_TAB_LOCATION ΓòÉΓòÉΓòÉ
  31190.  
  31191. DAC_SET_TAB_LOCATION 
  31192.  
  31193. The DAC_SET_TAB_LOCATION flag sets the position of major tabs on the notebook 
  31194. control. The minor tabs are displayed at a position relative to where the major 
  31195. tabs are displayed. 
  31196.  
  31197. The following values are used for setting the major tab locations: 
  31198.  
  31199. o 0 - left 
  31200. o 1 - right 
  31201. o 2 - top 
  31202. o 3 - bottom 
  31203.  
  31204. The following example sets the position of the major tabs to the left of the 
  31205. notebook: 
  31206.    set_dialog_item(dlgid, notebook_index, DAC_SET_TAB_LOCATION, 0 ) 
  31207.  
  31208.  
  31209. ΓòÉΓòÉΓòÉ 15.3.9.49. DAC_SET_TAB_TYPE ΓòÉΓòÉΓòÉ
  31210.  
  31211. DAC_SET_TAB_TYPE 
  31212.  
  31213. The DAC_SET_TAB_TYPE flag sets the shape of major and minor tabs displayed for 
  31214. a notebook control.  Tabs can be either square, rounded, or polygon. 
  31215.  
  31216. The following example sets the shape of tabs to square for a notebook control: 
  31217.    set_dialog_item(dlgid, notebook_index, DAC_SET_TAB_TYPE, 0) 
  31218.  
  31219. The following example sets the shape of tabs to rounded for a notebook control: 
  31220.    set_dialog_item(dlgid, notebook_index, DAC_SET_TAB_TYPE, 1) 
  31221.  
  31222. The following example sets the shape of tabs to polygon for a notebook control: 
  31223.    set_dialog_item(dlgid, notebook_index, DAC_SET_TAB_TYPE, 2) 
  31224.  
  31225.  
  31226. ΓòÉΓòÉΓòÉ 15.3.9.50. DAC_SET_TEXT_LEN ΓòÉΓòÉΓòÉ
  31227.  
  31228. DAC_SET_TEXT_LEN 
  31229.  
  31230. The DAC_SET_TEXT flag sets the maximum size of text entered into an edit 
  31231. control. 
  31232.  
  31233. The following example sets the maximum number of characters allowed in the edit 
  31234. field to 20: 
  31235.    set_dialog_item(dlgid, control_index, DAC_SET_TEXT_LEN, 20) 
  31236.  
  31237.  
  31238. ΓòÉΓòÉΓòÉ 15.3.9.51. DAC_SORT_ASCENDING ΓòÉΓòÉΓòÉ
  31239.  
  31240. DAC_SORT_ASCENDING 
  31241.  
  31242. The DAC_SORT_ASCENDING flag indicates that items added to a list box are sorted 
  31243. in ascending order. 
  31244.  
  31245. The following example sets the ascending sort flag for the list box: 
  31246.    set_dialog_item(dlgid, listbox_index, DAC_SORT_ASCENDING) 
  31247.  
  31248.  
  31249. ΓòÉΓòÉΓòÉ 15.3.9.52. DAC_SORT_DESCENDING ΓòÉΓòÉΓòÉ
  31250.  
  31251. DAC_SORT_DESCENDING 
  31252.  
  31253. The DAC_SORT_DESCENDING flag indicates that items added to a list box are 
  31254. sorted in descending order. 
  31255.  
  31256. The following example sets the descending sort flag for the list box: 
  31257.    set_dialog_item(dlgid, listbox_index, DAC_SORT_DESCENDING) 
  31258.  
  31259.  
  31260. ΓòÉΓòÉΓòÉ 15.3.9.53. DAC_SPIN_DOWN ΓòÉΓòÉΓòÉ
  31261.  
  31262. DAC_SPIN_DOWN 
  31263.  
  31264. This message causes the spin control to show the previous value. 
  31265.  
  31266. Parameters: A long data value that determines how many units to spin backwards. 
  31267.  
  31268.  
  31269. ΓòÉΓòÉΓòÉ 15.3.9.54. DAC_SPIN_LIMITS ΓòÉΓòÉΓòÉ
  31270.  
  31271. DAC_SPIN_LIMITS 
  31272.  
  31273. This message causes the spin control to set or reset numeric limits.  The 
  31274. current value of the spin control is set to the nearest limit if it is out of 
  31275. the range of the new limits. 
  31276.  
  31277. Parameters: 
  31278.  
  31279. o Parameter 1(int): Upper limit. 
  31280. o Parameter 2(int): Lower limit. 
  31281.  
  31282.  
  31283. ΓòÉΓòÉΓòÉ 15.3.9.55. DAC_SPIN_TEXTLIMIT ΓòÉΓòÉΓòÉ
  31284.  
  31285. DAC_SPIN_TEXTLIMIT 
  31286.  
  31287. This message sets the maximum number of characters allowed in the spin control. 
  31288. The default limit of the spin field is 255 characters, which is the default. 
  31289.  
  31290. Parameters: 
  31291.  
  31292. o Parameter 1(int): numeric value. 
  31293.  
  31294.  
  31295. ΓòÉΓòÉΓòÉ 15.3.9.56. DAC_SPIN_OVERRIDELIMITS ΓòÉΓòÉΓòÉ
  31296.  
  31297. DAC_SPIN_OVERRIDLIMITS 
  31298.  
  31299. This message causes the spin control to set or reset numeric limits.  This 
  31300. message is functionally identical to DAC_SPIN_LIMITS, except that the current 
  31301. value of the spin button does not change if it is out of range. 
  31302.  
  31303. Parameters: 
  31304.  
  31305. o Parameter 1(int): Upper limit. 
  31306. o Parameter 2(int): Lower limit. 
  31307.  
  31308.  
  31309. ΓòÉΓòÉΓòÉ 15.3.9.57. DAC_SPIN_UP ΓòÉΓòÉΓòÉ
  31310.  
  31311. DAC_SPIN_UP 
  31312.  
  31313. This message causes the spin control to show the next value. 
  31314.  
  31315. Parameters: A long data value that determines how many units to spin forward. 
  31316.  
  31317.  
  31318. ΓòÉΓòÉΓòÉ 15.3.9.58. DAC_SPIN_VALUE ΓòÉΓòÉΓòÉ
  31319.  
  31320. DAC_SPIN_VALUE 
  31321.  
  31322. This message causes the spin control to set or reset the current numeric value. 
  31323.  
  31324. Parameters: 
  31325.  
  31326. o Parameter 1(int): numeric value. 
  31327.  
  31328.  
  31329. ΓòÉΓòÉΓòÉ 15.3.9.59. DAC_UNCHECK ΓòÉΓòÉΓòÉ
  31330.  
  31331. DAC_UNCHECK 
  31332.  
  31333. The DAC_UNCHECK flag removes a check mark on a tristate, checkbox, or radio 
  31334. button. 
  31335.  
  31336. Example: 
  31337.    set_dialog_item(dlgid, control_index, DAC_UNCHECK) 
  31338.  
  31339.  
  31340. ΓòÉΓòÉΓòÉ 15.3.9.60. DAC_UNDO ΓòÉΓòÉΓòÉ
  31341.  
  31342. DAC_UNDO 
  31343.  
  31344. Example: 
  31345.    set_dialog_item(dlgd, control_index, DAC_UNDO) 
  31346.  
  31347.  
  31348. ΓòÉΓòÉΓòÉ 15.3.9.61. DAC_UNSELECT_ITEM ΓòÉΓòÉΓòÉ
  31349.  
  31350. DAC_UNSELECT_ITEM 
  31351.  
  31352. Example: 
  31353.    set_dialog_item(dlgd, control_index, DAC_UNSELECT_ITEM) 
  31354.  
  31355.  
  31356. ΓòÉΓòÉΓòÉ 15.3.9.62. DAC_VS_QUERY_ITEM ΓòÉΓòÉΓòÉ
  31357.  
  31358. DAC_VS_QUERY_ITEM 
  31359.  
  31360. Queries the contents of the item indicated by the valuaes of the row and column 
  31361. parameters. 
  31362.  
  31363. Parameters:  A long data value containing the row and column.  The row is 
  31364. contained in the high word and the column is contained in the low word of the 
  31365. parameter. 
  31366.  
  31367.  
  31368. ΓòÉΓòÉΓòÉ 15.3.9.63. DAC_VS_QUERY_METRICS ΓòÉΓòÉΓòÉ
  31369.  
  31370. DAC_VS_QUERY_METRICS 
  31371.  
  31372. Queries the current size of each value set or for the spacing between items. 
  31373. The return value is either the width and height of one item, or the spacing 
  31374. between items. 
  31375.  
  31376. Parameters:  One parameter is accepted, containing: 
  31377.  
  31378. 0 - query width and height of each item 
  31379. 1 - query horizontal and vertical spacing between items 
  31380.  
  31381. The queried values are returned in a long integer as follows: 
  31382.  
  31383. low word of return value - height 
  31384. high word of return value - width 
  31385. low word of return value - vertical spacing 
  31386. high word of return value - horizontal spacing 
  31387.  
  31388.  
  31389. ΓòÉΓòÉΓòÉ 15.3.9.64. DAC_VS_QUERY_SELECTED ΓòÉΓòÉΓòÉ
  31390.  
  31391. DAC_VS_QUERY_SELECTED 
  31392.  
  31393. Queries the currently selected value set item. 
  31394.  
  31395. Returns:  LOWORD(Row) and HIWORD(Col) - row and column encoded into a long 
  31396. integer. 
  31397.  
  31398.  
  31399. ΓòÉΓòÉΓòÉ 15.3.9.65. DAC_VS_SELECT_ITEM ΓòÉΓòÉΓòÉ
  31400.  
  31401. DAC_VS_SELECT_ITEM 
  31402.  
  31403. Selects a value set cell. 
  31404.  
  31405. Parameters: 
  31406.  
  31407. Parameter 1 (long) row of cell to select. Row's begin numbering at 1. 
  31408. Parameter 2 (long) column of cell to select. Column's begin numbering at 1. 
  31409.  
  31410.  
  31411. ΓòÉΓòÉΓòÉ 15.3.9.66. DAC_VS_SET_ITEM ΓòÉΓòÉΓòÉ
  31412.  
  31413. DAC_VS_SET_ITEM 
  31414.  
  31415. Specifies the type of information that will be contained by a value set item. 
  31416.  
  31417. Parameters: 
  31418.  
  31419. Parameter 1 (long) row of item 
  31420. Parameter 2 (long) column of item 
  31421. Parameter 3 (long) data 
  31422.  
  31423. The value of Parameter 3 depends on the VIA_* attributes set for the item: 
  31424.  
  31425. If VIA_TEXT attribute is specified, then Parameter 3 is a string. 
  31426.  
  31427. If VIA_RGB attribute is specified, then Parameter 3 is a RGB value. 
  31428.  
  31429. If VIA_COLORINDEX attribute is specified, then Parameter 3 is the index of the 
  31430. color in the logical color table. 
  31431.  
  31432.  
  31433. ΓòÉΓòÉΓòÉ 15.3.9.67. DAC_VS_SET_METRICS ΓòÉΓòÉΓòÉ
  31434.  
  31435. DAC_VS_SET_METRICS 
  31436.  
  31437. Sets the size of each item or the spacing between items in a value set control. 
  31438.  
  31439. Parameters: Two parameters are accepted: 
  31440.  
  31441. Parameter 1 
  31442.  
  31443.    o 0 - set the width and height of each item 
  31444.    o 1 - set the horizontal and vertical spacing between items 
  31445.  
  31446. Parameter 2 
  31447.  
  31448.    o If parameter 1 is 0: An int type with the width in the low word and the 
  31449.      height in the high word. 
  31450.    o If parameter 1 is 1: An int type with the horizontal spacing in the low 
  31451.      word and the vertical spacing in the high word. 
  31452.  
  31453.  
  31454. ΓòÉΓòÉΓòÉ 15.3.9.68. DAC_FG_COLOR ΓòÉΓòÉΓòÉ
  31455.  
  31456. DAC_FG_COLOR 
  31457.  
  31458. Sets the foreground color of a static text control. 
  31459.  
  31460. Parameter is a RGB value containing the new color. 
  31461.  
  31462.  
  31463. ΓòÉΓòÉΓòÉ 15.3.9.69. DAC_BG_COLOR ΓòÉΓòÉΓòÉ
  31464.  
  31465. DAC_BG_COLOR 
  31466.  
  31467. Sets the background color of a static text control.  Parameter is a RGB value 
  31468. containing the new color. 
  31469.  
  31470.  
  31471. ΓòÉΓòÉΓòÉ 15.3.9.70. DAC_SELECT_INDEX_RANGE ΓòÉΓòÉΓòÉ
  31472.  
  31473. DAC_SELECT_INDEX_RANGE 
  31474.  
  31475. The DAC_SELECT_INDEX_RANGE flag selects a range of items in a list box given a 
  31476. range of zero based index values. 
  31477.  
  31478. The following example selects the items in the list box between index 3 and 6 
  31479. inclusive. 
  31480.    set_dialog_item(dlgid, listbox_index, DAC_DESLECTINDEX, 3, 6) 
  31481.  
  31482.  
  31483. ΓòÉΓòÉΓòÉ 15.3.9.71. DAC_DESELECT_INDEX_RANGE ΓòÉΓòÉΓòÉ
  31484.  
  31485. DAC_DESELECT_INDEX_RANGE 
  31486.  
  31487. The DAC_DESELECT_INDEX_RANGE flag de-selects a range of items in a list box 
  31488. given a range of zero based index values. 
  31489.  
  31490. The following example de-selects the items in the list box between index 3 and 
  31491. 6 inclusive. 
  31492.    set_dialog_item(dlgid, listbox_index, DAC_DESLECTINDEX, 3, 6) 
  31493.  
  31494.  
  31495. ΓòÉΓòÉΓòÉ 15.3.9.72. DAC_INSERT_PAGE_AT_TOP ΓòÉΓòÉΓòÉ
  31496.  
  31497. DAC_INSERT_PAGE_AT_TOP 
  31498.  
  31499. The DAC_INSERT_PAGE_AT_TOP flag inserts a page at the beginning of a notebook 
  31500. control. The DAC_INSERT_PAGE_AT_TOP flag takes one required parameter and five 
  31501. optional parameters. 
  31502.  
  31503. Parameters: 
  31504.  
  31505. o Parameter 1(required): Page id returned from the create_page() function. 
  31506. o Parameter 2(optional): Text to be displayed on the status line. 
  31507. o Parameter 3(optional): Text to be displayed on the for the page. 
  31508. o Parameter 4(optional): Type of tab.  See DAC_SET_TAB_TYPE. 
  31509. o Parameter 5(optional): Display status text (TRUE) or not (FALSE) 
  31510. o Parameter 6(optional): Auto page size on (TRUE) or off (FALSE). Resizes the 
  31511.   notebook page whenever the notebook control is resized. 
  31512.  
  31513. The following example inserts a page at the beginning of an existing notebook 
  31514. control. The page is created with a status line with the text "Status line 
  31515. text" initially displayed on the status line.  The tab is displayed as a major 
  31516. tab with the text "Tab Text". 
  31517.    set_dialog_item(dlgid, notebook_index, DAC_INSERT_PAGE_AT_TOP, 
  31518. page_id, "Status line text",            "Tab Text", NBTAB_MAJOR, TRUE) 
  31519.  
  31520. The next example simply creates a default page with no status bar and no major 
  31521. or minor tab. 
  31522.    set_dialog_item(dlgid, notebook_index, DAC_INSERT_PAGE_AT_TOP, page_id) 
  31523.  
  31524.  
  31525. ΓòÉΓòÉΓòÉ 15.3.9.73. DAC_INSERT_PAGE_BEFORE ΓòÉΓòÉΓòÉ
  31526.  
  31527. DAC_INSERT_PAGE_BEFORE 
  31528.  
  31529. The DAC_INSERT_PAGE_BEFORE flag inserts a page before another page of a 
  31530. notebook control. The DAC_INSERT_PAGE_BEFORE flag takes two required parameters 
  31531. and five optional parameters. 
  31532.  
  31533. Parameters: 
  31534.  
  31535. o Parameter 1(required): Page id returned from the create_page() function. 
  31536. o Parameter 2(required): Page id to insert page before. 
  31537. o Parameter 3(optional): Text to be displayed on the status line. 
  31538. o Parameter 4(optional): Text to be displayed on the for the page. 
  31539. o Parameter 5(optional): Type of tab.  See DAC_SET_TAB_TYPE. 
  31540. o Parameter 6(optional): Display status text (TRUE) or not (FALSE) 
  31541. o Parameter 7(optional): Auto page size on (TRUE) or off (FALSE). Resizes the 
  31542.   notebook page whenever the notebook control is resized. 
  31543.  
  31544. The following example inserts a page before another page of an existing 
  31545. notebook control. The page is created with a status line with the text "Status 
  31546. line text" initially displayed on the status line.  The tab is displayed as a 
  31547. major tab with the text "Tab Text". 
  31548.    set_dialog_item(dlgid, notebook_index, DAC_INSERT_PAGE_BEFORE, 
  31549. page_id, page_id_before, "Status line text",            "Tab Text", 
  31550. NBTAB_MAJOR, TRUE) 
  31551.  
  31552. The next example simply creates a default page with no status bar and no major 
  31553. or minor tab. 
  31554.    set_dialog_item(dlgid, notebook_index,            DAC_INSERT_PAGE_BEFORE, 
  31555. page_id, page_id_before) 
  31556.  
  31557.  
  31558. ΓòÉΓòÉΓòÉ 15.3.9.74. DAC_INSERT_PAGE_AFTER ΓòÉΓòÉΓòÉ
  31559.  
  31560. DAC_INSERT_PAGE_AFTER 
  31561.  
  31562. The DAC_INSERT_PAGE_AFTER flag inserts a page after another page of a notebook 
  31563. control. The DAC_INSERT_PAGE_AFTER flag takes two required parameters and five 
  31564. optional parameters. 
  31565.  
  31566. Parameters: 
  31567.  
  31568. o Parameter 1(required): Page id returned from the create_page() function. 
  31569. o Parameter 2(required): Page id to insert page after. 
  31570. o Parameter 3(optional): Text to be displayed on the status line. 
  31571. o Parameter 4(optional): Text to be displayed on the for the page. 
  31572. o Parameter 5(optional): Type of tab.  See DAC_SET_TAB_TYPE. 
  31573. o Parameter 6(optional): Display status text (TRUE) or not (FALSE) 
  31574. o Parameter 7(optional): Auto page size on (TRUE) or off (FALSE). Resizes the 
  31575.   notebook page whenever the notebook control is resized. 
  31576.  
  31577. The following example inserts a page after another page of an existing notebook 
  31578. control. The page is created with a status line with the text "Status line 
  31579. text" initially displayed on the status line.  The tab is displayed as a major 
  31580. tab with the text "Tab Text". 
  31581.    set_dialog_item(dlgid, notebook_index, DAC_INSERT_PAGE_AFTER, 
  31582. page_id, page_id_before, "Status line text",            "Tab Text", 
  31583. NBTAB_MAJOR, TRUE) 
  31584.  
  31585. The next example simply creates a default page with no status bar and no major 
  31586. or minor tab. 
  31587.    set_dialog_item(dlgid, notebook_index,            DAC_INSERT_PAGE_AFTER, 
  31588. page_id, page_id_before) 
  31589.  
  31590.  
  31591. ΓòÉΓòÉΓòÉ 15.3.9.75. DAC_SETFOCUS ΓòÉΓòÉΓòÉ
  31592.  
  31593. DAC_SETFOCUS 
  31594.  
  31595. The DAC_SETFOCUS flag sets the focus to the specified control in a dialog box. 
  31596.  
  31597. The following example sets focus to a particular dialog control 
  31598. (control_index): 
  31599.    set_dialog_item(dlgid, control_index, DAC_SETFOCUS) 
  31600.  
  31601.  
  31602. ΓòÉΓòÉΓòÉ 15.3.9.76. DAC_ENABLE ΓòÉΓòÉΓòÉ
  31603.  
  31604. DAC_ENABLE 
  31605.  
  31606. The DAC_ENABLE flag enables a particular dialog control for input. All controls 
  31607. that are enabled allow the user to input information into them either with the 
  31608. mouse or keyboard. 
  31609.  
  31610. The following example enables a particular dialog control (control_index): 
  31611.    set_dialog_item(dlgid, control_index, DAC_ENABLE) 
  31612.  
  31613.  
  31614. ΓòÉΓòÉΓòÉ 15.3.9.77. DAC_DISABLE ΓòÉΓòÉΓòÉ
  31615.  
  31616. DAC_DISABLE 
  31617.  
  31618. The DAC_DISABLE flag disables a particular dialog control for input. All 
  31619. controls that are disabled do not allow the user to input information with 
  31620. either the mouse or keyboard. 
  31621.  
  31622. The following example disables a particular dialog control (control_index): 
  31623.    set_dialog_item(dlgid, control_index, DAC_DISABLE) 
  31624.  
  31625.  
  31626. ΓòÉΓòÉΓòÉ 15.3.9.78. DAC_HIDE ΓòÉΓòÉΓòÉ
  31627.  
  31628. DAC_HIDE 
  31629.  
  31630. The DAC_HIDE flag hides a particular dialog control so it is not seen by the 
  31631. user. 
  31632.  
  31633. The following example hides a particular dialog control (control_index): 
  31634.    set_dialog_item(dlgid, control_index, DAC_HIDE) 
  31635.  
  31636.  
  31637. ΓòÉΓòÉΓòÉ 15.3.9.79. DAC_SHOW ΓòÉΓòÉΓòÉ
  31638.  
  31639. DAC_SHOW 
  31640.  
  31641. The DAC_SHOW flag shows a particular dialog control so it can be seen by the 
  31642. user. 
  31643.  
  31644. The following example shows a particular dialog control (control_index): 
  31645.    set_dialog_item(dlgid, control_index, DAC_SHOW) 
  31646.  
  31647.  
  31648. ΓòÉΓòÉΓòÉ 15.3.9.80. DAC_TEXT ΓòÉΓòÉΓòÉ
  31649.  
  31650. DAC_TEXT 
  31651.  
  31652. The DAC_TEXT flag sets the text field of a control.  Not all controls have text 
  31653. fields associated with them, for example list boxes.  The text field is the 
  31654. text displayed with the control. For example, the text field of a group box is 
  31655. the text displayed at the top of the group box. 
  31656.  
  31657. The following example sets the text of a control to "Text Set": 
  31658.    set_dialog_item(dlgid, control_index, DAC_TEXT, "Text Set") 
  31659.  
  31660.  
  31661. ΓòÉΓòÉΓòÉ 15.3.9.81. DAC_SIZE ΓòÉΓòÉΓòÉ
  31662.  
  31663. DAC_SIZE 
  31664.  
  31665. The DAC_SIZE flag sets the size in pixels of a dialog control. 
  31666.  
  31667. The following example sets the size of a control to 50 pixels wide by 100 
  31668. pixels height: 
  31669.    set_dialog_item(dlgid, control_index, DAC_SIZE, 50, 100) 
  31670.  
  31671.  
  31672. ΓòÉΓòÉΓòÉ 15.3.9.82. DAC_POSITION ΓòÉΓòÉΓòÉ
  31673.  
  31674. DAC_POSITION 
  31675.  
  31676. The DAC_POSITION flag sets the position in pixels of a dialog control. The 
  31677. origin(0,0) used for positioning is the lower left corner of the dialog box.  Y 
  31678. values increase up and X values increase to the right. 
  31679.  
  31680. The following example positions a control 50 pixels from the bottom by 100 
  31681. pixels from the right: 
  31682.    set_dialog_item(dlgid, control_index, DAC_POSITION, 50, 100) 
  31683.  
  31684.  
  31685. ΓòÉΓòÉΓòÉ 15.4. Editor System ΓòÉΓòÉΓòÉ
  31686.  
  31687. EWC_ 
  31688.           Constants used to set and query editor window properties 
  31689. COLOR_ 
  31690.           Color name constants. 
  31691. SAVE_ 
  31692.           Constants used as masks for the save_flags variable. 
  31693. STB_ 
  31694.           Masks for the statusbar_flags variable. 
  31695. autosave_force_time 
  31696.           Sets the time interval between auto-saves. 
  31697. autosave_time 
  31698.           Sets the idle time interval for auto-save. 
  31699. backup_directory 
  31700.           Names the directory where backup files are stored. 
  31701. beep_string() 
  31702.           String played by the beep() function. 
  31703. color_linecommands_bg 
  31704.           Defines background color used to draw text. 
  31705. color_linecommands_fg 
  31706.           Defines foreground color used to draw text. 
  31707. color_linenumbers_bg 
  31708.           Defines background color used to draw text. 
  31709. color_linenumbers_fg 
  31710.           Defines foreground color used to draw text. 
  31711. color_message_bg 
  31712.           Defines background color used to draw text. 
  31713. color_message_fg 
  31714.           Defines foreground color used to draw text. 
  31715. color_notify_bg 
  31716.           Defines background color used to draw text. 
  31717. color_notify_fg 
  31718.           Defines foreground color used to draw text. 
  31719. color_warning_bg 
  31720.           Defines background color used to draw text. 
  31721. color_warning_fg 
  31722.           Defines foreground color used to draw text. 
  31723. color_window_bg 
  31724.           Defines background color used to draw text. 
  31725. color_window_fg 
  31726.           Defines foreground color used to draw text. 
  31727. current_command() 
  31728.           Stores the id of the most recently invoked function. 
  31729. current_key() 
  31730.           Stores most recent keystroke received from keyboard. 
  31731. cursor_normal 
  31732.           Store the shape of the normal editing cursor. 
  31733. cursor_overtype 
  31734.           Store the cursor shape used in overtype mode. 
  31735. cursor_virtual 
  31736.           Store shape of the cursor used when in VIRTUAL SPACE. 
  31737. cursor_virtual_overtype 
  31738.           Store shape of the cursor used when in VIRTUAL SPACE. 
  31739. default_color_error_bg 
  31740.           Defines background color used to draw text. 
  31741. default_color_error_fg 
  31742.           Defines foreground color used to draw text. 
  31743. default_color_help_bg. 
  31744.           pdefault_color_help_bg. 
  31745. default_color_help_fg. 
  31746.           pdefault_color_help_fg. 
  31747. default_color_linecommands_bg 
  31748.           Defines background color used to draw text. 
  31749. default_color_linecommands_fg 
  31750.           Defines foreground color used to draw text. 
  31751. default_color_linenumbers_bg 
  31752.           Defines background color used to draw text. 
  31753. default_color_linenumbers_fg 
  31754.           Defines foreground color used to draw text. 
  31755. default_color_message_bg 
  31756.           Defines background color used to draw text. 
  31757. default_color_message_fg 
  31758.           Defines foreground color used to draw text. 
  31759. default_color_notify_bg 
  31760.           Defines background color used to draw text. 
  31761. default_color_notify_fg 
  31762.           Defines foreground color used to draw text. 
  31763. default_color_warning_bg 
  31764.           Defines background color used to draw text. 
  31765. default_color_warning_fg 
  31766.           Defines foreground color used to draw text. 
  31767. default_color_window_bg 
  31768.           Defines background color used to draw text. 
  31769. default_color_window_fg 
  31770.           Defines foreground color used to draw text. 
  31771. display_height 
  31772.           Stores the display height in lines. 
  31773. display_width 
  31774.           Stores the display width in columns. 
  31775. editor_ae 
  31776.           Contains the name of the .ae file that the editor is using. 
  31777. editor_config 
  31778.           Contains the name of the config file that the editor is using. 
  31779. editor_helpfile 
  31780.           Contains the name of the help file that the editor is using. 
  31781. editor_path_var 
  31782.           Contains the name of the environment variable the editor uses to 
  31783.           locate configuration files. 
  31784. editor_title 
  31785.           Contains the title of the editor displayed on the title bar. 
  31786. emulation_mode 
  31787.           Stores name of emulation in use. 
  31788. emulations 
  31789.           Stores the name and function name available in the editor. 
  31790. pause_on_error 
  31791.           Dictates whether or not to pause between messages. 
  31792. prev_command 
  31793.           Stores the id of the previously executed function. 
  31794. prev_key 
  31795.           Stores the keystroke preceding most recently received. 
  31796. save_flags 
  31797.           Stores what is saved in the config file on exit. 
  31798. save_state 
  31799.           Tells whether the editor state should be saved on exit. 
  31800. temp_path 
  31801.           Names directories where temporary files are made. 
  31802. version 
  31803.           Stores the release version number of the editor. 
  31804.  
  31805.  
  31806. ΓòÉΓòÉΓòÉ 15.4.1. COLOR_ ΓòÉΓòÉΓòÉ
  31807.  
  31808. COLOR_   Primitive 
  31809.  
  31810. Purpose:  Color name constants. 
  31811.  
  31812. ____________ 
  31813.  
  31814. Type:    const int COLOR_ 
  31815.  
  31816. ____________ 
  31817.  
  31818. Description: The COLOR_ constants can be used to set colors in the editor. You 
  31819. may use the easy to remember names like COLOR_NEON_BABY_BLUE or hard code the 
  31820. equivalent number. 
  31821.  
  31822. o COLOR_MEDVIOLET 
  31823. o COLOR_NEON_BABY_BLUE 
  31824. o COLOR_ORANGE 
  31825. o COLOR_ORANGERED 
  31826. o COLOR_ORCHID 
  31827. o COLOR_PINK 
  31828. o COLOR_RED 
  31829. o COLOR_WHITE 
  31830. o COLOR_YELLOW 
  31831.  
  31832. ____________ 
  31833.  
  31834.  
  31835. ΓòÉΓòÉΓòÉ 15.4.2. EWC_ ΓòÉΓòÉΓòÉ
  31836.  
  31837. EWC_   Primitive 
  31838.  
  31839. Purpose:  Constants used to set and query editor window properties 
  31840.  
  31841. ____________ 
  31842.  
  31843. Type:    const int EWC_ 
  31844.  
  31845. ____________ 
  31846.  
  31847. Description: The constants defined in the EWC_ category are useful when calling 
  31848. functions such as set_editwin_property() and query_editwin_property(). The 
  31849. constants can be passed in as the flag parameter. 
  31850.  
  31851. o EWC_CLIENT_HEIGHT 
  31852. o EWC_CLIENT_WIDTH 
  31853. o EWC_DISABLE 
  31854. o EWC_ENABLE 
  31855. o EWC_HANDLE 
  31856. o EWC_HEIGHT 
  31857. o EWC_MAXIMIZE 
  31858. o EWC_MINIMIZE 
  31859. o EWC_NORMAL 
  31860. o EWC_RESTORE_HEIGH 
  31861. o EWC_RESTORE_WIDTH 
  31862. o EWC_RESTORE_X_POS 
  31863. o EWC_RESTORE_Y_POS 
  31864. o EWC_TO_TOP 
  31865. o EWC_WIDTH 
  31866. o EWC_X_POS 
  31867. o EWC_Y_POS 
  31868.  
  31869. ____________ 
  31870.  
  31871.  
  31872. ΓòÉΓòÉΓòÉ 15.4.3. SAVE_ ΓòÉΓòÉΓòÉ
  31873.  
  31874. SAVE_   Primitive 
  31875.  
  31876. Purpose:  Constants used as masks for the save_flags variable. 
  31877.  
  31878. ____________ 
  31879.  
  31880. Type:    const int SAVE_ 
  31881.  
  31882. ____________ 
  31883.  
  31884. Description: The constants defined in the SAVE_ section can be used as masks 
  31885. for the modifying or examining  the save_flags variable. 
  31886.  
  31887. o SAVE_COMMANDS 
  31888. o SAVE_COMPILE 
  31889. o SAVE_DEFAULT 
  31890. o SAVE_EDITFILE 
  31891. o SAVE_REPLACE 
  31892. o SAVE_SEARCH 
  31893. o SAVE_SETTINGS 
  31894.  
  31895. ____________ 
  31896.  
  31897.  
  31898. ΓòÉΓòÉΓòÉ 15.4.4. STB_ ΓòÉΓòÉΓòÉ
  31899.  
  31900. STB_   Primitive 
  31901.  
  31902. Purpose:  Masks for the statusbar_flags variable. 
  31903.  
  31904. ____________ 
  31905.  
  31906. Type:    const int STB_ 
  31907.  
  31908. ____________ 
  31909.  
  31910. Description: The constants defined in the STB_ section are used as masks to 
  31911. modify and examine the status_bar_flags variable. 
  31912.  
  31913. o STB_BUSY 
  31914. o STB_CLOCK 
  31915. o STB_COLUMN 
  31916. o STB_DATE 
  31917. o STB_DAYOFWEEK 
  31918. o STB_DEFAULT 
  31919. o STB_DEFAULT_PROMPTS 
  31920. o STB_DYNA_SIZE 
  31921. o STB_EMULATION 
  31922. o STB_INDICATORS 
  31923. o STB_LAST_LINE 
  31924. o STB_LEVELS 
  31925. o STB_LINE 
  31926. o STB_LINE_COLUMN 
  31927. o STB_MESSAGELEV0 
  31928. o STB_MESSAGELEV1 
  31929. o STB_MESSAGES 
  31930. o STB_PAUSEONERR 
  31931. o STB_POSITION 
  31932. o STB_PROMPTS 
  31933. o STB_TIME 
  31934. o STB_TIME12 
  31935. o STB_TIME24 
  31936. o STB_TOTAL_INDS 
  31937. o STB_VISIBLE 
  31938.  
  31939. ____________ 
  31940.  
  31941.  
  31942. ΓòÉΓòÉΓòÉ 15.4.5. autosave_force_time ΓòÉΓòÉΓòÉ
  31943.  
  31944. autosave_force_time   PEL 
  31945.  
  31946. Purpose: Sets the time interval between auto-saves. 
  31947.  
  31948. ____________ 
  31949.  
  31950. Type:   int autosave_force_time 
  31951.  
  31952. ____________ 
  31953.  
  31954. Description: 
  31955.  
  31956. The autosave_force_time variable contains the number of seconds between 
  31957. auto-saves, without regard to keyboard activity.  This value is only meaningful 
  31958. if the auto-save feature has been turned on.  The default value for this 
  31959. variable is 0 seconds, which has the effect of disabling forced saves. 
  31960.  
  31961. ____________ 
  31962.  
  31963. See also:  autosave(), autosave_time 
  31964.  
  31965.  
  31966. ΓòÉΓòÉΓòÉ 15.4.6. autosave_time ΓòÉΓòÉΓòÉ
  31967.  
  31968. autosave_time   PEL 
  31969.  
  31970. Purpose: Sets the idle time interval for auto-save. 
  31971.  
  31972. ____________ 
  31973.  
  31974. Type:   int autosave_time 
  31975.  
  31976. ____________ 
  31977.  
  31978. Description: 
  31979.  
  31980. The autosave_time variable contains the number of seconds that the keyboard 
  31981. must be idle before the auto-save feature saves the file.  This value is only 
  31982. meaningful if the auto-save feature has been turned on.  The default value for 
  31983. this variable is 15 seconds. 
  31984.  
  31985. ____________ 
  31986.  
  31987. See also:  autosave(), autosave_force_time 
  31988.  
  31989.  
  31990. ΓòÉΓòÉΓòÉ 15.4.7. backup_directory ΓòÉΓòÉΓòÉ
  31991.  
  31992. backup_directory   PEL 
  31993.  
  31994. Purpose: Names the directory where backup files are stored. 
  31995.  
  31996. ____________ 
  31997.  
  31998. Type:   str backup_directory 
  31999.  
  32000. ____________ 
  32001.  
  32002. Description: 
  32003.  
  32004. The backup_directory variable is the directory name where you can find backup 
  32005. files.  The backup directory may be on any valid drive and directory in your 
  32006. system.  It may also be specified in relative terms such as "." to indicate the 
  32007. current directory or "..\backup" indicating the backup subdirectory off of the 
  32008. current directory's parent directory.  By default this variable is an empty 
  32009. string and uses the editor_path()\ backup directory. 
  32010.  
  32011. Whenever this string is empty, backups are made in a default directory. The 
  32012. editor attempts to save backups in a directory specified in the notebook 
  32013. settings.  If this directory does not exist, the editor will attempt to create 
  32014. it.  If unable to create this directory, for example on a network drive, the 
  32015. editor stores backups in the directory from which the file originated. 
  32016.  
  32017. You may specify that backups be made in the same directory where the file 
  32018. originated, by giving backup_directory the value "*", a single asterisk. 
  32019.  
  32020. ____________ 
  32021.  
  32022. See also: backup_file_ext 
  32023.  
  32024.  
  32025. ΓòÉΓòÉΓòÉ 15.4.8. beep_string ΓòÉΓòÉΓòÉ
  32026.  
  32027. beep_string   Primitive 
  32028.  
  32029. Purpose: String played by the beep() function. 
  32030.  
  32031. ____________ 
  32032.  
  32033. Type:   str beep_string 
  32034.  
  32035. ____________ 
  32036.  
  32037. Description: 
  32038.  
  32039. The beep_string variable is the string that is played when the beep() function 
  32040. is called.  The syntax for the beep_string is the same as the string for 
  32041. play(). 
  32042.  
  32043.  
  32044. ΓòÉΓòÉΓòÉ 15.4.9. color_ ΓòÉΓòÉΓòÉ
  32045.  
  32046. color_   Primitive 
  32047.  
  32048. ____________ 
  32049.  
  32050. Purpose:  Defines the various colors used by the system. 
  32051.  
  32052. ____________ 
  32053.  
  32054. Type: 
  32055.  
  32056. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  32057. ΓöéVariable               ΓöéScope          Γöé
  32058. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32059. Γöécolor_error_fg         ΓöéEditor Window  Γöé
  32060. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32061. Γöécolor_error_bg         ΓöéEditor Window  Γöé
  32062. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32063. Γöécolor_help_fg          ΓöéEditor Window  Γöé
  32064. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32065. Γöécolor_help_bg          ΓöéEditor Window  Γöé
  32066. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32067. Γöécolor_linenumbers_fg   ΓöéWindow         Γöé
  32068. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32069. Γöécolor_linenumbers_bg   ΓöéWindow         Γöé
  32070. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32071. Γöécolor_linecommands_fg  ΓöéWindow         Γöé
  32072. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32073. Γöécolor_linecommands_bg  ΓöéWindow         Γöé
  32074. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32075. Γöécolor_message_fg       ΓöéEditor Window  Γöé
  32076. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32077. Γöécolor_message_bg       ΓöéEditor Window  Γöé
  32078. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32079. Γöécolor_notify_fg        ΓöéEditor Window  Γöé
  32080. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32081. Γöécolor_notify_bg        ΓöéEditor Window  Γöé
  32082. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32083. Γöécolor_warning_fg       ΓöéEditor Window  Γöé
  32084. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32085. Γöécolor_warning_fg       ΓöéEditor Window  Γöé
  32086. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32087. Γöécolor_window_fg        ΓöéWindow         Γöé
  32088. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  32089. Γöécolor_window_bg        ΓöéWindow         Γöé
  32090. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  32091.  
  32092. ____________ 
  32093.  
  32094. Description: 
  32095.  
  32096. The system-wide and window-specific variables listed above define the colors to 
  32097. be used for various aspects of the editor's appearance.  Of these variables 
  32098. several are system-wide, while the rest may be defined differently for each 
  32099. window in use. 
  32100.  
  32101. The initial values for the color variables are obtained from the like-named 
  32102. default_ variables at the time the object (window or status bar) is created. 
  32103. If window variables are modified after the window has been created, a call to 
  32104. the update_current_view() function is required to ensure consistent appearance. 
  32105.  
  32106. Permissible values for color_ variables are shown in a table in the "Windowing" 
  32107. section in Part One of this manual. 
  32108.  
  32109.  
  32110. ΓòÉΓòÉΓòÉ 15.4.10. color_help_bg ΓòÉΓòÉΓòÉ
  32111.  
  32112. color_help_bg   Primitive 
  32113.  
  32114. Purpose: Defines background color used to draw help text. 
  32115.  
  32116. ____________ 
  32117.  
  32118. Type: int color_help_bg 
  32119.  
  32120. ____________ 
  32121.  
  32122. Description: 
  32123.  
  32124. Each editor window has a color_help_bg variable associated with it.  This 
  32125. variable contains the background color of help text when help is displayed on 
  32126. the status bar. 
  32127.  
  32128. The initial value is copied from the global variable default_color_help_bg. 
  32129.  
  32130. ____________ 
  32131.  
  32132. See also:  help(), color_message_fg, color_message_fg, color_help_fg, 
  32133. color_warning_fg, color_warning_bg, color_error_fg, color_error_bg 
  32134.  
  32135.  
  32136. ΓòÉΓòÉΓòÉ 15.4.11. color_help_fg ΓòÉΓòÉΓòÉ
  32137.  
  32138. color_help_fg   Primitive 
  32139.  
  32140. Purpose: Defines foreground color used to draw text. 
  32141.  
  32142. ____________ 
  32143.  
  32144. Type: int color_help_fg 
  32145.  
  32146. ____________ 
  32147.  
  32148. Description: 
  32149.  
  32150. Each editor window has a color_help_fg variable associated with it.  This 
  32151. variable contains the foreground color of help text when help is displayed on 
  32152. the status bar. 
  32153.  
  32154. The initial value is copied from the global variable default_color_help_fg. 
  32155.  
  32156. ____________ 
  32157.  
  32158. See also:   help(), color_message_bg, color_message_fg, color_help_bg, 
  32159. color_warning_fg, color_warning_bg, color_error_fg, color_error_bg 
  32160.  
  32161.  
  32162. ΓòÉΓòÉΓòÉ 15.4.12. color_linecommands_bg ΓòÉΓòÉΓòÉ
  32163.  
  32164. color_linecommands_bg   Primitive 
  32165.  
  32166. Purpose: Defines background color used to draw text. 
  32167.  
  32168. ____________ 
  32169.  
  32170. Type: int color_linecommands_bg 
  32171.  
  32172. ____________ 
  32173.  
  32174. Description: 
  32175.  
  32176. Each window has a color_linecommands_bg variable associated with it.  This 
  32177. variable contains the background color of text displayed when entering 
  32178. linecommands in the linenumber area. 
  32179.  
  32180. The initial value is copied from the global variable 
  32181. default_color_linecommands_bg. 
  32182.  
  32183. ____________ 
  32184.  
  32185. See also:   color_window_bg, color_window_fg, color_linenumbers_fg, 
  32186. color_linenumbers_fg, color_linecommands_fg 
  32187.  
  32188.  
  32189. ΓòÉΓòÉΓòÉ 15.4.13. color_linecommands_fg ΓòÉΓòÉΓòÉ
  32190.  
  32191. color_linecommands_fg   Primitive 
  32192.  
  32193. Purpose: Defines foreground color used to draw text. 
  32194.  
  32195. ____________ 
  32196.  
  32197. Type: int color_linecommands_fg 
  32198.  
  32199. ____________ 
  32200.  
  32201. Description: 
  32202.  
  32203. Each window has a color_linecommands_fg variable associated with it.  This 
  32204. variable contains the foreground color of text displayed when entering 
  32205. linecommands in the linenumber area. 
  32206.  
  32207. The initial value is copied from the global variable 
  32208. default_color_linecommands_fg. 
  32209.  
  32210. ____________ 
  32211.  
  32212. See also:   color_window_bg, color_window_fg, color_linenumbers_bg, 
  32213. color_linenumbers_fg, color_linecommands_bg 
  32214.  
  32215.  
  32216. ΓòÉΓòÉΓòÉ 15.4.14. color_linenumbers_bg ΓòÉΓòÉΓòÉ
  32217.  
  32218. color_linenumbers_bg   Primitive 
  32219.  
  32220. Purpose: Defines background color used to draw text. 
  32221.  
  32222. ____________ 
  32223.  
  32224. Type: int color_linenumbers_bg 
  32225.  
  32226. ____________ 
  32227.  
  32228. Description: 
  32229.  
  32230. Each window has a color_linenumbers_bg variable associated with it.  This 
  32231. variable contains the background color of text displayed in the linenumber area 
  32232. of a window. 
  32233.  
  32234. The initial value is copied from the global variable 
  32235. default_color_linenumbers_bg. 
  32236.  
  32237. ____________ 
  32238.  
  32239. See also:   color_window_bg, color_window_fg, color_linenumbers_fg, 
  32240. color_linecommands_fg, color_linecommands_bg 
  32241.  
  32242.  
  32243. ΓòÉΓòÉΓòÉ 15.4.15. color_linenumbers_fg ΓòÉΓòÉΓòÉ
  32244.  
  32245. color_linenumbers_fg   Primitive 
  32246.  
  32247. Purpose: Defines foreground color used to draw text. 
  32248.  
  32249. ____________ 
  32250.  
  32251. Type: int color_linenumbers_fg 
  32252.  
  32253. ____________ 
  32254.  
  32255. Description: 
  32256.  
  32257. Each window has a color_linenumbers_fg variable associated with it.  This 
  32258. variable contains the foreground color of text displayed in the linenumber area 
  32259. of a window. 
  32260.  
  32261. The initial value is copied from the global variable 
  32262. default_color_linenumbers_fg. 
  32263.  
  32264. ____________ 
  32265.  
  32266. See also:   color_window_bg, color_window_fg, color_linenumbers_bg, 
  32267. color_linecommands_fg, color_linecommands_bg 
  32268.  
  32269.  
  32270. ΓòÉΓòÉΓòÉ 15.4.16. color_message_bg ΓòÉΓòÉΓòÉ
  32271.  
  32272. color_message_bg   Primitive 
  32273.  
  32274. Purpose: Defines background color used to draw text. 
  32275.  
  32276. ____________ 
  32277.  
  32278. Type: int color_message_bg 
  32279.  
  32280. ____________ 
  32281.  
  32282. Description: 
  32283.  
  32284. Each editor window has a color_message_bg variable associated with it.  This 
  32285. variable contains the background color of message text when messages are 
  32286. displayed on the status bar. 
  32287.  
  32288. The initial value is copied from the global variable default_color_message_bg. 
  32289.  
  32290. ____________ 
  32291.  
  32292. See also:  message(), color_message_fg, color_notify_fg, color_notify_bg, 
  32293. color_warning_fg, color_warning_bg, color_error_fg, color_error_bg 
  32294.  
  32295.  
  32296. ΓòÉΓòÉΓòÉ 15.4.17. color_message_fg ΓòÉΓòÉΓòÉ
  32297.  
  32298. color_message_fg   Primitive 
  32299.  
  32300. Purpose: Defines foreground color used to draw text. 
  32301.  
  32302. ____________ 
  32303.  
  32304. Type: int color_message_fg 
  32305.  
  32306. ____________ 
  32307.  
  32308. Description: 
  32309.  
  32310. Each editor window has a color_message_fg variable associated with it.  This 
  32311. variable contains the foreground color of message text when messages are 
  32312. displayed on the status bar. 
  32313.  
  32314. The initial value is copied from the global variable default_color_message_fg. 
  32315.  
  32316. ____________ 
  32317.  
  32318. See also:  message(), color_message_bg, color_notify_fg, color_notify_bg, 
  32319. color_warning_fg, color_warning_bg, color_error_fg, color_error_bg 
  32320.  
  32321.  
  32322. ΓòÉΓòÉΓòÉ 15.4.18. color_notify_bg ΓòÉΓòÉΓòÉ
  32323.  
  32324. color_notify_bg   Primitive 
  32325.  
  32326. Purpose: Defines background color used to draw text. 
  32327.  
  32328. ____________ 
  32329.  
  32330. Type: int color_notify_bg 
  32331.  
  32332. ____________ 
  32333.  
  32334. Description: 
  32335.  
  32336. Each editor window has a color_notify_bg variable associated with it.  This 
  32337. variable contains the background color of notify text when notifications are 
  32338. displayed on the status bar. 
  32339.  
  32340. The initial value is copied from the global variable default_color_notify_bg. 
  32341.  
  32342. ____________ 
  32343.  
  32344. See also:  notify(), color_message_fg, color_message_fg, color_notify_fg, 
  32345. color_warning_fg, color_warning_bg, color_error_fg, color_error_bg 
  32346.  
  32347.  
  32348. ΓòÉΓòÉΓòÉ 15.4.19. color_notify_fg ΓòÉΓòÉΓòÉ
  32349.  
  32350. color_notify_fg   Primitive 
  32351.  
  32352. Purpose: Defines foreground color used to draw text. 
  32353.  
  32354. ____________ 
  32355.  
  32356. Type: int color_notify_fg 
  32357.  
  32358. ____________ 
  32359.  
  32360. Description: 
  32361.  
  32362. Each editor window has a color_notify_fg variable associated with it.  This 
  32363. variable contains the foreground color of notify text when notifications are 
  32364. displayed on the status bar. 
  32365.  
  32366. The initial value is copied from the global variable default_color_notify_fg. 
  32367.  
  32368. ____________ 
  32369.  
  32370. See also:   notify(), color_message_bg, color_message_fg, color_notify_bg, 
  32371. color_warning_fg, color_warning_bg, color_error_fg, color_error_bg 
  32372.  
  32373.  
  32374. ΓòÉΓòÉΓòÉ 15.4.20. color_warning_bg ΓòÉΓòÉΓòÉ
  32375.  
  32376. color_warning_bg   Primitive 
  32377.  
  32378. Purpose: Defines background color used to draw text. 
  32379.  
  32380. ____________ 
  32381.  
  32382. Type: int color_warning_bg 
  32383.  
  32384. ____________ 
  32385.  
  32386. Description: 
  32387.  
  32388. Each editor window has a color_warning_bg variable associated with it.  This 
  32389. variable contains the background color of warning text when warnings are 
  32390. displayed on the status bar. 
  32391.  
  32392. The initial value is copied from the global variable default_color_warning_bg. 
  32393.  
  32394. ____________ 
  32395.  
  32396. See also:  warning(), color_message_fg, color_message_fg, color_notify_fg, 
  32397. color_notify_fg, color_warning_fg, color_error_fg, color_error_bg 
  32398.  
  32399.  
  32400. ΓòÉΓòÉΓòÉ 15.4.21. color_warning_fg ΓòÉΓòÉΓòÉ
  32401.  
  32402. color_warning_fg   Primitive 
  32403.  
  32404. Purpose: Defines foreground color used to draw text. 
  32405.  
  32406. ____________ 
  32407.  
  32408. Type: int color_warning_fg 
  32409.  
  32410. ____________ 
  32411.  
  32412. Description: 
  32413.  
  32414. Each editor window has a color_warning_fg variable associated with it.  This 
  32415. variable contains the foreground color of warning text when warnings are 
  32416. displayed on the status bar. 
  32417.  
  32418. The initial value is copied from the global variable default_color_warning_fg. 
  32419.  
  32420. ____________ 
  32421.  
  32422. See also:   warning(), color_message_bg, color_message_fg, color_notify_bg, 
  32423. color_notify_fg, color_warning_bg, color_error_fg, color_error_bg 
  32424.  
  32425.  
  32426. ΓòÉΓòÉΓòÉ 15.4.22. color_window_bg ΓòÉΓòÉΓòÉ
  32427.  
  32428. color_window_bg   Primitive 
  32429.  
  32430. Purpose: Defines background color used to draw text. 
  32431.  
  32432. ____________ 
  32433.  
  32434. Type: int color_window_bg 
  32435.  
  32436. ____________ 
  32437.  
  32438. Description: 
  32439.  
  32440. Each window has a color_window_bg variable associated with it.  This variable 
  32441. contains the background color of text displayed in a window. 
  32442.  
  32443. The initial value is copied from the global variable default_color_window_bg. 
  32444.  
  32445. ____________ 
  32446.  
  32447. See also:   color_window_bg, color_linenumbers_fg, color_linenumbers_bg, 
  32448. color_linecommands_fg, color_linecommands_bg 
  32449.  
  32450.  
  32451. ΓòÉΓòÉΓòÉ 15.4.23. color_window_fg ΓòÉΓòÉΓòÉ
  32452.  
  32453. color_window_fg   Primitive 
  32454.  
  32455. Purpose: Defines foreground color used to draw text. 
  32456.  
  32457. ____________ 
  32458.  
  32459. Type: int color_window_fg 
  32460.  
  32461. ____________ 
  32462.  
  32463. Description: 
  32464.  
  32465. Each window has a color_window_fg variable associated with it.  This variable 
  32466. contains the foreground color of text displayed in a window. 
  32467.  
  32468. The initial value is copied from the global variable default_color_window_fg. 
  32469.  
  32470. ____________ 
  32471.  
  32472. See also:   color_window_bg, color_linenumbers_fg, color_linenumbers_bg, 
  32473. color_linecommands_fg, color_linecommands_bg 
  32474.  
  32475.  
  32476. ΓòÉΓòÉΓòÉ 15.4.24. current_command ΓòÉΓòÉΓòÉ
  32477.  
  32478. current_command  read-only   Primitive 
  32479.  
  32480. Purpose: Stores the id of the most recently invoked function. 
  32481.  
  32482. ____________ 
  32483.  
  32484. Type: funcid current_command 
  32485.  
  32486. ____________ 
  32487.  
  32488. Description: 
  32489.  
  32490. The current_command variable contains the function id of the function that was 
  32491. most recently executed from the keyboard.  This includes any functions which 
  32492. have been assigned to keys.  This variable does not necessarily reflect the 
  32493. function currently being executed. 
  32494.  
  32495. The function id stored in current_command may be converted to a string 
  32496. containing the name of the function.  This is done through use of the 
  32497. function_name() function.  This variable may only be modified by the system. 
  32498.  
  32499. ____________ 
  32500.  
  32501. See also:  function_caller(), prev_command 
  32502.  
  32503.  
  32504. ΓòÉΓòÉΓòÉ 15.4.25. current_key ΓòÉΓòÉΓòÉ
  32505.  
  32506. current_key read-only   Primitive 
  32507.  
  32508. Purpose: Stores most recent keystroke received from keyboard. 
  32509.  
  32510. ____________ 
  32511.  
  32512. Type: funcid current_command 
  32513.  
  32514. ____________ 
  32515.  
  32516. Description: 
  32517.  
  32518. The current_key variable contains the value of the most recent key combination 
  32519. entered by the user.  If the key pressed was an ordinary character, its ASCII 
  32520. value will be found in the least significant byte and the scan code is in the 
  32521. high byte of current_key.  If, however, the key returned an extended code, the 
  32522. least significant byte will be null and the code will be in the second byte of 
  32523. current_key. 
  32524.  
  32525. ____________ 
  32526.  
  32527. See also:  prev_key 
  32528.  
  32529.  
  32530. ΓòÉΓòÉΓòÉ 15.4.26. cursor_normal ΓòÉΓòÉΓòÉ
  32531.  
  32532. cursor_normal.   Primitive 
  32533.  
  32534. Purpose: Store the shape of the normal editing cursor. 
  32535.  
  32536. ____________ 
  32537.  
  32538. Type:   int cursor_normal 
  32539.  
  32540. ____________ 
  32541.  
  32542. Description: 
  32543.  
  32544. The shape of the normal (insert mode) cursor is stored in the least significant 
  32545. two bytes or the variable cursor_normal. 
  32546.  
  32547. This variable may be set by the user.  The high byte contains the color of the 
  32548. cursor.  If the high byte contains 0x80 the cursor is gray, otherwise the 
  32549. cursor is the screen inverse color. If the lower byte is set to 0x02 then the 
  32550. cursor is a thin vertical line.  The cursor is a solid block if the lower byte 
  32551. is 0x01. 
  32552.  
  32553. ____________ 
  32554.  
  32555. See also:  cursor_overtype, cursor_virtual_overtype, cursor_virtual 
  32556.  
  32557.  
  32558. ΓòÉΓòÉΓòÉ 15.4.27. cursor_overtype ΓòÉΓòÉΓòÉ
  32559.  
  32560. cursor_overtype   Primitive 
  32561.  
  32562. Purpose: Store the cursor shape used in overtype mode. 
  32563.  
  32564. ____________ 
  32565.  
  32566. Type:   int cursor_overtype 
  32567.  
  32568. ____________ 
  32569.  
  32570. Description: 
  32571.  
  32572. The shape of the cursor displayed when in the overtype editing mode. 
  32573.  
  32574. The storage format used is the same as in the description of cursor_normal. 
  32575.  
  32576. ____________ 
  32577.  
  32578. See also:  cursor_virtual, cursor_virtual_overtype, cursor_normal 
  32579.  
  32580.  
  32581. ΓòÉΓòÉΓòÉ 15.4.28. cursor_virtual ΓòÉΓòÉΓòÉ
  32582.  
  32583. cursor_virtual   Primitive 
  32584.  
  32585. Purpose: Store shape of the cursor used when in VIRTUAL SPACE. 
  32586.  
  32587. ____________ 
  32588.  
  32589. Type:   int cursor_virtual 
  32590.  
  32591. ____________ 
  32592.  
  32593. Description: 
  32594.  
  32595. The shape of the cursor displayed when it is positioned outside the buffer's 
  32596. existing line boundaries or in space resulting from tabs (virtual space) is 
  32597. stored in the variable cursor_virtual. 
  32598.  
  32599. The storage format used is the same as in the description of cursor_normal. 
  32600.  
  32601. ____________ 
  32602.  
  32603. See also:  cursor_overtype, cursor_virtual_overtype, cursor_normal 
  32604.  
  32605.  
  32606. ΓòÉΓòÉΓòÉ 15.4.29. cursor_virtual_overtype ΓòÉΓòÉΓòÉ
  32607.  
  32608. cursor_virtual_overtype   Primitive 
  32609.  
  32610. Purpose: Store shape of the cursor used when in VIRTUAL SPACE. 
  32611.  
  32612. ____________ 
  32613.  
  32614. Type:   int cursor_virtual_overtype 
  32615.  
  32616. ____________ 
  32617.  
  32618. Description: 
  32619.  
  32620. The cursor_virtual_overtype variable stores the cursor shape displayed when it 
  32621. is positioned in virtual space and overtype mode is in effect.  virtual space 
  32622. is the area outside the buffer's existing line boundaries and the area created 
  32623. by tabs. 
  32624.  
  32625. The storage format used is the same as described in cursor_normal. 
  32626.  
  32627. ____________ 
  32628.  
  32629. See also:  cursor_overtype, cursor_normal, cursor_virtual 
  32630.  
  32631.  
  32632. ΓòÉΓòÉΓòÉ 15.4.30. default_color_error_bg ΓòÉΓòÉΓòÉ
  32633.  
  32634. default_color_error_bg   Primitive 
  32635.  
  32636. Purpose: Defines background color used to draw text. 
  32637.  
  32638. ____________ 
  32639.  
  32640. Type: int default_color_error_bg 
  32641.  
  32642. ____________ 
  32643.  
  32644. Description: 
  32645.  
  32646. The default_color_error_bg variable contains the initial value of the 
  32647. color_error_bg variable when a new editor window is created. 
  32648.  
  32649. ____________ 
  32650.  
  32651. See also:  color_error_bg 
  32652.  
  32653.  
  32654. ΓòÉΓòÉΓòÉ 15.4.31. default_color_error_fg ΓòÉΓòÉΓòÉ
  32655.  
  32656. default_color_error_fg   Primitive 
  32657.  
  32658. Purpose: Defines foreground color used to draw text. 
  32659.  
  32660. ____________ 
  32661.  
  32662. Type: int default_color_error_fg 
  32663.  
  32664. ____________ 
  32665.  
  32666. Description: 
  32667.  
  32668. The default_color_error_fg variable contains the initial value of the 
  32669. color_error_fg variable when a new editor window is created. 
  32670.  
  32671. ____________ 
  32672.  
  32673. See also:  color_error_fg 
  32674.  
  32675.  
  32676. ΓòÉΓòÉΓòÉ 15.4.32. default_color_help_bg ΓòÉΓòÉΓòÉ
  32677.  
  32678. default_color_help_bg   Primitive 
  32679.  
  32680. Purpose: Defines background color used to draw text. 
  32681.  
  32682. ____________ 
  32683.  
  32684. Type: int default_color_help_bg 
  32685.  
  32686. ____________ 
  32687.  
  32688. Description: 
  32689.  
  32690. The default_color_help_bg variable contains the initial value of the 
  32691. color_help_bg variable when a new editor window is created. 
  32692.  
  32693. ____________ 
  32694.  
  32695. See also:  color_help_bg 
  32696.  
  32697.  
  32698. ΓòÉΓòÉΓòÉ 15.4.33. default_color_help_fg ΓòÉΓòÉΓòÉ
  32699.  
  32700. default_color_help_fg   Primitive 
  32701.  
  32702. Purpose: Defines foreground color used to draw text. 
  32703.  
  32704. ____________ 
  32705.  
  32706. Type: int default_color_help_fg 
  32707.  
  32708. ____________ 
  32709.  
  32710. Description: 
  32711.  
  32712. The default_color_help_fg variable contains the initial value of the 
  32713. color_help_fg variable when a new editor window is created. 
  32714.  
  32715. ____________ 
  32716.  
  32717. See also:  color_help_fg 
  32718.  
  32719.  
  32720. ΓòÉΓòÉΓòÉ 15.4.34. default_color_linecommands_bg ΓòÉΓòÉΓòÉ
  32721.  
  32722. default_color_linecommands_bg   Primitive 
  32723.  
  32724. Purpose: Defines background color used to draw text. 
  32725.  
  32726. ____________ 
  32727.  
  32728. Type: int default_color_linecommands_bg 
  32729.  
  32730. ____________ 
  32731.  
  32732. Description: 
  32733.  
  32734. The default_color_linecommands_bg variable contains the initial value of the 
  32735. color_linecommands_bg variable when a new text window is created. 
  32736.  
  32737. ____________ 
  32738.  
  32739. See also:  color_linecommands_bg 
  32740.  
  32741.  
  32742. ΓòÉΓòÉΓòÉ 15.4.35. default_color_linecommands_fg ΓòÉΓòÉΓòÉ
  32743.  
  32744. default_color_linecommands_fg   Primitive 
  32745.  
  32746. Purpose: Defines foreground color used to draw text. 
  32747.  
  32748. ____________ 
  32749.  
  32750. Type: int default_color_linecommands_fg 
  32751.  
  32752. ____________ 
  32753.  
  32754. Description: 
  32755.  
  32756. The default_color_linecommands_fg variable contains the initial value of the 
  32757. color_linecommands_fg variable when a new text window is created. 
  32758.  
  32759. ____________ 
  32760.  
  32761. See also:  color_linecommands_fg 
  32762.  
  32763.  
  32764. ΓòÉΓòÉΓòÉ 15.4.36. default_color_linenumbers_bg ΓòÉΓòÉΓòÉ
  32765.  
  32766. default_color_linenumbers_bg   Primitive 
  32767.  
  32768. Purpose: Defines background color used to draw text. 
  32769.  
  32770. ____________ 
  32771.  
  32772. Type: int default_color_linenumbers_bg 
  32773.  
  32774. ____________ 
  32775.  
  32776. Description: 
  32777.  
  32778. The default_color_linenumbers_bg variable contains the initial value of the 
  32779. color_linenumbers_bg variable when a new text window is created. 
  32780.  
  32781. ____________ 
  32782.  
  32783. See also:  color_linenumbers_bg 
  32784.  
  32785.  
  32786. ΓòÉΓòÉΓòÉ 15.4.37. default_color_linenumbers_fg ΓòÉΓòÉΓòÉ
  32787.  
  32788. default_color_linenumbers_fg   Primitive 
  32789.  
  32790. Purpose: Defines foreground color used to draw text. 
  32791.  
  32792. ____________ 
  32793.  
  32794. Type: int default_color_linenumbers_fg 
  32795.  
  32796. ____________ 
  32797.  
  32798. Description: 
  32799.  
  32800. The default_color_linenumbers_fg variable contains the initial value of the 
  32801. color_linenumbers_fg variable when a new text window is created. 
  32802.  
  32803. ____________ 
  32804.  
  32805. See also:  color_linenumbers_fg 
  32806.  
  32807.  
  32808. ΓòÉΓòÉΓòÉ 15.4.38. default_color_message_bg ΓòÉΓòÉΓòÉ
  32809.  
  32810. default_color_message_bg   Primitive 
  32811.  
  32812. Purpose: Defines background color used to draw text. 
  32813.  
  32814. ____________ 
  32815.  
  32816. Type: int default_color_message_bg 
  32817.  
  32818. ____________ 
  32819.  
  32820. Description: 
  32821.  
  32822. The default_color_message_bg variable contains the initial value of the 
  32823. color_message_bg variable when a new editor window is created. 
  32824.  
  32825. ____________ 
  32826.  
  32827. See also:  color_message_fg 
  32828.  
  32829.  
  32830. ΓòÉΓòÉΓòÉ 15.4.39. default_color_message_fg ΓòÉΓòÉΓòÉ
  32831.  
  32832. default_color_message_fg   Primitive 
  32833.  
  32834. Purpose: Defines foreground color used to draw text. 
  32835.  
  32836. ____________ 
  32837.  
  32838. Type: int default_color_message_fg 
  32839.  
  32840. ____________ 
  32841.  
  32842. Description: 
  32843.  
  32844. The default_color_message_fg variable contains the initial value of the 
  32845. color_message_fg variable when a new editor window is created. 
  32846.  
  32847. ____________ 
  32848.  
  32849. See also:  color_message_fg 
  32850.  
  32851.  
  32852. ΓòÉΓòÉΓòÉ 15.4.40. default_color_notify_bg ΓòÉΓòÉΓòÉ
  32853.  
  32854. default_color_notify_bg   Primitive 
  32855.  
  32856. Purpose: Defines background color used to draw text. 
  32857.  
  32858. ____________ 
  32859.  
  32860. Type: int default_color_notify_bg 
  32861.  
  32862. ____________ 
  32863.  
  32864. Description: 
  32865.  
  32866. The default_color_notify_bg variable contains the initial value of the 
  32867. color_notify_bg variable when a new editor window is created. 
  32868.  
  32869. ____________ 
  32870.  
  32871. See also:  color_notify_bg 
  32872.  
  32873.  
  32874. ΓòÉΓòÉΓòÉ 15.4.41. default_color_notify_fg ΓòÉΓòÉΓòÉ
  32875.  
  32876. default_color_notify_fg   Primitive 
  32877.  
  32878. Purpose: Defines foreground color used to draw text. 
  32879.  
  32880. ____________ 
  32881.  
  32882. Type: int default_color_notify_fg 
  32883.  
  32884. ____________ 
  32885.  
  32886. Description: 
  32887.  
  32888. The default_color_notify_fg variable contains the initial value of the 
  32889. color_notify_fg variable when a new editor window is created. 
  32890.  
  32891. ____________ 
  32892.  
  32893. See also:  color_notify_fg 
  32894.  
  32895.  
  32896. ΓòÉΓòÉΓòÉ 15.4.42. default_color_warning_bg ΓòÉΓòÉΓòÉ
  32897.  
  32898. default_color_warning_bg   Primitive 
  32899.  
  32900. Purpose: Defines background color used to draw text. 
  32901.  
  32902. ____________ 
  32903.  
  32904. Type: int default_color_warning_bg 
  32905.  
  32906. ____________ 
  32907.  
  32908. Description: 
  32909.  
  32910. The default_color_warning_bg variable contains the initial value of the 
  32911. color_warning_bg variable when a new editor window is created. 
  32912.  
  32913. ____________ 
  32914.  
  32915. See also:  color_warning_bg 
  32916.  
  32917.  
  32918. ΓòÉΓòÉΓòÉ 15.4.43. default_color_warning_fg ΓòÉΓòÉΓòÉ
  32919.  
  32920. default_color_warning_fg   Primitive 
  32921.  
  32922. Purpose: Defines foreground color used to draw text. 
  32923.  
  32924. ____________ 
  32925.  
  32926. Type: int default_color_warning_fg 
  32927.  
  32928. ____________ 
  32929.  
  32930. Description: 
  32931.  
  32932. The default_color_warning_fg variable contains the initial value of the 
  32933. color_warning_fg variable when a new editor window is created. 
  32934.  
  32935. ____________ 
  32936.  
  32937. See also:  color_warning_fg 
  32938.  
  32939.  
  32940. ΓòÉΓòÉΓòÉ 15.4.44. default_color_window_bg ΓòÉΓòÉΓòÉ
  32941.  
  32942. default_color_window_bg   Primitive 
  32943.  
  32944. Purpose: Defines background color used to draw text. 
  32945.  
  32946. ____________ 
  32947.  
  32948. Type: int default_color_window_bg 
  32949.  
  32950. ____________ 
  32951.  
  32952. Description: 
  32953.  
  32954. The default_color_window_bg variable contains the initial value of the 
  32955. color_window_bg variable when a new text window is created. 
  32956.  
  32957. ____________ 
  32958.  
  32959. See also:  color_window_bg 
  32960.  
  32961.  
  32962. ΓòÉΓòÉΓòÉ 15.4.45. default_color_window_fg ΓòÉΓòÉΓòÉ
  32963.  
  32964. default_color_window_fg   Primitive 
  32965.  
  32966. Purpose: Defines foreground color used to draw text. 
  32967.  
  32968. ____________ 
  32969.  
  32970. Type: int default_color_window_fg 
  32971.  
  32972. ____________ 
  32973.  
  32974. Description: 
  32975.  
  32976. The default_color_window_fg variable contains the initial value of the 
  32977. color_window_fg variable when a new text window is created. 
  32978.  
  32979. ____________ 
  32980.  
  32981. See also:  color_window_fg 
  32982.  
  32983.  
  32984. ΓòÉΓòÉΓòÉ 15.4.46. display_height ΓòÉΓòÉΓòÉ
  32985.  
  32986. display_height  read-only   Primitive 
  32987.  
  32988. Purpose: Stores the display height in lines. 
  32989.  
  32990. ____________ 
  32991.  
  32992. Type:   int display_height 
  32993.  
  32994. ____________ 
  32995.  
  32996. Description: The display_height variable contains the number of lines that are 
  32997. currently displayed.  This variable is maintained by the system and may not be 
  32998. modified by the user. 
  32999.  
  33000. ____________ 
  33001.  
  33002. See also:  display_width 
  33003.  
  33004.  
  33005. ΓòÉΓòÉΓòÉ 15.4.47. display_width ΓòÉΓòÉΓòÉ
  33006.  
  33007. display_width  read-only   Primitive 
  33008.  
  33009. Purpose: Stores the display width in columns. 
  33010.  
  33011. ____________ 
  33012.  
  33013. Type:   int display_width 
  33014.  
  33015. ____________ 
  33016.  
  33017. Description: 
  33018.  
  33019. The display_width variable contains the number of columns are currently 
  33020. displayed. This variable is maintained by the system and may not be modified by 
  33021. the user. 
  33022.  
  33023. ____________ 
  33024.  
  33025. See also:  display_height 
  33026.  
  33027.  
  33028. ΓòÉΓòÉΓòÉ 15.4.48. editor_ae ΓòÉΓòÉΓòÉ
  33029.  
  33030. editor_ae  Read-Only   Primitive 
  33031.  
  33032. Purpose: Contains the name of the .ae file that the editor is using. 
  33033.  
  33034. ____________ 
  33035.  
  33036. Type:   str editor_ae 
  33037.  
  33038. ____________ 
  33039.  
  33040. Description: 
  33041.  
  33042. The editor_ae variable contains the name of the .ae file that is used by the 
  33043. editor.  The default .ae file used is cpe.ae.  This can be changed by a command 
  33044. line option passed to the editor when it is started. 
  33045.  
  33046.  
  33047. ΓòÉΓòÉΓòÉ 15.4.49. editor_config ΓòÉΓòÉΓòÉ
  33048.  
  33049. editor_config   read only   Primitive 
  33050.  
  33051. Purpose: Contains the name of the config file that the editor is using. 
  33052.  
  33053. ____________ 
  33054.  
  33055. Type:   str editor_config 
  33056.  
  33057. ____________ 
  33058.  
  33059. Description: 
  33060.  
  33061. The editor_config variable contains the name of the configuration file used by 
  33062. the editor.  The default configuration file used is cpe.cfg. 
  33063.  
  33064.  
  33065. ΓòÉΓòÉΓòÉ 15.4.50. editor_helpfile ΓòÉΓòÉΓòÉ
  33066.  
  33067. editor_helpfile Read-Only   Primitive 
  33068.  
  33069. Purpose: Contains the name of the help file that the editor is using. 
  33070.  
  33071. ____________ 
  33072.  
  33073. Type:   str editor_helpfile 
  33074.  
  33075. ____________ 
  33076.  
  33077. Description: 
  33078.  
  33079. The editor_helpfile variable contains the name of the .hlp file the editor is 
  33080. currently using.  This value is set to cpe.hlp by default. 
  33081.  
  33082.  
  33083. ΓòÉΓòÉΓòÉ 15.4.51. editor_path_var ΓòÉΓòÉΓòÉ
  33084.  
  33085. editor_path_var  Read-Only   Primitive 
  33086.  
  33087. Purpose: Contains the name of the environment variable the editor uses to 
  33088. locate configuration files. 
  33089.  
  33090. ____________ 
  33091.  
  33092. Type:   str editor_path_var 
  33093.  
  33094. ____________ 
  33095.  
  33096. Description: 
  33097.  
  33098. The editor_path_var variable contains the name of the evironment variable used 
  33099. by the editor to locate system and configuration files. 
  33100.  
  33101.  
  33102. ΓòÉΓòÉΓòÉ 15.4.52. editor_title ΓòÉΓòÉΓòÉ
  33103.  
  33104. editor_title Read-Only   Primitive 
  33105.  
  33106. Purpose: Contains the title of the editor displayed on the title bar. 
  33107.  
  33108. ____________ 
  33109.  
  33110. Type:   str editor_title 
  33111.  
  33112. ____________ 
  33113.  
  33114. Description: 
  33115.  
  33116. The editor_title variable contains the title that the editor displays on it's 
  33117. main title bar. 
  33118.  
  33119.  
  33120. ΓòÉΓòÉΓòÉ 15.4.53. emulation_mode ΓòÉΓòÉΓòÉ
  33121.  
  33122. emulation_mode   Primitive 
  33123.  
  33124. Purpose: Stores name of emulation in use. 
  33125.  
  33126. ____________ 
  33127.  
  33128. Type:   str emulation_mode 
  33129.  
  33130. ____________ 
  33131.  
  33132. Description: 
  33133.  
  33134. This variable is set by the various emulation modes to contain the name of the 
  33135. mode currently in use. 
  33136.  
  33137.  
  33138. ΓòÉΓòÉΓòÉ 15.4.54. emulations ΓòÉΓòÉΓòÉ
  33139.  
  33140. emulations   PEL 
  33141.  
  33142. Purpose:  Stores the name and function name available in the editor. 
  33143.  
  33144. ____________ 
  33145.  
  33146. Type:    str emulations[] 
  33147.  
  33148. ____________ 
  33149.  
  33150. Description: The emulations[] array is used to keep track of the emulation 
  33151. modes available to the user.  The index in the function name used to initialize 
  33152. the emualtion, and the element is a text string that is used for display in the 
  33153. settings_notebook() and Quick Settings.  If you define your own emulation and 
  33154. would like it to appear in the notebooks, you must add it to this array. 
  33155.  
  33156. ____________ 
  33157.  
  33158. See also: 
  33159.  
  33160. o emulation_mode 
  33161.  
  33162.  
  33163. ΓòÉΓòÉΓòÉ 15.4.55. pause_on_error ΓòÉΓòÉΓòÉ
  33164.  
  33165. pause_on_error   Primitive 
  33166.  
  33167. Purpose: Dictates whether or not to pause between messages. 
  33168.  
  33169. ____________ 
  33170.  
  33171. Type: int pause_on_error 
  33172.  
  33173. ____________ 
  33174.  
  33175. Description: When the pause_on_error variable is a non-zero value, the editor 
  33176. will pause after each error or warning message until some input is received 
  33177. from the keyboard.  By default a message box is displayed that requires user 
  33178. input before continuing.  After receiving input, the next message, if any, is 
  33179. displayed. 
  33180.  
  33181. When this variable is set to zero, messages are displayed as fast as they are 
  33182. generated on the status bar.  In some instances, this will not provide 
  33183. sufficient time for messages to be read. 
  33184.  
  33185. ____________ 
  33186.  
  33187. See also:   warning(), error() 
  33188.  
  33189.  
  33190. ΓòÉΓòÉΓòÉ 15.4.56. prev_command ΓòÉΓòÉΓòÉ
  33191.  
  33192. prev_command  read-only   Primitive 
  33193.  
  33194. Purpose: Stores the id of the previously executed function. 
  33195.  
  33196. ____________ 
  33197.  
  33198. Type: funcid prev_command 
  33199.  
  33200. ____________ 
  33201.  
  33202. Description: The prev_command variable contains the function id of the function 
  33203. executed from the keyboard immediately preceding the current.  This includes 
  33204. any functions which have been assigned to keys. 
  33205.  
  33206. The function id stored in prev_command may be converted to a string containing 
  33207. the name of the function.  This is done through use of the function_name() 
  33208. function.  This variable may only be modified by the system. 
  33209.  
  33210. ____________ 
  33211.  
  33212. See also:   function_caller(), current_command() 
  33213.  
  33214.  
  33215. ΓòÉΓòÉΓòÉ 15.4.57. prev_key ΓòÉΓòÉΓòÉ
  33216.  
  33217. prev_key  read-only   Primitive 
  33218.  
  33219. Purpose: Stores the keystroke preceding most recently received. 
  33220.  
  33221. ____________ 
  33222.  
  33223. Type: int prev_key 
  33224.  
  33225. ____________ 
  33226.  
  33227. Description: The prev_key variable contains the value of key combination that 
  33228. preceded the keystroke most recently entered by the user.  If the key pressed 
  33229. was an ordinary character, its ASCII value will be found in the least 
  33230. significant byte of prev_key. If, however, the key returned an extended code, 
  33231. the least significant byte will be null and the code will be in the second byte 
  33232. of prev_key. 
  33233.  
  33234. ____________ 
  33235.  
  33236. See also:  current_key() 
  33237.  
  33238.  
  33239. ΓòÉΓòÉΓòÉ 15.4.58. save_flags ΓòÉΓòÉΓòÉ
  33240.  
  33241. save_flags   PEL 
  33242.  
  33243. Purpose:  Stores what is saved in the config file on exit. 
  33244.  
  33245. ____________ 
  33246.  
  33247. Type:    int save_flags 
  33248.  
  33249. ____________ 
  33250.  
  33251. Description: The save_flags variable indicates what will be saved upon exit of 
  33252. the editor.  The save settings may be set on the save page of the settings 
  33253. notebook or set manually with the help of the masks listed in the SAVE_ 
  33254. section. 
  33255.  
  33256. ____________ 
  33257.  
  33258.  
  33259. ΓòÉΓòÉΓòÉ 15.4.59. save_state ΓòÉΓòÉΓòÉ
  33260.  
  33261. save_state  PEL   PEL 
  33262.  
  33263. Purpose: Tells whether the editor state should be saved on exit. 
  33264.  
  33265. ____________ 
  33266.  
  33267. Type: int save_state 
  33268.  
  33269. ____________ 
  33270.  
  33271. Description: The save_state variable dictates whether or not the editor will 
  33272. save certain information about its state in the configuration file when 
  33273. exiting.  This information may then be used later to restore the state which 
  33274. existed at exit. 
  33275.  
  33276. The file in which this information is saved is named CPE.CFG in the $STATE$ 
  33277. section.  It resides in the editor Home Directory or in the directory pointed 
  33278. to by the CPE environment variable.  Among the status information that can be 
  33279. stored in the configuration file are details about each buffer and window. 
  33280.  
  33281. The buffer information which is stored in the CPE.CFG file includes:  the 
  33282. buffer name, the filename associated with the buffer, the buffer flags, the 
  33283. current line and column position within the buffer and the tab settings. 
  33284.  
  33285. The window information which is stored in the CPE.CFG file includes: the window 
  33286. name, visible_ .. strings, linenumber format, window colors, scroll variables, 
  33287. font information, and buffers visible in windows. 
  33288.  
  33289. By default, save_state is set to a one (TRUE) value.  When this variable is 
  33290. zero, state information is not saved on exit and any state information 
  33291. previously stored is not used. 
  33292.  
  33293. If no file is specified for editing when you invoke the editor and save_state 
  33294. is TRUE, the editor will define each of the buffers and windows described in 
  33295. the configuration file.  In addition, state values stored in the configuration 
  33296. file are assigned to the appropriate variables.  The result is a state very 
  33297. similar to the one which existed when you last exited the editor. If a file to 
  33298. edit is specified on the command line the state information is not used 
  33299. regardless of the condition of the save_state variable. 
  33300.  
  33301.  
  33302. ΓòÉΓòÉΓòÉ 15.4.60. temp_path ΓòÉΓòÉΓòÉ
  33303.  
  33304. temp_path   Primitive 
  33305.  
  33306. Purpose: Names directories where temporary files are made. 
  33307.  
  33308. ____________ 
  33309.  
  33310. Type: str temp_path 
  33311.  
  33312. ____________ 
  33313.  
  33314. Description: The temp_path variable contains the name of the directory where 
  33315. the editor creates temporary files, when necessary. 
  33316.  
  33317. The initial value for this variable is taken from two environment variables. 
  33318. If a TMP environment variable has been defined, the directory it names becomes 
  33319. the first directory in the temp_path list. If an environment variable named 
  33320. TEMP has been defined, the directory named by that variable is added to 
  33321. temp_path. 
  33322.  
  33323. Normally the user concatenates other directory names onto the temp_path 
  33324. variable without removing existing directory names. 
  33325.  
  33326.  
  33327. ΓòÉΓòÉΓòÉ 15.4.61. version ΓòÉΓòÉΓòÉ
  33328.  
  33329. version   Primitive 
  33330.  
  33331. Purpose: Stores the release version number of the editor. 
  33332.  
  33333. ____________ 
  33334.  
  33335. Type: str version 
  33336.  
  33337. ____________ 
  33338.  
  33339. Description: The version constant contains the release version number of the 
  33340. editor executable currently in use.  Consulting this variable enables the user 
  33341. or user written function to determine what features are available. 
  33342.  
  33343.  
  33344. ΓòÉΓòÉΓòÉ 15.5. Event Handling ΓòÉΓòÉΓòÉ
  33345.  
  33346. EVENT. 
  33347.           Constant names for editor events. 
  33348. idle_threshold 
  33349.           Sets length of inactivity which triggers an event. 
  33350. idle_time 
  33351.           Tells the number of seconds since the last keystroke. 
  33352.  
  33353.  
  33354. ΓòÉΓòÉΓòÉ 15.5.1. EVENT. ΓòÉΓòÉΓòÉ
  33355.  
  33356. EVENT.   Primitive 
  33357.  
  33358. Purpose:  Constant names for editor events. 
  33359.  
  33360. ____________ 
  33361.  
  33362. Type:    const int EVENT. 
  33363.  
  33364. ____________ 
  33365.  
  33366. Description: The constants defined in the EVENT. section are the names for the 
  33367. editor defined events. 
  33368.  
  33369. o EVENT.BUFFER_CREATED 
  33370. o EVENT.CLOSING_REMOTE_WINDOW 
  33371. o EVENT.CTRL_BREAK 
  33372. o EVENT.DELETE_CHARS 
  33373. o EVENT.DELETING_BUFFER 
  33374. o EVENT.DELETING_WINDOW 
  33375. o EVENT.DISPLAY_UPDATE 
  33376. o EVENT.EDITOR_RUNNING 
  33377. o EVENT.EDIT_FILE_SAVE 
  33378. o EVENT.EMULATION_CHANGED 
  33379. o EVENT.ERROR 
  33380. o EVENT.EXIT_EDITOR 
  33381. o EVENT.FILE_DROPPED 
  33382. o EVENT.FIRST_MOD 
  33383. o EVENT.FUNCTION_CHANGED 
  33384. o EVENT.HELP_INVOKED 
  33385. o EVENT.IDLE_THRESHOLD 
  33386. o EVENT.IDLE_TIME 
  33387. o EVENT.INSERT_KEY 
  33388. o EVENT.INSERT_NEWLINE 
  33389. o EVENT.INSERT_STRING 
  33390. o EVENT.INVALID_PCHAR 
  33391. o EVENT.KEYPRESS 
  33392. o EVENT.KEYPRESS_AFTER 
  33393. o EVENT.LMOUSE_DRAG 
  33394. o EVENT.MENU_COMMAND 
  33395. o EVENT.MMOUSE_DRAG 
  33396. o EVENT.MOUSE_LEFT_CLICK1 
  33397. o EVENT.MOUSE_LEFT_CLICK2 
  33398. o EVENT.MOUSE_LEFT_DOWN 
  33399. o EVENT.MOUSE_LEFT_UP 
  33400. o EVENT.MOUSE_MID_CLICK1 
  33401. o EVENT.MOUSE_MID_CLICK2 
  33402. o EVENT.MOUSE_MID_DOWN 
  33403. o EVENT.MOUSE_MID_UP 
  33404. o EVENT.MOUSE_RIGHT_CLICK1 
  33405. o EVENT.MOUSE_RIGHT_CLICK2 
  33406. o EVENT.MOUSE_RIGHT_DOWN 
  33407. o EVENT.MOUSE_RIGHT_UP 
  33408. o EVENT.NEW_CURNT_BUFFER 
  33409. o EVENT.NEW_CURNT_SCREEN 
  33410. o EVENT.NEW_CURNT_WINDOW 
  33411. o EVENT.NEW_EDIT_FILE 
  33412. o EVENT.NEW_EMPTY_BUFFER 
  33413. o EVENT.NEW_SCREEN_SIZE 
  33414. o EVENT.PAGECHANGED 
  33415. o EVENT.PIPE_DATA 
  33416. o EVENT.PROCESS_COMPLETE 
  33417. o EVENT.READ_ONLY_MOD 
  33418. o EVENT.RESIZE_EDITWIN 
  33419. o EVENT.RMOUSE_DRAG 
  33420. o EVENT.SCROLL_HORZ 
  33421. o EVENT.SCROLL_VERT 
  33422. o EVENT.SHELL_EXIT 
  33423. o EVENT.SYSTEM_MENU_KEY 
  33424. o EVENT.TEMP_SPACE_OVFLW 
  33425. o EVENT.TOOLBAR_COMMAND 
  33426. o EVENT_TRACKING_DONE 
  33427. o EVENT.UNASSGN_KEY 
  33428. o EVENT.WINDOW_MODE_CHANGE 
  33429.  
  33430. ____________ 
  33431.  
  33432. See also: attach_event_handler(), query_event(). 
  33433.  
  33434.  
  33435. ΓòÉΓòÉΓòÉ 15.5.2. idle_threshold ΓòÉΓòÉΓòÉ
  33436.  
  33437. idle_threshold   Primitive 
  33438.  
  33439. Purpose: Sets length of inactivity which triggers an event. 
  33440.  
  33441. ____________ 
  33442.  
  33443. Type: int idle_threshold 
  33444.  
  33445. ____________ 
  33446.  
  33447. Description: 
  33448.  
  33449. The value stored in the idle_threshold variable is the number of seconds that 
  33450. may elapse without keyboard activity before the idle event is triggered.  This 
  33451. threshold is reached when the idle_time variable is the same or greater than 
  33452. idle_threshold. 
  33453.  
  33454. The default value for this variable is large enough that the idle event is 
  33455. effectively turned off. 
  33456.  
  33457.  
  33458. ΓòÉΓòÉΓòÉ 15.5.3. idle_time ΓòÉΓòÉΓòÉ
  33459.  
  33460. idle_time   Primitive 
  33461.  
  33462. Purpose: Tells the number of seconds since the last keystroke. 
  33463.  
  33464. ____________ 
  33465.  
  33466. Type: int idle_time 
  33467.  
  33468. ____________ 
  33469.  
  33470. Description: 
  33471.  
  33472. The variable idle_time stores the elapsed time in seconds since the last input 
  33473. was received from the keyboard.  This variable may be modified in order to 
  33474. hasten or delay reaching the idle event threshold, defined by the 
  33475. idle_threshold variable. 
  33476.  
  33477.  
  33478. ΓòÉΓòÉΓòÉ 15.5.4. fast_help ΓòÉΓòÉΓòÉ
  33479.  
  33480. fast_help 
  33481.  
  33482. Purpose:  Flag which toggles fast_help on or off. 
  33483.  
  33484. ____________ 
  33485.  
  33486. Type:  fast_help 
  33487.  
  33488. ____________ 
  33489.  
  33490. Description:  If this function is set to 0, the editor searches for the topic 
  33491. in each NDX file to see if it is in the help file before it is added to the 
  33492. list which the user selects from.  If this function is not set to 0, the editor 
  33493. does not search for the topic until the user selects a help file from the 
  33494. possible help files for that extension. 
  33495.  
  33496. ____________ 
  33497.  
  33498. See also:  first_help, ndx_help(), display_help_item() 
  33499.  
  33500.  
  33501. ΓòÉΓòÉΓòÉ 15.5.5. first_help ΓòÉΓòÉΓòÉ
  33502.  
  33503. first_help 
  33504.  
  33505. Purpose:  Flag which toggles first_help on or off. 
  33506.  
  33507. ____________ 
  33508.  
  33509. Type:  first_help 
  33510.  
  33511. ____________ 
  33512.  
  33513. Description:  If this function is not set to 0 and fast_help is set to 0, the 
  33514. first NDX file that has an entry matching the desired topic is used, and no 
  33515. further NDX files are searched. 
  33516.  
  33517. ____________ 
  33518.  
  33519. See also:  fast_help, ndx_help(), display_help_item() 
  33520.  
  33521.  
  33522. ΓòÉΓòÉΓòÉ 15.6. Key mapping ΓòÉΓòÉΓòÉ
  33523.  
  33524. KEYCODE_ 
  33525.           Constants for commonly used keycodes. 
  33526. ascii_keymap 
  33527.           Predefined keyboard of just the ASCII character keys. 
  33528. buffer_keymap 
  33529.           Identifies keymap that locally overlays current default. 
  33530. current_keymap 
  33531.           Stores the id of the keymap presently in use. 
  33532. default_key_action_mode 
  33533.           Specifies function to be executed if a key is not assigned in the 
  33534.           current keymap. 
  33535. empty_keymap 
  33536.           Stores id of keyboard definition with no assignments. 
  33537. factory_keymap 
  33538.           Predefined keyboard of standard editor keys. 
  33539. playingback 
  33540.           Indicates whether a keyboard macro is being played back. 
  33541. recording 
  33542.           Indicates whether a keyboard macro is being recorded back. 
  33543. window_keymap 
  33544.           Identifies the keymap that locally overlays the current default. 
  33545.  
  33546.  
  33547. ΓòÉΓòÉΓòÉ 15.6.1. KEYCODE_ ΓòÉΓòÉΓòÉ
  33548.  
  33549. KEYCODE_   Primitive 
  33550.  
  33551. Purpose:  Constants for commonly used keycodes. 
  33552.  
  33553. ____________ 
  33554.  
  33555. Type:    const int KEYCODE_ 
  33556.  
  33557. ____________ 
  33558.  
  33559. Description: The constants defined in the KEYCODE_ section are the most 
  33560. commonly used scancodes.  They can be used for checking the return value from 
  33561. the key_to_int() function. 
  33562.  
  33563. o KEYCODE_ALT 
  33564. o KEYCODE_ALT_0 
  33565. o KEYCODE_ALT_1 
  33566. o KEYCODE_ALT_2 
  33567. o KEYCODE_ALT_3 
  33568. o KEYCODE_ALT_4 
  33569. o KEYCODE_ALT_5 
  33570. o KEYCODE_ALT_6 
  33571. o KEYCODE_ALT_7 
  33572. o KEYCODE_ALT_8 
  33573. o KEYCODE_ALT_9 
  33574. o KEYCODE_CENTER 
  33575. o KEYCODE_CTRL 
  33576. o KEYCODE_CTRL_AT 
  33577. o KEYCODE_CTRL_CENTER 
  33578. o KEYCODE_CTRL_DOWN 
  33579. o KEYCODE_CTRL_END 
  33580. o KEYCODE_CTRL_HOME 
  33581. o KEYCODE_CTRL_LEFT 
  33582. o KEYCODE_CTRL_NUM_DOWN 
  33583. o KEYCODE_CTRL_NUM_END 
  33584. o KEYCODE_CTRL_NUM_HOME 
  33585. o KEYCODE_CTRL_NUM_LEFT 
  33586. o KEYCODE_CTRL_NUM_PAGEDOWN 
  33587. o KEYCODE_CTRL_NUM_PAGEUP 
  33588. o KEYCODE_CTRL_NUM_RIGHT 
  33589. o KEYCODE_CTRL_NUM_UP 
  33590. o KEYCODE_CTRL_PAGEDOWN 
  33591. o KEYCODE_CTRL_PAGEUP 
  33592. o KEYCODE_CTRL_RIGHT 
  33593. o KEYCODE_CTRL_UP 
  33594. o KEYCODE_DOWN 
  33595. o KEYCODE_END 
  33596. o KEYCODE_ENTER 
  33597. o KEYCODE_ESC 
  33598. o KEYCODE_F1 
  33599. o KEYCODE_F10 
  33600. o KEYCODE_F11 
  33601. o KEYCODE_F12 
  33602. o KEYCODE_F2 
  33603. o KEYCODE_F3 
  33604. o KEYCODE_F4 
  33605. o KEYCODE_F5 
  33606. o KEYCODE_F6 
  33607. o KEYCODE_F7 
  33608. o KEYCODE_F8 
  33609. o KEYCODE_F9 
  33610. o KEYCODE_HOME 
  33611. o KEYCODE_KEYPAD_ENTER 
  33612. o KEYCODE_LEFT 
  33613. o KEYCODE_NUM_DOWN 
  33614. o KEYCODE_NUM_END 
  33615. o KEYCODE_NUM_HOME 
  33616. o KEYCODE_NUM_LEFT 
  33617. o KEYCODE_NUM_PAGEDOWN 
  33618. o KEYCODE_NUM_PAGEUP 
  33619. o KEYCODE_NUM_RIGHT 
  33620. o KEYCODE_NUM_UP 
  33621. o KEYCODE_PAGEDOWN 
  33622. o KEYCODE_PAGEUP 
  33623. o KEYCODE_RIGHT 
  33624. o KEYCODE_SHIFT 
  33625. o KEYCODE_TAB 
  33626. o KEYCODE_UP 
  33627.  
  33628. ____________ 
  33629.  
  33630.  
  33631. ΓòÉΓòÉΓòÉ 15.6.2. ascii_keymap ΓòÉΓòÉΓòÉ
  33632.  
  33633. ascii_keymap  read-only   Primitive 
  33634.  
  33635. Purpose: Predefined keyboard of just the ASCII character keys. 
  33636.  
  33637. ____________ 
  33638.  
  33639. Type:   keymapid ascii_keymap 
  33640.  
  33641. ____________ 
  33642.  
  33643. Description: 
  33644.  
  33645. The ascii_keymap variable stores the id of a keymap which has only the keys 
  33646. corresponding to ASCII values defined. In this keymap, keys which return an 
  33647. ASCII value (1 to 255) are bound to the insert_key() function.  That is, they 
  33648. insert that character in the buffer.  This is the extent of the key 
  33649. definitions.  Key sequences such as [Alt][X] or [F1] will have no corresponding 
  33650. function with this keyboard definition.  The key, however, functions 
  33651. independently of any keymap and is therefore always defined. 
  33652.  
  33653. This variable is primarily used when creating a new keymap.  Used as an 
  33654. argument to the create_keymap() function, ascii_keymap provides a method of 
  33655. initializing a new keymap to a minimally useful definition.  You may then build 
  33656. upon this definition as you please. 
  33657.  
  33658. This variable serves as a constant value and may not be modified by the user. 
  33659.  
  33660. ____________ 
  33661.  
  33662. See also:  factory_keymap, empty_keymap 
  33663.  
  33664.  
  33665. ΓòÉΓòÉΓòÉ 15.6.3. buffer_keymap ΓòÉΓòÉΓòÉ
  33666.  
  33667. buffer_keymap   Primitive 
  33668.  
  33669. Purpose: Identifies keymap that locally overlays current default. 
  33670.  
  33671. ____________ 
  33672.  
  33673. Type:   keymapid buffer_keymap 
  33674.  
  33675. ____________ 
  33676.  
  33677. Description: 
  33678.  
  33679. Each buffer has a buffer_keymap variable associated with it.  The buffer_keymap 
  33680. contains the keymap id of a keyboard definition intended to replace a portion 
  33681. or all of the current_keymap definition. 
  33682.  
  33683. This local keyboard definition will only apply to the buffer in which the 
  33684. assignment is made.  Any keystrokes which have not been defined by the local 
  33685. keyboard definition will be handled by the keymap described by the 
  33686. current_keymap variable. 
  33687.  
  33688.  
  33689. ΓòÉΓòÉΓòÉ 15.6.4. current_keymap ΓòÉΓòÉΓòÉ
  33690.  
  33691. current_keymap   Primitive 
  33692.  
  33693. Purpose: Stores the id of the keymap presently in use. 
  33694.  
  33695. ____________ 
  33696.  
  33697. Type: keymapid current_keymap 
  33698.  
  33699. ____________ 
  33700.  
  33701. Description: 
  33702.  
  33703. The current_keymap variable contains the keymap id of the keyboard definition 
  33704. currently in use.  This is the keymap in effect regardless of which buffer is 
  33705. currently being edited.  The keymap currently in use may be changed by 
  33706. assigning a new value to this variable.  If an invalid keymap id is assigned to 
  33707. current_keymap, the assignment will have no effect. 
  33708.  
  33709. The actual key assignments in effect may also be influenced by another keymap 
  33710. which overlays the one indicated by this variable.  These keymaps used as 
  33711. overlays are local in that they only apply to a specific buffer.  The 
  33712. buffer_keymap variable indicates when a keymap has been overlaid by another. 
  33713.  
  33714. During the construction of a new keymap it is common to assign an blank 
  33715. keyboard definition (empty_keymap) to current_keymap and then add key 
  33716. assignments.  If, however, the editor is allowed to proceed using an empty 
  33717. keymap the editor will become unusable. 
  33718.  
  33719. ____________ 
  33720.  
  33721. See also:  ascii_keymap, empty_keymap, factory_keymap 
  33722.  
  33723.  
  33724. ΓòÉΓòÉΓòÉ 15.6.5. default_key_action ΓòÉΓòÉΓòÉ
  33725.  
  33726. default_key_action   Primitive 
  33727.  
  33728. Purpose: Specifies function to be executed if a key is not assigned in the 
  33729. current keymap. 
  33730.  
  33731. ____________ 
  33732.  
  33733. Type:   funcid default_key_action 
  33734.  
  33735. ____________ 
  33736.  
  33737. Description: 
  33738.  
  33739. The default_key_action variable contains the function id of the function to run 
  33740. if the key pressed is not defined in the current keymap.  If this variable is 
  33741. not set then the beep() function is called when a non-mapped key is pressed. 
  33742. The example below illustrates how to pop up a warning box everytime a key is 
  33743. pressed that is not in the currently loaded keymap. 
  33744.  
  33745.  
  33746. ΓòÉΓòÉΓòÉ 15.6.6. empty_keymap ΓòÉΓòÉΓòÉ
  33747.  
  33748. empty_keymap  read-only   Primitive 
  33749.  
  33750. Purpose: Stores id of keyboard definition with no assignments. 
  33751.  
  33752. ____________ 
  33753.  
  33754. Type:   keymapid empty_keymap 
  33755.  
  33756. ____________ 
  33757.  
  33758. Description: 
  33759.  
  33760. The empty_keymap variable stores the keymap id number of a predefined keymap 
  33761. which contains no functions assigned to any of the keys.  Typing exit commands 
  33762. or even simple characters is ineffective with this keyboard definition. 
  33763.  
  33764. This variable is primarily used when creating a new keymap.  Used as an 
  33765. argument to the create_keymap() function, empty_keymap provides a method of 
  33766. building a keymap from scratch.  There are other predefined keymaps that allow 
  33767. you to build upon or modify a more substantial keyboard definition. 
  33768.  
  33769. This variable serves as a constant value and may not be modified by the user. 
  33770.  
  33771. ____________ 
  33772.  
  33773. See also:  factory_keymap, ascii_keymap 
  33774.  
  33775.  
  33776. ΓòÉΓòÉΓòÉ 15.6.7. factory_keymap ΓòÉΓòÉΓòÉ
  33777.  
  33778. factory_keymap read-only   Primitive 
  33779.  
  33780. Purpose: Predefined keyboard of standard editor keys. 
  33781.  
  33782. ____________ 
  33783.  
  33784. Type:   keymapid factory_keymap 
  33785.  
  33786. ____________ 
  33787.  
  33788. Description: 
  33789.  
  33790. The factory_keymap variable stores the id of a keymap containing the minimal 
  33791. editor key assignments.  This is the keymap that is put in effect when 
  33792. operating the editor without its function library. Do not confuse this keymap 
  33793. with the keymap defined in the native() function. 
  33794.  
  33795. This variable is primarily used when creating a new keymap.  Used as an 
  33796. argument to the create_keymap() function, factory_keymap provides a method of 
  33797. initializing a new keymap to the standard definition.  You may then modify its 
  33798. definition to suit. 
  33799.  
  33800. factory_keymap is a constant value and may not be modified by the user. 
  33801.  
  33802. ____________ 
  33803.  
  33804. See also:  empty_keymap, ascii_keymap 
  33805.  
  33806.  
  33807. ΓòÉΓòÉΓòÉ 15.6.8. playingback ΓòÉΓòÉΓòÉ
  33808.  
  33809. playingback   PEL 
  33810.  
  33811. Purpose:  Indicates whether a keyboard macro is being played back. 
  33812.  
  33813. ____________ 
  33814.  
  33815. Type:    int playingback 
  33816.  
  33817. ____________ 
  33818.  
  33819. Description: The playingback variable stores a value (either TRUE or FALSE), 
  33820. indicating whether a keyboard macro is being played.  If it is TRUE, a macro is 
  33821. being played, otherwise a macro is not being played. 
  33822.  
  33823. ____________ 
  33824.  
  33825.  
  33826. ΓòÉΓòÉΓòÉ 15.6.9. recording ΓòÉΓòÉΓòÉ
  33827.  
  33828. recording   PEL 
  33829.  
  33830. Purpose:  Indicates whether a keyboard macro is being recorded back. 
  33831.  
  33832. ____________ 
  33833.  
  33834. Type:    int recording 
  33835.  
  33836. ____________ 
  33837.  
  33838. Description: The recording variable stores a value (either TRUE or FALSE), 
  33839. indicating whether a keyboard macro is being recorded.  If it is TRUE, a macro 
  33840. is being recorded, otherwise a macro is not being recorded. 
  33841.  
  33842. ____________ 
  33843.  
  33844.  
  33845. ΓòÉΓòÉΓòÉ 15.6.10. window_keymap ΓòÉΓòÉΓòÉ
  33846.  
  33847. window_keymap   Primitive 
  33848.  
  33849. Purpose: Identifies the keymap that locally overlays the current default. 
  33850.  
  33851. ____________ 
  33852.  
  33853. Type: keymapid window_keymap 
  33854.  
  33855. ____________ 
  33856.  
  33857. Description: Each window has an associated window_keymap variable.  The 
  33858. window_keymap variable contains the keymapid of a keyboard definition intended 
  33859. to replace a portion or all of the current_keymap definition. This local 
  33860. keyboard definition only applies to the window in which the assignment is made. 
  33861. Any keystrokes which have not been defined by the local keyboard definition 
  33862. will be handled by the keymap described by the current_keymap variable. 
  33863.  
  33864. ____________ 
  33865.  
  33866. See also: current_keymap, buffer_keymap 
  33867.  
  33868.  
  33869. ΓòÉΓòÉΓòÉ 15.7. Menus ΓòÉΓòÉΓòÉ
  33870.  
  33871. IDM_ 
  33872.           Menu item constants. 
  33873. MI_ 
  33874.           Constants for menu item flags. 
  33875. POP_ 
  33876.           Constants for the pop up menu items. 
  33877.  
  33878.  
  33879. ΓòÉΓòÉΓòÉ 15.7.1. IDM_ ΓòÉΓòÉΓòÉ
  33880.  
  33881. IDM_   PEL 
  33882.  
  33883. Purpose:  Menu item constants. 
  33884.  
  33885. ____________ 
  33886.  
  33887. Type:    const int IDM_ 
  33888.  
  33889. ____________ 
  33890.  
  33891. Description: The IDM_ constants are used when performing functions in the menus 
  33892. category.  They provide an easy method to specify the menu item the calling 
  33893. fuction will affect. 
  33894.  
  33895. o IDM_ABOUT 
  33896. o IDM_ADDFILE 
  33897. o IDM_ARRANGE_ICONS 
  33898. o IDM_ARRANGE_WINDOW 
  33899. o IDM_BOOKMARK 
  33900. o IDM_BOOKMARKLIST 
  33901. o IDM_BUFFERLIST 
  33902. o IDM_BUFFERS 
  33903. o IDM_BUFFER_MASK 
  33904. o IDM_BUFFER_SETTINGS 
  33905. o IDM_CASCADE_BUFFERS 
  33906. o IDM_CASCADE_WINDOW 
  33907. o IDM_CHANGE 
  33908. o IDM_CLOSE 
  33909. o IDM_CLOSE_ALL_WINDOWS 
  33910. o IDM_CLOSE_WINDOW 
  33911. o IDM_COLOR 
  33912. o IDM_COMMAND 
  33913. o IDM_COMPILE 
  33914. o IDM_COPY 
  33915. o IDM_CTAGS_LOCATE 
  33916. o IDM_CTAGS_MAKE 
  33917. o IDM_CUT 
  33918. o IDM_DELETE 
  33919. o IDM_DIALOG_LIST 
  33920. o IDM_DOSBOX 
  33921. o IDM_DOSSHELL 
  33922. o IDM_EDIT 
  33923. o IDM_EDITOR_SETTINGS 
  33924. o IDM_ERRORFILE 
  33925. o IDM_EXIT 
  33926. o IDM_FILE 
  33927. o IDM_FIND 
  33928. o IDM_FINDAGAIN 
  33929. o IDM_FINDMATCHING 
  33930. o IDM_FONT 
  33931. o IDM_GENERAL 
  33932. o IDM_GET 
  33933. o IDM_GOTOLINE 
  33934. o IDM_HELP 
  33935. o IDM_HSPLIT_WINDOW 
  33936. o IDM_INDENT 
  33937. o IDM_INDEX 
  33938. o IDM_INSERTFILE 
  33939. o IDM_ISEARCH 
  33940. o IDM_KEYWORDHELP 
  33941. o IDM_KEY_BINDINGS 
  33942. o IDM_LOWER 
  33943. o IDM_MARKMATCHING 
  33944. o IDM_MARKNEXTMATCHING 
  33945. o IDM_NAVIGATE 
  33946. o IDM_NEW 
  33947. o IDM_NEW_WINDOW 
  33948. o IDM_NEXT 
  33949. o IDM_NEXTERR 
  33950. o IDM_NEXT_WINDOW 
  33951. o IDM_OPENCLOSE 
  33952. o IDM_OPTIONS 
  33953. o IDM_OUTDENT 
  33954. o IDM_PASTE 
  33955. o IDM_PELTAGS_MAKE 
  33956. o IDM_PEL_DEBUGGER 
  33957. o IDM_PREV 
  33958. o IDM_PREVERR 
  33959. o IDM_PREV_WINDOW 
  33960. o IDM_PRINT 
  33961. o IDM_PRINTSEL 
  33962. o IDM_PUT 
  33963. o IDM_PVCS 
  33964. o IDM_REDO 
  33965. o IDM_ROUTINE 
  33966. o IDM_SAVE 
  33967. o IDM_SAVEALL 
  33968. o IDM_SAVEAS 
  33969. o IDM_SAVE_SETTINGS 
  33970. o IDM_SAVE_STATE 
  33971. o IDM_SEARCH 
  33972. o IDM_STATUSBAR 
  33973. o IDM_TAGS 
  33974. o IDM_TILE_BUFFERS 
  33975. o IDM_TILE_WINDOW 
  33976. o IDM_TOGGLE_LINENUMBER 
  33977. o IDM_TOGGLE_SCROLLBARS 
  33978. o IDM_TOOLBAR 
  33979. o IDM_TOOLS 
  33980. o IDM_UNDER_CURSOR 
  33981. o IDM_UNDO 
  33982. o IDM_UPPER 
  33983. o IDM_USING 
  33984. o IDM_VCS 
  33985. o IDM_VDIFF 
  33986. o IDM_VLOG 
  33987. o IDM_VSPLIT_WINDOW 
  33988. o IDM_WINDOW 
  33989. o IDM_WINDOW_MODE 
  33990. o IDM_WINDOW_SETTINGS 
  33991. o IDM_XANALYZER 
  33992. o IDM_XBATCHDEBUGGER 
  33993. o IDM_XCICSDEBUGGER 
  33994. o IDM_XCOBOL_OPTIONS 
  33995. o IDM_XCOMPILER 
  33996. o IDM_XEDITANOTHER 
  33997. o IDM_XRETROFIT 
  33998. o IDM_XSYNTAX 
  33999.  
  34000. ____________ 
  34001.  
  34002.  
  34003. ΓòÉΓòÉΓòÉ 15.7.2. MI_ ΓòÉΓòÉΓòÉ
  34004.  
  34005. MI_   PEL 
  34006.  
  34007. Purpose:  Constants for menu item flags. 
  34008.  
  34009. ____________ 
  34010.  
  34011. Type:    const int MI_ 
  34012.  
  34013. ____________ 
  34014.  
  34015. Description: The constants defined in the MI_ section con be used as flags to 
  34016. functions like modify_menuitem(). 
  34017.  
  34018. o MI_CHECKED 
  34019. o MI_DEFAULT 
  34020. o MI_DISABLED 
  34021. o MI_ENABLED 
  34022. o MI_FUNCTIONID 
  34023. o MI_HELPID 
  34024. o MI_HELPTEXT 
  34025. o MI_ITEMCOUNT 
  34026. o MI_ITEMTEXT 
  34027. o MI_MENUBREAK 
  34028. o MI_MENUHANDLE 
  34029. o MI_MENUITEM 
  34030. o MI_SEPARATOR 
  34031. o MI_SUBDEFAULT 
  34032. o MI_SUBMENU 
  34033. o MI_UNCHECKED 
  34034.  
  34035. ____________ 
  34036.  
  34037.  
  34038. ΓòÉΓòÉΓòÉ 15.7.3. POP_ ΓòÉΓòÉΓòÉ
  34039.  
  34040. POP_   PEL 
  34041.  
  34042. Purpose:  Constants for the pop up menu items. 
  34043.  
  34044. ____________ 
  34045.  
  34046. Type:    const int POP_ 
  34047.  
  34048. ____________ 
  34049.  
  34050. Description: The constants defined in the POP_ section are used to modify the 
  34051. popup menu items with functions like modify_menuitem(). 
  34052.  
  34053. o POP_COPY 
  34054. o POP_CUT 
  34055. o POP_DELETE 
  34056. o POP_FIND 
  34057. o POP_FINDMATCHING 
  34058. o POP_INDENT 
  34059. o POP_INSERTFILE 
  34060. o POP_KEYWORDHELP 
  34061. o POP_LOWER 
  34062. o POP_MARKMATCHING 
  34063. o POP_MARKNEXTMATCHING 
  34064. o POP_MENU_START 
  34065. o POP_OUTDENT 
  34066. o POP_PASTE 
  34067. o POP_UPPER 
  34068. o POP_WRITEBLOCK 
  34069.  
  34070. ____________ 
  34071.  
  34072.  
  34073. ΓòÉΓòÉΓòÉ 15.8. Miscellaneous ΓòÉΓòÉΓòÉ
  34074.  
  34075. FONT_ 
  34076. Font name constants. 
  34077. backup_file_ext 
  34078.           Names extension applied to backup files. 
  34079. color_error_bg 
  34080.           Defines background color used to draw text. 
  34081. color_error_fg 
  34082.           Defines foreground color used to draw text. 
  34083. color_help_bg 
  34084.           Defines background color used to draw help text. 
  34085. color_help_fg 
  34086.           Defines foreground color used to draw text. 
  34087. create_new_bufwin 
  34088.           Indicator of one buffer per window mode. 
  34089. currentRecordString 
  34090.           Holds the current keyboard macro string. 
  34091. debugger_running 
  34092.           Indicates whether the PEL debugger is running. 
  34093. dropped_file 
  34094.           Contains the name of the file(s) that were dragged and dropped onto 
  34095.           the editor. 
  34096. extension_array 
  34097.           Store information specific to an extension 
  34098. linenumber_format 
  34099.           Determines if and how line numbers are displayed. 
  34100. linenumber_width 
  34101.           Store the width of the linenumber field 
  34102. matching_pairs 
  34103.           Stores the list of matching pairs for the current buffer 
  34104. message_level 
  34105.           Indicates to what degree of messages should be displayed. 
  34106. print_device 
  34107.           Stores device or file name used for printing. 
  34108. process_id 
  34109.           Contains the process id of a background process. 
  34110. process_rc 
  34111.           Contains the return code of a background process. 
  34112. screen_height() 
  34113.           Height of the entire screen in pixels. 
  34114. screen_width() 
  34115.           Width of the entire screen in pixels. 
  34116. section_pattern 
  34117.           Define what delimits a section. 
  34118. status_bar_flags 
  34119.           Indicates what appears on the status bar 
  34120. text_char_height 
  34121.           Store the height of text characters. 
  34122. text_char_width 
  34123.           Store the width of text characters. 
  34124.  
  34125.  
  34126. ΓòÉΓòÉΓòÉ 15.8.1. FONT_ ΓòÉΓòÉΓòÉ
  34127.  
  34128. FONT_   PEL 
  34129.  
  34130. Purpose:  Font name constants. 
  34131.  
  34132. ____________ 
  34133.  
  34134. Type:    const int FONT_ 
  34135.  
  34136. ____________ 
  34137.  
  34138. Description: The constants defined int the FONT_ section can be used to set the 
  34139. editor font. 
  34140.  
  34141. o FONT_ANY 
  34142. o FONT_BOLD 
  34143. o FONT_DECORATIVE 
  34144. o FONT_FIXEDPITCH 
  34145. o FONT_ITALIC 
  34146. o FONT_LIGHT 
  34147. o FONT_MODERN 
  34148. o FONT_MODERN10 
  34149. o FONT_MODERN12 
  34150. o FONT_MODERN8 
  34151. o FONT_NONE 
  34152. o FONT_NORMAL 
  34153. o FONT_ROMAN 
  34154. o FONT_SCRIPT 
  34155. o FONT_STRIKETHRU 
  34156. o FONT_SWISS 
  34157. o FONT_UNDERLINE 
  34158.  
  34159. ____________ 
  34160.  
  34161.  
  34162. ΓòÉΓòÉΓòÉ 15.8.2. backup_file_ext ΓòÉΓòÉΓòÉ
  34163.  
  34164. backup_file_ext   PEL 
  34165.  
  34166. Purpose: Names extension applied to backup files. 
  34167.  
  34168. ____________ 
  34169.  
  34170. Type:   str backup_file_ext 
  34171.  
  34172. ____________ 
  34173.  
  34174. Description: 
  34175.  
  34176. The backup_file_ext variable specifies the extension with which backup files 
  34177. are identified.  This variable may optionally contain a leading dot or period. 
  34178. The default value of this variable is an empty string, which implies that the 
  34179. extension is not changed.  A single asterisk, "*", may also be used to signify 
  34180. that the extension is not changed. 
  34181.  
  34182. The variable backup_directory determines where the backup file will be created. 
  34183. The backup directory may be specified as, or through error become, the same 
  34184. directory as the file being edited.  When this occurs and no backup_file_ext 
  34185. has been specified, the extension ".BAK" is used to avoid overwriting the 
  34186. original file. 
  34187.  
  34188. ____________ 
  34189.  
  34190. See also:  backup_directory 
  34191.  
  34192.  
  34193. ΓòÉΓòÉΓòÉ 15.8.3. color_error_bg ΓòÉΓòÉΓòÉ
  34194.  
  34195. color_error_bg   Primitive 
  34196.  
  34197. Purpose: Defines background color used to draw text. 
  34198.  
  34199. ____________ 
  34200.  
  34201. Type: int color_error_bg 
  34202.  
  34203. ____________ 
  34204.  
  34205. Description: 
  34206.  
  34207. Each editor window has a color_error_bg variable associated with it.  This 
  34208. variable contains the background color of error text when errors are displayed 
  34209. on the status bar. 
  34210.  
  34211. The initial value is copied from the global variable default_color_error_bg. 
  34212.  
  34213. ____________ 
  34214.  
  34215. See also:  error(), color_message_fg, color_message_fg, color_notify_fg, 
  34216. color_notify_fg, color_warning_fg, color_warning_fg, color_error_fg 
  34217.  
  34218.  
  34219. ΓòÉΓòÉΓòÉ 15.8.4. color_error_fg ΓòÉΓòÉΓòÉ
  34220.  
  34221. color_error_fg   Primitive 
  34222.  
  34223. Purpose: Defines foreground color used to draw text. 
  34224.  
  34225. ____________ 
  34226.  
  34227. Type: int color_error_fg 
  34228.  
  34229. ____________ 
  34230.  
  34231. Description: 
  34232.  
  34233. Each editor window has a color_error_fg variable associated with it.  This 
  34234. variable contains the foreground color of error text when errors are displayed 
  34235. on the status bar. 
  34236.  
  34237. The initial value is copied from the global variable default_color_error_fg. 
  34238.  
  34239. ____________ 
  34240.  
  34241. See also:   error(), color_message_bg, color_message_fg, color_notify_bg, 
  34242. color_notify_fg, color_warning_bg, color_warning_fg, color_error_bg 
  34243.  
  34244.  
  34245. ΓòÉΓòÉΓòÉ 15.8.5. create_new_bufwin ΓòÉΓòÉΓòÉ
  34246.  
  34247. create_new_bufwin   Primitive 
  34248.  
  34249. Purpose:  Indicator of one buffer per window mode. 
  34250.  
  34251. ____________ 
  34252.  
  34253. Type:    int create_new_bufwin 
  34254.  
  34255. ____________ 
  34256.  
  34257. Description: The create_new_bufwin variable indicates whether the editor is in 
  34258. one buffer per window mode. 
  34259.  
  34260. ____________ 
  34261.  
  34262. See also: 
  34263.  
  34264. o create_buf_and_win() 
  34265.  
  34266.  
  34267. ΓòÉΓòÉΓòÉ 15.8.6. currentRecordString ΓòÉΓòÉΓòÉ
  34268.  
  34269. currentRecordString   PEL 
  34270.  
  34271. Purpose:  Holds the current keyboard macro string. 
  34272.  
  34273. ____________ 
  34274.  
  34275. Type:    str currentRecordString 
  34276.  
  34277. ____________ 
  34278.  
  34279. Description: The currentRecordString is the string used to record keystrokes 
  34280. for a keyboard macro.  The commands are stored in this string for later use in 
  34281. a playback() function. 
  34282.  
  34283. ____________ 
  34284.  
  34285.  
  34286. ΓòÉΓòÉΓòÉ 15.8.7. debugger_running ΓòÉΓòÉΓòÉ
  34287.  
  34288. debugger_running   PEL 
  34289.  
  34290. Purpose:  Indicates whether the PEL debugger is running. 
  34291.  
  34292. ____________ 
  34293.  
  34294. Type:    int debugger_running 
  34295.  
  34296. ____________ 
  34297.  
  34298. Description: The debugger_running variable stores a value (either TRUE or 
  34299. FALSE), indicating whether the PEL debugger is currently running.  If it is 
  34300. TRUE, the debugger is running, otherwise a the debugger is not running. 
  34301.  
  34302. ____________ 
  34303.  
  34304.  
  34305. ΓòÉΓòÉΓòÉ 15.8.8. default_ ΓòÉΓòÉΓòÉ
  34306.  
  34307. default_   PEL 
  34308.  
  34309. Purpose: Defines initial value of window or buffer variable. 
  34310.  
  34311. ____________ 
  34312.  
  34313. Type: 
  34314.  
  34315. o str default_buffer_eof_string 
  34316. o str default_buffer_eol_string 
  34317. o int default_buffer_flags 
  34318. o str default_buffer_tabs 
  34319. o str default_linenumber_format 
  34320. o int default_scroll_context_bottom 
  34321. o int default_scroll_context_left 
  34322. o int default_scroll_context_right 
  34323. o int default_scroll_context_top 
  34324. o int default_scroll_means_pan 
  34325. o int default_scroll_unit_horizontal 
  34326. o int default_scroll_unit_vertical 
  34327. o str default_visible_end_buffer 
  34328. o str default_visible_newlines 
  34329. o str default_visible_spaces 
  34330. o str default_visible_tabs 
  34331. o str default_visible_virtual_lines 
  34332. o str default_visible_virtual_spaces 
  34333. o int default_window_flags 
  34334. o int default_window_page_offset 
  34335. o int default_window_page_overlap 
  34336. o int default_wp_left_margin 
  34337. o int default_wp_right_margin 
  34338.  
  34339. ____________ 
  34340.  
  34341. Description: Each buffer or window has a series of variables associated with 
  34342. it.  These are variables that may require different values for different 
  34343. buffers.  For example, one buffer may require tab stops at every four columns 
  34344. while another requires them at every eight. This series of variables obtain 
  34345. their initial value from another global set of variables at the time the buffer 
  34346. or window is created.  These special variables are the default_ series of 
  34347. variables. 
  34348.  
  34349. The global variable corresponding to the buffer or window variable has the same 
  34350. name as the buffer or window variable but prefixed by default_.  The value of 
  34351. the global variable is copied into like-named variable at the time the buffer 
  34352. is created. This local variable is then an attribute of the buffer or window. 
  34353.  
  34354. For example, each buffer has a buffer_tabs variable associated with it.  Each 
  34355. buffer_tabs variable derives its initial value from the single global variable 
  34356. named default_buffer_tabs.  After the buffer has been created, the buffer_tabs 
  34357. variable may be accessed or changed whenever that buffer is current.  The value 
  34358. of the variable default_buffer_tabs may be changed at any time, but the new 
  34359. value is only used by buffers subsequently created. 
  34360.  
  34361. The default values for the default_ buffer variables are as follows: 
  34362.  
  34363. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  34364. ΓöéVariable name                 ΓöéValue     Γöé
  34365. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34366. Γöédefault_buffer_eof_string     Γöé""        Γöé
  34367. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34368. Γöédefault_buffer_eol_string     Γöé"\r\n"    Γöé
  34369. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34370. Γöédefault_buffer_flags          Γöés 0       Γöé
  34371. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34372. Γöédefault_buffer_tabs           Γöé"9  17"   Γöé
  34373. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34374. Γöédefault_wp_left_margin        Γöé1         Γöé
  34375. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34376. Γöédefault_wp_right_margin       Γöé77        Γöé
  34377. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  34378.  The default values for the default_ window variables are as follows: 
  34379.  
  34380. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  34381. ΓöéVariable name                 ΓöéValue     Γöé
  34382. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34383. Γöédefault_linenumber_format     Γöé""        Γöé
  34384. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34385. Γöédefault_scroll_means_pan      Γöé1         Γöé
  34386. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34387. Γöédefault_visible_end_buffer    Γöé""        Γöé
  34388. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34389. Γöédefault_visible_newlines      Γöé""        Γöé
  34390. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34391. Γöédefault_visible_spaces        Γöé" "       Γöé
  34392. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34393. Γöédefault_visible_tabs          Γöé" "       Γöé
  34394. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34395. Γöédefault_visible_virtual_lines Γöé""        Γöé
  34396. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34397. Γöédefault_visible_virtual_spacesΓöé" "       Γöé
  34398. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34399. Γöédefault_scroll_context_bottom Γöé0         Γöé
  34400. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34401. Γöédefault_scroll_context_left   Γöé0         Γöé
  34402. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34403. Γöédefault_scroll_context_right  Γöé0         Γöé
  34404. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34405. Γöédefault_scroll_context_top    Γöé0         Γöé
  34406. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34407. Γöédefault_scroll_unit_horizontalΓöé1         Γöé
  34408. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34409. Γöédefault_scroll_unit_vertical  Γöé1         Γöé
  34410. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34411. Γöédefault_window_flags          Γöé0x1091    Γöé
  34412. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34413. Γöédefault_window_page_offset    Γöé0         Γöé
  34414. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  34415. Γöédefault_window_page_overlap   Γöé1         Γöé
  34416. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  34417.  
  34418.  
  34419. ΓòÉΓòÉΓòÉ 15.8.9. default_matching_pairs ΓòÉΓòÉΓòÉ
  34420.  
  34421. default_matching_pairs   PEL 
  34422.  
  34423. Purpose:  Stores the default list of matching pairs. 
  34424.  
  34425. ____________ 
  34426.  
  34427. Type:    str default_matching_pairs 
  34428.  
  34429. ____________ 
  34430.  
  34431. Description: The default_matching_pairs variable is the default list of symbols 
  34432. that are considered matching pairs.  The matching_pairs variable is used when 
  34433. the goto_matching() function is called.  If the matching_pairs has not been set 
  34434. for an extension, the default_matching_pairs variable is used instead. 
  34435.  
  34436. ____________ 
  34437.  
  34438.  
  34439. ΓòÉΓòÉΓòÉ 15.8.10. dropped_file ΓòÉΓòÉΓòÉ
  34440.  
  34441. dropped_file  Read-Only   Primitive 
  34442.  
  34443. Purpose: Contains the name of the file(s) that were dragged and dropped onto 
  34444. the editor. 
  34445.  
  34446. ____________ 
  34447.  
  34448. Type:   str dropped_file 
  34449.  
  34450. ____________ 
  34451.  
  34452. Description: 
  34453.  
  34454. This variable is set when a file or files is dropped onto a running editor. 
  34455. The EVENT.FILE_DROPPED event is generated when a file is dropped on the editor. 
  34456.  
  34457.  
  34458. ΓòÉΓòÉΓòÉ 15.8.11. extension_array ΓòÉΓòÉΓòÉ
  34459.  
  34460. extension_array   PEL 
  34461.  
  34462. Purpose:  Store information specific to an extension 
  34463.  
  34464. ____________ 
  34465.  
  34466. Type:    pelarray extension_array 
  34467.  
  34468. ____________ 
  34469.  
  34470. Description: The extension_array stores information that is specific to a an 
  34471. extension.  Information in the array includes: tab stops, margins, 
  34472. matching_pairs, and word wrap.  These settings are stored in the editor 
  34473. configuration file and can be set in the settings notebook on the extensions 
  34474. page. 
  34475.  
  34476. ____________ 
  34477.  
  34478.  
  34479. ΓòÉΓòÉΓòÉ 15.8.12. linenumber_format ΓòÉΓòÉΓòÉ
  34480.  
  34481. linenumber_format   Primitive 
  34482.  
  34483. Purpose: Determines if and how line numbers are displayed. 
  34484.  
  34485. ____________ 
  34486.  
  34487. Type: str linenumber_format 
  34488.  
  34489. ____________ 
  34490.  
  34491. Description: Each window has a linenumber_format variable associated with it. 
  34492. The linenumber_format variable stores a format string used in displaying line 
  34493. numbers.  The rules for interpreting the format string are largely a subset of 
  34494. those used by fprintf().  This string, after formatting, is displayed to the 
  34495. left of each line of text. 
  34496.  
  34497. This string may be empty, in which case line numbers are turned off.  When line 
  34498. numbers are to be displayed this string will follow the form below: 
  34499.  
  34500.     [leading_text]%[[0]n]c[trailing_text] 
  34501.  
  34502. Where leading_text and trailing_text are strings you wish to have precede and 
  34503. follow each line number, n is the number of columns allotted to line numbers 
  34504. and c is a format character indicating the numeric base to be used.  The 
  34505. leading_text may not contain a percent sign.  Values allowed for n are 1 to 9. 
  34506. If the line number would occupy more than the specified number of columns the 
  34507. most significant digits are not displayed.  The optional 0 preceding n 
  34508. specifies that the number is left- filled with zeros rather than spaces. 
  34509. Values for c are shown below: 
  34510.  
  34511. Format Char    Description 
  34512. b              binary notation 
  34513. d              decimal notation 
  34514. o              octal notation 
  34515. x              hexadecimal notation 
  34516. X              hexadecimal, letters are upper case 
  34517.  
  34518. The format string will normally contain a percent sign, a number, a format 
  34519. character and a character to separate line numbers from the beginning of text. 
  34520. An example is shown below: 
  34521.  
  34522.    linenumber_format = "%4d:"" 
  34523.  
  34524. This variable takes its initial value at the time the window is created from 
  34525. the variable default_linenumber_format.  The initial value of that variable is 
  34526. " ".  Invalid formats are treated the same as " ". 
  34527.  
  34528. ____________ 
  34529.  
  34530. See also:   color_linenumbers_fg,color_linenumbers_bg 
  34531.  
  34532.  
  34533. ΓòÉΓòÉΓòÉ 15.8.13. linenumber_width ΓòÉΓòÉΓòÉ
  34534.  
  34535. linenumber_width   Primitive 
  34536.  
  34537. Purpose:  Store the width of the linenumber field 
  34538.  
  34539. ____________ 
  34540.  
  34541. Type:    int linenumber_width 
  34542.  
  34543. ____________ 
  34544.  
  34545. Description: The linenumber_width variable stores the width of the linenumber 
  34546. field in characters. 
  34547.  
  34548. ____________ 
  34549.  
  34550. See also: linenumber_format 
  34551.  
  34552.  
  34553. ΓòÉΓòÉΓòÉ 15.8.14. matching_pairs ΓòÉΓòÉΓòÉ
  34554.  
  34555. matching_pairs   PEL 
  34556.  
  34557. Purpose:  Stores the list of matching pairs for the current buffer 
  34558.  
  34559. ____________ 
  34560.  
  34561. Type:    str matching_pairs 
  34562.  
  34563. ____________ 
  34564.  
  34565. Description: The matching_pairs variable is the list of symbols that are 
  34566. considered matching pairs.  It is used when the goto_matching() function is 
  34567. called.  The matching_pairs variable can be set per file extension on the 
  34568. extensions page of the settings notebook. 
  34569.  
  34570. ____________ 
  34571.  
  34572.  
  34573. ΓòÉΓòÉΓòÉ 15.8.15. message_level ΓòÉΓòÉΓòÉ
  34574.  
  34575. message_level   Primitive 
  34576.  
  34577. Purpose: Indicates to what degree of messages should be displayed. 
  34578.  
  34579. ____________ 
  34580.  
  34581. Type: int message_level 
  34582.  
  34583. ____________ 
  34584.  
  34585. Description: The message_level variable allows the user to limit, to varying 
  34586. degrees, messages from the editor system or macros.  These are the messages 
  34587. displayed by the functions message(), warning(), notify() and error() as well 
  34588. as internal messages.  They appear in a message box or on the status bar. 
  34589.  
  34590. The useful values for this variable are shown below, along with their meaning: 
  34591.  
  34592. Level     Description 
  34593. 0         All messages are displayed. 
  34594. 1         Suppress message() output. 
  34595. 2         Display only warning() and error(). 
  34596. 3         No messages displayed. 
  34597.  
  34598. If other values are assigned to this variable, all messages will be printed. 
  34599. The default value for this variable is 1. 
  34600.  
  34601. ____________ 
  34602.  
  34603. See also:   message(), notify(), warning(), error() 
  34604.  
  34605.  
  34606. ΓòÉΓòÉΓòÉ 15.8.16. print_device ΓòÉΓòÉΓòÉ
  34607.  
  34608. print_device   Primitive 
  34609.  
  34610. Purpose: Stores device or file name used for printing. 
  34611.  
  34612. ____________ 
  34613.  
  34614. Type: str print_device 
  34615.  
  34616. ____________ 
  34617.  
  34618. Description: The print_device string names the device to which the 
  34619. print_buffer() function will write.  Its default value is "prn".  It may be set 
  34620. to such values as "lpt2" or "myfile.txt" as desired. 
  34621.  
  34622.  
  34623. ΓòÉΓòÉΓòÉ 15.8.17. process_id ΓòÉΓòÉΓòÉ
  34624.  
  34625. process_id   Primitive 
  34626.  
  34627. Purpose:  Contains the process id of a background process. 
  34628.  
  34629. ____________ 
  34630.  
  34631. Type:    Read-Only long 
  34632.  
  34633. ____________ 
  34634.  
  34635. Description: The process_id variable stores the process id of the most recently 
  34636. completed background process or the process that generated some pipe data.  See 
  34637. the system function on how to start a background process. When a background 
  34638. process is complete an EVENT.PROCESS_COMPLETE event is generated.  When pipe 
  34639. data is available an EVENT.PIPE_DATA event is generated,  This variable may 
  34640. only be modified by the system. 
  34641.  
  34642.  
  34643. ΓòÉΓòÉΓòÉ 15.8.18. process_rc ΓòÉΓòÉΓòÉ
  34644.  
  34645. process_rc   Primitive 
  34646.  
  34647. Purpose:  Contains the return code of a background process. 
  34648.  
  34649. ____________ 
  34650.  
  34651. Type:    Read-Only long 
  34652.  
  34653. ____________ 
  34654.  
  34655. Description: The process_rc variable stores the return code of the most 
  34656. recently completed background process.  See the system function on how to start 
  34657. a background process.  When a background process is complete an 
  34658. EVENT.PROCESS_COMPLETE event is generated.  This variable may only be modified 
  34659. by the system. 
  34660.  
  34661.  
  34662. ΓòÉΓòÉΓòÉ 15.8.19. screen_height ΓòÉΓòÉΓòÉ
  34663.  
  34664. screen_height  Read-Only   Primitive 
  34665.  
  34666. Purpose: Height of the entire screen in pixels. 
  34667.  
  34668. ____________ 
  34669.  
  34670. Type:   str screen_height 
  34671.  
  34672. ____________ 
  34673.  
  34674. Description: 
  34675.  
  34676. The screen_height variable contains the height of the entire display screen in 
  34677. pixels. 
  34678.  
  34679.  
  34680. ΓòÉΓòÉΓòÉ 15.8.20. screen_width ΓòÉΓòÉΓòÉ
  34681.  
  34682. screen_width  Read-Only   Primitive 
  34683.  
  34684. Purpose: Width of the entire screen in pixels. 
  34685.  
  34686. ____________ 
  34687.  
  34688. Type:   str screen_width 
  34689.  
  34690. ____________ 
  34691.  
  34692. Description: 
  34693.  
  34694. The screen_width variable contains the width of the entire display screen in 
  34695. pixels. 
  34696.  
  34697.  
  34698. ΓòÉΓòÉΓòÉ 15.8.21. section_pattern ΓòÉΓòÉΓòÉ
  34699.  
  34700. section_pattern   PEL 
  34701.  
  34702. Purpose:  Define what delimits a section. 
  34703.  
  34704. ____________ 
  34705.  
  34706. Type:    str section_pattern 
  34707.  
  34708. ____________ 
  34709.  
  34710. Description: The section_pattern variable defines what delimits a section. This 
  34711. variable is used in the section motion functions. 
  34712.  
  34713. ____________ 
  34714.  
  34715.  
  34716. ΓòÉΓòÉΓòÉ 15.8.22. status_bar_flags ΓòÉΓòÉΓòÉ
  34717.  
  34718. status_bar_flags   Primitive 
  34719.  
  34720. Purpose:  Indicates what appears on the status bar 
  34721.  
  34722. ____________ 
  34723.  
  34724. Type:    int status_bar_flags 
  34725.  
  34726. ____________ 
  34727.  
  34728. Description: The status_bar_flags variable is analagous to the buffer_flags 
  34729. variable.  It holds the current state of the status bar and what is displayed 
  34730. there.  The flags may be set on the status bar page of the settings notebook. 
  34731. To help set or check the flags manually there are several status bar flag 
  34732. masks. The masks are listed in the STB_ section. 
  34733.  
  34734. ____________ 
  34735.  
  34736.  
  34737. ΓòÉΓòÉΓòÉ 15.8.23. text_char_height ΓòÉΓòÉΓòÉ
  34738.  
  34739. text_char_height   Primitive 
  34740.  
  34741. Purpose:  Store the height of text characters. 
  34742.  
  34743. ____________ 
  34744.  
  34745. Type:    int text_char_height 
  34746.  
  34747. ____________ 
  34748.  
  34749. Description: The text_char_height stores the height of text characters in 
  34750. pixels. This variable is changed when the font changes. 
  34751.  
  34752. ____________ 
  34753.  
  34754.  
  34755. ΓòÉΓòÉΓòÉ 15.8.24. text_char_width ΓòÉΓòÉΓòÉ
  34756.  
  34757. text_char_width   Primitive 
  34758.  
  34759. Purpose:  Store the width of text characters. 
  34760.  
  34761. ____________ 
  34762.  
  34763. Type:    int text_char_width 
  34764.  
  34765. ____________ 
  34766.  
  34767. Description: The text_char_width stores the width of text characters in pixels. 
  34768. This variable is changed when the font changes. 
  34769.  
  34770. ____________ 
  34771.  
  34772.  
  34773. ΓòÉΓòÉΓòÉ 15.9. Motion ΓòÉΓòÉΓòÉ
  34774.  
  34775. scroll_context_bottom 
  34776.           Scrolling margin honored by cursor at screen bottom. 
  34777. scroll_context_left 
  34778.           Scrolling margin honored by cursor at screen left. 
  34779. scroll_context_right 
  34780.           Scrolling margin honored by cursor at screen right. 
  34781. scroll_context_top 
  34782.           Scrolling margin honored by cursor at screen top. 
  34783. scroll_means_pan 
  34784.           Indicates whether movements apply to cursor or text. 
  34785. scroll_unit_horizontal 
  34786.           Stores number of columns in horizontal scrolling unit. 
  34787. scroll_unit_vertical 
  34788.           Stores the number of lines in vertical scrolling unit. 
  34789.  
  34790.  
  34791. ΓòÉΓòÉΓòÉ 15.9.1. scroll_context_bottom ΓòÉΓòÉΓòÉ
  34792.  
  34793. scroll_context_bottom   Primitive 
  34794.  
  34795. Purpose: Scrolling margin honored by cursor at screen bottom. 
  34796.  
  34797. ____________ 
  34798.  
  34799. Type: int scroll_context_bottom 
  34800.  
  34801. ____________ 
  34802.  
  34803. Description: Each window has a scroll_context_bottom variable associated with 
  34804. it.  The value stored in scroll_context_bottom is used to determine when to 
  34805. scroll the contents of the edit window upward.  The editor will keep at least 
  34806. this number of lines between the cursor and the bottom border of the window. 
  34807.  
  34808. When actions would otherwise place the cursor less than the number of lines 
  34809. indicated by scroll_context_bottom from the border, the window is scrolled to 
  34810. compensate. 
  34811.  
  34812. This is used to provide a definable amount of context around the area where 
  34813. text modifications are taking place. 
  34814.  
  34815. The scroll_context_bottom variable takes its initial value from the 
  34816. default_scroll_context_bottom at the time the window is created.  Assigning a 
  34817. value less than zero to this variable is treated the same as zero. 
  34818.  
  34819. ____________ 
  34820.  
  34821. See also:   scroll_context_left, scroll_context_right, scroll_context_top 
  34822.  
  34823.  
  34824. ΓòÉΓòÉΓòÉ 15.9.2. scroll_context_left ΓòÉΓòÉΓòÉ
  34825.  
  34826. scroll_context_left   Primitive 
  34827.  
  34828. Purpose: Scrolling margin honored by cursor at screen left. 
  34829.  
  34830. ____________ 
  34831.  
  34832. Type: int scroll_context_left 
  34833.  
  34834. ____________ 
  34835.  
  34836. Description: Each window has a scroll_context_left variable associated with it. 
  34837. The value stored in scroll_context_left is used to determine when to scroll the 
  34838. contents of the edit window to the right.  The editor will attempt to keep at 
  34839. least this number of columns between the cursor and the left border of the 
  34840. window. 
  34841.  
  34842. When actions would otherwise place the cursor less than the number of columns 
  34843. indicated by scroll_context_left from the border, the window is scrolled to 
  34844. compensate. 
  34845.  
  34846. The exception to this action is when the text is already scrolled all the way 
  34847. to the right.  In this case, the cursor may be moved to the edge of the window. 
  34848.  
  34849. This is used to provide a definable amount of context around the area where 
  34850. text modifications are taking place. 
  34851.  
  34852. The scroll_context_left variable takes its initial value from the 
  34853. default_scroll_context_left at the time the window is created.  Assigning a 
  34854. value less than zero to this variable is treated the same as zero. 
  34855.  
  34856. ____________ 
  34857.  
  34858. See also:   scroll_context_bottom, scroll_context_right, scroll_context_top 
  34859.  
  34860.  
  34861. ΓòÉΓòÉΓòÉ 15.9.3. scroll_context_right ΓòÉΓòÉΓòÉ
  34862.  
  34863. scroll_context_right   Primitive 
  34864.  
  34865. Purpose: Scrolling margin honored by cursor at screen right. 
  34866.  
  34867. ____________ 
  34868.  
  34869. Type: int scroll_context_right 
  34870.  
  34871. ____________ 
  34872.  
  34873. Description: Each window has a scroll_context_right variable associated with 
  34874. it.  The value stored in scroll_context_right is used to determine when to 
  34875. scroll the contents of the edit window to the left. The editor will keep at 
  34876. least this number of columns between the cursor and the right border of the 
  34877. window. 
  34878.  
  34879. When actions would otherwise place the cursor less than the number of columns 
  34880. indicated by scroll_context_right from the border, the window is scrolled to 
  34881. compensate. 
  34882.  
  34883. This is used to provide a definable amount of context around the area where 
  34884. text modifications are taking place. 
  34885.  
  34886. The scroll_context_right variable takes its initial value from the 
  34887. default_scroll_context_right at the time the window is created.  Assigning a 
  34888. value less than zero to this variable is treated the same as zero. 
  34889.  
  34890. ____________ 
  34891.  
  34892. See also:   scroll_context_left, scroll_context_bottom, scroll_context_top 
  34893.  
  34894.  
  34895. ΓòÉΓòÉΓòÉ 15.9.4. scroll_context_top ΓòÉΓòÉΓòÉ
  34896.  
  34897. scroll_context_top   Primitive 
  34898.  
  34899. Purpose: Scrolling margin honored by cursor at screen top. 
  34900.  
  34901. ____________ 
  34902.  
  34903. Type: int scroll_context_top 
  34904.  
  34905. ____________ 
  34906.  
  34907. Description: Each window has a scroll_context_top variable associated with it. 
  34908. The value stored in scroll_context_top is used to determine when to scroll the 
  34909. contents of the edit window down.  The editor will keep at least this number of 
  34910. lines between the cursor and the top border of the window. 
  34911.  
  34912. When actions would otherwise place the cursor less than the number of columns 
  34913. indicated by scroll_context_top from the border, the window is scrolled to 
  34914. compensate. 
  34915.  
  34916. The exception to this action is when the text is already scrolled to the top of 
  34917. the buffer.  In this case, the cursor may be moved to the top edge of the 
  34918. window. 
  34919.  
  34920. This variable is used to provide a defined amount of context around the area 
  34921. where text modifications are taking place. 
  34922.  
  34923. The scroll_context_top variable takes its initial value from the 
  34924. default_scroll_context_top at the time the window is created.  Assigning a 
  34925. value less than zero to this variable is treated the same as zero. 
  34926.  
  34927. ____________ 
  34928.  
  34929. See also:   scroll_context_left, scroll_context_bottom, scroll_context_right 
  34930.  
  34931.  
  34932. ΓòÉΓòÉΓòÉ 15.9.5. scroll_means_pan ΓòÉΓòÉΓòÉ
  34933.  
  34934. scroll_means_pan   Primitive 
  34935.  
  34936. Purpose: Indicates whether movements apply to cursor or text. 
  34937.  
  34938. ____________ 
  34939.  
  34940. Type: int scroll_means_pan 
  34941.  
  34942. ____________ 
  34943.  
  34944. Description: Each window has a scroll_means_pan variable associated with it. 
  34945. When this variable is set to zero, cursor and other operations generally have 
  34946. the effect of moving the cursor in relationship to the window. 
  34947.  
  34948. When scroll_means_pan is other than zero, the position of the cursor within the 
  34949. window is preserved.  The text in the window moves to compensate. 
  34950.  
  34951. Typing with the editor in this mode may remind you of how the typing ball on 
  34952. many typewriters stays in one place while the carriage moves by.  Scrolling 
  34953. text up and down, on the other hand, may remind you of an airplane simulator. 
  34954.  
  34955. Another way of looking at it is as follows:  When scroll_means_pan is 0, The 
  34956. editor attempts to preserve the cursor position relative to its location in the 
  34957. buffer.  When scroll_means_pan is 1, the editor preserves the cursor position 
  34958. relative to the window. 
  34959.  
  34960. The scroll_means_pan variable takes its initial value from the 
  34961. default_scroll_means_pan at the time the window is created. 
  34962.  
  34963. The Scroll Lock key is used by the higher level scroll functions to complement 
  34964. the value of scroll_means_pan.  This has the effect of reversing the sense of 
  34965. scroll_means_pan.  When Scroll Lock is toggled on, functions that use 
  34966. scroll_means_pan will complement its value before using it.  When Scroll Lock 
  34967. is off the uncomplemented value is used. 
  34968.  
  34969. ____________ 
  34970.  
  34971. See also:   scroll_horizontal(), scroll_vertical(), page_up(), page_down() 
  34972.  
  34973.  
  34974. ΓòÉΓòÉΓòÉ 15.9.6. scroll_unit_horizontal ΓòÉΓòÉΓòÉ
  34975.  
  34976. scroll_unit_horizontal   Primitive 
  34977.  
  34978. Purpose: Stores number of columns in horizontal scrolling unit. 
  34979.  
  34980. ____________ 
  34981.  
  34982. Type: int scroll_unit_horizontal 
  34983.  
  34984. ____________ 
  34985.  
  34986. Description: Each window has a scroll_unit_horizontal variable associated with 
  34987. it.  The scroll_unit_horizontal variable defines the number of columns in the 
  34988. normal scrolling unit for horizontal movement. This variable comes into play 
  34989. when cursor motion causes the contents of a window to be scrolled horizontally. 
  34990.  
  34991. The default value for this variable is usually 1. This means that when cursor 
  34992. movement causes the text in a window is scrolled to the left or right, one 
  34993. off-window column of text appears in the window.  This is the method of 
  34994. operation most users will find familiar. 
  34995.  
  34996. When higher values are assigned to scroll_unit_horizontal, more than one 
  34997. off-window column of text becomes visible during a single scroll.  This has the 
  34998. effect of reducing the number of times the text needs to be scrolled.  As a 
  34999. result, continued cursor movements may often be executed more quickly. 
  35000.  
  35001. The size of the scrolling unit does not change the way the cursor moves through 
  35002. the text.  In the following example, imagine that the scroll_unit_horizontal 
  35003. variable is set to 5.  (To keep things simple we will also assume that 
  35004. scroll_context_right is set to its default value, zero.)  The cursor is 
  35005. positioned at the right edge of the window on the letter "G", which happen to 
  35006. be the first letter of the word "GetShape". 
  35007.  
  35008. When the cursor-right key is pressed, five off-window columns of text are 
  35009. scrolled into the window.  Now, only the final "pe" of "GetShape" is not 
  35010. visible.  The cursor, however, is no longer at the right edge of the window. 
  35011. The cursor has moved from the first character of "GetShape" to the second. 
  35012. This leaves four columns between the cursor and the window edge. 
  35013.  
  35014. The scroll_unit_horizontal variable takes its initial value from the 
  35015. default_scroll_unit_horizontal at the time the window is created.  Values of 
  35016. less than 1 are interpreted as 1.  Values greater than the window width are 
  35017. interpreted as the width of the window. 
  35018.  
  35019. ____________ 
  35020.  
  35021. See also:   scroll_unit_vertical 
  35022.  
  35023.  
  35024. ΓòÉΓòÉΓòÉ 15.9.7. scroll_unit_vertical ΓòÉΓòÉΓòÉ
  35025.  
  35026. scroll_unit_vertical   Primitive 
  35027.  
  35028. Purpose: Stores the number of lines in vertical scrolling unit. 
  35029.  
  35030. ____________ 
  35031.  
  35032. Type: int scroll_unit_vertical 
  35033.  
  35034. ____________ 
  35035.  
  35036. Description: Each window has a scroll_unit_vertical variable associated with 
  35037. it.  the scroll_unit_vertical variable defines the number of lines  in the 
  35038. normal scrolling unit for vertical movement.  This variable comes into play 
  35039. when cursor motion causes the contents of a window to be scrolled vertically. 
  35040.  
  35041. The default value for this variable is usually 1. This means that when, as the 
  35042. result of cursor movement the text in a window is scrolled up or down, one 
  35043. off-window line of text appears in the window.  This is the method of operation 
  35044. most users will find familiar. 
  35045.  
  35046. When higher values are assigned to scroll_unit_vertical, more than one 
  35047. off-window line of text becomes visible during a single scroll. This has the 
  35048. effect of reducing the number of times the text needs to be scrolled.  As a 
  35049. result, continuing cursor movements may often be executed more quickly. 
  35050.  
  35051. The size of the scrolling unit does not change the way the cursor moves through 
  35052. the text.  Though several new lines are made to appear on the screen at once, 
  35053. the up and down cursor keys will always move the cursor to the adjacent line of 
  35054. text. 
  35055.  
  35056. The scroll_unit_vertical variable takes its initial value from the 
  35057. default_scroll_unit_vertical at the time the window is created.  Values of less 
  35058. than 1 are interpreted as 1.  Values greater than the window height are 
  35059. interpreted as the height of the window. 
  35060.  
  35061. ____________ 
  35062.  
  35063. See also:   scroll_unit_horizontal 
  35064.  
  35065.  
  35066. ΓòÉΓòÉΓòÉ 15.10. Notebook ΓòÉΓòÉΓòÉ
  35067.  
  35068. NBTAB_ 
  35069. Notebook tab constants. 
  35070.  
  35071.  
  35072. ΓòÉΓòÉΓòÉ 15.10.1. NBTAB_ ΓòÉΓòÉΓòÉ
  35073.  
  35074. NBTAB_   Primitive 
  35075.  
  35076. Purpose:  Notebook tab constants. 
  35077.  
  35078. ____________ 
  35079.  
  35080. Type:    const int NBTAB_ 
  35081.  
  35082. ____________ Dscription: The constants defined in the NBTAB_ section are used 
  35083. as flags to the set_notebook_tab_type() function. 
  35084.  
  35085. o NBTAB_BOTTOM 
  35086. o NBTAB_LEFT 
  35087. o NBTAB_MAJOR 
  35088. o NBTAB_MINOR 
  35089. o NBTAB_NONE 
  35090. o NBTAB_POLYGON 
  35091. o NBTAB_RIGHT 
  35092. o NBTAB_ROUNDED 
  35093. o NBTAB_SQUARE 
  35094. o NBTAB_TOP 
  35095.  
  35096. ____________ 
  35097.  
  35098.  
  35099. ΓòÉΓòÉΓòÉ 15.11. PEL Programming ΓòÉΓòÉΓòÉ
  35100.  
  35101. ARGC 
  35102.           Stores the number of arguments in editor invocation 
  35103. ARGV 
  35104.           Stores the command line used to invoke the editor. 
  35105. electric_mode 
  35106.           Flag used to indicate if the edior had template expansion turned on. 
  35107. ENV 
  35108.           Stores the values of environment variables. 
  35109. FS() 
  35110.           Identifies the default AWK input field separator. 
  35111. language_template[] 
  35112.           Store the curent template definition. 
  35113. OFS 
  35114.           Identifies the AWK output field separator. 
  35115. ORS 
  35116.           Identifies the AWK output record separator. 
  35117. SUBSEP 
  35118.           Sets string used to simulate multidimensional arrays. 
  35119. tags_path 
  35120.           Path the editor uses to find tags files 
  35121.  
  35122.  
  35123. ΓòÉΓòÉΓòÉ 15.11.1. ARGC ΓòÉΓòÉΓòÉ
  35124.  
  35125. ARGC   Primitive 
  35126.  
  35127. Purpose: Stores the number of arguments in editor invocation 
  35128.  
  35129. ____________ 
  35130.  
  35131. Type:   int ARGC 
  35132.  
  35133. ____________ 
  35134.  
  35135. Description: 
  35136.  
  35137. On start-up, the editor sets this variable to the number of parameters 
  35138. specified on the command line when the editor was invoked. This value 
  35139. represents the number of elements of the ARGV array and is always at least one, 
  35140. since the editor invocation name itself is counted. 
  35141.  
  35142. The value of ARGC may be modified by the startup() function, but this should 
  35143. only be done to reflect parallel changes to the ARGV array. 
  35144.  
  35145. ____________ 
  35146.  
  35147. See also:   ARGV 
  35148.  
  35149.  
  35150. ΓòÉΓòÉΓòÉ 15.11.2. ARGV ΓòÉΓòÉΓòÉ
  35151.  
  35152. ARGV   Primitive 
  35153.  
  35154. Purpose: Stores the command line used to invoke the editor. 
  35155.  
  35156. ____________ 
  35157.  
  35158. Type:   array ARGV 
  35159.  
  35160. ____________ 
  35161.  
  35162. Description: 
  35163.  
  35164. The AWK array ARGV contains all of the elements of the command line used to 
  35165. invoke the current session of the editor.  Elements are separated on the basis 
  35166. of whitespace.  It may be examined or modified at any time. Each element of the 
  35167. array is a series of characters in the original command line which were 
  35168. surrounded by whitespace. 
  35169.  
  35170. If ARGV is modified by the startup() function, the modified ARGV will be 
  35171. processed as if it had been entered on the DOS command line.  When received 
  35172. from DOS, ARGV will contain a total of up to 128 significant characters.  It 
  35173. may, however, be safely modified to be much larger, if desired.  When this 
  35174. array is modified, however, it is advisable to modify the ARGC variable to 
  35175. reflect the new number of arguments.  The first element of this array is the 
  35176. editor invocation name. 
  35177.  
  35178. ____________ 
  35179.  
  35180. Example: 
  35181.  
  35182. ARGV[0] == "p" 
  35183.  
  35184.  
  35185. ΓòÉΓòÉΓòÉ 15.11.3. electric_mode ΓòÉΓòÉΓòÉ
  35186.  
  35187. electric_mode   PEL 
  35188.  
  35189. Purpose:  Flag used to indicate if the edior had template expansion turned on. 
  35190.  
  35191. ____________ 
  35192.  
  35193. Type:    int electric_mode 
  35194.  
  35195. ____________ 
  35196.  
  35197. Description: The electric_mode variable, if TRUE, indicates that the editor had 
  35198. template expansion turned on.  This allows the user to take advantage of the 
  35199. built in shortcut keys for coding. 
  35200.  
  35201. ____________ 
  35202.  
  35203. See also: 
  35204.  
  35205. o languages[] 
  35206. o get_expand_template() 
  35207.  
  35208.  
  35209. ΓòÉΓòÉΓòÉ 15.11.4. ENV ΓòÉΓòÉΓòÉ
  35210.  
  35211. ENV   Primitive 
  35212.  
  35213. Purpose: Stores the values of environment variables. 
  35214.  
  35215. ____________ 
  35216.  
  35217. Type:   array ENV 
  35218.  
  35219. ____________ 
  35220.  
  35221. Description: 
  35222.  
  35223. The ENV variable is an AWK array containing the values found in the DOS 
  35224. environment when the editor was invoked.  The ENV variable takes advantage of 
  35225. AWK's ability to use strings as subscripts.  The variable name is used as a 
  35226. subscript to access the value associated with that variable.  For example, if 
  35227. the environment variable TMP has been set to the value C:\TEMP the value of 
  35228. ENV["TMP"] will also be C:\TEMP. 
  35229.  
  35230. Values in the ENV array may be changed or added in like manner through 
  35231. assignment. For 
  35232.  
  35233. Example: 
  35234.  
  35235.   ENV["INCLUDE"] = "c:\include" 
  35236.  
  35237. This new value for the environment variable is then in effect during the 
  35238. remainder of the editing process, unless changed. 
  35239.  
  35240.  
  35241. ΓòÉΓòÉΓòÉ 15.11.5. FS ΓòÉΓòÉΓòÉ
  35242.  
  35243. FS   Primitive 
  35244.  
  35245. Purpose: Identifies the default AWK input field separator. 
  35246.  
  35247. ____________ 
  35248.  
  35249. Type: str FS 
  35250.  
  35251. ____________ 
  35252.  
  35253. Description: 
  35254.  
  35255. The FS variable is used by the AWK split() function.  It defines what character 
  35256. or characters the split() function uses as a default field separator.  The 
  35257. initial value for this variable is " ", a single space. 
  35258.  
  35259. ____________ 
  35260.  
  35261. See also:  split() 
  35262.  
  35263.  
  35264. ΓòÉΓòÉΓòÉ 15.11.6. language_template[] ΓòÉΓòÉΓòÉ
  35265.  
  35266. language_template   PEL 
  35267.  
  35268. Purpose:  Store the curent template definition. 
  35269.  
  35270. ____________ 
  35271.  
  35272. Type:    str language_template[] 
  35273.  
  35274. ____________ 
  35275.  
  35276. Description: The language_template[] array holds the shortcut string and the 
  35277. full template for the current template definition. 
  35278.  
  35279. ____________ 
  35280.  
  35281. See also: 
  35282.  
  35283. o electric_mode 
  35284. o expand_template() 
  35285.  
  35286.  
  35287. ΓòÉΓòÉΓòÉ 15.11.7. OFS ΓòÉΓòÉΓòÉ
  35288.  
  35289. OFS   Primitive 
  35290.  
  35291. Purpose: Identifies the AWK output field separator. 
  35292.  
  35293. ____________ 
  35294.  
  35295. Type: str OFS 
  35296.  
  35297. ____________ 
  35298.  
  35299. Description: The OFS variable is used by the AWK print() function.  It defines 
  35300. what character or characters the print() function places between the 
  35301. expressions it prints.  The initial value for this variable is " ", a single 
  35302. space. 
  35303.  
  35304.  
  35305. ΓòÉΓòÉΓòÉ 15.11.8. ORS ΓòÉΓòÉΓòÉ
  35306.  
  35307. ORS   Primitive 
  35308.  
  35309. Purpose: Identifies the AWK output record separator. 
  35310.  
  35311. ____________ 
  35312.  
  35313. Type: str ORS 
  35314.  
  35315. ____________ 
  35316.  
  35317. Description: The ORS variable is used by the AWK print() function.  It defines 
  35318. what character or characters print() outputs at the end of the expressions 
  35319. printed.  The initial value of this variable is "\n", a new-line sequence. 
  35320.  
  35321.  
  35322. ΓòÉΓòÉΓòÉ 15.11.9. SUBSEP ΓòÉΓòÉΓòÉ
  35323.  
  35324. SUBSEP   Primitive 
  35325.  
  35326. Purpose: Sets string used to simulate multidimensional arrays. 
  35327.  
  35328. ____________ 
  35329.  
  35330. Type: str SUBSEP 
  35331.  
  35332. ____________ 
  35333.  
  35334. Description: Standard AWK does not support multidimensional arrays but allows 
  35335. simulating them.  When you assign values to an array using multiple subscripts, 
  35336. such as arr[i,j], AWK concatenates the j elements of i into a single string. 
  35337. The elements are separated by the SUBSEP string.  The split() function may then 
  35338. be used to access individual components.  The initial value for this variable 
  35339. is "\x1C". 
  35340.  
  35341.  
  35342. ΓòÉΓòÉΓòÉ 15.11.10. tags_path ΓòÉΓòÉΓòÉ
  35343.  
  35344. tags_path   PEL 
  35345.  
  35346. Purpose:  Path the editor uses to find tags files 
  35347.  
  35348. ____________ 
  35349.  
  35350. Type:    str tags_path 
  35351.  
  35352. ____________ 
  35353.  
  35354. Description: The tags_path is the path the editor searches to find a tags file 
  35355. when a tags() command is executed.  If the function being searched for does not 
  35356. appear in a tags file, the next directory in the tags_path is searched. 
  35357.  
  35358. ____________ 
  35359.  
  35360.  
  35361. ΓòÉΓòÉΓòÉ 15.12. Resources ΓòÉΓòÉΓòÉ
  35362.  
  35363. resource_dll() 
  35364.           Name of the resource file used by the editor. 
  35365.  
  35366.  
  35367. ΓòÉΓòÉΓòÉ 15.12.1. resource_dll ΓòÉΓòÉΓòÉ
  35368.  
  35369. resource_dll  Read-Only   Primitive 
  35370.  
  35371. Purpose: Name of the resource file used by the editor. 
  35372.  
  35373. ____________ 
  35374.  
  35375. Type:   str resource_dll 
  35376.  
  35377. ____________ 
  35378.  
  35379. Description: 
  35380.  
  35381. The resource_dll variable contains the name of dll file that is used to load 
  35382. resources by the editor. 
  35383.  
  35384.  
  35385. ΓòÉΓòÉΓòÉ 15.13. Searching ΓòÉΓòÉΓòÉ
  35386.  
  35387. SEARCH_ 
  35388.           Constants used for search flags and masks. 
  35389. replace_pattern 
  35390.           Stores the replacement text used by replace operations. 
  35391. replace_string_length 
  35392.           Indicates the length of text replacing the search pattern. 
  35393. search_count 
  35394.           Defines how many repetitions of a search are desired. 
  35395. search_cursor_offset 
  35396.           Stores distance from cursor to beginning of match. 
  35397. search_flags 
  35398.           Dictates many of the standard searching parameters. 
  35399. search_pattern 
  35400.           Stores the matching pattern used during a search. 
  35401. search_string_length 
  35402.           Indicates the length of text matching the search pattern. 
  35403. word_delimiter() 
  35404.           Defines characters that delimit a word. 
  35405.  
  35406.  
  35407. ΓòÉΓòÉΓòÉ 15.13.1. SEARCH_ ΓòÉΓòÉΓòÉ
  35408.  
  35409. SEARCH_   Primitive 
  35410.  
  35411. Purpose:  Constants used for search flags and masks. 
  35412.  
  35413. ____________ 
  35414.  
  35415. Type:    const int SEARCH_ 
  35416.  
  35417. ____________ 
  35418.  
  35419. Description: The constants defined in the _SEARCH section can be used as flags 
  35420. to seach functions like search().  The constants may also be used as masks to 
  35421. set and examine the search_flags variable. 
  35422.  
  35423. o SEARCH_ADVANCE 
  35424. o SEARCH_ALL_BUFFERS 
  35425. o SEARCH_BACKWARD 
  35426. o SEARCH_BKWD_REGEX 
  35427. o SEARCH_BKWD_REGEX_ADV 
  35428. o SEARCH_BKWD_REGEX_IG 
  35429. o SEARCH_BKWD_REGEX_MAX 
  35430. o SEARCH_BKWD_REGEX_MAX_IG 
  35431. o SEARCH_BLOCK 
  35432. o SEARCH_CASE 
  35433. o SEARCH_CENTER_CURSOR 
  35434. o SEARCH_DEFAULT 
  35435. o SEARCH_FORWARD 
  35436. o SEARCH_FWD_ADV 
  35437. o SEARCH_FWD_IG 
  35438. o SEARCH_FWD_REGEX 
  35439. o SEARCH_FWD_REGEX_ADV 
  35440. o SEARCH_FWD_REGEX_IG 
  35441. o SEARCH_FWD_REGEX_MAX 
  35442. o SEARCH_FWD_REGEX_MAX_IG 
  35443. o SEARCH_GLOBAL 
  35444. o SEARCH_HIGHLIGHT 
  35445. o SEARCH_MARK_CHG 
  35446. o SEARCH_MAXIMAL_MATCH 
  35447. o SEARCH_ONCE_PER_LINE 
  35448. o SEARCH_REGEX 
  35449. o SEARCH_WHOLE_WORD 
  35450. o SEARCH_WRAPS 
  35451.  
  35452. ____________ 
  35453.  
  35454. See also: search(). 
  35455.  
  35456.  
  35457. ΓòÉΓòÉΓòÉ 15.13.2. replace_pattern ΓòÉΓòÉΓòÉ
  35458.  
  35459. replace_pattern   PEL 
  35460.  
  35461. Purpose: Stores the replacement text used by replace operations. 
  35462.  
  35463. ____________ 
  35464.  
  35465. Type: str replace_pattern 
  35466.  
  35467. ____________ 
  35468.  
  35469. Description: The replace_pattern variable contains the text which is intended 
  35470. to replace the text matching the pattern of a directional replace functions for 
  35471. matching.  The directional replace functions are as follows: 
  35472.  
  35473. replace_forward()
  35474. replace_backward()
  35475.  
  35476. If there have been any previous replace operations using these functions, the 
  35477. replace_pattern string will contain the pattern used in the last of these 
  35478. operations.  This variable is not modified by the function replace(). 
  35479.  
  35480. The initial value for this variable is an empty string. 
  35481.  
  35482.  
  35483. ΓòÉΓòÉΓòÉ 15.13.3. replace_string_length ΓòÉΓòÉΓòÉ
  35484.  
  35485. replace_string_length   Primitive 
  35486.  
  35487. Purpose: Indicates the length of text replacing the search pattern. 
  35488.  
  35489. ____________ 
  35490.  
  35491. Type: int replace_string_length 
  35492.  
  35493. ____________ 
  35494.  
  35495. Description: The replace_string_length variable contains the length of the 
  35496. replacement string resulting from the most recent replace operation.  This 
  35497. value is primarily useful when Regular expressions searches result in strings 
  35498. of uncertain length.  If you wish to manipulate the resulting text, the length 
  35499. of the resulting string may be necessary. 
  35500.  
  35501. This variable differs from the search_string_length variable in that 
  35502. search_string_length is the length of the matching string before replacement. 
  35503. The variable replace_string_length is the length after replacement. 
  35504.  
  35505. ____________ 
  35506.  
  35507. See also:   search_string_length 
  35508.  
  35509.  
  35510. ΓòÉΓòÉΓòÉ 15.13.4. search_count ΓòÉΓòÉΓòÉ
  35511.  
  35512. search_count   Primitive 
  35513.  
  35514. Purpose: Defines how many repetitions of a search are desired. 
  35515.  
  35516. ____________ 
  35517.  
  35518. Type: int search_count 
  35519.  
  35520. ____________ 
  35521.  
  35522. Description: The search_count variable sets the maximum number of search or 
  35523. replace operations to be performed. The current search or replace operation is 
  35524. repeated until the number of repetitions specified by search_count have been 
  35525. performed or until no further matches are found. 
  35526.  
  35527. The default value for this variable is zero.  When a search is executed with 
  35528. search_count set to zero, the search will be executed for one repetition. Most 
  35529. search and replace functions decrement this variable as search and replace 
  35530. operations are performed.  This continues until search_count is zero or the 
  35531. search/replace is completed.  The functions then reset this variable to zero. 
  35532.  
  35533.  
  35534. ΓòÉΓòÉΓòÉ 15.13.5. search_cursor_offset ΓòÉΓòÉΓòÉ
  35535.  
  35536. search_cursor_offset   Primitive 
  35537.  
  35538. Purpose: Stores distance from cursor to beginning of match. 
  35539.  
  35540. ____________ 
  35541.  
  35542. Type: int search_cursor_offset 
  35543.  
  35544. ____________ 
  35545.  
  35546. Description: The search_cursor_offset variable provides information about where 
  35547. the cursor was positioned following Regular expressions searches.  This 
  35548. variable contains the number of characters between the cursor position and the 
  35549. beginning of matching text.  This variable will be set to zero unless the most 
  35550. recent search or replace operation was a search using Regular expressions  In 
  35551. addition, a cursor location must have been specified in the pattern. 
  35552.  
  35553. This variable is most useful when you are building a function to automate some 
  35554. editing operation.  It enables you to locate the beginning of matching text 
  35555. even if you specified that the editor place the cursor after a matching group 
  35556. of text. 
  35557.  
  35558. ____________ 
  35559.  
  35560. See also: Regular expressions 
  35561.  
  35562.  
  35563. ΓòÉΓòÉΓòÉ 15.13.6. search_flags ΓòÉΓòÉΓòÉ
  35564.  
  35565. search_flags   PEL 
  35566.  
  35567. Purpose: Dictates many of the standard searching parameters. 
  35568.  
  35569. ____________ 
  35570.  
  35571. Type: int search_flags 
  35572.  
  35573. ____________ 
  35574.  
  35575. Description: The first seven bits of the search_flags. variable are used by the 
  35576. editor's standard search and replace function to determine various searching 
  35577. parameters. A number of descriptive identifiers have been defined in the 
  35578. standard function files.  These identifiers are listed in the SEARCH_ section. 
  35579.  
  35580. When the bit corresponding to each of these parameters is set ( 1 ), that 
  35581. parameter is turned on.  Otherwise, the parameter is turned off. 
  35582.  
  35583. The default value for this variable is 23, which sets maximal match, search 
  35584. block, search forward and use of regular expressions.  Keep in mind, however, 
  35585. that various emulations may alter this setting. 
  35586.  
  35587.  
  35588. ΓòÉΓòÉΓòÉ 15.13.6.1. SEARCH_MAXIMAL_MATCH ΓòÉΓòÉΓòÉ
  35589.  
  35590. SEARCH_MAXIMAL_MATCH(0x0001) 
  35591.  
  35592. Determines whether the editor will attempt to match the smallest string 
  35593. matching a given pattern or the largest.  This bit is only used if SEARCH_REGEX 
  35594. has been enabled.  Under many conditions, it will not matter whether the 
  35595. maximal or minimal match is used; in either case the same string will be 
  35596. matched.  However, if part or all of the pattern may occur nested within or 
  35597. contiguous to text which also matches the pattern, this parameter will effect 
  35598. the outcome of the search. 
  35599.  
  35600.  
  35601. ΓòÉΓòÉΓòÉ 15.13.6.2. SEARCH_BLOCK ΓòÉΓòÉΓòÉ
  35602.  
  35603. SEARCH_BLOCK (0x0002) 
  35604.  
  35605. Determines whether searches are limited to the marked block or region, when one 
  35606. is defined. 
  35607.  
  35608.  
  35609. ΓòÉΓòÉΓòÉ 15.13.6.3. SEARCH_FORWARD ΓòÉΓòÉΓòÉ
  35610.  
  35611. SEARCH_FORWARD (0x0004) 
  35612.  
  35613. Determines whether search or replace operations performed will search from the 
  35614. current cursor position toward the end of the buffer.  Otherwise, the search 
  35615. proceeds toward the beginning of the buffer. 
  35616.  
  35617.  
  35618. ΓòÉΓòÉΓòÉ 15.13.6.4. SEARCH_WRAPS ΓòÉΓòÉΓòÉ
  35619.  
  35620. SEARCH_WRAPS (0x0008) 
  35621.  
  35622. Determines whether search and replace operations are applied to the entire 
  35623. buffer regardless of the location of the cursor.  This search is carried out by 
  35624. first searching from the cursor position to the buffer extremity indicated by 
  35625. the SEARCH_FORWARD bit.  The search then continues from the opposite buffer 
  35626. extremity to the cursor position.  For example, a search from the cursor 
  35627. position to the end of the buffer is continued from the beginning of the buffer 
  35628. to the cursor position. 
  35629.  
  35630. As with all searches, the search may be terminated earlier if the search is not 
  35631. global and a match is found prior to searching the entire buffer.  When this 
  35632. bit is zero the search continues only until the buffer extremity is reached. 
  35633.  
  35634.  
  35635. ΓòÉΓòÉΓòÉ 15.13.6.5. SEARCH_REGEX ΓòÉΓòÉΓòÉ
  35636.  
  35637. SEARCH_REGEX (0x0010) 
  35638.  
  35639. Determines whether the string supplied to a search or replace function is 
  35640. considered a Regular expressions.  Regular expressions are described in detail 
  35641. in the User's Manual, in the chapter "Regular Expressions".  When this variable 
  35642. is set to zero, the search_pattern is treated as a simple string. 
  35643.  
  35644.  
  35645. ΓòÉΓòÉΓòÉ 15.13.6.6. SEARCH_CASE ΓòÉΓòÉΓòÉ
  35646.  
  35647. SEARCH_CASE (0x0020) 
  35648.  
  35649. Determines whether search and replace operation will make a distinction between 
  35650. upper and lower case characters.  If the bit is zero, the characters of text 
  35651. must have the same case as the supplied search pattern in order to be 
  35652. considered a match. Otherwise, character case is not considered when 
  35653. determining if matching text has been found. 
  35654.  
  35655.  
  35656. ΓòÉΓòÉΓòÉ 15.13.6.7. SEARCH_ADVANCE ΓòÉΓòÉΓòÉ
  35657.  
  35658. SEARCH_ADVANCE (0x0040) 
  35659.  
  35660. Determines whether whether or not a match was previously found.  This enables 
  35661. the function to avoid matching the same text again. When this bit is set, the 
  35662. search begins one character beyond the cursor in the direction of search. 
  35663.  
  35664.  
  35665. ΓòÉΓòÉΓòÉ 15.13.6.8. SEARCH_ONCE_PER_LINE ΓòÉΓòÉΓòÉ
  35666.  
  35667. SEARCH_ONCE_PER_LINE (0x2000) 
  35668.  
  35669. Determines whether the global replacement operations will be limited to one 
  35670. replacement per line. 
  35671.  
  35672.  
  35673. ΓòÉΓòÉΓòÉ 15.13.7. search_pattern ΓòÉΓòÉΓòÉ
  35674.  
  35675. search_pattern   PEL 
  35676.  
  35677. Purpose: Stores the matching pattern used during a search. 
  35678.  
  35679. ____________ 
  35680.  
  35681. Type: str search_pattern 
  35682.  
  35683. ____________ 
  35684.  
  35685. Description: The search_pattern variable contains the pattern used during 
  35686. directional search and replace functions for matching.  The directional search 
  35687. and replace functions are as follows: 
  35688.  
  35689. search_forward()
  35690. search_backward()
  35691. replace_forward()
  35692. replace_backward()
  35693.  
  35694. If there have been any previous search/replace operations using these 
  35695. functions, the search_pattern string will contain the pattern used in the last 
  35696. of these operations.  This variable is not modified by the functions search() 
  35697. and replace(). 
  35698.  
  35699. This pattern may be either a regular expression or an ordinary string.  The 
  35700. initial value for this variable is an empty string. 
  35701.  
  35702.  
  35703. ΓòÉΓòÉΓòÉ 15.13.8. search_string_length ΓòÉΓòÉΓòÉ
  35704.  
  35705. search_string_length   Primitive 
  35706.  
  35707. Purpose: Indicates the length of text matching the search pattern. 
  35708.  
  35709. ____________ 
  35710.  
  35711. Type: int search_string_length 
  35712.  
  35713. ____________ 
  35714.  
  35715. Description: The search_string_length variable contains the length of the 
  35716. string matching the most recent search/replace operation.  This value is 
  35717. primarily useful in writing functions that wish to manipulate the text matching 
  35718. Regular expressions. 
  35719.  
  35720. If the last search/replace operation was not successful, this variable will be 
  35721. set to zero. 
  35722.  
  35723. This variable differs from the replace_string_length variable in that 
  35724. replace_string_length is the length of the string resulting from a replacement. 
  35725. The variable search_string_length is the length before replacement. 
  35726.  
  35727. ____________ 
  35728.  
  35729. See also:   replace_string_length 
  35730.  
  35731.  
  35732. ΓòÉΓòÉΓòÉ 15.13.9. word_delimiter ΓòÉΓòÉΓòÉ
  35733.  
  35734. word_delimiter   Primitive 
  35735.  
  35736. Purpose: Defines characters that delimit a word. 
  35737.  
  35738. ____________ 
  35739.  
  35740. Type:   str word_delimiter 
  35741.  
  35742. ____________ 
  35743.  
  35744. Description: 
  35745.  
  35746. The word_delimiter variable contains a list of characters that are not to be 
  35747. considered part of a word.  This variable is used whenever functions on words 
  35748. are performed. 
  35749.  
  35750.  
  35751. ΓòÉΓòÉΓòÉ 15.14. String Manipulation ΓòÉΓòÉΓòÉ
  35752.  
  35753. RLENGTH 
  35754.           Stores length of a string match resulting from match() 
  35755. RSTART 
  35756.           Stores the position of the match resulting from match() 
  35757.  
  35758.  
  35759. ΓòÉΓòÉΓòÉ 15.14.1. RLENGTH ΓòÉΓòÉΓòÉ
  35760.  
  35761. RLENGTH   Primitive 
  35762.  
  35763. Purpose: Stores length of a string match resulting from match() 
  35764.  
  35765. ____________ 
  35766.  
  35767. Type: int RLENGTH 
  35768.  
  35769. ____________ 
  35770.  
  35771. Description: After each use of the match() function the variable RLENGTH is set 
  35772. to the length of the text matching the pattern specified in match().  If there 
  35773. was no match found, the variable is set to zero. 
  35774.  
  35775. ____________ 
  35776.  
  35777. See also: RSTART 
  35778.  
  35779.  
  35780. ΓòÉΓòÉΓòÉ 15.14.2. RSTART ΓòÉΓòÉΓòÉ
  35781.  
  35782. RSTART   Primitive 
  35783.  
  35784. Purpose: Stores the position of the match resulting from match() 
  35785.  
  35786. ____________ 
  35787.  
  35788. Type: int RSTART 
  35789.  
  35790. ____________ 
  35791.  
  35792. Description: After each use of the match() function the variable RSTART is set 
  35793. to the starting position of the text matching the pattern specified in match(). 
  35794. For example, if the match begins with the fifth character the value of RSTART 
  35795. will be 5.  If there was no match found, the variable is set to zero. 
  35796.  
  35797. ____________ 
  35798.  
  35799. See also: RLENGTH 
  35800.  
  35801.  
  35802. ΓòÉΓòÉΓòÉ 15.15. System Interface ΓòÉΓòÉΓòÉ
  35803.  
  35804. SYS_ 
  35805.           Constants used as flags for the system commands. 
  35806. errno 
  35807.           Stores error code from last DOS operation. 
  35808. os_name 
  35809.           Stores name of the operating system in use. 
  35810. pipe_data 
  35811.           Contains the last data read from the read_pipe when a PIPE_DATA_EVENT 
  35812.           event occured. 
  35813. stdaux 
  35814.           Provides access to standard auxiliary device. 
  35815. stderr 
  35816.           Provides access to standard error device. 
  35817. stdin 
  35818.           Provides access to standard input device. 
  35819. stdout 
  35820.           Provides access to standard output device. 
  35821. stdprn 
  35822.           Provides access to standard line printer. 
  35823.  
  35824.  
  35825. ΓòÉΓòÉΓòÉ 15.15.1. SYS_ ΓòÉΓòÉΓòÉ
  35826.  
  35827. SYS_   Primitive 
  35828.  
  35829. Purpose:  Constants used as flags for the system commands. 
  35830.  
  35831. ____________ 
  35832.  
  35833. Type:    const int SYS_ 
  35834.  
  35835. ____________ 
  35836.  
  35837. Description: The constants defined in the SYS_ section can be used as flags for 
  35838. the system() command.  They define what kind of pipe is created. 
  35839.  
  35840. o SYS_ASYNC 
  35841. o SYS_CLOSE 
  35842. o SYS_DETACHED 
  35843. o SYS_MASK 
  35844. o SYS_NOEXPOSE 
  35845. o SYS_NONE 
  35846. o SYS_NOSESSION 
  35847. o SYS_PROMPT 
  35848. o SYS_QUIET 
  35849. o SYS_SESSION 
  35850. o SYS_SHELL 
  35851.  
  35852. ____________ 
  35853.  
  35854.  
  35855. ΓòÉΓòÉΓòÉ 15.15.2. errno ΓòÉΓòÉΓòÉ
  35856.  
  35857. errno  read-only   Primitive 
  35858.  
  35859. Purpose: Stores error code from last DOS operation. 
  35860.  
  35861. ____________ 
  35862.  
  35863. Type:   int errno 
  35864.  
  35865. ____________ 
  35866.  
  35867. Description: 
  35868.  
  35869. The exit code returned by the last DOS command executed by the editor is stored 
  35870. in the variable errno.  Consult this variable when a DOS or OS/2 operation 
  35871. indicates an error has occurred. 
  35872.  
  35873. This variable may not be modified by the user; only by the system. 
  35874.  
  35875. ____________ 
  35876.  
  35877. See also:  fread(), fwrite(). 
  35878.  
  35879.  
  35880. ΓòÉΓòÉΓòÉ 15.15.3. os_name ΓòÉΓòÉΓòÉ
  35881.  
  35882. os_name  read-only   Primitive 
  35883.  
  35884. Purpose: Stores name of the operating system in use. 
  35885.  
  35886. ____________ 
  35887.  
  35888. Type: str os_name 
  35889.  
  35890. ____________ 
  35891.  
  35892. Description: The string variable os_name is set to either "Windows", "DOS", or 
  35893. "OS/2" depending on the operating system you are using.  This enables 
  35894. user-written programs to take actions that are conditional upon the operating 
  35895. system present.  Note that the value will be "DOS" when run in OS/2's 
  35896. DOS-compatibility box. 
  35897.  
  35898. This variable is set by editor system and may not be modified by the user or 
  35899. user-written macros. 
  35900.  
  35901.  
  35902. ΓòÉΓòÉΓòÉ 15.15.4. pipe_data ΓòÉΓòÉΓòÉ
  35903.  
  35904. pipe_data   Primitive 
  35905.  
  35906. Purpose:  Contains the last data read from the read_pipe when a PIPE_DATA_EVENT 
  35907. event occured. 
  35908.  
  35909. ____________ 
  35910.  
  35911. Type:    Read-Only string pipe_data 
  35912.  
  35913. ____________ 
  35914.  
  35915. Description: When a PIPE_DATA_EVENT occurs, this holds the data read from the 
  35916. pipe. It is undefined if accessed outside of a PIPE_DATA_EVENT handler.  This 
  35917. variable may only be modified by the system. 
  35918.  
  35919. ____________ 
  35920.  
  35921. See also:  create_pipes(), close_pipes(), process_pipes(), system(). 
  35922.  
  35923.  
  35924. ΓòÉΓòÉΓòÉ 15.15.5. stdaux ΓòÉΓòÉΓòÉ
  35925.  
  35926. stdaux   Primitive 
  35927.  
  35928. Purpose: Provides access to standard auxiliary device. 
  35929.  
  35930. ____________ 
  35931.  
  35932. Type: fileid stdaux 
  35933.  
  35934. ____________ 
  35935.  
  35936. Description: The file handle stdaux allows access to the DOS standard auxiliary 
  35937. device.  Initially stdaux is COM1, however, it may be redirected.  Redirecting 
  35938. or even closing stdaux will not effect the general operation of the editor. 
  35939.  
  35940.  
  35941. ΓòÉΓòÉΓòÉ 15.15.6. stderr ΓòÉΓòÉΓòÉ
  35942.  
  35943. stderr   Primitive 
  35944.  
  35945. Purpose: Provides access to standard error device. 
  35946.  
  35947. ____________ 
  35948.  
  35949. Type: fileid stderr 
  35950.  
  35951. ____________ 
  35952.  
  35953. Description: The file handle stderr allows access to the DOS standard error 
  35954. device.  Initially stderr is the monitor, however, it may be redirected. 
  35955. Redirecting or even closing stderr will not effect the general operation of the 
  35956. editor. 
  35957.  
  35958.  
  35959. ΓòÉΓòÉΓòÉ 15.15.7. stdin ΓòÉΓòÉΓòÉ
  35960.  
  35961. stdin   Primitive 
  35962.  
  35963. Purpose: Provides access to standard input device. 
  35964.  
  35965. ____________ 
  35966.  
  35967. Type: fileid stdin 
  35968.  
  35969. ____________ 
  35970.  
  35971. Description: The file handle stdin allows access to the DOS standard input 
  35972. device.  Initially stdin is the keyboard, however, it may be redirected. 
  35973. Redirecting or even closing stdin will not effect the general operation of the 
  35974. editor. 
  35975.  
  35976.  
  35977. ΓòÉΓòÉΓòÉ 15.15.8. stdout ΓòÉΓòÉΓòÉ
  35978.  
  35979. stdout   Primitive 
  35980.  
  35981. Purpose: Provides access to standard output device. 
  35982.  
  35983. ____________ 
  35984.  
  35985. Type: fileid stdout 
  35986.  
  35987. ____________ 
  35988.  
  35989. Description: The file handle stdout allows access to the DOS standard output 
  35990. device.  Initially stdout is the monitor, however, it may be redirected. 
  35991. Redirecting or even closing stdout will not effect the general operation of the 
  35992. editor. 
  35993.  
  35994.  
  35995. ΓòÉΓòÉΓòÉ 15.15.9. stdprn ΓòÉΓòÉΓòÉ
  35996.  
  35997. stdprn   Primitive 
  35998.  
  35999. Purpose: Provides access to standard line printer. 
  36000.  
  36001. ____________ 
  36002.  
  36003. Type: fileid stdprn 
  36004.  
  36005. ____________ 
  36006.  
  36007. Description: The file handle stdprn allows access to the DOS standard printer 
  36008. device.  Initially stdprn is LPT1, however, it may be redirected.  Redirecting 
  36009. or even closing stdprn will not effect the general operation of the editor. 
  36010.  
  36011.  
  36012. ΓòÉΓòÉΓòÉ 15.16. Toolbar ΓòÉΓòÉΓòÉ
  36013.  
  36014. TI_ 
  36015.           Constants used as flags to the toolbar functions. 
  36016. toolbar_visible 
  36017.           Indicates whether the toolbar is shown 
  36018.  
  36019.  
  36020. ΓòÉΓòÉΓòÉ 15.16.1. TI_ ΓòÉΓòÉΓòÉ
  36021.  
  36022. TI_   Primitive 
  36023.  
  36024. Purpose:  Constants used as flags to the toolbar functions. 
  36025.  
  36026. ____________ 
  36027.  
  36028. Type:    const int TI_ 
  36029.  
  36030. ____________ 
  36031.  
  36032. Description: The constants defined in the TI_ section are used as flags to 
  36033. calls of the functions that manipulate the toolbar.  The number ans type 
  36034. parameters passed to the toolbar functions vary, depending on the flag. 
  36035.  
  36036. o TI_DISABLED 
  36037. o TI_DOWN 
  36038. o TI_ENABLED 
  36039. o TI_FUNCTIONID 
  36040. o TI_ITEMBITMAP 
  36041. o TI_UP 
  36042.  
  36043. ____________ 
  36044.  
  36045. See also: modify_toolbaritem(), toolbar_info(). 
  36046.  
  36047.  
  36048. ΓòÉΓòÉΓòÉ 15.16.2. toolbar_visible ΓòÉΓòÉΓòÉ
  36049.  
  36050. toolbar_visible   PEL 
  36051.  
  36052. Purpose:  Indicates whether the toolbar is shown 
  36053.  
  36054. ____________ 
  36055.  
  36056. Type:    int toolbar_visible 
  36057.  
  36058. ____________ 
  36059.  
  36060. Description: The toolbar_visible variable stores a value (either TRUE or 
  36061. FALSE), indicating whether the toolbar should be shown.  If it is TRUE, the 
  36062. toolbar is displayed, otherwise the toolbar is not displayed. 
  36063.  
  36064. ____________ 
  36065.  
  36066.  
  36067. ΓòÉΓòÉΓòÉ 15.17. Types ΓòÉΓòÉΓòÉ
  36068.  
  36069. case_insensitive 
  36070.           Indicate whether the current syntax highlighting type is case 
  36071.           sensitive. 
  36072. compilers[] 
  36073.           Store the compiler information. 
  36074. extensions[] 
  36075.           Store the type to extension associations. 
  36076. languages[] 
  36077.           Store all the type information 
  36078. languages_id 
  36079.           Holds the current type name. 
  36080. style_delimiter 
  36081.           Holds the characters that are used as delimiters for syntax 
  36082.           highlighting. 
  36083. syntax_colors_bg 
  36084.           Array of colors used for the syntax highlighting color palette. 
  36085. syntax_colors_fg[] 
  36086.           Array of colors used for the syntax highlighting color palette. 
  36087. syntax_highlight 
  36088.           Indicates whether syntax highlighting is turned on. 
  36089. templates[] 
  36090.           Store the type to template association. 
  36091.  
  36092.  
  36093. ΓòÉΓòÉΓòÉ 15.17.1. case_insensitive ΓòÉΓòÉΓòÉ
  36094.  
  36095. case_insensitive   Primitive 
  36096.  
  36097. Purpose:  Indicate whether the current syntax highlighting type is case 
  36098. sensitive. 
  36099.  
  36100. ____________ 
  36101.  
  36102. Type:    int case_insensitive 
  36103.  
  36104. ____________ 
  36105.  
  36106. Description: The case_insensitive variable, if TRUE, indicates that the current 
  36107. syntax highlighting type is not case sensitive in terms of identifying 
  36108. keywords. 
  36109.  
  36110. ____________ 
  36111.  
  36112. See also: 
  36113.  
  36114. o languages[] 
  36115. o get_case_sensitive() 
  36116.  
  36117.  
  36118. ΓòÉΓòÉΓòÉ 15.17.2. compilers[] ΓòÉΓòÉΓòÉ
  36119.  
  36120. compilers   PEL 
  36121.  
  36122. Purpose:  Store the compiler information. 
  36123.  
  36124. ____________ 
  36125.  
  36126. Type:    str compilers[] 
  36127.  
  36128. ____________ 
  36129.  
  36130. Description: The compilers array is an array of compiler names.  The 
  36131. information stored in the array is used when the compile_buffer() function is 
  36132. called.  Each compiler can have the following information: 
  36133.  
  36134. command_line 
  36135.           The command line that is passed to the OS/2 command processor.  You 
  36136.           can use a set of macros that are expanded before execution. 
  36137.           (Compilers) 
  36138. error_format 
  36139.           String name of the predefined error format. 
  36140. needs_input 
  36141.           Flag indicating whether the compile will need input to complete. 
  36142. input_file 
  36143.           File containing input for compiles needing input. 
  36144. list_all 
  36145.           Lists all output from a compile, rather than just errors. 
  36146. save_all 
  36147.           Saves all modified buffers before starting the compile. 
  36148. chdir 
  36149.           Changes to the directory of the source file before doing the compile. 
  36150. background 
  36151.           Processes the compile in the background. 
  36152. flags 
  36153.           System command flags. 
  36154. dos_settings 
  36155.           DOS settings used to set up the DOS environment for DOS compiles. 
  36156.  
  36157. ____________ 
  36158.  
  36159. See also: 
  36160.  
  36161. o languages[] 
  36162.  
  36163.  
  36164. ΓòÉΓòÉΓòÉ 15.17.3. escape_character ΓòÉΓòÉΓòÉ
  36165.  
  36166. escape_character   Primitive 
  36167.  
  36168. Purpose:  Store the character used to begin an escape sequence. 
  36169.  
  36170. ____________ 
  36171.  
  36172. Type:    str escape_character 
  36173.  
  36174. ____________ 
  36175.  
  36176. Description: The escape_character variable stores the character the editor uses 
  36177. to identify escapable line styles. 
  36178.  
  36179. ____________ 
  36180.  
  36181. See also: 
  36182.  
  36183. o languages[] 
  36184. o EscapeCharacter() 
  36185.  
  36186.  
  36187. ΓòÉΓòÉΓòÉ 15.17.4. extensions[] ΓòÉΓòÉΓòÉ
  36188.  
  36189. extensions   PEL 
  36190.  
  36191. Purpose:  Store the type to extension associations. 
  36192.  
  36193. ____________ 
  36194.  
  36195. Type:    str extensions[] 
  36196.  
  36197. ____________ 
  36198.  
  36199. Description: The extensions array is an array indexed by file extension. The 
  36200. elements of the array are the types mapped to the extensions.  For example: 
  36201.  
  36202. extensions[".pel"] == "pel"
  36203. evaluates to TRUE. 
  36204.  
  36205. ____________ 
  36206.  
  36207. See also: 
  36208.  
  36209. o languages[] 
  36210.  
  36211.  
  36212. ΓòÉΓòÉΓòÉ 15.17.5. languages[] ΓòÉΓòÉΓòÉ
  36213.  
  36214. languages   Primitive 
  36215.  
  36216. Purpose:  Store all the type information 
  36217.  
  36218. ____________ 
  36219.  
  36220. Type:    str languages[] 
  36221.  
  36222. ____________ 
  36223.  
  36224. Description: 
  36225.  
  36226. The languages array holds all of the type specific information. This 
  36227. information is applied to new buffers when the new_edit_file() function is 
  36228. called.  The array is indexed by type and has the following members: 
  36229.  
  36230.  
  36231. modified 
  36232.           Flag that is turned on if the type has been modified in the settings 
  36233.           notebook. 
  36234. compiler_name 
  36235.           Name of the compiler invoked when compile_buffer() is executed on a 
  36236.           buffer of this type. 
  36237. template 
  36238.           Name of the template used for template expansion. 
  36239. tab_stops 
  36240.           String holding the tab stobs for the type. 
  36241. margins 
  36242.           String holding left and right margins. 
  36243. matching_pairs 
  36244.           String of matching pair constructs used by goto_matching(). 
  36245. esc_character 
  36246.           Special character that can be used to prevent line styles from being 
  36247.           highlighted. 
  36248. buff_flags 
  36249.           Set of buffer flags to be used for buffers of this type. 
  36250. auto_indent 
  36251.           Flag indicatiing whether auto indent is turned on. 
  36252. syntax 
  36253.           Flag indicating whether syntax highlihting is turned on. 
  36254. stile_delimiters 
  36255.           String of characters to be used as delimiters for syntax highlighting 
  36256.           items. 
  36257. sensitive 
  36258.           Flag indicating whether the items defined for syntax highlighting are 
  36259.           case sensitive. 
  36260. expand 
  36261.           Flag indicating whether template expansion is on. 
  36262. category[] 
  36263.           Array of syntax highlighting categories defined for the type. 
  36264. keyword[] 
  36265.           Array of items defined as keyword styles for syntax highlighting. 
  36266. BufferFlags[] 
  36267.           Array of items defined as BufferFlags styles for syntax highlighting. 
  36268. line[] 
  36269.           Array of items defined as line styles for syntax highlighting. 
  36270.  
  36271. ____________ 
  36272.  
  36273. See also: 
  36274.  
  36275. o BufferFlags() 
  36276.  
  36277.  
  36278. ΓòÉΓòÉΓòÉ 15.17.6. languages_id ΓòÉΓòÉΓòÉ
  36279.  
  36280. languages_id   Primitive 
  36281.  
  36282. Purpose:  Holds the current type name. 
  36283.  
  36284. ____________ 
  36285.  
  36286. Type:    str languages_id 
  36287.  
  36288. ____________ 
  36289.  
  36290. Description: The languages_id stores the name of the current type.  It is used 
  36291. as index into the languages[] array to find the items to highlight. 
  36292.  
  36293. ____________ 
  36294.  
  36295. See also: 
  36296.  
  36297.  
  36298. ΓòÉΓòÉΓòÉ 15.17.7. style_delimiter ΓòÉΓòÉΓòÉ
  36299.  
  36300. style_delimiter   Primitive 
  36301.  
  36302. Purpose:  Holds the characters that are used as delimiters for syntax 
  36303. highlighting. 
  36304.  
  36305. ____________ 
  36306.  
  36307. Type:    str style_delimiter 
  36308.  
  36309. ____________ 
  36310.  
  36311. Description: The style_delimiter variable holds the string of characters that 
  36312. the editor used to delimit keywords for syntax highlighting.  A keyword will 
  36313. not be highlighted unless it is surrounded by delimiters.  Whitespace is 
  36314. automatically included in this string so do not have to be included by the 
  36315. user. 
  36316.  
  36317. ____________ 
  36318.  
  36319. See also: 
  36320.  
  36321. o languages[] 
  36322. o StyleDelimiters() 
  36323.  
  36324.  
  36325. ΓòÉΓòÉΓòÉ 15.17.8. syntax_colors_bg[] ΓòÉΓòÉΓòÉ
  36326.  
  36327. syntax_colors_bg   PEL 
  36328.  
  36329. Purpose:  Array of colors used for the syntax highlighting color palette. 
  36330.  
  36331. ____________ 
  36332.  
  36333. Type:    long syntax_colors_bg[] 
  36334.  
  36335. ____________ 
  36336.  
  36337. Description: The syntax_colors_bg[] array hold the colors that fill the 
  36338. background color palette for syntax highlighting dialogs.  The colors in this 
  36339. array may be changed manually in language.pel or through the Configure Color 
  36340. dialog in the settings_notebook(). 
  36341.  
  36342. ____________ 
  36343.  
  36344. See also: 
  36345.  
  36346. o syntax_colors_fg[] 
  36347.  
  36348.  
  36349. ΓòÉΓòÉΓòÉ 15.17.9. syntax_colors_fg ΓòÉΓòÉΓòÉ
  36350.  
  36351. syntax_colors_fg   PEL 
  36352.  
  36353. Purpose:  Array of colors used for the syntax highlighting color palette. 
  36354.  
  36355. ____________ 
  36356.  
  36357. Type:    long syntax_colors_fg[] 
  36358.  
  36359. ____________ 
  36360.  
  36361. Description: The syntax_colors_fg[] array hold the colors that fill the 
  36362. foreground color palette for syntax highlighting dialogs.  The colors in this 
  36363. array may be changed manually in language.pel or through the Configure Color 
  36364. dialog in the settings_notebook(). 
  36365.  
  36366. ____________ 
  36367.  
  36368. See also: 
  36369.  
  36370. o syntax_colors_bg 
  36371.  
  36372.  
  36373. ΓòÉΓòÉΓòÉ 15.17.10. syntax_highlight ΓòÉΓòÉΓòÉ
  36374.  
  36375. syntax_highlight   Primitive 
  36376.  
  36377. Purpose:  Indicates whether syntax highlighting is turned on. 
  36378.  
  36379. ____________ 
  36380.  
  36381. Type:    int syntax_highlight 
  36382.  
  36383. ____________ 
  36384.  
  36385. Description: The syntax_highlight variable is a buffer specific variable that 
  36386. tells whether the current buffer has syntax highlighting turned on. This 
  36387. variable is set by syntax highlighting field of the type structure. 
  36388.  
  36389. ____________ 
  36390.  
  36391. See also: 
  36392.  
  36393. o languages[] 
  36394. o Syntax() 
  36395.  
  36396.  
  36397. ΓòÉΓòÉΓòÉ 15.17.11. templates[] ΓòÉΓòÉΓòÉ
  36398.  
  36399. templates   PEL 
  36400.  
  36401. Purpose:  Store the type to template association. 
  36402.  
  36403. ____________ 
  36404.  
  36405. Type:    str templates[] 
  36406.  
  36407. ____________ 
  36408.  
  36409. Description: The templates array is an array indexed by type. The elements of 
  36410. the array are the templates mapped to the types.  For example: 
  36411.  
  36412. templates["pel"] == "awk"
  36413. evaluates to TRUE. 
  36414.  
  36415. ____________ 
  36416.  
  36417. See also: 
  36418.  
  36419. o languages[] 
  36420.  
  36421.  
  36422. ΓòÉΓòÉΓòÉ 15.18. User Interface ΓòÉΓòÉΓòÉ
  36423.  
  36424. keyboard_flags() 
  36425.           Stores the keyboard status byte. 
  36426. keyboard_input_pending 
  36427.           Indicates that a keystroke is waiting to be read. 
  36428. last_message 
  36429.           Contains the last displayed warning or error message. 
  36430. mouse_display_x 
  36431.           Tells which text column the mouse cursor occupies. 
  36432. mouse_display_y 
  36433.           Tells which text line the mouse cursor occupies. 
  36434. mouse_event_column 
  36435.           Contains the column in the buffer at which the mouse was last 
  36436.           clicked. 
  36437. mouse_event_digit 
  36438.           Contains the digit of the hex humber that the mouse was clicked, for 
  36439.           hex-dump mode. 
  36440. mouse_event_line 
  36441.           Contains the column in the buffer where the mouse was last 
  36442.           positioned. 
  36443. mouse_event_offset 
  36444.           Contains the buffer offset at which the mouse was last clicked. 
  36445. mouse_event_side 
  36446.           Contains the side (number or ASCII) of the dump in which the mouse 
  36447.           was clicked, for hex-dump mode. 
  36448. mouse_event_x 
  36449.           Stores column offset of mouse when last clicked. 
  36450. mouse_event_y 
  36451.           Stores line offset of mouse when last clicked. 
  36452. mouse_pixel_x() 
  36453.           Mouse X position in pixels. 
  36454. mouse_pixel_y() 
  36455.           Mouse Y position in pixels. 
  36456. prompt_response 
  36457.           Stores input from user. 
  36458.  
  36459.  
  36460. ΓòÉΓòÉΓòÉ 15.18.1. keyboard_flags ΓòÉΓòÉΓòÉ
  36461.  
  36462. keyboard_flags  read-only   Primitive 
  36463.  
  36464. Purpose: Stores the keyboard status byte. 
  36465.  
  36466. ____________ 
  36467.  
  36468. Type: int keyboard_flags 
  36469.  
  36470. ____________ 
  36471.  
  36472. Description: 
  36473.  
  36474. The keyboard_flags variable is a copy of the current DOS "keyboard status 
  36475. byte." The first eight bits of this variable (numbered from 0 to 7) are used as 
  36476. flags to indicate the status of various shift and toggle keys.  When the bit is 
  36477. set (when it has a 1 value), the key is pressed or the toggle is on.  When the 
  36478. bit is zero, the key has not been pressed, or the toggle is off. 
  36479.  
  36480. The table below shows which key or toggle is associated with each of these 
  36481. bits: 
  36482.  
  36483. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  36484. ΓöéBit #  ΓöéKey or Toggle       ΓöéHex mask  Γöé
  36485. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  36486. Γöé0      ΓöéRight shift key     Γöé01H       Γöé
  36487. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  36488. Γöé1      ΓöéLeft shift key      Γöé02H       Γöé
  36489. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  36490. Γöé2      ΓöéControl key         Γöé04H       Γöé
  36491. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  36492. Γöé3      ΓöéAlt key             Γöé08H       Γöé
  36493. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  36494. Γöé4      ΓöéScroll lock toggle  Γöé10H       Γöé
  36495. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  36496. Γöé5      ΓöéNum lock toggle     Γöé20H       Γöé
  36497. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  36498. Γöé6      ΓöéCaps lock toggle    Γöé40H       Γöé
  36499. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  36500. Γöé7      ΓöéInsert toggle       Γöé80H       Γöé
  36501. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  36502.  
  36503. Bits 0 through 3 of this variable are set by the system and may not be modified 
  36504. by the user or user programs.  Bits 4 through 7 may be interrogated or changed 
  36505. by the user.  This allows the user to change the setting of these toggle keys. 
  36506.  
  36507.  
  36508. ΓòÉΓòÉΓòÉ 15.18.2. keyboard_input_pending ΓòÉΓòÉΓòÉ
  36509.  
  36510. keyboard_input_pending   Primitive 
  36511.  
  36512. Purpose: Indicates that a keystroke is waiting to be read. 
  36513.  
  36514. ____________ 
  36515.  
  36516. Type: int keyboard_input_pending 
  36517.  
  36518. ____________ 
  36519.  
  36520. Description: 
  36521.  
  36522. This variable is set to a non-zero (TRUE) value when one or more characters of 
  36523. keyboard input are waiting to be processed. When the keyboard buffer is empty, 
  36524. the keyboard_input_pending variable is set to zero (FALSE).  Pending characters 
  36525. may be read with either the getchar() or getkey() functions. 
  36526.  
  36527. This variable is set by the system and may not be modified by the user. 
  36528.  
  36529. ____________ 
  36530.  
  36531. See also:  getchar(), getkey() 
  36532.  
  36533.  
  36534. ΓòÉΓòÉΓòÉ 15.18.3. last_message ΓòÉΓòÉΓòÉ
  36535.  
  36536. last_message  read-only   Primitive 
  36537.  
  36538. Purpose: Contains the last displayed warning or error message. 
  36539.  
  36540. ____________ 
  36541.  
  36542. Type: str last_message 
  36543.  
  36544. ____________ 
  36545.  
  36546. Description: The last_message variable contains the text of the last message 
  36547. printed to the screen with the error(), warning(), or message() function.  This 
  36548. allows the user to re-display the message or write a function that examines its 
  36549. contents. This variable is set by the system and may not be modified by the 
  36550. user. 
  36551.  
  36552. ____________ 
  36553.  
  36554. See also:   message(), notify(), warning(), error() 
  36555.  
  36556.  
  36557. ΓòÉΓòÉΓòÉ 15.18.4. mouse_display_x ΓòÉΓòÉΓòÉ
  36558.  
  36559. mouse_display_x   Primitive 
  36560.  
  36561. Purpose: Tells which text column the mouse cursor occupies. 
  36562.  
  36563. ____________ 
  36564.  
  36565. Type: int mouse_display_x 
  36566.  
  36567. ____________ 
  36568.  
  36569. Description: The mouse_display_x variable stores the current screen column 
  36570. occupied by the mouse.  This count begins with column 0 at the left edge of the 
  36571. display.  together with mouse_display_y, this variable defines the current 
  36572. mouse position. 
  36573.  
  36574. Assigning a value to this variable changes the horizontal position of the mouse 
  36575. cursor. 
  36576.  
  36577.  
  36578. ΓòÉΓòÉΓòÉ 15.18.5. mouse_display_y ΓòÉΓòÉΓòÉ
  36579.  
  36580. mouse_display_y   Primitive 
  36581.  
  36582. Purpose: Tells which text line the mouse cursor occupies. 
  36583.  
  36584. ____________ 
  36585.  
  36586. Type: int mouse_display_y 
  36587.  
  36588. ____________ 
  36589.  
  36590. Description: The mouse_display_y variable stores the current screen line 
  36591. occupied by the mouse.  This count begins with line 0 at the top of the 
  36592. display. Together with mouse_display_x, this variable defines the current mouse 
  36593. position. 
  36594.  
  36595. Assigning a value to this variable changes the vertical position of the mouse 
  36596. cursor. 
  36597.  
  36598.  
  36599. ΓòÉΓòÉΓòÉ 15.18.6. mouse_event_column ΓòÉΓòÉΓòÉ
  36600.  
  36601. mouse_event_column.   read only,   Primitive 
  36602.  
  36603. Purpose: Contains the column in the buffer at which the mouse was last clicked. 
  36604.  
  36605. ____________ 
  36606.  
  36607. Type: short mouse_event_column 
  36608.  
  36609. ____________ 
  36610.  
  36611. Description: The mouse_event_column variable contains the column in the buffer 
  36612. that corresponds to the position on the window that was last clicked on.  It is 
  36613. used to determine where to position the cursor when the mouse is clicked.  If 
  36614. the goto_pos() function is called with mouse_event_line and mouse_event_column 
  36615. passed to it, the mouse will be positioned where the mouse was clicked. 
  36616. However, if hex-dump mode is on, the mouse may not be positioned correctly. 
  36617. Use goto_buffer_offset()(mouse_event_offset) for hex-dump mode. 
  36618.  
  36619. ____________ 
  36620.  
  36621. Value returned: None. 
  36622.  
  36623.  
  36624. ΓòÉΓòÉΓòÉ 15.18.7. mouse_event_digit ΓòÉΓòÉΓòÉ
  36625.  
  36626. mouse_event_digit.   read only,   Primitive 
  36627.  
  36628. Purpose: Contains the digit of the hex humber that the mouse was clicked, for 
  36629. hex-dump mode. 
  36630.  
  36631. ____________ 
  36632.  
  36633. Type: short mouse_event_digit 
  36634.  
  36635. ____________ 
  36636.  
  36637. Description:  In hex-dump mode, when the mouse is clicked on the number side 
  36638. (mouse_event_side=1), the mouse_event_digit variable contains the digit of the 
  36639. number on which the mouse was clicked.  If you are not in hex-dump mode or the 
  36640. mouse was clicked on the aSCII side (mouse_event_side=0), it contains 0. 
  36641.  
  36642. ____________ 
  36643.  
  36644. Value returned: None. 
  36645.  
  36646.  
  36647. ΓòÉΓòÉΓòÉ 15.18.8. mouse_event_line ΓòÉΓòÉΓòÉ
  36648.  
  36649. mouse_event_line   read only,   Primitive 
  36650.  
  36651. Purpose: Contains the column in the buffer where the mouse was last positioned. 
  36652.  
  36653. ____________ 
  36654.  
  36655. Type: short mouse_event_line 
  36656.  
  36657. ____________ 
  36658.  
  36659. Description: The mouse_event_line variable contains the column in the buffer 
  36660. that corresponds to the position on the window that was last clicked on.  It is 
  36661. used to determine where to position the cursor when the mouse is clicked.  If 
  36662. goto_pos() is called with mouse_event_line and mouse_event_column passed to it, 
  36663. the mouse will be positioned where the mouse was last clicked.  However, if 
  36664. hex-dump mode is on, the mouse may not be positioned quite correctly.  Use 
  36665. goto_buffer_offset() (mouse_event_offset) for hex-dump mode. 
  36666.  
  36667. ____________ 
  36668.  
  36669. Value returned: None. 
  36670.  
  36671.  
  36672. ΓòÉΓòÉΓòÉ 15.18.9. mouse_event_offset ΓòÉΓòÉΓòÉ
  36673.  
  36674. mouse_event_offset. 
  36675.  
  36676. Purpose: Contains the buffer offset at which the mouse was last clicked. 
  36677.  
  36678. ____________ 
  36679.  
  36680. Type: short mouse_event_offset 
  36681.  
  36682. ____________ 
  36683.  
  36684. Description: The mouse_event_offset variable contains the buffer offset that 
  36685. corresponds to the position on the window that was last active, or clicked on. 
  36686. It is used in hex-dump mode to determine where to position the cursor when the 
  36687. mouse is clicked. 
  36688.  
  36689. If the goto_buffer_offset() function is called with mouse_event_offset passed 
  36690. to it, the mouse will be positioned where the mouse was last clicked. In 
  36691. hex-dump mode, if hex-dump mode is not on, the mouse will be positioned as 
  36692. close to the mouse click as possible while staying in "real space." 
  36693.  
  36694.  
  36695. ΓòÉΓòÉΓòÉ 15.18.10. mouse_event_side ΓòÉΓòÉΓòÉ
  36696.  
  36697. mouse_event_side   read only,   Primitive 
  36698.  
  36699. Purpose:  Contains the side (number or ASCII) of the dump in which the mouse 
  36700. was clicked, for hex-dump mode. 
  36701.  
  36702. ____________ 
  36703.  
  36704. Type:  short mouse_event_side 
  36705.  
  36706. ____________ 
  36707.  
  36708. Description:  In hex-dump mode, the mouse_event_side variable contains the side 
  36709. ofthe cump screen that the mouse was clicked on. (Number side=1, ASCII side=0.) 
  36710. If hex-dump mode is not on, this variable contains 0. 
  36711.  
  36712. ____________ 
  36713.  
  36714. Value returned: None. 
  36715.  
  36716.  
  36717. ΓòÉΓòÉΓòÉ 15.18.11. mouse_event_x ΓòÉΓòÉΓòÉ
  36718.  
  36719. mouse_event_x   Primitive 
  36720.  
  36721. Purpose: Stores column offset of mouse when last clicked. 
  36722.  
  36723. ____________ 
  36724.  
  36725. Type: int mouse_event_x 
  36726.  
  36727. ____________ 
  36728.  
  36729. Description: The mouse_event_x variable contains the column offset of the mouse 
  36730. cursor at the time the last "mouse event" occurred.  A mouse event is a mouse 
  36731. button press or release.  Together with mouse_event_y, this variable allows you 
  36732. to determine at what the mouse was pointing when one or more of the mouse keys 
  36733. were used. 
  36734.  
  36735. Keep in mind that screen positions differ from buffer positions in that the 
  36736. former are offset, and therefore zero origin, while the latter count begins 
  36737. with one.  This variable represents a screen position. 
  36738.  
  36739. The value of this variable is updated whenever a mouse event occurs.  The 
  36740. various the editor mouse events are described in the "User Interface" chapter 
  36741. in Part One of this manual. 
  36742.  
  36743.  
  36744. ΓòÉΓòÉΓòÉ 15.18.12. mouse_event_y ΓòÉΓòÉΓòÉ
  36745.  
  36746. mouse_event_y   Primitive 
  36747.  
  36748. Purpose: Stores line offset of mouse when last clicked. 
  36749.  
  36750. ____________ 
  36751.  
  36752. Type: int mouse_event_y 
  36753.  
  36754. ____________ 
  36755.  
  36756. Description: The mouse_event_y variable contains the line offset of the mouse 
  36757. cursor at the time the last mouse event occurred.  Together with mouse_event_x, 
  36758. this variable allows you to determine at what the mouse was pointing when one 
  36759. or more of the mouse keys were used. 
  36760.  
  36761. Keep in mind that screen positions differ from buffer positions in that the 
  36762. former are offset, and therefore zero origin, while the latter count begins 
  36763. with one.  This variable represents a screen position. 
  36764.  
  36765. The value of this variable is updated whenever a mouse event occurs.  The 
  36766. various mouse events are described in the "User Interface" chapter in Part One 
  36767. of this manual. 
  36768.  
  36769.  
  36770. ΓòÉΓòÉΓòÉ 15.18.13. mouse_pixel_x ΓòÉΓòÉΓòÉ
  36771.  
  36772. mouse_pixel_x   Primitive 
  36773.  
  36774. Purpose: Mouse X position in pixels. 
  36775.  
  36776. ____________ 
  36777.  
  36778. Type:   str mouse_pixel_x 
  36779.  
  36780. ____________ 
  36781.  
  36782. Description: 
  36783.  
  36784. The mouse_pixel_x variable contains the x position of the mouse cursor. 
  36785.  
  36786.  
  36787. ΓòÉΓòÉΓòÉ 15.18.14. mouse_pixel_y ΓòÉΓòÉΓòÉ
  36788.  
  36789. mouse_pixel_y   Primitive 
  36790.  
  36791. Purpose: Mouse Y position in pixels. 
  36792.  
  36793. ____________ 
  36794.  
  36795. Type:   str mouse_pixel_y 
  36796.  
  36797. ____________ 
  36798.  
  36799. Description: 
  36800.  
  36801. The mouse_pixel_y variable contains the y position of the mouse cursor. 
  36802.  
  36803.  
  36804. ΓòÉΓòÉΓòÉ 15.18.15. prompt_response ΓòÉΓòÉΓòÉ
  36805.  
  36806. prompt_response   Primitive 
  36807.  
  36808. Purpose: Stores input from user. 
  36809.  
  36810. ____________ 
  36811.  
  36812. Type: str prompt_response 
  36813.  
  36814. ____________ 
  36815.  
  36816. Description: The prompt_response variable is used by library functions that 
  36817. prompt the user for input.  These functions treat the contents of 
  36818. prompt_response as user input. 
  36819.  
  36820. Through the use of an Event, the contents of this variable may be modified as 
  36821. the user is being prompted.  For example, pressing the up arrow when prompted 
  36822. could be made to cause the result of a previous prompt to be assigned to 
  36823. prompt_response. The prompting function could then receive this as input from 
  36824. the user. 
  36825.  
  36826. See the "Event Handling" chapter in Part One of this manual for details of 
  36827. event handling. 
  36828.  
  36829.  
  36830. ΓòÉΓòÉΓòÉ 15.19. Version Control System ΓòÉΓòÉΓòÉ
  36831.  
  36832. PVCS_ 
  36833.           Constants used to turn on different features of your VCS. 
  36834. default_get_command 
  36835.           Stores default get command for your version control system. 
  36836. default_put_command 
  36837.           Stores default put command for your version control system. 
  36838. default_vdiff_command 
  36839.           Stores default vdiff command for PVCS. 
  36840. get_command 
  36841.           Specify get command for your version control system. 
  36842. put_command 
  36843.           Specify put command for your version control system. 
  36844. vdiff_command 
  36845.           PVCS Vdiff command (compare files) 
  36846.  
  36847.  
  36848. ΓòÉΓòÉΓòÉ 15.19.1. PVCS_ ΓòÉΓòÉΓòÉ
  36849.  
  36850. PVCS_   Primitive 
  36851.  
  36852. Purpose:  Constants used to turn on different features of your VCS. 
  36853.  
  36854. ____________ 
  36855.  
  36856. Type:    const int PVCS_ 
  36857.  
  36858. ____________ 
  36859.  
  36860. Description: The constants defined in the PVCS_ section are used as flags to 
  36861. calls of the functions that toggle the state of the version control system. 
  36862.  
  36863. o PVCS_DISABLED 
  36864. o PVCS_ENABLE_EMPTY_GETS 
  36865. o PVCS_ENABLE_GETS 
  36866.  
  36867. ____________ 
  36868.  
  36869. See also: pvcs(). 
  36870.  
  36871.  
  36872. ΓòÉΓòÉΓòÉ 15.19.2. default_get_command ΓòÉΓòÉΓòÉ
  36873.  
  36874. default_get_command   PEL 
  36875.  
  36876. Purpose:  Stores default get command for your version control system. 
  36877.  
  36878. ____________ 
  36879.  
  36880. Type:    str default_get_command 
  36881.  
  36882. ____________ 
  36883.  
  36884. Description: The default_get_command is the default command used when the 
  36885. editor performs a vcs get.  If the get_command is not specified, the 
  36886. default_get_command is used instead.  It can be specified on the VCS page of 
  36887. the settings notebook. 
  36888.  
  36889. ____________ 
  36890.  
  36891.  
  36892. ΓòÉΓòÉΓòÉ 15.19.3. default_put_command ΓòÉΓòÉΓòÉ
  36893.  
  36894. default_put_command   PEL 
  36895.  
  36896. Purpose:  Stores default put command for your version control system. 
  36897.  
  36898. ____________ 
  36899.  
  36900. Type:    str default_put_command 
  36901.  
  36902. ____________ 
  36903.  
  36904. Description: The default_put_command is the default command used when the 
  36905. editor performs a vcs put.  If the put_command is not specified, the 
  36906. default_put_command is used instead.  It can be specified on the VCS page of 
  36907. the settings notebook. 
  36908.  
  36909. ____________ 
  36910.  
  36911.  
  36912. ΓòÉΓòÉΓòÉ 15.19.4. default_vdiff_command ΓòÉΓòÉΓòÉ
  36913.  
  36914. default_vdiff_command   PEL 
  36915.  
  36916. Purpose:  Stores default vdiff command for PVCS. 
  36917.  
  36918. ____________ 
  36919.  
  36920. Type:    str default_vdiff_command 
  36921.  
  36922. ____________ 
  36923.  
  36924. Description: The default_vdiff_command is the default command used when the 
  36925. editor performs a PVCS vdiff.  If the vdiff_command is not specified, the 
  36926. default_vdiff_command is used instead.  The editor currently only supports PVCS 
  36927. vdiff commands. 
  36928.  
  36929. ____________ 
  36930.  
  36931.  
  36932. ΓòÉΓòÉΓòÉ 15.19.5. get_command ΓòÉΓòÉΓòÉ
  36933.  
  36934. get_command   PEL 
  36935.  
  36936. Purpose:  Specify get command for your version control system. 
  36937.  
  36938. ____________ 
  36939.  
  36940. Type:    str get_command 
  36941.  
  36942. ____________ 
  36943.  
  36944. Description: The get_command is the command used when the editor performs a vcs 
  36945. get.  It can be specified on the VCS page of the settings notebook. 
  36946.  
  36947. ____________ 
  36948.  
  36949.  
  36950. ΓòÉΓòÉΓòÉ 15.19.6. put_command ΓòÉΓòÉΓòÉ
  36951.  
  36952. put_command   PEL 
  36953.  
  36954. Purpose:  Specify put command for your version control system. 
  36955.  
  36956. ____________ 
  36957.  
  36958. Type:    str put_command 
  36959.  
  36960. ____________ 
  36961.  
  36962. Description: The put_command is the command used when the editor performs a vcs 
  36963. put.  It can be specified on the VCS page of the settings notebook. 
  36964.  
  36965. ____________ 
  36966.  
  36967.  
  36968. ΓòÉΓòÉΓòÉ 15.19.7. vdiff_command ΓòÉΓòÉΓòÉ
  36969.  
  36970. vdiff_command   PEL 
  36971.  
  36972. Purpose:  PVCS Vdiff command (compare files) 
  36973.  
  36974. ____________ 
  36975.  
  36976. Type:    str vdiff_command 
  36977.  
  36978. ____________ 
  36979.  
  36980. Description: The vdiff_command is the command the editor issues when asked to 
  36981. perform a PVCS Vdiff.  Two windows are displayed side by side with the current 
  36982. buffer on the right.  Differences between the current buffer and the last 
  36983. version are highlighted. 
  36984.  
  36985. ____________ 
  36986.  
  36987.  
  36988. ΓòÉΓòÉΓòÉ 15.20. Windowing ΓòÉΓòÉΓòÉ
  36989.  
  36990. WINDOW_ 
  36991.           Constants used as masks and to set window flags. 
  36992. auto_indent_mode 
  36993.           Indicates if new lines are automatically indented. 
  36994. current_window 
  36995.           Stores the id number of the current window. 
  36996. default_dump_bytes_per_line 
  36997.           Contains the default number of bytes to be displayed per line in 
  36998.           hex-dump mode. 
  36999. default_linenumber_format 
  37000.           Determines if and how line numbers are displayed when a new window is 
  37001.           created. 
  37002. default_scroll_context_bottom 
  37003.           Scrolling margin honored by cursor at screen bottom. 
  37004. default_scroll_context_left 
  37005.           Scrolling margin honored by cursor at screen left. 
  37006. default_scroll_context_right 
  37007.           Scrolling margin honored by cursor at screen right. 
  37008. default_scroll_context_top 
  37009.           Scrolling margin honored by cursor at screen top. 
  37010. default_scroll_means_pan 
  37011.           Indicates whether movements apply to cursor or text. 
  37012. default_scroll_unit_horizontal 
  37013.           Stores number of columns in horizontal scrolling unit. 
  37014. default_scroll_unit_vertical 
  37015.           Stores the number of lines in vertical scrolling unit. 
  37016. default_visible_newlines 
  37017.           Defines string displayed to indicate end of line. 
  37018. default_visible_spaces 
  37019.           Defines appearance of a space on-screen. 
  37020. default_visible_tabs 
  37021.           Defines appearance of a tab on-screen. 
  37022. default_visible_virtual_lines 
  37023.           Defines appearance of lines beyond end of buffer 
  37024. default_visible_virtual_spaces 
  37025.           Defines appearance of virtual spaces on-screen. 
  37026. default_window_flags 
  37027.           Stores a number of window attributes as flags. 
  37028. default_window_page_offset 
  37029.           Cursor line position used when window is re-drawn. 
  37030. default_window_page_overlap 
  37031.           Defines how many lines are retained after paging. 
  37032. dump_bytes_per_line 
  37033.           Contains the number of bytes to be displayed per line in hex mode. 
  37034. dump_digit 
  37035.           Contains the current digit that the cursor is on in hex-dump mode. 
  37036. mdi_mode 
  37037.           Determines the document interface mode. 
  37038. visible_newlines 
  37039.           Defines string displayed to indicate end of line. 
  37040. visible_spaces 
  37041.           Defines appearance of a space on-screen. 
  37042. visible_tabs 
  37043.           Defines appearance of a tab on-screen. 
  37044. visible_virtual_lines 
  37045.           Defines appearance of lines beyond end of buffer 
  37046. visible_virtual_spaces 
  37047.           Defines appearance of virtual spaces on-screen. 
  37048. window_first 
  37049.           Stores line number of the first line of text in a window. 
  37050. window_flags 
  37051.           Stores a number of window attributes as flags. 
  37052. window_height 
  37053.           Tells over-all height of the current window in lines. 
  37054. window_margin 
  37055.           Tells the number of columns off-screen to the left. 
  37056. window_name 
  37057.           Stores a name for display in a window's title bar. 
  37058. window_page_offset 
  37059.           Cursor line position used when window is re-drawn. 
  37060. window_page_overlap 
  37061.           Defines how many lines are retained after paging. 
  37062. window_text_height 
  37063.           Tells how many lines of text a window may contain. 
  37064. window_text_width() 
  37065.           Tells how many columns of text a window contains. 
  37066. window_text_x0 
  37067.           Tells the column offset of text in the window. 
  37068. window_text_y0 
  37069.           Tells the line offset of text in the window. 
  37070. window_width 
  37071.           Tells how many columns the current window contains. 
  37072. window_x0 
  37073.           Tells the column offset of the window. 
  37074. window_y0 
  37075.           Tells the line offset of the window. 
  37076.  
  37077.  
  37078. ΓòÉΓòÉΓòÉ 15.20.1. WINDOW_ ΓòÉΓòÉΓòÉ
  37079.  
  37080. WINDOW_   PEL 
  37081.  
  37082. Purpose:  Constants used as masks and to set window flags. 
  37083.  
  37084. ____________ 
  37085.  
  37086. Type:    const int WINDOW_ 
  37087.  
  37088. ____________ 
  37089.  
  37090. Description: The constants defined in the WINDOW_ section are used to set the 
  37091. window_flags variable.  They can also be used as masks to examine the bits of 
  37092. the window_flags variable. 
  37093.  
  37094. o WINDOW_BORDERS 
  37095. o WINDOW_CARAT 
  37096. o WINDOW_CHARS 
  37097. o WINDOW_COLLAPSED 
  37098. o WINDOW_DISPLAY_FULL_FILENAME 
  37099. o WINDOW_EXPANDED 
  37100. o WINDOW_HEX 
  37101. o WINDOW_HIDDEN 
  37102. o WINDOW_HORIZ_SB 
  37103. o WINDOW_IBM 
  37104. o WINDOW_MAX_BOX 
  37105. o WINDOW_MIN_BOX 
  37106. o WINDOW_MIN_HEIGHT 
  37107. o WINDOW_MIN_WIDTH 
  37108. o WINDOW_NOBORDER 
  37109. o WINDOW_NORMAL 
  37110. o WINDOW_NORM_BORDER 
  37111. o WINDOW_NO_TITLE 
  37112. o WINDOW_OCTAL 
  37113. o WINDOW_PLAIN 
  37114. o WINDOW_SCROLLBARS 
  37115. o WINDOW_SIZE_BORDER 
  37116. o WINDOW_STANDARD 
  37117. o WINDOW_STANDARD_MDI 
  37118. o WINDOW_STANDARD_SDI 
  37119. o WINDOW_SYSTEM 
  37120. o WINDOW_SYS_MENU 
  37121. o WINDOW_TITLE 
  37122. o WINDOW_TITLEBAR 
  37123. o WINDOW_VERT_SB 
  37124. o WINDOW_ZOOM 
  37125.  
  37126. ____________ 
  37127.  
  37128. See also: create_window(), window_flags. 
  37129.  
  37130.  
  37131. ΓòÉΓòÉΓòÉ 15.20.2. auto_indent_mode ΓòÉΓòÉΓòÉ
  37132.  
  37133. auto_indent_mode   Primitive 
  37134.  
  37135. Purpose: Indicates if new lines are automatically indented. 
  37136.  
  37137. ____________ 
  37138.  
  37139. Type:   int auto_indent_mode 
  37140.  
  37141. ____________ 
  37142.  
  37143. Description: 
  37144.  
  37145. If the auto_indent_mode variable is set then new lines are indented to the same 
  37146. indention level as the previous line.  The indention level of a line is 
  37147. determined by the amount of whitespace (spaces or tabs) preceding the first 
  37148. character on the line. 
  37149.  
  37150.  
  37151. ΓòÉΓòÉΓòÉ 15.20.3. current_window ΓòÉΓòÉΓòÉ
  37152.  
  37153. current_window   Primitive 
  37154.  
  37155. Purpose: Stores the id number of the current window. 
  37156.  
  37157. ____________ 
  37158.  
  37159. Type: winid current_window 
  37160.  
  37161. ____________ 
  37162.  
  37163. Description: 
  37164.  
  37165. The current_window variable contains the id number of the currently active 
  37166. window.  The window id is the number assigned to the window by the system at 
  37167. the time of its creation with the create_window function. 
  37168.  
  37169. This variable may be read, used in comparisons and may be assigned any valid 
  37170. window id.  Keep in mind that in making assignments to current_window that 
  37171. buffer associated with the window you make current will become current.  For 
  37172. this reason changing the value of current_window usually results in a new value 
  37173. for current_buffer as well. 
  37174.  
  37175.  
  37176. ΓòÉΓòÉΓòÉ 15.20.4. default_dump_bytes_per_line ΓòÉΓòÉΓòÉ
  37177.  
  37178. default_dump_bytes_per_line   read only   Primitive 
  37179.  
  37180. Purpose: Contains the default number of bytes to be displayed per line in 
  37181. hex-dump mode. 
  37182.  
  37183. ____________ 
  37184.  
  37185. Type: short default_dump_bytes_per_line 
  37186.  
  37187. ____________ 
  37188.  
  37189. Description: The default_dump_bytes_per_line variable is used in hex-dump mode 
  37190. to determine the number of bytes to display on a line in hex-dump mode. The 
  37191. system default value for this variable is 16, but it may be changed. 
  37192.  
  37193. ____________ 
  37194.  
  37195. See also: dump_bytes_per_line 
  37196.  
  37197.  
  37198. ΓòÉΓòÉΓòÉ 15.20.5. dump_bytes_per_line() ΓòÉΓòÉΓòÉ
  37199.  
  37200. dump_bytes_per_line.   Primitive 
  37201.  
  37202. Purpose: Contains the number of bytes to be displayed per line in hex mode. 
  37203.  
  37204. ____________ 
  37205.  
  37206. Type: short dump_bytes_per_line 
  37207.  
  37208. ____________ 
  37209.  
  37210. Description: The dump_bytes_per_line variable is used in hex-dump mode to 
  37211. determine the number of bytes to display on a line. 
  37212.  
  37213. ____________ 
  37214.  
  37215. See also:  default_dump_bytes_per_line, window_flags 
  37216.  
  37217.  
  37218. ΓòÉΓòÉΓòÉ 15.20.6. dump_digit ΓòÉΓòÉΓòÉ
  37219.  
  37220. dump_digit.   read only,   Primitive 
  37221.  
  37222. Purpose: Contains the current digit that the cursor is on in hex-dump mode. 
  37223.  
  37224. ____________ 
  37225.  
  37226. Type: short dump_digit 
  37227.  
  37228. ____________ 
  37229.  
  37230. Description: The dump_digit window variable is used in hex-dump mode, when the 
  37231. WINDOW_NUM_SIDE window flag is on, to determine what digit of the number to 
  37232. place the cursor on. 
  37233.  
  37234. ____________ 
  37235.  
  37236. See also: window_flags 
  37237.  
  37238.  
  37239. ΓòÉΓòÉΓòÉ 15.20.7. default_linenumber_format ΓòÉΓòÉΓòÉ
  37240.  
  37241. default_linenumber_format   Primitive 
  37242.  
  37243. Purpose: Determines if and how line numbers are displayed when a new window is 
  37244. created. 
  37245.  
  37246. ____________ 
  37247.  
  37248. Type:   str default_linenumber_format 
  37249.  
  37250. ____________ 
  37251.  
  37252. Description: 
  37253.  
  37254. The default_linenumber_format variable contains the initial value of the 
  37255. linenumber_format variable when a new buffer is created. 
  37256.  
  37257. ____________ 
  37258.  
  37259. See also:  linenumber_format 
  37260.  
  37261.  
  37262. ΓòÉΓòÉΓòÉ 15.20.8. default_scroll_context_bottom ΓòÉΓòÉΓòÉ
  37263.  
  37264. default_scroll_context_bottom   Primitive 
  37265.  
  37266. Purpose: Scrolling margin honored by cursor at screen bottom. 
  37267.  
  37268. ____________ 
  37269.  
  37270. Type:   int default_scroll_context_bottom 
  37271.  
  37272. ____________ 
  37273.  
  37274. Description: 
  37275.  
  37276. The default_scroll_context_bottom variable contains the initial value of the 
  37277. scroll_context_bottom variable when a new buffer is created. 
  37278.  
  37279. ____________ 
  37280.  
  37281. See also:  scroll_context_bottom 
  37282.  
  37283.  
  37284. ΓòÉΓòÉΓòÉ 15.20.9. default_scroll_context_left ΓòÉΓòÉΓòÉ
  37285.  
  37286. default_scroll_context_left   Primitive 
  37287.  
  37288. Purpose: Scrolling margin honored by cursor at screen left. 
  37289.  
  37290. ____________ 
  37291.  
  37292. Type:   int default_scroll_context_left 
  37293.  
  37294. ____________ 
  37295.  
  37296. Description: 
  37297.  
  37298. The default_scroll_context_left variable contains the initial value of the 
  37299. scroll_context_left variable when a new buffer is created. 
  37300.  
  37301. ____________ 
  37302.  
  37303. See also:  scroll_context_left 
  37304.  
  37305.  
  37306. ΓòÉΓòÉΓòÉ 15.20.10. default_scroll_context_right ΓòÉΓòÉΓòÉ
  37307.  
  37308. default_scroll_context_right   Primitive 
  37309.  
  37310. Purpose: Scrolling margin honored by cursor at screen right. 
  37311.  
  37312. ____________ 
  37313.  
  37314. Type:   int default_scroll_context_right 
  37315.  
  37316. ____________ 
  37317.  
  37318. Description: 
  37319.  
  37320. The default_scroll_context_right variable contains the initial value of the 
  37321. scroll_context_right variable when a new buffer is created. 
  37322.  
  37323. ____________ 
  37324.  
  37325. See also:  scroll_context_right 
  37326.  
  37327.  
  37328. ΓòÉΓòÉΓòÉ 15.20.11. default_scroll_context_top ΓòÉΓòÉΓòÉ
  37329.  
  37330. default_scroll_context_top   Primitive 
  37331.  
  37332. Purpose: Scrolling margin honored by cursor at screen top. 
  37333.  
  37334. ____________ 
  37335.  
  37336. Type:   int default_scroll_context_top 
  37337.  
  37338. ____________ 
  37339.  
  37340. Description: 
  37341.  
  37342. The default_scroll_context_top variable contains the initial value of the 
  37343. scroll_context_top variable when a new buffer is created. 
  37344.  
  37345. ____________ 
  37346.  
  37347. See also:  scroll_context_top 
  37348.  
  37349.  
  37350. ΓòÉΓòÉΓòÉ 15.20.12. default_scroll_means_pan ΓòÉΓòÉΓòÉ
  37351.  
  37352. default_scroll_means_pan   Primitive 
  37353.  
  37354. Purpose: Indicates whether movements apply to cursor or text. 
  37355.  
  37356. ____________ 
  37357.  
  37358. Type:   int default_scroll_means_pan 
  37359.  
  37360. ____________ 
  37361.  
  37362. Description: 
  37363.  
  37364. The default_scroll_means_pan variable contains the initial value of the 
  37365. scroll_means_pan variable when a new buffer is created. 
  37366.  
  37367. ____________ 
  37368.  
  37369. See also:  scroll_means_pan 
  37370.  
  37371.  
  37372. ΓòÉΓòÉΓòÉ 15.20.13. default_scroll_unit_horizontal ΓòÉΓòÉΓòÉ
  37373.  
  37374. default_scroll_unit_horizontal   Primitive 
  37375.  
  37376. Purpose: Stores number of columns in horizontal scrolling unit. 
  37377.  
  37378. ____________ 
  37379.  
  37380. Type:   int default_scroll_unit_horizontal 
  37381.  
  37382. ____________ 
  37383.  
  37384. Description: 
  37385.  
  37386. The default_scroll_unit_horizontal variable contains the initial value of the 
  37387. scroll_unit_horizontal variable when a new buffer is created. 
  37388.  
  37389. ____________ 
  37390.  
  37391. See also:  scroll_unit_horizontal 
  37392.  
  37393.  
  37394. ΓòÉΓòÉΓòÉ 15.20.14. default_scroll_unit_vertical ΓòÉΓòÉΓòÉ
  37395.  
  37396. default_scroll_unit_vertical   Primitive 
  37397.  
  37398. Purpose: Stores the number of lines in vertical scrolling unit. 
  37399.  
  37400. ____________ 
  37401.  
  37402. Type:   int default_scroll_unit_vertical 
  37403.  
  37404. ____________ 
  37405.  
  37406. Description: 
  37407.  
  37408. The default_scroll_unit_vertical variable contains the initial value of the 
  37409. scroll_unit_vertical variable when a new buffer is created. 
  37410.  
  37411. ____________ 
  37412.  
  37413. See also:  scroll_unit_vertical 
  37414.  
  37415.  
  37416. ΓòÉΓòÉΓòÉ 15.20.15. default_visible_newlines ΓòÉΓòÉΓòÉ
  37417.  
  37418. default_visible_newlines   Primitive 
  37419.  
  37420. Purpose: Defines string displayed to indicate end of line. 
  37421.  
  37422. ____________ 
  37423.  
  37424. Type:   str default_visible_newlines 
  37425.  
  37426. ____________ 
  37427.  
  37428. Description: 
  37429.  
  37430. The default_visible_newlines variable contains the initial value of the 
  37431. visible_newlines variable when a new buffer is created. 
  37432.  
  37433. ____________ 
  37434.  
  37435. See also:  visible_newlines 
  37436.  
  37437.  
  37438. ΓòÉΓòÉΓòÉ 15.20.16. default_visible_spaces ΓòÉΓòÉΓòÉ
  37439.  
  37440. default_visible_spaces   Primitive 
  37441.  
  37442. Purpose: Defines appearance of a space on-screen. 
  37443.  
  37444. ____________ 
  37445.  
  37446. Type:   str default_visible_spaces 
  37447.  
  37448. ____________ 
  37449.  
  37450. Description: 
  37451.  
  37452. The default_visible_spaces variable contains the initial value of the 
  37453. visible_spaces variable when a new buffer is created. 
  37454.  
  37455. ____________ 
  37456.  
  37457. See also:  visible_spaces 
  37458.  
  37459.  
  37460. ΓòÉΓòÉΓòÉ 15.20.17. default_visible_tabs ΓòÉΓòÉΓòÉ
  37461.  
  37462. default_visible_tabs   Primitive 
  37463.  
  37464. Purpose: Defines appearance of a tab on-screen. 
  37465.  
  37466. ____________ 
  37467.  
  37468. Type:   str default_visible_tabs 
  37469.  
  37470. ____________ 
  37471.  
  37472. Description: 
  37473.  
  37474. The default_visible_tabs variable contains the initial value of the 
  37475. visible_tabs variable when a new buffer is created. 
  37476.  
  37477. ____________ 
  37478.  
  37479. See also:  visible_tabs 
  37480.  
  37481.  
  37482. ΓòÉΓòÉΓòÉ 15.20.18. default_visible_virtual_lines ΓòÉΓòÉΓòÉ
  37483.  
  37484. default_visible_virtual_lines   Primitive 
  37485.  
  37486. Purpose: Defines appearance of lines beyond end of buffer 
  37487.  
  37488. ____________ 
  37489.  
  37490. Type:   str default_visible_virtual_lines 
  37491.  
  37492. ____________ 
  37493.  
  37494. Description: 
  37495.  
  37496. The default_visible_virtual_lines variable contains the initial value of the 
  37497. visible_virtual_lines variable when a new buffer is created. 
  37498.  
  37499. ____________ 
  37500.  
  37501. See also:  visible_virtual_lines 
  37502.  
  37503.  
  37504. ΓòÉΓòÉΓòÉ 15.20.19. default_visible_virtual_spaces ΓòÉΓòÉΓòÉ
  37505.  
  37506. default_visible_virtual_spaces   Primitive 
  37507.  
  37508. Purpose: Defines appearance of virtual spaces on-screen. 
  37509.  
  37510. ____________ 
  37511.  
  37512. Type:   str default_visible_virtual_spaces 
  37513.  
  37514. ____________ 
  37515.  
  37516. Description: 
  37517.  
  37518. The default_visible_virtual_spaces variable contains the initial value of the 
  37519. visible_virtual_spaces variable when a new buffer is created. 
  37520.  
  37521. ____________ 
  37522.  
  37523. See also:  visible_virtual_spaces 
  37524.  
  37525.  
  37526. ΓòÉΓòÉΓòÉ 15.20.20. default_window_flags ΓòÉΓòÉΓòÉ
  37527.  
  37528. default_window_flags   Primitive 
  37529.  
  37530. Purpose: Stores a number of window attributes as flags. 
  37531.  
  37532. ____________ 
  37533.  
  37534. Type:   int default_window_flags 
  37535.  
  37536. ____________ 
  37537.  
  37538. Description: 
  37539.  
  37540. The default_window_flags variable contains the initial value of the 
  37541. window_flags variable when a new window is created. 
  37542.  
  37543. ____________ 
  37544.  
  37545. See also:  window_flags 
  37546.  
  37547.  
  37548. ΓòÉΓòÉΓòÉ 15.20.21. default_window_page_offset ΓòÉΓòÉΓòÉ
  37549.  
  37550. default_window_page_offset   Primitive 
  37551.  
  37552. Purpose: Cursor line position used when window is re-drawn. 
  37553.  
  37554. ____________ 
  37555.  
  37556. Type:   int default_window_page_offset 
  37557.  
  37558. ____________ 
  37559.  
  37560. Description: 
  37561.  
  37562. The default_window_page_offset variable contains the initial value of the 
  37563. window_page_offset variable when a new buffer is created. 
  37564.  
  37565. ____________ 
  37566.  
  37567. See also:  window_page_offset 
  37568.  
  37569.  
  37570. ΓòÉΓòÉΓòÉ 15.20.22. default_window_page_overlap ΓòÉΓòÉΓòÉ
  37571.  
  37572. default_window_page_overlap   Primitive 
  37573.  
  37574. Purpose: Defines how many lines are retained after paging. 
  37575.  
  37576. ____________ 
  37577.  
  37578. Type:   int default_window_page_overlap 
  37579.  
  37580. ____________ 
  37581.  
  37582. Description: 
  37583.  
  37584. The default_window_page_overlap variable contains the initial value of the 
  37585. window_page_overlap variable when a new buffer is created. 
  37586.  
  37587. ____________ 
  37588.  
  37589. See also:  window_page_overlap 
  37590.  
  37591.  
  37592. ΓòÉΓòÉΓòÉ 15.20.23. mdi_mode ΓòÉΓòÉΓòÉ
  37593.  
  37594. mdi_mode   Primitive 
  37595.  
  37596. Purpose:  Determines the document interface mode. 
  37597.  
  37598. ____________ 
  37599.  
  37600. Type:    int mdi_mode 
  37601.  
  37602. ____________ 
  37603.  
  37604. Description: The mdi_mode variable tells whether the editor is in single or 
  37605. multiple document interface mode.  If mdi_mode is FALSE, the editor is in SDI, 
  37606. if TRUE, the editor is in MDI. 
  37607.  
  37608. ____________ 
  37609.  
  37610.  
  37611. ΓòÉΓòÉΓòÉ 15.20.24. visible_newlines ΓòÉΓòÉΓòÉ
  37612.  
  37613. visible_newlines   Primitive 
  37614.  
  37615. Purpose: Defines string displayed to indicate end of line. 
  37616.  
  37617. ____________ 
  37618.  
  37619. Type: str visible_newlines 
  37620.  
  37621. ____________ 
  37622.  
  37623. Description: Each window has a visible_newlines variable associated with it. 
  37624. The visible_newlines variable is a string displayed at the end of each line. 
  37625. By default, this string is empty, which means that the end of the line is not 
  37626. visibly marked.  In any case, this string is not stored in the file, but only 
  37627. appears on the screen. 
  37628.  
  37629. If it is desirable to see where each line ends, a single character or string of 
  37630. characters may be assigned to this variable.  These characters then appear 
  37631. immediately to the left of the last character on the line. 
  37632.  
  37633. Typical values for this variable include the following:  "\x11" ( a triangle 
  37634. pointing left ), "\x11\xd9", ( a triangle followed by a corner ), "\x14" ( a 
  37635. paragraph symbol ). 
  37636.  
  37637. This variable takes its initial value from the global variable 
  37638. default_visible_newlines at the time the buffer is created. 
  37639.  
  37640. ____________ 
  37641.  
  37642. See also:   visible_end_buffer,visible_spaces, visible_tabs, 
  37643. visible_virtual_lines, visible_virtual_spaces 
  37644.  
  37645.  
  37646. ΓòÉΓòÉΓòÉ 15.20.25. visible_spaces ΓòÉΓòÉΓòÉ
  37647.  
  37648. visible_spaces window   Primitive 
  37649.  
  37650. Purpose: Defines appearance of a space on-screen. 
  37651.  
  37652. ____________ 
  37653.  
  37654. Type: str visible_spaces 
  37655.  
  37656. ____________ 
  37657.  
  37658. Description: Each window has a visible_spaces variable associated with it.  The 
  37659. visible_spaces variable is a one character string that is displayed wherever a 
  37660. space character occurs in the buffer.  The string may contain more than one 
  37661. character but only the first character is used.  By default, this string 
  37662. contains a space, which means that spaces represent themselves.  Changing this 
  37663. string, however, does not change the text stored in the file or the contents of 
  37664. the buffer.  Only the appearance on the screen is affected. 
  37665.  
  37666. If it is desirable for spaces to have a graphical representation, a single 
  37667. character or string of characters may be assigned to this variable. Normally, 
  37668. only one character is assigned to this string.  A typical value for this 
  37669. string, other than its default value, is "\xfa", which appears as a small dot. 
  37670.  
  37671. This variable takes its initial value from the global variable 
  37672. default_visible_spaces at the time the buffer is created. 
  37673.  
  37674. ____________ 
  37675.  
  37676. See also:   visible_end_buffer, visible_newlines, visible_tabs, 
  37677. visible_virtual_lines, visible_virtual_spaces 
  37678.  
  37679.  
  37680. ΓòÉΓòÉΓòÉ 15.20.26. visible_tabs ΓòÉΓòÉΓòÉ
  37681.  
  37682. visible_tabs   Primitive 
  37683.  
  37684. Purpose: Defines appearance of a tab on-screen. 
  37685.  
  37686. ____________ 
  37687.  
  37688. Type: str visible_tabs 
  37689.  
  37690. ____________ 
  37691.  
  37692. Description: Each window has a visible_tabs variable associated with it.  The 
  37693. visible_tabs variable is a string displayed wherever a tab character occurs in 
  37694. the buffer.  By default, this string contains a tab, which means that tabs 
  37695. represent themselves. Changing this string, however, does not change the text 
  37696. stored in the file or the contents of the buffer.  Only the appearance on the 
  37697. screen is affected. 
  37698.  
  37699. If it is desirable for tabs to have a graphical representation, a single 
  37700. character or string of characters may be assigned to this variable. Normally, 
  37701. only one character is assigned to this string.  A typical value for this 
  37702. string, other than its default value, is "\x1a", which appears an arrow 
  37703. pointing to the right. 
  37704.  
  37705. This variable takes its initial value from the global variable 
  37706. default_visible_tabs at the time the buffer is created. 
  37707.  
  37708. ____________ 
  37709.  
  37710. See also:   visible_end_buffer, visible_newlines, visible_spaces, 
  37711. visible_virtual_lines, visible_virtual_spaces 
  37712.  
  37713.  
  37714. ΓòÉΓòÉΓòÉ 15.20.27. visible_virtual_lines ΓòÉΓòÉΓòÉ
  37715.  
  37716. visible_virtual_lines   Primitive 
  37717.  
  37718. Purpose: Defines appearance of lines beyond end of buffer 
  37719.  
  37720. ____________ 
  37721.  
  37722. Type: str visible_virtual_lines 
  37723.  
  37724. ____________ 
  37725.  
  37726. Description: Each window has a visible_virtual_lines variable associated with 
  37727. it.  The visible_virtual_lines variable is a string displayed on screen lines 
  37728. that are beyond the end of the buffer.  By default, this string is empty, which 
  37729. means that these lines are not visibly marked.  In any case, this string is not 
  37730. stored in the file, but only appears on the screen. 
  37731.  
  37732. If it is desirable a visual cue to indicate lines not contained in the buffer, 
  37733. a single character or string of characters may be assigned to this variable.  A 
  37734. typical value for this variable is "~". 
  37735.  
  37736. This variable takes its initial value from the global variable 
  37737. default_visible_virtual_lines at the time the buffer is created. 
  37738.  
  37739. ____________ 
  37740.  
  37741. See also:   visible_end_buffer, visible_newlines, visible_spaces, visible_tabs, 
  37742. visible_virtual_spaces 
  37743.  
  37744.  
  37745. ΓòÉΓòÉΓòÉ 15.20.28. visible_virtual_spaces ΓòÉΓòÉΓòÉ
  37746.  
  37747. visible_virtual_spaces   Primitive 
  37748.  
  37749. Purpose: Defines appearance of virtual spaces on-screen. 
  37750.  
  37751. ____________ 
  37752.  
  37753. Type: str visible_virtual_spaces 
  37754.  
  37755. ____________ 
  37756.  
  37757. Description: Each window has a visible_virtual_spaces variable associated with 
  37758. it.  The visible_virtual_spaces variable is a string displayed wherever virtual 
  37759. spaces occur in the window.  By default, this string contains a space.  This 
  37760. means that virtual spaces have the same appearance as "real" spaces. Changing 
  37761. this string does not change the text stored in the file or the contents of the 
  37762. buffer. Only the appearance on the screen is affected. 
  37763.  
  37764. Virtual spaces may be given a special graphical representation by assigning a 
  37765. single character or string of characters to this variable.  Normally, only one 
  37766. character is assigned to this string.  A typical value for this variable is 
  37767. "\xb0", which appears as a partially filled block. 
  37768.  
  37769. This variable takes its initial value from the global variable 
  37770. default_visible_virtual_spaces at the time the buffer is created. 
  37771.  
  37772. ____________ 
  37773.  
  37774. See also:   visible_end_buffer, visible_newlines, visible_spaces, visible_tabs, 
  37775. visible_virtual_lines 
  37776.  
  37777.  
  37778. ΓòÉΓòÉΓòÉ 15.20.29. window_first ΓòÉΓòÉΓòÉ
  37779.  
  37780. window_first  read-only,   Primitive 
  37781.  
  37782. Purpose: Stores line number of the first line of text in a window. 
  37783.  
  37784. ____________ 
  37785.  
  37786. Type: int window_first 
  37787.  
  37788. ____________ 
  37789.  
  37790. Description: Each window has a window_first variable associated with it.  The 
  37791. window_first variable contains the number of the first visible buffer line in 
  37792. the window. 
  37793.  
  37794. ____________ 
  37795.  
  37796. See also:   window_height, window_margin 
  37797.  
  37798.  
  37799. ΓòÉΓòÉΓòÉ 15.20.30. window_flags ΓòÉΓòÉΓòÉ
  37800.  
  37801. window_flags   Primitive 
  37802.  
  37803. Purpose: Stores a number of window attributes as flags. 
  37804.  
  37805. ____________ 
  37806.  
  37807. Type: int window_flags 
  37808.  
  37809. ____________ 
  37810.  
  37811. Description: 
  37812.  
  37813. Each window has a window_flags variable associated with it.  Individual bits of 
  37814. window_flags are used by the editor to signify if the window has borders, 
  37815. whether the window takes up the full screen or is an icon and so on. 
  37816.  
  37817. The initial settings of this variable are obtained from the variable 
  37818. default_window_flags at the time the window is created.  Therefore this 
  37819. description of window_flags also applies to the variable default_window_flags. 
  37820.  
  37821. You may elect to completely change the value of window_flags or modify just one 
  37822. field of this variable.  When assigning a new value to window_flags select one 
  37823. value for each field from the tables below, add them together and assign the 
  37824. result to window_flags. 
  37825.  
  37826. When modifying one element of window_flags while preserving the rest, use the 
  37827. set_flag_bits() function to perform the bit manipulation for you. You will need 
  37828. to supply to set_flag_bits() the appropriate field mask from the table above 
  37829. and the desired field value from the tables below. 
  37830.  
  37831. A series of descriptive labels representing field masks and field values have 
  37832. been defined for your use.  The values associated with these labels are defined 
  37833. in the source file WINDOWS.PEL.  Only the descriptive labels are listed in the 
  37834. tables. 
  37835.  
  37836. The window_flags variable is comprised of a number of subfields and TRUE/FALSE 
  37837. or ON/OFF flags.  Here is a listing of the bits of window_flags and their 
  37838. significance: 
  37839.  
  37840. o WINDOW_ZOOM 
  37841. o WINDOW_SYSTEM 
  37842. o WINDOW_BORDERS 
  37843. o WINDOW_SCROLLBARS 
  37844. o WINDOW_TITLEBAR 
  37845. o WINDOW_DISPLAY_FULL_FILENAME 
  37846. o Useful combinations 
  37847.  
  37848.  
  37849. ΓòÉΓòÉΓòÉ 15.20.30.1. WINDOW_ZOOM ΓòÉΓòÉΓòÉ
  37850.  
  37851. WINDOW_ZOOM (0x00000003) 
  37852.  
  37853. The Zoom Status Field is comprised of the first two bits of the window flags 
  37854. variable.  This tells whether the window is reduced to an icon, normal size or 
  37855. expanded to fill the entire screen. Possible values and their meaning: 
  37856.  
  37857. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  37858. ΓöéDescription                                  ΓöéVariable            Γöé
  37859. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37860. ΓöéThe window is an icon.                       ΓöéWINDOW_COLLAPSED    Γöé
  37861. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37862. ΓöéThe window is its normal size.               ΓöéWINDOW_NORMAL       Γöé
  37863. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37864. ΓöéThe window is expanded.                      ΓöéWINDOW_EXPANDED     Γöé
  37865. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37866. ΓöéThe window is invisible (not just covered).  ΓöéWINDOW_HIDDEN       Γöé
  37867. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  37868.  
  37869.  
  37870. ΓòÉΓòÉΓòÉ 15.20.30.2. WINDOW_SYSTEM ΓòÉΓòÉΓòÉ
  37871.  
  37872. WINDOW_SYSTEM (0x00000004) 
  37873.  
  37874. The System Window Flag identifies whether or not a window is a system window. 
  37875. System windows differ from ordinary windows in that the functions that move 
  37876. sequentially through the window list (next_window(), prev_window()) skip over 
  37877. system windows by default. 
  37878.  
  37879.  
  37880. ΓòÉΓòÉΓòÉ 15.20.30.3. WINDOW_BORDERS ΓòÉΓòÉΓòÉ
  37881.  
  37882. WINDOW_BORDERS (0x00000030) 
  37883.  
  37884. The value in this field determines the type of border displayed for the window. 
  37885. For a more complete description of these features, see the "Windowing" chapter 
  37886. in Part One of this manual and the "Using a Mouse" chapter of the User's 
  37887. Manual. The possible combinations and their field values appear below: 
  37888.  
  37889. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  37890. ΓöéDescription              ΓöéVariable            Γöé
  37891. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37892. ΓöéNo border                ΓöéWINDOW_NOBORDER     Γöé
  37893. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37894. ΓöéNon sizing border        ΓöéWINDOW_NORM_BORDER  Γöé
  37895. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37896. ΓöéSizing border            ΓöéWINDOW_SIZE_BORDER  Γöé
  37897. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  37898.  
  37899.  
  37900. ΓòÉΓòÉΓòÉ 15.20.30.4. WINDOW_SCROLLBARS ΓòÉΓòÉΓòÉ
  37901.  
  37902. WINDOW_SCROLLBARS (0x000000C0) 
  37903.  
  37904. The value in this field determines if scrollbars are displayed for the window. 
  37905. The possible combinations and their field values appear below: 
  37906.  
  37907. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  37908. ΓöéDescription              ΓöéVariable            Γöé
  37909. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37910. ΓöéVertical Scroll Bar      ΓöéWINDOW_VERT_SB      Γöé
  37911. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37912. ΓöéHorizontal Scroll Bar    ΓöéWINDOW_HORIZ_SB     Γöé
  37913. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  37914.  
  37915.  
  37916. ΓòÉΓòÉΓòÉ 15.20.30.5. WINDOW_TITLEBAR ΓòÉΓòÉΓòÉ
  37917.  
  37918. WINDOW_TITLEBAR (0x00000F00) 
  37919.  
  37920. The value in this field determines what is displayed on the title bar.  The 
  37921. title bar can contain a system menu, minimize box, and/or a maximize box.  The 
  37922. possible combinations and their field values appear below: 
  37923.  
  37924. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  37925. ΓöéDescription              ΓöéVariable            Γöé
  37926. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37927. ΓöéNo Title Bar             ΓöéWINDOW_NO_TITLE     Γöé
  37928. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37929. ΓöéTitle bar                ΓöéWINDOW_TITLE        Γöé
  37930. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37931. ΓöéMinimize box             ΓöéWINDOW_MIN_BOX      Γöé
  37932. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37933. ΓöéMaximize box             ΓöéWINDOW_MAX_BOX      Γöé
  37934. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37935. ΓöéSystem menu              ΓöéWINDOW_SYS_MENU     Γöé
  37936. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  37937.  
  37938.  
  37939. ΓòÉΓòÉΓòÉ 15.20.30.6. WINDOW_DISPLAY_FULL_FILENAME ΓòÉΓòÉΓòÉ
  37940.  
  37941. WINDOW_DISPLAY_FULL_FILENAME (0x00010000) 
  37942.  
  37943. The value in this field determines if the fully specified filename is displayed 
  37944. on the title bar.  If this bit is set then the fully qualified path name is 
  37945. displayed on the title bar.  If this bit is not set then just the file name is 
  37946. displayed on the title bar. 
  37947.  
  37948.  
  37949. ΓòÉΓòÉΓòÉ 15.20.30.7. Useful combinations ΓòÉΓòÉΓòÉ
  37950.  
  37951. Useful combinations (0x00000F00) 
  37952.  
  37953. The following table lists some predefined useful combinations of window_flags. 
  37954.  
  37955. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  37956. ΓöéDescription              ΓöéVariable            Γöé
  37957. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37958. ΓöéMDI window               Γöé WINDOW_STANDARD_MDIΓöé
  37959. Γöé                         Γöé(0x00010FE1)        Γöé
  37960. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37961. ΓöéSDI window               Γöé WINDOW_STANDARD_SDIΓöé
  37962. Γöé                         Γöé(0x000100C2)        Γöé
  37963. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  37964. ΓöéPlain window             Γöé WINDOW_PLAIN       Γöé
  37965. Γöé                         Γöé(0x00010111)        Γöé
  37966. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  37967.  
  37968.  
  37969. ΓòÉΓòÉΓòÉ 15.20.31. window_height ΓòÉΓòÉΓòÉ
  37970.  
  37971. window_height  read-only,   Primitive 
  37972.  
  37973. Purpose: Tells over-all height of the current window in lines. 
  37974.  
  37975. ____________ 
  37976.  
  37977. Type: int window_height 
  37978.  
  37979. ____________ 
  37980.  
  37981. Description: Each window has a window_height variable associated with it.  The 
  37982. window_height variable indicates how many pixels are occupied by the window. 
  37983. Only the size of the text display region of the window is included in this 
  37984. variable.  The title bar and any scroll bars or borders are not included in the 
  37985. measurement. 
  37986.  
  37987. Along with the window_width variable, this variable defines the over-all 
  37988. dimensions of the window. This variable is read-only and may not be modified by 
  37989. the user or user-written functions. 
  37990.  
  37991. ____________ 
  37992.  
  37993. See also:  window_x0, window_y0, window_width 
  37994.  
  37995.  
  37996. ΓòÉΓòÉΓòÉ 15.20.32. window_margin ΓòÉΓòÉΓòÉ
  37997.  
  37998. window_margin  read-only,   Primitive 
  37999.  
  38000. Purpose: Tells the number of columns off-screen to the left. 
  38001.  
  38002. ____________ 
  38003.  
  38004. Type: int window_margin 
  38005.  
  38006. ____________ 
  38007.  
  38008. Description: Each window has a window_margin variable associated with it.  The 
  38009. window_margin variable indicates how many columns of text have scrolled 
  38010. out-of-sight to the left.  When the beginning of lines are visible 
  38011. window_margin will be zero. 
  38012.  
  38013. See also:  window_x0, window_y0, window_text_height, window_text_width() 
  38014. window_height, window_width 
  38015.  
  38016.  
  38017. ΓòÉΓòÉΓòÉ 15.20.33. window_name ΓòÉΓòÉΓòÉ
  38018.  
  38019. window_name   Primitive 
  38020.  
  38021. Purpose:  Stores a name for display in a window's title bar. 
  38022.  
  38023. ____________ 
  38024.  
  38025. Type:    str window_name 
  38026.  
  38027. ____________ 
  38028.  
  38029. Description: The window_name variable holds the name of the current_window. 
  38030. This variable can be set by the user and used in the next_window() function. 
  38031. window_name is also used as the buffer filter in the next_buffer_mask() 
  38032. function.  All of the packaged emulation modes use next_buffer_mask() to move 
  38033. to the next buffer. 
  38034.  
  38035. ____________ 
  38036.  
  38037.  
  38038. ΓòÉΓòÉΓòÉ 15.20.34. window_page_offset ΓòÉΓòÉΓòÉ
  38039.  
  38040. window_page_offset   Primitive 
  38041.  
  38042. Purpose: Cursor line position used when window is re-drawn. 
  38043.  
  38044. ____________ 
  38045.  
  38046. Type: int window_page_offset 
  38047.  
  38048. ____________ 
  38049.  
  38050. Description: Each window has a window_page_offset variable associated with it. 
  38051. This variable indicates the line, relative to the center, on which the cursor 
  38052. is placed after large vertical movements within the buffer.  Such movements 
  38053. include jumps to distant line numbers, jumps to buffer extremities and other 
  38054. motions which completely change the contents of the window. 
  38055.  
  38056. The number contained in window_page_offset represents the number of lines from 
  38057. the center line of the window to the line which contains the cursor.  Negative 
  38058. numbers indicate a line above the center while positive numbers position the 
  38059. cursor on a line below the center. 
  38060.  
  38061. For example, if the value of window_page_offset is -3 the editor will position 
  38062. the cursor three lines above the center line of the window.  The value 12 will 
  38063. position the cursor twelve lines below the center line, if the window extends 
  38064. down that far. 
  38065.  
  38066. If the value for window_page_offset would place the cursor outside the limits 
  38067. of the window, the cursor is placed on the last or first line of the window, 
  38068. depending on whether the value is positive or negative. 
  38069.  
  38070. The cursor column position is determined by the type of motion command executed 
  38071. and the condition of the scroll_means_pan variable.  Usually this means that 
  38072. the cursor will attempt to retains the same column position it occupied before 
  38073. the move. The initial setting of this variable is obtained from the variable 
  38074. default_window_page_offset at the time the window is created. 
  38075.  
  38076. ____________ 
  38077.  
  38078. Examples: 
  38079.  
  38080. window_page_offset  = -999  # cursor at top 
  38081. window_page_offset  = 0   # cursor at center 
  38082. window_page_offset  = 999  # cursor at bottom 
  38083.  
  38084.  
  38085. ΓòÉΓòÉΓòÉ 15.20.35. window_page_overlap ΓòÉΓòÉΓòÉ
  38086.  
  38087. window_page_overlap   Primitive 
  38088.  
  38089. Purpose: Defines how many lines are retained after paging. 
  38090.  
  38091. ____________ 
  38092.  
  38093. Type: int window_page_overlap 
  38094.  
  38095. ____________ 
  38096.  
  38097. Description: Each window has a window_page_overlap variable associated with it. 
  38098. The window_page_overlap variable stores the number of previously visible lines 
  38099. that remain visible after a page_up() or page_down() is executed.  These "page" 
  38100. functions scroll the contents of the window the window height less the amount 
  38101. of this variable. 
  38102.  
  38103. The initial setting of this variable is obtained from the variable 
  38104. default_window_page_overlap at the time the window is created. 
  38105.  
  38106. ____________ 
  38107.  
  38108. See also:   page_down(), page_up() 
  38109.  
  38110.  
  38111. ΓòÉΓòÉΓòÉ 15.20.36. window_text_height ΓòÉΓòÉΓòÉ
  38112.  
  38113. window_text_height  read-only,   Primitive 
  38114.  
  38115. Purpose: Tells how many lines of text a window may contain. 
  38116.  
  38117. ____________ 
  38118.  
  38119. Type: int window_text_height 
  38120.  
  38121. ____________ 
  38122.  
  38123. Description: Each window has a window_text_height variable associated with it. 
  38124. The window_text_height variable indicates how many lines of text may be shown 
  38125. in the window.  Borders, scroll bars and titles, if any, are not included in 
  38126. this measurement. 
  38127.  
  38128. Along with the window_text_width() variable, this variable may be used to 
  38129. determine the dimensions of the text in the window. 
  38130.  
  38131. See also:  window_text_x0, window_text_y0, window_text_width() 
  38132.  
  38133.  
  38134. ΓòÉΓòÉΓòÉ 15.20.37. window_text_width ΓòÉΓòÉΓòÉ
  38135.  
  38136. window_text_width read-only,   Primitive 
  38137.  
  38138. Purpose: Tells how many columns of text a window contains. 
  38139.  
  38140. ____________ 
  38141.  
  38142. Type: int window_text_width 
  38143.  
  38144. ____________ 
  38145.  
  38146. Description: Each window has a window_text_width variable associated with it. 
  38147. The window_text_width variable indicates how many columns of text can appear in 
  38148. the window.  Borders are not included in this measurement.  In addition, 
  38149. displaying line numbers reduces this measure.  Along with the 
  38150. window_text_height variable, this variable may be used to determine the 
  38151. dimensions of the text in the window. 
  38152.  
  38153. See also:  window_text_x0, window_text_y0, window_text_height 
  38154.  
  38155.  
  38156. ΓòÉΓòÉΓòÉ 15.20.38. window_text_x0 ΓòÉΓòÉΓòÉ
  38157.  
  38158. window_text_x0 read-only,   Primitive 
  38159.  
  38160. Purpose: Tells the column offset of text in the window. 
  38161.  
  38162. ____________ 
  38163.  
  38164. Type: int window_text_x0 
  38165.  
  38166. ____________ 
  38167.  
  38168. Description: Each window has a window_text_x0 variable associated with it.  The 
  38169. window_text_x0 variable tells the number of columns in the window precede the 
  38170. window's text area.  Window borders and line numbers are not counted as window 
  38171. text.  Together with window_text_y0, this variable defines the location of the 
  38172. upper left-hand corner of the text area of the window. 
  38173.  
  38174. ____________ 
  38175.  
  38176. See also:  window_text_y0, window_text_height window_text_width() 
  38177.  
  38178.  
  38179. ΓòÉΓòÉΓòÉ 15.20.39. window_text_y0 ΓòÉΓòÉΓòÉ
  38180.  
  38181. window_text_y0 read-only,   Primitive 
  38182.  
  38183. Purpose: Tells the line offset of text in the window. 
  38184.  
  38185. ____________ 
  38186.  
  38187. Type: int window_text_y0 
  38188.  
  38189. ____________ 
  38190.  
  38191. Description: Each window has a window_text_y0 variable associated with it.  The 
  38192. window_text_y0 variable tells how many lines in the window precede the text 
  38193. area of the window.  This measure includes any window border, tab ruler or 
  38194. title that appears above the text.  Together with window_text_x0, this variable 
  38195. defines the location of the upper left- hand corner of the text area of the 
  38196. window. 
  38197.  
  38198. ____________ 
  38199.  
  38200. See also:  window_text_x0, window_text_height window_text_width() 
  38201.  
  38202.  
  38203. ΓòÉΓòÉΓòÉ 15.20.40. window_width ΓòÉΓòÉΓòÉ
  38204.  
  38205. window_width  read-only,   Primitive 
  38206.  
  38207. Purpose: Tells how many columns the current window contains. 
  38208.  
  38209. ____________ 
  38210.  
  38211. Type: int window_width 
  38212.  
  38213. ____________ 
  38214.  
  38215. Description: Each window has a window_width variable associated with it.  The 
  38216. window_width variable indicates how many columns of text are occupied by the 
  38217. window. Any borders surrounding the window are included in this measurement. 
  38218. Along with the window_height variable, this variable may be used to determine 
  38219. the dimensions of the window. 
  38220.  
  38221. This variable is read-only and may not be modified by the user or user-written 
  38222. macros.  The width of a window must be modified using the frame_window() 
  38223. function. 
  38224.  
  38225. ____________ 
  38226.  
  38227. See also:  window_x0, window_y0, window_height 
  38228.  
  38229.  
  38230. ΓòÉΓòÉΓòÉ 15.20.41. window_x0 ΓòÉΓòÉΓòÉ
  38231.  
  38232. window_x0  read-only,   Primitive 
  38233.  
  38234. Purpose: Tells the column offset of the window. 
  38235.  
  38236. ____________ 
  38237.  
  38238. Type: int window_x0 
  38239.  
  38240. ____________ 
  38241.  
  38242. Description: Each window has a window_x0 variable associated with it.  The 
  38243. window_x0 variable tells the number of pixels to the left of the window on the 
  38244. screen. Together with window_y0, this variable defines the location of the 
  38245. lower left-hand corner of the window. 
  38246.  
  38247. This variable is read-only and may not be modified by the user or user written 
  38248. functions.  To change the position of the window, use the frame_window() 
  38249. function. 
  38250.  
  38251. ____________ 
  38252.  
  38253. See also:  window_y0, window_height window_width 
  38254.  
  38255.  
  38256. ΓòÉΓòÉΓòÉ 15.20.42. window_y0 ΓòÉΓòÉΓòÉ
  38257.  
  38258. window_y0  read-only,   Primitive 
  38259.  
  38260. Purpose: Tells the line offset of the window. 
  38261.  
  38262. ____________ 
  38263.  
  38264. Type: int window_y0 
  38265.  
  38266. ____________ 
  38267.  
  38268. Description: Each window has a window_y0 variable associated with it.  The 
  38269. window_y0 variable tells the number of pixels that precede the window on the 
  38270. screen. Together with window_x0, this variable defines the location of the 
  38271. upper left-hand corner of the window. 
  38272.  
  38273. This variable is read-only and may not be modified by the user or user written 
  38274. functions.  To change the position of the window, use the frame_window() 
  38275. function. 
  38276.  
  38277. ____________ 
  38278.  
  38279. See also:  window_x0, window_height window_width 
  38280.  
  38281.  
  38282. ΓòÉΓòÉΓòÉ 15.21. Word Processing ΓòÉΓòÉΓòÉ
  38283.  
  38284. default_auto_indent_mode 
  38285.           Indicates if new lines are automatically indented. 
  38286. default_wp_left_margin 
  38287.           Sets left margin for use when word-wrap enabled. 
  38288. default_wp_right_margin 
  38289.           Sets right margin for use when word-wrap is enabled. 
  38290. paragraph_pattern 
  38291.           Define what delimits a paragraph. 
  38292. sentence_pattern 
  38293.           Define what delimits a sentence. 
  38294. wp_left_margin 
  38295.           Sets left margin for use when word-wrap enabled. 
  38296. wp_right_margin 
  38297.           Sets right margin for use when word-wrap is enabled. 
  38298.  
  38299.  
  38300. ΓòÉΓòÉΓòÉ 15.21.1. default_auto_indent_mode ΓòÉΓòÉΓòÉ
  38301.  
  38302. default_auto_indent_mode   Primitive 
  38303.  
  38304. Purpose: Indicates if new lines are automatically indented. 
  38305.  
  38306. ____________ 
  38307.  
  38308. Type:   int default_auto_indent_mode 
  38309.  
  38310. ____________ 
  38311.  
  38312. Description: 
  38313.  
  38314. The default_auto_indent_mode variable contains the initial value of the 
  38315. auto_indent_mode variable when a new buffer is created. 
  38316.  
  38317. ____________ 
  38318.  
  38319. See also:  auto_indent_mode 
  38320.  
  38321.  
  38322. ΓòÉΓòÉΓòÉ 15.21.2. default_wp_left_margin ΓòÉΓòÉΓòÉ
  38323.  
  38324. default_wp_left_margin   Primitive 
  38325.  
  38326. Purpose: Sets left margin for use when word-wrap enabled. 
  38327.  
  38328. ____________ 
  38329.  
  38330. Type:   int default_wp_left_margin 
  38331.  
  38332. ____________ 
  38333.  
  38334. Description: 
  38335.  
  38336. The default_wp_left_margin variable contains the initial value of the 
  38337. wp_left_margin variable when a new buffer is created. 
  38338.  
  38339. ____________ 
  38340.  
  38341. See also:  wp_left_margin 
  38342.  
  38343.  
  38344. ΓòÉΓòÉΓòÉ 15.21.3. default_wp_right_margin ΓòÉΓòÉΓòÉ
  38345.  
  38346. default_wp_right_margin   Primitive 
  38347.  
  38348. Purpose: Sets right margin for use when word-wrap is enabled. 
  38349.  
  38350. ____________ 
  38351.  
  38352. Type:   int default_wp_right_margin 
  38353.  
  38354. ____________ 
  38355.  
  38356. Description: 
  38357.  
  38358. The default_wp_right_margin variable contains the initial value of the 
  38359. wp_right_margin variable when a new buffer is created. 
  38360.  
  38361. ____________ 
  38362.  
  38363. See also:  wp_right_margin 
  38364.  
  38365.  
  38366. ΓòÉΓòÉΓòÉ 15.21.4. paragraph_pattern ΓòÉΓòÉΓòÉ
  38367.  
  38368. paragraph_pattern   PEL 
  38369.  
  38370. Purpose:  Define what delimits a paragraph. 
  38371.  
  38372. ____________ 
  38373.  
  38374. Type:    str paragraph_pattern 
  38375.  
  38376. ____________ 
  38377.  
  38378. Description: The paragraph_pattern variable defines what delimits a paragraph. 
  38379. This variable is used in the paragraph motion functions. 
  38380.  
  38381. ____________ 
  38382.  
  38383.  
  38384. ΓòÉΓòÉΓòÉ 15.21.5. sentence_pattern ΓòÉΓòÉΓòÉ
  38385.  
  38386. sentence_pattern   PEL 
  38387.  
  38388. Purpose:  Define what delimits a sentence. 
  38389.  
  38390. ____________ 
  38391.  
  38392. Type:    str sentence_pattern 
  38393.  
  38394. ____________ 
  38395.  
  38396. Description: The sentence_pattern variable defines what delimits a sentence. 
  38397. This variable is used in the sentence motion functions. 
  38398.  
  38399. ____________ 
  38400.  
  38401.  
  38402. ΓòÉΓòÉΓòÉ 15.21.6. wp_left_margin ΓòÉΓòÉΓòÉ
  38403.  
  38404. wp_left_margin   Primitive 
  38405.  
  38406. Purpose: Sets left margin for use when word-wrap enabled. 
  38407.  
  38408. ____________ 
  38409.  
  38410. Type: int wp_left_margin 
  38411.  
  38412. ____________ 
  38413.  
  38414. Description: Each edit buffer has a wp_left_margin variable associated with it. 
  38415. When this variable is set to a value greater than zero, this value defines the 
  38416. buffer column number which is to be preceded by a margin.  The columns to the 
  38417. left of the named column are maintained as a margin by word- processing 
  38418. functions while text to the right of this margin is subject to wrapping and 
  38419. adjustment. 
  38420.  
  38421. Text may be forcibly inserted in these margins, but if this is done, the text 
  38422. is treated as part of the margin on subsequent reformatting.  In other words, 
  38423. the text in the margin is not moved along with the rest of the text in the 
  38424. paragraph. 
  38425.  
  38426. Changing the value of this variable when word-wrap is enabled causes the entire 
  38427. paragraph to be reformatted to conform to the new value.  This variable takes 
  38428. its initial value from the global variable default_wp_left_margin at the time 
  38429. the buffer is created.  Word-processing is enabled with the wp() function. 
  38430.  
  38431. Word-wrap and word processing features of the editor are discussed in greater 
  38432. detail in the "Word Processing" chapter in Part One of this manual. 
  38433.  
  38434. ____________ 
  38435.  
  38436. See also:   buffer_flags, wp_right_margin, wp() 
  38437.  
  38438.  
  38439. ΓòÉΓòÉΓòÉ 15.21.7. wp_right_margin() ΓòÉΓòÉΓòÉ
  38440.  
  38441. wp_right_margin   Primitive 
  38442.  
  38443. Purpose: Sets right margin for use when word-wrap is enabled. 
  38444.  
  38445. ____________ 
  38446.  
  38447. Type: int wp_right_margin 
  38448.  
  38449. ____________ 
  38450.  
  38451. Description: Each edit buffer has a wp_right_margin variable associated with 
  38452. it.  This variable represents the column number beyond which text is not 
  38453. allowed to extend when word-processing is enabled.  Text extending beyond this 
  38454. limit is word-wrapped to the next line.  Word-processing is enabled with the 
  38455. wp() function. 
  38456.  
  38457. This variable takes its initial value from the global variable 
  38458. default_wp_right_margin at the time the buffer is created. 
  38459.  
  38460. Word-wrap and word processing features of the editor are discussed in greater 
  38461. detail in the "Word Processing" chapter in Part One of this manual. 
  38462.  
  38463. ____________ 
  38464.  
  38465. See also:   buffer_flags, wp_left_margin 
  38466.  
  38467.  
  38468. ΓòÉΓòÉΓòÉ 16. Trouble Shooting ΓòÉΓòÉΓòÉ
  38469.  
  38470. Refer to this section when you are having trouble in PREDITOR/2.  Listed below 
  38471. are the areas where you may encounter a problem.  Find your problem in the list 
  38472. and refer to that sectioin for the solution.  If your problem is not listed, 
  38473. refer to the Technical Support section for information on how to contact us. 
  38474.  
  38475. o Loading UNIX files 
  38476. o Screen corruption 
  38477. o Illegal variable name 
  38478. o System Errors 
  38479. o IBM WorkFrame/2 doesn't send errors 
  38480. o Technical support 
  38481.  
  38482.  
  38483. ΓòÉΓòÉΓòÉ 16.1. Technical support ΓòÉΓòÉΓòÉ
  38484.  
  38485. At Compuware, we strive to make our products and documentation the best in the 
  38486. industry. Feedback from our customers helps us maintain our quality standards. 
  38487.  
  38488. CompuServe Support 
  38489.  
  38490. For the quickest response to your question,  access the Other Vendor section of 
  38491. the CompuServe OS/2 Vendor Forum, GO OS2AVEN. Compuware provides unlimited 
  38492. support through CompuServe. 
  38493.  
  38494. Product Support Hotline 
  38495.  
  38496. Customers will receive 90 days of free hotline support from Compuware's Product 
  38497. Support Hotline.  Contact the hotline by calling 1-800-538-7822. 
  38498.  
  38499. Please obtain the following information before placing your call: 
  38500.  
  38501.  1. The version of PREDITOR/2 you are using. 
  38502.  2. The version of OS/2 you are using. 
  38503.  3. The title of the window or pop-up where the problem occurred and the steps 
  38504.     taken before the problem occurred. 
  38505.  4. The exact error message, if one was displayed. 
  38506.  5. The PC system message displayed (if any). 
  38507. This information helps us determine the cause of the problem as quickly as 
  38508. possible. 
  38509.  
  38510. Corporate Buyers  Compuware will also negotiate custom support plans for 
  38511. corporate buyers. 
  38512.  
  38513. PREDITOR/2 Product Support
  38514. Compuware Corporation
  38515. 31440 Northwestern Highway
  38516. Farmington Hills, MI 48334-2564
  38517. 1-800-538-7822
  38518.  
  38519.  
  38520. ΓòÉΓòÉΓòÉ 16.2. Loading UNIX files ΓòÉΓòÉΓòÉ
  38521.  
  38522. Problem: When I load a file it displays as one long line. 
  38523.  
  38524. Solution: You have probably loaded a file which uses '\n' (which is the UNIX 
  38525. standard) as the newline character. By default, the editor expects a '\r\n' as 
  38526. a newline sequence. To fix this problem see the edit_unix_file_key(), 
  38527. toggle_unix(), toggle_buffer_eol(), unix_edit(), or dos_edit() functions. 
  38528.  
  38529.  
  38530. ΓòÉΓòÉΓòÉ 16.3. Screen corruption ΓòÉΓòÉΓòÉ
  38531.  
  38532. Problem:  After upgrading from version 2.0.1 or earlier my screen is not 
  38533. drawing properly. 
  38534.  
  38535. Solution: If you are upgrading from version 2.0.1 or earlier you may need to 
  38536. reselect your screen and printer fonts the first time you run the editor after 
  38537. installing.  You will only need to do this if you notice that your screen 
  38538. display is not updating properly. 
  38539.  
  38540.  
  38541. ΓòÉΓòÉΓòÉ 16.4. Illegal variable name ΓòÉΓòÉΓòÉ
  38542.  
  38543. Problem: I am programming in PEL and get the compiler message "Illegal variable 
  38544. 'XXX':it is a reserved function name".  I am not declaring a variable just 
  38545. trying to call a function. 
  38546.  
  38547. Solution: When calling functions from PEL programs you cannot have a space 
  38548. between the function name and the open parenthesis. 
  38549.  
  38550.  
  38551. ΓòÉΓòÉΓòÉ 16.5. IBM WorkFrame/2 doesn't send errors ΓòÉΓòÉΓòÉ
  38552.  
  38553. Problem: While using the IBM WorkFrame/2 support the editor is loaded when I 
  38554. double click on an error but it doesn't position to the proper line. 
  38555.  
  38556. Solution: Make sure IBM WorkFrame/2 support is enabled by supplying the -W 
  38557. command line option when starting the editor from WorkFrame/2.  Also make sure 
  38558. you have configured WorkFrame/2 properly by selecting the 'send errors to 
  38559. editor' option in WF/2. 
  38560.  
  38561.  
  38562. ΓòÉΓòÉΓòÉ 16.6. System Errors ΓòÉΓòÉΓòÉ
  38563.  
  38564. Problem: I recieve a system error message and the editor exits. 
  38565.  
  38566. Solution:  Locate the cpe.msg file and contact Technical Support for 
  38567. instructions. 
  38568.  
  38569.  
  38570. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  38571.  
  38572. Space that is not represented by a character in a buffer.