Message-ID: <bnews.cca.4248>
Newsgroups: net.emacs
Path: utzoo!decvax!cca!z
X-Path: utzoo!decvax!cca!z
From: cca!z
Date: Thu Jan 13 05:53:30 1983
Subject: New CCA EMACS Distribution
Posted: Tue Jan 11 19:26:54 1983
Received: Thu Jan 13 05:53:30 1983

A new version of EMACS has now been released by CCA.  A number of
important new features have been added since the last release, including
word abbreviation mode, visible marks, and the ability to run shells
inside buffers.  Starting with this version, the following new
distribution policy applies:

A CCA EMACS licence is now available for $850 ($350 for educational
institutions).  The license is valid for a single CPU; quantity
discounts are available.  Those sites interested in purchasing a license
should send me their name and address, and I will send them a pair of
license forms to be filled out.  Upon receipt of two completed forms
plus the appropriate fee, CCA will execute the license and send one
completed form to the applicant, along with a tape containing CCA EMACS
(including sources), a complete manual, and command charts.

Major updates of CCA EMACS are available to license holders for $300.
Until March 15th, current users of CCA EMACS who do not hold licenses
may also get the latest release for $300.  After March 15th, the rates
quoted in the previous paragraph apply to everyone.

License forms may be obtained by contacting me through uucpnet at
decvax!cca!z, or through the U.S. mail at the following address:

					Steven Zimmerman
					Computer Corporation of America
					Four Cambridge Center
					Cambridge, MA 02142
					(617) 492-8860

The phone number listed is effective Monday, January 10th, 1983.

Message-ID: <bnews.cca.4253>
Newsgroups: net.emacs,net.usoft
Path: utzoo!decvax!cca!z
X-Path: utzoo!decvax!cca!z
From: cca!z
Date: Wed Jan 19 01:59:28 1983
Subject: Description of CCA EMACS
Posted: Sun Jan 16 19:02:50 1983
Received: Wed Jan 19 01:59:28 1983

Since I announced the availability of CCA EMACS last week, I have been
flooded with questions such as "What is CCA EMACS?", "What are its major
features?", etc.  I am posting the following in the hope that it will
answer many of these questions.  I will be happy to answer further
questions personally.

	Steve Zimmerman
	decvax!cca!z


CCA EMACS is a powerful screen editor closely based on the original
EMACS written at MIT.  It currently runs on VAXes running Berkeley's
4.0BSD or 4.1BSD.  Some of its major features are:

- An interactive spelling checker and corrector, which allows the user
  to step through his text, pausing at each spelling error.  The user
  can either correct the error himself, or have EMACS suggest possible
  correct spellings.

- Text filling, justifying, and centering commands, which can work on
  lines, paragraphs, or arbitrary regions of text.

- A word abbreviation mode, which allows words, phrases, or arbitrary
  regions to be abbreviated by a few characters.  Abbreviations may be
  saved for use in later editing sessions.

- A directory editor which allows viewing and deleting of files and
  directories, as well as editing their protection fields.

- A crash recovery feature using keystroke files as protection against
  machine crashes.  An auto save mode is also available.

- A "Make" command for automatic compilation of programs, with an
  interface which provides easy location of errors.

- The ability to run a shell and arbitrary subprocesses asynchronously
  in a buffer.  Up to five such shell buffers may be present and in
  operation at any one time.

_ Virtually complete compatibility with ITS EMACS.  All major features
  of ITS EMACS (with the temporary exception of an extension language)
  and most minor features are included in CCA EMACS.

- Multiple editing buffers (up to 200), which allow the user to easily
  alternate editing between different files in the same session.

- Two window mode, which allows two different buffers (or two different
  parts of the same buffer) to be displayed on the screen at once.  The
  user can adjust the size of each window.

- Keyboard macros, which allow a user to encode a frequently used series
  of commands into a single command.  A keyboard macro is defined by
  executing the commands which are its definition, so there are no
  special macro conventions to remember.  Multiple keyboard macros may
  be defined in a single editing session, and they may be saved in
  libraries for later use.

- A "Tags" package, which allows EMACS to move directly to any C
  function or variable in any file, without the user's having to know
  what file the function or variable is in.

- Commands to pass regions of text through arbitrary Unix filters.

- A ring of sixteen marks, which allow a user to mark various places in
  the buffer.  These marks may be used as place holders, or they may be
  used to delimit regions for other commands.  Each buffer has its own
  ring of marks.

- A kill ring of sixteen levels, which automatically retains text which
  the user has deleted.  Text can be later retrieved from any level of
  the kill ring into the current buffer.  The same kill ring is used
  across all buffers, which makes it easy to transfer text from one
  buffer to another.

