chiark / gitweb /
Move xtrsave(string) to avoid possible memory leak.
[userv.git] / language.i4
index 09b4a6120fc6300364a0d3daf146d72c539c621d..8857c2f22cee20f0c6c26fccd539bfa0bf6840dd 100644 (file)
@@ -66,6 +66,7 @@ autovaldeftype(`readwrite')
 autovaldeftype(`string')
 autovaldeftype(`execmode')
 autovaldeftype(`ehandlemode')
+autovaldeftype(`builtinservice')
 autovaldeftype(`misc')
 autovaldeftype(`internal')
 
@@ -85,10 +86,12 @@ define(`isflagpair',`isdirectivefn(`$1',`dfg_setflag',`',
                       `lr_flag= &'makename(`$1')`; lr_flagval= 1; ')
                      isdirectivefn(`no-$1',`dfg_setflag',`',
                       `lr_flag= &'makename(`$1')`; lr_flagval= 0; ')')
+dnl `reset' is also a builtin service
 isexecmode(`reject')
-isexecmode(`execute')
+dnl `execute' is also a builtin service
 isexecmode(`execute-from-directory')
 isexecmode(`execute-from-path')
+isexecmode(`execute-builtin')
 isehandlemode(`errors-to-stderr')
 isehandlemode(`errors-to-syslog')
 isehandlemode(`errors-to-file')
@@ -101,7 +104,6 @@ isflagpair(`set-environment')
 isflagpair(`suppress-args')
 isflagpair(`disconnect-hup')
 isdirective(`cd')
-isdirective(`reset')
 isdirective(`user-rcfile')
 isdirective(`include')
 isdirectivefn(`include-ifexist',`df_include')
@@ -144,6 +146,22 @@ isparmcondition(`glob')
 isparmcondition(`range')
 isparmcondition(`grep')
 
+dnl builtin services
+define(`isbuiltinservice',`wordtypelexexec(`$1',`tokt_builtinservice',
+    `lr_bispa= bispa_'makename(`$2')`; lr_bisexec= bisexec_'makename(`$1')`; ')')
+isbuiltinservice(`environment',`none')
+isbuiltinservice(`parameter',`parameter')
+isbuiltinservice(`version',`none')
+isbuiltinservice(`toplevel',`none')
+isbuiltinservice(`override',`none')
+
+dnl builtin services that are also directive names
+define(`isdirectivebuiltinservice',
+       `wordtypelexexec(`$1',`tokt_directive|tokt_builtinservice$3',
+ `lr_dir= df_'makename(`$1')`; lr_bispa= bispa_'makename(`$2')`; lr_bisexec= bisexec_'makename(`$1')`; ')')
+isdirectivebuiltinservice(`reset',`none')
+isdirectivebuiltinservice(`execute',`none',`|tokt_execmode')
+
 dnl parameters
 define(`isparameter',`wordtypelexexec(`$1',`tokt_parameter',
                         `lr_parameter= pf_'makename(`$1')`; ')')