all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* About the history of Emacs
@ 2012-12-14  4:34 Xue Fuqiao
  0 siblings, 0 replies; 3+ messages in thread
From: Xue Fuqiao @ 2012-12-14  4:34 UTC (permalink / raw)
  To: help-gnu-emacs

I have 2 questions about the history of Emacs:

1. What does `Emacs' stand for?
In these pages:
   http://www.finseth.com/emacs.html
   http://www.gnu.org/software/emacs/emacs-faq.html#Origin-of-the-term-Emacs
   http://www.multicians.org/mepap.html#secii
   http://www.codeartnow.com/hacker-art-1/macsimizing-teco
Emacs stands for `Editor MACroS', but in these pages:
   http://www.emacswiki.org/emacs/EmacsHistory
   http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt
Emacs stands for `Editing MACroS'.

2. About the first Emacs.
In these pages:
   http://www.gnu.org/press/2001-10-22-Emacs.html
   http://shop.fsf.org/product/gnu-emacs-manual-16th-edition/
The first Emacs was written by RMS in 1975, but in these pages:
   http://www.emacswiki.org/emacs/EmacsHistory
   http://www.gnu.org/software/emacs/emacs-faq.html#Origin-of-the-term-Emacs
   http://www.jwz.org/doc/emacs-timeline.html
The first Emacs was written in 1976.

Does somebody know the `real' history?

-- 
Best regards, Xue Fuqiao.
http://www.emacswiki.org/emacs/XueFuqiao



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: About the history of Emacs
       [not found] <mailman.15302.1355460768.855.help-gnu-emacs@gnu.org>
@ 2012-12-14  6:58 ` Pascal J. Bourguignon
  2012-12-14 23:49   ` WJ
  0 siblings, 1 reply; 3+ messages in thread
From: Pascal J. Bourguignon @ 2012-12-14  6:58 UTC (permalink / raw)
  To: help-gnu-emacs

Xue Fuqiao <xfq.free@gmail.com> writes:

> I have 2 questions about the history of Emacs:
>
> 1. What does `Emacs' stand for?
> In these pages:
>    http://www.finseth.com/emacs.html
>    http://www.gnu.org/software/emacs/emacs-faq.html#Origin-of-the-term-Emacs
>    http://www.multicians.org/mepap.html#secii
>    http://www.codeartnow.com/hacker-art-1/macsimizing-teco
> Emacs stands for `Editor MACroS', but in these pages:
>    http://www.emacswiki.org/emacs/EmacsHistory
>    http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt
> Emacs stands for `Editing MACroS'.

Both.  

They are macros written for an editor (editor macros), and they are used
in general to edit text (editing macros).

Notice however that emacs is a generic term.


Here is an emacs macro (TECO emacs):
http://pdp-10.trailing-edge.com/mit_emacs_170_teco_1220/index.html

!& Abstract Macro:! !S Abstract a single macro.
Inserts the full name of the specified macro,
and all of its documentation, and then a blank line.
Give the macro name string pointer as a numeric argument.!
    M(M.M&_MACRO_NAME)[0	    !* Get full name of macro in q0!
    g0 .i 15.i 12.i		    !* Put it, and CRLF, in buffer.!
    .[1 g(m.m~DOC~_0)	    !* Insert its documentation on the buffer.!
    0@f"n i			    !* Put in a CRLF at end if there is none.!
'
    fsz-.f[vz
      q1j s_ q1,.k		    !* Flush the macro class.!
      < 9i l .-z;>		    !* Insert a tab before each line of doc.!
      q1j < :s^[; -d>		    !* Delete all the ^\'s from the doc strings.!
      zj f]vz
    



Here is another emacs macro (GNU emacs):

(defun insert-string (&rest args)
  "Mocklisp-compatibility insert function.
Like the function `insert' except that any argument that is a number
is converted into a string by expressing it in decimal."
  (dolist (el args)
    (insert (if (integerp el) (number-to-string el) el))))