- A set of 37 named registers (known as Q-registers) which are useful
  for storing numbers, marks, or text.

- A full set of commands for manipulating rectangular regions.  These
  are useful for operations such as moving columns around in tables.

- An Auto Fill mode, which causes text to automatically be broken into
  separate lines once it reaches a user settable right margin.

- An Undo facility, which allows the last change to the buffer to be
  undone.

- Extensive online documentation, ranging from self-documenting commands
  to an interactive tutorial to a full hierarchical online manual,
  complete with its own specialized reading program.

- A full set of forward and backward movement, deletion, and
  transposition commands for characters, words, sentences, paragraphs,
  program expressions, and arbitrary regions.

- Powerful search and replace commands, which do case independent
  matching at the user's option.  There is also a Query Replace command,
  which allows the user to decide at each occurrence of the specified
  string whether that occurrence should be replaced or not.  All search
  and replace commands have variations which use Unix regular
  expressions, and all may optionally traverse buffer boundaries.

- Optional numbering of the lines in the buffer by EMACS.

- More than 50 user settable variables, which allow each user to
  customize EMACS in the way he or she prefers.  The local variables
  feature allows the same variable to have different settings for
  different buffers.

- Dynamic key binding, which allows users to determine themselves which
  commands they want to have bound to which keys.

- Init files, which allow variable setting and key binding to be
  automatically done at the beginning of each editing session.

Message-ID: <bnews.cca.4298>
Newsgroups: net.emacs
Path: utzoo!decvax!cca!t-krgr
X-Path: utzoo!decvax!cca!t-krgr
From: cca!t-krgr
Date: Thu Feb  3 05:07:58 1983
Subject: Evaluation of CCA EMACS
Posted: Wed Feb  2 13:09:29 1983
Received: Thu Feb  3 05:07:58 1983

