diff options
| author | Paul Eggert | 2016-04-04 17:04:58 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-04-04 17:05:19 -0700 |
| commit | b4c7869e5e1bb0bb33379b25ff830e721761a7bf (patch) | |
| tree | 07b81f9711ea7188421c2ac2303b442778b6c980 /src/buffer.c | |
| parent | 3c623c26ae7d695746e05d8a2e16a67a6256b024 (diff) | |
| download | emacs-b4c7869e5e1bb0bb33379b25ff830e721761a7bf.tar.gz emacs-b4c7869e5e1bb0bb33379b25ff830e721761a7bf.zip | |
Prefer AUTO_STRING_WITH_LEN to make_formatted_string
* src/buffer.c (Fgenerate_new_buffer_name):
* src/filelock.c (get_boot_time):
* src/minibuf.c (get_minibuffer):
* src/process.c (make_process):
* src/xdisp.c (ensure_echo_area_buffers):
Prefer AUTO_STRING_WITH_LEN + sprintf to make_formatted_string
when either will do.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/src/buffer.c b/src/buffer.c index 62b0bc8c6f4..0e5e64f58a1 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -1051,44 +1051,36 @@ it is in the sequence to be tried) even if a buffer with that name exists. | |||
| 1051 | If NAME begins with a space (i.e., a buffer that is not normally | 1051 | If NAME begins with a space (i.e., a buffer that is not normally |
| 1052 | visible to users), then if buffer NAME already exists a random number | 1052 | visible to users), then if buffer NAME already exists a random number |
| 1053 | is first appended to NAME, to speed up finding a non-existent buffer. */) | 1053 | is first appended to NAME, to speed up finding a non-existent buffer. */) |
| 1054 | (register Lisp_Object name, Lisp_Object ignore) | 1054 | (Lisp_Object name, Lisp_Object ignore) |
| 1055 | { | 1055 | { |
| 1056 | register Lisp_Object gentemp, tem, tem2; | 1056 | Lisp_Object genbase; |
| 1057 | ptrdiff_t count; | ||
| 1058 | char number[INT_BUFSIZE_BOUND (ptrdiff_t) + sizeof "<>"]; | ||
| 1059 | 1057 | ||
| 1060 | CHECK_STRING (name); | 1058 | CHECK_STRING (name); |
| 1061 | 1059 | ||
| 1062 | tem = Fstring_equal (name, ignore); | 1060 | if (!NILP (Fstring_equal (name, ignore)) || NILP (Fget_buffer (name))) |
| 1063 | if (!NILP (tem)) | ||
| 1064 | return name; | ||
| 1065 | tem = Fget_buffer (name); | ||
| 1066 | if (NILP (tem)) | ||
| 1067 | return name; | 1061 | return name; |
| 1068 | 1062 | ||
| 1069 | if (!strncmp (SSDATA (name), " ", 1)) /* see bug#1229 */ | 1063 | if (SREF (name, 0) != ' ') /* See bug#1229. */ |
| 1064 | genbase = name; | ||
| 1065 | else | ||
| 1070 | { | 1066 | { |
| 1071 | /* Note fileio.c:make_temp_name does random differently. */ | 1067 | /* Note fileio.c:make_temp_name does random differently. */ |
| 1072 | tem2 = concat2 (name, make_formatted_string | 1068 | char number[sizeof "-999999"]; |
| 1073 | (number, "-%"pI"d", | 1069 | int i = XFASTINT (Frandom (make_number (999999))); |
| 1074 | XFASTINT (Frandom (make_number (999999))))); | 1070 | AUTO_STRING_WITH_LEN (lnumber, number, sprintf (number, "-%d", i)); |
| 1075 | tem = Fget_buffer (tem2); | 1071 | genbase = concat2 (name, lnumber); |
| 1076 | if (NILP (tem)) | 1072 | if (NILP (Fget_buffer (genbase))) |
| 1077 | return tem2; | 1073 | return genbase; |
| 1078 | } | 1074 | } |
| 1079 | else | ||
| 1080 | tem2 = name; | ||
| 1081 | 1075 | ||
| 1082 | count = 1; | 1076 | for (ptrdiff_t count = 1; ; count++) |
| 1083 | while (1) | ||
| 1084 | { | 1077 | { |
| 1085 | gentemp = concat2 (tem2, make_formatted_string | 1078 | char number[INT_BUFSIZE_BOUND (ptrdiff_t) + sizeof "<>"]; |
| 1086 | (number, "<%"pD"d>", ++count)); | 1079 | AUTO_STRING_WITH_LEN (lnumber, number, |
| 1087 | tem = Fstring_equal (gentemp, ignore); | 1080 | sprintf (number, "<%"pD"d>", count)); |
| 1088 | if (!NILP (tem)) | 1081 | Lisp_Object gentemp = concat2 (genbase, lnumber); |
| 1089 | return gentemp; | 1082 | if (!NILP (Fstring_equal (gentemp, ignore)) |
| 1090 | tem = Fget_buffer (gentemp); | 1083 | || NILP (Fget_buffer (gentemp))) |
| 1091 | if (NILP (tem)) | ||
| 1092 | return gentemp; | 1084 | return gentemp; |
| 1093 | } | 1085 | } |
| 1094 | } | 1086 | } |