Here is another emacs macro (Hemlock):
(defcommand "Auto Fill Linefeed" (p)
  "Does an immediate CRLF inserting Fill Prefix if it exists."
  "Does an immediate CRLF inserting Fill Prefix if it exists."
  (let ((point (current-point)))
    (check-fill-prefix (value fill-prefix) (value fill-column) point)
    (%auto-fill-space point nil)
    ;; The remainder of this function should go away when
    ;; transparent key bindings are per binding instead of
    ;; per mode.
    (multiple-value-bind (command t-bindings)
(get-command #k"Linefeed" :current)
      (declare (ignore command)) ;command is this one, so don't invoke it
      (dolist (c t-bindings) (invoke-command c p)))
    (indent-new-line-command nil)))



> 2. About the first Emacs.
> In these pages:
>    http://www.gnu.org/press/2001-10-22-Emacs.html
>    http://shop.fsf.org/product/gnu-emacs-manual-16th-edition/
> The first Emacs was written by RMS in 1975, but in these pages:
>    http://www.emacswiki.org/emacs/EmacsHistory
>    http://www.gnu.org/software/emacs/emacs-faq.html#Origin-of-the-term-Emacs
>    http://www.jwz.org/doc/emacs-timeline.html
> The first Emacs was written in 1976.
>
> Does somebody know the `real' history?

RMS.  You can take what's written by RMS as authoritative.
See the link above.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
A bad day in () is better than a good day in {}.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: About the history of Emacs
  2012-12-14  6:58 ` About the history of Emacs Pascal J. Bourguignon
@ 2012-12-14 23:49   ` WJ
  0 siblings, 0 replies; 3+ messages in thread
From: WJ @ 2012-12-14 23:49 UTC (permalink / raw)
  To: help-gnu-emacs

Pascal J. Bourguignon wrote:

> Here is an emacs macro (TECO emacs):
> http://pdp-10.trailing-edge.com/mit_emacs_170_teco_1220/index.html
> 
> !& Abstract Macro:! !S Abstract a single macro.
> Inserts the full name of the specified macro,
> and all of its documentation, and then a blank line.
> Give the macro name string pointer as a numeric argument.!
>     M(M.M&_MACRO_NAME)[0	    !* Get full name of macro in q0!
>     g0 .i 15.i 12.i		    !* Put it, and CRLF, in buffer.!
>     .[1 g(m.m~DOC~_0)	    !* Insert its documentation on the buffer.!
>     0@f"n i			    !* Put in a CRLF at end if there is none.!
> '
>     fsz-.f[vz
>       q1j s_ q1,.k		    !* Flush the macro class.!
>       < 9i l .-z;>		    !* Insert a tab before each line of doc.!
>       q1j < :s^[; -d>		    !* Delete all the ^\'s from the doc strings.!
>       zj f]vz
>     
> 
> 
> 
> Here is another emacs macro (GNU emacs):
> 
> (defun insert-string (&rest args)
>   "Mocklisp-compatibility insert function.
> Like the function `insert' except that any argument that is a number
> is converted into a string by expressing it in decimal."
>   (dolist (el args)
>     (insert (if (integerp el) (number-to-string el) el))))

Here's a version that handles floating-point numbers and
symbols:

(defun insert-string (&rest args)
  (insert (with-output-to-string
    (dolist (el args)
      (princ el)))))


Here's another interesting function:

(defun string-scan (regexp str)
  (let ((start 0) result)
    (while (string-match regexp str start)
      (push (apply #'substring str (last (match-data) 2)) result)
      (setq start (match-end 0)))
    (reverse result)))

Let's use it to extract the TECO comments:

(mapc (lambda (s) (princ s) (terpri) (terpri))
  (string-scan "!\\([^!]+\\)!"
"!& Abstract Macro:! !S Abstract a single macro.
Inserts the full name of the specified macro,
and all of its documentation, and then a blank line.
Give the macro name string pointer as a numeric argument.!
    M(M.M&_MACRO_NAME)[0	    !* Get full name of macro in q0!
    g0 .i 15.i 12.i		    !* Put it, and CRLF, in buffer.!
    .[1 g(m.m~DOC~_0)	    !* Insert its documentation on the buffer.!
    0@f\"n i			    !* Put in a CRLF at end if there is none.!
'
    fsz-.f[vz
      q1j s_ q1,.k		    !* Flush the macro class.!
      < 9i l .-z;>		    !* Insert a tab before each line of doc.!
      q1j < :s^[; -d>		    !* Delete all the ^\'s from the doc strings.!
      zj f]vz" ))

& Abstract Macro:

S Abstract a single macro.
Inserts the full name of the specified macro,
and all of its documentation, and then a blank line.
Give the macro name string pointer as a numeric argument.

* Get full name of macro in q0

* Put it, and CRLF, in buffer.

* Insert its documentation on the buffer.

* Put in a CRLF at end if there is none.

* Flush the macro class.

* Insert a tab before each line of doc.

* Delete all the ^'s from the doc strings.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-12-14 23:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.15302.1355460768.855.help-gnu-emacs@gnu.org>
2012-12-14  6:58 ` About the history of Emacs Pascal J. Bourguignon
2012-12-14 23:49   ` WJ
2012-12-14  4:34 Xue Fuqiao

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.