QEDIT Version 5.1 Full-Screen Text Editor for the HP e3000 Change Notice Installation Instructions Addendum to 5.0 User Manual Robelle Solutions Technology Inc. Suite 201, 15399-102A Ave. Surrey, B.C. Canada V3R 7K1 Toll-free: 1.888.robelle (1.888.762.3553) Phone: 604.582.1700 Fax: 604.582.1799 E-mail: support@robelle.com Web: www.robelle.com February 2001 Program and Manual Copyright Robelle Solutions Technology Inc. 1977-2001 Permission is granted to reprint this document (but not for profit), provided that copyright notice is given. QEDIT and SUPRTOOL are trademarks of Robelle Solutions Technology Inc. Windows is a trademark of Microsoft Corporation. Other product and company names mentioned herein may be the trademarks of their respective owners. Introducing Qedit Version 5.1 * Qedit for Windows * Highlights * Compatibility * CPU Serial Number * Compatibility Mode vs. Native Mode * Known Problems * Documentation * Documentation in WinHelp Format Qedit is our fast and efficient full-screen editor and development home base for HP e3000 systems (MPE/iX and MPE V). One of our objectives for Qedit is to give PowerHouse and COBOL developers all the necessary capabilities to perform their work from a single program. We are constantly enhancing Qedit with new features and fixes requested by users. Not only does this change notice include a description of Qedit's enhancements, it includes detailed installation steps and a list of other changes for host-based Qedit. This change notice also includes a description of the server portion of Qedit for Windows. Host-based Qedit is also available for HP-UX, with virtually identical features. If you would like more information, please contact Robelle Solutions Technology Inc. Qedit for Windows Our newest editor, Qedit for Windows, now gives you the familiar Windows interface for editing both MPE/iX and HP-UX files, all from a single program. Qedit for Windows is the next generation of our popular editor, which consists of a Windows editing client and either an MPE/iX or HP-UX editing server that work together to edit host files. Since its release, we have focused our development efforts on Qedit for Windows, adding more functionality and continuing to expand its capabilities. If you would like to upgrade to Qedit for Windows, please contact Robelle Solutions Technology Inc. Highlights in Version 5.1 * The Setincr option of the Text command requests that the current Set Increment value be used when reading the file in. The default is for Qedit to decide which increment to use. Highlights in Version 5.0.12 * Qedit now offers quick and easy access to the Posix shell. Use a leading exclamation point to identify commands that needs to execute in the Posix space. The whole line is passed to the Posix shell (SH.HPBIN.SYS) and executed there. * When returning to line mode, full-screen mode sets the display width back to its original setting. * Parm value on the Qedit simulated Run command can go as high as 65535 and as low as -32767. * The Glue command left an empty line behind in some cases when working with CobolX source files. * Qedit is doing a better job at handling incorrectly numbered Cobol source files. Highlights in Version 5.0.11 * Qedit now recognizes the QCTerm terminal emulator from AICS Research Inc. The version information is carried over to the RPCVERSION variable. When using this emulator, Qedit automatically sets Set Visual IgnoreLF On. * ShiftOut and ShiftIn characters to use a different display character set can be edited in full-screen mode. Set Visual SO and Set Visual SI are used to specify substitute characters. * Keep without an explicit name is now an error if the Browse option has been used on the Text or Open command. * A block Replicate operation can now span multiple screens or done in 2 steps in full-screen mode. * Cobol Copylib member names can now contain hyphens. * Opening a Qedit workfile in Defer mode while it is opened for updating in another session no longer causes assertion failures. Highlights in Version 5.0.10 * A rangelist can now contain up to 10 different strings to search for. Each string in the list can have different search settings such as column range and options. String are separated from each other by OR keywords. * The new Tag option on the Change command allows modification of only the Cobol tag in columns 73 to 80. Change commands without this option affect only the text area, columns 7 to 72. * Opening a Qedit workfile in Browse mode while it is opened for updating in another session no longer causes assertion failures. * Qcompxl no longer displays a warning (LDRWARN 10) about the XLLIST parameter when trying to run a compatibility-mode (CM) program. The warning message was confusing as it led the users to believe there was something wrong. * A backreference (e.g. \1) in the replacement string used on a search for a regular expression without a subpattern fixes the text correctly. In this case, the replacement string is used as a literal. This problem has also been fixed in the Qedit for Windows server. * Set X without parameters now resets the COBX tag settings. * Texting in a large bytestream file is much faster now. Compatibility Unresolved Externals on MPE/iX 4.0 If you try to run Qedit on MPE/iX 4.0, you might get the following errors: UNRESOLVED EXTERNALS: _thd_errno (LDRERR 512) UNRESOLVED EXTERNALS: _thread_set_error (LDRERR 512) UNRESOLVED EXTERNALS: thd_lock_lang_mutex (LDRERR 512) UNRESOLVED EXTERNALS: thd_unlock_lang_mutex (LDRERR 512) These messages indicate some routines missing from the C library. If you are not planning to upgrade to a more recent version of MPE/iX, you should contact Robelle technical support. We can provide you with an additional file that will fix these problems. CPU Serial Number (HPSUSAN) Qedit runs only on CPUs whose serial numbers (the "showvar hpsusan" on MPE/iX) have been encoded. If it fails to run and you see an "invalid HPSUSAN" error message, call Robelle for assistance. Compatibility Mode vs. Native Mode Throughout this change notice and in all the Qedit documentation, there are references to compatibility mode and native mode. If you are on a Classic HP e3000 (that is, not on MPE/iX), you can use the compatibility-mode version of Qedit. Our installation jobs will automatically install the correct version of Qedit for your machine. Qedit works on both MPE/iX and MPE XL. Any reference to MPE/iX in our documentation can also be considered a reference to MPE XL, and vice versa. Known Problems There are currently no known problems. Documentation If you would like to print a copy of the latest user manual, run the Printdoc program. :run printdoc.pub.robelle Printdoc is menu-driven and very easy to use. Printdoc asks you for information; if you are unsure of the answer, you can ask for help by typing a question mark (?). Printdoc supports all types of LaserJet printers and regular line printers. If you know the file name, you can also print other Robelle documentation with Printdoc or you can include the file name in the :Run command. For example, to print this change notice, type :run printdoc.pub.robelle;info="qedit.docchg.robelle" Documentation in WinHelp Format Both the MPE and HP-UX editions of the Qedit User Manual are available in the popular WinHelp file format of Microsoft Windows. Your tape includes a WinHelp file, which is a self-extracting compressed file that contains all the Help files and a Setup program. Use the installation instructions in this change notice to install the WinHelp files on your PC. Installation If you are a new Qedit user, please follow the installation instructions in the Qedit User Manual. The following installation instructions assume that you are an existing Qedit user who is upgrading to version 5.0.10. To install this upgrade of Qedit, follow these steps: 1. Install Qedit. 2. Install the QLIB and/or Bonus programs. 3. Fix the NM compilers. (only XL) 4. Fix the MPE V compilers. (optional) 5. Install the WinHelp files. (optional) Installation should take less than 20 minutes. No one can use Qedit while step 1 is in progress. Bonus and QLIB programs cannot be used while step 2 is in progress. Installation Assistance If you have any questions about the upgrade process or run into any problems, please call us. Technical support is available on weekdays from 7 a.m. to 4 p.m., Pacific time. Important Note About Passwords None of the jobs we supply have passwords in them. Before streaming a job, you might have to add your system's passwords to the first line. Users of MPE XL version 3.0 and later do not have to do this because the operating system prompts you for missing passwords. The same is true for MPE V users who have security software that inserts passwords. Most MPE V users have to edit the jobs. For example, if the system manager logon password is Qwerty, you would do the following: :editor HP32201A.07.22 EDIT/3000 /text robelle.job.robelle FILE UNNUMBERED /modify 1 MODIFY 1 !job robelle,manager.sys,pub;hipri i/qwerty !job robelle,manager.sys/qwerty,pub;hipri /keep robtemp /exit END OF SUBSYSTEM :stream robtemp :purge robtemp STREAMX Users Users of STREAMX, a part of SECURITY/3000 from VESOFT Inc., must set a Job Control Word before streaming jobs. This step prevents STREAMX from generating an error if the Robelle account does not yet exist. For example, :setjcw streamxtempnonest 1 :stream robelle.job.robelle Step 1: Install Qedit This step requires three separate procedures: restoring all Robelle files from tape to disc, building (or upgrading) the Robelle account with the job stream that we provide, and streaming the installation job stream. All these procedures can easily be accomplished if you log on as Manager.Sys. Restore All Robelle Files First, you have to restore all the files from tape. :hello manager.sys {log on as system manager} :file rtape;dev=tape {mount Robelle tape} :restore *rtape; @.@.robelle; create {=reply on the console} Check the :Restore listing for files that were busy and could not be restored. There are a number of reasons why a file could have been busy: someone may have been using it or backing it up, it may have been held as a suspended son process (menu system), or it may have been allocated. If files were busy, chase away any users, deallocate any busy programs, then try the :Restore command again. Create/Update Robelle Account You must build (or upgrade) the Robelle account with the job stream that we provide. This job removes the passwords from the Robelle account and from the user Mgr.Robelle. You need to know the existing passwords so that you can put them back after the installation. :listacct robelle;pass {look for PASSWORD: } :listuser mgr.robelle;pass {look for PASSWORD: } Once you have written down the passwords, stay logged on as Manager.Sys and stream the job that builds and updates the Robelle account. :stream robelle.job.robelle This job stream will send you a message when it is finished. Stay logged on as Manager.Sys and put a password on the Robelle account. If you are upgrading your Robelle account, use the old password. :altacct robelle;pass=hardpass {hard to guess} Please note that during installation, we add OP capability to the Robelle account. Once Qedit has been installed, you can remove OP capability. File Names The following Qedit program files are restored to the Pub group of the Robelle account: qeditnm NM Qedit program qeditcm qeditpm CM Qedit programs qcompxl NM compiler interface qedify qcompusl CM compiler interface qloadxl NM Qedit options ederrnm ederrcm :Editerror support qmap reformat MPE V PMAP Install Program Files Our installation job puts the proper Qedit files into the Pub group of the Robelle account. To make sure no one uses these programs during the installation, send a warning. Then stream the job: :hello mgr.robelle :warn @;please exit from Qedit NOW! :stream install.qeditjob {supply passwords} Check the installation job $stdlist. If anyone was using Qedit or attempting to back it up during the installation, the job will fail. If the job failed, chase away any users, ensure that a backup is not in progress, then stream the installation job again. The installation job renames your current versions of Qedit to the PubOld group of the Robelle account. If you need to move these versions back into production, use the Previous.Qeditjob job stream. Once you have installed Qedit, users can now access it by entering :run Qedit.pub.robelle Step 2: Install QLIB and Bonus Programs Qedit comes with an array of contributed software in the QLIB library (in the QLIB groups of the Robelle account). QLIB programs may be used on any CPU and may be given away freely. Your Robelle license may also entitle you to receive our Bonus programs: Compare/iX, HowMessy, Select, Spell, and Xpedit. These programs reside in the Pub group of the Robelle account. Bonus programs can be used only on authorized machines, and you may not distribute them to anyone. If you received Bonus programs with this version of Qedit, use the job stream called Bonus.Job.Robelle to install both the QLIB and Bonus programs. If you did not receive Bonus programs, use the job stream Qlib.Job.Robelle to install the QLIB programs. :hello mgr.robelle :stream bonus.job.robelle {or Qlib.Job.Robelle} If you skip this step, you may end up running old versions of these programs. Building the Spell Dictionary Before you can use the Spell Bonus program or the Words command in Qedit, you have to build the main dictionary for Spell with an additional installation job. This job stream can take 30 to 60 minutes; you do not have to wait for it to finish before going to the next step. By default, the Spell program uses American spellings. To use British spellings, set the SpellAmerican JCW to False in the installation job. :run qedit.pub.robelle {or use :Editor} /text dictmain.spjob /modify "setjcw SpellAmerican" {for British spelling, } /keep robtemp { change True to False} /exit :stream robtemp :purge robtemp For more information, see the Spell User Manual. Step 3: Install NM Compiler Interface (only XL) If you don't need to compile source files that are saved as permanent Qedit workfiles (file code=111), then this step is optional. It is also optional if you have not installed a new version of MPE since your previous Qedit installation. If you use any NM compilers on MPE/iX, you will want to install the new NM compiler interface. If you still use the CM compilers as well, you will also want to install that compiler interface (described in step 4 below). Installing the Interface Assuming that you have restored the Robelle files on your system and that you have not done this step before, stream Savecmdf.Qeditjob to make backup copies of the existing HP command files in the Stdcmd.Sys group. You need to know the Manager.Sys password. :stream savecmdf.qeditjob.robelle {wait for it to finish} :listf @.stdcmd.sys Then stream Qcompxl.Qeditjob to make three (3) changes to the Pub.Sys compiler command files: :stream qcompxl.qeditjob.robelle This job makes the following changes to the compiler command files: 1. Change the run of the compiler program to ;xl ="qcompxl.pubnew.robelle, qcompxl.pub.robelle", 2. Add ";shr" to the File commands for the text and master files. 3. Change "setjcw jcw=fatal" to an invalid command so that errors in either Qedit or MPE/iX will abort the command file. Compiling Instructions Now you should be able to compile a Qedit file or a Keep file, either within Qedit or at the MPE/iX prompt, simply by invoking the normal command file. :pasxl source {from MPE} :run qedit.pub.robelle /pasxl source {from Qedit} Within Qedit, you can specify an asterisk (*) for the current workfile. :run qedit.pub.robelle /text source /pasxl * /exit :pasxl qeditscr Step 4: Install CM Compiler Interface (optional) If you don't need to compile source files that are saved as permanent Qedit workfiles (file code=111), then this step is optional. When installing Qedit on MPE/iX, you might have to install the NM compiler interface (described earlier) and the CM compiler interface (described here). For MPE V, however, you only have to worry about the original CM compilers. After restoring the files from tape, you have to choose an installation method: integral or isolated. Choosing a CM Installation Method There are two methods of fixing the compilers on your system: integral into Pub.Sys or isolated in the Robelle account. The isolated method is best for new or trial-period users because it is faster to install and easier to remove later. You can start with the isolated method and easily convert to the integral method later. To determine if you currently use the isolated or integral method, run Qedit and enter /verify whichcomp If the displayed line ends with "IN ROBELLE," you are using the isolated method. If it ends in "IN SYS," you are using the integral method. Integral Method. The compilers in Pub.Sys are "fixed" directly, and a segment is added to the system SL. The standard :Cobol and :Pascal commands of MPE then compile Qedit workfiles. :Sysdump is used to make a new cold load tape for the next time you need to boot the system. Isolated Method. The MPE compilers are copied into the Q.Robelle group and the original compilers are left in the Pub.Sys group. No code is added to the system SL. Qedit workfiles can be compiled only within Qedit because the "Qedit" compilers are not in Pub.Sys. Integrating CM Compiler Changes The job stream Qeditj1.Qeditjob.Robelle makes integral compiler fixes. Use it either to update the fixes to a new version or to re-install the fixes after an MPE update from HP. Before you start, you should :Store @.Pub.Sys and save it on tape because this job modifies the compiler program files in Pub.Sys. You will need another small tape for a new cold load tape. Ensure that no one compiles during the installation. Stop all jobs and send an operator warning. Log on as Manager.Sys, modify the first line of the Qeditj1 job to include the passwords, then :Stream the job. :stream qeditj1.qeditjob.robelle This job runs Qedify.Pub.Robelle, which updates the compilers in Pub.Sys and installs nonprivileged hooks into them so that the compilers can access Qedit workfiles. The job adds a code segment from Qcompusl.Pub.Robelle into Sl.Pub.Sys and then requests a tape mount for a new cold load tape. Mount a tape with a write ring and :Reply. Save this tape and use it for future cold loads. The CM compiler interface is now installed. Compiling done inside or outside Qedit will work on either Qedit workfiles or on regular Keep files. Isolating CM Compiler Changes The job stream Qeditj1a.Qeditjob.Robelle fixes the compilers, but it isolates the changes in the Q.Robelle group. Ensure that no one compiles during the installation. Stop all jobs and send an operator warning. Modify the first line of Qeditj1a to include the Robelle password, then stream the job. :stream qeditj1a.qeditjob.robelle The job uses Qedify.Pub.Robelle to copy the compilers from Pub.Sys to the Q.Robelle group, then it "fixes" them so that they can read Qedit files. The original compilers in the Pub.Sys group are not modified. Once this step is finished, you can use the CM compilers on Qedit files from within Qedit, but not at the MPE prompt. Step 5: Install WinHelp Documentation Files (optional) The Qedit documentation for both MPE and HP-UX is now available in the WinHelp file format of Microsoft Windows. You can use these files only if you have Windows 3.1 or later. To install the WinHelp files on a PC, follow these instructions. Make a Temporary Directory for the Setup Program From either DOS or Windows Explorer, make a directory into which you can copy the installation files. mkdir \robtemp You can remove this directory after installing the files. Download the Compressed File If you use the CD that is included in the Qedit User Manual to copy the Help files to your hard drive, proceed to "Run the Setup Program" below. Otherwise, use Reflection to download the self-extracting Zip file to your PC and continue with these steps. This Zip file on the HP e3000 is called Qedhelp.Whelp.Robelle. Log on as Mgr.Robelle and press Alt-Y to go to the Reflection Command Line window. Then use the following command to download the file as a binary transfer: receive c:\robtemp\qedhelp.exe from qedhelp.whelp.robelle binary Expand the Compressed Files You only need the following commands to extract the files, because we provide both the Setup program and the Help files in one self-extracting Zip file. From the DOS prompt, type the following commands: cd \robtemp {go to the new Robtemp directory} qedhelp.exe {extract the Help files} Run the Setup Program To run the Setup program, select the Run command from the Start menu. When the Run window appears, enter c:\robtemp\setup and follow the instructions in the Setup program. When the Setup program ends, you can access all of the Qedit documentation by selecting any of the icons in the "Robelle Help" Program Manager Group. Remove the Robtemp Directory Before you remove the WinHelp files, you can copy them to a diskette and distribute them to other Qedit users. To delete all the WinHelp files and remove the Robtemp directory, use either the File Manager or the following DOS commands: cd \robtemp del *.* {delete all the files in Robtemp} cd .. rmdir robtemp {remove the Robtemp directory} Step 6: Purge Installation Files (optional) The easiest way to clean up after an installation is to stream the Cleanup.Purgejob.Robelle job. This job saves you disc space by purging the installation files. It does not purge the files that are necessary to run the software. Enhancements Every year we provide Qedit users with new features. This year the major enhancements include: * Qedit now offers quick and easy access to the Posix shell. Use a leading exclamation point to identify commands that needs to execute in the Posix space. The whole line is passed to the Posix shell (SH.HPBIN.SYS) and executed there. * Qedit now recognizes the QCTerm terminal emulator from AICS Research Inc. The version information is carried over to the RPCVERSION variable. When using this emulator, Qedit automatically sets Set Visual IgnoreLF On. * ShiftOut and ShiftIn characters to select a different display character set can be edited in full-screen mode. Set Visual SO and Set Visual SI are used to specify substitute characters. * Keep without an explicit name is now an error if the Browse option has been used on the Text or Open command. * A rangelist can now contain up to 10 different strings to search for. Each string in the list can have different search settings such as column range and options. String are separated from each other by OR keywords. * The new Tag option on the Change command allows modification of only the Cobol tag in columns 73 to 80. Change commands without this option affect only the text area, columns 7 to 72. * The Setincr option of the Text command requests that the current Set Increment value be used when reading the file in. The default is for Qedit to decide which increment to use. The following sections describe the new enhancements to Qedit since the last major release. Setincr Option on Text Command [5.1] By default, on a Text command, Qedit looks at the file attributes and, if the file does not have line numbers already, tries to determine the best line number increment to accommodate all the lines. In most cases, this works perfectly fine. However, in a few cases, this value can not be determined with enough accuracy causing some commands to fail because Qedit ran out of line numbers. Up to version 5.1, there was no way to override the calculated increment. Starting with version 5.1, you can use the Setincr option on a Text command to force Qedit to use the current Set Increment value. This way, you can override the calculation based on your knowledge. /Text bigfile Uses automatic calculation /Set Increment .01 Set increment to a different value /Text bigfile,setincr Use the current Increment value Posix Commands There is an easy way invoke and execute the Posix shell (SH.HPBIN.SYS). Any command that starts with an exclamation point "!" is interpreted as a Posix command. If the exclamation point is the only character entered, Qedit starts the Posix shell. The user has to exit out of the shell to get back in Qedit. /! #################################### MPE/iX Shell and Utilities (A.50.02) COPYRIGHT (c) Hewlett-Packard Company 1992, All Rights Reserved. #################################### /MYACCT/MYGROUP> exit / Qedit uses the following command to start the shell: xeq sh.hpbin.sys info="-L" If the line contains text after the exclamation point, Qedit assumes the text is a Posix command. The text is then passed as is to the Posix shell for execution. The shell terminates automatically and returns to Qedit. /!uname -a #################################### MPE/iX Shell and Utilities (A.50.02) COPYRIGHT (c) Hewlett-Packard Company 1992, All Rights Reserved. #################################### MPE/iX CALVIN C.60.00 C.16.01 SERIES 968LX / Qedit uses the following command to execute Posix commands: xeq sh.hpbin.sys info="-L -c 'uname -a'" Notice the command text is enclosed in single quotes to preserve delimiters. If a command already contains quotes and double-quotes, Qedit automatically doubles them up in the final command. For example, /!echo "This is 'my' message" #################################### MPE/iX Shell and Utilities (A.50.02) COPYRIGHT (c) Hewlett-Packard Company 1992, All Rights Reserved. #################################### This is 'my' message Internally, Qedit uses the following command: xeq sh.hpbin.sys info="-L -c 'echo ""This is ''my'' message""'" The command text must not contain another exclamation point. Otherwise, Qedit interprets them as string delimiters and tries to search for the text in the current workfile. [5.0.12] Keeping Files in Browse Mode The Browse option of the Open and Text commands allows you to open file as read-only mode. This way, file timestamps are preserved and it prevents accidental modification. If you try to Keep the file with its original name i.e. you enter a Keep without a filename, you will get an error. /Open workfile,browse /Verify Keep Set Keep Name txtfile /K File opened with Browse, please specify a Keep file name You can still force a Keep by specifying an explicit filename as in: /Text txtfile,browse /Keep txtfile TXTFILE.DATA.ACCT,OLD 80B FA of records=16 Purge existing file [no]? y [5.0.11] Selecting a Display Character Set The ShiftOut (Ascii code 14 or CTRL+N) character is used to select an alternate display character set. It is often used to select the terminal's line drawing character set. The ShiftIn (Ascii code 15 or CTRL+O) is to select the primary display character set. If these characters were part of the text edited in full-screen mode, the terminal or terminal emulator automatically inserted an escape sequence ()B) in front of the ShiftOut character. The ShiftIn character was removed if there were no ShiftOut character preceding it on the same line. Of course, this caused lines to be updated unknowingly. The ShiftOut and ShiftIn characters can now be replaced with a different character in full-screen mode. This works the same as for Escape, Tab, Bell characters and the Field separator. Use the Set Visual SO command to specify a substitute for ShiftOut. Use Set Visual SI to specify a ShiftIn substitute. Set Visual SO "[" { Replace ShiftOut with left bracket } Set Visual SI "]" { Replace ShiftIn with right bracket } The substitute characters must be different than all the other substitutes. [5.0.11] Qcterm Terminal Emulator AICS Research Inc. have developed a free terminal emulator called Qcterm. Qedit is now able to identify the emulator. Information about it is displayed on the Verify command output: Set VIsual Label ON Save OFF CLEar ON Renum ON Above 0 BElow 19 ROll 6 Set VIsual TAE OFF MSG ON HOme ON Widen 80 Carry 1 {Qcterm=090 Col=80} Set VIsual BELL ESC FIeld "" WOrdwrap OFF HIdetags OFF Set VIsual HALfbright OFF HOStprompt OFF Inschar OFF Tab Set VIsual Update OFF CutCurrent ON SCReen OFF SO SI Set Visual IgnoreLF ON On the second line, the string "Qcterm" identifies the name of the emulator. The version number is then displayed after the equal sign. According to Qcterm's notation, there are 2 implied decimals. In this example, Qedit is running on Qcterm version 0.90. The information is also carried over on the Qedit RPCVERSION variable. For Qcterm, the first digit is always set to 5. The next 3 digits represent the version number. /:showvar r RCRTMODEL = 7009 RPCVERSION = 5090 RCRTWIDTH = 80 The IgnoreLF setting is automatically turned On when running Qcterm. Qedit assumes Qcterm emulates a 700/92. This means that it can only have 80 or 132 columns. ChangeT Edits Cobol Tags Cobol tags are short strings stored in columns 73 to 80 of CobX source files. The Cobol tag value is defined using the Set X command. Once enabled, updated lines and added lines are automatically updated with the tag. They can also be modified manually with custom tag values. In the past the Change command also affected the CobX tag in the file. This was not desirable, as typically only the actual text should have changed. Some Change commands even caused the tag to shift into the text area, causing compiler errors. To work around these problems, the Change command now uses the T suffix. You can think of it as the Tag option. A regular Change command makes changes in the text area only, that is columns 7 to 72. The Tag option only operates on the tag area itself, columns 73 to 80. /change "CUST" "SUPP" all {change cust to supp in all lines. } { cust must be between columns 7 and 72. } /changeT "CUST" "SUPP" all {change cust to supp in all lines. } { cust must be between columns 73 and 80. } To do this, the Tag option temporarily changes the margins to (73/80). Qedit displays a warning every time this option is used. Because the margin values have changed, explicit column range in a Window can only be between 73 and 80. /changeT "CUST" (50/60) "SUPP" all Warning: ChangeT: editing the Cobol tag area only (73-80). Error: Window /changeT "CUST" (73/80) "SUPP" all Warning: ChangeT: editing the Cobol tag area only (73-80). 10 SUPP0102 1 line changed Multiple Search Strings A rangelist can be specified on most commands to identify which lines to operate on. Until now, a rangelist could only contain one search string. In Qedit 5.0.10 and higher, a rangelist can now have up to 10 strings. Strings are separated from each other by an OR keyword. Each string can have its own search set such as column range and options. For example, /List "abc" or "xyz" { search for abc or xyz } /C 1/2 "ME" "abc" (u 30/35) or "xyz" (50/60 s) { search for caseless "abc" in columns 30/35 or } { smart "xyz" in columns 50/60 } Each string is compared in turn against the text. As soon as a match is found, the line is selected. Thus, the most commonly found strings should be placed at the beginning of the list to increase speed. The complete rangelist is saved and used when the "previous string" syntax (i.e., a null string) is entered. For example, /List "". Qedit for Windows Qedit for Windows lets you edit local MPE/iX and HP-UX files from a single MS Windows program. It consists of a Windows editing client and either an MPE/iX or HP-UX editing server that work together to edit your host files. To take advantage of Qedit for Windows, you need both parts: the client and the server. Qedit for Windows uses the popular TCP/IP protocol for communicating between the client and the server (this is the same protocol that you use to access the Web). Configuring the Qedit server software requires creating the correct TCP/IP environment for Qedit for Windows. Server Process By default, the Qedit server uses the MPE/iX Remote Process Management (RPM) service to start each server session. With RPM, the client sends a program name and an Info= string along with logon information to the RPM listening process. The RPM listening process then validates the user logon and starts the specified program with the Info= string. The server process is seen as an MPE/iX session, but the process is not included in your user limit. The Qedit server software is not available for MPE V. Logon Sequence When you use an MPE/iX connection to open a file in Qedit for Windows, this is what happens: 1. A new host session is started, and the user name and passwords are validated (this includes additional logon processing by products such as SECURITY/3000). 2. The Qedit client asks RPM on the host to run the Ci.Pub.Sys program with an Info string. For example, qedit.pub.robelle "-d" The "" is the IP address of the Qedit client. 3. The Qedit process starts, and it verifies that you are authorized to use Qedit in server mode. 4. Any system-wide Qeditmgr files are always processed. Processing of account and group Qeditmgr files is optional and must be enabled in the client. 5. The requested file is opened. 6. A response is sent to the client. It is important to note that logon UDCs are not executed as part of this process. Any environment variables or file equations that are set up as part of a logon UDC will not be applied in the Qedit server process. Firewall Protocol and the Server The default protocol is usually sufficient at most sites. However, some customers use firewall devices to further restrict access to their HP e3000. The default protocol might not work at some of these sites. For this reason, the server offers a Firewall protocol. In order to use this protocol, a Qedit listener has to be running at all times. You should add this job to your system startup procedure: :stream qserver.qeditjob.robelle If the job is not running, all new connection requests are rejected. Currently, the only way to stop the job is to abort it. With this setup, the server runs as a listener similar to a UNIX daemon. It waits for incoming connection requests on a specific port number. Like the HP-UX server, the default port number is 7395. If you want to use a different port, you have to modify the Qserver job stream. Upon receiving a request, the listener passes the information down to RPM, which then takes over. QEDSERVMODE JCW The Qedit server process always executes the commands in the system-wide Qeditmgr files (e.g., Qeditmgr.Pub.Sys). Processing of the account and group Qeditmgr files can be enabled in the client. To indicate that you are using the Qedit server in either the server or the nonserver mode, which are not exactly the same, we provide a JCW called QEDSERVMODE. QEDSERVMODE is set to zero (0) if you are in nonserver mode, and nonzero if you are in server mode. If you are using the Qedit server, you should modify your Qeditmgr file so that few, if any, commands are executed in server mode. For example, if Qedservmode = 0 then set extprog mpex.pub.vesoft endif Log Files The Qedit server can communicate only with Qedit clients. To help system managers track Qedit processes, Qedit for Windows writes to three log files: the access log, the error log, and the trace log. Console Messages If Qedit cannot access any of its log files, it writes the log message to the system console. You can also enable console logging with the Debug command in the Option menu of the Qedit client. If someone is having trouble establishing a connection and the Qedit log files on the host do not include a message about this connection, check the system console. If Qedit was unable to open the log files, it probably reported the message on the system console. Access Log Every time a Qedit client makes a connection to the server process, an entry is written to the access log file, which is where the IP address of the client is logged. The numeric form of the IP address is logged, along with the port number used to communicate with the client. Error Log Any error conditions encountered by the Qedit server process are written to the error log file. If you suspect a problem between the client and the server, start your diagnosis by looking at the end of this log file. Trace Log By default, Qedit does not log messages to the trace log file. You can enable trace file logging by using the Debug command in the Option menu of the Qedit client. The trace log file can grow and become very large, because Qedit messages are constantly being added to it. These messages assist in understanding the communication between the Qedit server process and the Qedit client. In many cases, the detailed information in these messages is the only way to diagnose a problem. Log File Names If you run Qedit as Qedit.Pub.Robelle, the three log files are located in the Qlog group of the Robelle account. If you rename Qedit or run it from a different group or account, the group and account names for these log files are automatically adjusted. See the chapter "Installing Qedit" for more details. Bugs Fixed Invalid Line Numbers in Cobol Files Qedit expects valid line numbers in most Cobol source files. If it encounters invalid line numbers, it tries to recover as gracefully as possible. In some cases, however, the numbering recovery procedure was not working properly which caused some lines to be lost. [5.0.12] Empty Line After Glue Operation A Glue command left an empty line behind if you were working on a CobolX file with no Cobol tag defined but the List option enabled as done with: Set X "" List ON Tab OFF For example, suppose the file contains 4 Author. Francois Desrochers. 5 Remarks. 6 Environment division. If you did Glue 4, the result would have been 4 Author. Francois Desrochers. Remarks. 5 6 Environment division. The correct result is now 4 Author. Francois Desrochers. Remarks. 5 Environment division. [5.0.12] Display Width When going in full-screen mode, Qedit adjusts the display width to match the file attributes as closely as possible. It resets the display width to its original value upon exit from full-screen mode. The reset function was not working properly on some versions of Reflection for Macintosh and Windows. [5.0.12] Replicating Block of Text If you marked a block of text to replicate in 2 steps using the RR/Rn construct of full-screen mode, the lines were highlighted but they would not be replicated. This would happen if you entered RR on a line, hit ENTER, moved the cursor to some other line and entered Rn. [5.0.11] Hyphens in Cobol Copylib Names Cobol Copylib member names can now contain hyphens. In previous versions, Qedit picked up only the characters preceding the first hyphen. [5.0.11] Incorrect Replace With Regular Expression In certain situations, a Replace operation using a regular expression caused incorrect text to be inserted. The problem could occur if you specified a backreference e.g. \1 in the replacement string while the regular expression to search for did not have any subpattern (enclosed in parentheses). In such case, the replacement string should be used as a literal. This problem has also been fixed in the Qedit for Windows server. [5.0.10] Resetting COBX Tag The following commands can be used again to reset COBX tag settings: Set X Set X "" Set X Null [5.0.10] Assertion Failure In Browse or Defer Access It is possible to open a workfile in Browse or Defer mode while the file is updated by another process. However, the Browse/Defer session sometimes reported assertion failure 5 (invalid block number) if a large number of lines had been added by the update session. This no longer happens. [Browse - 5.0.10] [Defer - 5.0.11] Texting Large Bytestream Files Texting of large bytestream files was extremely slow. Access to these files has been fixed and should now be comparable in speed to accessing regular files. [5.0.10]