]> git.eshelyaron.com Git - emacs.git/commitdiff
Use XCAR and XCDR instead of Fcar and Fcdr where possible.
authorDmitry Antipov <dmantipov@yandex.ru>
Tue, 10 Jul 2012 16:53:26 +0000 (20:53 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Tue, 10 Jul 2012 16:53:26 +0000 (20:53 +0400)
* admin/coccinelle/list_loop.cocci: Semantic patch to convert from Fcdr
to XCDR and consistently use CONSP in the list iteration loops.
* admin/coccinelle/vector_contents.cocci: Fix indentation.
* src/callint.c, src/coding.c, src/doc.c, src/editfns.c, src/eval.c,
* src/font.c, src/fontset.c, src/frame.c, src/gnutls.c, src/minibuf.c,
* src/msdos.c, src/textprop.c, src/w32fns.c, src/w32menu.c, src/window.c,
* src/xmenu.c: Changed to use XCAR and XCDR where argument type is known
to be a Lisp_Cons.

20 files changed:
admin/ChangeLog
admin/coccinelle/list_loop.cocci [new file with mode: 0644]
admin/coccinelle/vector_contents.cocci
src/ChangeLog
src/callint.c
src/coding.c
src/doc.c
src/editfns.c
src/eval.c
src/font.c
src/fontset.c
src/frame.c
src/gnutls.c
src/minibuf.c
src/msdos.c
src/textprop.c
src/w32fns.c
src/w32menu.c
src/window.c
src/xmenu.c

index 6c5b1342d329f2e37f104b120503200abb5e7808..3a71c1c8d786f0831199de9a09641734a0d51bdc 100644 (file)
@@ -1,3 +1,9 @@
+2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * coccinelle/list_loop.cocci: Semantic patch to convert from Fcdr
+       to XCDR and consistently use CONSP in the list iteration loops.
+       * coccinelle/vector_contents.cocci: Fix indentation.
+
 2012-07-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * bzrmerge.el: Use cl-lib.
diff --git a/admin/coccinelle/list_loop.cocci b/admin/coccinelle/list_loop.cocci
new file mode 100644 (file)
index 0000000..89f0bff
--- /dev/null
@@ -0,0 +1,19 @@
+// Omit redundant type check, consistently use CONSP.
+@@
+identifier A;
+expression X;
+statement S;
+@@
+(
+for (A = X; 
+- !NILP (A); 
++ CONSP (A);
+- A = Fcdr (A))
++ A = XCDR (A))
+S
+|
+for (A = X; CONSP (A);
+- A = Fcdr (A))
++ A = XCDR (A))
+S
+)
index beebc2d2089097b020e8f25e881107d0923cb3b1..3c696ffd2374c12c41b3fa472c584ab1f785f1e2 100644 (file)
@@ -11,6 +11,6 @@ expression E1, E2;
 - XVECTOR (I1)->contents[E1] = E2
 + ASET (I1, E1, E2)
 |
--XVECTOR (I1)->contents[E1]
-+AREF (I1, E1)
+- XVECTOR (I1)->contents[E1]
++ AREF (I1, E1)
 )
index 1c451168e15d1fd155803e7308ab10a401baeaa6..677b78ccbfbb5836d9ff3c697d44e5c31dd243a7 100644 (file)
@@ -1,3 +1,11 @@
+2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use XCAR and XCDR instead of Fcar and Fcdr where possible.
+       * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
+       * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
+       * w32menu.c, window.c, xmenu.c: Changed to use XCAR and XCDR
+       where argument type is known to be a Lisp_Cons.
+
 2012-07-10  Tom Tromey  <tromey@redhat.com>
 
        * bytecode.c (BYTE_CODE_THREADED): New macro.
index 1a99ca2731cf66ece802b41169894c425e52650d..58e1a5be2f4da41eef4c392dd657eee87c554625 100644 (file)
@@ -205,7 +205,7 @@ fix_command (Lisp_Object input, Lisp_Object values)
              if (CONSP (elt))
                {
                  Lisp_Object presflag, carelt;
-                 carelt = Fcar (elt);
+                 carelt = XCAR (elt);
                  /* If it is (if X Y), look at Y.  */
                  if (EQ (carelt, Qif)
                      && EQ (Fnthcdr (make_number (3), elt), Qnil))
index 8210cacc4d8056aa20b95364706517b6ebef1983..134ebf2ab7385bcdb9112d0f945454ee8fff28e8 100644 (file)
@@ -9791,7 +9791,7 @@ usage: (define-coding-system-internal ...)  */)
 
       val = args[coding_arg_ccl_valids];
       valids = Fmake_string (make_number (256), make_number (0));
