Comments on FilePro installation and Linux xterm (mis)handling.
Bill Campbell
bill at celestial.com
Thu Mar 18 21:36:55 PDT 2010
I have been preparing to help move several FilePro systems from
SCO OpenServer to Linux, so installed FP 5.6.0 on one of our
CentOS 5 machines here to get myself back up to speed on this
after several years of being away from direct FilePro usage.
I have to say that I am singularly unimpressed with the
installation procedure which seems hardly changed from the days
when John Esak was the Small Computer Company in D.C. over 20
years ago. The terminal handling for the standard Linux xterm,
which used to work, doesn't display the borders properly, sending
incorrect codes to the screen, not what is in the pf/termcap.
Here are my first impressions during the install (first as it's
been long enough since I last did this that I had to figure it
out again when starting from a tarball).
There is no README or INSTALL file in the base directory with
instructions on how to install the software. I had to poke
around in the top level directory to figure out what to do.
The name of the installation script, finish, is dumb. This
should be install.sh or something obvious. True enough the the
FilePro install has, to the best of my recollection, used this
same name forever, but at least have a README to say so.
The installation script appears to look for the less pager, but
should honor the PAGER environment variable instead of using
``pg'' or whatever.
The installation script ignores the user's PATH environment
variable, complaining the the specified location for the ``pf''
startup script isn't in the PATH although it definately is.
There should be some obvious way to specify the license file at
the time of the installation.
The installation and pf scripts should return the display to the
original settings, not leave it in black background with white
foreground. I think this has been covered ad nauseum on this
list, and I would think by this time it should be fixed.
The TERMCAP handling is horrible with garbage line drawing
graphics. This is fundamentally broken, sending ESC[46m, a bunch
of non-ascii character, then ESC[10m instead of the proper codes
for graphics, ESC[0mlqqqqqqqqq...qqkESC(B for the top border
(these taken from the output of the ``script'' command running
``pf'' and a python curses application with a similar border). I
can't figure out where the ESC[46m comes from as it's not in
either the pf/termcap or /etc/termcap files.
I checked the runmenu program with ldd to be sure that the
problems are not related to shared library differences.
I am attaching a comparison of the pf/termcap, /etc/termcap, and
our local termcap file which we normally put in the TERMCAP
environment variable. I have ignored the terminal initialization
string, ``is'' to keep the column width down, but they are the
same on pf/termcap and ours. The left column is the termcap
code, the second the pf/termcap, the third is /etc/termcap from
the CentOS 5 system, and the fourth the one we have been using
for over a decade.
Finally, the FilePro program ignores the COLUMNS and LINES
environment variables so don't adjust the display size to resized
xterm windows.
In summary, there are several things that could/should be done to
the installation script to (a) make them easier to understand for
the average person, and (b) recognize user defined environment
variables, (particularly PAGER and PATH). The termcap handling
appears to be getting its information for the line-drawing
characters someplace other than the termcap file.
The TERMCAP environment variable set in the pf startup script
should refer to the installer's prefered termcap, with perhaps a
second environment variable to point to the pf/termcap file. Any
termcap customization should be done, not by editing the
/etc/termcap file, but in a separate file that won't be changed
by the vendor's update procedures with the TERMCAP environment
variable referring to the customized file. FilePro used to do
this, first using /etc/termcap or the TERMCAP file, then adding
the definitions from the pf/termcap file (mostly HELP labels for
FilePro's special function keys).
I think a major reason for this two-step processing was the 1024
character limit on termcap entries.
Bill
--
INTERNET: bill at celestial.com Bill Campbell; Celestial Software LLC
URL: http://www.celestial.com/ PO Box 820; 6641 E. Mercer Way
Voice: (206) 236-1676 Mercer Island, WA 98040-0820
Fax: (206) 232-9186 Skype: jwccsllc (206) 855-5792
A perpetual and unlimited debt represents deficit spending as a social
principle. It means a progressive redistribution of wealth by will of
government until there is no more fat to divide; after that comes a level
rationing of the national income. It means in the end the cheapening
of money and then inflation, whereby the middle class is economically
murdered in its sleep. In the arsenal of revolution the perfect weapon
is inflation. -- Garet Garrett, The Revolution Was
-------------- next part --------------
term = xterm
CD pf/termcap /tmp/centos /csoft/etc/termcap Description
ae ^O \E(B ^O end alternate character set
al \E[L \E[L \E[L add (insert) blank line
AL \E[%dL \E[%dL \E[%dL Multiplan sent by ALTERNATE Key
am True True True automatic margins
as ^N \E(0 ^N start alternate character set
bc \E[1D None \E[1D backspace if not ^H
bl None ^G None bell
bs None True None ^h does backspace
bt None \E[Z None back tab
cd \E[J \E[J \E[J clear to end of display
ce \E[K \E[K \E[K clear to end of line
ch None \E[%i%dG None like cm but horizontal motion only
cl \E[H\E[2J \E[H\E[2J \E[H\E[2J clear screen
cm \E[%i%d;%dH \E[%i%d;%dH \E[%i%d;%dH cursor motion
co 80 80 80 number of columns in a line
cr None ^M None carriage return
cs \E[%i%d;%dr \E[%i%d;%dr \E[%i%d;%dr change scrolling region (vt100)
ct \E[3g \E[3g \E[3g clear tabs
cv None \E[%i%dd None like ch but vertical only
dc \E[P \E[P \E[P delete character
dl \E[M \E[M \E[M delete line
DL \E[%dM \E[%dM \E[%dM Multiplan sent by DELETE key
do None ^J None down one line
ec None \E[%dX None erase character
ei None \E[4l None end insert mode
EN None None \E[7~ Xenix Sent by END Key
G1 None None k Xenix Upper-Right Corner Character
G2 None None l Xenix Upper-Left Corner Character
G3 None None m Xenix Lower-Left Corner Character
G4 None None j Xenix Lower-Right Corner Character
GC None None n Xenix Center Graphics (+) Character
GD None None w Xenix Down Tick Character
ge m None None UNIFY Lower left square corner
GE None None \E(B Xenix Graphics Mode End
gf l None None UNIFY Upper left square corner
gg k None None UNIFY Upper right square corner
gh j None None UNIFY Lower right square corner
GH None None q Xenix Horizontal bar Character
gi n None None UNIFY + intersection
gj x None None UNIFY vertical bar
gk q None None UNIFY Horizontal bar
gl u None None UNIFY --| intersection
GL None None u Xenix Left Tick Character
gm t None None UNIFY |-- intersection
gn w None None generic line type (eg, dialup)
gn w None None UNIFY T intersection
go v None None UNIFY _|_ intersection
GR None None t Xenix Right Tick Character
gs \E(0 None None UNIFY start graphics mode
GS None None \E(0 Xenix Graphics Mode Start
GU None None v Xenix Up-Tick Character
GV None None x Xenix Vertical Bar Character
gx \E(B None None UNIFY exit graphics mode
ho \E[H \E[H \E[H home cursor (if not cm)
ic \E[@ None \E[@ insert character
im None \E[4h None insert mode (enter)
it None 8 None initial tabs every n spaces
k0 \EOP None \E[21~ sent by other function key 0
k1 \EOQ None \E[11~ sent by other function key 1
k2 \EOR None \E[12~ sent by other function key 2
k3 \EOS None \E[13~ sent by other function key 3
k4 \E[15~ None \E[14~ sent by other function key 4
k5 \E[17~ None \E[15~ sent by other function key 5
k6 \E[18~ None \E[17~ sent by other function key 6
k7 \E[19~ None \E[18~ sent by other function key 7
k8 \E[20~ None \E[19~ sent by other function key 8
k9 \E[21~ None \E[20~ sent by other function key 9
kb \b \177 \b sent by backspace key
kB None \E[Z None sent by reverse-tab key
kD None \E[3~ None sent by delete-character key
ku \E[A \EOA \E[A sent by terminal up arrow key
kd \E[B \EOB \E[B sent by terminal down arrow key
kl \E[D \EOD \E[D sent by terminal left arrow key
kr \E[C \EOC \E[C sent by terminal right arrow key
ke None \E[?1l\E> None out of keypad-transmit mode
kF None \E[1;2B None sent by scroll-forward/down key
kh None \EOH \E[8~ sent by home key
kI None \E[2~ None sent by ins-char/enter-ins-mode key
km True True True has meta-shift key
kN None \E[6~ None sent by next-page key
kP None \E[5~ None sent by previous-page key
kR None \E[1;2A None sent by scroll-backward/up key
ks None \E[?1h\E= None put terminl in keypad-transmit mode
le None ^H None cursor left
LE \E[%dD \E[%dD \E[%dD FILEPRO-16 dprt Display Print Codes
li 24 24 24 number of lines on screen or page
mb None \E[5m None enter blink enhance
md None \E[1m None enter bold mode
me None \E[0m None exit attribute mode (normal mode)
mi True True True safe to move while in insert mode
mk None \E[8m None enter blank enhance
ml None \El None memory lock on above cursor
mr None \E[7m None enter reverse enhance
ms True True True safe to move while in so & ul mode
mu None \Em None memory unlock (turnoff memory lock)
nd \E[C \E[C \E[C nondestructive space (cursor right)
P0 \E[2~ None None FILEPRO-16 insc Insert Character
P1 ^? None None FILEPRO-16 delc Delete Character
P2 \E[7~ None None FILEPRO-16 insl Insert Line
P3 \E[P None None FILEPRO-16 dell Delete Line
P4 \E[6~ None None FILEPRO-16 save record [ESC] [ESC]
PD None None \E[6~ Multiplan sent by PAGE DOWN key
pf None \E[4i None turn off the printer
po None \E[5i None turn on the printer
ps None \E[i None UNIFY Start Protect, print screen
pt True None True has hardware tabs
PU None None \E[5~ Multiplan sent by PAGE UP key
rc \E8 \E8 \E8 restore cursor to positn of last sc
SA None \E[?7h None Printer, Standard 10 Pitch
sc \E7 \E7 \E7 save cursor position
se \E[m \E[27m \E[m end stand out mode
sf None ^J None scroll forwards
so \E[7m \E[7m \E[7m begin stand out mode
sr \EM \EM \EM scroll reverse (backwards)
st \EH \EH \EH set a tab in current column
ta None ^I None tab
tc None xterm-new None goto terminal - must be last
te None \E[?1049l \E[2J\E[?47l\E8 string to end programs that use cm
ti None \E[?1049h \E7\E[?47h string to begin progs that use cm
ue \E[m \E[24m \E[m end underscore mode
UP \E[%dA \E[%dA \E[%dA Sent by Up-Arrow (alt to ku)
up \E[A \E[A \E[A upline (cursor up)
us \E[4m \E[4m \E[4m start underscore mode
vb None \E[?5h\E[?5l None visible bell (may not move cursor)
ve None \E[?12l\E[?25h None sequence to end open/visual mode
vi None \E[?25l None put terminal in visual mode
vs None \E[?12;25h None sequence to start open/visual mode
xn True True True newline ignord after wrap (Concept)
More information about the Filepro-list
mailing list