(math-restore-underscores, math-string-restore-underscores):
New functions. (math-read-factor): Properly check variable names with underscores for entries in `math-expr-variable-mapping'.
This commit is contained in:
parent
2a29c40930
commit
57f8977d5c
2 changed files with 22 additions and 1 deletions
|
@ -4,6 +4,11 @@
|
|||
|
||||
2007-12-11 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc/calc-aent.el (math-restore-underscores)
|
||||
(math-string-restore-underscores): New functions.
|
||||
(math-read-factor): Properly check variable names with underscores
|
||||
for entries in `math-expr-variable-mapping'.
|
||||
|
||||
* calc/calc-lang.el (math-lang-name): New property name.
|
||||
|
||||
* calc/calc.el (calc-set-mode-line): Use `math-lang-name'
|
||||
|
|
|
@ -1015,6 +1015,19 @@ in Calc algebraic input.")
|
|||
(concat (math-match-substring x 1) "-" (math-match-substring x 2)))
|
||||
x))
|
||||
|
||||
(defun math-restore-underscores (x)
|
||||
"Replace pound signs by underscores in the symbol x.
|
||||
If the current Calc language does not allow underscores, return nil."
|
||||
(if (memq calc-language calc-lang-allow-underscores)
|
||||
(intern-soft (math-string-restore-underscores (symbol-name x)))))
|
||||
|
||||
(defun math-string-restore-underscores (x)
|
||||
"Replace pound signs by underscores in the string x."
|
||||
(if (string-match "\\`\\(.*\\)#\\(.*\\)\\'" x)
|
||||
(math-string-restore-underscores
|
||||
(concat (math-match-substring x 1) "_" (math-match-substring x 2)))
|
||||
x))
|
||||
|
||||
(defun math-read-if (cond op)
|
||||
(let ((then (math-read-expr-level 0)))
|
||||
(or (equal math-expr-data ":")
|
||||
|
@ -1116,7 +1129,10 @@ in Calc algebraic input.")
|
|||
sym
|
||||
(intern (concat "var-"
|
||||
(symbol-name sym)))))))
|
||||
(let ((v (assq (nth 1 val) math-expr-variable-mapping)))
|
||||
(let ((v (or
|
||||
(assq (nth 1 val) math-expr-variable-mapping)
|
||||
(assq (math-restore-underscores (nth 1 val))
|
||||
math-expr-variable-mapping))))
|
||||
(and v (setq val (if (consp (cdr v))
|
||||
(funcall (car (cdr v)) v val)
|
||||
(list 'var
|
||||
|
|
Loading…
Add table
Reference in a new issue