Skip to content

Commit 12208b2

Browse files
committed
Global: improve support of --help *-format
Also fix some bugs found when refactoring
1 parent 23d2cc3 commit 12208b2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+746
-557
lines changed

src/common/option.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ typedef struct FFModuleBaseInfo
1818
void (*parseJsonObject)(void* options, struct yyjson_val *module);
1919
void (*printModule)(void* options);
2020
void (*generateJson)(void* options, struct yyjson_mut_doc* doc, struct yyjson_mut_val* module);
21+
void (*printHelpFormat)(void);
2122
} FFModuleBaseInfo;
2223

2324
static inline void ffOptionInitModuleBaseInfo(
@@ -26,14 +27,16 @@ static inline void ffOptionInitModuleBaseInfo(
2627
void* parseCommandOptions, // bool (*const parseCommandOptions)(void* options, const char* key, const char* value)
2728
void* parseJsonObject, // void (*const parseJsonObject)(void* options, yyjson_val *module)
2829
void* printModule, // void (*const printModule)(void* options)
29-
void* generateJson // void (*const generateJson)(void* options, yyjson_mut_doc* doc, yyjson_mut_val* obj)
30+
void* generateJson, // void (*const generateJson)(void* options, yyjson_mut_doc* doc, yyjson_mut_val* obj)
31+
void (*printHelpFormat)(void)
3032
)
3133
{
3234
baseInfo->name = name;
3335
baseInfo->parseCommandOptions = (__typeof__(baseInfo->parseCommandOptions)) parseCommandOptions;
3436
baseInfo->parseJsonObject = (__typeof__(baseInfo->parseJsonObject)) parseJsonObject;
3537
baseInfo->printModule = (__typeof__(baseInfo->printModule)) printModule;
3638
baseInfo->generateJson = (__typeof__(baseInfo->generateJson)) generateJson;
39+
baseInfo->printHelpFormat = printHelpFormat;
3740
}
3841

3942
typedef struct FFModuleArgs

src/common/printing.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,18 @@ void ffPrintCharTimes(char c, uint32_t times)
132132
if(remaining > 0)
133133
fwrite(str, 1, remaining, stdout);
134134
}
135+
136+
void ffPrintModuleFormatHelp(const char* name, const char* def, uint32_t numArgs, const char* args[])
137+
{
138+
FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreateS(name);
139+
ffStrbufLowerCase(&buffer);
140+
printf("--%s-format:\n", buffer.chars);
141+
printf("Sets the format string for %s output.\n", name);
142+
puts("To see how a format string is constructed, take a look at \"fastfetch --help format\".");
143+
puts("The following values are passed:");
144+
145+
for(unsigned i = 0; i < numArgs; i++)
146+
printf(" {%u}: %s\n", i, args[i]);
147+
148+
printf("The default is something similar to \"%s\".\n", def);
149+
}

src/common/printing.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,6 @@ FF_C_PRINTF(4, 5) void ffPrintError(const char* moduleName, uint8_t moduleIndex,
2525
void ffPrintColor(const FFstrbuf* colorValue);
2626
void ffPrintCharTimes(char c, uint32_t times);
2727

28+
void ffPrintModuleFormatHelp(const char* name, const char* def, uint32_t numArgs, const char* args[]);
29+
2830
#endif

0 commit comments

Comments
 (0)