'set novalue on' /* force KEXX and its way of SIGNAL ON NOVALUE */ /* Usage: [MACRO] INITIAL */ /* Example: PROFILE.KEX: if initial() then 'macro INITIAL' */ /* Requires: Kedit 5.0 - not optimized for KeditW */ /* INITIAL.KML - general key definitions */ /* GERMAN.KML - optional KEYB GR macros */ /* DOS.KML - if OS/2 opmode TEXTWINDOW */ /* defprof.1() KEX - PROFILE.KEX or similar */ /* monitor.1() KEX - COLOR.KEX resp. MONO.KEX */ /* LESSMORE.KEX - used as LESS & MORE synonym */ /* KHELP.KEX - used as KHelp synonym */ /* CDD.KEX - used as CHD synonym */ /* CHANGES.KEX - used as Change synonym */ /* EXTRACT.KEX - used as EXTract synonym */ /* VIEW.EXE - used as VIEW synonym */ /* QH.EXE - used as QH synonym */ /* HELP.EXE - used as HELP synonym */ /* HELPMSG.EXE - if OS/2 instead of HELP */ /* INITIAL.KML DOSX - if OS/2 edit HELPMSG output */ /* SETLINES.EXE - if DOS (34 screen lines) */ /* Caveat: INITIAL.KML requires additional Kedit macros. */ /* See also: KHELP DEFPROF, KHELP REPROF, KHELP MONITOR, and */ /* all associated help topics like KHELP MACROPATH */ /* Bugs: INITIAL.KEX normally needs WINDOWS.KEX (instead */ /* of monitor.1() COLOR or MONO) under KeditW 1.0. */ /* The proposed three-stage scheme to load INITIAL.KML etc. only */ /* once in a Kedit session allows to keep PROFILE.KEX in memory */ /* for REPROFile ON, other code needed only initially is kept in */ /* INITIAL.KEX (here on disk) instead of PROFILE.KEX (in memory): */ /* 1 PROFILE.KEX: if initial() then 'macro initial' */ /* 2 INITIAL.KEX: 'define INITIAL.KML' /* done once */ */ /* 'define PROFILE.KEX' /* see below */ */ /* 'REPROFile ON' */ /* /* ... more global settings and synonyms */ */ /* 'macro' monitor.1() */ /* /* ... more file and view settings */ */ /* INITIAL.0 = N */ /* INITIAL.N = 'arrow off' */ /* 'editv put INITIAL.0 INITIAL.' || N */ /* /* using N = 1 to INITIAL.0 settings INITIAL.N */ */ /* 3 PROFILE.KEX: 'editv get INITIAL.0' /* done always */ */ /* do N = 1 to INITIAL.0 */ /* 'editv get INITIAL.' || N */ /* 'set' INITIAL.N */ /* end */ /* /* ... more settings depending on file type */ */ 'define initial.kml' /* keep key definition in memory */ 'nomsg define german.kml' /* keep KEYB GR macros in memory */ if '.KEX' <> translate( right( defprof.1(), 4 )) then 'define' defprof.1() || '.kex' else 'define' defprof.1() /* keep PROFILE.KEX in memory */ 'reprof on' /* apply PROFILE.KEX on any file */ 'beep on' /* allow error beeps */ 'hexdisp on' /* show ASCII code in statusline */ 'shifts on' /* show shiftstate in statusline */ 'defsort P E N' /* DIR sort Path Extension Name */ 'fcase asis' /* OS/2 mixed case file names */ 'sharing denywrite denywrite' /* allow others to read locked */ 'debugging' debugging.1() min( 10, debugging.2()) /* min. 6 */ if pscreen.1() = 25 & pscreen.2() = 80 then do 'nomsg pscreen' 28 /* toggle dubious pscreen 25 80: */ if opmode.1() = 'TEXTWINDOW' then 'nomsg pscreen' 25 if opmode.1() = 'FULLSCREEN' then 'nomsg pscreen' 25 end /* opmode REAL (DOS) => 28 lines */ if opsys.1() = 'DOS' then I = ' SETLINES 34 ' ; else I = ' ' 'syn QH dosq' || I || 'QH' /* MS C QuickHelp */ 'syn HELP dosq' || I || 'HELP' /* bypasses KHELP */ 'syn VIEW dosq' || I || 'VIEW' /* view any *.INF */ 'syn Changes 1 macro CHANGES' /* improve CHANGE by CHANGES.KEX */ 'syn KHelp 2 macro KHELP' /* improve KHELP using KHELP.KEX */ 'syn CHD 3 macro CDD' /* combine CHDir + CHDr commands */ 'syn EXTract 3 macro EXTRACT' /* test EXTRACT with EXTRACT.KEX */ 'syn LESS 4 macro LESSMORE LESS' /* LESS TAG => LESS TAGged */ 'syn MORE 4 macro LESSMORE MORE' /* MORE TAG => MORE TAGged */ if opsys.1() = 'OS/2' then do /* FAT default is dirformat 8 3 */ 'dirformat 40 6' /* bypass (stupid) OS/2 HELP.CMD */ 'syn HELP macro DOSX HELPMSG' 'syn START command dosq START /C /F' end if opmode.1() = 'TEXTWINDOW' & rexx.0() > 0 then do 'define dos.kml' /* DOS macros defined in DOS.KML */ 'syn DOS macro DOS' /* DOS and DOSN are unreliable.. */ 'syn DOSN macro DOSN' /* ..if TEXTWINDOW size modified */ end /* (command DOSQ is always okay) */ 'macro' monitor.1() ; I = 0 /* i.e. COLOR.KEX resp. MONO.KEX */ 'nomsg query attributes' /* local (file or view) settings */ I = INITIAL( I, lastmsg.1() ) /* save colours */ I = INITIAL( I, 'wrap on' ) /* save WRAP ON */ I = INITIAL( I, 'varblank on' ) /* save VARB ON */ I = INITIAL( I, 'arbchar on' ) /* save ARB ON */ I = INITIAL( I, 'number on' ) /* save NUM ON */ I = INITIAL( I, 'autoscroll 20' ) /* save AUTOSC 20 */ I = INITIAL( I, 'tabsin tabquote' ) /* save TABSIN... */ I = INITIAL( I, 'backup temp' ) /* save BACK TEMP */ I = INITIAL( I, 'arrow off' ) /* save ARROW OFF */ exit INITIAL: procedure /* ----------------------------------------- */ parse arg NUM, VAR VAL NUM = NUM + 1 ; INITIAL.0 = NUM /* next setting: */ 'set' VAR VAL ; if rc <> 0 then exit rc /* check setting */ 'nomsg query' VAR ; INITIAL.NUM = lastmsg.1() 'editv put INITIAL.0 INITIAL.' || NUM /* saved setting */ return NUM /* saved number */