From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Ben Wing" Newsgroups: gmane.emacs.devel,gmane.emacs.xemacs.beta Subject: "teco line noise" Date: Tue, 16 Nov 2004 20:07:28 -0600 Message-ID: <00a601c4cc4a$30c96e10$210110ac@NEEEEEEE> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1100657169 24927 80.91.229.6 (17 Nov 2004 02:06:09 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 17 Nov 2004 02:06:09 +0000 (UTC) Cc: 'XEmacs Beta' Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Nov 17 03:05:59 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CUFCp-0001hn-00 for ; Wed, 17 Nov 2004 03:05:59 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CUFLb-0002Ug-1y for ged-emacs-devel@m.gmane.org; Tue, 16 Nov 2004 21:15:03 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CUFLT-0002UZ-F9 for emacs-devel@gnu.org; Tue, 16 Nov 2004 21:14:55 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CUFLS-0002UM-Rj for emacs-devel@gnu.org; Tue, 16 Nov 2004 21:14:55 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CUFLS-0002UJ-Ou for emacs-devel@gnu.org; Tue, 16 Nov 2004 21:14:54 -0500 Original-Received: from [66.163.168.181] (helo=smtp802.mail.sc5.yahoo.com) by monty-python.gnu.org with smtp (Exim 4.34) id 1CUFCT-0000Bx-SF for emacs-devel@gnu.org; Tue, 16 Nov 2004 21:05:38 -0500 Original-Received: from unknown (HELO NEEEEEEE) (benwing@sbcglobal.net@67.67.219.85 with login) by smtp802.mail.sc5.yahoo.com with SMTP; 17 Nov 2004 02:05:32 -0000 Original-To: X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 Importance: Normal X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:29951 gmane.emacs.xemacs.beta:16991 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:29951 Still can't find any version of GNU Emacs before 18.55 but I found this: [beginning of manual] MASSACHUSETTS INSTITUTE OF TECHNOLOGY ARTIFICIAL INTELLIGENCE LABORATORY AI Memo 555 2 October 1981 EMACS MANUAL FOR TWENEX USERS EMACS MANUAL FOR TWENEX USERS EMACS MANUAL FOR = TWENEX USERS BY = BY BY RICHARD M. STALLMAN RICHARD M. STALLMAN RICHARD M. STALLMAN A REFERENCE MANUAL = A REFERENCE MANUAL A REFERENCE MANUAL FOR THE EXTENSIBLE, CUSTOMIZABLE, SELF-DOCUMENTING FOR THE EXTENSIBLE, CUSTOMIZABLE, SELF-DOCUMENTING FOR THE EXTENSIBLE, CUSTOMIZABLE, SELF-DOCUMENTING REAL-TIME DISPLAY EDITOR REAL-TIME DISPLAY EDITOR REAL-TIME DISPLAY = EDITOR This manual corresponds to EMACS version 161 [excerpt from emacs.src] =0C !* START ! EI=1B !*Close off the input file ! HK !*Purge the buffer ! GZ !*Pull in the command line from QZT ! J !*Jump back to beginning ! ^D 128,0ET !*Reset abort on error bit ! -1,5:W !*Set terminal to hold whole screen ! ^[ !*Discard numeric argument returned by :W cmd ! 22,2:W !*Protect the bottom 2 status lines from update ! ^[ !*Discard numeric argument returned by :W cmd ! !* Preload QHT with macro to erase a given line on screen, leave cursor = ! !* at that line, and make TECO forget it did anything to the terminal. ! @^UH~ !* QHT <=3D macro between the "~" s ! [A !* Push QAT and QAN onto Q register stack ! UA !* QAN <=3D input line number ! 0,1ET !* Enable image mode output ! 27^T !* Send escape to terminal ! ^^[^T QA\ ^YT ^YK ^^H^T 1,0ET !* Disable image mode output ! ^^KMM !* Kill the current lines contents ! 32768W !* Make TECO forget we messed with screen ! ]A !* Pop QAT and QAN off the Q register stack ! ~ !* End of macro load into QHT ! !*Preload QMT with macro to output characters to terminal in image mode = ! !*Q registers affected by an MM: QAN ! @^UM~ !*QMT <=3D macro between "~" s ! UA !*QAN <=3D macro's argument (char to output) ! 0,1ET !*Set image mode bit ! 27^T !*Send ESC to terminal for special sequence ! ^^[^T QA^T !*Send the saved character to terminal ! 1,0ET !*Reset back to non image mode ! ~ !*End of image mode macro load in QMT ! !*Preload QUT with macro to optionally save a modified buffer ! !*Q register affected by MU: QLT, QAN, QST, QAN, QTN, QQN, QYN, QXN, ! !*QWT ! @^UU~ !*QUT <=3D all characters between the "~" s ! < !*Begin loop to save buffer ! @^UL%Save% !*QLT <=3D "Save" ! @32:^UL%% !*QLT <=3D "Save " ! @:^UL%modified% !*QLT <=3D "Save modified" ! @32:^UL%% !*QLT <=3D "Save modified " ! @:^UL%buffer% !*QLT <=3D "Save modified buffer?" ! @32:^UL%% !*QLT <=3D "Save modified buffer? " ! @:^UL%(Y/N)% !*QLT <=3D "Save modified buffer? (Y/N)" ! MN !*Get response from user ! UA !*Save returned success/abort code ! QA; !*Abort function if string fetch failed ! GS !*Get the response string ! -1A-^^N"E !*If response is "N" then ! -1UA !*QAN <=3D code for successful execution ! HK !*Purge the current buffer ! 0; !*Abort iteration and go to terminal code ! ' !*End of "N" processing ! -1A-^^Y"E !*If response is "Y" then ! ^YK !*Delete response from text buffer ! @^UL%File:% !*QLT <=3D "File:" ! @32:^UL%% !*QLT <=3D "File: " ! MN !*Get response from user ! UA !*Save returned success/abort code ! QA; !*Abort function if string fetch failed ! @^UA%@EW/% !*QAT <=3D "@EW/" ! GS !*Pull file name string into buffer ! ^Y:XA !*QAT <=3D "@EW/" ! ^YK !*Delete from buffer in case we bomb ! @:^UA%/% !*QAT <=3D "@EW//" ! MA !*Open the file to save current buffer in ! EC !*Write out buffer and close file ! HK !*Purge the buffer ! 0; !*Abort iteration and go to terminal code ! ' !*End of "Y" processing ! ^YK !*Delete previous response from text buffer ! > !*End loop to save buffer ! QA !*Return success code ! ~ !*Preload QPT with macro to get next char from terminal stream ! !*Q registers affected by MP: QTN, QYN, QXN, QQN ! @^UP~ !*QPT <=3D everything between "~" s ! 0,32ET !*Set read with no wait for pending commands ! ^TUT !*QTN <=3D next pending command (-1 if none) ! QT"L !*If no pending commands then ! 32,0ET !*Reset read with no wait bit to get user input ! 16&QZ"E !*If screen update is not inhibited then ! -1W !*Update the terminal screen ! ' !*End of screen update test ! ^TUT !*QTN <=3D next command from user ! ' !*End of no pending commands execution ! QT-7"E !*If input from terminal is a ^G then ! 0UY !*Reset counter to exit current macro ! 0UX !*Reset counter to exit pending macros ! 0UQ !*Reset word to cause abort to highest level ! ' !*End of ^G from terminal processing ! QQ !*Return ^G abort code as numerical argument ! ~ !*End of QPT macro load ! !* Preload QOT with macro to update editor status line (line 23) ! @^UO~ !* QOT <=3D all characters between the "~" s ! 23MH !* Go ready the editor status line ! @^A%EMACS% !* First entry on editor status line ! 32^T !* Send blank to terminal ! @^A%Ver% !* Second entry on editor status line ! 32^T !* Send blank to terminal ! @^A%1.4% !* Third entry on editor status line ! 32^T !* Send blank to terminal ! 32^T !* Send blank to terminal ! QZ&32"N !* If LEARN mode is enabled then ! @^A%(Learn)% !* Show learn prompt ! | !* Else if not learn mode ! @^A%(Fundamental)% !* Show fundamental mode ! ' !* End of mode entry on status line ! 32^T !* Send blank to terminal ! 32^T !* Send blank to terminal ! 12&QZ"N !* If a primary file is open then ! 32^T !* Send another blank to terminal ! @^A%File:% !* Filespec is last entry on status line ! 8&QZ"N !* If primary output file stream is open then ! :GT !* Get the output file spec ! | !* Else input file must be open ! :GK !* Get input file spec ! ' !* End of file spec test ! ' !* End of filespec insertion ! 32768W !* Forget we did anything to screen ! ~ !* End of status line update macro ! !*Preload QXT with macro to fetch next command character ! !*Q registers affected by MX: QTN, QYN, QXN, QQN, QWT, ! @^UX~ !*QXT <=3D all characters between the "~" s ! QY"E !*If no EMACS macro commands to execute then ! MP !*Get next command from command stream ! 32&QZ"N !*If learn mode is enabled then ! @QT:^UW%% !*Append the command to the macro buffer ! ' !*End of macro collection test ! ' !*End of no EMACS macro commands execution ! QY"L !*If EMACS macro commands to execute then ! GW !*Pull macro commands into buffer ! QYAUT !*QTN <=3D EMACS command extracted from string ! ^YK !*Kill string in buffer ! %Y !*Increment macro command counter ! "E !*If was last EMACS macro command then ! %X !*Increment macro repeat counter ! "L !*If more repeat loops to be done then ! -:QWUY !*Restore command counter contents ! ' !*End of macro command counter restore ! ' !*End of last repeat loop test ! ' !*End of EMACS macro command fetch ! QQ !*Return abort code as argument ! ~ !*End of QXT macro load !