From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Danjou Subject: [PATCH] org-plist-delete rewrite Date: Fri, 24 Dec 2010 17:46:47 +0100 Message-ID: <1293209207-25615-1-git-send-email-julien@danjou.info> Return-path: Received: from [140.186.70.92] (port=42563 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PWAnC-00007U-JF for emacs-orgmode@gnu.org; Fri, 24 Dec 2010 11:46:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PWAnB-0003qx-Hh for emacs-orgmode@gnu.org; Fri, 24 Dec 2010 11:46:58 -0500 Received: from prometheus.naquadah.org ([212.85.154.174]:46714 helo=mx1.naquadah.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PWAnB-0003q7-Cu for emacs-orgmode@gnu.org; Fri, 24 Dec 2010 11:46:57 -0500 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Cc: Julien Danjou * org-macs.el (org-plist-delete): Rewrite faster. * org.el (org-plist-delete): Remove duplicate from org-macs.el. Signed-off-by: Julien Danjou --- lisp/org-macs.el | 16 +++++++--------- lisp/org.el | 10 ---------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/lisp/org-macs.el b/lisp/org-macs.el index 97a8fdc..608c0d7 100644 --- a/lisp/org-macs.el +++ b/lisp/org-macs.el @@ -289,15 +289,13 @@ we turn off invisibility temporarily. Use this in a `let' form." (goto-char (point-at-bol)) (looking-at re))) -(defun org-plist-delete (plist property) - "Delete PROPERTY from PLIST. -This is in contrast to merely setting it to 0." - (let (p) - (while plist - (if (not (eq property (car plist))) - (setq p (plist-put p (car plist) (nth 1 plist)))) - (setq plist (cddr plist))) - p)) +(defun org-plist-delete (plist prop) + "Delete PROPERTY from PLIST." + (let ((p (memq prop plist))) + (if (not p) + plist + (setcdr p (cddr p)) + (delq prop plist)))) (defun org-replace-match-keep-properties (newtext &optional fixedcase literal string) diff --git a/lisp/org.el b/lisp/org.el index 5fb2ba4..dd18189 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -17995,16 +17995,6 @@ With prefix arg UNCOMPILED, load the uncompiled versions." (concat "\"" (mapconcat 'identity (split-string s "\"") "\"\"") "\"") s)) -(defun org-plist-delete (plist property) - "Delete PROPERTY from PLIST. -This is in contrast to merely setting it to 0." - (let (p) - (while plist - (if (not (eq property (car plist))) - (setq p (plist-put p (car plist) (nth 1 plist)))) - (setq plist (cddr plist))) - p)) - (defun org-force-self-insert (N) "Needed to enforce self-insert under remapping." (interactive "p") -- 1.7.2.3