Skip to content

Commit bd0ea1c

Browse files
committed
* Autark build.sh
1 parent 98fa8a0 commit bd0ea1c

1 file changed

Lines changed: 39 additions & 21 deletions

File tree

build.sh

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# https://github.com/Softmotions/autark
77

88
META_VERSION=0.9.11
9-
META_REVISION=fa37b24
9+
META_REVISION=5352b5e
1010
cd "$(cd "$(dirname "$0")"; pwd -P)"
1111

1212
prev_arg=""
@@ -68,7 +68,7 @@ cat <<'a292effa503b' > ${AUTARK_HOME}/autark.c
6868
#ifndef CONFIG_H
6969
#define CONFIG_H
7070
#define META_VERSION "0.9.11"
71-
#define META_REVISION "fa37b24"
71+
#define META_REVISION "5352b5e"
7272
#define MACRO_MAX_RECURSIVE_CALLS 128
7373
#endif
7474
#define _AMALGAMATE_
@@ -2552,18 +2552,36 @@ const char* utils_json_escape_str(const char *val, ssize_t len, struct xstr *xst
25522552
if (len < 0) {
25532553
len = strlen(val);
25542554
}
2555-
static const char *specials = "btnvfr";
25562555
xstr_cat2(xstr, "\"", 1);
25572556
for (size_t i = 0; i < len; ++i) {
25582557
uint8_t ch = (uint8_t) val[i];
2559-
if (ch == '"' || ch == '\\') {
2560-
xstr_cat2(xstr, "\\", 1);
2561-
xstr_cat2(xstr, &ch, 1);
2562-
} else if (ch >= '\b' && ch <= '\r') {
2563-
xstr_cat2(xstr, "\\", 1);
2564-
xstr_cat2(xstr, &specials[ch - '\b'], 1);
2565-
} else {
2566-
xstr_cat2(xstr, &ch, 1);
2558+
switch (ch) {
2559+
case '"':
2560+
case '\\':
2561+
xstr_cat2(xstr, "\\", 1);
2562+
xstr_cat2(xstr, &ch, 1);
2563+
break;
2564+
case '\b':
2565+
xstr_cat(xstr, "\\b");
2566+
break;
2567+
case '\t':
2568+
xstr_cat(xstr, "\\t");
2569+
break;
2570+
case '\n':
2571+
xstr_cat(xstr, "\\n");
2572+
break;
2573+
case '\f':
2574+
xstr_cat(xstr, "\\f");
2575+
break;
2576+
case '\r':
2577+
xstr_cat(xstr, "\\r");
2578+
break;
2579+
default:
2580+
if (ch < 0x20) {
2581+
xstr_printf(xstr, "\\u%04x", ch);
2582+
} else {
2583+
xstr_cat2(xstr, &ch, 1);
2584+
}
25672585
}
25682586
}
25692587
xstr_cat2(xstr, "\"", 1);
@@ -3019,6 +3037,9 @@ const char* path_is_prefix_for(const char *prefix, const char *path, const char
30193037
return 0;
30203038
}
30213039
const char *p = path + len;
3040+
if (*p == '\0') {
3041+
return p;
3042+
}
30223043
if (*p == '/') {
30233044
while (*p == '/') ++p;
30243045
return p;
@@ -3598,11 +3619,7 @@ bool deps_cur_is_outdated(struct node *n, struct deps *d) {
35983619
return strcmp(val, d->resource) != 0;
35993620
}
36003621
case DEPS_TYPE_FILE_NOT_EXISTS: {
3601-
struct akpath_stat st;
3602-
if (path_stat(d->resource, &st) || st.ftype == AKPATH_NOT_EXISTS) {
3603-
return true;
3604-
}
3605-
break;
3622+
return !access(d->resource, F_OK);
36063623
}
36073624
case DEPS_TYPE_OUTDATED:
36083625
return true;
@@ -3780,7 +3797,10 @@ int fetchreg_register(struct fetchreg *r, const struct fetcherg_entry *entry) {
37803797
return AK_ERROR_INVALID_ARGS;
37813798
}
37823799
long int old_pos = ftell(r->f);
3783-
if (fseek(r->f, SEEK_END, 0) == -1) {
3800+
if (old_pos < 0) {
3801+
return errno;
3802+
}
3803+
if (fseek(r->f, 0, SEEK_END) == -1) {
37843804
return errno;
37853805
}
37863806
if (entry->target) {
@@ -5322,12 +5342,10 @@ static void _cc_deps_MMD_add(struct node *n, struct deps *deps, const char *src,
53225342
break;
53235343
}
53245344
char *sp = p;
5325-
char *ep = sp;
53265345
while (*p != '\0' && !utils_char_is_space(*p)) {
5327-
ep = p;
53285346
++p;
53295347
}
5330-
if (ep > sp) {
5348+
if (p > sp) {
53315349
if (*p != '\0') {
53325350
*p = '\0';
53335351
++p;
@@ -9467,7 +9485,7 @@ void node_resolve(struct node_resolve *r) {
94679485
bool env_created = false;
94689486
if (r->on_resolve && (r->num_deps == 0 || r->resolve_outdated.num)) {
94699487
if (g_env.check.log && r->n) {
9470-
xstr_printf(g_env.check.log, "%s: resolved outdated outdated=%d\n", r->n->name, r->resolve_outdated.num);
9488+
xstr_printf(g_env.check.log, "%s: resolved outdated outdated=%u\n", r->n->name, r->resolve_outdated.num);
94719489
}
94729490
r->on_resolve(r);
94739491
if (access(deps_path_tmp, F_OK) == 0) {

0 commit comments

Comments
 (0)