mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
emacs: Rename incremental JSON internal variables
This patch just renames the internal variables for the JSON parser now it is no longer specific to search mode. It also fixes up the white space after the previous patch. There should be no functional changes.
This commit is contained in:
parent
1dd76ab9b6
commit
294667871a
1 changed files with 32 additions and 24 deletions
|
@ -820,11 +820,15 @@ non-authors is found, assume that all of the authors match."
|
||||||
(insert (apply #'format string objects))
|
(insert (apply #'format string objects))
|
||||||
(insert "\n")))
|
(insert "\n")))
|
||||||
|
|
||||||
(defvar notmuch-search-process-state nil
|
;; These two variables are internal variables to the parsing
|
||||||
"Parsing state of the search process filter.")
|
;; routines. They are always used buffer local but need to be declared
|
||||||
|
;; globally to avoid compiler warnings.
|
||||||
|
|
||||||
(defvar notmuch-search-json-parser nil
|
(defvar notmuch-json-state nil
|
||||||
"Incremental JSON parser for the search process filter.")
|
"Internal incremental JSON parser object: local to the buffer being parsed.")
|
||||||
|
|
||||||
|
(defvar notmuch-json-parser nil
|
||||||
|
"State of the internal JSON parser: local to the buffer being parsed.")
|
||||||
|
|
||||||
(defun notmuch-search-process-filter (proc string)
|
(defun notmuch-search-process-filter (proc string)
|
||||||
"Process and filter the output of \"notmuch search\""
|
"Process and filter the output of \"notmuch search\""
|
||||||
|
@ -854,42 +858,46 @@ data.
|
||||||
|
|
||||||
If there is a syntax error, this will attempt to resynchronize
|
If there is a syntax error, this will attempt to resynchronize
|
||||||
with the input and will apply ERROR-FUNCTION in buffer
|
with the input and will apply ERROR-FUNCTION in buffer
|
||||||
RESULT-BUFFER to any input that was skipped."
|
RESULT-BUFFER to any input that was skipped.
|
||||||
|
|
||||||
|
It sets up all the needed internal variables: the caller just
|
||||||
|
needs to call it with point in the same place that the parser
|
||||||
|
left it."
|
||||||
(let (done)
|
(let (done)
|
||||||
(unless (local-variable-p 'notmuch-search-json-parser)
|
(unless (local-variable-p 'notmuch-json-parser)
|
||||||
(set (make-local-variable 'notmuch-search-json-parser)
|
(set (make-local-variable 'notmuch-json-parser)
|
||||||
(notmuch-json-create-parser (current-buffer)))
|
(notmuch-json-create-parser (current-buffer)))
|
||||||
(set (make-local-variable 'notmuch-search-process-state) 'begin))
|
(set (make-local-variable 'notmuch-json-state) 'begin))
|
||||||
(while (not done)
|
(while (not done)
|
||||||
(condition-case nil
|
(condition-case nil
|
||||||
(case notmuch-search-process-state
|
(case notmuch-json-state
|
||||||
((begin)
|
((begin)
|
||||||
;; Enter the results list
|
;; Enter the results list
|
||||||
(if (eq (notmuch-json-begin-compound
|
(if (eq (notmuch-json-begin-compound
|
||||||
notmuch-search-json-parser) 'retry)
|
notmuch-json-parser) 'retry)
|
||||||
(setq done t)
|
(setq done t)
|
||||||
(setq notmuch-search-process-state 'result)))
|
(setq notmuch-json-state 'result)))
|
||||||
((result)
|
((result)
|
||||||
;; Parse a result
|
;; Parse a result
|
||||||
(let ((result (notmuch-json-read notmuch-search-json-parser)))
|
(let ((result (notmuch-json-read notmuch-json-parser)))
|
||||||
(case result
|
(case result
|
||||||
((retry) (setq done t))
|
((retry) (setq done t))
|
||||||
((end) (setq notmuch-search-process-state 'end))
|
((end) (setq notmuch-json-state 'end))
|
||||||
(otherwise (with-current-buffer results-buf
|
(otherwise (with-current-buffer results-buf
|
||||||
(funcall result-function result))))))
|
(funcall result-function result))))))
|
||||||
((end)
|
((end)
|
||||||
;; Any trailing data is unexpected
|
;; Any trailing data is unexpected
|
||||||
(notmuch-json-eof notmuch-search-json-parser)
|
(notmuch-json-eof notmuch-json-parser)
|
||||||
(setq done t)))
|
(setq done t)))
|
||||||
(json-error
|
(json-error
|
||||||
;; Do our best to resynchronize and ensure forward
|
;; Do our best to resynchronize and ensure forward
|
||||||
;; progress
|
;; progress
|
||||||
(let ((bad (buffer-substring (line-beginning-position)
|
(let ((bad (buffer-substring (line-beginning-position)
|
||||||
(line-end-position))))
|
(line-end-position))))
|
||||||
(forward-line)
|
(forward-line)
|
||||||
(with-current-buffer results-buf
|
(with-current-buffer results-buf
|
||||||
(funcall error-function "%s" bad))))))
|
(funcall error-function "%s" bad))))))
|
||||||
;; Clear out what we've parsed
|
;; Clear out what we've parsed
|
||||||
(delete-region (point-min) (point))))
|
(delete-region (point-min) (point))))
|
||||||
|
|
||||||
(defun notmuch-search-tag-all (&optional tag-changes)
|
(defun notmuch-search-tag-all (&optional tag-changes)
|
||||||
|
|
Loading…
Reference in a new issue