mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-04 03:13:24 +00:00
Prefer stpcpy to strcat
* admin/merge-gnulib (GNULIB_MODULES): Add stpcpy. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * lib/stpcpy.c, m4/stpcpy.m4: New files, from gnulib. * lib-src/ebrowse.c (sym_scope_1, operator_name, open_file): * lib-src/emacsclient.c (get_server_config, set_local_socket) (start_daemon_and_retry_set_socket): * lib-src/etags.c (main, C_entries, relative_filename): * lib-src/pop.c (sendline): * lib-src/update-game-score.c (main): * lwlib/xlwmenu.c (resource_widget_value): * src/callproc.c (child_setup): * src/dbusbind.c (xd_signature_cat): * src/doc.c (get_doc_string, Fsnarf_documentation): * src/editfns.c (Fuser_full_name): * src/frame.c (xrdb_get_resource): * src/gtkutil.c (xg_get_file_with_chooser): * src/tparam.c (tparam1): * src/xfns.c (xic_create_fontsetname): * src/xrdb.c (gethomedir, get_user_db, get_environ_db): * src/xsmfns.c (smc_save_yourself_CB): Rewrite to avoid the need for strcat, typically by using stpcpy and/or lispstpcpy. strcat tends to be part of O(N**2) algorithms. * src/doc.c (sibling_etc): * src/xrdb.c (xdefaults): Now a top-level static constant.
This commit is contained in:
parent
8dba53d239
commit
1e6879dbdb
22 changed files with 252 additions and 153 deletions
|
@ -905,9 +905,9 @@ get_server_config (const char *config_file, struct sockaddr_in *server,
|
|||
{
|
||||
char *path = xmalloc (strlen (home) + strlen (config_file)
|
||||
+ EXTRA_SPACE);
|
||||
strcpy (path, home);
|
||||
strcat (path, "/.emacs.d/server/");
|
||||
strcat (path, config_file);
|
||||
char *z = stpcpy (path, home);
|
||||
z = stpcpy (z, "/.emacs.d/server/");
|
||||
strcpy (z, config_file);
|
||||
config = fopen (path, "rb");
|
||||
free (path);
|
||||
}
|
||||
|
@ -916,9 +916,9 @@ get_server_config (const char *config_file, struct sockaddr_in *server,
|
|||
{
|
||||
char *path = xmalloc (strlen (home) + strlen (config_file)
|
||||
+ EXTRA_SPACE);
|
||||
strcpy (path, home);
|
||||
strcat (path, "/.emacs.d/server/");
|
||||
strcat (path, config_file);
|
||||
char *z = stpcpy (path, home);
|
||||
z = stpcpy (z, "/.emacs.d/server/");
|
||||
strcpy (z, config_file);
|
||||
config = fopen (path, "rb");
|
||||
free (path);
|
||||
}
|
||||
|
@ -1193,7 +1193,6 @@ set_local_socket (const char *local_socket_name)
|
|||
{
|
||||
/* socket_name is a file name component. */
|
||||
long uid = geteuid ();
|
||||
ptrdiff_t tmpdirlen;
|
||||
use_tmpdir = 1;
|
||||
tmpdir = egetenv ("TMPDIR");
|
||||
if (!tmpdir)
|
||||
|
@ -1212,12 +1211,11 @@ set_local_socket (const char *local_socket_name)
|
|||
#endif
|
||||
tmpdir = "/tmp";
|
||||
}
|
||||
tmpdirlen = strlen (tmpdir);
|
||||
socket_name_storage =
|
||||
xmalloc (tmpdirlen + strlen (server_name) + EXTRA_SPACE);
|
||||
strcpy (socket_name_storage, tmpdir);
|
||||
sprintf (socket_name_storage + tmpdirlen, "/emacs%ld/", uid);
|
||||
strcat (socket_name_storage + tmpdirlen, server_name);
|
||||
xmalloc (strlen (tmpdir) + strlen (server_name) + EXTRA_SPACE);
|
||||
char *z = stpcpy (socket_name_storage, tmpdir);
|
||||
z += sprintf (z, "/emacs%ld/", uid);
|
||||
strcpy (z, server_name);
|
||||
local_socket_name = socket_name_storage;
|
||||
}
|
||||
|
||||
|
@ -1253,12 +1251,12 @@ set_local_socket (const char *local_socket_name)
|
|||
{
|
||||
/* We're running under su, apparently. */
|
||||
long uid = pw->pw_uid;
|
||||
ptrdiff_t tmpdirlen = strlen (tmpdir);
|
||||
char *user_socket_name
|
||||
= xmalloc (tmpdirlen + strlen (server_name) + EXTRA_SPACE);
|
||||
strcpy (user_socket_name, tmpdir);
|
||||
sprintf (user_socket_name + tmpdirlen, "/emacs%ld/", uid);
|
||||
strcat (user_socket_name + tmpdirlen, server_name);
|
||||
= xmalloc (strlen (tmpdir) + strlen (server_name)
|
||||
+ EXTRA_SPACE);
|
||||
char *z = stpcpy (user_socket_name, tmpdir);
|
||||
z += sprintf (z, "/emacs%ld/", uid);
|
||||
strcpy (z, server_name);
|
||||
|
||||
if (strlen (user_socket_name) < sizeof (server.sun_path))
|
||||
strcpy (server.sun_path, user_socket_name);
|
||||
|
@ -1507,8 +1505,7 @@ start_daemon_and_retry_set_socket (void)
|
|||
const char *deq = "--daemon=";
|
||||
char *daemon_arg = xmalloc (strlen (deq)
|
||||
+ strlen (socket_name) + 1);
|
||||
strcpy (daemon_arg, deq);
|
||||
strcat (daemon_arg, socket_name);
|
||||
strcpy (stpcpy (daemon_arg, deq), socket_name);
|
||||
d_argv[1] = daemon_arg;
|
||||
}
|
||||
execvp ("emacs", d_argv);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue