Appendix D: Change History

Introduction

This Appendix summarizes the changes between ARPUS/ce Version 2.5 and previous versions. The Appendix is organized in reverse chronological order. That is, changes between the latest revision and its predecessor are listed first. Changes relating to older versions are listed later in this Appendix.

Other chapters of this User Guide contain tables of Ce and ceterm commands as well as default key definitions. The information shown in this Appendix is also included in those tables for your referencing convenience.

Summary of changes from Ce release 2.4.2 to 2.5

New Major Features

Scroll Bars

Ce now supports both vertical and horizontal scroll bars. By default, they appear as needed. X resources and commands can be used to control their appearance (both how they look and when they appear). Due to Ce's ability to scroll sideways, an extra resource "Ce.scrollBarWidth" controls the horizontal scroll bar behavior. This resource can also be used to disable the horizontal scroll bar and keep the vertical scroll bar.

Menu Bar and Pulldowns

Ce now supports a user customizable menu bar and user customizable pull down menus. Menu items, which look a lot like key definitions, are controlled by commands held in the ".Cekeys" file. Several new commands assist in using an manipulating pulldowns.

Colorization

A new Ce command "ca" allows the colorization of a range of text. The colorization is local to the Ce session and is not saved. Several programs to generate colorization on HTML and C programs are provides in source along with the menu item definitions which would make use of them. This first color release uses static color. That is, the colorization is not yet language sensitive.

Labels

Ce now allows the generation of labels which are stored local to a Ce session. If line numbers are turned on, the labels can be seen in the line no field. A program to generate labels from C source and put them in a pulldown is supplied in source.

HTML Documentation

The Ce helps and users guide are provided in HTML format along with a frequently asked questions list and other HTML only documentation. The HTML package is self contained. You need only provide a link so your intranet web server can get to the main web page.

Contributed Programs

Several useful programs are provided in source form. These programs are designed to interact with Ce and can server as a model for other programs. The initial set includes a basic HTML parser which generates Ce "ca" commands to colorize HTML documents; a program which does the same thing for C programs; and a program to generate labels for all the functions in a C source file.

New Arguments and X Resources

-kdp <name>
Ce.keydefProp : <name>
Ce stored the key definitions it reads from the "$HOME/.Cekeys" file in an X property hung off the root window. This property allows a different name to be used.This option can be used with the -name option or aliasing the Ce command to maintain multiple sets of independent key definitions for different windows. This falls under the heading of extremely advanced features. It has been used in writing simulators which control bunches of ce and ceterm windows simulating multiple processors. DEFAULT: CeKeys.

-sb {y | n | auto}
Ce.scrollBar : {y | n | auto}
Scroll bars are always on "y" or off "n", or they appear as needed. As needed is defined as a vertical scroll bar exists when the number of lines being displayed exceeds the number of lines in the window. A horizontal scroll bar is needed when a line is longer than a window. A special note about Ce horizontal scroll bars: The slider width is an indication of the width of the window with respect to the width of the line. To facilitate horizontal scrolling, Ce operates as though the line width is at least 300 characters when the scroll bar slider is drawn. This can be modified with the "Ce.scrollBarWidth" option. Note also that the scrollBar option is often set differently for Ce and ceterm. It is common to turn it off in ceterm windows. Ce.scrollBar : auto ceterm.scrollBar : no DEFAULT: auto.

-sbwidth <num>
Ce.scrollBarWidth : <num>
The argument sbwidth or the X Windows resource "scrollBarWidth" can be set to define the minimum line size used to calculate the dimensions of the slider portion of the scroll bar. For example: If the window is 80 characters wide and one of the lines displayed is 160 characters wide, the horizontal scroll bar slider will be one half the width of the gutter it rides in. This allows you to slide to the end of the line with the slider. The use of horizontal scrolling in Ce makes this somewhat restrictive. It would be nice to use the horizontal scroll bar to move farther than the end of the line. To facilitate this, the "scrollBarWidth" resource is used. If the horizontal scroll bar is displayed, it behaves as though the longest line displayed is at least "scrollBarWidth" characters long. If a real line is longer, the longer value is used. Setting scrollBarWidth to 1 will make the slider size to the longest line in the window. Setting scrollBarWidth to 0 disables the horizontal scroll bar. This way you can use just the vertical scroll bar without ever seeing the horizontal. DEFAULT: 300.

