home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
elvis22g.zip
/
lib
/
elvis.arf
< prev
next >
Wrap
Text File
|
2002-04-10
|
3KB
|
80 lines
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" SAVE THE CURRENT STATE OF THE "saveregexp" OPTION
local nosaveregexp
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" TAKE A GUESS AT THE BUFFER'S PREFERRED DISPLAY MODE
if knownsyntax(filename)
then set! bufdisplay=syntax
if os=="unix" && buflines >= 1
then {
try 1s/\V^#! *[^ ]*\/\([^ ]\+\).*/set! bufdisplay="syntax \1"/x
if bufdisplay<<11=="syntax perl"
then set! bufdisplay="syntax perl"
if bufdisplay<<12=="syntax tclsh"
then set! bufdisplay="syntax tcl"
}
if !newfile
then {
if readeol=="binary" && bufdisplay=="normal" && (partiallastline || !binary)
then set! bufdisplay=hex
switch tolower(dirext(filename))
case .man set! bufdisplay=man
case .tex set! bufdisplay=tex
case .htm
case .html
case .shtml
case .dhtml set! bufdisplay=html
if buflines >= 1 && bufdisplay=="hex"
then try 1s/\V^<[HIThit!]/set! bufdisplay=html/x
if (filename<<5=="http:" || filename<<4=="ftp:") && strlen(dirext(filename))<4 && bd=="hex"
then set! bufdisplay=normal
if bufdisplay=="normal" && buflines >= 1
then try 1s/\V^From .*/set! bufdisplay="syntax email"/x
if dirdir(filename)=="/tmp" || dirdir(filename)=="/var/tmp"
then set! bufdisplay="syntax email"
if strlen(dirext(filename))==2 && isnumber(filename>>1) && buflines>=1
then try 1s/\V^\./set! bufdisplay=man/x
}
if bufdisplay=="html" && readonly
then set locked
if bufdisplay=="html"
then set nosmartargs
if readonly && (bufdisplay=="html" || bufdisplay=="man")
then try set nohlspell
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Store the file's timestamp
let timestamp = time(filename)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Set the buffer's "initialsyntax" option, based on "prefersyntax"
if bufdisplay=="html" || bufdisplay=="man" || bufdisplay=="tex"
then {
try {
switch prefersyntax
case always set isyn
case local let isyn = !readonly || dirdir(filename) == "."
case writable let isyn = !readonly
case never set noisyn
}
}
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Set mapmode to the bufdisplay, if appropriate
switch bufdisplay
case html
case man
case tex let! mapmode=bufdisplay
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Some messages
if tolower(basename(program))!="elvis" && !ro && (bd=="html" || bd=="man" || bd="tex")
then message To see the source, hit ^Wd
if partiallastline && readeol!="binary"
then warning Partial last line
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" EXECUTE MODELINES, IF "modeline" OPTION IS SET
if modeline && buflines >= 1 && buflines <= modelines * 2
then try %s/\V[ev][xi]:\(.*\):/\1/x
if modeline && buflines > modelines * 2
then {
eval try 1,(modelines)s/\V[ev][xi]:\\\(.*\\\):/\1/x
eval try (buflines - modelines + 1),(buflines)s/\\V[ev][xi]:\\\(.*\\\):/\1/x
}