Ai sysvar
- 構文
- (ai_sysvar vars)
- 機能
- 変更するシステム変数の設定と現在の設定を保存。
- 引数
-
- vars … システム変数のリスト
- 戻す : (ai_sysvar NIL)
- システム変数を一つ設定: '("cmdecho" . 0)
- システム変数を複数設定: '(("cmdecho" . 0)("gridmode" . 0)))
- 戻り値
- 保存した変数値のリスト または nil
- MEMO : エラー時は *MERR* でシステム設定を復元する。
- サンプル
(ai_sysvar '("cmdecho" . 0))
; なんかの処理
(ai_sysvar nil)
;-----
(ai_sysvar '(("cmdecho" . 0)("gridmode" . 0)))
; なんかの処理
(ai_sysvar nil)
;-----
; 関数の定義は以下のとおり(古いタイプ)
(defun-q ai_sysvar (vars / savevar pair varname varvalue varlist)
(setq varlist nil) ;; place holder for varlist
(defun savevar (varname varvalue / pair)
(cond
;; if new value is NIL, save current setting
((not varvalue)
(setq varlist
(cons
(cons varname (getvar varname))
varlist)))
;; change sys'var only if it's different
((/= (getvar varname) varvalue)
;; add current setting to varlist, change setting
(setq varlist
(cons
(cons varname (getvar varname))
varlist))
(setvar varname varvalue))
(T nil)
);_cond
);_defun
(cond
;; reset all values
((not vars)
(foreach pair varlist
(setq varname (car pair)
varvalue (cdr pair))
(setvar varname varvalue) )
(setq varlist nil))
((not (eq 'LIST (type vars)))
(princ "\nAI_SYSVAR: Bad argument type.\n"))
;; set a single system variable
((eq 'STR (type (car vars)))
(savevar (car vars) (cdr vars))
)
;; set multiple system variables
((and
(eq 'LIST (type (car vars)))
(eq 'STR (type (caar vars)))
)
(foreach pair vars
(setq varname (car pair)
varvalue (cdr pair)
)
(if (not (eq 'STR (type varname)))
(princ "\nAI_SYSVAR: Bad argument type.\n")
(savevar varname varvalue)
))
)
(T (princ "\nAI_SYSVAR: Error in first argument.\n"))
);cond
;; redefine ai_sysvar function to contain the value of varlist
(setq ai_sysvar
(cons
(car ai_sysvar)
(cons (list 'setq 'varlist (list 'quote varlist))
(cddr ai_sysvar))))
varlist ;; return the list
);_sysvar
関連事項
- [[]]
- [[]]