-oplist
The causes Ce to calculate it's run time options and dump them to stdout. It is useful in diagnosing problems and is used in the procedure which updates Ce from a previous release.

-pdm {y | n}
Ce.pdm : {y | n}
The pdfm or the X windows resource ".pdm" can be set to define whether the pull down menu bar is initially visible or invisible. It is common to have the pulldown menu bar on for Ce and cv and off for ceterm: ce.pdm : y cv.pdm : y ceterm.pdm : n.

-xrm "resource:value"
The xrm option allows the specification of X resources. This is a standard parameter for X applications. It is not especially useful with Ce, as all the resources can be specified from the command line. The parameter holds one X resource line. The "-xrm" parameter may be specified multiple times. For example: -xrm "ce.foreground:red".

-CEHELPDIR <path>
Ce.CEHELPDIR : <path>
The CEHELPDIR resource is set in the installation of the app-defaults file for Ce to the directory containing the Ce help pages. If you do not set the environment variable "CEHELPDIR" in your ".profile", Ce will use this value when looking for the help pages. This technique makes the Ce help file directory easier to move around.

-dotmode {0 | 1[string] | 2}
ceterm.dotmode : {0 | 1[string] | 2}
The ceterm password dot mode option is needed on HP/UX machines of release 10.20 and beyond where the users primarily use the csh shell. When ceterm detects that the user is typing a password, the program goes into dot mode. The characters typed are displayed as dots and undo processing is disabled so you cannot undo to get the password back. At HP/UX 10.20, it was not possible to find a combination of "tty" settings which would correctly indicate that a password was being entered for the "csh" (ksh works fine). To rectify this, a simpler method of detecting password prompting, namely watching for "pas" in the prompt string (case insensitive), was added. In this mode, you can optionally set the prompt fragment to look for. The values are shown in Table D-1.

Table D-1. Prompt Fragments and Definitions

Value

Definition

0

Nodot mode, never display dots, passwords are visible.

1

Scan prompt for string, Note, if you use hostname in your UNIX prompt and your node name is Pascal, you are sunk!

2

Normal mode, watch the tty bits to determine password entry. DEFAULT: 2 (Can be set during installation).

New Ce Commands

New Ce commands listed in Table D-2 were added to support colorization of text, pull down menus, scroll bars, statement labels, and miscellaneous features people asked for.

Table D-2. New Ce Commands and Definitions

Command

Definition

ca

This command is used to color an area or remove color from an area.

