| File ChangeLog changed (mode: 100644) (index fbeaacfea..852dae55e) |
| 68 |
68 |
Fixed truncating wide characters on drawing columns broken on introducing |
Fixed truncating wide characters on drawing columns broken on introducing |
| 69 |
69 |
column-specific highlighting in 0.14-beta. Thanks to Snake52996. |
column-specific highlighting in 0.14-beta. Thanks to Snake52996. |
| 70 |
70 |
|
|
|
71 |
|
Fixed :clone producing weird results on trying to increment numbers |
|
72 |
|
greater than `2**31 - 1`. Thanks to CaptainFantastic. |
|
73 |
|
|
| 71 |
74 |
0.14-beta to 0.14 (2025-02-08) |
0.14-beta to 0.14 (2025-02-08) |
| 72 |
75 |
|
|
| 73 |
76 |
Improved documentation on zh/zl menu keys a bit. |
Improved documentation on zh/zl menu keys a bit. |
| File src/fops_misc.c changed (mode: 100644) (index 181cd20b1..2862cc1d1) |
| ... |
... |
gen_clone_name(const char dir[], const char normal_name[]) |
| 919 |
919 |
static char result[NAME_MAX + 1]; |
static char result[NAME_MAX + 1]; |
| 920 |
920 |
|
|
| 921 |
921 |
char extension[NAME_MAX + 1]; |
char extension[NAME_MAX + 1]; |
| 922 |
|
int i; |
|
|
922 |
|
long long i; |
| 923 |
923 |
size_t len; |
size_t len; |
| 924 |
924 |
char *p; |
char *p; |
| 925 |
925 |
|
|
| |
| ... |
... |
gen_clone_name(const char dir[], const char normal_name[]) |
| 934 |
934 |
if(result[len - 1] == ')' && (p = strrchr(result, '(')) != NULL) |
if(result[len - 1] == ')' && (p = strrchr(result, '(')) != NULL) |
| 935 |
935 |
{ |
{ |
| 936 |
936 |
char *t; |
char *t; |
| 937 |
|
long l; |
|
| 938 |
|
if((l = strtol(p + 1, &t, 10)) > 0 && t[1] == '\0') |
|
|
937 |
|
long long l; |
|
938 |
|
if((l = strtoll(p + 1, &t, 10)) > 0 && t[1] == '\0' && l != LONG_LONG_MAX) |
| 939 |
939 |
{ |
{ |
| 940 |
940 |
len = p - result; |
len = p - result; |
| 941 |
941 |
i = l + 1; |
i = l + 1; |
| |
| ... |
... |
gen_clone_name(const char dir[], const char normal_name[]) |
| 944 |
944 |
|
|
| 945 |
945 |
do |
do |
| 946 |
946 |
{ |
{ |
| 947 |
|
snprintf(result + len, sizeof(result) - len, "(%d)%s%s", i++, |
|
|
947 |
|
snprintf(result + len, sizeof(result) - len, "(%lld)%s%s", i++, |
| 948 |
948 |
(extension[0] == '\0') ? "" : ".", extension); |
(extension[0] == '\0') ? "" : ".", extension); |
| 949 |
949 |
} |
} |
| 950 |
950 |
while(path_exists_at(dir, result, NODEREF)); |
while(path_exists_at(dir, result, NODEREF)); |
| File tests/fileops/gen_clone_name.c changed (mode: 100644) (index 7ea7cf1a4..b8c7bacfb) |
| ... |
... |
TEST(dot_files) |
| 49 |
49 |
assert_string_equal(".config(1).d(1)", gen_clone_name(".", ".config.d(1)")); |
assert_string_equal(".config(1).d(1)", gen_clone_name(".", ".config.d(1)")); |
| 50 |
50 |
} |
} |
| 51 |
51 |
|
|
|
52 |
|
TEST(large_numbers) |
|
53 |
|
{ |
|
54 |
|
/* 2**31-1 / 2**31 / 2**31+1 */ |
|
55 |
|
assert_string_equal("name(2147483648)", |
|
56 |
|
gen_clone_name(".", "name(2147483647)")); |
|
57 |
|
assert_string_equal("name(2147483649)", |
|
58 |
|
gen_clone_name(".", "name(2147483648)")); |
|
59 |
|
assert_string_equal("name(2147483650)", |
|
60 |
|
gen_clone_name(".", "name(2147483649)")); |
|
61 |
|
|
|
62 |
|
/* 2**32-1 / 2**32 / 2**32+1 */ |
|
63 |
|
assert_string_equal("name(4294967296)", |
|
64 |
|
gen_clone_name(".", "name(4294967295)")); |
|
65 |
|
assert_string_equal("name(4294967297)", |
|
66 |
|
gen_clone_name(".", "name(4294967296)")); |
|
67 |
|
assert_string_equal("name(4294967298)", |
|
68 |
|
gen_clone_name(".", "name(4294967297)")); |
|
69 |
|
|
|
70 |
|
/* 2**63-2 / 2**63-1 / 2**63 / 2**63+1 */ |
|
71 |
|
assert_string_equal("name(9223372036854775807)", |
|
72 |
|
gen_clone_name(".", "name(9223372036854775806)")); |
|
73 |
|
assert_string_equal("name(9223372036854775807)(1)", |
|
74 |
|
gen_clone_name(".", "name(9223372036854775807)")); |
|
75 |
|
assert_string_equal("name(9223372036854775808)(1)", |
|
76 |
|
gen_clone_name(".", "name(9223372036854775808)")); |
|
77 |
|
assert_string_equal("name(9223372036854775809)(1)", |
|
78 |
|
gen_clone_name(".", "name(9223372036854775809)")); |
|
79 |
|
} |
|
80 |
|
|
| 52 |
81 |
/* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */ |
/* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */ |
| 53 |
82 |
/* vim: set cinoptions+=t0 filetype=c : */ |
/* vim: set cinoptions+=t0 filetype=c : */ |