Initial commit.

This commit is contained in:
Mid Favila 2022-02-08 15:11:56 -04:00
commit 230e5ec41d
115 changed files with 11471 additions and 0 deletions

CHANGES Normal file
View File

@ -0,0 +1,27 @@
2022-02-08 Mid Favila <>
* Set version to 3.0.2.
* Revert to Makefile build system.
* Remove e-mail handling capabilities.
2013-03-24 Thomas Cort <>
* Version 3.0.1 released.
* Security Fix: be more careful with the handling of .serc files. Now the
euid of se must match the owner of the file and the file must not be
writable by any other users in order for se to execute it. Thank you
to Matthias Kilian of the OpenBSD project for alerting me to this issue.
2013-03-06 Thomas Cort <>
* Version 3.0 released.
* Convert the build system to automake/autoconf.
* Modernize the K&R style function prototypes. Resolve compiler warnings.
* Use safer versions of string functions (snprintf, strncpy, etc).
* Rename some functions to avoid naming conflicts (delete, index, etc).
* Port to Linux, BSD, GNU, Haiku, Minix, OpenSolaris, and others.
* Add support for termios, make termio the fallback.
* Remove hardcoded paths, get them from autoconf now.
* Use syslog for optional usage logging instead of a file in /usr/tmp.
* Add a sample .serc file.

COPYING Normal file
View File

@ -0,0 +1,6 @@
The se source code and associated files are in the public domain.
There are a few output files from autoconf/automake (configure, Makefile, etc)
which contain copyright notices. Those notices give unlimited permission to
copy and/or distribute the files, with or without modifications, as long as
the notices are preserved.

NEWS Normal file
View File

@ -0,0 +1,19 @@
2022.02.08 - Convert to Makefile build system.
2022.02.07 - Forked se 3.0.1.
2013.03.24 - se 3.0.1 has been released. This is a security release. It is
recommended that all users upgrade. The release fixes
insecure handling of .serc files. The new behaviour is
to ignore .serc files that aren't owned by the euid of
the se process and .serc files that are writable by
other users. No other changes are included in this
release. Thank you to Matthias Kilian of the OpenBSD
project for alerting me to this issue.
2013.03.06 - se 3.0 has been released. This release includes major portability
enhancements and build system changes. The old makefile based
build system has been replaced with a slick new autotools
configure script. This, combined with some code modernization,
allows se to build and run on a variety of platforms. See the
ChangeLog for details.

README Normal file
View File

@ -0,0 +1,39 @@
MSE, or the Minimal Screen Editor, is a screen-oriented version of the
Unix editor ed. It contains a number of quirks, and is somewhat
idiosyncratic at times, but if you're patient I think you'll find it
rather enjoyable.
When I came across it (looking for an ed with a UI), I decided to start
writing patches removing obsolete and unneeded code - eventually these
will turn into my own version of a screen-oriented ed.
This is the source code for the text editor, se ('Screen Editor').
se is a screen oriented version of the classic UNIX text editor ed.
The editor implements many of the commands of ed, but instead of
being line oriented, se is screen oriented.
Se started out as the version of 'ed' that came with the book 'Software
Tools', by Kernighan and Plauger, which was written in Ratfor. On the Pr1me
computers at the School of Information and Computer Science at Georgia Tech,
Dan Forsyth, Perry Flinn, and Alan Akin added all the enhancements suggested
in the exercises in the book, and some more of their own. Jack Waugh made
extensive modifications to turn it into a screen editor; further work was done
by Dan Forsyth. All of this was in an improved Georgia Tech version of Ratfor.
Later, Dan Forsyth, then at Medical Systems Development Corporation,
converted the Ratfor version into C, for Berkeley Unix (4.1 BSD). At Georgia
Tech, Arnold Robbins took the C version and added many new features and
improvements, the most important of which was termcap support and System V
support. The existing help screens were edited and completed at that time, as
well. This was completed in early 1985.
In early 2013, Thomas Cort continued maintenance of se, modernizing
the code base and build system to support current POSIX operating systems.
Thomas' primary motivation is to preserve this bit of computing history.
His goals are to squash any remaining bugs and make se as portable as
possible. No major new features will be added. He can be reached at

TODO Normal file
View File