{

Called the "corner" command, this command behaves similar to the positioning command [row,col]. Instead of moving the cursor to this position, the corner command positions the file so {row,col} is in the upper left corner of the window.

fbdr

This command allows dynamic inspection and modification of the find border resource introduced in release 2.4. The find border modifies the positioning commands (such as find), to position the window so there are at least 'n' lines between the located position and the found line. In this case, "n" is the number from the "fbdr" command. This allows you to see text in context. See the "fbdr" help for more information. The scroll bar command, "sb", allows the scroll bars to be switched on and off.

mi

The "menu item" command is put in the ".Cekeys" file to create the items found in the menu bar and in pull down menu's. It's syntax is very much the same as a key definition. As with key definitions, menu items are known across all Ce windows. The local menu item command, "lmi", creates a menu item for just the current window.

pd

The "pulldown" command activates a pull down menu. This command can be placed in a key definition or executed from a menu item. It is the command used to create cascading pull down menus. Try the Ce command: "pd Menubar".

pdm

The "pull down menu" command allows you to toggle the menu bar on and off.

tmb

The "to menu bar" command can be put under a key definition to move the cursor to the menu bar and lock the main window till the mouse is clicked.

nc

The "next color" command moves the cursor forward to the next colored area.

pc

The "previous color" command moves the cursor backward to the next colored area.

eval

The "evaluate" command performs symbolic substitution of environment variables on its argument and then executes the argument as Ce commands. This is useful in some complex command files and key definitions.

lbl

The "label" command sets a label at the current cursor position in the main window.

glb

The "go label" command positions the cursor at the named label.

dlb

The "delete label" command deletes all labels in a range of text.

xa

The "paste buffer append" command concatenates two paste buffers. This is useful in some key definitions.

f

Alternate find syntax. Allows delimiter other than "/". This is handy for search strings with slashes in them.

CE_INIT Changes

The Ce_init program is now sensitive to whether Aegis or UNIX regular expressions are in use. The shell now asks several setup questions to do some initial customization. The key definitions, which were previously held in the DATA directory, have been put into the "ce_init" shell. The data directory no longer exists.

CE_ISCETERM

This program sends a terminal control sequence which is ignored by xterm's, hpterms, cmdtools, and so on but is recognized by ceterm. The program can thus detect whether it is being called from a ceterm or some other terminal. This is often useful in ".profile" (.login) shells or ".kshrc" (.cshrc) shells.

CE_INSTALL Changes

The install process now addresses the HTML and contributed program directories. It also allows some site wide customization as part of the install process. The data directory which contained initial key definitions has been eliminated in release 2.5. This data is now encoded in the "ce_init" shell. Also, the help files do not need to be tailored to the site. The only file which is tailored is "ce_init".

Incompatibilities Between 2.5 and 2.4.2

Release 2.4.2 and earlier versions will complain about the menu item definitions which are stored with the key definitions. Once you run release 2.5, bringing up an earlier version of Ce will cause a bunch of error message to be written out. You can get rid of this by doing a "ce -reload" with the earlier version. The code which generates these messages has been modified so it will not be a problem with later releases.

Changes from Release 2.4.1 to 2.4.2

This is a summary of changes from Ce release 2.4.1 to 2.4.2. Release 2.4.2 contains 2 bug fixes and 2 enhancements.

Bug Fixes

References to the system routine "gethostbyname" were removed to get around a problem which occured on Apollo systems running the xdm window manager.

Correction to allow the below key definitions to work as desired when running Ce in "mouse -off" mode.
kd m1 sic;dr;echo;mouse -on ke
kd m1U xc;mouse -off ke

Enhancements

If a Ce session which was piped into is put into read/write mode, a temporary name in "/tmp" is created. Previous behavior was to beep and issue an error message.

A new X resource (titlebarfont) and line option "-tbf" allows the user to specifiy the font to use in the reverse video titlebar at the top of the window.

Changes from Release 2.4 to 2.4.1

This is a summary of changes from Ce release 2.4 to 2.4.1.

Bug Fixes

Release 2.4.1 is a maintenance release. The following bugs were fixed:

A memory fault occured in ceterm only on HP/UX systems when the prompt was wider than the window and the return key was pressed in the main transcript pad.

The +lineno option on the command line was off by 1. That is, executing "ce +3 .profile" left the cursor on line 4. This is corrected. This option was undocumented in release 2.4.

A problem with "ww -a" has been corrected. It would occationally compress blanks.

A problem in the bl command was fixed. In one case it would find the wrong matching bracket.

BA problem involving the use of aliases within key definitions has been resolved. A key definition which used an alias would only pick up the first command in the alias list.

A problem involving the title command with no options was resolved. The command sequence "title abc;title" would cause a memory fault.

Changes from Release 2.3.2 to 2.4

This is a summary of changes from Ce release 2.3.2 to 2.4.

New Ce Commands

The new Ce commands are primarily for users who write customized commands and for programmers who write "Ce aware" programs. The alias command is a partial exception to this rule as it is used to add default alias names for common commands. For example, find, quit, end, save, and help aliases were added to the ".Cekeys" file created by "ce_init". To incorporate these changes into your existing ".Cekeys" file, execute the new "ce_update" command.

Table D-3. New Ce Commands and Definitions

Command

Definition

alias

The "alias" command allows the user to define new Ce commands. The syntax is very similar to kd command. New commands may contain symbolic substitution of positional parameter. It is used in the shipped key definition file to add aliases for help, quit, end, and a few other functions.

sp

"sp" is a special command for use with "Ce aware" programs. A program is "Ce aware" if it is the program executing under a ceterm and it wishes to make use of Ce features from within the program.

prefix

"prefix" is a special command which modifies the way data being written to the transcript pad in a ceterm is processed. It allows a set of one or more characters to be looked for at the start of each line written to the transcript pad. If a match is found, the rest of the line is assumed to be Ce commands and executed instead of being put in the transcript pads. The ceterm program comes initialized with a default prefix. This allows some shell users to synchronize the current working directory in the "Command:" window and the shells current working directory in a more elegant way than previously possible.

xl

The "xl" command is "copy literal". The string "xl" was chosen because it is consistent with "xc" for copy, "xd" for cut, and "xp" for paste. The "xl" command copies the literal string passed as it's argument to the named paste buffer. The optional arguments to "xc" apply to "xl".

New Parameters to Existing Commands

Table D-4. New Parameters and Definitions

Parameter

Definition

-e option to the bang (!) command

The "bang (!)" command causes the passed command to be sent to the shell and executed. The current marked region is passed as stdin to the program/shell script and optionally cut from the file. The standard output from the invoked program is optionally pasted into the cut out spot. The -e option specifies that standard output from the program is a string of Ce commands to be executed. Note that when used in conjunction with the alias command, you can write your own editor commands in your choice of languages or shell scripts.

Using grave (reverse) quotes (`)
in prompt strings

Normally the processing of a prompt removes leading white space from the response entered in a prompt. Sometimes this is not desirable. Enclose the prompt string in grave quotes instead of single quotes to preserve leading blanks and tabs in the response to the prompt.

-w option to wc

Normally when Ce returns, it saves the current window size and color scheme. When the next Ce/ceterm starts up, if no geometry was specified via the command line or X resource, it picks up the last one used. The -w option defeats this option. Using the window manager pull down to close a ce/ceterm implies this option.

New Run Time Options and "X" Resources

-dpb <name>
Ce.dfltPasteBuf : <name>
Use the specified name as the default paste buffer. As delivered, this is the paste buffer name CLIPBOARD. It is the default paste buffer name for most Sun applications. The other common name is PRIMARY with is the name used by xterm and other applications. This resource is commonly set by the system adinistator to the value PRIMARY in the app-defaults directory file "Ce". It is expected that sites not using Sun workstations will change the default to PRIMARY in the app-defaults library to make it easier for Ce to communicate with xterms and other applications on these machines. DEFAULT: CLIPBOARD.

-findbrdr <num>
Ce.findbrdr : <num>
Use the specified number as a border for find commands. That is, if <num> was specified as 2, make sure there are 2 lines between the top or bottom of the window and the found string. This is ignored if the find is in the first <num> lines of the file. It may be modified if the number of lines in the window is less than double num. This option is often set to 1 or 2 in the ".Xdefaults file". For example: If the resource "Ce.findbrdr:1" is active, the find command will position the window so there is at least one line of text above or below the found line. DEFAULT: 0.

-ib <path>
Ce.iconBitmap : <path>
This option lets you change the icon used for ce/ceterm. Ce will use the requested file as the bitmap for the icon. The file should be in the format created by the X bitmap utility. This utility is found in different places on different types of machines. DEFAULT: The standard ce/ceterm icons.

-transpad
This option puts a Ce window into a special read from stdin mode. It is useful when piping into Ce from a device such as a hardware monitor which generates data sporadically over a long period of time. When Ce is running in its normal mode and it is reading from stdin, if you press "^b" (go to bottom of file), the screen will lock until all the data has been read in ensuring that the bottom of the file has also been read. This is fine when using Ce as a pager for manual pages. When displaying output from some device which is producing messages, a behavior like the transcript pad of a ceterm is desired, only with no UNIX command window. The "-transpad" option provides this behavior. One use for this option has been to provide a monitor window in a debugger. The Ce program was executed via a "C" popen(3) call and output written to this pipe as needed. DEFAULT: Off.

-offdspl { y | n }
Ce.offdspl : { y | n }
This option overrides a normal "safety" feature of Ce for use with virtual window managers such as olvwm. Normally Ce will not allow the specification of a window geometry which has no portion of the window visible. This is because such a window is very difficult to interact with. When using a virtual window manager it may be desireable to bring up Ce windows in parts of the virtual workspace which are not currently visible. This is especially true during login startup processing. When set to "y", the offdspl argument or X resource allows the specification of geometries which are off screen. Whether this option is required depends upon how the virtual desktop is managed. Managers such as HP/VUE and CDE unmap the windows which are not in the currently displayed desktop. Window managers like olvwm move the window to geometry values which are off screen. It is for this second type of window managers that the offdspl option is supplied. DEFAULT: n.

-lockf { y | n }
Ce.lockf : { y | n }
As of release 2.4, Ce supports the use of System V, advisory file locking. The default is to use file locking. Specifying "n" in the command line argument or the X resource disables the file locking feature. Note that file locking is only supported on file systems which support advisory locking via the lockf system call. This includes local files systems and most NFS file systems. DEFAULT: Y.

New Executable

ce_update
A new shell called "ce_update" and a supporting program named "ce_merge" have been added. The "ce_update" command compares the existing key definitions to the defaults and appends any new default key definitions which were not previously defined to the existing ".Cekeys" file. Users who customize their key definitions generally do not want to run "ce_init" to get new key definitions because this would overwrite their customizations. The "ce_update" command does a merge without replace of the default definitions and puts the new definitions at the bottom of the file where they are easy to find. Note that "ce_update" is an alias to "ce".

Other Enhancements and Fixes

Enhancements

The abrt command "^x" will not cancel pending prompts. Thus if you press the Help key "F9" and are prompted for a name and you do not wish to look at any helps, pressing "^x" will cancel the prompting command.

The "dq" command (interupt) in ceterm causes the transcript pad to scroll to the bottom of the data. This avoids the problem of users in scroll mode (the default) to continue to see data scrolling on the screen after the quit has taken place. In truth, the data had already been sent from the shell but scrolling one line at a time made the output look like the command was still running. See the "ws" command or the scroll X resource for information about turning scrolling on and off.

The environment variable CE_CMDF_PATH is searched when accessing command files which do not have a complete path. For example, If "CE_CMDF_PATH=.:/usr/mygroup/ cecmds:/usr/dept/cecmds" and the Ce command "cmdf abc" is executed, Ce will check for the command file as "./abc, /usr/mygroup/cecmds/abc", and "/usr/dept/cecmds/abc".

Bug Fixes

The tmw (to main window) command caused the transcript pad to scroll when it should not have.

Key definitions which included entering text and scrolling would cause erroneous data to be displayed. A screen refresh would fix it. An example is: "kd ^1 tl;es'> ';[+1] ke".

Several minor drawing, regular expression (substitute), and cursor positioning bugs have been fixed in this release.

CE_INIT Fixes

Moved default "^c" (copy), "^e" (cut), and "^p" (paste) key defintions to "<Alt> c", "<Alt> e", and "<Alt> p" respectively.

Added default key definitions for:
"^c" - interupt in ceterm
"^d" - end of file in ceterm

Added aliases for "quit", "end", "exit", "save", "help", "print", "top", and "bottom".

Incompatibilities Running Version 2.4.2 with Version 2.3.2:

Several of the changes in release 2.4 make Ce not integrate properly with release 2.3.2. These changes are described here.

Key definitions using the bang "!" command or the command line prompting, when read from the X server by one version will not be processed correctly by the other. If the ".Cekeys" file was loaded by release 2.3.2, prompts will loose the first character of the prompt and bang commands will lose the first character of the commmand line.

If you use the "Ce.dfltPasteBuf" resource or the "-dpb" option to change the name of the default paste buffer in release 2.4., copy and paste operations using the default paste buffer will not work between 2.4 and 2.3.2 windows.

Changes from Release 2.3 to 2.3.2

This is a summary of changes from Ce release 2.3 to 2.3.2. It also includes the changes between release 2.3 and 2.3.1. Releases 2.3.1 and 2.3.2 are maintenance releases. The primary changes deal with problems encountered with the license manager introduced in release 2.3. There are several minor bug fixes and two new resources.

Ce.envar: {y | n}
Release 2.3 introduced the ability to click on a file which contains environment variables and have those variables resolved before looking for the file name. In release 2.3.1, a resource was added to allow the processing of these names to be turned off.

Ce.LSHOST : <nodename>
Release 2.3.2 introduced the ability to specify a default value for the license server LSHOST environment variable as a resource. This allows the system administrator to specify it in the app-defaults/Ce file instead of having to put it in each user's .profile.

Stored cp commands:
If a key definition contains a 'cp' command (none of the default definitions do) and it is read from the .Cekeys file by release 2.3.1 of Ce or earlier, release 2.3.2 will not be able to extract it when starting up.

Changes from Release 2.1 to 2.3

This is a summary of changes from Ce release 2.1 to 2.3. It includes the changes between release 2.1 and 2.2.

New Ce Commands

Table D-5. New Ce Commands and Definitions

Command

Definitions

bell

Beep the bell

mouse

Disconnect Mouse and text cursors

rec

Command recording

title

Change Window Manager title

New Parameters to Existing Commands

Table D-6. New Parameters and Definitions

Command

Option

Definition

pn

-r

Replace target file name if it exists

tf

-p

Compress blanks before textflow

xc

-a

Append mode for copy buffers

vt

-auto

Switch to VT100 emulation mode as needed

New Run Time Options and "X" Resources

Table D-7. New Run Time Options and "X" Resources and Definitions

Option

Resource

Definition

-iconic

Ce.iconic

Start Ce as an Icon

-ls

ceterm.loginShell

ceterm.man

Cause .profile to be run during startup

Eat vt100 control sequences when not in vt100 mode

-readlock

Disable "ro" command for a ce session

-vt

ceterm.vt

Control vt100 emulation mode

Other Enhancements

Note to System Administrators (Installers)

The default key definitions in the "data" directory are now delivered in both Aegis and Unix regular expression mode. The Unix mode definitions are commented out. You may modify the data files to initially define the Unix mode definitions. See the keyCon help file for more information on doing this customization. If this change is made, you need to modify the "Ce.expr" line in the ".Xdefaults" file of the "data" directory to specify Unix mode expressions. The location of the data directory is set at install time.

The key definitions for "F2" through "F4", "^c", "^e", and "^p" have been updated in the "initial .Cekeys" file to remove the "-l" (local) option from the definition. You should make this change in your personal ".Cekeys" file. The "-l" option prevented copy and paste across windows from working.

For example:
OLD: kd F2 xc -l ke
kd F2S xc -l -r ke
NEW: kd F2 xc ke
kd F2S xc -r ke

In the files used by "ce_init" to build the ".Cekeys" files, alternate Unix mode definitions have been provided. These definitions are initially commented out. They can be updated by the user in their private ".Cekeys" file or by the system administrator in the master copies. In the "keydef" file (either ".Cekeys" or the master copy), find the line "Ce.expr". It will be in a comment line. Below it will be two key definitions. One is commented out with the string "#Unix expr". Delete this string and comment out the existing definition on the line above.

Incompatibilities Running Version 2.3 with Version 2.1

Several of the changes in release 2.3 make Ce not integrate properly with release 2.1. These changes are described here.