diff options
| author | Yoav Marco | 2022-05-11 14:05:37 +0200 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2022-05-11 14:05:37 +0200 |
| commit | 72b100798743685e87f336a8dffa97ee149eeefe (patch) | |
| tree | d87b1d107c5d57430fcd76ff2934d5115771490d /lisp/sqlite-mode.el | |
| parent | f8bafead0b54655d269f3fa57021ddc922b0a2a7 (diff) | |
| download | emacs-72b100798743685e87f336a8dffa97ee149eeefe.tar.gz emacs-72b100798743685e87f336a8dffa97ee149eeefe.zip | |
(sqlite-mode--column-names): Suppport nested parens
* lisp/sqlite-mode.el (sqlite-mode--column-names): Make parsing
more resilient (bug#55363).
Copyright-paperwork-exempt: yes
Diffstat (limited to 'lisp/sqlite-mode.el')
| -rw-r--r-- | lisp/sqlite-mode.el | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lisp/sqlite-mode.el b/lisp/sqlite-mode.el index ba1b81ef7e2..66e2e487d9c 100644 --- a/lisp/sqlite-mode.el +++ b/lisp/sqlite-mode.el | |||
| @@ -129,15 +129,23 @@ | |||
| 129 | (insert (format " %s\n" column)))))))) | 129 | (insert (format " %s\n" column)))))))) |
| 130 | 130 | ||
| 131 | (defun sqlite-mode--column-names (table) | 131 | (defun sqlite-mode--column-names (table) |
| 132 | "Return a list of the column names for TABLE." | ||
| 132 | (let ((sql | 133 | (let ((sql |
| 133 | (caar | 134 | (caar |
| 134 | (sqlite-select | 135 | (sqlite-select |
| 135 | sqlite--db | 136 | sqlite--db |
| 136 | "select sql from sqlite_master where tbl_name = ? AND type = 'table'" | 137 | "select sql from sqlite_master where tbl_name = ? AND type = 'table'" |
| 137 | (list table))))) | 138 | (list table))))) |
| 138 | (mapcar | 139 | (with-temp-buffer |
| 139 | #'string-trim | 140 | (insert sql) |
| 140 | (split-string (replace-regexp-in-string "^.*(\\|)$" "" sql) ",")))) | 141 | (mapcar #'string-trim |
| 142 | (split-string | ||
| 143 | ;; Extract the args to CREATE TABLE. Point is | ||
| 144 | ;; currently at its end. | ||
| 145 | (buffer-substring | ||
| 146 | (1- (point)) ; right before ) | ||
| 147 | (1+ (progn (backward-sexp) (point)))) ; right after ( | ||
| 148 | ","))))) | ||
| 141 | 149 | ||
| 142 | (defun sqlite-mode-list-data () | 150 | (defun sqlite-mode-list-data () |
| 143 | "List the data from the table under point." | 151 | "List the data from the table under point." |