]> code.delx.au - gnu-emacs/commitdiff
Prefer tail calls.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Nov 2013 01:52:18 +0000 (17:52 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Nov 2013 01:52:18 +0000 (17:52 -0800)
* lib-src/ebrowse.c (xstrdup):
* lib-src/etags.c (savenstr):
* lwlib/lwlib.c (safe_strdup):
* src/xfns.c (xic_create_fontsetname):
* src/xrdb.c (gethomedir): Prefer tail calls.
* lib-src/etags.c (concat): Omit unnecessary assignment.

lib-src/ChangeLog
lib-src/ebrowse.c
lib-src/etags.c
lwlib/ChangeLog
lwlib/lwlib.c
src/ChangeLog
src/xfns.c
src/xrdb.c

index 44d7260deaddbea8a2668ede39f9412b4634c5fb..2010444743a1597b53ef90486ae98564f6278f2f 100644 (file)
@@ -1,3 +1,9 @@
+2013-11-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * ebrowse.c (xstrdup):
+       * etags.c (savenstr): Prefer tail calls.
+       * etags.c (concat): Omit unnecessary assignment.
+
 2013-10-24  Glenn Morris  <rgm@gnu.org>
 
        * Makefile.in ($(DESTDIR)${archlibdir}):
index 216865c38003f87aaa5a4ea44cf6521cbdbf46d3..971f74e7fee112b5c10d6242584a35f6306889b4 100644 (file)
@@ -514,7 +514,7 @@ static char *
 xstrdup (char *s)
 {
   if (s)
-    s = strcpy (xmalloc (strlen (s) + 1), s);
+    return strcpy (xmalloc (strlen (s) + 1), s);
   return s;
 }
 
index aa8c773e357ec26073e9d0c5112f62dec996e6bc..21cf3654b9edb78baf6c99ed2329128bd0dc1751 100644 (file)
@@ -6243,12 +6243,9 @@ savestr (const char *cp)
 static char *
 savenstr (const char *cp, int len)
 {
-  register char *dp;
-
-  dp = xnew (len + 1, char);
-  memcpy (dp, cp, len);
+  char *dp = xnew (len + 1, char);
   dp[len] = '\0';
-  return dp;
+  return memcpy (dp, cp, len);
 }
 
 /*
@@ -6362,7 +6359,6 @@ concat (const char *s1, const char *s2, const char *s3)
   strcpy (result, s1);
   strcpy (result + len1, s2);
   strcpy (result + len1 + len2, s3);
-  result[len1 + len2 + len3] = '\0';
 
   return result;
 }
index dadb13514e08725ec6086562746fba0f5af2219b..e4ab1a91cac2b153e2f3e7d39c2f48ccbd60656e 100644 (file)
@@ -1,3 +1,7 @@
+2013-11-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lwlib.c (safe_strdup): Prefer tail calls.
+
 2013-11-02  Glenn Morris  <rgm@gnu.org>
 
        Use relative filenames in TAGS files.
index 7d9920e8bce3e24de0ad862b0306e700151b523b..c8eba9cf35e3cba801c40aeba5d90b3a8a99c765 100644 (file)
@@ -103,11 +103,7 @@ static void show_one_widget_busy (Widget, Boolean);
 char *
 safe_strdup (const char *s)
 {
-  char *result;
-  if (! s) return 0;
-  result = (char *) xmalloc (strlen (s) + 1);
-  strcpy (result, s);
-  return result;
+  return s ? xstrdup (s) : 0;
 }
 
 static void
index 08bbe9e69d238f0fe0c56bf1a8634606cb8d6d31..3861449cf5a87207633dd3c12507ff3521066480 100644 (file)
@@ -1,3 +1,8 @@
+2013-11-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xfns.c (xic_create_fontsetname):
+       * xrdb.c (gethomedir): Prefer tail calls.
+
 2013-11-12  Paul Eggert  <eggert@cs.ucla.edu>
 
        * xterm.c (syms_of_xterm): staticpro Qmodifier_value, Qalt, Qhyper,
index 42e7c2eeec58124163452defffc5c987706a9e3f..46f377042f6ee2799d8a632183bbc134b19dbd2d 100644 (file)
@@ -1750,7 +1750,7 @@ xic_create_fontsetname (const char *base_fontname, int motif)
        }
     }
   if (motif)
-    strcat (fontsetname, ":");
+    return strcat (fontsetname, ":");
   return fontsetname;
 }
 #endif /* HAVE_X_WINDOWS && USE_X_TOOLKIT */
index 52988f0818a601f2018d1f3cfb852658085841ee..ea823b2b3135f3da0be177a7e9eeb8ced027fbf4 100644 (file)
@@ -234,9 +234,7 @@ gethomedir (void)
 
   copy = xmalloc (strlen (ptr) + 2);
   strcpy (copy, ptr);
-  strcat (copy, "/");
-
-  return copy;
+  return strcat (copy, "/");
 }