jasspa's microemacs fork - http://www.jasspa.com/

Vitaly Takmazov 9986bd675f fix win64 crashes 7 years ago
src 9986bd675f fix win64 crashes 7 years ago
vc10 8d561a8e21 added autotools scripts 11 years ago
.gitignore 7b671e37e1 more autotools fixes 11 years ago
.travis.yml d9f6218959 Update .travis.yml 7 years ago
CMakeLists.txt d8f6a225b1 initial cmake support 7 years ago
COPYING c8f078ee32 import jasspa microemacs-20100503 sources 11 years ago
ChangeLog 8d561a8e21 added autotools scripts 11 years ago
Makefile.am 8d561a8e21 added autotools scripts 11 years ago
README 8d561a8e21 added autotools scripts 11 years ago
README.md ccc0cce882 add Travis badge 7 years ago
build.txt c8f078ee32 import jasspa microemacs-20100503 sources 11 years ago
configure.ac 2601f9fcc2 Make Travis happy 7 years ago
cygwin.txt c8f078ee32 import jasspa microemacs-20100503 sources 11 years ago
faq.txt c8f078ee32 import jasspa microemacs-20100503 sources 11 years ago
infolist.txt c8f078ee32 import jasspa microemacs-20100503 sources 11 years ago
license.txt c8f078ee32 import jasspa microemacs-20100503 sources 11 years ago
patch.txt c8f078ee32 import jasspa microemacs-20100503 sources 11 years ago

README




Installation(1) microemacs Installation(1)




INSTALLATION
This page describes introductory notes for the installation and setup of
MicroEmacs 2009.

Quick Install
The quickest way to install MicroEmacs for testing without reading the
rest of this document is to:-

* Create a new directory i.e. jasspa.
* Unpack the macros archive into this directory.
* Unpack the executable into this directory.
* Run me from this directory.

On starting, you will be prompted for a default directory, accept the
defaults. Use the mouse and configure the user from the menu bar:-

Tools -> User Setup

This allows the user and screen settings to be altered. On becoming more
accustomed to the editor then a fuller installation may be performed.

Getting Help
See Contact Information for full contact information. A mail archive
exists at:-

http://groups.yahoo.com/group/jasspa/

If you wish to participate in the list then you must first register
by sending an empty mail message body to:-

jasspa-subscribe@yahoogroups.com

You will then be able to mail any questions into the group.
Registration is required in order to prevent spam mailings from
entering into the lists.

Distribution
MicroEmacs is distributed in the following files:-

Complete Installations
The Microsoft 95/98/NT/2K/XP, Solaris, HP-UX, Linux and the more
popular platforms may be installed using a package and do not require
the components specified in later sections as these are all bundled
together (these packages do not include spelling).

jasspa-me-YYYYMMDD-1.i386.rpm - Linux RedHat 9.x package.
jasspa-me-YYYYMMDD-1.src.rpm - Linux RedHat 9.x source package.
jasspa-mepkg-hpux-pa-10.20-YYYYMMDD.depot.gz - HP-UX 10 package.
jasspa-mepkg-hpux-pa-11.00-YYYYMMDD.depot.gz - HP-UX 11 package.
jasspa-mepkg-ms-win32-2004030.zip - 95/98/NT/2K/XP Install Shield
jasspa-mepkg-sun-i386-58-YYYYMMDD.zip - Sun 2.8(i386) package.
jasspa-mepkg-sun-i386-59-YYYYMMDD.zip - Sun 2.9(i386) package.
jasspa-mepkg-sun-sparc-56-YYYYMMDD.zip - Sun 2.6(Sparc) package.
jasspa-mepkg-sun-sparc-58-YYYYMMDD.zip - Sun 2.8(Sparc) package.
jasspa-mepkg-sun-sparc-59-YYYYMMDD.zip - Sun 2.9(Sparc) package.