@ -0,0 +1,30 @@
This file lists potential improvements for future versions of se.
- Remove code not related to supporting *nix
- Remove any non-portable (ideally POSIX but de facto works too) code
- Remove any code not related specifically to editing (email notifs, etc)
- Adjust line-editing to be more intuitive (maybe use a simple line-edit
- Figure out why there appears to be a line limit on current file. Fix.
- Revert autotools build to makefile-based. [DONE - 2022/2/8]
- tutorial (like vimtutor or `C-h t` in emacs) [not necessary]
- texinfo manual [use mandoc]
Port to the following operating systems:
- FreeDOS [just no]
(this is a high cost, low reward target, but it might be
an interesting platform to support).
Other Improvements:
- Better usage() output with useful explainations.
- add a test suite (should be easy since we have scriptse already).

help/ Normal file
View File

@ -0,0 +1,11 @@
# This file is in the public domain.
helpdir = $(datadir)/@PACKAGE@/help
help_DATA = a abt ah arg2 args b bang bug c cc ccmisc chardel charins colon \
com comdir comsyn d dir e eh elp equal f g h i j k l list ln m \
motion n o o- oa oc od of og oh oi ok ol olm om os ot ou ov ow ox \
oy oz p pat patex q quote r rpt s scan serc shell specl t termchar \
tilde u v w x y z

help/ Normal file
View File

@ -0,0 +1,406 @@
# generated by automake 1.11.6 from
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# This file is in the public domain.
VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
esac; \
test $$am__dry = yes; \
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
transform = $(program_transform_name)
subdir = help
DIST_COMMON = $(srcdir)/ $(srcdir)/
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
am__installdirs = "$(DESTDIR)$(helpdir)"
DATA = $(help_DATA)
CC = @CC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
helpdir = $(datadir)/@PACKAGE@/help
help_DATA = a abt ah arg2 args b bang bug c cc ccmisc chardel charins colon \
com comdir comsyn d dir e eh elp equal f g h i j k l list ln m \
motion n o o- oa oc od of og oh oi ok ol olm om os ot ou ov ow ox \
oy oz p pat patex q quote r rpt s scan serc shell specl t termchar \
tilde u v w x y z
all: all-am
$(srcdir)/ $(srcdir)/ $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign help/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign help/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/ $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-helpDATA: $(help_DATA)
@list='$(help_DATA)'; test -n "$(helpdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(helpdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(helpdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(helpdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(helpdir)" || exit $$?; \
@list='$(help_DATA)'; test -n "$(helpdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(helpdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
ctags: CTAGS
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
for dir in "$(DESTDIR)$(helpdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
if test -z '$(STRIP)'; then \
install; \
else \
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
html: html-am
info: info-am
install-data-am: install-helpDATA
install-dvi: install-dvi-am
install-html: install-html-am
install-info: install-info-am
install-pdf: install-pdf-am
install-ps: install-ps-am
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
ps: ps-am
uninstall-am: uninstall-helpDATA
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-helpDATA \
install-html install-html-am install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
uninstall-am uninstall-helpDATA
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

help/a Normal file
View File

@ -0,0 +1,16 @@
a -- Append command
default range syntax
. a
"a" is for appending new lines of text after a given line. If
no line number is typed before the "a", text will be appended
after the current line. The last line appended becomes the
current line. To signal the end of the appended text, you
type a "." on a line by itself. Control characters "f", "v",
"l", and "k" work differently for "a" command than for "v".
"a:" works as a one line append (i.e. anything following the
colon is appended after the current line).
To return to the command directory, type "hcomdir."
See also: "hcc" (control characters) and "hc" (change).

help/abt Normal file
View File

@ -0,0 +1,12 @@
Abort character
CTRL-F ("Funny Return") character is used to abort a "v"
command before all the specified lines have been modified.
Typing it causes the current line to be restored to its state
of before the "v" command was begun, and causes a return to
the editor's command level.
Type "hv" for a description of the "v" command.
Type "hrpt" for CTRL-F's meaning if in append or command mode.
Type "htermchar" for info about other termination characters.

help/ah Normal file
View File

@ -0,0 +1,6 @@
If you're running Berkeley Unix, and you're bored
Type the following command for something enjoyable:

help/arg2 Normal file
View File

@ -0,0 +1,16 @@
Arguments (cont)
Once the terminal type is established, the remaining arg-
uments are interpreted thus: if the argument begins with a
"-", the rest of it is interpreted as though it appeared after
the "o" in an option command. For example, an argument of
"-w10" acts as a command "ow10". On the other hand, if the
argument does not begin with "-", it is interpreted as a file
name (path- name). The named file is read into the edit
buffer, and its name becomes the remembered file name. If
more than one file is named, the edit buffer will contain the
contents of all the files. If an error is encountered while
interpreting arguments (file not found, illegal option), the
remainder will be ignored.
For invoking command syntax, type "hargs".

help/args Normal file
View File

@ -0,0 +1,9 @@
Argument Handling
The syntax for 'se's invoking command is usually given as
se {-<option> | <pathname>}
It is suggested that you set up a command file that will
automatically invoke 'se' with the options that you like.
To see how the remaining arguments are treated, type "harg2".
To return to the general help directory, type "hdir".

help/b Normal file
View File

@ -0,0 +1,7 @@
There is no "b" command.
To return to the command directory, type "hcomdir."

help/bang Normal file
View File

@ -0,0 +1,11 @@
! --- exclude on markname
default range syntax
1,$ !<m>command
Similar to the "x" prefix, except that "command" is performed
for all lines in the range that do not have the mark name <m>.
To return to the command directory, type "hcomdir".

help/bug Normal file
View File

@ -0,0 +1,10 @@
There is a limit (MAXLINE - 2) on the number of characters
in a line. Se's MAXLINE is currently 512, so this isn't too much
of a problem.
If a filename is absent when invoked, all of the
options are not processed.
To go all the way back to the general help display, type "h".
To go back to the general help directory, type "hdir."

help/c Normal file
View File

@ -0,0 +1,14 @@
c -- Change command
default range syntax
.,. c
"c" first deletes the range of lines determined by the line
numbers (default ".,."), then enters append mode so that you
can type lines to replace the deleted lines. Append mode is
terminated with a dot on a line by itself, as with the Append
command. "c:" works as a one line change (i.e. what is after
the colon replaces the current line).
To return to the command directory, type "hcomdir."
See also "ha" and "hd"

help/cc Normal file
View File

@ -0,0 +1,13 @@
Control characters can be used for correcting typing mistakes,
for correcting commands that have incurred an error message,
or for editing the edit buffer ("inline editing") via the "v"
command. The novice should be told right away that hitting
the DEL or RUBOUT key is a way to erase an erroneous command.
General Help Directory. . . . . . . . . . . . . . hdir
Other Control Characters. . . . . . . . . . . . . hccmisc
Character Insertion Control Characters. . . . . . hcharins
Termination Control Characters. . . . . . . . . . htermchar
Character Deletion Control Characters . . . . . . hchardel
Cursor Motion Control Characters. . . . . . . . . hmotion

help/ccmisc Normal file
View File

@ -0,0 +1,11 @@
Miscellaneous Control Characters
CTRL-Z toggles an indicator that acts as a "shift lock",
controlling case mapping on alphabetics typed.
CTRL-Q signals the editor that you suspect that for some
reason the screen is garbaged. The response is to clear and
restore the screen.
Type "hcc" to get back to the control character directory.

help/chardel Normal file
View File

@ -0,0 +1,12 @@
Character Deletion Control Characters
Gobble one character
to left of cursor CTRL-U
at cursor CTRL-R
Gobble all characters
to left of cursor CTRL-Y
at and to right of cursor CTRL-T
on entire line DEL (a. k. a. RUBOUT)
"hdir" gets you back to the general help directory.
Type "hcc" to get back to the control character directory.

help/charins Normal file
View File

@ -0,0 +1,14 @@
Character Insertion Control Characters
CTRL-C inserts a blank at the cursor position.
CTRL-X inserts blanks to the next tab stop at the cursor position.
CTRL-A toggles Insert Mode.
When Insert Mode is in effect, any printing character typed is
inserted into the line, with characters at and to the right of
the cursor moving over to make room. When Insert Mode is not
in effect, any printing character typed will replace (overlay)
the character at the cursor.
To return to the directory of control characters, type "hcc".

help/colon Normal file
View File

@ -0,0 +1,12 @@
: -- Page command
default range syntax
. :
":" is for paging the active area one page (n-1 lines)
For paging backward, see "hp"
See also: "hcc" (control characters) and "hc" (change).
To return to the command directory, type "hcomdir."

help/com Normal file
View File

@ -0,0 +1,10 @@
When the "cmd>" prompt appears near the bottom of the screen,
a command may be typed. Commands work for the most part the
same way as commands to 'ed', the Unix system text editor with
which you may be familiar.
To return to the general help directory, type "hdir".
For information about specific commands, type "hcomdir".
For details on command syntax, type "hcomsyn".

help/comdir Normal file
View File

@ -0,0 +1,18 @@
Command Directory
The following are the full names of one-letter commands
Append Change Delete Enter File Global
Help Insert Join marK Locate Move Name
Option Page Quit Read Substitute To
Undelete oVerlay Write eXclude translYterate
For info about one of these commands, type "h" followed by
whichever letter is capitalized in the command name above.
Other commands and their help commands are:
print value hequal global on mark hquote
miscellany hz exclude on mark htilde
shell escape hshell .serc file hserc
There are still more commands; to see them type "hspecl".

help/comsyn Normal file
View File

@ -0,0 +1,14 @@
Command Syntax
A command consists of an optional list of LINE NUMBERS,
followed by a COMMAND LETTER, possibly followed by parameters
allowed or required for a specific command. Preceeding all
this, there can be a GLOBAL PREFIX preceeded optionally by a
list of line numbers. Hence the whole syntax is:
[[<list>]<global prefix>][<list>]<command letter>[<stuff>]
For general information about commands, type "hcom".
For information about specific commands, type "hcomdir".
For GLOBAL PREFIX syntax and semantics, type "hg".
For LINE NUMBER LIST syntax and semantics, type "hlist".

help/d Normal file
View File

@ -0,0 +1,14 @@
d -- Delete command
default range syntax
.,. d
"d" is used to delete lines of text from the buffer. The
lines in the range specified by the line number list are
deleted. The positioning of the current line pointer after
execution of the "d" command is controlled by the "d" option;
see "hod". The normal behavior is to make the first line
AFTER the lines deleted the new current line.
To return to the command directory, type "hcomdir."
See also "hod".

help/dir Normal file
View File

@ -0,0 +1,10 @@
To go back to the general description, type "h"
For info on the 'se' invoking command, type "hargs"
For a discussion of commands, type "hcom"
For a description of 'se's problems, type "hbug"
To learn about control characters, type "hcc"
For info on options, type "ho"

help/e Normal file
View File

@ -0,0 +1,16 @@
e -- Enter command
default range syntax
n/a e[! | x] [file name]
"e" prevents one from having to exit and reenter the editor to
edit a different file. "e" empties the edit buffer, reads a
file, and resets the remembered file name. If [file name] is
omitted, the remembered file name is used. [!] is used to
override a check made to prevent you from accidently losing a
buffer that has not been saved (same as in "q"). [x] is used
to turn tab expansion on when reading the file in. Se will
expand environment variables that start with $ in file names.
To return to the command directory, type "hcomdir."
See also: "hq"

help/eh Normal file
View File

@ -0,0 +1,11 @@
You are standing at the end of a road before a small brick building.
around you is a forest. A small stream flows out of the building and
down a gully.
You are inside a building, a well house for a large spring.
There are some keys on the ground here.
There is a shiny brass lamp nearby.

help/elp Normal file
View File

@ -0,0 +1,17 @@
You are using 'se', the Georgia Tech screen editor which is
based upon the editor described in the book SOFTWARE TOOLS, by
Brian W. Kernighan and P. J. Plauger (Addison-Wesley,
1976). The screen-oriented modifications (and some others)
are by Jack Waugh and Perry Flinn. Dan Forsyth translated
the Ratfor into C. Arnold Robbins modified the editor to use
the Berkeley termlib library, making the editor terminal inde-
pendant. Most of this 'help' is courtesy of Bob Gordon of
Prime Research, as amended by Arnold Robbins. The descrip-
tion before you now is invoked by the "h" (help) command.
For a description of the 'help' command, type "hh".
Find out what the help command can tell you - type "hdir".
This is version 3.0. It is maintained by

help/equal Normal file
View File

@ -0,0 +1,12 @@
= -- Display Line Number command
default range syntax
. =
"=" is for determining the number of the current line
that you are editing.
To return to the command directory, type "hcomdir."
See also: "hoa"

help/f Normal file
View File

@ -0,0 +1,16 @@
f -- File command
default range syntax
n/a f [file name]
"f" is used to print or reset the name of the current file
being edited. f [file name] resets the name for the current
file. This filename is used by the "w", "e", and "r" com-
mands when no parameters are provided. f does not change
the "ok" toggle. f with no parameters prints out the remem-
bered name. In file names, Se will expand any enviroment
variables that start with a $.
To return to the command directory, type "hcomdir." See
also: "he", "hw", "hr", and "hok".

help/g Normal file
View File

@ -0,0 +1,14 @@
g -- Global command
default range syntax
1,$ g/pattern/command
"g" is used to perform an editing command on all lines that
match the "pattern". "pattern" is any legal pattern and
command is an editor command. The "x" command is the converse
of "g" and performs the command on all lines that do not match
the pattern. The "/" may be any character.
To return to the command directory, type "hcomdir."
See also: "hx" and "hpat".

help/h Normal file
View File

@ -0,0 +1,12 @@
h -- Help command
default range syntax
n/a h[ null | parameter]
Typing "h" followed by any character string simply displays
the contents of the se help script of that name at the top of
the screen (provided the script exists). The scripts are
files in the directory '/usr/local/share/se/help'. If the
scriptname is omitted, "elp" is assumed.
To see a general directory of help scripts, type "hdir".

help/i Normal file
View File

@ -0,0 +1,18 @@
i -- Insert command
default range syntax
. i
"i" is for inserting new lines of text before a given line.
If no line number is typed before the "i", text will be
inserted before the current line. Lines are continually
inserted before the original line, which has the same effect
as append does. To signal the end of the inserted text, you
only need to type a "." on a line by itself. Control
characters "f", "v", "l", and "k" work differently for "i"
command than for "v". "i:" works as a one line insert, similar
to "a:".
To return to the command directory, type "hcomdir."
See also: "hcc" (control characters) and "hc" (change) and

help/j Normal file
View File

@ -0,0 +1,15 @@
j -- Join command
default range syntax
^,. j[/string[/]]
"j" is used to join the specified lines into a single line.
If "string" is present, it is inserted between each pair of
lines joined. If not, a single blank is used. "j/" is the
same "j//", i.e., no string at all will be inserted between
the joined lines. The "/" may be any character. The
trailing delimiter is optional.
To return to the command directory, type "hcomdir."

help/k Normal file
View File

@ -0,0 +1,12 @@
k -- marK command
default range syntax
.,. k<single-character-name>
"k" is used to mark lines with the given name.
If no character is provided, the current label(s) in the
range are removed.
To return to the command directory, type "hcomdir."
See also: "hln" and "hn".

help/l Normal file
View File

@ -0,0 +1,16 @@
l -- Locate command
default range syntax
none l
The Locate command places the system name into the status
line (e.g. "gatech" or "gitpyr"). This is so that you
can tell what machine you are using from within the screen
editor. This is particularly useful for installations with
many machines that can run the editor, where you are able
to switch back and forth between them, and become confused
as to where you are at a given moment.
To return to the command directory, type "hcomdir."

help/list Normal file
View File

@ -0,0 +1,15 @@
List (of line numbers)
A line number list consists of one or more LINE NUMBERs sep-
arated with commas or semicolons. The last two line numbers
in the list usually specify the scope of a command. For
example, "5,7d" means delete lines 5 through 7. If the list
consists of only one line number, it is equivalant to a list
with that line number written twice with a comma separating.
The sense of the semicolon is to set the CURRENT LINE POINTER
to the value of the line number before the semicolon before
evaluating the line number after it, whose value may depend
upon the value of the current line pointer.
For command syntax, type "hcomsyn".
For LINE NUMBER syntax and semantics, type "hln".

help/ln Normal file
View File

@ -0,0 +1,17 @@
Line Numbers
A LINE NUMBER refers to a line in the edit buffer. The
lines are always numbered sequentially starting with 1. A
line number can be expressed as an integer, as "." meaning
the CURRENT LINE, "^" or "-" meaning the line before the
current line, "$" meaning the last line, as a PATTERN
enclosed in "/" slashes for a forward scan, as a pattern
enclosed in "?" question marks for a backward scan, as a
MARK NAME preceeded by "<" for a backward search or by ">"
for a forward search, or as any additive combination of the
above by joining them with operators "+", "-", or nothing
(meaning "+").
Type "hlist" for line number list syntax.
For details on scans and searches, type "hscan".

help/m Normal file
View File

@ -0,0 +1,12 @@
m -- Move command
default range syntax
.,. from-here,to-here m there
"m" is used to move lines form one place in the buffer to
To return to the command directory, type "hcomdir."
See also "ht"

help/motion Normal file
View File

@ -0,0 +1,14 @@
Cursor Motion Control Characters
Moving the cursor one position:
left CTRL-H
right CTRL-G
down CTRL-K
Moving to the next tab stop:
left CTRL-E
right CTRL-I
Moving all the way to the left: CTRL-W
Moving to the current right end of the line: CTRL-O
Type "hcc" for general information about control characters.

help/n Normal file
View File

@ -0,0 +1,11 @@
n -- Name command
default range syntax
.,. n<single-character-name>
"n" is used to uniquely mark a line. if the same mark name is
already on other lines, it will be removed from them.
To return to the command directory, type "hcomdir." See also
"hk" and "hln"

help/o Normal file
View File

@ -0,0 +1,15 @@
o -- Option
The "o" (option) command allows any of several variables that
affect the editor's behavior to be set or tested. The
behavior of the "o" command depends upon what is typed after
the "o".
To find out about specific options, type "hoa", "hoc", "hod",
"hof", "hog", "hoh", "hoi", "hok", "hol", "holm", "hom", "hos",
"hot", "hou", "hov", "how", "hox", "hoy", "hoz", or "ho-".
To see how to set options with the command that invokes 'se',
type "hargs".
To return to the command directory, type "hcomdir".

help/o- Normal file
View File

@ -0,0 +1,16 @@
o- -- Option - (dash)
default range syntax
1,$ o-[line number]
The "-" option controls the placement on the screen of a row
of dashes, which normally is off the screen above the top line
or hiding behind the bottom line of the help display. The
"window" through which you look at the edit buffer is the por-
tion of the screen BELOW the row of dashes but above the
command line (when it exists) or status line at the bottom.
"o-" alone puts the row of dashes above the top line; "o-"
followed by a SINGLE TERM line number puts it in place of the
line referred to on the screen, if possible.
For general information about the option command, type "ho".

help/oa Normal file
View File

@ -0,0 +1,17 @@
oa -- Option Absolute
default range syntax
1,$ oa
"oa" toggles the Absolute line numbers flag, which determines
whether the numbers in the left margin shall be absolute line
numbers, or the (usually capital) letters that refer to lines
by the position at which they are being displayed on the
screen. In any case, the current line is always shown as "."
(with the "->" arrow to make it easy to find), the first line
in the buffer is labeled "1", and the last, "$" (when not
"."). Lines can be referred to by letter ONLY when the
letters appear in the left margin.
For general information about the option command, type "ho".
See also "hln" for how lines can be referred to in commands.

help/oc Normal file
View File

@ -0,0 +1,16 @@
oc -- Option Case
default range syntax
1,$ oc
The "c" (case) option toggles the same case mapping flag that
is toggled by the CTRL-Z control character, but also changes
the marginal line letters to lower case (or back to upper), so
that typing a shifted letter will still refer to a line, and
typing an unshifted letter will do for a command letter. This
is useful for handling large amounts of upper case text, such
as Fortran programs.
For general information about the option command, type "ho".
See also "hoa".
Fortraners see also "hof".

help/od Normal file
View File

@ -0,0 +1,16 @@
od -- Option Delete
default range syntax
1,$ od[<|>]
The "d" option is for Delete direction. Typing "od<" fixes it
so that after you give a "d" command, the line BEFORE the
group of lines deleted becomes the current line (.). Typing
"od>" resets the normal behavior, in which the current line
pointer is always positioned AFTER the group of lines deleted
by the "d" command, if possible (Deleting the last line makes
the new last line the current line). Typing "od" alone
queries the delete direction flag, causing ">" or "<" to be
For general information about the option command, type "ho".

help/of Normal file
View File

@ -0,0 +1,16 @@
of -- Option Fortran
default range syntax
1,$ of
Typing "of" turns on a package of options considered
convenient for editing Fortran. The warning column is set
to 72, and tab spacing is set to 7 +3 so that tabbing once
gets you to column 7. Tab expansion is also turned on
(XTABS). To undo "of" it is necessary to type "ot+3" and
For general information about the option command, type "ho".
See also "oa".

help/og Normal file
View File

@ -0,0 +1,16 @@
og -- Option Global
default range syntax
1,$ og
The "g" option controls the behavior of the Substitute command
when it is under the control of a Global command. Initially,
if a substitute inside a global command fails, se will not con-
tinue with the rest of the lines which might succeed. If "og"
is given, then the global substitute will continue, and lines
which failed will not be affected. Succesive "og" commands will
toggle this behavior. An explanatory message is placed in the
status line.
For general information about the option command, type "ho".

help/oh Normal file
View File

@ -0,0 +1,17 @@
oh -- Option Hardware Insert/Delete
default range syntax
1,$ oh
The "h" option controls the use of hardware line
insert/delete on terminals that have that capability. By
default, line insert/delete will be used if available. It
is occasionally useful to turn this option off when using
the editor on a terminal which can't keep up, or if the com-
munications lines may be scrambling the control characters.
Each successive "oh" merely toggles a switch within the
editor. An explanatory message is placed in the status
For general information about the option command, type "ho".

help/oi Normal file
View File

@ -0,0 +1,13 @@
oi -- Option Indent
default range syntax
1, $ oi[a | <indent>]
"oi" selects the indent value for lines inserted with "a" and
"i" commands (initially 1). "a" selects auto-indent which sets
the indent to the value which equals the indent of the previ-
ous line. If neither "a" nor "<indent>" is specified, the
current value of indent is displayed.
For general information about the option command, type "ho".

help/ok Normal file
View File

@ -0,0 +1,12 @@
ok -- Option OK
default range syntax
1,$ ok
Typing "ok" simply tests the flag that indicates whether the
edit buffer has been saved since the last change was made to
it. "Saved" or "Not saved" is accordingly displayed in the
remark field at the bottom of the screen.
To return to the option directory, type "ho".
See also "hq".

help/ol Normal file
View File

@ -0,0 +1,14 @@
ol -- Option Line
default range syntax
1,$ ol[$ | . | # | BLANK]
The "l" option is the Line number monitoring option. Typing
"l" followed by "$" constantly displays the last line number
in the file (current length of the file). Typing "l" followed
by "." constantly displays the current line number. This
usually make sense only in conjunction with the "oa" option,
that uses letters for line names.
For general information about the option command, type "ho".
See also: "hoa" and "hequal".

help/olm Normal file
View File

@ -0,0 +1,14 @@
olm -- Option Line Margin
default range syntax
1,$ olm[<col>]
Sets the left margin to <col> which must be a positive integer.
This shifts the entire screen to the left; the characters that
were in columns 1 through <col> - 1 will not be visible. You
may continue editing in the normal fashion. To reset your screen
to normal, enter the command "olm 1". If <col> is omitted, the
current left margin column is displayed in the status line.
For general information about the options command, type "ho".

help/om Normal file
View File

@ -0,0 +1,18 @@
om -- Option Mail
default range syntax
1,$ om
"om" is an option which allows the user control over whether
or not he will be notified about pending mail. Typing "om"
simply toggles the switch controlling notification.
The default is for the editor to notify the user about his
mail. The mail box which the editor uses is taken from the
environment variable MAIL. If the mail box exists, but is empty
the user will not be notified.
To read your mail, use a shell escape on whichever of the fol-
lowing programs is appropriate:
Mail msg mail

help/os Normal file
View File

@ -0,0 +1,15 @@
os --- option source
default range syntax
1,$ s[as | c | d | data | f | h | n | nr | nroff | p | r | s]
This option sets other options for case, tabs, etc.
as, s -- assembler files c -- C files
d, data -- data files f -- fortran files
h -- header files n,nr,nroff -- nroff source files
p -- pascal files r -- ratfor files
See the manual page for details.
For general information about the options command, type "ho".

help/ot Normal file
View File

@ -0,0 +1,17 @@
ot -- Option Tab
range syntax
1,$ ot[[[+]integer [+]integer]]
"ot+3" sets the spacing between tab stops. The default value
when 'se' comes up is 3. Typing "ot" by itself causes the
current value of the parameter to be displayed. As an example
of how tabs are spaced out, if ot+6 is in effect, tab stops are
at 7, 13, 19, etc.
Variable tabs can be set by typing "ot 5 13 24 .. ". if you
do not prefer equally spaced ones.
See also "hof".
For general information about the option command, type "ho".
For more about the use of tab stops, type "hmotion".

help/ou Normal file
View File

@ -0,0 +1,17 @@
ou -- Option Unprintable
default range syntax
1,$ ou[character]
The "u" option is for monitoring unprintable characters.
Typing "ou" by itself will return the current character used
to display unprintable characters. If it is ' ' (blank), then
unprintable characters are not checked and may mess up the
display. Typing "oux" where "x" is a printable character will
turn on character checking and display "x" everytime an
unprintable character is encountered. Unprintable characters
are not disturbed in the file, but can be "edited" out.
See also hccmisc for refreshing the display.
For general information about the option command, type "ho".

help/ov Normal file
View File

@ -0,0 +1,14 @@
ov -- oVerlay Option
default range syntax
1,$ ov[integer]
The "v" option is the overlay column number. Typing "ov"
followed by a space and a number sets the column that the
cursor will be positioned at when issuing the "v" command.
Typing "ov $" will position the cursor at the end of the line.
Typing "ov" by itself will display the current value.
See also hmotion.
For general information about the option command, type "ho".

help/ow Normal file
View File

@ -0,0 +1,14 @@
ow -- Option Warning
default range syntax
1,$ ow[integer]
The "w" option is the Warning column number. Typing "ow"
followed by a number sets the warning column threshold; simply
typing "ow" causes its current value to be displayed. When
you are about to type into a column of equal or greater number
than the warning column, the number of the column you are
about to type into is displayed on the bottom line along with
the string "col ".
For general information about the option command, type "ho".

help/ox Normal file
View File

@ -0,0 +1,16 @@
ox -- toggle tab compression/expansion
default range syntax
. ox
"ox" turns compression of tabs on or off. If a file
has tabs in it, they will be expanded if compres-
sion is on. Otherwise they will be left alone, and
will show up as the default unprintable character.
The message "XTABS" will be displayed in the status
line if tab compression is on.
Type "hdir" to go back to the general help directory.
Type "ho" for help on the option command.

help/oy Normal file
View File

@ -0,0 +1,15 @@
oy --- option encrYption
default range syntax
1,$ oy[key]
This option allows you to edit encrypted files. oy followed by a key
will cause e, r, and w, commands to encrypt and decrypt files using
crypt(1). oy will toggle the current encryption setting. If there
is no current key, se will ask you for one. If encryption is turned
on, it will be turned off. Encryption in indicated by the message
"ENCRYPT" in the status line. The key is never shown on your screen.
Type "ho" for help on the option command.
Type "hdir" to go back to the general help directory.

help/oz Normal file
View File

@ -0,0 +1,12 @@
oz -- option sleep (zzzz's)
default range syntax
1,$ oz
If you are running "sh", this option has absolutely no effect at
all. If you are running the "csh", this option will suspend se
in the background. Se will issue a warning if the buffer has
not been saved, when this is done.
For general information about the option command, type "ho".

help/p Normal file
View File

@ -0,0 +1,14 @@
p -- Print/Previous screen command
default range syntax
see below [range] p
"p" prints a range of lines or the previous screen (when no
range is provided). The line pointer is set to the last line
printed (a new screen may be printed). When the previous
screen is printed, the first line on the current screen be-
comes the line pointer, usually the last line on the screen
(exception is when the first page is printed).
To return to the command directory, type "hcomdir."
See also "hspecl"

help/pat Normal file
View File

@ -0,0 +1,15 @@
A PATTERN is a string of characters that specifies a set of
possible strings of characters that are said to MATCH the
pattern. Most characters in patterns stand for themselves,
but there are metacharacters: "." that matches any
character, "*" that along with the previous character, matches
any number of repetitions of it (including none), "^" for
beginning of line, "$" for end of line, and characters in
brackets "[]" to match any of the characters. The special
sense of metacharacters and of the delimiters in which the
pattern is enclosed can always be turned off by preceeding
them with the escape character "\".
See also "hs", "hg", "hx" for uses of patterns.
For the use of patterns in line numbers, type "hscan".
For examples of pattern matches, type "hpatex".