state: indent package lists
parent
974a00bc5f
commit
ced1fa83d6
19
src/apk.c
19
src/apk.c
|
@ -96,12 +96,7 @@ static int version(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct apk_indent {
|
||||
int x;
|
||||
int indent;
|
||||
};
|
||||
|
||||
static int print_indented(struct apk_indent *i, apk_blob_t blob)
|
||||
int apk_print_indented(struct apk_indent *i, apk_blob_t blob)
|
||||
{
|
||||
static const int wrap_length = 80;
|
||||
|
||||
|
@ -113,10 +108,10 @@ static int print_indented(struct apk_indent *i, apk_blob_t blob)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void print_indented_words(struct apk_indent *i, const char *text)
|
||||
void apk_print_indented_words(struct apk_indent *i, const char *text)
|
||||
{
|
||||
apk_blob_for_each_segment(APK_BLOB_STR(text), " ",
|
||||
(apk_blob_cb) print_indented, i);
|
||||
(apk_blob_cb) apk_print_indented, i);
|
||||
}
|
||||
|
||||
static int format_option(char *buf, size_t len, struct apk_option *o,
|
||||
|
@ -150,10 +145,10 @@ static void print_usage(const char *cmd, const char *args, int num_opts,
|
|||
word[j++] = '[';
|
||||
j += format_option(&word[j], sizeof(word) - j, &opts[i], "|");
|
||||
word[j++] = ']';
|
||||
print_indented(&indent, APK_BLOB_PTR_LEN(word, j));
|
||||
apk_print_indented(&indent, APK_BLOB_PTR_LEN(word, j));
|
||||
}
|
||||
if (args != NULL)
|
||||
print_indented(&indent, APK_BLOB_STR(args));
|
||||
apk_print_indented(&indent, APK_BLOB_STR(args));
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
|
@ -166,7 +161,7 @@ static void print_options(int num_opts, struct apk_option *opts)
|
|||
for (i = 0; i < num_opts; i++) {
|
||||
format_option(word, sizeof(word), &opts[i], ", ");
|
||||
indent.x = printf(" %-*s", indent.indent - 3, word);
|
||||
print_indented_words(&indent, opts[i].help);
|
||||
apk_print_indented_words(&indent, opts[i].help);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
@ -189,7 +184,7 @@ static int usage(struct apk_applet *applet)
|
|||
print_usage(applet->name, applet->arguments,
|
||||
applet->num_options, applet->options);
|
||||
printf("\ndescription:\n%*s", indent.indent - 1, "");
|
||||
print_indented_words(&indent, applet->help);
|
||||
apk_print_indented_words(&indent, applet->help);
|
||||
}
|
||||
printf("\n\ngeneric options:\n");
|
||||
print_options(ARRAY_SIZE(generic_options), generic_options);
|
||||
|
|
|
@ -101,4 +101,12 @@ void apk_blob_pull_csum(apk_blob_t *b, struct apk_checksum *csum);
|
|||
void apk_blob_pull_base64(apk_blob_t *b, apk_blob_t to);
|
||||
void apk_blob_pull_hexdump(apk_blob_t *b, apk_blob_t to);
|
||||
|
||||
struct apk_indent {
|
||||
int x;
|
||||
int indent;
|
||||
};
|
||||
|
||||
void apk_print_indented_words(struct apk_indent *i, const char *text);
|
||||
int apk_print_indented(struct apk_indent *i, apk_blob_t blob);
|
||||
|
||||
#endif
|
||||
|
|
17
src/state.c
17
src/state.c
|
@ -613,24 +613,27 @@ static int dump_packages(struct apk_state *state,
|
|||
{
|
||||
struct apk_change *change;
|
||||
struct apk_name *name;
|
||||
int match = 0;
|
||||
struct apk_indent indent = { 0, 2 };
|
||||
char tmp[256];
|
||||
int match = 0, i;
|
||||
|
||||
list_for_each_entry(change, &state->change_list_head, change_list) {
|
||||
if (!cmp(change))
|
||||
continue;
|
||||
if (match == 0)
|
||||
fprintf(stderr, "%s:\n ", msg);
|
||||
printf("%s:\n ", msg);
|
||||
if (change->newpkg != NULL)
|
||||
name = change->newpkg->name;
|
||||
else
|
||||
name = change->oldpkg->name;
|
||||
|
||||
fprintf(stderr, " %s%s", name->name,
|
||||
(name->flags & APK_NAME_TOPLEVEL) ? "*" : "");
|
||||
i = snprintf(tmp, sizeof(tmp), "%s%s", name->name,
|
||||
(name->flags & APK_NAME_TOPLEVEL) ? "*" : "");
|
||||
apk_print_indented(&indent, APK_BLOB_PTR_LEN(tmp, i));
|
||||
match++;
|
||||
}
|
||||
if (match)
|
||||
fprintf(stderr, "\n");
|
||||
printf("\n");
|
||||
return match;
|
||||
}
|
||||
|
||||
|
@ -754,8 +757,8 @@ int apk_state_commit(struct apk_state *state,
|
|||
"additional disk space will be used");
|
||||
}
|
||||
if (apk_flags & APK_INTERACTIVE) {
|
||||
fprintf(stderr, "Do you want to continue [Y/n]? ");
|
||||
fflush(stderr);
|
||||
printf("Do you want to continue [Y/n]? ");
|
||||
fflush(stdout);
|
||||
r = fgetc(stdin);
|
||||
if (r != 'y' && r != 'Y')
|
||||
return -1;
|
||||
|
|
Loading…
Reference in New Issue