[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r117931: Fix some slow uses and misuses of strcat.
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] trunk r117931: Fix some slow uses and misuses of strcat. |
Date: |
Wed, 24 Sep 2014 04:12:45 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 117931
revision-id: address@hidden
parent: address@hidden
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Tue 2014-09-23 21:12:37 -0700
message:
Fix some slow uses and misuses of strcat.
* doc.c (get_doc_string):
* gtkutil.c (get_utf8_string):
* xsmfns.c (x_session_initialize):
Avoid recomputation of string length.
* ftfont.c (ftfont_spec_pattern):
* xfns.c (xic_create_fontsetname):
Don't assume output buffer is initially zero.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/doc.c doc.c-20091113204419-o5vbwnq5f7feedwu-250
src/ftfont.c ftfont.c-20091113204419-o5vbwnq5f7feedwu-8542
src/gtkutil.c gtkutil.c-20091113204419-o5vbwnq5f7feedwu-2527
src/xfns.c xfns.c-20091113204419-o5vbwnq5f7feedwu-274
src/xsmfns.c xsmfns.c-20091113204419-o5vbwnq5f7feedwu-2385
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2014-09-23 17:03:48 +0000
+++ b/src/ChangeLog 2014-09-24 04:12:37 +0000
@@ -1,3 +1,14 @@
+2014-09-24 Paul Eggert <address@hidden>
+
+ Fix some slow uses and misuses of strcat.
+ * doc.c (get_doc_string):
+ * gtkutil.c (get_utf8_string):
+ * xsmfns.c (x_session_initialize):
+ Avoid recomputation of string length.
+ * ftfont.c (ftfont_spec_pattern):
+ * xfns.c (xic_create_fontsetname):
+ Don't assume output buffer is initially zero.
+
2014-09-23 Paul Eggert <address@hidden>
* lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy.
=== modified file 'src/doc.c'
--- a/src/doc.c 2014-09-23 17:03:48 +0000
+++ b/src/doc.c 2014-09-24 04:12:37 +0000
@@ -121,8 +121,8 @@
if (minsize < 8)
minsize = 8;
name = SAFE_ALLOCA (minsize + SCHARS (file) + 8);
- lispstpcpy (name, docdir);
- strcat (name, SSDATA (file));
+ char *z = lispstpcpy (name, docdir);
+ strcpy (z, SSDATA (file));
}
else
{
=== modified file 'src/ftfont.c'
--- a/src/ftfont.c 2014-09-07 07:04:01 +0000
+++ b/src/ftfont.c 2014-09-24 04:12:37 +0000
@@ -804,7 +804,7 @@
*otspec = ftfont_get_open_type_spec (val);
if (! *otspec)
return NULL;
- strcat (otlayout, "otlayout:");
+ strcpy (otlayout, "otlayout:");
OTF_TAG_STR ((*otspec)->script_tag, otlayout + 9);
script = (*otspec)->script;
}
=== modified file 'src/gtkutil.c'
--- a/src/gtkutil.c 2014-09-04 16:14:05 +0000
+++ b/src/gtkutil.c 2014-09-24 04:12:37 +0000
@@ -508,16 +508,16 @@
&& err->code == G_CONVERT_ERROR_ILLEGAL_SEQUENCE)
{
memcpy (up, p, bytes_written);
- sprintf (up + bytes_written, "\\%03o", p[bytes_written]);
- up += bytes_written+4;
- p += bytes_written+1;
+ up += bytes_written;
+ up += sprintf (up, "\\%03o", p[bytes_written]);
+ p += bytes_written + 1;
g_error_free (err);
err = NULL;
}
if (cp)
{
- strcat (utf8_str, cp);
+ strcpy (up, cp);
g_free (cp);
}
if (err)
=== modified file 'src/xfns.c'
--- a/src/xfns.c 2014-09-23 17:03:48 +0000
+++ b/src/xfns.c 2014-09-24 04:12:37 +0000
@@ -1786,7 +1786,7 @@
len = p - base_fontname + strlen (allcs) + 1;
font_allcs = alloca (len);
memcpy (font_allcs, base_fontname, p - base_fontname);
- strcat (font_allcs, allcs);
+ strcpy (font_allcs + (p - base_fontname), allcs);
/* Build the font spec that matches all families and
add-styles. */
@@ -1794,7 +1794,7 @@
font_allfamilies = alloca (len);
strcpy (font_allfamilies, allfamilies);
memcpy (font_allfamilies + strlen (allfamilies), p1, p - p1);
- strcat (font_allfamilies, allcs);
+ strcpy (font_allfamilies + strlen (allfamilies) + (p - p1), allcs);
/* Build the font spec that matches all. */
len = p - p2 + strlen (allcs) + strlen (all) + strlen (allfamilies) +
1;
@@ -1802,7 +1802,8 @@
strcpy (font_all, allfamilies);
strcat (font_all, all);
memcpy (font_all + strlen (all) + strlen (allfamilies), p2, p - p2);
- strcat (font_all, allcs);
+ strcpy (font_all + strlen (all) + strlen (allfamilies) + (p - p2),
+ allcs);
/* Build the actual font set name. */
len = strlen (base_fontname) + strlen (font_allcs)
=== modified file 'src/xsmfns.c'
--- a/src/xsmfns.c 2014-09-23 17:03:48 +0000
+++ b/src/xsmfns.c 2014-09-24 04:12:37 +0000
@@ -415,11 +415,11 @@
/* This malloc will not be freed, but it is only done once, and hopefully
not very large */
emacs_program = xmalloc (name_len + 1);
- emacs_program[0] = '\0';
+ char *z = emacs_program;
if (! EQ (Vinvocation_directory, Qnil))
- lispstpcpy (emacs_program, Vinvocation_directory);
- strcat (emacs_program, SSDATA (Vinvocation_name));
+ z = lispstpcpy (z, Vinvocation_directory);
+ lispstpcpy (z, Vinvocation_name);
/* The SM protocol says all callbacks are mandatory, so set up all
here and in the mask passed to SmcOpenConnection. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r117931: Fix some slow uses and misuses of strcat.,
Paul Eggert <=