monnier pushed a commit to branch master in repository elpa. commit 74519f25afb4a8c6c922c11da866fcc67d54db89 Author: Teemu Likonen <tliko...@iki.fi> Date: Wed Jul 22 07:56:24 2009 +0000
Lisätään matalan tason tietokantafunktiot --- wcheck-mode.el | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-) diff --git a/wcheck-mode.el b/wcheck-mode.el index 56952a2..d9a32ae 100644 --- a/wcheck-mode.el +++ b/wcheck-mode.el @@ -257,6 +257,7 @@ This is used when language does not define face." (make-variable-buffer-local 'wcheck-buffer-window-areas) (defvar wcheck-buffer-process-data nil) +(defvar wcheck-buffer-data nil) (defconst wcheck-process-name-prefix "wcheck/" "Process name prefix for `wcheck-mode'.") @@ -956,4 +957,59 @@ range BEG to END. Otherwise remove all overlays." (delete-overlay overlay))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Buffer data access functions + + +(defun wcheck-create-buffer-data (buffer) + "Create data instance for BUFFER." + (unless (wcheck-get-buffer-data buffer) + (push (list :buffer buffer :process nil :language nil) + wcheck-buffer-data)) + wcheck-buffer-data) + + +(defun wcheck-delete-buffer-data (buffer) + "Delete all data associated to BUFFER." + (mapc #'(lambda (item) + (when (eq buffer (plist-get item :buffer)) + (setq wcheck-buffer-data (delq item wcheck-buffer-data)))) + wcheck-buffer-data) + wcheck-buffer-data) + + +(defun wcheck-get-buffer-data (buffer &optional key) + "Return the KEY value associated with BUFFER. +If optional KEY is not given return BUFFER's all data." + (catch :answer + (dolist (item wcheck-buffer-data) + (when (eq buffer (plist-get item :buffer)) + (throw :answer (if key (plist-get item key) item)))))) + + +(defun wcheck-get-process-data (process &optional key) + "Return the KEY value associated with PROCESS. +If optional KEY is not given return PROCESS' all data." + (catch :answer + (dolist (item wcheck-buffer-data) + (when (eq process (plist-get item :process)) + (throw :answer (if key (plist-get item key) item)))))) + + +(defun wcheck-get-all-data (key) + "Return all buffers' KEY value." + (delq nil (mapcar #'(lambda (item) + (plist-get item key)) + wcheck-buffer-data))) + + +(defun wcheck-set-buffer-data (buffer key value) + "Set KEY's VALUE for BUFFER." + (let ((item (wcheck-get-buffer-data buffer))) + (when item + (wcheck-delete-buffer-data buffer) + (plist-put item key value) + (push item wcheck-buffer-data)))) + + (provide 'wcheck-mode)