I lead a team of UNIX software engineers at Translation Systems Inc. in Boston.
We are re-hosting System III (soon to be V) to the National Semiconductor 16000
series architecture.  (Yes, we are installing a full demand paging system in
the first release;  no, we aren't involved with the NS/HCR port.)

In the process, we have been among the very few external organizations using
the current release of CCA EMACS.  Our experience with C-E dates back to early
fall 1982, on a VAX-11/780 system maintained by CCA in Cambridge.  Members of
our team have used Gosling's EMACS; our company is also a test site for another
version of EMACS that runs on a PR1ME system in-house.  (Since we are a test
site, that version will NOT be discussed here.)  Collectively, we have used
a bunch of other editors on various systems, some interesting (old and new
EDT for RSX, EDT for VMS, TECO, Fastedit, etc etc), and some we'd rather forget
(how about the MPX-32 v1.4 line editor?).

Preferences in editors rank right up there with politics, religion and
salary as dangerous topics of conversation.  I won't spend time here defending
the extent of my objectivity here other than to mention that the information
presented here can be independently verified easily.  I would like
to hear of conflicting views, with concrete data.

1. Always my favorite point of comparison, reliability.  We have NO experience
with C-E failures, over a period of over 4 months of very heavy use.
We have of course been on the system during some significant hardware
(disk) failures, cases in which the C-E crash recovery has proven very
helpful since it is based on journal files and edit history directories that
remember the contents of buffers and the keystokes that apply to each buffer.
When you go into crash recovery, it plays a 'movie' of the edit session up to
the last few keystrokes before the crash.  You then continue the edit as you
wish.  Very nice!  (Regular Auto-Save is available, too.)

2. Features worthy of note:
	- The commands are built-in, with none of the delays and processing
		attendant with the 'libraries' approach; this makes it seem
		more time-effective to learn and use the less common commands.
		(There are 379 commands at last count.)
	- To the degree that they can, the command keystrokes make sense in
		an effort has obviously been made to keep some orthogonality
		for related functions.
	- Mark and point can delimit a rectangular area on the screen, where
		neither need be at the beginning of a line.  These rectangular
		regions can be opened, filled, etc., which makes it possible
		to manage columns of information.
	- Use of the named kill buffers and mark buffers don't require use of
		any extension language; they can be used right in the normal
		editing mode.
	- Shell-in-buffer: you aren't limited to one (limit is currently 5).
	- The spelling checker has a corrector option in which it will suggest
		alternate spellings.
	- No extension language; sorry, hackers.  Personally, if I need LISP,
		I write a LISP procedure;  with C-E, there is less need for
		such horsing around.

3. Documentation.  The manual is extensive, but approachable.  Also quite good
are the on-line tutorial, on-line help, in-command help, and INFO-type
documentation.  The extent of the documentation is unusual even for a software
product of this genre.  I use a relatively wide variety of commands, largely
without the use of the printed documentation (in favor of the on-line
information.)  Worthy of note is the fact that C-E capabilities ARE documented;
ever find out that your editor could do some strange function all along
(while you spent a late evening creating a very imaginative extension
language procedure)?

4. Performance.  We pay for connect time and cpu time on a VAX with daytime
loads of 25-35 logged-in users, so we pay attention to how things go in an
edit (where most of our time is spent).  Eight C-E users typically show
a user load of less than 2.0, and it shows in general editor response
and resource charges.  Even with a considerable system load, C-E has some
snap which makes it easier to concentrate on the real problems.

5. Product Considerations:
	- Price is $850 per VAX system, which speaks for itself.  The only
		better deal I know of is the UNIX PL/I-G compiler due out this
		summer (for about the same price).
	- C-E doesn't use multiplexed files, and will be released for use
		under 4.2BSD (as well as 4.1BSD).  Note well, users of other
		EMACS products!
	- CCA is easy to contact and ready to sell now.  The product is
		delivered in source form, and maintenance will be via
		source modification.
	- C-E is compatible to a large degree with ITS EMACS, the PDP-10
		and PDP-20 version of EMACS.  Someone familiar with ITS can
		sit down and begin using C-E right away.
	- Since termcap is used, there is a good chance for support of
		the usual mongrel collection of in-house terminals.


Now the inevitable question: what negative aspects of C-E or any EMACS haven't
been mentioned?  In my opinion, the perfect editor will simply require you to
think of the code(*).  In the meantime, find the most reasonable editing tool.
EMACS' truly negative aspect: you must use your fingers.

See?  We avoided politics and religion!


Mike Krueger
Translation Systems, Inc.
138 Brighton Ave.
Allston, MA  02134
617-254-3482


* When that day arrives, we'll probably verify the suspicion that programmers
  don't think about code.

Message-ID: <bnews.ucbvax.988>
Newsgroups: fa.info-vax
Path: utzoo!decvax!ucbvax!info-vax
X-Path: utzoo!decvax!ucbvax!info-vax
From: ucbvax!info-vax
Date: Tue Mar  1 02:09:42 1983
Subject: CCA EMACS Notices
Posted: Sun Feb 27 21:34:48 1983
Received: Tue Mar  1 02:09:42 1983

>From GEOFF@SRI-CSL  Sun Feb 27 21:31:31 1983
Received: by UCBVAX.ARPA (3.314/3.5)
	id AA08010; 27 Feb 83 21:33:34 PST (Sun)
Mail-From: ARPANET host SANDIA rcvd at 6-Jan-83 1118-PST
To: info-vax@CCA-UNIX
Remailed-Date: 27 Feb 1983 0857-PST
Remailed-From: the tty of Geoffrey S. Goodfellow  <Geoff5 at SRI-CSL>
Remailed-To: Info-VAX@SRI-CSL.ARPA: ;

To users of CCA EMACS: 

The following two notices were inadvertently omitted from a number of
copies of CCA EMACS which were distributed.  If you have a copy of CCA
EMACS without these notices, please add them to the README file and to
the tape containing CCA EMACS.  Thank you.


Copyright 1982 by Computer Corporation of America as an unpublished
work.  All rights reserved.  In claiming any copyright protection which
may be applicable, CCA reserves and does not waive any other rights that
it may have with respect to this material.  See notice of Proprietary
Rights.

PROPRIETARY RIGHTS.  The CCA EMACS programs recorded on this tape or
disk or printed in this listing are the property of Computer Corporation
of America.  Reproduction, copying, and/or disclosure to others of all
or any part of these programs in this or any form is prohibited except
pursuant to a written license agreement with CCA.


					Joseph Jarzembowski, Counsel
					Computer Corporation of America


Note:  A message describing current availability of CCA EMACS will
shortly be sent to the newsgroup net.usoft by Steven Zimmerman.  If you
do not receive this newsgroup, you can contact him directly at
decvax!cca!z, or through U.S. Mail at

					Steven Zimmerman
					Computer Corporation of America
					Four Cambridge Center
					Cambridge, MA 02139

Message-ID: <bnews.cca.4490>
Newsgroups: net.general,net.emacs
Path: utzoo!decvax!cca!z
X-Path: utzoo!decvax!cca!z
From: cca!z
Date: Fri Mar 25 08:30:32 1983
Subject: EMACS Survey
Posted: Thu Mar 24 09:01:31 1983
Received: Fri Mar 25 08:30:32 1983

I'm conducting a survey of EMACS usage on Unix machines.  If your machine
has an EMACS or EMACS-like editor, please drop me a note letting me know

1. The name of the editor and its author
2. Which machines it runs on
3. Approximately how many people use it

If you don't know the answers to all of these questions, please tell me
what you do know.  If you are using more than one EMACS-like editor, 
please answer for all of them.  I'll post a summary of the results to
net.emacs.  Thank you.

	Steve Zimmerman
	decvax!cca!z
	z@cca

Message-ID: <bnews.sri-arpa.712>
Newsgroups: net.emacs
Path: utzoo!decvax!decwrl!sun!megatest!fortune!hpda!hplabs!sri-unix!utah-gr!
thomas@utah-cs
X-Path: utzoo!decvax!decwrl!sun!megatest!fortune!hpda!hplabs!sri-unix!utah-gr!
thomas@utah-cs
From: thomas@utah-cs
Date: Wed Mar 30 01:31:39 1983
Subject: EMACS Survey
Posted: Fri Mar 25 16:49:10 1983
Received: Wed Mar 30 01:31:39 1983

We've got
1. Montgomery's emacs (called emacs)
2. Gosling's emacs (called gemacs)
3. CCA emacs (called zemacs) (But I'm not sure if it's the latest version
				It may be the last "free" one.)
=Spencer

Message-ID: <bnews.cca.4599>
Newsgroups: net.emacs
Path: utzoo!decvax!cca!z
X-Path: utzoo!decvax!cca!z
From: cca!z
Date: Wed Apr 20 05:56:45 1983
Subject: CCA EMACS pricing
Posted: Sun Apr 17 10:14:20 1983
Received: Wed Apr 20 05:56:45 1983

Since the question has arisen, I thought I should clarify the pricing
policies for CCA EMACS.

The price for a single CPU license is $850; additional CPU's are $680
each.  For machines designed to support four or fewer users, the price
is $475 for the first CPU and $380 for each additional CPU.  Educational
institutions get a flat $350 rate for each CPU of any type.  These are
full source licenses.

Although CCA EMACS doesn't yet have an extension language, the existing
keyboard macro library facility is quite powerful.  For example, one of
users has used it to make his EMACS automatically come up looking just
like EDT.  Nevertheless, there is no substitute for a full extension
language, and such a language is in the works.  It will be a true small
Lisp, including such niceties as garbage collection.  A large amount of
work has already been done on it, although not much since our marketing
department took over direction of EMACS a few months ago.  They plan to
continue funding the extension language as soon as EMACS starts
generating revenue, which should be very soon as we are about to start
shipping out tapes.  The priority that the extension language gets
depends on the demand that our marketing department perceives exists for
it.  If you would be interested in buying CCA EMACS if it had an
extension language, please send me a message saying so.  If I can
deliver a whole pile of such messages to our marketing department, I
assure you that they will become very interested in getting the
extension language finished and out the door soon.

We do not intend to raise the price of CCA EMACS once the extension
language is released.  For existing CCA EMACS customers, it will be
available at the normal update charge of $300; this one charge will
cover all currently licensed CPU's.

As some people know, actual distribution of CCA EMACS has been held up
for several months by our legal department, who was taking all this time
drawing up the licenses.  They finally finished the licenses on Friday,
and we have begun mailing them out.  There's quite a backlog, so it may
take a couple of weeks to get forms to everyone who requested them.
However, the major bottleneck has been cleared, so tapes should be going
out soon to all who want them.

	Steve Zimmerman
	decvax!cca!z
	z@cca

Message-ID: <bnews.cca.4699>
Newsgroups: net.emacs
Path: utzoo!decvax!harpo!seismo!hao!hplabs!sri-unix!cca!z
X-Path: utzoo!decvax!harpo!seismo!hao!hplabs!sri-unix!cca!z
From: cca!z
Date: Tue May 17 09:45:39 1983
Subject: New version of CCA EMACS
Posted: Wed May 11 12:04:10 1983
Received: Tue May 17 09:45:39 1983

Both the buffer management and display management routines of CCA EMACS
have been completely rewritten from scratch.  The result of this effort
has been a significant increase in both the efficiency and capability of
the editor.

CCA EMACS has always had a reputation for being fast, and the algorithms
used in the buffer manager were a major reason for this.  However, these
algorithms had the problem that their efficiency significantly decreased
once the size of the file being edited exceeded the internal buffer
size.  In previous versions of CCA EMACS, the size of the internal
buffer was 512K, so this problem was rarely noticed.  However, when
reading in large files of a megabyte or so, the problem became quite
obvious.  The new buffer manager does not suffer this problem at all.
Using the same 512K internal buffer, the user CPU time required to read
in a 1.2 megabyte file was reduced by a factor of six.  Even when the
size of the buffer was reduced down to 8K, the new routines were still a
factor of five faster than the old ones.  For files less than the size
of the internal buffer, the speed of the old and new routines is
comparable.

One additional advantage of the new buffer routines over the old ones is
that the old limit of 1024 characters per line has been raised to 64K
characters per line.  Since even binary files tend to have at least one
byte which looks like an ASCII linefeed every few thousand characters or
so, this effectively means that CCA EMACS can now be used to edit files
in arbitrary formats.  This is very useful for editing EMACS keystroke
files; you can also use it for such things as editing the wizard's
password in the rogue object file.

The display manager was also rewritten from scratch, and I believe that
the algorithms that it uses are close to the optimum possible using a
termcap-based display.  The new display manager uses all of the relevant
termcap fields, so that even really strange terminals should now work
correctly with CCA EMACS as long as their termcap description is
correct.  Other terminals which used to work with EMACS are now
supported better than before; for example, scrolling regions are now
fully supported for VT100's.  The cursor motion routines are much more
intelligent than before, and even use somewhat obscure features such as
absolute horizontal positioning, absolute vertical positioning, and
backtabs, when appropriate.  However, the calculations required for
these optimizations are small, and their cost is miniscule in comparison
to the gain that results from them.  The result is that measurements
have shown these routines to be more efficient than the cursor motion
routines of the vi which came with 4.1BSD, which is the most recent
version I have.  (I have an old version of Gosling's EMACS, and although
my tests show a great difference in efficiency between the display
routines of CCA EMACS and my copy of Gosling's, this is probably not
conclusive since the copy I used is so old.  I would be very interested
in running benchmarks against his current version, however.)

Another improvement in the display manager is that a complete
distinction is now made between buffer lines and screen lines.  This
means that, unlike some other EMACSes, when you type C-V or M-V, you go
forwards or backwards exactly one screenful, regardless of whether there
are any intervening wrapped lines.  This is especially useful for
editing files such as /etc/group, which at large sites may consist
mostly of lines wrapped many times.  Carrying this distinction to its
logical conclusion, going forward a screenful may cause the new screen
to start in the middle of a wrapped line.  This capability was
absolutely necessary in order to permit editing of binary files, where
single lines may extend for more than a screenful.  Giving arguments to
C-V and M-V causes the display to shift the appropriate number of screen
(not buffer) lines.  In general, the new scheme provides the user with a
much more flexible window into any part of the file.

One minor change that was made along the way was that the variables
Screen Height and Screen Width now refer to the size of the total
screen, instead of just the display area.

All orders for CCA EMACS which have been received up till now are being
filled with this new version.

Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!linus!genrad!decvax!cca!z
From: z...@cca.UUCP
Newsgroups: net.general,net.unix-wizards,net.emacs
Subject: Important notice for EMACS users
Message-ID: <4874@cca.UUCP>
Date: Mon, 13-Jun-83 16:51:48 EDT
Article-I.D.: cca.4874
Posted: Mon Jun 13 16:51:48 1983
Date-Received: Tue, 14-Jun-83 04:29:24 EDT
Lines: 48

This notice is directed to all users of CCA EMACS, version 162.35z or
earlier, and users of Montgomery's EMACS (BTL EMACS).

Versions of CCA EMACS up to and including version 162.35z had contained
some portions of Warren Montgomery's EMACS version 4.0, which was
developed by Mr. Montgomery at Bell Laboratories.  Beginning with CCA
EMACS version 162.36z, CCA EMACS no longer contained any of the code
from Mr. Montgomery's EMACS, or any methods or concepts which would be
known only by programmers familiar with BTL EMACS of any version.  CCA
has not shipped any versions of CCA EMACS earlier than version 162.36z
since January, 1983.

On May 19, 1983 CCA was informed that Bell Laboratories considers BTL's
EMACS version 4.0, developed by Mr. Montgomery, to be Bell Laboratories
proprietary information.  They have asked us to notify those persons to
whom we may have distributed Mr. Montgomery's EMACS, or parts thereof,
that Bell Laboratories considers that software to be proprietary and
that its use must be discontinued and all copies in the possession of
these people must be destroyed immediately.

Although CCA no longer uses any of the code asserted by Bell
Laboratories to be proprietary information, we realize that these
assertions by Bell Laboratories may cause some inconvenience.
Therefore, we would like to make the following offer:  If you are using
a version of CCA EMACS earlier than 162.36z, we will replace it with a
version of the current CCA EMACS which has been configured to have the
same capabilities as your present EMACS, but which contains none of Mr.
Montgomery's code.  There will be no charge for this replacement.  All
that we ask is that you sign the standard CCA EMACS license agreement
and send us a tape containing the version of CCA EMACS that you are now
using; we will return the tape with your replacement EMACS.

Although the replacement EMACSes we will be sending out will have
basically the same capabilities as the ones they are replacing, they
will actually be an improvement, since the new routines are superior to
the ones they replace.  However, the replacement copies will not have
all the various features which have been added to CCA EMACS since the
originals were obtained.  If users of these older versions would like to
take this opportunity to upgrade to the current version of CCA EMACS, we
will make this easier by making a one-time offer of $475 per CPU
license, in contrast to the normal $850 for the first CPU and $680 for
additional CPU's.  There is no discount on the educational fee of $350
per CPU.  Both the offer of a free replacement EMACS and the discount
price on the current EMACS are valid through August 15, 1983.

	Steve Zimmerman
	decvax!cca!z
	{allegra,philabs}!linus!cca!z

Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!linus!decvax!cca!z
From: z@cca.UUCP (Steve Zimmerman)
Newsgroups: net.emacs
Subject: CCA EMACS extension language
Message-ID: <5317@cca.UUCP>
Date: Tue, 2-Aug-83 19:07:14 EDT
Article-I.D.: cca.5317
Posted: Tue Aug  2 19:07:14 1983
Date-Received: Wed, 3-Aug-83 04:13:35 EDT
Lines: 13

I am currently porting CCA EMACS to VMS, which should take another couple
of weeks.  Once this is finished, I will be working full time on the
EMACS extension language.  I would be very interested in knowing what
other people think this language should be like.  At this point, I
know that it will be a small but complete Lisp; it will have garbage
collection, so it will be able to support functions like cons and eval.
Beyond this, the design is pretty much open.  I would be interested in
opinions on all aspects of the design, from which Lisp functions should
be built in to which EMACS primitives should be supported.  Though I
can't promise to take all the advice I receive, I will certainly give
careful consideration to all messages sent to me.

	Steve Zimmerman

Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!linus!security!genrad!decvax!cca!z
From: z@cca.UUCP (Steve Zimmerman)
Newsgroups: net.emacs
Subject: Release of CCA EMACS Version 162.42z
Message-ID: <6302@cca.UUCP>
Date: Thu, 15-Dec-83 12:47:50 EST
Article-I.D.: cca.6302
Posted: Thu Dec 15 12:47:50 1983
Date-Received: Sat, 17-Dec-83 03:27:48 EST
Lines: 99

Version 162.42z of CCA EMACS has now been released.  This version
contains several additional features since the last release; the
documentation for these features follows.

Ada Mode

Ada mode is useful for programs written in the Ada language.  The
following commands are specific to Ada mode:

	Tab	    Indent appropriately for the current line.
	C-M-\	    Indent a section of Ada code.
	C-C C-A	    Adjust the case of the current line.
	C-C -	    Unindent one tab stop.

One of the primary functions of Ada mode is to assist the programmer in
indenting Ada code properly.  For this purpose, the function ^R Indent
for Ada is bound to Tab in Ada mode.  A Tab given at the beginning of a
line will indent the line to be lined up with the previous line of code.
If the previous line of code begins with one of the Ada reserved words
which requires additional indentation, then Tab will indent one level
further.  A Tab given anywhere else in the line will indent one
indentation level.  The number of spaces in an indentation level is
specified by the variable Ada Indent; by default it is three.  Since
Linefeed is always defined to be a Return followed by a Tab, typing
Linefeed at the end of a line of Ada code is a good way of automatically
indenting the next line.  It is possible to unindent a level of Ada code
by using the command C-C - (^R Unindent for Ada); this command may be
given an argument in order to unindent multiple levels.  If an entire
section of Ada code needs to be indented properly, this can be done with
the command C-M-\ (^R Indent Region).

The second primary function of Ada mode is to set Ada code automatically
to its proper case.  By convention, Ada reserved words are used in lower
case and user variables are in upper case.  In Ada mode, whenever a
Return or Linefeed is typed, all words in the current line are set
automatically to upper case, with the exception of reserved words,
string literals, and comments.  When a line is modified, its case may be
readjusted in this fashion by using the command C-C C-A (Set Case for
Ada).  Comments in Ada mode are defined to start with two dashes, and
the comment commands work accordingly.  (*Note Comments:  Comments.)

Files which end with the extension ".ada" automatically cause the buffer
to be set to Ada mode when they are read in; this can be changed by
modifying the value of the variable Ada Extension 1.  If a second
extension is also used to denote Ada files, this string can be specified
in the variable Ada Extension 2.

----------

Line Buffering

When displaying large amounts of text, EMACS normally writes characters
to the screen in one kilobyte blocks, which is very efficient and uses a
minimum of machine resources.  However, there are two drawbacks to this
approach.  When a command that causes a large amount of redisplay is
typed, such as C-V (^R Next Screen), there is a short delay before text
begins to be refreshed on the screen.  What is happening is that EMACS
is first filling up its one kilobyte buffer with text to be displayed,
and until this buffer is full nothing is sent to the screen.  Also, once
redisplay is underway, EMACS cannot interrupt it to start redisplaying
something else until the current one kilobyte block has been completely
output.  This is most noticeable on terminals running at low baud rates,
where typing C-V in the middle of a screen refresh usually does not take
effect until many lines later.

The variable Line Buffering exists to address these problems.  When Line
Buffering is set, text is written to the screen after every line, rather
than after every one kilobyte block.  Response to an initial C-V command
is immediate, and C-V commands that are given in the middle of screen
redisplay take effect within three or four lines at most.  (This minimal
delay is due to operating system buffering, and is not easily overcome.)
When the variable Line Buffering is set to 1, it takes effect on
terminals running at 2400 baud or less; when it is set to 2, it takes
effect on all terminals.

There are unfortunately drawbacks to this method as well, which is why
it is not the default.  On very heavily loaded systems, redisplaying a
page of text using line buffering may take up to 80% longer than
redisplaying using block buffering.  On the other hand, on lightly
loaded systems line buffering may actually result in redisplay that is
faster than block buffering by up to 25%, with the increased speed being
due to the increased overlap between the EMACS user-level program and
system I/O.  Because of these performance tradeoffs, users in different
environments will prefer different settings for this variable.

----------

There is now a new command Meta-Space (^R Just One Space), which deletes
all the whitespace around the cursor and replaces it with a single
space.  This command is similar to typing M-\ (^R Delete Horizontal
Space) followed by a space, except that it is easier to type.  Giving a
numeric argument to Meta-Space causes it to insert that many spaces
instead of just one.  This command is an old favorite among many MIT
EMACS users.

The command M-X Create Local Variable now accepts a zero argument, which
is interpreted to mean that an existing local variable should be made
global once again.  The current local value of the variable is replaced
with the global value.

Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!linus!decvax!cca!z
From: z@cca.UUCP (Steve Zimmerman)
Newsgroups: net.emacs
Subject: CCA EMACS for Suns
Message-ID: <6733@cca.UUCP>
Date: Mon, 20-Feb-84 11:23:15 EST
Article-I.D.: cca.6733
Posted: Mon Feb 20 11:23:15 1984
Date-Received: Wed, 22-Feb-84 04:11:31 EST
Lines: 15

CCA EMACS is now available for the Sun Microsystems workstation.  This
version of CCA EMACS is the same one that runs on the VAX, and has all
of the features of the VAX version.  Additionally, it runs inside of
Sun windows.  Tests have shown that CCA EMACS runs significantly faster
than any other screen editor available for the Sun, largely due to its
highly optimized use of the Sun's bitmapped display.

For further information, contact:

	Steve Zimmerman
	Computer Corporation of America
	Four Cambridge Center
	Cambridge, MA  02142
	617-492-8860
	decvax!cca!z

Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!harpo!decvax!cca!z
From: z@cca.UUCP (Steve Zimmerman)
Newsgroups: net.emacs
Subject: Release of CCA EMACS 162.43z
Message-ID: <6908@cca.UUCP>
Date: Wed, 14-Mar-84 10:17:32 EST
Article-I.D.: cca.6908
Posted: Wed Mar 14 10:17:32 1984
Date-Received: Thu, 15-Mar-84 07:17:21 EST
Lines: 136

Version 162.43z of CCA EMACS has now been released.  This version
contains the following new features:

File version numbers

As Unix has moved more into the arena of large operating systems, one
feature that has been noticeably lacking is automatic numbering of file
versions.  In this scheme, when a new file is created with the same name
as an existing file, or when an existing file is modified, instead of
the existing file being replaced with the new file, a file is created
with the same name as the existing file but with a higher version
number.  This feature is usually implemented directly in the operating
system.  However, EMACS has now implemented this feature at the user
level as an extension of the currently existing backup file facility.
If the new variable File Versions is set to a positive number, EMACS
will keep that many numbered versions around as backup files.  It does
so by appending a number directly after the tilde in the backup file
name; succeeding backups receive increasingly higher numbers.  For easy
reference, the highest numbered backup file is always linked to a
standard backup file name that ends only in a tilde.

Associated with this new feature is a modification to the DIRED B
command, which places deletion marks in front of backup files.  The B
command with no argument will now place deletion marks in front of all
backup versions of the current file, which is defined to be the file
named on the line where the cursor is located.  If given an argument,
the B command will place deletion marks in front of all backup versions
of all files.

Buffer and file name completion

EMACS now supports full buffer and file name completion for all commands
that prompt for buffer or file names.  This feature works essentially
the same as M-X command name completion, except that Space has no
special meaning.  Typing an Escape while entering the buffer or file
name will cause EMACS to complete as much of the name is as unambiguous;
if EMACS is able to complete the whole name, it prints a dollar sign at
the end.  If EMACS is unable to complete the name any more than it is
already typed in, it beeps.  Typing a question mark at any point will
cause EMACS to list the possible valid completions for the name at this
point.

Automatic Buffer Names

When the Find File command is used, EMACS uses the last component of the
file name to create a name for the file's buffer.  If the buffer already
exists and contains a different file, EMACS will ask the user what name
to use for the new buffer instead.  If the new variable Automatic Buffer
Names is set, EMACS will not ask the user, but will instead create a new
buffer name by appending a unique number (starting with 2) to the last
component of the file name.

C Mode enhancements

The default size of an indentation level for C mode is eight spaces.  Up
until now, the only way to change this was by modifying the size of a
tab stop.  The disadvantage of this method was that the indentation
level still ended up being eight spaces when the file was printed out or
examined by a program other than EMACS.

The new variable C Indent has been introduced to solve this problem.  C
Indent is by default eight spaces, but can be set to any number, and
represents the actual number of spaces in an indentation level.  EMACS
will indent to the proper level by using the optimum combination of
spaces and tabs unless the variable Indent Using Tabs is zero, in which
case it will use all spaces.

When C Indent is set to its default value of eight, unindenting a level
is easy, as typing Delete will delete a tab stop and thereby unindent
exactly one level.  When C Indent is anything else, unindenting a level
is no longer so easy.  For example, if C Indent is four, the user ends
up either deleting four spaces, or deleting a tab and inserting four
spaces.  For this reason, the command C-C - (^R Unindent for C) has been
introduced.  C-C - will unindent exactly one indentation level, breaking
up tabs if necessary.  If given an argument, C-C - will unindent that
many indentation levels.

Ada Mode

Up until now, the command Set Case for Ada always adjusted the case of
the current line.  This command has now been modified to accept positive
or negative arguments, adjusting the case of that many lines forward or
backward.

Autoarg Mode

Autoarg mode means that you don't need to type C-U to specify a numeric
argument.  Instead, you type just the digits.  Digits followed by an
ordinary inserting character are themselves inserted, but digits
followed by an Escape or Control character serve as an argument to it
and are not inserted.  A minus sign can also be part of an argument, but
only at the beginning.  If you type a minus sign following some digits,
both the digits and the minus sign are inserted.

To use Autoarg Mode, set the variable Autoarg Mode nonzero.
Autoargument digits echo at the bottom of the screen; the first nondigit
causes them to be inserted or uses them as an argument.  To insert some
digits and nothing else, you must follow them with a Space and then rub
it out.  C-G cancels the digits, while Rubout inserts them all and then
rubs out the last.

Changing directories

If you like to have EMACS automatically set a buffer's default directory
to be that of the file that it contains when EMACS finds a file in
another window, you may want to set the variable Change to File's
Directory.  This causes the C-X 4 F and C-C 4 F commands to execute the
command Find File in Directory to read the file into the buffer, instead
of using the default Find File command.

Character searches

EMACS now has two new search commands, ^R Character Search and ^R
Reverse Character Search, which are useful for searching forward or
backward for a single character.  When these commands are executed, they
read a single character from the terminal and then immediately search
for that character.  Their behavior is exactly the same as if you had
started an incremental search and then exited after typing the first
character.  After invoking a character search, a C-A can be used to turn
the search into a string search, a C-R can be used to reverse the
direction of the search, a C-S can be used to search for the last
character searched for by one of these commands, and a C-Q can be used
to quote the next character.  These two commands are not normally bound
to any keys; many people who use them like to bind them to C-S and C-R
and then use the C-A option of these commands to enter a full string
search when necessary.

----------------------

Elisp

Excellent progress is being made on the Elisp extension language for CCA
EMACS.  The core of the interpreter is now operational, and the entire
extension language should be ready for release in a couple of months.
Elisp is a subset of Common Lisp, and will contain all the basic
functions of a true Lisp.