QEDIT/UX Version 4.6 Full-Screen Text Editor for HP-UX Change Notice Installation Instructions Addendum to 4.5 User Manual Qedit/UX 4.6 Robelle Consulting Ltd. Unit 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 September 1997 Program and Manual Copyright Robelle Consulting Ltd. 1977-1997 Permission is granted to reprint this document (but not for profit), provided that copyright notice is given. QEDIT and SUPRTOOL are trademarks of Robelle Consulting Ltd. The following names and marks are companies and trademarks of their respective owners, designating companies and products not provided by or associated with Robelle or its QEDIT editor and SUPRTOOL database handyman products. ASK is a trademark of COGELOG. Allbase, HP 3000, HP, HP-UX, HPDesk, IMAGE, KSAM, LaserJet, MM3000, MPE, TDP, TRANSACT, TurboIMAGE, and VPLUS are trademarks of Hewlett-Packard Company. Cognos, PDL, PowerHouse, QDESIGN, QUICK, QUIZ, and QTP are trademarks of Cognos Incorporated. Excel, MS-DOS, Windows, and Windows NT are trademarks of Microsoft Corporation. IBM is a registered trademark of International Business Machines Corp. Klondike is a trademark of Software Research Northwest, Inc. Lotus is a registered trademark of Lotus Development Corporation. MANMAN is a trademark of ASK Computer Systems, Inc. MPEX, SECURITY/3000, and STREAMX are trademarks of VESOFT, Inc. Mac and Macintosh are trademarks of Apple Computer Inc. Netbase is a trademark of Quest Software. Nuggets is a trademark of Lund Performance Solutions. Omnidex is a trademark of Dynamic Information Systems Corporation. Oracle is a trademark of Oracle Corporation. Paradox and Quattro Pro are trademarks of Borland International. Reflection is a registered trademark of Walker Richer & Quinn, Inc. SPEEDWARE is a trademark of Speedware Corporation. SPLash! is a trademark of Allegro Consultants. Superdex is a trademark of Bradmark Technologies, Inc. Type Ahead Engine is a trademark of Telamon, Inc. Introducing Qedit/UX Version 4.6 ü Qedit for Windows ü Highlights ü Compatibility ü Known Problems ü CPU Serial Number (uname) ü Documentation ü Documentation in WinHelp Format Qedit is a full-screen editor for programmers of the HP-UX systems (workstations and minicomputers). It is a development home base that is both fast and efficient. Every year we update Qedit with a number of new features and fixes requested by users. It is our goal is to provide PowerHouse and COBOL developers with all the necessary facilities to stay in Qedit all day. This change notice includes detailed steps for installation, a description of Qedit's new features and how to use them, and a list of other changes. Qedit is also available for MPE, with virtually identical features. Contact us if you would like more information. Announcing Qedit for Windows In the last year we have been busy developing the next generation of our popular editor, Qedit for Windows (QWIN). QWIN lets you edit local MPE/iX and HP-UX files from a single MS Windows program. Our new editor consists of a Windows editing client and an MPE/iX or HP-UX editing server that work together to edit your host files for you. To take advantage of Qedit for Windows, you need both the client and the server. This change notice includes a description of the server portion of Qedit for Windows. If you would like to upgrade to Qedit for Windows, please contact Robelle Consulting Ltd. Highlights in Version 4.6 ü The new Undo option in the Redo command can now cancel an immediately preceding Undo operation. If you have consecutive Undo operations, you can cancel them with consecutive Undo Redo commands. ü If you use a Text command on a file, the modification timestamp is now stored in the workfile. Knowing when the file was last modified lets you make sure you are not overwriting someone else's revisions. ü The :Reflect command is now available. This feature provides an easy way to pass commands to WRQ's Reflection terminal emulator. ü Hard and symbolic links are now preserved on a Keep operation. ü In Visual mode, the plus (+) and minus (-) signs in the home line can now move ahead or back up to 10,000 lines. ü The ROBELLE variable can now provide redirection to the /robelle directory when the directory is not in the default path. ü New Set Lang settings have been added for C, C++, and PowerHouse. Screen Mode Improvements The following functionality has been added to Screen mode: ü Search and Replace strings with Ctrl-R. ü Move the cursor to the previous or next word with keypad-5. ü Mark partial lines with Ctrl-L. ü PF1-PF4 keys now work correctly on VT terminals and Reflection. List Command ü List with the $pcl option now closes the printer when running under Windows. ü List $page will also do a page break on #pragma page. New Qedit for Windows ü Robelle has been putting its resources into the development of a new product, Qedit for Windows. For more details, see "Announcing Qedit for Windows" above. Compatibility Qedit/UX is compatible with HP-UX 9.0. Qedit/UX now follows and preserves hard and symbolic links on a Keep operation. HP-UX 10.0 Compatibility and Installation Qedit/UX is compatible with all versions of HP-UX 10.X. If you want to use the new HP-UX 10.X naming conventions for Qedit/UX, you need to do the following (this should all be done while logged on as root): 1. Get the files off the tape: tar xv 2. Move the files to /opt/robelle: mv /usr/robelle /opt 3. Set up a link for Qedit files: ln -s /opt/robelle /usr/robelle 4. Set the ROBELLE environment variable to the new directory ROBELLE=/opt/robelle export ROBELLE CPU Serial Number (uname) Qedit/UX runs only on CPUs whose serial numbers have been encoded (the "uname" on HP-UX). If it fails to run and you see an "invalid HPSUSAN" error message, call Robelle for assistance. Known Problems Qedit/UX There are currently no known problems with Qedit/UX. Qedit for Windows (QWIN) The following are known problems in the either the Qedit client or the server: Access Log File New client connections are not logged to the access log file. Client Problems The following problems appear in the Qedit for Windows client: a. Changing the right margin in the Options dialog box (File menu) has no effect on server documents. b. A pattern-matching Find command does not work on local documents. Documentation Extra printed copies of the Qedit User Manual can be ordered directly from Robelle or one of its distributors. The complete user manual is also available in on-line Help. Documentation in WinHelp Format Both the MPE and HP-UX editions of the Qedit User Manual are now 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 five Help files and a Setup program. Use the installation instructions in this change notice to install the files on your PC. Installation If you are a new Qedit/UX user, please follow the installation instructions in the Qedit User Manual. These notes assume that you are an existing Qedit/UX user who is upgrading to version 4.6. The installation should take about half an hour, during which time no one can use Qedit. Installation Assistance If you have any questions about the upgrade or run into any problems, please call us. Technical support is available on weekdays from 7 a.m. to 4 p.m., Pacific time. You can also receive emergency support outside of these hours by calling our regular phone number and asking the operator to page a support person for you. Replace Any Pre-Release If you are currently running a pre-release version of Qedit, you should replace it with this new official release. Pre-release versions expire within two years of their creation date, whereas this new release has no expiry date. You can easily recognize a pre-release by its three-part version number (e.g., 4.5.24) and the words "Pre-Release" next to the version number. Summary of Installation Steps To install Qedit, follow these steps: 1. You must log on as root. 2. You must create the correct directory structure. 3. You must restore Qedit/UX and its associated files from the distribution tape. 4. You can set up a PATH for Qedit/UX or copy it to an existing directory in your PATH. (optional step) 5. If you have the Qedit for Windows server, you need to start the daemon process. (optional step) 6. You can install WinHelp documentation files. (optional step) Step 1: Log On as Root There are two ways you can log on as root: a. Exit from HP-UX and log on with root as the user name. b. If you are already logged on, you can execute this command: su - In either case, you have to know and supply the user password for root. Step 2: Create Robelle Directory Qedit/UX is installed in the /usr/robelle directory. Before restoring the Qedit/UX files, you must first create the Robelle directory: mkdir /usr/robelle Step 3: Restore Files Use the following command to restore the Qedit/UX files from the distribution tape: tar xv /usr/robelle Once the files have been restored, you can run the new version of Qedit/UX: /usr/robelle/bin/qedit Step 4: Setup PATH (optional) You can invoke Qedit with the following command: /usr/robelle/bin/qedit If you just type qedit to invoke Qedit/UX, you must either add /usr/robelle/bin to your PATH or copy /usr/robelle/bin/qedit to a directory that is currently on your PATH. Similarly, the man pages for Qedit are found in /usr/robelle/man/man1/qedit.1. To make the man pages available to everyone, you can either add /usr/robelle/man to your MANPATH or you can copy the man pages to a directory that is currently on your MANPATH. Step 5: Start the Qedit for Windows Server (optional) If you have the Qedit for Windows server software, you must start the Qedit/UX daemon process before any Qedit clients can connect to your HP-UX machine. To allow users to connect to the Qedit/UX daemon process, you must log on as root and issue this command: qedit -d The Qedit server process requires three log files. By default, these files are located in the following directory: /usr/robelle/log/qedit/ If you have moved Qedit to a different directory, you will have to perform the following steps: 1. Set the ROBELLE environment variable with the new directory name before you start the Qedit server process. 2. Make sure the new directory has exactly the same structure as the /usr/robelle directory. Step 6: Install WinHelp Documentation Files (optional) The Qedit documentation for both MPE and HP-UX is now available in the WinHelp format of Microsoft Windows. You can only use these files 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 the File Manager, make a directory to which you can copy the installation files. You can remove this directory after installing the files. mkdir \robtemp Download the Compressed File In the next step, download the self-extracting Zip file to your PC. If you are using Reflection to download the Zip file, follow these instructions. The file on the HP 9000 is /usr/robelle/winhelp/qedhelp.exe From the /usr/robelle/winhelp directory, press Alt-Y to go to the Reflection Command Line window. Then download the file with a binary transfer. receive c:\robtemp\qedhelp.exe from /usr/robelle/winhelp/qedhelp.exe 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 From the Program Manager, run the Setup program by choosing the Run option from the File menu. Then enter c:\robtemp\setup in the Command Line box and follow the instructions in the Setup program. You can now 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} Enhancements Every year we provide Qedit users with new features. The major enhancements this year include new language settings for PowerHouse, C and C++, longer record length, and multi-rollback Undo. Modification Timestamp Stored in Workfile If you use the Text command to copy a file or to create a permanent workfile, Qedit saves a modification timestamp. If the original file is then modified before you put your revisions back into it with the Keep command, Qedit displays two (2) additional lines. For example, Saved modification timestamp : 1997/03/26 12:29:11 File modification timestamp : 1997/03/31 05:40:57 The first timestamp shows you when you used the Text command on the original file. The second timestamp shows you the time of a subsequent modification to the original file by another party or process. Based on this information, you can make sure you are not overwriting someone else's changes. Once you use the Text command on a file, a Verify Keep command will show you the saved timestamp. :Reflect Command WRQ's Reflection terminal emulator provides a powerful scripting language known as Reflection Command Language (RCL). You normally use this language by switching to Reflection's Command Line window (Alt-Y). Reflection also supports specific escape sequences, allowing host applications to execute RCL commands. If Qedit/UX determines that you are using Reflection, you will be able to use the Reflect command. You just prefix the RCL command with the Reflect keyword. Qedit/UX will pass the command to Reflection. If the command fails, Qedit will display Reflection's error code. Among other things, you can verify Reflection settings, change them, and even download or upload files. qux/reflect Verify Changed qux/reflect Set Type-ahead Yes qux/reflect Send myfile.txt to /users/mydir/myfile ROBELLE Environment Variable Qedit looks for the files it needs in the /robelle directory (normally /usr/robelle). For example, Qedit expects to find its log files in a subdirectory called log/qedit. It would expect to find the error log file in /usr/robelle/log/qedit/error.log which is the default full path name of the error log. If you install Qedit in a directory other than /usr/robelle, you need to set the ROBELLE environment variable to the new directory. For example, ROBELLE=/usr/robhome export ROBELLE There are two limitations to the path name: the full path name of the file must be no more than 36 characters, and the path name to the /robelle directory must be no more than 20 characters. A slash mark (/) is optional at the end of your ROBELLE environment variable. To set up the log files in the new directory, you have to manually create the "log" subdirectory in the alternate search path. Screen Mode The following new features were added to Screen mode. Ctrl-L to Mark Partial Lines When you press Ctrl-L to begin marking, Qedit highlights the entire line. This means the whole line will be inside the marked block, regardless of the horizontal location of your cursor. If you press Ctrl-L again, Qedit highlights only part of the line, from the position of your cursor when you first pressed Ctrl-L to your current cursor position. Press Ctrl-L a third time to cancel your marked block. Keypad-5 to Toggle Move-by-Words The toggle WordMove feature selects whether the left and right cursor keys will move by characters or by words. This feature is useful if you have a slow connection to your host machine. Press keypad-5 to switch to moving by word. Qedit defines a word as a sequence of alphanumeric characters or a sequence of punctuation characters. For example, the line "if (a==b)" contains six words: if, (, a, ==, b, and ). Press keypad-5 again to move by full words. Qedit defines a full word as a sequence of non-blank characters. For example, "if (a==b)" contains these two full words: if and (a==b). Press keypad-5 once again to return to move by single character. Ctrl-R to Search and Replace Strings In Search and Replace, Qedit asks you three pieces of information: the string to search for, the string to replace with, and the search options. The search options are the same as the ones in the Find String function, which is documented in the Qedit User Manual. Undo Command Now Has Redo Option The Undo command has a new Redo option. If there is an immediately preceding Undo operation, the Redo option cancels it. To check for a pending Undo, use the Listundo command (it will warn you). If you have done consecutive Undo operations, you can cancel them with consecutive Undo Redo commands. Once you do a non-Undo command, you will no longer be able to cancel preceding Undo operations. Qedit for Windows Qedit for Windows (QWIN) lets you edit local MPE/iX and HP-UX files from a single MS Windows program. It consists of a Windows editing client and an MPE/iX or HP-UX editing server that work together to edit your host files for you. To take advantage of Qedit for Windows, you need both the Qedit client and the Qedit 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 Qedit clients can connect to Qedit/UX only if the Qedit/UX daemon process is running (the Qedit/UX daemon process cannot be started from inetd). This process listens for connections on a registered port number (described below). To allow users to connect to the Qedit/UX daemon process, you must log on as root and issue this command: qedit -d The Qedit/UX daemon process should always be running, so it is a good idea to automatically start the daemon as part of the system startup process. On HP-UX 9.0, this is done by adding the following command to the file /etc/rc: /usr/robelle/bin/qedit -d HP-UX 10.0 On HP-UX 10.0, you do not modify the startup shell script. Instead, you need to create a number of files. You can choose any name for these files, as along as the names are consistent throughout the process. In our example, we use qedit_server. You first need to create a control file in /etc/rc.config.d. This file sets a control variable that will be checked by the startup script. If the control variable is set to 1, the server will start; if it is not equal to 1, the server will not start. We will use QEDIT_SERVER as our variable name. The /etc/rc.config.d/ qedit_server control file will now contain the following: # ****** File: /etc/rc.config.d/qedit_server ****** # Qedit for Windows server configuration. # # QEDIT_SERVER: Set to 1 to start # Qedit for Windows server QEDIT_SERVER=1 Next, you need a shell script that will actually start the server. You should make a copy of a file called /sbin/init.d/template. cd /sbin/init.d cp template qedit_server Modify the file so that it contains the necessary commands to start the server. You have to change all occurrences of CONTROL_VARIABLE to the variable name you used in the control file (i.e., QEDIT_SERVER). You also need the execute command for the server program. Insert this command in the section after the 'start') string. The section looks like this: 'start') # source the system configuration variables if [ -f /etc/rc.config ] ; then . /etc/rc.config else echo "ERROR: /etc/rc.config defaults file MISSING" fi # Check to see if this script is allowed to run... if [ "$QEDIT_SERVER" != 1 ]; then rval=2 else # Execute the commands to start your subsystem /usr/robelle/bin/qedit -d fi ;; Finally, you need a symbolic link to specify when the script in /sbin/init.d will be executed at boot time. Typically, you would start the server as the last step at run level 3. Get a list of all the startup files in /sbin/rc3.d with ls /sbin/rc3.d/S* Link names in this directory follow a set of conventions. The names start with the letter S or K. S links are startup scripts; K links are shutdown or "kill" scripts. The next three characters in the name represent an execution sequence number. This number must be 3 digits, and its value should be a number higher than the highest value on the ls listing. For example, if the last link is called s100nfs.server, you could use s111qedit_server. Create the symbolic link with ln -s /sbin/init.d/qedit_server /sbin/rc3.d/S111qedit_server For the time being, you do not need a "kill" link. Port Number By default, Qedit/UX listens on port number 7395. This port number has been registered with the Internet Naming Authority, so you should not have any conflicts with other HP-UX tools for the same port number. If there is a conflict, you can start the Qedit server process with a different port number. For example, qedit -d5678 tells Qedit to listen to port number 5678 instead of the default number (7395). If you change the port number on the Qedit/UX server, you must also change the port number on every Qedit client to the same value (5678 in this example). Client port numbers can be changed in the Server dialog box of the Option menu. If you want listings from netstat and other networking tools to identify the port number as "qwin" instead of just "7395", you have to change the /etc/services file so that it includes the Qedit port number. qwin 7395/tcp #Robelle Qedit for Windows Log Files The Qedit server can only communicate with Qedit clients. To help system managers see what is happening with the Qedit process, 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 QWIN connection and the Qedit log files on the host do not include a message for 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. Qedit attempts to find the symbolic name of the client IP address by reverse name DNS lookup. If this lookup is not enabled, Qedit writes the numeric form of the IP address to the log file. 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. However, 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 to 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, their detailed information is the only way to diagnose a problem. Log Filenames By default, the Qedit server assumes that the log files are located in this directory: /usr/robelle/log/qedit/ You can change the default directory of the log files by using the ROBELLE environment variable. The three log files are called: access.log error.log trace.log Like most UNIX log files, these files will continue to grow until you run out of disc space. We recommend archiving the log files in a separate directory and saving them each week. After archiving, you can remove everything from the log files with these commands: cp /dev/null access.log cp /dev/null error.log cp /dev/null trace.log Bugs Fixed List Command. A List command with the $pcl option now closes the printer when running under Windows. List $pcl 10 correctly fills both columns on a page when used with an attached printer ($record). The List command now properly parses the $device option if the name of the specified device contains special characters. Qedit no longer returns an error if the file path name contains a directory called "lp." For example, List /users/john/lp/myfile Screen Mode. Clear to end of line now correctly computes the line length. The Visual Last command now works in Screen mode. Keep Command. Hard and symbolic links are now preserved on a Keep command. Keep and Shut Commands. Qedit no longer replaces an existing workfile that requires crash recovery. Undo Command. Canceling an Undo operation no longer removes the entry from the Undo log. If you Shut the current workfile and then re-open it immediately with Open *, you can now Undo your changes.