ob-core: Fix `org-babel--string-to-number'
* lisp/ob-core.el (org-babel--string-to-number): Fix the regular expression. * testing/lisp/test-ob.el (test-ob/string-to-number): Test cases. If people write the data in the form "0001"", it means that he wants to treat it as a string. TINYCHANGE > #+name: TBL > | id | name | age | > |------|--------|-----| > | 0001 | Apollo | 16 | > | 0002 | Bmw | 16 | > > #+BEGIN_SRC emacs-lisp :results value pp :var tbl=TBL > (mapc 'print tbl) > #+END_SRC > > #+RESULTS: > : (("0001" "Apollo" 16) > : ("0002" "Bmw" 16)) TINYCHANGE
This commit is contained in:
parent
1c5339e974
commit
2b96fc9171
|
@ -62,6 +62,8 @@ the corresponding direction by swapping with the adjacent cell.
|
|||
|
||||
It was unused throughout the code base.
|
||||
|
||||
** Miscellaneous
|
||||
*** Org Table reads numbers starting with 0 as strings
|
||||
* Version 9.2
|
||||
** Incompatible changes
|
||||
*** Removal of OrgStruct mode mode and radio lists
|
||||
|
|
|
@ -2915,7 +2915,7 @@ situations in which is it not appropriate."
|
|||
(defun org-babel--string-to-number (string)
|
||||
"If STRING represents a number return its value.
|
||||
Otherwise return nil."
|
||||
(and (string-match-p "\\`-?[0-9]*\\.?[0-9]*\\'" string)
|
||||
(and (string-match-p "\\`-?\\([0-9]\\|\\([1-9]\\|[0-9]*\\.\\)[0-9]*\\)\\'" string)
|
||||
(string-to-number string)))
|
||||
|
||||
(defun org-babel-import-elisp-from-file (file-name &optional separator)
|
||||
|
|
|
@ -2034,6 +2034,16 @@ abc
|
|||
(let ((org-coderef-label-format "#(ref:%s)"))
|
||||
(org-babel-execute-src-block))))))
|
||||
|
||||
(ert-deftest test-ob/string-to-number ()
|
||||
(should (= 0 (org-babel--string-to-number "0")))
|
||||
(should (= 1 (org-babel--string-to-number "1")))
|
||||
(should (eq nil (org-babel--string-to-number "000")))
|
||||
(should (eq nil (org-babel--string-to-number "001")))
|
||||
(should (eq nil (org-babel--string-to-number "010")))
|
||||
(should (= 100 (org-babel--string-to-number "100")))
|
||||
(should (= 0.1 (org-babel--string-to-number "0.1")))
|
||||
(should (= 1.0 (org-babel--string-to-number "1.0"))))
|
||||
|
||||
(provide 'test-ob)
|
||||
|
||||
;;; test-ob ends here
|
||||
|
|
Loading…
Reference in New Issue