📄 cmanmac.gml
字号:
:set symbol="sysrb" value="~b".
:set symbol="XMPset" value="of".
.*
.* Define these here otherwise &_func. expands to &_func. and not ''
.*
.sr _func=''
.sr ffunc=''
.sr wfunc=''
.sr mfunc=''
.sr fmfunc=''
.sr ufunc=''
.*
.dm prelim begin
.dm prelim end
.*
.dm dos begin
.if '&machsys' eq 'DOS' .do begin
.im &*
.do end
.dm dos end
.*
.dm qnx begin
.if '&machsys' eq 'QNX' .do begin
.im &*
.do end
.dm qnx end
.*
.dm debug begin
.* .ty &*
.dm debug end
.*
.dm funkw begin
.se *fnd=&'vecpos(&*,fnclst)
.if &*fnd. eq 0 .me
.if &__sysl(&*fnd.) eq 0 .ty ***WARNING*** &* not in library
.if |&fncttl.| eq || .do begin
. .sr fncttl=&*
.do end
.el .do begin
. .sr fncttl=&fncttl., &*
.do end
.se __fnx=&__fnx.+1
.se $$fnc(&__fnx.)=&*
.* try to classify type of function
.if '&*' eq '_&$$fnc(1)' .do begin
. .sr _func=&*
.do end
.el .if '&*' eq '_f&$$fnc(1)' .do begin
. .sr ffunc=&*
.do end
.el .if &'pos('_w',&*) eq 1 .do begin
. .if '&*' ne '_wrapon' .do begin
. . .sr wfunc=&*
. .do end
.do end
.el .if &'pos('wc',&*) eq 1 .do begin
. .sr wfunc=&*
.do end
.el .if &'pos('wmem',&*) eq 1 .do begin
. .sr wfunc=&*
.do end
.el .if &'pos('wasc',&*) eq 1 .do begin
. .sr wfunc=&*
.do end
.el .if &'pos('_mb',&*) eq 1 .do begin
. .sr mfunc=&*
.do end
.el .if &'pos('_fmb',&*) eq 1 .do begin
. .sr fmfunc=&*
.do end
.el .if &'pos('_u',&*) eq 1 .do begin
. .if '&*' ne '_utime' .do begin
. . .sr ufunc=&*
. .do end
.do end
.dm funkw end
.*
.dm funix begin
.ixm &*
.if &e'&dohelp eq 1 .do begin
. .sr *iw="&'strip('&*','L','_') "
. .if '&*iw.' ne '&*' .do begin
. . .ixm &*iw.
. .do end
.do end
.dm funix end
.*
.* .func norm Functions
.* .func norm
.* .func norm _norm _wnorm _mbsnorm
.*
.dm func begin
.sr func=&'strip(&*1,'T',',')
.sr _func=''
.sr ffunc=''
.sr wfunc=''
.sr mfunc=''
.sr fmfunc=''
.sr ufunc=''
.if '&*2' eq 'Functions' .do begin
. .sr fncttl=&*1 &*2
. .se __fnx=1
. .se $$fnc(1)=&*1
.do end
.el .do begin
. .sr fncttl=''
. .se __fnx=0
. .se *i=1
. .pe &*0.
. . .funkw &*&*i.;.se *i=&*i.+1
.do end
.topsect &fncttl.
.se *i=1
.pe &__fnx.
. .funix &$$fnc(&*i.);.se *i=&*i.+1
.cp 5
.newcode Synopsis:
.dm func end
.*
:CMT. .dm func begin
:CMT. .sr funcs=&*
:CMT. .sr func=&'strip(&*1,'T',',')
:CMT. .sr _func=''
:CMT. .sr ffunc=''
:CMT. .sr ufunc=''
:CMT. .if &'wordpos('_',&*,2) ne 0 .do begin
:CMT. . .sr funcs=&*1
:CMT. . .sysstr _&func
:CMT. . .if '&$$str' ne '' .do begin
:CMT. . . .sr _func=_&func.
:CMT. . .do end
:CMT. .do end
:CMT. .if &'wordpos('f',&*,2) ne 0 .do begin
:CMT. . .sr funcs=&*1
:CMT. . .if &farfnc eq 1 .do begin
:CMT. . . .sysstr _f&func
:CMT. . . .if '&$$str' ne '' .do begin
:CMT. . . . .sr ffunc=_f&func.
:CMT. . . .do end
:CMT. . .do end
:CMT. .do end
:CMT. .if &'wordpos('u',&*,2) ne 0 .do begin
:CMT. . .sr funcs=&*1
:CMT. . .if &unifnc eq 1 .do begin
:CMT. . . .sysstr _u&func
:CMT. . . .if '&$$str' ne '' .do begin
:CMT. . . . .sr ufunc=_u&func.
:CMT. . . .do end
:CMT. . .do end
:CMT. .do end
:CMT. .if '&*2' eq 'Functions' .do begin
:CMT. . .sr funcs=&*1 &*2
:CMT. .do end
:CMT. .el .do begin
:CMT. . .sr funcs=&func.
:CMT. . .if '&_func' ne '' .do begin
:CMT. . . .sr funcs=&funcs., _&func.
:CMT. . .do end
:CMT. . .if '&ffunc' ne '' .do begin
:CMT. . . .sr funcs=&funcs., _f&func.
:CMT. . .do end
:CMT. . .if '&ufunc' ne '' .do begin
:CMT. . . .sr funcs=&funcs., _u&func.
:CMT. . .do end
:CMT. .do end
:CMT. .topsect &funcs.
:CMT. .ixm &func.
:CMT. .se __fnx=1
:CMT. .se $$fnc(1)=&func.
:CMT. .if '&_func' ne '' .do begin
:CMT. . .se __fnx=&__fnx.+1
:CMT. . .se $$fnc(&__fnx.)=_&func.
:CMT. . .ixm _&func.
:CMT. .do end
:CMT. .if '&ffunc' ne '' .do begin
:CMT. . .se __fnx=&__fnx.+1
:CMT. . .se $$fnc(&__fnx.)=_f&func.
:CMT. . .ixm _f&func.
:CMT. .do end
:CMT. .if '&ufunc' ne '' .do begin
:CMT. . .se __fnx=&__fnx.+1
:CMT. . .se $$fnc(&__fnx.)=_u&func.
:CMT. . .ixm _u&func.
:CMT. .do end
:CMT. .cp 5
:CMT. .newcode Synopsis:
:CMT. .dm func end
.*
.* func2 create an index entry for &* also
.*
.dm func2 begin
:cmt .if &e'&dohelp eq 1 .xmpoff
.funkw &*1
:cmt. .if &e'&dohelp eq 1 .xmpon
.dm func2 end
.*
.* The funcw macro explicitly declares the "wide" name of a function
.*
.dm funcw begin
.if &version ge 107 .do begin
. .sr wfunc=&*
.do end
.dm funcw end
.*
.dm ixfunc begin
.if &'vecpos(&*1,fnclst) ne 0 .do begin
.ix '&*1'
.do end
.dm ixfunc end
.*
.dm ixfunc2 begin
.if &'vecpos(&*2,fnclst) ne 0 .do begin
.if &e'&dohelp eq 1 .xmpoff
.ix '&*1' '&*2'
.if &e'&dohelp eq 1 .xmpon
.do end
.dm ixfunc2 end
.*
.dm funcend begin
.endcode
.if &'length(&_func.) ne 0 .do begin
. :set symbol="_func" value=";.sf4 &_func.;.esf ".
.do end
.if &'length(&ffunc.) ne 0 .do begin
. :set symbol="ffunc" value=";.sf4 &ffunc.;.esf ".
.do end
.if &'length(&wfunc.) ne 0 .do begin
. :set symbol="wfunc" value=";.sf4 &wfunc.;.esf ".
.do end
.if &'length(&mfunc.) ne 0 .do begin
. :set symbol="mfunc" value=";.sf4 &mfunc.;.esf ".
.do end
.if &'length(&fmfunc.) ne 0 .do begin
. :set symbol="fmfunc" value=";.sf4 &fmfunc.;.esf ".
.do end
.if &'length(&ufunc.) ne 0 .do begin
. :set symbol="ufunc" value=";.sf4 &ufunc.;.esf ".
.do end
.sr function=&func.
:set symbol="func" value=";.sf4 &function.;.esf ".
.dm funcend end
.*
.dm funcbold begin
:set symbol="func" value=";.sf2 &*;.esf "
.dm funcbold end
.*
.dm desc begin
.if '&*' eq 'begin' .newtext Description:
.el .if '&*' eq 'end' .oldtext
.dm desc end
.*
.dm exmp begin
.if '&*' eq 'begin' .do begin
.cp 8
.newcode Example:
.do end
.el .if '&*' eq 'end' .endcode
.el .if '&*' eq 'break' .brkcode
.el .if '&*' eq 'output' .outcode
.dm exmp end
.*
.dm seexmp begin
.newtext Example:
See example provided with
.mono &*..
.if &e'&dohelp eq 0 .do begin
:eDL.
.do end
.el .do begin
:ZeDL.
.do end
.in &INDlvl
.dm seexmp end
.*
.dm newcode begin
.in 0
.if &e'&dohelp eq 0 .do begin
:DL &NTEphi..:DT.&*:DD.
.do end
.el .do begin
:ZDL &NTEphi..:ZDT.&*:ZDD.
.do end
.xmpon
.sk -1
.sr XMPlin=&sysfnum.
.dm newcode end
.*
.dm endcode begin
.if '&XMPset' eq 'on' .xmpoff
.if &e'&dohelp eq 0 .do begin
:eDL.
.do end
.el .do begin
:ZeDL.
.do end
.in &INDlvl
.sr XMPlin=0
.dm endcode end
.*
.dm brkcode begin
.sk 1
.dm brkcode end
.*
.dm outcode begin
.sk 1
.if '&XMPset' eq 'on' .xmpoff
produces the following:
.xmpon
.sk 1
.dm outcode end
.*
.dm return begin
.if '&*' eq 'begin' .newtext Returns:
.el .if '&*' eq 'end' .oldtext
.dm return end
.*
.dm error begin
.if '&*' eq 'begin' .do begin
.newtext Errors:
When an error has occurred,
.kw errno
contains a value indicating the type of error that has been detected.
.do end
.el .if '&*' eq 'end' .oldtext
.dm error end
.*
.dm begterm begin
.if '&*1' ne '' .do begin
.begnote $setptnt &*.
.do end
.el .do begin
.begnote $setptnt 15
.do end
.dm begterm end
.*
.dm termhd1 begin
.if &e'&dohelp eq 0 .do begin
:DTHD.&*
.do end
.el .do begin
:cmt. :ZDT.:SF font=2.&*:eSF.
.sr termhd1$='&*'
.do end
.dm termhd1 end
.*
.dm termhd2 begin
.if &e'&dohelp eq 0 .do begin
:DDHD.&*
.do end
.el .do begin
:cmt. :ZDD.:SF font=2.&*:eSF.
:ZDT.:SF font=2.&termhd1$.~b~b~b~b~b&*:eSF.
.do end
.dm termhd2 end
.*
.dm term begin
.if '&*1' eq '.arg' .termhi &*2
.el .if '&*1' eq '.kw' .termhi &*2
.el .if '&*1' eq '.mono' .termhi &*2
.el .termhi &*
.dm term end
.*
.dm termhi begin
.note &*
.ix '&*'
.dm termhi end
.*
.dm endterm begin
.endnote
.dm endterm end
.*
:cmt. .dm beglist begin
:cmt. :XMP.:SF font=0.~b
:cmt. .dm beglist end
:cmt. .*
:cmt. .dm endlist begin
:cmt. :eSF.:eXMP.
:cmt. .dm endlist end
.*
.dm filename begin
.mono &*
.dm filename end
.*
.dm hdrfile begin
.mono <&*>
.dm hdrfile end
.*
.dm proto begin
Prototype in
.mono <&*>.
.br
.dm proto end
.*
.dm id begin
:SF font=4.&*:eSF.
.dm id end
.*
.dm kw begin
.ix '&*'
.ct
:SF font=4.&*:eSF.
.dm kw end
.*
.dm arg begin
:SF font=1.&*:eSF.
.dm arg end
.*
.dm class begin
.in 0
.sr __class=&*1
.if &e'&dohelp eq 0 .do begin
:DL &NTEphi..:DT.Classification::DD.
.do end
.el .do begin
:ZDL &NTEphi..:ZDT.Classification::ZDD.
.do end
:set symbol="*extr" value=0.
.if &'length(&_func.) ne 0 .do begin
.' :set symbol="_func" value="&'translate("&_func.",' ',';')".
.' :set symbol="_func" value="&'word("&_func.",2)".
.' :set symbol="*extr" value=1.
.do end
.if &'length(&ffunc.) ne 0 .do begin
.' :set symbol="ffunc" value="&'translate("&ffunc.",' ',';')".
.' :set symbol="ffunc" value="&'word("&ffunc.",2)".
.' :set symbol="*extr" value=1.
.do end
.if &'length(&wfunc.) ne 0 .do begin
.' :set symbol="wfunc" value="&'translate("&wfunc.",' ',';')".
.' :set symbol="wfunc" value="&'word("&wfunc.",2)".
.' :set symbol="*extr" value=1.
.do end
.if &'length(&mfunc.) ne 0 .do begin
.' :set symbol="mfunc" value="&'translate("&mfunc.",' ',';')".
.' :set symbol="mfunc" value="&'word("&mfunc.",2)".
.' :set symbol="*extr" value=1.
.do end
.if &'length(&fmfunc.) ne 0 .do begin
.' :set symbol="fmfunc" value="&'translate("&fmfunc.",' ',';')".
.' :set symbol="fmfunc" value="&'word("&fmfunc.",2)".
.' :set symbol="*extr" value=1.
.do end
.if &'length(&ufunc.) ne 0 .do begin
.' :set symbol="ufunc" value="&'translate("&ufunc.",' ',';')".
.' :set symbol="ufunc" value="&'word("&ufunc.",2)".
.' :set symbol="*extr" value=1.
.do end
.if &*extr. eq 0 .do begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -