Category : OS/2 Files
Archive   : EMACS0.ZIP
Filename : EMACS.DOC

 
Output of file : EMACS.DOC contained in archive : EMACS0.ZIP
===============================================================================
emacs.doc GNU Emacs 18.58.3 for OS/2 2.0 03-May-1992
===============================================================================

Introduction
============

This archive contains GNU Emacs 18.58.3 for OS/2 2.0, containing
changes made by Eberhard Mattes based on the great OS/2 2.0 port
(18.58.1) of GNU Emacs by Joerg Viola. We chose to use the third part
of the version number for distinguishing between different versions of
the port, this number is not incremented each time a dumped version of
GNU Emacs is created.

GNU Emacs 18.58.3 for OS/2 uses emx 0.8d -- if you have an older
version of emx.dll, emxbind.exe and termcap.dat, replace them with the
files that come with GNU Emacs 18.58.3.

This version of GNU Emacs has been tested only with OS/2 2.0 6.307
(also known as GA version).


Distribution files
==================

The "GNU Emacs 18.58.3 for OS/2 2.0" distribution consists of the
following files:

emacs.doc this file (\emx\gnu\emacs.doc)
unzip.exe utility for unpacking ZIP files
emacs1.zip executable version of GNU Emacs, part 1
emacs2.zip executable version of GNU Emacs, part 2
emacsinf.zip additional info files
emacsman.zip documentation files
emacspat.zip patches
emacssrc.zip sources

A compiled version of GNU ls is provided in the \emacs\etc directory
(in elisp1.zip), it has been ported by Thorsten Ohl and Kai Uwe Rommel.


Installing GNU Emacs
====================

This section describes how to install the compiled version of GNU
Emacs on OS/2 2.0.

GNU Emacs is installed in the \emacs and \emx directories of a HPFS
drive.

- get lots of disk space on an HPFS partition. As this version of GNU
Emacs doesn't bother about 8.3 file names, you can't install it on a
FAT partition. However, you can edit files on FAT partitions.

- to install a base version of GNU Emacs, unpack the files
emacs1.zip and emacs2.zip by running

cd \
unzip -d emacs1
unzip -d emacs2

on an HPFS drive. Note that you cannot use PKUNZIP to unpack these
ZIP files.

- additionally, you can install the documentation files by unpacking
emacsman.zip:

cd \
unzip -d emacsman

- additionally, you can install additional info files by unpacking
emacsinf.zip:

cd \
unzip -d emacsinf

- set apropriate environment variables (put them in config.sys):

TERMCAP name of termcap file, defaults to
/emx/etc/termcap.dat

TERM name of terminal, possible values include rmono,
ansi-color-2 and ansi-color-3

SHELL name of the command processor, defaults to /bin/sh

EMACSLOADPATH path to Lisp library, defaults to /emacs/lisp

EMACSEXECPATH path to programs, defaults to /emacs/etc

SYSTEMNAME initializes system-name, defaults to my-system

HOME your homepath, replaces ~ in path names (that means,
your .emacs-file is searched there)

TMP directory for temporary files, default is current working
directory

PATH include \emacs\etc in your PATH (for ls)

Example:

set termcap=c:\emx\etc\termcap.dat
set term=rmono
set shell=c:\os2\cmd.exe
set emacsloadpath=c:\emacs\lisp
set emacsexecpath=c:\emacs\etc
set systemname=vergil
set home=c:\home
set tmp=d:\tmp

- compile the lisp files and create a preloaded version of GNU Emacs by
running

cd \emacs\src
lib
dump-emacs

- run GNU emacs by typing \emacs\src\xemacs

- you might want to add a program object for c:\emacs\src\xemacs to an
appropriate folder

- for best results, run xemacs from the drive where it is installed --
you can change the drive in GNU Emacs

- to change the cursor size, put

c:\emacs\etc\cursor -80 -100

into a batch file which runs xemacs.exe (unfortunately, cmd.exe
changes the cursor size when displaying a prompt). Negative cursor
command line arguments are percentages -- the above example makes
the cursor use the bottom 20% of the character cell


Text files vs. binary files
===========================

This port of GNU Emacs supports two types of files: binary files and
text files. As GNU Emacs is a text editor, you'll work with text files
most of the time. Therefore, you don't have to know the ugly details
unless you want to edit a binary file.

