Trailing-Edge - PDP-10 Archives - mit_emacs_170_teco_1220 - emacs/long-filenames.elib
There are no other files named long-filenames.elib in the archive.
xW[0 +8+fq(+4)[1
fq1"l 0'
q26<9 <J0-Z4<p2d.u6"5*8.^H\3%o%Y(r)t&+p3-u= +M%q\_fsm8& Find Matching Filename& Flush For Find Match&& Get Filename From Directory Line!& Keep Only Greatest Versions& Matching Read Filename& Prettify Indent&& Prettify TNX Directory In Buffer& Set Matching Fn Mode"& Setup LONG-FILENAMES Library & Tenex Or Twenex Directory? Always Use Filename Matching&Chronologically Order DIRED BufferFlush Dired LinesKeep Dired LinesM1GenerateMatching Filename ModeTNX Directory Lister~DIRECTORY~"~DOC~ & Find Matching Filename ~DOC~ & Flush For Find Match,~DOC~ & Get Filename From Directory Line'~DOC~ & Keep Only Greatest Versions"~DOC~ & Matching Read Filename~DOC~ & Prettify Indent,~DOC~ & Prettify TNX Directory In Buffer ~DOC~ & Set Matching Fn Mode(~DOC~ & Setup LONG-FILENAMES Library&~DOC~ & Tenex Or Twenex Directory?&~DOC~ Always Use Filename Matching,~DOC~ Chronologically Order DIRED Buffer~DOC~ Flush Dired Lines~DOC~ Keep Dired Lines~DOC~ M1Generate ~DOC~ Matching Filename Mode~DOC~ TNX Directory Lister~DOC~ ~FILENAME~~FILENAME~
~INVERT~LONG-FILENAMESb1m.CMatching Filename Mode* Non-zero enables filename matching
m.m& Read Filename m.vMM & Non-Matching Read Filenamew
:@i*|!* Non-zero enables filename matching!
m(m.m& Set Matching Fn Mode)| u:..q(:fo..qMatching Filename Mode+2)

 qMatching Filename Modem(m.m& Set Matching Fn Mode)
0fo..qLONG-FILENAMES Setup Hook f"N [0 m0w '
nff&1"N uMatching Filename Mode '
"# qMatching Filename Mode"E 1'"# 0'uMatching Filename Mode'
L	:i*[0[1[2[3[4[5
0fo..q0 Filename Translationu3
q3"n @ft(0 = 3) 0fsEchoActivew
-1f[fnam syntax
f[dfilew et0
fs dfileu0
fs dfn1:f6u2
fs dfn2:f6u3
e?"e fsDFile '
0fo..q4 Directory Translationf"N f(fsDSNamew)u4
@ft(5 = 4)
e?"e @ft(exact fn) 0fsEchoActivew
fsDFile ''
q1"L 0,7:g1u1
@ft(New File) 0fsEchoActivew
fsDFile ''
0m(m.m& Flush For Find Match)u3
@ft(2.* = 3) 0fsEchoActivew
et3 fsDFile''
hk 1:<1,ez2*.*>"e
0m(m.m& Flush For Find Match)u3
@ft(2*.* = 3) 0fsEchoActivew
et3 fsDFile''''
@ft(Match in 4?)
hk 1,ez bj
q2m(m.m& Flush For Find Match)u1
@ft(1) 0fsEchoActivew
et1 fsDFile '
q1"e @ft(No matches)
hk g5
m(m.m& Keep Only Greatest Versions)w'
"# @ft(Multiple matches)'
:i*Position cursor at desired filename, then type <Space>. [..J
bj g(fsDFile) i  (New file)

0fsModifiedw 0fsXModifiedw
m.mAbort Recursive Edit[.G

m(m.m& Get Filename From Directory Line)u2
et2 fsDFileNff&1"N "E 0uMatching Filename Mode ''
 1uMatching Filename Mode [1[2[3 f[DFile
 :i*( :i*u3
qBuffer Filenamesf"nfsDFile'w
fq3"g !<!
q3 fsDSNamew'
f2"l f2"l f2"l f2"l
1:< ez*2*.*.-3 >w
1:< ez*.*2*.-3 >w
z"g oStarMatched''
"# fsOSTeco-2"e
1:< ez2.* >w
1:< ez*.2 >w
z"g oStarMatched''''
1:< ez2 >w
@ft(*-matched) 0fsEchoActivew
@ft(Working on full directory) 0fsEchoActivew
fq2"G bj m(m.mKeep Lines)2'
 l bj
< .-z; x1
1; -k 0:l >
l >

 1,(-4"'n)m(m.m& Prettify TNX Directory In Buffer)
fq2"e hx* m.vLast Directory Listingw'
0f[VB 0f[VZ
j 1a-9"e l @f
	 l 0l .fsVBw'
:  :l -s;. 3:fwl fsFDConvert l
<:fb.; r .,(0l 2c).fx1
0l s.  .,(:l -s.; c).x2
0l .u0
:l .u4
< :s
1.2; 0l fx3
q4-z( q0j g3
)+zj .u4 >
1."e l f;FN1.*'
0l fx3 q4j l g3 -l >
bj k[1[2 :i1
< :i2 fq2@;
:i112 >
fq1"e '
m(m.mFlush Lines)1
j[1[2 :i1
< :i2 fq2@;
:i112 >
fq1"e '
m(m.mKeep Lines)1
fq0"e qBuffer Filenamesf"ew 'u0'
m(m.m& Find Matching Filename)0u0
q0"e '
er0ec fsIFVersion:\u2
m(m.mGenerate Library)1.ELIB.20"N
m.m& Matching Read Filename m.vMM & Read Filenamew '
m.m& Non-Matching Read Filename m.vMM & Read Filenamew '
:i*[1[0 0[2
(&4"'N)+(&3"'E)"N -1u2
:i1Matching 1'
If "!" is the first character of the filename you type, no matching
will be performed (e.g. this is a new file).  If you just type RETURN,
we use the default filename exactly, with no matching.

Typing HELP again will provide details about the matching process.
@:i*# :ftDetails on matching process -- 
m(m.mDescribe)& Find Matching Filename
1,m(m.m& Read Line)(Default is 0)
1: u0
q0f"E 'w
fq0"E fsDFile'
0:g0-!"e 1,fq0:g0'
q2"N m(m.m& Find Matching Filename)0'
 0fo..qFlush Lines Before Match Fileu1
q1m.vFlush Lines Before Match Filew'
bj m(m.m Flush Lines)1
bj u1
bj m(m.mKeep Lines)1'
m(m.m & Keep Only Greatest Versions)
bj m(m.m& Count Lines)u1
m(m.m& Get Filename From Directory Line) '
q1 !m(m.m& Tenex Or Twenex Directory?)[0
< -:s.;
"# 0fx1 0l' >'
< -:s;;
lk -l'
"# 0fx1 0l' >'
bj 2.[1 fn q1j
zj -:s.;"e 0'
1a-."e 0'
-s.; c
ff"e i0  r'
"# fwl'
bj <:s; 1a-."n
1a-;"n -d''c>
bj i< g(fsDSName:f6) i>  

bj:l m(m.m Insert Date)w
m.m& Prettify Indent
m.m& Maybe Flush Output
0u.1 0u.2
bj "n 2t' l
< l.-z;
<:s.+1"n 1;' c> r
fshpos,q.1 f u.1w
-(fshpos)+(:l -s.;
	       fshpos),q.2 f u.2w

 24fo..qMax Filename Component Widthu.0
%.1w %.2w
bj l
< l.-z; .u.0
<:fb.+1"n 1;' -dc>
r q.1miw c
<:fb.;+1"n 1;' -dc>
. r q.1+q.2miw
d q.1+q.2+8+8mi
2a--"e i '
s  r q.1+q.2+26mi
s, r'
"n q.0,(l).t 0:l'
 @f 	k
@-f 	k
q0-+1"g i

.(/8-(q0/8)f"g ,9i
   ),.QFunctions to help deal with long filenames.
Bugs/features to JPERSHING@BBNA.GS Enable matching unless user hook exists.

We match on all filename reading unless LONG-FILENAMES Setup Hook
exists and is non-zero, in which case it is called instead.  Matching
is controlled by the non-zeroishness of the Matching Filename Mode
option variable.

Basically, matching works thuswise:  If you type the name of an
existing file, that is what you get.  Otherwise, what looks like the
"first component" of the filename you typed is taken as a string to
match against all filenames in the default directory.  (Or any
directory you specified in the filename.)  The filename CONTAINING
that string (anywhere within the filename) is the one used.  If
several names match, then you are put into a recursive ^R mode to
select the one you want, position the cursor and then leaving the ^R
mode (e.g. via ^Z^Z).

For more details, do MM Describe& Find Matching Filename.
This object file was compressed on 6:40pm  Friday, 5 April 1996
by ALDERSON on from the following source libraries:

   DXX:<EMACS>LONG-FILENAMES.EMACS.128,	04/05/96 18:21:24"C Toggle or set matching mode.;
S Return filename matching STRARG.

If the variable strarg Filename Translation exists, its value is
    used as filename.
If STRARG is a legal filename, it is used exactly.
If the directory name part of the filename (if any) has a translation,
    i.e. there is dir Directory Translation, that is substituted,
    and we again try for a legal filename.
Failing, we look for a MATCHING filename from the filename (fn) part
    of STRARG trying the following techniques in order.  Each time,
    the partial directory chosen is filtered by & Flush For Find Match
    (q.v.).  The idea is that object files should be flushed, leaving
    only source files to be matched against:

    1. The partial directory from fn.*,  looking for just 1 match.
    2. On TWENEX we try fn*.* (i.e. completion of sorts), again for 1
    3. The whole directory is read in and flushed as above.  Next,
       MM Keep Linesfn is done on the whole directory.  This will
       allow teco search strings in the fn.

    If still leaves more than one filename, a recursive ^R is called
       to let user select which matching file is desired.  User can
       exit with Space or abort with ^G.

Prints running status of search for matching filename in the echo area.
VAL: Matching filename string, or 0 if abort.0C Obsolete -- use MM Matching Filename ModeC List files matching STRARG1 in <STRARG2>.

Null STRARG1 means all files.  Else is string for Keep Lines.
STRARG2 is directory, null means current buffer's default.
No NUMARG means use *-matching for speed.
NUMARG of 4 means quick: no dates, use *-matching.
Any other NUMARG will use general teco matching and be slower.
Teco-matching is "forced" if teco-search-control-chars are included
    in STRARG.  E.g. foobar will force a general teco match.
Giving a "*" in STRARG will do *-matching on exactly what you ask for.
    E.g. MM TNX Directory Listerfoo will match *foo*.*.-3 and
    *.*foo*.-3 but MM TNX Directory Listerfoo.*.0 will only match
Prettified to align columns.
Last full listing is kept in Last Directory Listing.C Reorder DIRED's list, reverse time.

Reorders DIRED directory listing in buffer (e.g. inside DIRED), so:
    newest files are at top, and
    files of same first and second components are together, and
    files of same first component are together.wC Remove any filename's line which contains some pattern.

This command (unlike MM Flush Lines) takes an arbitrary number of
    string arguments.  If a filename line contains any of the string
    arguments, that line is removed from the Dired buffer.  End the
    string arguments with a null string argument, e.g.:
    MM Flush Dired Linesfoofah
It also differs from MM Flush Lines in that it temporarily makes the
    buffer modifiable (Dired normally has the buffer be read-only).C Keep only filename lines which contain some pattern.

This command (unlike MM Keep Lines) takes an arbitrary number of
    string arguments.  If a filename line contains any of the string
    arguments, that line is kept in the Dired buffer -- all other
    lines are removed.  End the string arguments with a null string
    argument, e.g.: MM Keep Dired Linesfoofah
It also differs from MM Keep Lines in that it temporarily makes the
    buffer modifiable (Dired normally has the buffer be read-only).RC 1Gen but with matching filename, and default.

Only works for Twenex, since ITS has no version numbers on :EJ files.
Null STRARG means use buffer's file.  Sets the compiled file's version
from source..S FSVarMacro for Matching Filename ModeoS Read filename allowing matching.

Return complete filename as a TECO string object, or 0 if aborted.
NUMARG with the 1- or 2-bit set means this is for writing, and we are
    not to attempt matching;  UNLESS the 4-bit is also present, in
    which case a pre-existing file is wanted.
STRARG: Prompt string. It should not contain a trailing colon or space.nS Internal to & Find Matching Filename.

Partial directory in buffer is filtered by Flush Lines of Flush Lines
    Before Match File, by default flushing 2nd components of COM,
    ^V:EJ, ELIB, EXE, PROFILE, REL, SAV, or MODES.  The idea is that object
    files should be flushed, leaving only source files to be matched
NUMARG is 0 or string to give to Keep Lines to filter the directory
All filenames which aren't greatest versions are filtered out.
A match exists if only one filename is left.
Returns the single matching filename (string) or else the number of
    matches.S Flush lessers from directory listing.

Buffer contains a directory listing (EY format).
Leave only greatest-version lines.-S 0 iff buffer has Twenex directory.

Tells which system the directory is from by version-number separator:
    Goes to last file, scans left from end of line for period or
    semi-colon.  If period found, is Twenex;  if semi, is Tenex.
If there is no file in the buffer, returns 0 anyway...\S Return filename.

Point when called is in a line of a directory listing (EY format).
No NUMARG means return filename with version of 0, i.e. indicating
NUMARG means return exact filename version.YS NUMARGs control.

NUMARG1 is flag whether to type each line as go.
NUMARG2 is flag to not ignore dates.
    I.e. dates will be ignored unless NUMARG2 is non-0.
Max Filename Component Width defaults to 24.LS To NUMARG, unless past already.

If past, does CRLF and then indent.A& Setup LONG-FILENAMES Library
Matching Filename Mode
& Find Matching Filename
Always Use Filename Matching
TNX Directory Lister
Chronologically Order DIRED Buffer
Flush Dired Lines
Keep Dired Lines
& Set Matching Fn Mode
& Matching Read Filename
& Flush For Find Match
& Keep Only Greatest Versions
& Tenex Or Twenex Directory?
& Get Filename From Directory Line
& Prettify TNX Directory In Buffer
& Prettify Indent
\+8+fq(+4)[2 0[3
< %3,-q2f2u3 q3&1@; q3"l 0' >
f[BBind q3-1*5,q3*5g2 q:..o(0)+q2