home *** CD-ROM | disk | FTP | other *** search
/ IBM Presents OS/2 Software Hits 1995 / OS-2_SW_HITS_2ND_EDITION_1995.ISO / i12 / readme.e27 < prev    next >
Text File  |  1994-10-02  |  61KB  |  1,660 lines

  1. ===============================================================================
  2. GNU Emacs 19.27.1 for emx (OS/2 2.0 and 2.1)                        16-Sep-1994
  3. ===============================================================================
  4.  
  5. Introduction
  6. ============
  7.  
  8. This is GNU Emacs 19.27 for emx on OS/2 2.0 or 2.1.  The port was done
  9. by Eberhard Mattes based on ideas of the port of GNU Emacs for OS/2
  10. done by Jörg Viola.  This port of GNU Emacs also works with emx on
  11. MS-DOS, but that hasn't been tested.
  12.  
  13. See \emacs\19.27\etc\FAQ for a list of frequently asked questions with
  14. answers for GNU Emacs.  That file is contained in e27more.zip.
  15. However, etc/FAQ is somewhat out of date.
  16.  
  17. See \emacs\19.27\emx\FAQ for a list of frequently asked questions with
  18. answers specific to this port of GNU Emacs.  That file is contained in
  19. e27min.zip.
  20.  
  21. GNU Emacs is free software.  See \emacs\19.27\etc\COPYING for details.
  22. Note that you are not allowed to distribute GNU Emacs without source
  23. code.
  24.  
  25.  
  26. Distribution files
  27. ==================
  28.  
  29. The "GNU Emacs 19.27 for emx" distribution consists of the following
  30. files:
  31.  
  32.   README                this file (/emacs/19.27/emx/README)
  33.   e27el1.zip            Emacs Lisp files (source), part 1
  34.   e27el2.zip            Emacs Lisp files (source), part 2
  35.   e27info.zip           info files (on-line help)
  36.   e27lib1.zip           Emacs Lisp library (base set, compiled)
  37.   e27lib2.zip           Emacs Lisp library (remaining files, compiled)
  38.   e27man.zip            documentation files (mostly for TeX)
  39.   e27min.zip            minimal set of files for running GNU Emacs
  40.   e27more.zip           additional files
  41.   e27rest.zip           remaining files
  42.   e27src.zip            sources
  43.  
  44. The "27" in e27*.zip is the minor version number.  For example,
  45. e83*.zip will be used for Emacs 19.83.
  46.  
  47.  
  48. Other files of interest
  49. =======================
  50.  
  51. GNU Emacs 19.27 for emx requires emx 0.8h or later -- if you have an
  52. older version of emx.dll, emxbind.exe, and termcap.dat, get emxrt.zip
  53. from
  54.  
  55.   ftp.uni-stuttgart.de [129.69.18.15]: /pub/systems/os2/emx-0.8h
  56.   ftp-os2.cdrom.com:  [192.153.46.2]:  /os2/2_x/unix/emx08h
  57.   src.doc.ic.ac.uk     [146.169.2.1]:  /packages/os2/2_x/unix/emx08h
  58.   ftp.informatik.tu-muenchen.de [131.159.0.198]:
  59.                                        /pub/comp/os/os2/gnu/emx+gcc
  60.  
  61. Also get the latest emxfix??.zip (only the latest one is required).
  62.  
  63. You might want to also get the following files:
  64.  
  65.   ftp-os2.cdrom.com:             os2/all/graphics/smallfnt.zip
  66.   ftp-os2.cdrom.com:             os2/all/graphics/small.zip
  67.   ftp-os2.cdrom.com:             os2/all/unix/shells/ms_sh23b.zip
  68.   ftp-os2.cdrom.com:             os2/2_x/unix/shells/bash.zip
  69.   ftp-os2.cdrom.com:             os2/2_x/unix/unixutils/isp3009b.zip
  70.   ftp.informatik.tu-muenchen.de: pub/comp/os/os2/gnu/systools/gnufutil.zip
  71.   prep.ai.mit.edu:               pub/gnu/elisp-manual-19-2.3.tar.gz
  72.  
  73. smallfnt.zip or small.zip contains a small fixed-width bitmapped font
  74. for the Presentation Manager.  See below on how to fix a bug of
  75. smallfnt.zip (small.zip is a fixed version).
  76.  
  77. ms_sh23b.zip contains the Data Logic shell, a Unix-like shell.
  78. bash.zip contains bash, another Unix-like shell.
  79.  
  80. isp3009b.zip contains Ispell, a spelling checker, which can be used
  81. with GNU Emacs.
  82.  
  83. gnufutil.zip contains the GNU file utilities.  ls.exe is required for
  84. dired and for recover-file.
  85.  
  86. elisp-manual-19-2.3.tar.gz contains the Emacs Lisp documentation.
  87.  
  88.  
  89. Installing the emx runtime package
  90. ==================================
  91.  
  92. Install the emx runtime package emxrt.zip (version 0.8h or later) if
  93. not already installed.  First, unpack the files of the emx runtime
  94. package to your hard disk:
  95.  
  96.   cd \
  97.   unzip a:emxrt
  98.  
  99. Installation of the emx runtime package involves changing the LIBPATH
  100. statement of your config.sys file and setting the following
  101. environment variables in config.sys:
  102.  
  103.   TERMCAP  name of termcap file, defaults to /emx/etc/termcap.dat
  104.  
  105.   TERM     name of the terminal, possible values include rmono,
  106.            ansi-color-2, and ansi-color-3
  107.  
  108.   PATH     include \emx\bin in your PATH
  109.  
  110. Example (the emx runtime package is installed on drive C):
  111.  
  112.   LIBPATH=C:\OS2\DLL;[...];c:\emx\dll
  113.   SET PATH=C:\OS2;C:\OS2\SYSTEM;[...];c:\emx\bin
  114.   SET TERMCAP=c:/emx/etc/termcap.dat
  115.   SET TERM=ansi-color-3
  116.  
  117. See \emx\doc\emxrt.doc and \emx\book\emxrt.inf for details on
  118. installing the emx runtime package.
  119.  
  120.  
  121. Installing GNU Emacs
  122. ====================
  123.  
  124. This section describes how to install the compiled version of GNU
  125. Emacs 19.27 for emx on OS/2 2.0 and 2.1.
  126.  
  127. GNU Emacs is installed in the \emacs directory of an HPFS drive.
  128.  
  129. 1.  Get lots of disk space on an HPFS partition.  As this version of
  130.     GNU Emacs doesn't bother about 8.3 file names, you can't install
  131.     it on a FAT partition.  (Well, probably you can, but it has not
  132.     been tested.)  However, you can edit files on FAT partitions.
  133.  
  134.     If you haven't installed the REXX component of OS/2, you may want
  135.     to install it now.  REXX is required by instemacs.cmd.
  136.  
  137. 2.  Set appropriate environment variables (set them in config.sys):
  138.  
  139.       SHELL          name of the command processor, defaults to
  140.                      /bin/sh.  If you have a Unix-like shell (such as
  141.                      bash or the Data Logic shell), you should use the
  142.                      pathname of that shell.  Otherwise, use the path
  143.                      name of cmd.exe
  144.  
  145.       SYSTEMNAME     initializes system-name, the name of the
  146.                      machine.  The default value is "my-system"
  147.  
  148.       HOME           the pathname of your home directory, replaces ~
  149.                      in pathnames.  Emacs tries to load .emacs, for
  150.                      instance, from that directory
  151.  
  152.       TMP            directory for temporary files.  The default is
  153.                      the current working directory
  154.  
  155.       TMPDIR         another directory for temporary files.  The ediff
  156.                      packages uses this; the directory must be on an
  157.                      HPFS drive for ediff
  158.  
  159.     Example (Emacs will be installed on drive C):
  160.  
  161.       SET PATH=C:\OS2;[...];C:\EMACS\19.27\BIN
  162.       SET SHELL=c:/bin/bash.exe
  163.       SET SYSTEMNAME=vergil
  164.       SET HOME=c:/home
  165.       SET TMP=c:/tmp
  166.       SET TMPDIR=c:/tmp
  167.  
  168.     Note that EMACSLOADPATH, EMACSDATA, EMACSPATH, and INFOPATH are no
  169.     longer required -- please delete them unless you want to override
  170.     or supplement the default directories, or put emacs.exe into a
  171.     directory not related to the Emacs directory hierarchy.  The
  172.     default directories are now relative to the directory from which
  173.     emacs.exe is run.
  174.  
  175. 3.  Reboot your computer to activate the new config.sys settings.
  176.  
  177. 4.  To install a minimal version of GNU Emacs, change to the target
  178.     drive (which should be formatted with HPFS) and unpack the file
  179.     e27min.zip by typing
  180.  
  181.       cd \
  182.       unzip a:e27min
  183.  
  184.     Note that you cannot use PKUNZIP to unpack the ZIP files.
  185.  
  186. 5.  Create a preloaded version of GNU Emacs by typing
  187.  
  188.       cd \emacs\19.27\bin
  189.       dump
  190.  
  191.     Required disk space: 5 MByte, total.  In case you are short of disk
  192.     space, you can delete the files \emacs\19.27\bin\temacs and
  193.     \emacs\19.27\etc\DOC now.  If you want to dump Emacs again,
  194.     restore these files from e27min.zip.
  195.  
  196. 6.  Now you can run GNU Emacs by typing
  197.  
  198.       emacs                   (run Emacs in text mode)
  199.       emacs -d                (run Emacs in PM mode)
  200.  
  201. 7.  The minimal version of GNU Emacs installed now is hardly usable.
  202.     For instance, there is no on-line help.  You should install
  203.     additional files:
  204.  
  205.       cd \
  206.       unzip a:e27lib1
  207.       unzip a:e27more
  208.       unzip a:e27info
  209.  
  210.     Required disk space: 10.5 MByte, total.  You can save some disk
  211.     space by compressing all files but `dir' in \emacs\19.27\info with
  212.     `compress' or `gzip'.
  213.  
  214. 8.  To unpack all the .el files, type
  215.  
  216.       cd \
  217.       unzip a:e27el1
  218.       unzip a:e27el2
  219.  
  220.     For running GNU Emacs, only the compiled (.elc) files are
  221.     required. You need the .el files if you need documentation about
  222.     the various Emacs Lisp packages or want to change them.  Required
  223.     disk space: 18 Mbyte, total.
  224.  
  225.     Additional files are packaged in the remaining ZIP files:
  226.  
  227.       cd \
  228.       unzip a:e27lib2
  229.       unzip a:e27rest
  230.       unzip a:e27man
  231.  
  232.     These files are usually not required for running GNU Emacs under
  233.     emx.  Required disk space: 23 MByte, total.
  234.  
  235. 9.  You might want to add program objects for the programs
  236.  
  237.       c:\emacs\19.27\bin\emacs.exe
  238.       c:\emacs\19.27\bin\emacsclient.exe
  239.  
  240.     to an appropriate folder.  There is a REXX program called
  241.     instemacs.cmd to do this for you.  Type
  242.  
  243.       instemacs
  244.  
  245.     to get a list of options.  To simply create the program objects,
  246.     type
  247.  
  248.       instemacs install
  249.  
  250.     This creates a folder called "New Things" on your desktop which
  251.     contains the new objects.  If you would like to create a shadow of
  252.     Emacs in your startup folder, you can additionally use the
  253.     "startup" option.  To automatically associate Emacsclient with
  254.     plain text files, use the "associate" option.  instemacs.cmd will
  255.     copy the current associatations of the OS/2 System Editor for
  256.     Emacsclient.  For Emacsclient to work, an instance of Emacs must
  257.     be running and the server must be active.  You will probably want
  258.     to put the line
  259.  
  260.       (server-start)
  261.  
  262.     in your site-start.el file (see below) and use the "startup"
  263.     option.
  264.  
  265.     In a standard OS/2 installation, the OS/2 System Editor is
  266.     automatically associated with text files so that double clicking a
  267.     text file opens the System Editor.  You can specify the
  268.     "makedefault" option when calling instemacs.cmd to make
  269.     Emacsclient the default "view" for text files.
  270.  
  271.     NOTE: The "makedefault" option of instemacs.cmd manipulates the
  272.     Workplace Shell associations in an undocumented way by directly
  273.     accessing certain values in OS2.INI.  This has only been tested
  274.     under OS/2 2.1 GA (US version).  There is no guarantee that this
  275.     will work on any other version of OS/2.  But then there is no
  276.     guarantee that any of the programs in this package will work at
  277.     all, anyway :-).
  278.  
  279.     Note that instemacs.cmd creates the program objects in such a way
  280.     that emacs.exe is started as a Presentation Manager program,
  281.     although it is actually a text mode program.  This is because
  282.     emacs.exe actually calls pmemacs.exe to provide the PM interface.
  283.     If emacs.exe were started as a text mode program, it would have
  284.     its own VIO window, which is usually useless.
  285.  
  286.     Starting emacs.exe as a PM program has two known disadvantages:
  287.  
  288.     (a)  You don't see the standard output of emacs.exe.  If Emacs
  289.          crashes for any reason, you won't see any diagnostics or
  290.          error messages and you can't tell Emacs to auto-save (if it
  291.          happens to ask).
  292.  
  293.     (b)  If you double click on the Emacs object when Emacs is already
  294.          running and a session bond between emacs.exe and pmemacs.exe
  295.          has not been established (see pm-session-bond below), you
  296.          will not bring the Emacs window to the foreground but
  297.          something else, usually the Window List.  Double clicking on
  298.          Emacs in the Window List works, of course.
  299.  
  300.     If you feel you would like a more conventional program object for
  301.     Emacs, you can use the "keepvio" option of instemacs.cmd.  This
  302.     causes the Emacs object to start emacs.exe in a minimized VIO
  303.     window.  This solves problem (a) and changes problem (b) to the
  304.     problem (b') that double clicking on the Emacs object shows the VIO
  305.     window of emacs.exe, not the PM Window you are really interested
  306.     in.
  307.  
  308.     If all this sounds too complicated to you, simply try
  309.     instemacs.cmd with and without the "keepvio" option and see which
  310.     way you like it better.  Calling instemacs.cmd again does not
  311.     create new objects but updates the existing objects according to
  312.     the options.  You can also use this feature if you accidentally
  313.     change the settings of the Emacs object or lose the icon.
  314.  
  315.  
  316. Customizing GNU Emacs
  317. =====================
  318.  
  319. You should customize \emacs\19.27\lisp\site-start.el, the startup file
  320. of GNU Emacs.  The statements in that file are executed automatically
  321. each time GNU Emacs is started.  Moreover, you can put personal
  322. settings into a file named .emacs file in your home directory (set by
  323. the HOME environment variable).
  324.  
  325. Sample site-start.el file:
  326.  
  327. ---------------------------------------------------------------------
  328. (set-input-mode nil nil 1)                            ; [1]
  329. (setq default-frame-alist                             ; [2]
  330.       (append '((altgr-modifier . meta))
  331.               default-frame-alist))
  332. (standard-display-8bit 128 254)                       ; [3]
  333. (aset standard-display-table 256 16)                  ; [4]
  334. (aset standard-display-table 257 31)
  335. (aset standard-display-table 259 24)
  336. (add-hook 'server-request-hook                        ; [5]
  337.           '(lambda ()
  338.              (make-frame-visible)
  339.              (focus-frame (selected-frame))))
  340. (add-hook 'dired-load-hook 'emx-dired-kur-ls-setup)   ; [6]
  341.  
  342. (autoload 'os2help "os2help" "OS/2 on-line help" t)   ; [7]
  343. (setq os2help "/emx/book/emxdoc.ndx")
  344. (global-set-key [C-f1] 'os2help)
  345.  
  346. (if window-system
  347.     (progn
  348.       (pm-edit-menu)                                  ; [8]
  349.       (pm-file-menu)                                  ; [9]
  350.       ;;(remove-from-window-list)                     ; [10]
  351.       (pm-session-bond t)                             ; [11]
  352.       (set-face-background 'modeline "red")           ; [12]
  353.       (set-face-foreground 'modeline "yellow")
  354.       (make-face 'info-node)                          ; [13]
  355.       (copy-face 'bold 'info-node)))
  356. ---------------------------------------------------------------------
  357.  
  358. Notes:
  359.  
  360. [1]   Enable 8-bit input.  set-input-mode must be called when running
  361.       Emacs -- calling it before dumping doesn't work
  362.  
  363. [2]   Use the right ALT key of non-US keyboards as META key.  This
  364.       does not work for all key combinations.  Note that the right ALT
  365.       key of US keyboards is equivalent to the left ALT key.  Add new
  366.       parameters to the front of the list
  367.  
  368. [3]   Display characters 128 through 254 as-is.  Without this
  369.       statement, octal notation is used for these characters
  370.  
  371. [4]   Use special symbols (which are not displayed as-is when
  372.       occurring in a buffer) for truncated screen lines (256),
  373.       continued lines (257), and for displaying control characters
  374.       notation (259)
  375.  
  376. [5]   Raise frame to the foreground if emacsclient requests a buffer
  377.  
  378. [6]   Use Kai Uwe Rommel's OS/2 port of GNU ls (GNU file utilities)
  379.       for dired.  If you are using a version of ls where the output of
  380.       `ls -l' is Unix-compatible, you should not use that line
  381.  
  382. [7]   Use C-f1 to invoke OS/2 on-line help.  You have to set the
  383.       os2help variable to point to an EPM index file.  See os2help.el
  384.       for details
  385.  
  386. [8]   Modify the Edit menu of the menu bar to use the OS/2 clipboard
  387.       for Cut, Copy, and Paste
  388.  
  389. [9]   Modify the File menu of the menu bar to use OS/2's standard file
  390.       dialog for `Open File...' and `Save Buffer As...'
  391.  
  392. [10]  Remove emacs.exe from the Window List.  See below for a
  393.       discussion of advantages and disadvantages.  In the default
  394.       site-start.el file, this statement is disabled.  You might want
  395.       to uncomment this statement if you use the PM interface and
  396.       don't run Emacs manually.  If you enable
  397.       remove-from-window-list, you should disable pm-session-bond
  398.  
  399. [11]  Establish a bond between emacs.exe (the VIO window) and
  400.       pmemacs.exe (the PM windows).  If you select emacs.exe, for
  401.       instance by using the Window List, one of the PM windows will be
  402.       selected instead of emacs.exe
  403.  
  404. [12]  Make the mode line yellow on red
  405.  
  406. [13]  Don't use an italic font for info nodes
  407.  
  408.  
  409. About file names
  410. ================
  411.  
  412. All file names are translated to lower case.  This is required as GNU
  413. Emacs thinks that non-equality of file names implies non-identity of
  414. files.  Under OS/2 and DOS, however, letter case does not matter in
  415. file names.  To keep the letter case in file names on HPFS, see
  416. `Choosing the backup type'.
  417.  
  418. Better use forward slashes (/) instead of backslashes (\) in path
  419. names as some places where Emacs checks for / might have slipped my
  420. attention.
  421.  
  422. Emacs doesn't know that trailing dots in file names are ignored by
  423. OS/2.  It believes that "foo" and "foo." are different files, a belief
  424. it probably shares with quite a few OS/2 users.
  425.  
  426.  
  427. Choosing a PM font
  428. ==================
  429.  
  430. A font is specified by size (printer's points), simulated appearance
  431. (bold or italic, optional) and name:
  432.  
  433.   SIZE[.bold][.italic].NAME
  434.  
  435. Alternatively, you can use the "Host Portable Character
  436. Representation" for font names, for instance
  437.  
  438.   -*-Courier-medium-r-normal--*-100-*-*-m-*-cp850
  439.  
  440. Examples of fixed-spaced bitmap fonts:
  441.  
  442.   8.Courier
  443.   10.Courier
  444.   10.System Monospaced
  445.   12.bold.Courier                 (Simulated bold font)
  446.   12.Courier Bold                 (Real bold font)
  447.   8.System VIO                    (OS/2 2.1)
  448.   6.Small                         (see below)
  449.  
  450. As the plain, bold, and italic variations of the PM fonts have
  451. different character widths, mixing fonts in a frame isn't a good
  452. idea.  The character widths of all fonts are forced to the character
  453. width of the default font.  When defining a face with a font which is
  454. wider than the default font, there will be problems: some characters
  455. will be displayed only partially and characters may overlap.  Fonts
  456. which are smaller than the default font, however, can be used without
  457. problems.  For instance, you can use "8.bold.System Monospaced" as
  458. bold font when using "10.Courier" as default font ("10.bold.Courier"
  459. is too wide).  Using italic fonts is not recommended.
  460.  
  461. Simulated italic fonts are much slower than real italic fonts.  Only
  462. "12.Courier Italic" and "12.Courier Bold Italic" are real italic
  463. fixed-width bitmap fonts.
  464.  
  465. The smallest fixed-width VGA bitmap font of OS/2 2.0 ("8.Courier") is
  466. rather big.  A small font ("6.Small") is available for anonymous ftp:
  467.  
  468.   ftp-os2.cdrom.com: os2/all/graphics/smallfnt.zip    -- or --
  469.   ftp-os2.cdrom.com: os2/all/graphics/small.zip
  470.  
  471. Unfortunately, the first release of that font (smallfnt.zip) has a bug
  472. in the font metrics: the maximum ascender height is wrong.  This bug
  473. has been fixed on 15-Jun-1992, but the old version of small.fon is
  474. still widely available.  After unpacking and before installing
  475. small.fon, you should use the following command to fix that bug:
  476.  
  477.   patch \emacs\19.27\emx\small.pat /a
  478.  
  479. Use the OS/2 program named PATCH.EXE, not the Unix tool of the same
  480. name.  If the patch cannot be applied, you probably have a fixed
  481. version.
  482.  
  483. Using outline fonts (such as "9.Courier") is not recommended because
  484. that's too slow.  Proportional fonts (such as "10.Tms Rmn") cannot be
  485. used.
  486.  
  487. To set the default font of a frame, set the `font' frame parameter.
  488. Example:
  489.  
  490.   (setq default-frame-alist
  491.         (append '((font . "8.Courier")) default-frame-alist))
  492.  
  493. If the font does not exist, "10.Courier" is used instead as default
  494. font.  If you use the "Host Portable Character Representation" for the
  495. name of the default font, Emacs automatically chooses (simulated) bold
  496. and italic variants of that font.  Example:
  497.  
  498.   emacs -d -fn -*-Courier-medium-r-normal--*-100-*-*-m-*-cp850
  499.  
  500. You can use a popup menu to select the default font: Click mouse
  501. button 3 (that's the middle mouse button, by default) while depressing
  502. the CONTROL key (C-down-mouse-3).  The menu contains all fixed-width
  503. bitmap fonts of OS/2 2.1, plus "6.Small".
  504.  
  505. To change the font of a face, use set-face-font.  However, you can use
  506. only fonts reported by the pm-list-fonts function.  Examples:
  507.  
  508.   (set-face-font 'bold "10.bold.Courier")
  509.   (set-face-font 'italic "10.italic.Courier")  ; NOT RECOMMENDED!
  510.  
  511. To set the font for menus, set the `menu-font' frame parameter.  Only
  512. SIZE.NAME format is allowed for the value of the `menu-font' frame
  513. parameter.  Example:
  514.  
  515.   (setq default-frame-alist
  516.         (append '((menu-font . "8.Helv")) default-frame-alist))
  517.  
  518. If the font does not exist, the system default is used.
  519.  
  520.  
  521. The keyboard
  522. ============
  523.  
  524. In text mode, the ALT keys generate the A- modifier (alt).  Load
  525. emx-meta.el to use the ALT keys to generate the M- modifier (meta):
  526. Put
  527.  
  528.   (load "emx-meta.el")
  529.  
  530. into your .emacs or site-start.el file.  This works only for a subset
  531. of the keys.  It does not work with the CTRL key.
  532.  
  533. The rest of this section applies to PM mode.
  534.  
  535. The modifiers generated by the ALT keys are configurable.  There are
  536. two ALT keys, the left ALT key and the right ALT key.  The right ALT
  537. key is called AltGr or AltCar on most non-US keyboards.  On these
  538. keyboards, the right ALT key is used for entering special symbols.  On
  539. the US keyboard, the right ALT key is equivalent to the left ALT key.
  540.  
  541. We'll use the term `ALT key' for both ALT keys of the US keyboard.
  542. For keyboards which have an AltGr or AltCar key, we'll call the left
  543. ALT key `ALT key' and the right ALT key `ALTGR key'.
  544.  
  545. The modifier for the ALT key (both ALT keys on the US keyboard, that
  546. is) is set with the `alt-modifier' frame parameter.  For instance, use
  547. the following code to use the ALT key for generating the A- (alt) modifier:
  548.  
  549.   (setq default-frame-alist
  550.         (append '((alt-modifier . alt)) default-frame-alist))
  551.  
  552. By default, the ALT key is used for generating the M- (meta)
  553. modifier.
  554.  
  555. The modifier for the ALTGR key (which isn't present on the US
  556. keyboard) is set with the `altgr-modifier' frame parameter.  For
  557. instance, use the following code to use the ALTGR key for generating
  558. the A- (alt) modifier:
  559.  
  560.   (setq default-frame-alist
  561.         (append '((altgr-modifier . alt)) default-frame-alist))
  562.  
  563. As ALTGR is treated specially by the operating system, you cannot use
  564. it with arbitrary keys.  Usually you can use it together with a subset
  565. of the letter and digit keys to generate the modifier set with
  566. altgr-modifier.  If the CTRL key is down, ALTGR is ignored for most
  567. keys.
  568.  
  569. Suppose that '((alt-modifier . meta) (altgr-modifier . hyper)) is in
  570. effect.  Then, you'll get the following table of keys vs. events:
  571.  
  572.   Left ALT │ Right ALT │ CTRL │ Key ││ US keyboard │ German keyboard
  573.   ─────────┼───────────┼──────┼─────┼┼─────────────┼─────────────────
  574.      X     │     -     │  -   │  a  ││   M-a       │   M-a
  575.      X     │     -     │  X   │  a  ││   M-C-a     │   M-C-a
  576.      -     │     X     │  -   │  a  ││   M-a       │   H-a
  577.      -     │     X     │  X   │  a  ││   M-C-a     │   C-a
  578.      -     │     X     │  -   │  f2 ││   M-f2      │   f2
  579.      -     │     X     │  -   │  q  ││   M-q       │   @
  580.      -     │     X     │  -   │  q  ││   M-C-q     │   C-@
  581.  
  582. The locations of the keys C-[ C-] C-\ etc. on non-US keyboards depend
  583. on whether you are using the PM version or the text mode version of
  584. Emacs: With the PM version, you can type those keys with
  585. CTRL+ALTGR+<whatever> (example: C-] is on CTRL+ALTGR+<9> of the German
  586. keyboard), where ALTGR is the right ALT key.  With the text mode
  587. version, pretend that you have a US keyboard (example: C-] is on
  588. CTRL+<+> of the German keyboard).
  589.  
  590. If you want to bind keys depending on the keyboard layout, use the
  591. keyboard-type function.
  592.  
  593.  
  594. Changing the window size
  595. ========================
  596.  
  597. To change the window size in text mode, type
  598.  
  599.     mode co80,x
  600.  
  601. where x is the number of lines.  Example: mode co80,40
  602.  
  603. To change the window size in PM mode, simply resize the window using
  604. the mouse or the keyboard (Alt+F8).  You can set the default size with
  605. the `width' and `height' frame parameters in site-init.el or .emacs:
  606.  
  607.   (setq default-frame-alist
  608.         (append '((width . 80) (height . 40))
  609.                 default-frame-alist))
  610.  
  611. You can set the default position with the `top' and `left' frame
  612. parameters.  See the documentation of set-frame-position for details.
  613.  
  614.  
  615. Choosing the backup type
  616. ========================
  617.  
  618. You might want to use
  619.  
  620.   (setq backup-by-copying t)
  621.  
  622. This has three advantages under OS/2:
  623.  
  624. -  the letter case of the name of the file is retained (normally, GNU
  625.    Emacs for emx uses lower-case file names)
  626.  
  627. -  the extended attributes of the file are retained
  628.  
  629. -  when editing .CMD files, the Workplace Shell does not change
  630.    program objects to point to the backup of the edited file
  631.  
  632. There are two known disadvantages under OS/2:
  633.  
  634. -  the extended attributes of the backup file are lost
  635.  
  636. -  the letter case of the file name is lost for the backup file
  637.  
  638. You can choose: Either keep the extended attributes and the letter
  639. case of the file name of the new file or of the backup file.
  640.  
  641.  
  642. Text mode vs. binary mode
  643. =========================
  644.  
  645. This port of GNU Emacs supports two types of files: binary files and
  646. text files.  As GNU Emacs is a text editor, you'll work with text
  647. files most of the time.  Therefore, you don't have to know the ugly
  648. details unless you want to edit a binary file.
  649.  
  650. When reading a text file, each CR/LF pair is converted to a LF.  If
  651. the last character of the file is a Ctrl-Z, that character is
  652. removed.
  653.  
  654. When writing a text file, each LF is replaced with a CR/LF pair.  A
  655. Ctrl-Z is not appended as that has been obsolete for years.
  656.  
  657. No conversion is done when reading or writing a binary file.
  658.  
  659. The emx-add-binary-mode function is used to define an additional
  660. regular expression for files which should be read and written in
  661. binary mode.  Example:
  662.  
  663.   (emx-add-binary-mode "\\.exe$")
  664.   (emx-add-binary-mode "\\.gz$")
  665.   (emx-add-binary-mode "\\.[Zz]$")
  666.  
  667. This example will make Emacs use binary mode for file names ending
  668. with .exe, .gz, .z or .Z.  Initially, binary mode is used for file
  669. names matching the following regular expressions:
  670.  
  671.   \.elc$
  672.   \.tar$
  673.   \.gz$
  674.   \.[zZ]$
  675.  
  676. You can use emx-remove-binary-mode to remove an entry from the list of
  677. regular expressions for identifying binary files.  For instance,
  678.  
  679.   (emx-remove-binary-mode "\\.[Zz]$")
  680.  
  681. cancels
  682.  
  683.   (emx-add-binary-mode "\\.[Zz]$")
  684.  
  685. Note that the spelling of the regular expression must exactly match
  686. the spelling of the regular expression to be removed.
  687.  
  688. The buffer-local variable emx-binary-mode controls whether to use text
  689. mode or binary mode.  If the variable is nil (which is the initial
  690. value), text mode is used.  If the variable is t, binary mode is used.
  691.  
  692. When inserting a binary file (i.e., a file whose name matches one of
  693. the regular expressions defined by emx-add-binary-mode) into a buffer,
  694. emx-binary-mode is set to t.  The value of emx-binary-mode of that
  695. buffer will stay t until changed.  This also applies to visiting a
  696. file.  In other words, a buffer is switched to binary mode when
  697. visiting or inserting a binary file.  A file is read in binary mode if
  698. the target buffer is in binary mode or if the file is a binary file.
  699.  
  700. When writing a file (e.g., by saving the buffer or by calling
  701. write-region), binary mode is used if the source buffer is in binary
  702. mode or if the file is a binary file (i.e., the name matches one of
  703. the regular expressions defined by emx-add-binary-mode).  The
  704. emx-binary-mode variable of the buffer is set temporarily while
  705. writing the file and reverts to the previous value after writing the
  706. file.
  707.  
  708. To insert a text file into a buffer which is in binary mode, manually
  709. set the emx-binary-mode variable to nil.
  710.  
  711. You can use find-file-binary to visit a file in binary mode.
  712.  
  713.  
  714. Code pages
  715. ==========
  716.  
  717. cp850.el, which is loaded by default, defines a syntax table and a
  718. case table for code page 850.
  719.  
  720. To enter accented characters which are not supported by your keyboard,
  721. load cp850acc and invoke cp850-accents-mode.
  722.  
  723. Emacs uses the default code page for keyboard input and for display.
  724. Use the current-code-page function to get the current code page.  The
  725. list-code-pages function returns a list of available code pages.
  726.  
  727. Use the set-code-page command to set the code page for keyboard input
  728. and for display.  Note that the process code page is not changed;
  729. therefore set-code-page does not affect translation of file names and
  730. the code page of child processes.  Moreover, the syntax tables and
  731. case translation tables of Emacs are not affected by set-code-page.
  732.  
  733. In PM mode, there are additional code pages available, such as 1004
  734. (Windows) and several EBCDIC code pages.  Better don't use the EBCDIC
  735. code pages, because Emacs talks ASCII.  All buffers, windows, and
  736. frames share the same code page.  Note that the `cp850' part of font
  737. names is ignored; the current code page is used for all fonts.
  738.  
  739.  
  740. Using shell mode
  741. ================
  742.  
  743. GNU Emacs uses the shell (command processor) pointed to by the SHELL
  744. environment variable.  I recommend using a Unix-like shell, like bash
  745. or the Data Logic shell, which are available for anonymous ftp:
  746.  
  747.   ftp-os2.cdrom.com: os2/2_x/unix/shells/bash.zip
  748.   ftp-os2.cdrom.com: os2/all/unix/shells/ms_sh23b.zip  (or later)
  749.  
  750. To run an OS/2 command prompt (using cmd.exe as shell) in an Emacs
  751. window, use the cmd command defined in emx-cmd.el.
  752.  
  753.  
  754. Using the clipboard
  755. ===================
  756.  
  757. To use the OS/2 clipboard, the following functions are provided:
  758.  
  759.   Function │ Default key │ Description
  760.   ─────────┼─────────────┼───────────────────────────────────────
  761.   pm-copy  │ C-insert    │ Copy the region to the clipboard
  762.   pm-cut   │ S-delete    │ Copy the region to the clipboard,
  763.            │             │ then delete the region
  764.   pm-paste │ S-insert    │ Paste text from the clipboard at point
  765.  
  766. Note that several OS/2 programs cannot handle more than 64KB of text
  767. in the clipboard.  Therefore you should avoid copying more than 64KB
  768. of text.
  769.  
  770. You can let the Cut, Copy, and Paste choices of the Edit menu of the
  771. menu bar use the clipboard.  This is done by calling the pm-edit-menu
  772. function, as done by the default site-init.el file.  If you want the
  773. original Edit menu, remove the invocation of pm-edit-menu from
  774. site-init.el.
  775.  
  776.  
  777. Using emacsclient
  778. =================
  779.  
  780. emacsclient has two new command line options:
  781.  
  782.   -s   Don't switch the focus back to emacsclient when saying "Done"
  783.        for a buffer (C-x #).  This option is ignored if -w is used
  784.  
  785.   -w   Don't wait for saying "Done" (C-x #)
  786.  
  787. When using emacsclient as default OS/2 editor (by associating it with
  788. various file types as explained in the OS/2 documentation), you should
  789. use either the -s or the -w option.
  790.  
  791.  
  792. Using Ispell
  793. ============
  794.  
  795. You can get an emx port of the spelling checker Ispell by anonymous
  796. ftp:
  797.  
  798.   ftp-os2.cdrom.com: os2/2_x/unix/unixutils/isp3009b.zip
  799.  
  800. It is no longer required to patch ispell.el of isp3009b.zip -- you
  801. should use the ispell.elc file that comes with GNU Emacs.  To use
  802. Ispell, add the following statement to your .emacs or site-start.el
  803. file, using correct pathnames:
  804.  
  805. ---------------------------------------------------------------------
  806. (setq ispell-program-name "c:/ispell/ispell.exe")
  807. ---------------------------------------------------------------------
  808.  
  809.  
  810. Using AUC TeX
  811. =============
  812.  
  813. AUC TeX is an integrated environment for editing LaTeX and TeX files.
  814.  
  815. 0. You can get the most recent version of AUC TeX by anonymous ftp:
  816.  
  817.      ftp.iesd.auc.dk:pub/emacs-lisp/auctex.tar.gz
  818.  
  819. 1. Unpack the AUC TeX files (of auctex-9.2a.tar.gz or later) into
  820.    \emacs\auctex
  821.  
  822. 2. Modify tex-site.el by copying the following Emacs Lisp code to
  823.    tex-site.el.  Some of the variables need customization: Modify the
  824.    variable `TeX-lisp-directory' to point to the directory where you
  825.    have put the AUC TeX files.  Modify the variable `TeX-macro-global'
  826.    to point to the TeX inputs directory.  Modify `emx-TeX-command' if
  827.    you do not use tex386 or if you want to use command line options
  828.    such as `-mt16000' for all invocations of TeX.  Add your printer to
  829.    `TeX-printer-list'.  Modify `LaTeX-command-style' for your LaTeX
  830.    format files.  For instance, you can insert command line options
  831.    such as `-mt16000' before the `&' character.
  832.  
  833.    Alternatively, you can set `LaTeX-command-style' as indicated in
  834.    tex-site.el if you prefer to invoke TeX by running batch files such
  835.    as latex.cmd.
  836.  
  837. ---------------------------------------------------------------------
  838. (setq emx-TeX-command "tex386")
  839. (setq TeX-shell (if (eq emx-system-type 'os2) "cmd.exe" "command.com"))
  840. (setq TeX-lisp-directory "c:/emacs/auctex/")
  841. (setq TeX-macro-global '("c:/emtex/texinput/"))
  842. (setq TeX-print-command "prthplj %s")
  843. (setq TeX-printer-list '(("lj" "prthplj %s")
  844.                          ("fx" "prtfx %s")
  845.                          ("ps" "dvips -o lpt1 %s")))
  846. (setq TeX-view-style
  847.       (list (list "." (if (eq emx-system-type 'os2)
  848.                           "vp %d" "v %d"))))
  849. (setq TeX-command-list
  850.       (list (list "TeX" "tex386 \\nonstopmode\\input %t" 'TeX-run-TeX nil t)
  851.             (list "TeX Interactive" "tex386 %t" 'TeX-run-interactive nil t)
  852.             (list "LaTeX" "%l \\nonstopmode\\input{%t}" 'TeX-run-LaTeX nil t)
  853.             (list "LaTeX Interactive" "%l %t" 'TeX-run-interactive nil t)
  854.             (list "LaTeX2e" (emx-make-TeX-command
  855.                              "&latex2e \\nonstopmode\\input{%t}")
  856.                   'TeX-run-LaTeX nil t)
  857.             (list "View" "%v " 'TeX-run-background t nil)
  858.             (list "Print" "%p " 'TeX-run-command t nil)
  859.             (list "BibTeX" "bibtex %s" 'TeX-run-BibTeX nil nil)
  860.             (list "Index" "makeindx %s" 'TeX-run-command nil t)
  861.             (list "Check" "lacheck %s" 'TeX-run-compile nil t)
  862.             (list "Spell" "<ignored>" 'TeX-run-ispell nil nil)
  863.             (list "Other" "" 'TeX-run-command t t)
  864.             ;; Not part of standard TeX.
  865.             (list "Makeinfo" "makeinfo %t" 'TeX-run-compile nil t)
  866.             (list "AmSTeX" "tex386 ^&amstex \\nonstopmode\\input %t"
  867.                   'TeX-run-TeX nil t)))
  868.  
  869. (setq LaTeX-command-style
  870.       (mapcar (function (lambda (arg)
  871.                           (list (car arg)
  872.                                 (emx-make-TeX-command (nth 1 arg)))))
  873.               '(("^ams" "&amslatex")
  874.                 ("^foils$" "&foiltex")
  875.                 ("^slides$" "&splain")
  876.                 ("^plfonts\\|plhb$" "&platex")
  877.                 ("." "&lplain"))))
  878. ---------------------------------------------------------------------
  879.  
  880. 3. Change to the directory \emacs\auctex and run instauctex:
  881.  
  882.      cd \emacs\auctex
  883.      instauctex
  884.  
  885.    The instauctex script assumes that the command "emacs" runs
  886.    emacs.exe.  It does not work with emacs.cmd, for instance, if you
  887.    happen to have such a thing in your PATH.  instauctex is designed
  888.    for AUC TeX 9.2a.
  889.  
  890. 4. Add the following lines to your .emacs or site-start file:
  891.  
  892.      (setq load-path (append '("c:/emacs/auctex") load-path))
  893.      (setq Info-default-directory-list
  894.            (append Info-default-directory-list
  895.                    '("c:/emacs/auctex/doc")))
  896.      (require 'tex-site)
  897.  
  898.    If you have set the INFOPATH environment variable, add
  899.    c:/emacs/auctex to INFOPATH.
  900.  
  901. 5. Add the following line to the `dir' file in \emacs\19.27\info or to
  902.    your private `dir' file:
  903.  
  904.      * AUC TeX: (auctex).  A much enhanced LaTeX mode for GNU Emacs.
  905.  
  906. 6. Kill and restart GNU Emacs.
  907.  
  908.  
  909. Sending and receiving mail
  910. ==========================
  911.  
  912. No setup is required for receiving mail with IBM TCP/IP 2.0 for OS/2.
  913. For sending mail with IBM TCP/IP 2.0 for OS/2, you should add the lines
  914.  
  915.   # errors: mail
  916.   Oem
  917.  
  918. to your \tcpip\etc\sendmail.cf file, after the heading
  919.  
  920.   ###############
  921.   #   Options   #
  922.   ###############
  923.  
  924. That option makes sendmail mail back errors.
  925.  
  926.  
  927. Removing the VIO window from the Window List
  928. ============================================
  929.  
  930. Call the remove-from-window-list function to remove the session in
  931. which emacs.exe is running (a VIO window, usually) from the Window
  932. List.  The advantage of this is having fewer entries in the Window List
  933. -- it will be simpler to locate the PM windows of Emacs.
  934.  
  935. On the other hand, double-clicking on the Emacs icon will start
  936. another instance of Emacs instead of bringing the current instance to
  937. the foreground.
  938.  
  939. You should not call remove-from-window-list when running Emacs
  940. manually (not by double-clicking on the Emacs icon) or when using
  941. Emacs in text mode (without -d option).
  942.  
  943. If you created your Emacs icon using instemacs.cmd without the
  944. "keepvio" option, calling remove-from-window-list is not necessary.
  945. The Emacs icon starts emacs.exe in a PM session so that it doesn't
  946. appear in the window list anyway.
  947.  
  948. Instead of calling remove-from-window-list, you might want to call
  949. pm-session-bond with a non-nil argument (t, for instance) to establish
  950. a bond between emacs.exe (the VIO window) and pmemacs.exe (the PM
  951. windows).  If you select emacs.exe, for instance by double clicking
  952. the Window List, one of the PM windows will be selected instead of
  953. emacs.exe.  After establishing the bond, you can select emacs.exe by
  954. clicking on the titlebar, by using the `Tile' or `Cascade' choice of
  955. the Window List, or by using the `Restore' choice of the Minimized
  956. Window Viewer.  You can break the bond by calling pm-session-bond with
  957. a nil argument.
  958.  
  959. Note: By default, site-start.el calls pm-session-bond to establish a
  960. bond between emacs.exe and pmemacs.exe.
  961.  
  962.  
  963. More environment variables
  964. ==========================
  965.  
  966. The user-name variable is initialized from the value of the USER
  967. environment variable.  If USER is not set, the LOGNAME environment
  968. variable is used.  If both USER and LOGNAME are not set, user-name is
  969. set to "unknown".
  970.  
  971. The user-full-name variable is initialized from the value of the
  972. USERFULLNAME environment variable.  If USERFULLNAME is not set,
  973. user-full-name is set to "unkown".
  974.  
  975.  
  976. Printing the manual
  977. ===================
  978.  
  979. Do you really want to print it?  It's 474 pages and does not contain
  980. more information than the on-line manual.  Here's how to print the
  981. manual:
  982.  
  983. 1. Get and install emTeX, including texb11.zip (see the emx
  984.    documentation for ftp locations)
  985.  
  986. 2. Get and install the gnuinfo.zip package for emx 0.8h
  987.  
  988. 3. Unpack e27man (see above)
  989.  
  990. 4. If you use an older version of emTeX, rename the texinfo files for
  991.    8.3 (emTeX supports long file names since beta 9):
  992.  
  993.      cd \emacs\19.27\man
  994.      ren *.texi *.tex
  995.      ren *.texinfo *.tex
  996.  
  997. 5. Typeset the manual:
  998.  
  999.      cd \emacs\19.27\man
  1000.      texi2dvi emacs.texi                <-- using emTeX beta 9 or later
  1001.      texi2dvi emacs.tex                 <-- using an ancient emTeX version
  1002.  
  1003. 6. Print the manual (this example is for the HP LaserJet).  See the
  1004.    dvidrv documentation on how to print on both sides of the paper:
  1005.  
  1006.      cd \emacs\19.27\man
  1007.      prthplj emacs
  1008.  
  1009.  
  1010. Miscellaneous hints
  1011. ===================
  1012.  
  1013. -   For best results, run emacs.exe from the drive where it is
  1014.     installed -- you can change the drive in GNU Emacs.  If you run
  1015.     Emacs from a drive different from the drive where it is installed,
  1016.     you'll get the benign warning message
  1017.  
  1018.       Warning: lisp library (/emacs/19.27/lisp) does not exist.
  1019.  
  1020.     Ignore this message.
  1021.  
  1022. -   Emacs is designed to be started once and never terminated.
  1023.     Therefore, you should add Emacs to the startup folder (use the
  1024.     startup option of instemacs.cmd) and never start it manually.  If
  1025.     you want to enter an OS/2 command to edit a file, use
  1026.     emacsclient.
  1027.  
  1028. -   To change the cursor size in text mode, put
  1029.  
  1030.       cursor -80 -100
  1031.  
  1032.     into a batch file which runs emacs.exe (unfortunately, cmd.exe
  1033.     changes the cursor size when displaying a prompt).  Negative
  1034.     cursor command line arguments are percentages -- the above example
  1035.     makes the cursor use the bottom 20% of the character cell.
  1036.  
  1037. -   The character `-' is not allowed in filenames on CDROM, `_' is
  1038.     used instead.  To let `load' automatically turn `-' into `_' and
  1039.     try again if a file is not found, set emx-cdrom-load to t.  When
  1040.     pre-installing Emacs on CDROM, it should be dumped with
  1041.     emx-cdrom-load set to t.
  1042.  
  1043. -   Don't put .el files into \emacs\19.27\lisp -- you'll have to move
  1044.     them when upgrading Emacs.  Instead, create a new directory, say
  1045.  
  1046.       \emacs\locallisp
  1047.  
  1048.     and add it to `load-path'.  This also applies to .info files.
  1049.  
  1050.  
  1051. Additional features of GNU Emacs 19.27 for emx
  1052. ==============================================
  1053.  
  1054. Additional functions (see on-line help for details):
  1055.  
  1056.   current-code-page
  1057.   emacs-priority
  1058.   emx-add-binary-mode
  1059.   emx-remove-binary-mode
  1060.   file-name-valid-p
  1061.   filesystem-type
  1062.   get-ea
  1063.   get-ea-list
  1064.   get-ea-string
  1065.   keyboard-type
  1066.   list-code-pages
  1067.   pm-file-dialog
  1068.   pm-session-bond
  1069.   put-ea
  1070.   put-ea-list
  1071.   put-ea-string
  1072.   remove-ea
  1073.   remove-all-eas
  1074.   remove-from-window-list
  1075.   set-code-page
  1076.  
  1077. Additional variables (see on-line help for details):
  1078.  
  1079.   binary-process-input
  1080.   binary-process-output
  1081.   emx-binary-mode
  1082.   emx-binary-mode-list
  1083.   emx-system-type
  1084.   min-skip-run
  1085.   pm-align-menu-key-descriptions
  1086.   pm-popup-menu-align-top
  1087.   pm-color-alist
  1088.   process-priority
  1089.   program-name-handler-alist
  1090.  
  1091. Additional command line options for PM:
  1092.  
  1093.   -d                    Use windowing system (note: no argument!)
  1094.   -name NAME            Set name of frame (displayed in the titlebar)
  1095.   -font FONT            Select font
  1096.   -background COLOR     Select default background color
  1097.   -foreground COLOR     Select default foreground color
  1098.   -T NAME               See -name
  1099.   -fn FONT              See -font
  1100.   -fg COLOR             See -foreground
  1101.   -bg COLOR             See -background
  1102.  
  1103. Example:
  1104.  
  1105.   emacs -d -fg white -bg os2darkblue -fn 8.Courier myfile.c
  1106.  
  1107. Fonts:
  1108.  
  1109.   A font is specified by size (printer's points) and name; see above.
  1110.  
  1111. Colors:
  1112.  
  1113.   See pm-color-alist in term/pm-win.el
  1114.  
  1115. Additional frame parameters for modify-frame-parameters and
  1116. default-frame-alist:
  1117.  
  1118.   Frame parameter  │ Type    │ Default    │ Description
  1119.   ─────────────────┼─────────┼────────────┼──────────────────────────────
  1120.   name             │ String  │            │ Window title
  1121.   font             │ String  │"10.Courier"│ Default font of frame
  1122.   menu-font        │ String  │ nil        │ Font for menus
  1123.   background-color │ String  │ "white"    │ Default background color
  1124.   foreground-color │ String  │ "black"    │ Default foreground color
  1125.   alt-modifier     │ Symbol  │ meta       │ Modifier generated by left Alt key
  1126.   altgr-modifier   │ Symbol  │ alt        │ Modifier generated by AltGr key
  1127.   cursor-type      │ Symbol  │ box        │ Cursor type
  1128.   cursor-blink     │ Boolean │ t          │ Blinking cursor
  1129.   shortcuts        │ List    │ t          │ Enable F1, F10, A-f4, A-space etc.
  1130.   mouse-buttons    │ String  │ "132"      │ Swap mouse buttons
  1131.   height           │ Integer │ 25         │ Height of window, in lines
  1132.   width            │ Integer │ 80         │ Widtht of window, in columns
  1133.   left             │ Integer │            │ horizontal position, in pixels
  1134.   top              │ Integer │            │ vertical position, in pixels
  1135.   menu-bar-time-out│ Integer │ 5000       │ Time-out for menu bar updates (ms)
  1136.  
  1137. The value of a frame parameter of type Boolean should be either `t' to
  1138. enable the feature or `nil' to disable the feature.
  1139.  
  1140. Menu font:
  1141.  
  1142.   You can select the font to be used in menus with the menu-font frame
  1143.   parameter.  The value is either `nil' or a string "SIZE.NAME".
  1144.   `nil' is the default and selects the system default.  To choose a
  1145.   different font, use "SIZE.NAME", where SIZE is the size of the font
  1146.   in printer's points and NAME is the name of the font.  Example:
  1147.   "5.Small".  If the font does not exist, the system default will be
  1148.   used.
  1149.  
  1150. Alt modifiers:
  1151.  
  1152.   alt           The ALT key generates the A- modifier
  1153.   meta          The ALT key generates the M- modifier
  1154.   hyper         The ALT key generates the H- modifier
  1155.   super         The ALT key generates the s- modifier
  1156.  
  1157. Cursor types:
  1158.  
  1159.   bar            A thin vertical bar
  1160.   box            A filled box (default)
  1161.   frame          The outline of a box
  1162.   underline      A horizontal line below the characters
  1163.   halftone       A filled box (gray)
  1164.  
  1165. Shortcuts:
  1166.  
  1167.   The Presentation Manager uses the keys F1, F10, Alt, AltGr,
  1168.   Alt+Space, and Alt+F4 through Alt+F11 as accelerator keys
  1169.   (shortcuts).  If you want to bind Emacs commands to those keys, you
  1170.   have to disable that special interpretation of those keys.  This is
  1171.   done with the `shortcuts' frame parameter.  The argument of
  1172.   `shortcuts' is either nil (all accelerator keys are disabled), t
  1173.   (all accelerator keys are enabled -- this is the default), or a list
  1174.   of keys to be enabled (all other accelerator keys are disabled).  To
  1175.   disable the accelerator keys Alt and AltGr (which can be quite
  1176.   annoying) while keeping all other accelerators, use the following
  1177.   cons (pair) in the list of frame parameters:
  1178.  
  1179.         (shortcuts . (f1 f10 alt-space alt-f4 alt-f5 alt-f6
  1180.                       alt-f7 alt-f8 alt-f9 alt-f10 alt-f11))
  1181.  
  1182.   Note that `alt' and `altgr' are missing in the list.
  1183.  
  1184. Mouse buttons:
  1185.  
  1186.   The argument of the mouse-buttons parameter is a string of 3
  1187.   characters.  The first character defines the event generated by the
  1188.   left mouse button, the second character defines the event generated
  1189.   by the middle mouse button (which doesn't exist on two-button mice),
  1190.   the third character defines the event generated by the right mouse
  1191.   button.  Each character is either 1 (mouse-1), 2 (mouse-2), 3
  1192.   (mouse-3) or a space (no event).  The default is "132", according to
  1193.   OS/2 conventions.  With this value, a two-button mouse cannot
  1194.   generate a mouse-3 event.
  1195.  
  1196. Time-out for menu bar updates:
  1197.  
  1198.   The Presentation Manager is blocked while pmemacs.exe waits for
  1199.   emacs.exe to compute a menu for the menu bar.  To avoid blocking the
  1200.   Presentation Manager for an excessive period of time, there is a
  1201.   time-out, after which pmemacs.exe creates a dummy menu, consisting
  1202.   of the disabled entry `(time-out)'.  You can adjust the time-out
  1203.   with the menu-bar-time-out frame parameter.  The value is given in
  1204.   milliseconds, the default value is 5000 (5 seconds).
  1205.  
  1206.   Note that menus can take quite a long time the first time they are
  1207.   invoked because keyboard equivalents have to be computed.  After a
  1208.   time-out, simply try again.  Increase the time-out value only if it
  1209.   is not appropriate for further invokations of the menus.
  1210.  
  1211. Example:
  1212.  
  1213.   (setq default-frame-alist
  1214.         (append '((background-color . "os2darkblue")
  1215.                   (foreground-color . "white")
  1216.                   (alt-modifier . alt)
  1217.                   (altgr-modifier . hyper)
  1218.                   (font . "8.Courier")
  1219.                   (menu-font . "8.Helv")
  1220.                   (mouse-buttons . "123")
  1221.                   (menu-bar-time-out . 2000)
  1222.                   (shortcuts . (alt-f4 alt-space)))
  1223.                 default-frame-alist))
  1224.  
  1225.  
  1226. Missing features, misfeatures, bugs
  1227. ===================================
  1228.  
  1229. - The emacs-priority variable is ignored.  Use the emacs-priority
  1230.   function instead.  Note that lisp/term/pm-win.el calls
  1231.   emacs-priority.
  1232.  
  1233. - interrupt-process doesn't work unless the process is an immediate
  1234.   child of Emacs or is an emx program.  Therefore,
  1235.   comint-interrupt-subjob (C-c C-c) doesn't work.
  1236.  
  1237. - Extended attributes are not preserved in files edited or copied.
  1238.  
  1239. - The timestamps of most events are always 0.  For some events, the
  1240.   timestamp is misused for internal purposes.  The timestamp is valid
  1241.   only for mouse button events.
  1242.  
  1243. - Scrollbars are not implemented.
  1244.  
  1245. - Several functions specific to X Windows are missing.
  1246.  
  1247. - OS/2 does not support all three-button mice.  Therefore, you can use
  1248.   only two buttons with certain mice.  RODENT.SYS, a shareware mouse
  1249.   driver written by Michael Lee Finney (m.finney@genie.geis.com)
  1250.   supports additional three-button mice.  Look for RODENT.ZIP or
  1251.   RODNT100.ZIP.  Unfortunately, the registration cost is likely to
  1252.   exceed the cost of a new mouse...
  1253.  
  1254. - Emacs doesn't know that trailing dots in file names are ignored by
  1255.   OS/2.  It believes that "foo" and "foo." are different files, a
  1256.   belief it probably shares with quite a few OS/2 users.
  1257.  
  1258. - ange-ftp doesn't work due to ftp's buffering of stdout and Emacs'
  1259.   prepending a drive letter.
  1260.  
  1261. - The client windows are not repainted while a popup menu is active.
  1262.  
  1263. - Coordinates reported for mouse events and used by x-popup-menu are
  1264.   character coordinates, not pixel coordinates.  However, characters
  1265.   are of size 1 by 1.  In consequence, menus usually appear in the
  1266.   correct location.
  1267.  
  1268. - OS/2's standard file dialog rejects file names starting with a dot.
  1269.  
  1270.  
  1271. Compiling GNU Emacs
  1272. ===================
  1273.  
  1274. The following programs are required for compiling GNU Emacs 19 for emx:
  1275.  
  1276.   - dmake 3.8
  1277.  
  1278.   - emx 0.8h with emxfix07 (or later), GCC 2.5.7 (or later), etc. for emx
  1279.  
  1280.   - GNU Bison 1.19 (or later)
  1281.  
  1282.   - GNU sed 1.16 (or later, with the exception of version 2.04)
  1283.  
  1284.   - cat (GNU text utilities 1.9 or later)
  1285.  
  1286.   - cp, mv, rm, chmod (GNU file utilities 1.4 or later)
  1287.  
  1288. You can find all these programs on ftp.informatik.tu-muenchen.de,
  1289. somewhere under pub/comp/os/os2.
  1290.  
  1291. To compile GNU Emacs, you have to install the source code:
  1292.  
  1293.   cd \
  1294.   unzip a:e27src
  1295.  
  1296. To compile GNU Emacs, type
  1297.  
  1298.   cd \emacs\19.27
  1299.   configure
  1300.   cd lib-src
  1301.   make
  1302.   cd ..\src
  1303.   make
  1304.  
  1305. If emx-patch.el and emx-funcs.el have not been byte-compiled
  1306. (emx-patch.elc and emx-funcs.elc don't exist), the message
  1307.  
  1308.   Pure Lisp storage exhausted
  1309.  
  1310. may be displayed in the make step in the src directory.  Type
  1311.  
  1312.   temacs -batch -l emx-bc
  1313.  
  1314. to byte-compile these files.  Ignore the warning messages which start
  1315. with **.  Then, restart make.  IMPORTANT: emx-bc.el assumes that the
  1316. .el files are in ../lisp.
  1317.  
  1318. Before running the new emacs.exe in \emacs\19.27\src, you should type
  1319.  
  1320.   xcopy ..\etc\DOC ..\data\
  1321.  
  1322. To install GNU Emacs in \emacs\19.27\bin, run install.cmd.
  1323.  
  1324. If the GNU Emacs version number changes (e.g., from 19.83 to 19.84)
  1325. you have to edit the following files, replacing the old version number
  1326. with the new one:
  1327.  
  1328.   emx/FAQ
  1329.   emx/README
  1330.   emx/emx1.sed
  1331.   emx/emx4.sed
  1332.   src/dist.cmd
  1333.   src/install.cmd
  1334.  
  1335. To debug GNU Emacs, type
  1336.  
  1337.   gdb -s temacs -e emacs.exe
  1338.   source .gdbinit
  1339.   set args -d
  1340.  
  1341. Note that .gdbinit changes the command line arguments.  Therefore, you
  1342. should use "set args" after loading .gdbinit.
  1343.  
  1344. To do post-mortem debugging, type
  1345.  
  1346.   gdb -s temacs -e emacs.exe -c core
  1347.  
  1348. Note that emx.dll versions prior to revision index 14 don't create
  1349. usable core dump files for emacs.exe: the stack object is missing in
  1350. the core dump.
  1351.  
  1352. To make new distribution ZIP files, type
  1353.  
  1354.   cd \emacs\19.27\src
  1355.   install
  1356.   dist
  1357.   cd ..\emx
  1358.   make-dist
  1359.  
  1360.  
  1361. Who did the emx port of GNU Emacs 19?
  1362. =====================================
  1363.  
  1364.   Eberhard Mattes
  1365.   Teckstraße 81
  1366.   D-71696 Möglingen
  1367.   Germany
  1368.  
  1369.   Internet: mattes@azu.informatik.uni-stuttgart.de
  1370.  
  1371. No telephone calls please! Include return postage (international
  1372. postal reply coupons for those outside Germany) and a self-addressed
  1373. envelope if you expect a reply.  GNU Emacs for emx is not available on
  1374. diskettes from the address given above.
  1375.  
  1376. An emx-related mailing list has been created: emx-list.  The address
  1377. for people to request to be added to or removed from the list is:
  1378.  
  1379.   listserv@eb.ele.tue.nl
  1380.  
  1381. To subscribe, send a message containing
  1382.  
  1383.   sub emx-list Joe User
  1384.  
  1385. to listserv@eb.ele.tue.nl.  Of course, you should use your name instead
  1386. of Joe User's name.  To unsubscribe, send a message containing
  1387.  
  1388.   unsub emx-list
  1389.  
  1390. to listserv@eb.ele.tue.nl.
  1391.  
  1392. As there is currently no mailing list for the emx port of GNU Emacs,
  1393. you can use the emx mailing list.  However, you should use the general
  1394. GNU Emacs mailing lists for general GNU Emacs questions.
  1395.  
  1396. No warranty, see COPYING for details.
  1397.  
  1398.  
  1399. History
  1400. =======
  1401.  
  1402. Only changes specific to the emx port of GNU Emacs are listed here,
  1403. latest last.  See etc/NEWS for more news.
  1404.  
  1405. 19.19
  1406. -----
  1407.  
  1408. - Add FAQ file
  1409.  
  1410. - Fix instemacs.cmd bugs
  1411.  
  1412. - Fix documentation errors
  1413.  
  1414. - Fix multi-line PM menu bar bug
  1415.  
  1416. - Fix bug in window resizing logic.  This solves the problem of
  1417.   windows not repainting
  1418.  
  1419. - Make emx-binary-mode a buffer-local variable and replace file name
  1420.   handler with C code.  This avoids conflicts with other file name
  1421.   handlers
  1422.  
  1423. - Add emx-meta.el
  1424.  
  1425. - Support visible-bell
  1426.  
  1427. - Support popup menus created by functions invoked through the PM menu
  1428.   bar
  1429.  
  1430. - set-frame-position now sets the position of the client area instead
  1431.   of the position of the frame window
  1432.  
  1433. - Add remove-from-window-list and pm-session-bond
  1434.  
  1435. - Define more colors, rename OS/2 colors to avoid conflicts with X
  1436.   colors
  1437.  
  1438. - Automatically redefine some colors for 16-color displays
  1439.  
  1440. - Ignore blanks in color names
  1441.  
  1442. - pm-display-planes now returns the correct value
  1443.  
  1444. - Support of outline fonts improved
  1445.  
  1446. - Clip text output to reduce problems with italic fonts
  1447.  
  1448. - Use the face name instead of the family name for pm-list-fonts.
  1449.   Now, you can use the font "12.Courier Bold Italic", for instance, to
  1450.   get a real bold italic font instead of a simulated one
  1451.  
  1452. - Examples for setting default-frame-alist fixed: the new value should
  1453.   be added to the front of the list
  1454.  
  1455. - Support .inf file name extension for info files, run "gzip -d"
  1456.   instead of "gunzip"
  1457.  
  1458. - The default value of emx-shell-regexp now includes 4OS2.
  1459.  
  1460. - Add optional palette manager support.  If you want to play with the
  1461.   palette manager, define the constant USE_PALETTE_MANAGER when
  1462.   compiling pmemacs.c.  However, there are several drawbacks.  For
  1463.   instance, the cursor isn't displayed properly.  Therefore, palette
  1464.   manager support is disabled by default
  1465.  
  1466.  
  1467. 19.21
  1468. -----
  1469.  
  1470. - Fix mouse event bug: a wrong mouse position was reported in some
  1471.   cases
  1472.  
  1473. - Fix problem with (shortcuts . nil) in default-frame-alist being
  1474.   ignored for the inital frame
  1475.  
  1476. - Fix bug in handling of double clicks
  1477.  
  1478. - Fix bug in face management: Now each frame can have its own default
  1479.   font
  1480.  
  1481. - New function: emx-toggle-truncate-lines (f9 t)
  1482.  
  1483. - emacsserver now uses two threads instead of two processes
  1484.  
  1485.  
  1486. 19.22
  1487. -----
  1488.  
  1489. - vc-register (C-x v i) now works again (vc-find-binary adapted)
  1490.  
  1491. - vc-version-other-window (C-x v ~) now works
  1492.  
  1493. - Add yet another key sequence for goto-line: f9 g
  1494.  
  1495. - Don't pass "-i" to cmd.exe in shell mode.  This solves the `error
  1496.   SYS1034' problem
  1497.  
  1498. - Attempt at fixing the `core dump while resizing' problem.  However,
  1499.   the echo area is now sometimes a few pixels too high
  1500.  
  1501. - Fix incompatibility with `FeelX 1.0'
  1502.  
  1503. - Use /emacs/19.22/data/DOC instead of /emacs/19.22/data/DOC-19.22.x.
  1504.   This simplifies installation on FAT and CDROM
  1505.  
  1506. - cp850acc.el added
  1507.  
  1508.  
  1509. 19.22 (25-Jan-1994)
  1510. -------------------
  1511.  
  1512. - Use the -O option (optimize) for compiling Emacs (the -O option got
  1513.   lost in version 19.20)
  1514.  
  1515. - Change instauctex.cmd for AUC TeX 8.0
  1516.  
  1517. - Align file names in the Buffers menu
  1518.  
  1519. - Simplify dump.cmd -- emxl.exe is now in emxrt.zip
  1520.  
  1521. - Apply patch for fixing the slowness of describe-bindings (C-h b)
  1522.  
  1523. - Disable the code which incorrectly set exec-directory
  1524.  
  1525. - New variable: emx-system-type
  1526.  
  1527. - Fix bug: the documentation of the functions defined in emx-patch.el
  1528.   and emx-funcs.el wasn't available
  1529.  
  1530. - The default value of emx-shell-regexp now includes COMMAND.COM and
  1531.   4DOS.COM.  Only lower-case letters should be used in emx-shell-regexp
  1532.   because `downcase' is applied to the file name
  1533.  
  1534. - Replace - with _ on CDROM for the `load' function, see emx-cdrom-load
  1535.  
  1536.  
  1537. 19.25 (08-Jun-1994)
  1538. -------------------
  1539.  
  1540. - Note that you should now use the variant of ispell.elc which comes
  1541.   with GNU Emacs.  If you are using Ispell, remove the Ispell-related
  1542.   statements from .emacs, default.el, and site-start.el, and set
  1543.   ispell-program-name instead
  1544.  
  1545. - The EMACSLOADPATH, EMACSDATA, and EMACSPATH environment variables
  1546.   are no longer required -- please delete them unless you want to
  1547.   override the or supplement the defaults directories, or put
  1548.   emacs.exe into a directory not related to the Emacs directory
  1549.   hierarchy.  The default directories are now relative to the
  1550.   directory from which emacs.exe is run
  1551.  
  1552. - Do not use AUC TeX 8.0 because powerkey.el won't work with GNU Emacs
  1553.   19.25.  Upgrade to AUC TeX 9.0!
  1554.  
  1555. - Support e-mail and news (NNTP) with IBM TCP/IP 2.0 for OS/2
  1556.  
  1557. - Drag & drop support has been added: you can now drop file objects on
  1558.   a PM Emacs window.  Up to 8 objects can be dropped at a time
  1559.  
  1560. - The emx-shell-regexp variable no longer exists.  A new variable,
  1561.   program-name-handler-alist, is now used instead.  See
  1562.   lisp/emx-patch.el and on-line help for program-name-handler-alist
  1563.   for details
  1564.  
  1565. - The last (third) version number is used to indicate the version
  1566.   number of the emx port: 19.25.1 is the first release of the emx port
  1567.   of GNU Emacs 19.25, 19.25.2 is the second release of the emx port of
  1568.   GNU Emacs 19.25, and so on.  The last version number is no longer
  1569.   incremented when dumping a new emacs.exe
  1570.  
  1571. - The `shortcuts' frame parameter can now enable accelerator keys
  1572.   individually
  1573.  
  1574. - Add `menu-bar-time-out' frame parameter
  1575.  
  1576. - Add `pm-align-menu-key-descriptions' variable for controlling the
  1577.   formatting of keyboard equivalents in submenus of the menu bar
  1578.  
  1579. - Add `pm-popup-menu-align-top' variable for controlling the
  1580.   positioning of popup menus.  The default is now to position the top
  1581.   item at the mouse position
  1582.  
  1583. - Add `pm-file-dialog' and `pm-file-menu' for using OS/2's standard
  1584.   file dialog
  1585.  
  1586. - Fix `oscillating frame' bug
  1587.  
  1588. - `~' in a menu is now visible (though underlined)
  1589.  
  1590. - Rename `pm-defined-color' to `pm-color-defined-p'
  1591.  
  1592. - Support UNC, again
  1593.  
  1594. - Add functions for selecting the code page
  1595.  
  1596. - jka-compr works now (on HPFS drives only)
  1597.  
  1598. - Bind `iconify-frame' to C-z in PM mode
  1599.  
  1600. - Files to be read and written in binary mode now include also those
  1601.   whose names end in .gz, .z, and .Z
  1602.  
  1603. - New functions: find-file-binary, emx-remove-binary-mode
  1604.  
  1605. - Add `binary-process-input' and `binary-process-output' variables
  1606.  
  1607. - `emx-binary-mode' is no longer reset to nil when changing the major
  1608.   mode of a buffer (`kill-all-local-variables').  The default value of
  1609.   `emx-binary-mode' can no longer be set with `set-default'
  1610.  
  1611. - The BACKTAB key (Shift+TAB) now generates a `backtab' event instead
  1612.   of `S-backtab'
  1613.  
  1614. - Modifying large buffers is now much faster
  1615.  
  1616. - Input is no longer echoed in CMD.EXE Shell mode (`cmd' command)
  1617.  
  1618. - Fix problems with expand-file-name and abbreviate-file-name
  1619.  
  1620. - The old-style menu bar is no longer supported; the command
  1621.   `pm-menu-bar-mode' is no longer available (use `menu-bar-mode'
  1622.   instead).  The `pm-menu-bar' frame parameter is no longer available
  1623.   (use `menu-bar-lines' instead)
  1624.  
  1625. - emacs-priority now supports another priority class: idle-time
  1626.  
  1627. - The priority of child processes is controlled by the
  1628.   process-priority variable
  1629.  
  1630. - make-temp-name no longer truncates the prefix on HPFS drives
  1631.  
  1632. - Add functions for retrieving, attaching, and removing extended
  1633.   attributes
  1634.  
  1635.  
  1636. 19.27 (16-Sep-1994)
  1637. -------------------
  1638.  
  1639. - instauctex.cmd assumes that you are installing AUC TeX 9.2a or later
  1640.  
  1641. - Use nicer separator lines in menus
  1642.  
  1643. - You can now choose a font for menus with the `menu-font' frame
  1644.   parameter
  1645.  
  1646. - New package for drawing pictures using line characters: linedraw.el
  1647.  
  1648. - Make reading from the minibuffer in activate-menubar-hook work (this
  1649.   solves an AUC TeX problem)
  1650.  
  1651. - Retry deleting the temporary file created by call-process-region
  1652.   after a process ends (this solves the problem of sendmail temporary
  1653.   files not being deleted)
  1654.  
  1655. - find-file-binary fixed,  it did not load the file in binary mode
  1656.  
  1657. - Pasting while the clipboard is empty no longer crashes Emacs
  1658.  
  1659. ---------------------------------- END ---------------------------------------
  1660.