When reading a text file, each CR/LF pair is converted to a LF. If the
last character of the file is a Ctrl-Z, that character is removed.

When writing a text file, each LF is replaced with a CR/LF pair. A
Ctrl-Z is *not* appended as it has been obsolete for years.

No conversion is done when reading or writing a binary file.

Each buffer has a buffer-local variable file-type which has one of three
values:

nil the file type is unknown

"b" the file type is binary

"t" the file type is text

When creating a new buffer which does not visit a file, file-type is
assigned the current value of default-file-type. By default,
default-file-type is nil, that is, the file type for buffers which
don't visit a file is unknown.

When creating a new buffer which visits a file (by using find-file),
the buffer's file type is chosen by calling the
file-type-from-file-name function, which is defined in os2.el. This
function searches the list stored in the file-type-alist variable for
a regular expression matching the file name and returns the associated
file mode. If no entry of file-type-alist matches, the value of
default-file-type is returned unless it's nil. If default-file-type is
nil, "t" is returned. Summary: Binary mode is used if an entry (which
demands binary mode) of file-type-alist matches the file name or if
default-file-type is "b". Otherwise, text mode is used.

When writing a buffer to a file (save-buffer, write-region), the
buffer's file type is used for writing the file. If the file type of
the buffer is nil, file-type-from-file-name is called to choose an
appropriate file type depending on the name of the output file.

You can assign a new value to file-type by using the set-variable
command. default-file-type cannot be set with set-variable, you have
to use the setq Lisp function.

Reading and writing files in binary mode is usually only required
compiled Emacs Lisp files (.elc) files. Therefore, the initial value
of file-type-alist is

(("\\.elc$" . "b"))

If you want to automatically choose binary mode for other files, for
instance .exe and .dll files, put the following code in your .emacs file:

(setq file-type-alist (append file-type-alist
'(("\\.exe$" . "b") ("\\.dll$" . "b"))))

Note: if file-type is nil for a buffer and you write the buffer to a
file, file-type of that buffer is *not* changed. That is, when writing
to test.el, for instance, you'll get a text-mode file, when writing to
test.elc, for instance, you'll get a binary-mode file.

An additional argument has been added to the insert-file-contents
function to select the file type, see the documentation of that
function.


8-bit patches
=============

Keymaps now may contain up to 256 entries. Meta keys are prefixed with
Esc (?\e) instead of having bit 7 set. That is, putting a command on
key "\M-n" is no longer equivalent to putting a command on key "\en".
For intance, by using

(define-key global-map "\M-n" 'my-command)

you'll put my-command on character code 238, not on M-n. To put
my-command on M-n, use

(define-key global-map "\en" 'my-command)

gdb.el has been changed accordingly. Other Emacs lisp code has to be
changed if it refers to \M-anything.

Also be aware of conversion to lower case, if a key is undefined. For
instance, code 146 (222 octal) is translated to 145 (221 octal) by
conversion to lower case. For instance, if a keymap defines code 145
but does not define code 146, the command is performed for _both_
codes! That is, when defining C-DOWN, but leaving C-INSERT undefined,
both C-DOWN and C-INSERT will perform the same command.


TeX mode
========

tex-mode.el has been modified for OS/2 and emTeX. tex-mode.el still
needs improvement.

To use TeX mode, assign the name of an existing scratch directory to
the TeX-directory variable and choose a command for printing DVI
files. You can do this by putting

(setq TeX-mode-hook '(lambda ()
(setq TeX-directory "c:/textmp/")
(setq TeX-dvi-print-command "prtfx")))

into your .emacs file (replace "c:/textmp/" with the name of an
existing scratch directory, replace "prtfx" with the name of the
command to print DVI files.)

Use "start /c vp ..." to run dvipm and ignore the "Stack overflow"
message. You might want to use "start /c vp" as TeX-dvi-print-command.

Using "start /c" is also useful for other print commands.


Limitations
===========

- When using compiled Emacs Lisp files (.elc) transferred from other
systems (such as UNIX), be sure to use binary transfer. Better get
the uncompiled versions (.el) and recompile them with the
byte-compile-file function.

- Sending SIGKILL to subprocesses doesn't work -- it kills env.exe and
keeps the subprocess. SIGINT works only for emx programs. This is an
OS/2 limitation.

- Tracking of the current directory in shell mode doesn't work
correctly. This could be fixed by looking at the prompt (if its
format is acceptable).

- Drive names still don't work perfectly.

- Emacs doesn't recognize the death of a subprocess if you've run a
subprocess in Emacs, left Emacs and restarted Emacs in the same
session (window). This is an OS/2 bug.

- etags: Mysteriously you have to use the -e option to get GNU Emacs
understand the tags file:

etags -e -f test.tags test.c test.h

creates a tags file test.tags which you can use from within Emacs.
Type M-., and you will be prompted for the needed information.


Building Emacs from the original FSF distribution
=================================================

This section describes how to compile GNU Emacs for OS/2 2.0, using
the original distribution of GNU Emacs and the patches for OS/2 2.0.

- get lots of disk space (22 MB required for building GNU Emacs) on an
HPFS partition

- get the original GNU Emacs 18.58 distribution (emacs-18.58.tar.Z) and
rename the file emacs58.Z

- get GNU patch for OS/2, GNU tar for OS/2 and GNU compress for OS/2 (all
these programs have been ported to OS/2 by Kai Uwe Rommel)

- get emx 0.8d, available for anonymous ftp on rusinfo.rus.uni-stuttgart.de,
in the directory soft/os2/emx

- get GNU make for OS/2 (ported by Galen C. Hunt), available for anonymous
ftp on hobbes.nmsu.edu (gnumk362.zoo)

- unpack the archive:

cd \
unzip -d wherever\emacs-em

- change the path name of patch.exe in emacs-emx.cmd (to avoid running
the OS/2 patch utility)

- now you can run emacs-emx.cmd to unpack and patch the sources.
Change to the \emx\gnu directory. This batch files has multiple
entry points, which are selected by the first command line argument:

- emacs-emx disk1 copy from diskette, concatenate, uncompress,
unpack, configure and patch

- emacs-emx cat concatenate files copied from diskette,
uncompress, unpack, configure and patch

- emacs-emx uncompress uncompress emacs58.Z (yields emacs58.tar),
unpack, configure and patch

- emacs-emx tar unpack (using GNU tar), configure and patch

- emacs-emx 8bit apply 8-bit patches, configure and apply
other patches

- emacs-emx config configure the sources (by copying, renaming
and deleting files) and apply the OS/2 patches

- emacs-emx patch apply the OS/2 patches

Unless a second command line argument is given, all the sections of
the batch files are executed, starting with the one named on the
command line. A second command line argument tells emacs-emx to stop
after the named section. Also available is the second command line
argument no-patch, which stops just before the patch step (this is
used for making a diff file).

- that is, if you have emacs58.tar, run "emacs-emx tar"; if you have
emacs58.Z, run "emacs-emx uncompress", if you have the tar.Z file
split on diskettes, run "emacs-emx disk1"; and so on. Example:

cd \emx\gnu
emacs-emx tar

- you're allowed to delete all the *.orig files. When using 4OS2, type

cd \emx\gnu
del emacs-18.58\*.orig /s

- if there are any *.rej files, you lose. Type

cd \emx\gnu
dir emacs-18.58\*.rej /s

to find out

- move the directory by typing

cd \emx\gnu
move emacs-18.58 \emacs

- if you're short of disk space, delete emacs58.tar

- continue with section "Compiling GNU Emacs"


Building GNU Emacs from the patched sources
===========================================

This section describes how to build GNU Emacs from the patched sources
that come with GNU Emacs for OS/2 2.0.

- get lots of disk space (22 MB required for building GNU Emacs) on an
HPFS partition

- get emx 0.8d, available for anonymous ftp on rusinfo.rus.uni-stuttgart.de,
in the directory soft/os2/emx

- get GNU make for OS/2 (ported by Galen C. Hunt), available for anonymous
ftp on hobbes.nmsu.edu (gnumk362.zoo)

- Continue with the next section


Compiling GNU Emacs
===================

This section describes how to compile GNU Emacs.

- if emx is installed on a different drive, use

set emxopt=-rc

now, where c is the drive letter for the drive on which emx is
installed

- create makefile, if it doesn't exist or if you've changed ymakefile:

cd \emacs\src
copy ymakefile junk.c
gcc -E -o makefile junk.c
del junk.c

- compile GNU emacs by typing

cd \emacs\etc
make
cd \emacs\src
make temacs.exe

- ignore "Can't create xxxx!!!" messages while running make in
\emacs\etc

- set apropriate environment variables (put them in config.sys):

TERMCAP name of termcap file, defaults to
/emx/etc/termcap.dat

TERM name of terminal, possible values include rmono,
ansi-color-2 and ansi-color-3

SHELL name of the command processor, defaults to /bin/sh

EMACSLOADPATH path to Lisp library, defaults to /emacs/lisp

EMACSEXECPATH path to programs, defaults to /emacs/etc

SYSTEMNAME initializes system-name, defaults to my-system

HOME your homepath, replaces ~ in path names (that means,
your .emacs-file is searched there)

TMP directory for temporary files, default is current working
directory

Example:

set termcap=c:\emx\etc\termcap.dat
set term=mono
set shell=c:\os2\cmd.exe
set emacsloadpath=c:\emacs\lisp
set emacsexecpath=c:\emacs\etc
set systemname=vergil
set home=c:\home
set tmp=d:\tmp

- if the EMXOPT environment variable has been set (see above), unset
it now:

set emxopt=

- compile the lisp files, create documentation and create a preloaded
version of GNU Emacs by running

cd \emacs\src
lib
doc
dump-emacs


History
=======

These are the changes to the 2nd version of Joerg Viola's port:
---------------------------------------------------------------

- better 8-bit support (code page 850 is assumed)

- recognize size of window

- treat ~user/ like ~/

- keyboard problems fixed, more PC keys defined

- file name problems fixed

- show the real names of the PC keys

- new function: valid-file-name-p

- random fixed (library function fixed)

- when reading a file, Emacs now longer stops at the first Ctrl-Z.
CR/LF is converted to LF, a CR without a LF is not removed

- default system name changed

- choose better backup and auto-save file names on FAT partitions

These are the changes done in the 03-May-1992 version (18.58.3):
----------------------------------------------------------------

- bug fixed: CR/LF at a 64KB boundary in an input files was replaced
with CR instead of LF

- the final Ctrl-Z of text files is removed

- binary-mode files implemented (see above for details)

- file-name-absolute-p knows about drive names

- insert-file-contents: third argument is file type

- find-file-noselect sets file-type

- synchronous and asynchronous subprocesses

- wakeup.exe now available (display-time)

- emacsclient.exe now available

- shell.el changed to work better with OS/2

- tex-mode.el adapted to emTeX

- uncompress.el changed to make it also work with .z (this version of
Emacs converts file names to lower case) and to use binary mode for
the .Z file

- dired now available (you need an OS/2 port of ls)

- attention: A-c is now em-copy-region; em-copy-line-as-kill (formerly
em-copy-line) has been moved to A-l

- attention: set-mark-command has been moved from F10 to F12

- a new function for filling paragraphs, em-fill-paragraph, is bound
to F5

- user-real-login-name now returns the same value as user-login-name

- make-legal-file-name fixed (return a new string)

- make-temp-name truncates the (base name of the) prefix to two
characters to avoid problems with FAT file system

- gdb.el changed to work with 8-bit patches and to use a different
syntax for passing file name and line number information from GDB to
Emacs.


Who?
====

Joerg Viola
Potstiege 7
D-4400 Muenster
Germany
Internet: [email protected]
or: [email protected] (takes long)

Eberhard Mattes
Teckstr. 81
D-7141 Moeglingen
Germany
Internet: [email protected]

An emx-related mailing list has been created. The address for people
to request to be added or removed from the list is:

[email protected]

As there is currently no GNU Emacs for OS/2 related mailing list, you
should use the emx mailing list.

No telephone calls please! Include return postage (international
postal reply coupons for those outside Germany) and a self-addressed
envelope if you expext a reply. GNU Emacs for OS/2 is not available on
diskettes from the addresses given above.

No warranty.

---------------------------------- END ---------------------------------------


  3 Responses to “Category : OS/2 Files
Archive   : EMACS0.ZIP
Filename : EMACS.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/