Executable Source Code
The source code release for MicroEmacs 2009 contains makefiles
(*.mak) for all supported platforms. Microsoft '95/'98/NT/2K/XP
makefiles contain options at the top of the makefile to
enable/disable console and URL support.

jasspa-mesrc-YYYYMMDD.zip - Source code for all platforms
jasspa-mesrc-YYYYMMDD.tar.gz - Source code

Executable Images
jasspa-me-cygwin-YYYYMMDD.exe.gz - Cygwin Executable (X-Windows)
jasspa-me-hpux-pa-10.20-YYYYMMDD.gz - Hewlett Packard HP-UX 10 Executable
jasspa-me-hpux-pa-11.00-YYYYMMDD.gz - Hewlett Packard HP-UX 11 Executable
jasspa-me-ibm-aix-4-YYYYMMDD.gz - IBM's AIX 4.3 Executable
jasspa-me-linux-i386-2.4-YYYYMMDD.gz - Linux 2.2.x/2.4.x Executable
jasspa-me-linux-i386-2.6-YYYYMMDD.gz - Linux 2.6.x Executable
jasspa-me-ms-win32-YYYYMMDD.zip - Windows 32' (95/98/NT/2K/XP) Executable
jasspa-me-ms-win32s-YYYYMMDD.zip - Windows win32s (Win3.1/3.11) Executable
jasspa-me-msdos-djgpp1-YYYYMMDD.zip - DOS Executable (DJGPP v1.x)
jasspa-me-msdos-djgpp2-YYYYMMDD.zip - DOS Executable (DJGPP v2.x)
jasspa-me-openbsd-i386-3.4-YYYYMMDD.gz - Open BSD 3.4 Executable
jasspa-me-sgi-irix-6-YYYYMMDD.gz - Silicon Graphics Irix 6 Executable
jasspa-me-sun-i386-58-YYYYMMDD.gz - Sun Solaris 2.8 Intel Platform Executable
jasspa-me-sun-i386-59-YYYYMMDD.gz - Sun Solaris 2.9 Intel Platform Executable
jasspa-me-sun-sparc-56-YYYYMMDD.gz - Sun OS 5.5 Executable
jasspa-me-sun-sparc-58-YYYYMMDD.gz - Sun OS 5.8 Executable
jasspa-me-sun-sparc-59-YYYYMMDD.gz - Sun OS 5.9 Executable
jasspa-mec-apple-darwin-6.6-YYYYMMDD.gz - Apple console Executable
jasspa-mec-cygwin-YYYYMMDD.exe.gz - Cygwin Executable (Console)

Help File Images (all platforms)
jasspa-mewinhlp-YYYYMMDD.zip - Windows Help file
jasspa-mehtm-YYYYMMDD.zip - HTML Help files for 8.3 file systems (.htm)
jasspa-mehtml-YYYYMMDD.tar.gz - HTML Help files (.html)

Macro File Images (all platforms)
jasspa-memacros-YYYYMMDD.tar.gz - Macro files
jasspa-memacros-YYYYMMDD.zip - Macro files

jasspa-metree-YYYYMMDD.tar.gz - Complete install tree + help
jasspa-metree-YYYYMMDD.zip - Complete install tree + help

Spelling Dictionaries (all platforms)
One of the following base dictionaries is required for spelling. The
extended dictionaries require the base dictionary and are recommended
for a more comprehensive spelling list. Other languages are
supported.

ls_dede.zip - German rules and base + extended dictionary.
ls_engb.zip - British rules and base + extended dictionary.
ls_enus.zip - American rules and base + extended dictionary.
ls_eses.zip - Spanish rules and dictionary.
ls_frfr.zip - French rules and dictionary.
ls_itit.zip - Italian rules and dictionary
ls_plpl.zip - Polish rules and dictionary.
ls_ptpt.zip - Portuguese rules and dictionary.
ls_ruye.zip - Russian YE rules and dictionary.
ls_ruyo.zip - Russian YO rules and dictionary.