-      for (tail = val; !NILP (tail); tail = Fcdr (tail))
+      for (tail = val; CONSP (tail); tail = XCDR (tail))
        {
          int from, to;
 
@@ -9892,7 +9892,7 @@ usage: (define-coding-system-internal ...)  */)
       CHECK_NUMBER_CDR (reg_usage);
 
       request = Fcopy_sequence (args[coding_arg_iso2022_request]);
-      for (tail = request; ! NILP (tail); tail = Fcdr (tail))
+      for (tail = request; CONSP (tail); tail = XCDR (tail))
        {
          int id;
          Lisp_Object tmp1;
index 6b356d57cb34190356cb472d1f2dd4a147a3d7b6..7d82211faea720056060997d9713c097f02ad6e7 100644 (file)
--- a/src/doc.c
+++ b/src/doc.c
@@ -381,7 +381,7 @@ string is passed through `substitute-command-keys'.  */)
     }
   else if (CONSP (fun))
     {
-      funcar = Fcar (fun);
+      funcar = XCAR (fun);
       if (!SYMBOLP (funcar))
        xsignal1 (Qinvalid_function, fun);
       else if (EQ (funcar, Qkeymap))
index f6d849fbc7a0864c0a083e2c7daabc4c79329dd6..e48097ab3a6f191872a2a7426b86cb777ad7eb92 100644 (file)
@@ -1915,7 +1915,7 @@ usage: (encode-time SECOND MINUTE HOUR DAY MONTH YEAR &optional ZONE)  */)
   tm.tm_isdst = -1;
 
   if (CONSP (zone))
-    zone = Fcar (zone);
+    zone = XCAR (zone);
   if (NILP (zone))
     {
       BLOCK_INPUT;
index 9da9ec05cae218428a9e71205e0413358a1f9c5f..f16fdc6dd4c94b27a10584ab64616978d3f4c319 100644 (file)
@@ -2070,8 +2070,8 @@ eval_sub (Lisp_Object form)
        error ("Lisp nesting exceeds `max-lisp-eval-depth'");
     }
 
-  original_fun = Fcar (form);
-  original_args = Fcdr (form);
+  original_fun = XCAR (form);
+  original_args = XCDR (form);
 
   backtrace.next = backtrace_list;
   backtrace_list = &backtrace;
index 1eca1c2eb290ba7feab3d30edbb16dcb415495f8..ea6fc47884c86c9079e3922ba736d0f27c37a74a 100644 (file)
@@ -1827,7 +1827,7 @@ check_otf_features (Lisp_Object otf_features)
   CHECK_CONS (otf_features);
   CHECK_SYMBOL (XCAR (otf_features));
   otf_features = XCDR (otf_features);
-  for (val = Fcar (otf_features); ! NILP (val);  val = Fcdr (val))
+  for (val = Fcar (otf_features); CONSP (val); val = XCDR (val))
     {
       CHECK_SYMBOL (Fcar (val));
       if (SBYTES (SYMBOL_NAME (XCAR (val))) > 4)
@@ -1835,7 +1835,7 @@ check_otf_features (Lisp_Object otf_features)
               SDATA (SYMBOL_NAME (XCAR (val))));
     }
   otf_features = XCDR (otf_features);
-  for (val = Fcar (otf_features); ! NILP (val);  val = Fcdr (val))
+  for (val = Fcar (otf_features); CONSP (val); val = XCDR (val))
     {
       CHECK_SYMBOL (Fcar (val));
       if (SBYTES (SYMBOL_NAME (XCAR (val))) > 4)
index bd5956d2beec5b3e2639a714d7e5419a97d7d596..056ef31e4f1e4acdbe9fc2233356114e3b29f3ff 100644 (file)
@@ -1668,7 +1668,7 @@ FONT-SPEC is a vector, a cons, or a string.  See the documentation of
       Fset_char_table_range (fontset, Qt, Qnil);
     }
 
-  for (; ! NILP (fontlist); fontlist = Fcdr (fontlist))
+  for (; CONSP (fontlist); fontlist = XCDR (fontlist))
     {
       Lisp_Object elt, script;
 
index 61baa25be3d70c3d9520dd5e060dce0d201769f7..3a3f5526035a4a782693789f2c299616010a223f 100644 (file)
@@ -2754,7 +2754,7 @@ x_set_frame_parameters (FRAME_PTR f, Lisp_Object alist)
   struct gcpro gcpro1, gcpro2;
 
   i = 0;
-  for (tail = alist; CONSP (tail); tail = Fcdr (tail))
+  for (tail = alist; CONSP (tail); tail = XCDR (tail))
     i++;
 
   parms = alloca (i * sizeof *parms);
index 9c96379ff7ed85ad33974d572d908574683ff87a..21658a1bc82678b2b356d252b8f2f6e44f992b0e 100644 (file)
@@ -871,7 +871,7 @@ one trustfile (usually a CA bundle).  */)
       int file_format = GNUTLS_X509_FMT_PEM;
       Lisp_Object tail;
 
