CVS: elisp refdb-mode.el,1.2,1.3

Michael Smith <[email protected]>
Newsgroups gmane.text.refdb.devel
Message-ID <[email protected]>
Update of /cvsroot/refdb/elisp
In directory sc8-pr-cvs1:/tmp/cvs-serv13993

Modified Files:
	refdb-mode.el 
Log Message:
Fix for Bug #861419, "handle percent sign in queries".

  http://sourceforge.net/tracker/index.php?func=detail&aid=861419&group_id=26091&atid=385991

Problem:
  If you try to use a string that contains a percent sign, e.g.,
  "Walsh%", in a getref query, Emacs emits a "not enough arguments for
  format call" error, and the query fails.

Cause:
  Message functions with nested format functions, like this:

    (message (format CONTROL-STRING OBJECTS))

  In that case, when objects for that nested format call had percent
  signs in them, the message function choked on them.

Fix:
  Un-nested content that was in the format function, like this:

    (message CONTROL-STRING OBJECTS)

  Because the message function has built-in support for expanding
  control-strings just as the format function does, the format call
  was actually unnecessary.

  Also, added a new function, `refdb-message-getting-refs', for
  displaying the "Getting datasets for FIELD VALUE" message. All the
  refdb-getref-by-* functions now call this (instead of having
  their own hard-coded message calls).

Affects:
  All getref queries, whether from command-line or menu.


Index: refdb-mode.el
===================================================================
RCS file: /cvsroot/refdb/elisp/refdb-mode.el,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -U2 -r1.2 -r1.3
--- refdb-mode.el	16 Dec 2003 04:48:07 -0000	1.2
+++ refdb-mode.el	17 Dec 2003 10:36:31 -0000	1.3
@@ -586,4 +586,14 @@
   )
 
+(defun refdb-message-getting-refs (field value)
+  "Emit appropriate status message for FIELD and VALUE.
+This function is called by the various refdb-getref-by commands."
+  (message
+   "Getting datasets for %s %s ..."
+   field
+   value
+   )
+  )
+
 (defun refdb-getref-by-field (field value)
   "Display all RefDB datasets that match the specified FIELD and VALUE.
@@ -611,11 +621,10 @@
     )
   (message
-   (format
-    "Displaying output for %s -d %s -t %s :%s:=%s"
-    refdb-getref-command
-    refdb-database
-    refdb-output-type
-    field
-    value)
+   "Displaying output for %s -d %s -t %s :%s:=%s"
+   refdb-getref-command
+   refdb-database
+   refdb-output-type
+   field
+   value
    )
   (pop-to-buffer "*refdb-output*")
@@ -665,5 +674,5 @@
   "Display all RefDB datasets matching AUTHOR."
   (interactive (list (read-string (format "Author: "))))
-  (message (format "Getting datasets for author %s ..." author))
+  (refdb-message-getting-refs 'author author)
   (refdb-getref-by-field "AU" author)
   )
@@ -672,5 +681,5 @@
   "Display all RefDB datasets matching TITLE."
   (interactive (list (read-string (format "Title: "))))
-  (message (format "Getting datasets for title %s ..." title))
+  (refdb-message-getting-refs 'title title)
   (refdb-getref-by-field "TI" title)
   )
@@ -679,5 +688,5 @@
   "Display all RefDB datasets matching KEYWORD."
   (interactive (list (read-string (format "Keyword: "))))
-  (message (format "Getting datasets for keyword %s ..." keyword))
+  (refdb-message-getting-refs 'keyword keyword)
   (refdb-getref-by-field "KW" keyword)
   )
@@ -686,5 +695,5 @@
   "Display all RefDB datasets matching ID."
   (interactive (list (read-string (format "ID: "))))
-  (message (format "Getting datasets for ID %s ..." ID))
+  (refdb-message-getting-refs 'id id)
   (refdb-getref-by-field "ID" id)
   )
@@ -693,5 +702,5 @@
   "Display all RefDB datasets matching CITEKEY."
   (interactive (list (read-string (format "Citation Key: "))))
-  (message (format "Getting datasets for citation key %s ..." citekey))
+  (refdb-message-getting-refs 'citekey citekey)
   (refdb-getref-by-field "CK" citekey)
   )
@@ -700,5 +709,5 @@
   "Display all RefDB datasets matching SEARCHSTRING."
   (interactive "sSearch string: ")
-  (message (format "Getting datasets for search string %s ..." searchstring))
+  (refdb-message-getting-refs 'searchstring searchstring)
   (if (not (eq (length refdb-database) 0))
       (progn
@@ -721,10 +730,9 @@
     )
   (message
-   (format
-    "Displaying output for %s -d %s -t %s %s"
-    refdb-getref-command
-    refdb-database
-    refdb-output-type
-    searchstring)
+   "Displaying output for %s -d %s -t %s %s"
+   refdb-getref-command
+   refdb-database
+   refdb-output-type
+   searchstring
    )
   )



-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.