ls_dede.tar.gz - German rules and base + extended dictionary.
ls_engb.tar.gz - British rules and base + extended dictionary.
ls_enus.tar.gz - American rules and base + extended dictionary.
ls_eses.tar.gz - Spanish rules and dictionary.
ls_frfr.tar.gz - French rules and dictionary.
ls_itit.tar.gz - Italian rules and dictionary
ls_plpl.tar.gz - Polish rules and dictionary.
ls_ptpt.tar.gz - Portuguese rules and dictionary.
ls_ruye.tar.gz - Russian YE rules and dictionary.
ls_ruyo.tar.gz - Russian YO rules and dictionary.

NOTE: The binary versions of the executables held on the site include
the platform name as part of the executable name i.e. me for DOS is
called medos.exe. On installing the binaries onto the target machine,
you should rename the executable to me or me.exe, whatever is
appropriate. The ONLY exception to this rule is the Microsoft Windows
executable where mewin32.exe should be renamed to me32.exe. Our
reason for this naming is to allow the executables to be unpacked in
the same directory and not be confused with each other.

Installation Directories
The suggested installation structure for all platforms is defined as:-

jasspa
/ | \
/ | \
/ | \
spelling macros company

This directory structure is suggested to facilitate upgrades in the future
and to keep user data separate from the system macros. MicroEmacs
understands this directory structure.

The directory structures are defined as:

macros
The standard macro distribution, as supplied by JASSPA.

spelling
Spelling dictionaries.