-      for (tail = trustfiles; !NILP (tail); tail = Fcdr (tail))
+      for (tail = trustfiles; CONSP (tail); tail = XCDR (tail))
        {
          Lisp_Object trustfile = Fcar (tail);
          if (STRINGP (trustfile))
@@ -893,7 +893,7 @@ one trustfile (usually a CA bundle).  */)
            }
        }
 
-      for (tail = crlfiles; !NILP (tail); tail = Fcdr (tail))
+      for (tail = crlfiles; CONSP (tail); tail = XCDR (tail))
        {
          Lisp_Object crlfile = Fcar (tail);
          if (STRINGP (crlfile))
@@ -913,7 +913,7 @@ one trustfile (usually a CA bundle).  */)
            }
        }
 
-      for (tail = keylist; !NILP (tail); tail = Fcdr (tail))
+      for (tail = keylist; CONSP (tail); tail = XCDR (tail))
        {
          Lisp_Object keyfile = Fcar (Fcar (tail));
          Lisp_Object certfile = Fcar (Fcdr (tail));
index acf57a732689c3a2a72249873cd8e029554071fe..27c776857dbac4936a227098ea01a2f63769d8e5 100644 (file)
@@ -425,7 +425,7 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt,
       if (CONSP (initial))
        {
          Lisp_Object backup_n = Fcdr (initial);
-         initial = Fcar (initial);
+         initial = XCAR (initial);
          CHECK_STRING (initial);
          if (!NILP (backup_n))
            {
index 8a6a150a956bd64b7e30a1eb5176c3eb504bcccc..e19e4ef8f3a19ea5c77e4a3642b9aa551902a8bf 100644 (file)
@@ -1618,7 +1618,7 @@ IT_set_frame_parameters (struct frame *f, Lisp_Object alist)
 
   /* Extract parm names and values into those vectors.  */
   i = 0;
-  for (tail = alist; CONSP (tail); tail = Fcdr (tail))
+  for (tail = alist; CONSP (tail); tail = XCDR (tail))
     {
       Lisp_Object elt;
 
index 4562cc0bd18095a3be8405db0296983ec464ef8c..efce7259ce52661a10a8696b636217ccb3d16232 100644 (file)
@@ -271,7 +271,7 @@ interval_has_some_properties_list (Lisp_Object list, INTERVAL i)
   /* Go through each element of LIST.  */
   for (tail1 = list; CONSP (tail1); tail1 = XCDR (tail1))
     {
-      sym = Fcar (tail1);
+      sym = XCAR (tail1);
 
       /* Go through i's plist, looking for tail1 */
       for (tail2 = i->plist; CONSP (tail2); tail2 = XCDR (XCDR (tail2)))
index 459d4c835f5562bdc6f7a1fdd53cafdeaae61f9a..825f98154820f921764a3c5030e5ac5a14cf7a0e 100644 (file)
@@ -678,7 +678,7 @@ w32_color_map_lookup (char *colorname)
       elt = XCAR (tail);
       if (!CONSP (elt)) continue;
 
-      tem = Fcar (elt);
+      tem = XCAR (elt);
 
       if (lstrcmpi (SDATA (tem), colorname) == 0)
        {
index b957da67567acd1bb41f1e48e91d63b8e7c1d535..8adc6c628149a8d007bbd5ad947811b516815d24 100644 (file)
@@ -162,8 +162,7 @@ otherwise it is "Question". */)
     }
   else if (CONSP (position))
     {
-      Lisp_Object tem;
-      tem = Fcar (position);
+      Lisp_Object tem = XCAR (position);
       if (CONSP (tem))
        window = Fcar (Fcdr (position));
       else
index 721b4d9847784e0ed87e2991d9acb3a3afc9f132..7fd66057ad27c0755ed7edbc29e58c80d4d14659 100644 (file)
@@ -4854,7 +4854,7 @@ specifies the window to scroll.  This takes precedence over
   else
     {
       if (CONSP (arg))
-       arg = Fcar (arg);
+       arg = XCAR (arg);
       CHECK_NUMBER (arg);
       window_scroll (window, XINT (arg), 0, 1);
     }
index 5a6390449c4513b87a4fd4f9a5669fd5afb82881..fb03ab84d82b8bdf326cb4424d467a3d81450c7d 100644 (file)
@@ -258,8 +258,7 @@ for instance using the window manager, then this produces a quit and
     }
   else if (CONSP (position))
     {
-      Lisp_Object tem;
-      tem = Fcar (position);
+      Lisp_Object tem = XCAR (position);
       if (CONSP (tem))
        window = Fcar (Fcdr (position));
       else