@@ -61,17 +61,7 @@ const char* ffOptionsParseDisplayJsonConfig(FFOptionsDisplay* options, yyjson_va
6161 else if (ffStrEqualsIgnCase (key , "brightColor" ))
6262 options -> brightColor = yyjson_get_bool (val );
6363 else if (ffStrEqualsIgnCase (key , "binaryPrefix" ))
64- {
65- int value ;
66- const char * error = ffJsonConfigParseEnum (val , & value , (FFKeyValuePair []) {
67- { "iec" , FF_BINARY_PREFIX_TYPE_IEC },
68- { "si" , FF_BINARY_PREFIX_TYPE_SI },
69- { "jedec" , FF_BINARY_PREFIX_TYPE_JEDEC },
70- {},
71- });
72- if (error ) return error ;
73- options -> binaryPrefixType = (FFBinaryPrefixType ) value ;
74- }
64+ return "`display.binaryPrefix` has been renamed to `display.size.binaryPrefix`. Sorry for another break change." ;
7565 else if (ffStrEqualsIgnCase (key , "size" ))
7666 {
7767 if (!yyjson_is_obj (val ))
@@ -97,6 +87,20 @@ const char* ffOptionsParseDisplayJsonConfig(FFOptionsDisplay* options, yyjson_va
9787 options -> sizeMaxPrefix = (uint8_t ) value ;
9888 }
9989
90+ yyjson_val * binaryPrefix = yyjson_obj_get (val , "binaryPrefix" );
91+ if (binaryPrefix )
92+ {
93+ int value ;
94+ const char * error = ffJsonConfigParseEnum (binaryPrefix , & value , (FFKeyValuePair []) {
95+ { "iec" , FF_BINARY_PREFIX_TYPE_IEC },
96+ { "si" , FF_BINARY_PREFIX_TYPE_SI },
97+ { "jedec" , FF_BINARY_PREFIX_TYPE_JEDEC },
98+ {},
99+ });
100+ if (error ) return error ;
101+ options -> binaryPrefixType = (FFBinaryPrefixType ) value ;
102+ }
103+
100104 yyjson_val * ndigits = yyjson_obj_get (val , "ndigits" );
101105 if (ndigits ) options -> sizeNdigits = (uint8_t ) yyjson_get_uint (ndigits );
102106 }
@@ -288,29 +292,40 @@ bool ffOptionsParseDisplayCommandLine(FFOptionsDisplay* options, const char* key
288292 options -> brightColor = ffOptionParseBoolean (value );
289293 else if (ffStrEqualsIgnCase (key , "--binary-prefix" ))
290294 {
291- options -> binaryPrefixType = (FFBinaryPrefixType ) ffOptionParseEnum (key , value , (FFKeyValuePair []) {
292- { "iec" , FF_BINARY_PREFIX_TYPE_IEC },
293- { "si" , FF_BINARY_PREFIX_TYPE_SI },
294- { "jedec" , FF_BINARY_PREFIX_TYPE_JEDEC },
295- {}
296- });
295+ fprintf (stderr , "--binary-prefix has been renamed to --size-binary-prefix\n" );
296+ exit (477 );
297297 }
298- else if (ffStrEqualsIgnCase (key , "--size-ndigits" ))
299- options -> sizeNdigits = (uint8_t ) ffOptionParseUInt32 (key , value );
300- else if (ffStrEqualsIgnCase (key , "--size-max-prefix" ))
298+ else if (ffStrStartsWithIgnCase (key , "--size-" ))
301299 {
302- options -> sizeMaxPrefix = (uint8_t ) ffOptionParseEnum (key , value , (FFKeyValuePair []) {
303- { "B" , 0 },
304- { "kB" , 1 },
305- { "MB" , 2 },
306- { "GB" , 3 },
307- { "TB" , 4 },
308- { "PB" , 5 },
309- { "EB" , 6 },
310- { "ZB" , 7 },
311- { "YB" , 8 },
312- {}
313- });
300+ const char * subkey = key + strlen ("--size-" );
301+ if (ffStrEqualsIgnCase (subkey , "binary-prefix" ))
302+ {
303+ options -> binaryPrefixType = (FFBinaryPrefixType ) ffOptionParseEnum (key , value , (FFKeyValuePair []) {
304+ { "iec" , FF_BINARY_PREFIX_TYPE_IEC },
305+ { "si" , FF_BINARY_PREFIX_TYPE_SI },
306+ { "jedec" , FF_BINARY_PREFIX_TYPE_JEDEC },
307+ {}
308+ });
309+ }
310+ else if (ffStrEqualsIgnCase (subkey , "ndigits" ))
311+ options -> sizeNdigits = (uint8_t ) ffOptionParseUInt32 (key , value );
312+ else if (ffStrEqualsIgnCase (subkey , "max-prefix" ))
313+ {
314+ options -> sizeMaxPrefix = (uint8_t ) ffOptionParseEnum (key , value , (FFKeyValuePair []) {
315+ { "B" , 0 },
316+ { "kB" , 1 },
317+ { "MB" , 2 },
318+ { "GB" , 3 },
319+ { "TB" , 4 },
320+ { "PB" , 5 },
321+ { "EB" , 6 },
322+ { "ZB" , 7 },
323+ { "YB" , 8 },
324+ {}
325+ });
326+ }
327+ else
328+ return false;
314329 }
315330 else if (ffStrStartsWithIgnCase (key , "--temp-" ))
316331 {
0 commit comments