basic: use the return value of endswith
It returns the position where the suffix begins, which can be used for strndup to extract the prefix without calling strlen.
This commit is contained in:
parent
1e23792147
commit
078efddd37
|
@ -650,6 +650,7 @@ fail:
|
|||
int calendar_spec_from_string(const char *p, CalendarSpec **spec) {
|
||||
CalendarSpec *c;
|
||||
int r;
|
||||
const char *utc;
|
||||
|
||||
assert(p);
|
||||
assert(spec);
|
||||
|
@ -661,9 +662,11 @@ int calendar_spec_from_string(const char *p, CalendarSpec **spec) {
|
|||
if (!c)
|
||||
return -ENOMEM;
|
||||
|
||||
c->utc = endswith_no_case(p, "UTC");
|
||||
if (c->utc)
|
||||
p = strndupa(p, strlen(p) - strlen(" UTC"));
|
||||
utc = endswith_no_case(p, " UTC");
|
||||
if (utc) {
|
||||
c->utc = true;
|
||||
p = strndupa(p, utc - p);
|
||||
}
|
||||
|
||||
if (strcaseeq(p, "minutely")) {
|
||||
r = const_chain(0, &c->second);
|
||||
|
|
|
@ -479,7 +479,7 @@ int parse_timestamp(const char *t, usec_t *usec) {
|
|||
};
|
||||
|
||||
const char *k;
|
||||
bool utc;
|
||||
const char *utc;
|
||||
struct tm tm, copy;
|
||||
time_t x;
|
||||
usec_t x_usec, plus = 0, minus = 0, ret;
|
||||
|
@ -529,8 +529,8 @@ int parse_timestamp(const char *t, usec_t *usec) {
|
|||
|
||||
goto finish;
|
||||
|
||||
} else if (endswith(t, " ago")) {
|
||||
t = strndupa(t, strlen(t) - strlen(" ago"));
|
||||
} else if ((k = endswith(t, " ago"))) {
|
||||
t = strndupa(t, k - t);
|
||||
|
||||
r = parse_sec(t, &minus);
|
||||
if (r < 0)
|
||||
|
@ -538,8 +538,8 @@ int parse_timestamp(const char *t, usec_t *usec) {
|
|||
|
||||
goto finish;
|
||||
|
||||
} else if (endswith(t, " left")) {
|
||||
t = strndupa(t, strlen(t) - strlen(" left"));
|
||||
} else if ((k = endswith(t, " left"))) {
|
||||
t = strndupa(t, k - t);
|
||||
|
||||
r = parse_sec(t, &plus);
|
||||
if (r < 0)
|
||||
|
@ -550,7 +550,7 @@ int parse_timestamp(const char *t, usec_t *usec) {
|
|||
|
||||
utc = endswith_no_case(t, " UTC");
|
||||
if (utc)
|
||||
t = strndupa(t, strlen(t) - strlen(" UTC"));
|
||||
t = strndupa(t, utc - t);
|
||||
|
||||
x = ret / USEC_PER_SEC;
|
||||
x_usec = 0;
|
||||
|
|
Loading…
Reference in a new issue