company
Company wide local definitions for the local site. This directory may
be omitted if not applicable. Header templates (.etf are typically
copied from the macro directory to the company directory and modified
for the local site.

The search order is defined as root, company, macros, spelling.

UNIX Installation (System Wide)
A system wide installation on UNIX for multiple users adheres to
conventional package installation methods.

Distribution Components Required:
jasspa-me--YYYYMMDD.gz
jasspa-metree-YYYYMMDD.tar.gz
.gz
jasspa-mehtml-YYYYMMDD.tar.gz (optional)

Installation:
It is recommended that the macro files are placed in a standard shared
system directory. The standard directory locations searched by MicroEmacs
are defined on a per-platform basis, only one of the directory locates is
selected, as follows:

HP-UX SunOS AIX Cygwin
IRIX UnixWare ***BSD Linux NeXT
/opt/jasspa: y y y y y y n n n
/usr/share/jasspa: y y y y y y y n n
/usr/local/jasspa: y y y y y y y y y
/usr/local/share/jasspa: n n n n y n n n n

* Create the directory /usr/local/jasspa.
* Unpack and install the jasspa-metree-YYYYMMDD.tar.gz into this
directory.
* If spelling dictionaries are required then place them in the spelling
sub-directory created when metree was unpacked. Unpack and install
the spelling into this directory.
* If the standard icons are required for Gnome, KDE or some other
window manager then create the sub-directory /usr/local/jasspa/icons
and unpack and install the icons into the new directory.
* Unpack (or build) the executable and place in "/usr/local/bin"

The executable may now be run by all users. If the macros are placed in a
non-standard directory location then the environment variable
MEINSTALLPATH(5) to define the root jasspa tree.

For csh(1) users execute a "rehash" command and then me(1) can be executed
from the command line.

By default a X-Windows terminal is displayed, ensure that $DISPLAY and
$TERM are correctly configured. To execute a terminal emulation then
execute me with the -n option i.e. "me -n". Note that this is not
required if you are using a vt100 emulation.

When MicroEmacs is executed the local directory ~/.jasspa is created for
the user settings. The user home directory may be changed by setting the
environment variable $MEPATH(5).

UNIX Installation (Single User)
Where the user is not permitted to install 3rd party applications in the
system directories then MicroEmacs may be installed locally as follows:-

* Create the directory ~/.jasspa.
* Unpack and install the jasspa-metree-YYYYMMDD.tar.gz into this
directory.
* If spelling dictionaries are required then place them in the spelling
sub-directory created when metree was unpacked. Unpack and install
the spelling into this directory.
* If the standard icons are required for Gnome, KDE or some other
window manager then create the sub-directory ~/.jasspa/icons and
unpack and install the icons into the new directory.
* The user files will be placed in the ~/.jasspa directory by default.
To keep the user macros separate then the directory
~/.jasspa/$LOGNAME may be created and will identified as the users
home directory.
* Unpack (or build) the executable and place in "~/bin"

MicroEmacs may be executed after it has been re-hashed (depending on the
shell).

DOS Installation
MS-DOS has no concept of a standard installation directory. The location
of the MicroEmacs macros is generally determined from the directory
location of the executable.

Executable:
Compiled with DJGPP V1.0

Distribution components required:
jasspa-me-msdos-djgpp1-YYYYMMDD.zip
jasspa-metree-YYYYMMDD.zip
.zip

mewinhlp.zip if you are using windows 3.1/3.11

Recommended installed components:
grep - Version of grep (djgpp recommended)
make - Version of make (djgpp recommended)
diff - Version of diff (djgpp recommended)

Installation:
This installation relies on the executable position.

* Create the directory c:\jasspa (or other location)
* Unpack and install the jasspa-metree-YYYYMMDD.zip into this
directory.
* If spelling dictionaries are required then place them in the spelling
sub-directory created when metree was unpacked. Unpack and install
the spelling into this directory.
* Unzip the executable and place it in the jasspa root directory
c:\jasspa.
* Edit "c:\autoexec.bat" and add the following lines:-

SET PATH=%PATH%;c:\jasspa

* Reboot the system.
* MicroEmacs may be run from the command line using me.

Graphics Cards:
MicroEmacs may be configured to the text modes of your graphics card.
Refer to you graphics card DOS text modes to identify the text modes
supported by your monitor. The text mode number may be entered into the
user monitor configuration, defined in Tools -> User Setup.

Running DOS Version From Windows (3.x)
The MS-DOS version of MicroEmacs may be executed from a .pif file.
Use the pif editor to create a new .pif file to launch MicroEmacs.
The size of the DOS window may be configured from the command line,
set the terminal size using one of the following command lines:-

me -c -v$TERM=E80x50 - 80 x 50 window
me -c -v$TERM=E80x25 - 80 x 25 window.

We usually add the -c option so that MicroEmacs is executed with
history information. This may be omitted if required.

Microsoft Windows 3.1/3.11
Executable:
Compiled with Microsoft Developer 2.0

Helper DLL:
Under Win32s a helper DLL methnk16.dll is required to perform the
pipe-shell-command(2) in a synchronous manner. This should be installed
into the C:\WINDOWS\SHELL directory. This (rather inelegantly) gets around
the problems of spawning a process under win32s due to a number of
Microsoft bugs in the operating system. Note: that on a spawn operation a
MS-DOS window is visible, this is due to the nature of the command shell
on this platform which has a tendency to prompt the user at every
opportunity, hence a certain amount of interaction (which is out of our
control) is necessary.

The helper DLL is compiled with a 16-bit Windows compiler - MSVC 1.5.

Distribution components required:

jasspa-me-ms-win32s-YYYYMMDD.zip
jasspa-metree-YYYYMMDD.zip
jasspa-mewinhlp-YYYYMMDD.zip
.zip

Recommended installed components:

4dos - command shell (giving stderr redirection)
grep - Version of grep (GNU port of grep recommended)
diff - Version of diff (GNU port of grep recommended)
make - use nmake or GNU port of make.

Ifwin32s is a requirement on this platform, typically taken from
pw1118.exe which freely available on the Internet.

Installation:
This version of Windows does not have a install directory as '95/'98 and
it is expected that the MS-DOS version will coexist. No Install Shield
installation is provided. Install in a directory structure similar to
MS-DOS. Install the helper DLL methnk16.dll in the C:\WINDOWS\SHELL
directory. Create a me32.ini(8) file in the C:\WINDOWS directory to
identify the location of the MicroEmacs 2009 components, this much the
same as the '95/'98 file, change the directory paths to suite the install
base.

Support Status:
The win32s release has not been used with vengeance, although no specific
problems have been reported with this release.

Windows 95/98/NT/2K/XP
Executable:

Compiled with Microsoft Developer 6.x

Install Shield

An Install Shield version of MicroEmacs is available which includes
all of the distribution components.

Distribution components required:

jasspa-mepkg-ms-win32-2004030.zip

Recommended installed components:

grep - Version of grep (GNU port of grep recommended)
diff - Version of diff (GNU port of grep recommended)
make - use nmake or GNU port of make.

A good source of UNIX native tools is

http://unxutils.sourceforge.net/ - for native windows grep, diff, zip
etc.
http://www.cygwin.com - for a shell environment.

Installation:

* Create the directory "c:\Program Files\Jasspa\MicroEmacs" (or other
location)
* Create the sub-directory c:\Program Files\Jasspa\MicroEmacs\macros.
Unpack and install the memacros.zip into this directory
* If spelling dictionaries are required then create the directory
c:\Program Files\Jasspa\MicroEmacs\spelling. Unpack and install the
spelling into this directory.
* Unzip the executable components into "C:\Program
Files\Jasspa\MicroEmacs"
* Create a short cut to MicroEmacs for the Desktop

Right click on the desk top

=> New
=> Short
=> Command Line: "c:\Program Files\Jasspa\MicroEmacs\me.exe -c"
=> Short Cut Name: "MicroEmacs"

MicroEmacs may be executed from the shortcut.

Open Actions Microsoft Windows 95/98/NT provide short cut actions,
assigning an open action to a file. The short cuts may be installed from
the Install Shield installation, but may alternatively be explicitly
defined by editing the registry file with regedit(1).

A file open action in the registry is bound to the file file extension, to
bind a file extension .foo to the editor then the following registry
entries should be defined:-

[HKEY_CLASSES_ROOT\.foo]
"MicroEmacs_foo"
[HKEY_CLASSES_ROOT\MicroEmacs_foo\DefaultIcon]
"C:\Program File\JASSPA\MicroEmacs\meicons,23"
[HKEY_CLASSES_ROOT\MicroEmacs_foo\Shell\open]
"&Open"
[HKEY_CLASSES_ROOT\MicroEmacs_foo\Shell\open\command]
"C:\Program File\JASSPA\MicroEmacs\me32.exe -o "%1""

In the previous example the DefaultIcon entry is the icon assigned to the
file. This may be an icon taken from meicons.exe (in this case icon number
23), or may be some other icon. The open action in the example uses the -o
option of the client-server, which loads the file into the current
MicroEmacs 2009 session, alternatively the -c option may be used to retain
the previous context, or no option if a new session with no other files
loaded is started.

A generic open for ALL files may be defined using a wild-card, this may be
used to place a MicroEmacs edit entry in the right-click pop-up menu, as
follows:-

[HKEY_CLASSES_ROOT\*\shell]
[HKEY_CLASSES_ROOT\*\shell\MicroEmacs]
"&MicroEmacs"
[HKEY_CLASSES_ROOT\*\shell\MicroEmacs\command]
"C:\Program File\JASSPA\MicroEmacs\me32.exe -o "%1""

ORGANIZING A LOCAL USER PROFILE
MicroEmacs uses local user configuration profiles to store user specific
information. The user information may be stored in the MicroEmacs
directory, or more typically in a users private directory. On login
systems then the user name and user private directory location is
automatically determined from the system.

The user name identified by MicroEmacs is $user-name(5) this value may be
set or re-defined using the environment variable $MENAME(5). On MS-DOS and
early windows systems where there is no user login then then $MENAME(5)
may be defined in the environment.

The location of the user information depends upon your platform and
installation configuration. The private directory identified by MicroEmacs
is $user-path(5) this location may be changed by defining the environment
variable $MEUSERPATH(5).

Microsoft Windows users may use the me32.ini(8) file to define MicroEmacs
configuration path and name information.

User Profile Files
Files contained in the user profiles typically include:-

.emf - The users start up profile - .emf.
.edf - The users spelling dictionary.
.erf - The users registry configuration file.

These files are automatically set up by MicroEmacs. These files are
established from the menu "Tools -> User Setup". The "Setup Path" item
defines the location of the files, but must be MANUALLY included in the
$MEPATH environment.

Company Profiles
Company profiles include standard files and extensions to the standard
files which may be related to a company, this is typically .emf
where is the name of the company.

The directory may also include template files etf(8) files which defines
the standard header template used in the files. Files in the "company"
directory would over-ride the standard template files.

SEE ALSO
$user-name(5), $user-path(5), $MEINSTALLPATH(5), $MENAME(5), $MENAME(5),
$MEPATH(5), $MEUSERPATH(5), Company Profiles, File Hooks, File Language
Templates, User Profiles.

USER PROFILES
This section describes how a user profile should be incorporated into
MicroEmacs 2009. A user profile defines a set of extensions to MicroEmacs
which encapsulates settings which are used by an individual user.

The user profile allows:-

* Saving of the last session (history), allowing the next invocation of
MicroEmacs 2009 to restore your previous session. The -c option to
me(1) restores a previous sessions buffers to the same state prior to
exiting the editor.
* Personalized spelling dictionaries.
* Redefinition of MicroEmacs 2009 operation, allowing the editor to be
tailored to an individual's requirements. Including the re-binding of
keys, modification of the screen colors. Definition of personal
macros etc.

Identification
In order to identify a user MicroEmacs 2009 uses information in the system
to determine the name of the user, and in turn the configuration to use.
On all systems the value of the environment variable $MENAME(5) takes
priority over any other means of user identification. If this variable is
not defined then the host system typically provides a mechanism to
determine the current user. MS-DOS and Microsoft Windows systems present
problems where a login prompt is not used.

Each of the supported platforms are now described.

UNIX The login name is determined from the /etc/passwd file and defines
$user-name(5). The environment variable $MENAME(5) may be defined
alter the default user configuration file name.

DOS MS-DOS typically has no concept of the user name. The user name may
be defined in the autoexec.bat file, choose a name of 8 characters or
less, i.e. to fix the user name to fred then add the following line:-

SET MENAME=fred

Remember to re-boot the system before the new command takes effect.
(see the next step, there is another change to autoexec.bat).

Microsoft Windows
Microsoft windows environments may, or may not, have login enabled.
If login is enabled then $user-name(5) is set to the login user name.
The login name may be overridden by setting the environment variable
$MENAME(5) this may be performed in the environment or through the
me32.ini(8) file.

Shared Platforms
Platforms may share the same set of configuration files. Consider a system
which may boot under MS-DOS, Windows '98, NT and Linux. Provided that the
macro files are located on a file system that may be mounted by all of the
other operating systems and the $MEUSERPATH(5) and $MEPATH(5) are set
appropriately to point to the users private MicroEmacs and system
directories, then a single set of macro files may be shared across all
platforms.

Personal MicroEmacs Directory
The private user profile is stored in a separate directory. The directory
that MicroEmacs uses is typically automatically created at start up, but
may be created manually by the user. If the directory is to be placed in a
special location then the $MEUSERPATH(5) environment variable should be
defined and set to point at this directory location.

UNIX In the UNIX environment then the local directory is typically created
in the users home directory obtained from the /etc/passwd file and is
called ~/.jasspa. MicroEmacs will automatically look for this
directory and set the $user-path(5) variable to this value. The
location may be overridden by setting the environment variable
$MEUSERPATH(5) to reference a different directory location.

DOS For MS-DOS environments, there is typically no user directory, it is
suggested that the user directory is created in the MicroEmacs
directory, use the $MENAME defined in the previous step i.e.

mkdir c:\jasspa\fred

Change or add the environment variable $MEUSERPATH(5) in the
autoexec.bat to include the new directory i.e.

SET MEUSERPATH=c:\jasspa\fred

Windows
In Microsoft Windows environment using Explorer 4.0 or later then a
user application data directory exists ($APPDATA) and MicroEmacs will
create a directory jasspa in this directory location to hold private
data. If there is no such data area then all user configuration is
stored in the executable directory location (or a sub-directory
called $user-name(5)).

The user data area $user-path(5) may be modified by creating a new
directory and setting the environment variable $MEUSERPATH(5) to
point to this new directory location. The location be specified by a
meuserpath entry in the me32.ini(8) file rather than setting the
environment variable $MEUSERPATH(5).

Creating Your Profile
On starting MicroEmacs for the first time then the user is guided through
the configuration file setup to create any local configuration files. Once
set up then MicroEmacs may be configured using the user-setup(3) dialog:-

Tools -> User Setup

The User Profile
Files created in the user directory include:-

* Setup registry and previous session history $user-name.erf (see
erf(8)). This stores the user-setup settings and the context from
previous edit sessions.
* Users start-up file $user-name.emf (see emf(8)). This is typically
referred to as "user.emf" in the documentation and means the users
private MicroEmacs macro file. The user may make local changes to
MicroEmacs in this file, this may include definition of new key
bindings, defining new hook functions etc. You should override the
standard MicroEmacs settings from your start-up file rather than
modifying the standard MicroEmacs files.
* Personal spelling dictionary lsdplang.edf (see edf(8)). Multiple
spelling dictionaries may be created, one for each language. Any
words that are added to the spelling dictionary are stored in these
files.

In addition to the above, if new private macro files are constructed then
they should be added to this directory (if they are not global to the
company).

EXAMPLE
The following are examples of some individuals start-up files:-

; Jon's special settings
;
; Last Modified <190698.2226>
;
; Macro to delete the whitespace, or if an a word all of the
; word until the next word is reached.
define-macro super-delete
set-variable #l0 0
!while ¬ &sin @wc " \t\n"
forward-char
set-variable #l0 &add #l0 1
!done
!repeat
!force forward-char
!if $status
set-variable #l0 &add #l0 1
!endif
!until &or &seq @wc "" ¬ &sin @wc " \t\n"
#l0 backward-delete-char
!return
!emacro
; Make a previous-buffer command.
define-macro previous-buffer
&neg @# next-buffer
!emacro
; spotless; Perform a clean and remove any multi-blank lines.
define-macro spotless
-1 clean
!emacro
; comment-adjust; Used for comments in electric-c mode (and the other
; electic modes. Moves to the comment fill position, saves having to mess
; around with comments at the end of the line.
0 define-macro comment-adjust
; delete all spaces up until the next character
!while &sin @wc " \t"
forward-delete-char
!done
; Fill the line to the current $c-margin. We use this as
; this is the only variable that tells us where the margin
; should be.
!if &gre $window-acol 0
backward-char
!if &sin @wc " \t"
forward-delete-char
!jump -4
!else
forward-char
!endif
!endif
; Now fill to the $c-margin
&sub $c-margin $window-acol insert-string " "
!emacro
; Macro to force buffer to compile buffer for C-x '
define-macro compile-error-buffer
!force delete-buffer *compile*
change-buffer-name "*compile*"
!emacro
;
; Set up the bindings.
;
global-bind-key super-delete "C-delete"
global-bind-key beginning-of-line "home"
global-bind-key end-of-line "end"
global-bind-key undo "f4"
!if &seq %emulate "ERROR"
global-bind-key comment-adjust "esc tab"
global-bind-key comment-adjust "C-insert"
; Like a korn shell please.
ml-bind-key tab "esc esc"
!endif
;
; Setup for windows and UNIX.
;
; Define my hilighting colour for Windows and UNIX.
!if &equ &band $system 0x001 0
!if ¬ &seq $platform "win32"
; Small bold font is better for me.
change-font "-*-clean-medium-r-*-*-*-130-*-*-*-*-*-*"
!endif
!endif
; Change the default diff command-line for GNU diff utility all platforms
set-variable %diff-com "diff --context --minimal --ignore-space-change --report-identical-files --recursive"
set-variable %gdiff-com "diff --context --ignore-space-change -w"
; Setup for cygwin
!if &seq $platform "win32"
set-variable %cygwin-path "c:/cygwin"
set-variable %cygwin-hilight 1
!endif
; Set up the ftp flags. The letters have the following meaning:
; c - Create a console (*ftp-console* for ftp, *http-console* for http)
; s - Show the console
; p - Show download progress ('#' every 2Kb downloaded)
set-variable %ftp-flags "csp"
; Info files
;To hilight the .info and also the dir file
add-file-hook ".info dir" fhook-info ; Info-files
;To hilight all info files without the extension .info
;but starting with the text "This is info file..
-2 add-file-hook "This is Info file" fhook-info

; Finished
ml-write "Configured to Jon's requirements"

SEE ALSO
user-setup(3), $search-path(5), $user-name(5), $user-path(5),
$MEINSTALLPATH(5), $MENAME(5), $MEPATH(5), $MEUSERPATH(5), me32.ini(8),
Company Profiles, File Hooks, File Language Templates, Installation.

COMPANY PROFILES
This section describes how a company profile should be incorporated into
MicroEmacs 2009. A company profile defines a set of extensions to
MicroEmacs which encapsulate settings which are used on a company wide
basis. This type of configuration is typically used with a networked
(shared) installation. The company profile would typically include:-

* Name of the company.
* Standard header files including company copyright statements.
* Standard file layouts
* Company defined language extensions.

Location Of The Company Information
It is suggested that all of the company extensions applied to MicroEmacs
2009 are performed in a separate directory location which shadows the
MicroEmacs standard macro file directory. This enables the original files
to be sourced if a user does not want to include the company files. This
method also allows MicroEmacs to be updated in the future, whilst
retaining the company files.

The company files are generally placed in the company sub-directory
described in the installation notes.

Content Of The Company Information

Company macro file
The company file is typically called by the company name (i.e.
jasspa.emf) create a new company file. The file includes your company
name and hook functions for any new file types that have been defined
for the company, an example company file for Jasspa might be defined
as:-

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Author : Jasspa
; Created : Thu Jul 24 09:44:49 1997
; Last Modified : <090829.1633>
;
; Description Extensions for Jasspa
;
; Notes
;
; History
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Define the name of the company.
set-variable %company-name "Jasspa"
; Add Jasspa specific file hooks
; Make-up foo file hook
add-file-hook ".foo" fhook-foo
1 add-file-hook "-!-[ \t]*foobar.*-!-" fhook-foo ; -!- foobar -!-
; Override the make with localised build command
set-variable %compile-com "build"

The file contains company specific file hooks and the name of the
company.

Other Company Files
Files defined on behalf of the company are included in the company
directory. These would include:-

* Template header files etf(8).
* Hook file definitions (hkXXX.emf) for company specific files,
see add-file-hook(2).
* Extensions to the standard hook definitions (myXXX.emf) for
company specific language extensions to the standard hook files.
See File Hooks and File Language Templates.

SEE ALSO
$MEINSTALLPATH(5), $MENAME(5), $MEPATH(5), File Hooks, File Language
Templates, Installation, user-setup(3), User Profiles.