diff --git a/firmware/targets/f7/api_symbols.csv b/firmware/targets/f7/api_symbols.csv index 52e8dca69..388ebf462 100644 --- a/firmware/targets/f7/api_symbols.csv +++ b/firmware/targets/f7/api_symbols.csv @@ -2176,6 +2176,7 @@ Function,-,music_worker_stop,void,MusicWorker* Function,+,name_generator_make_auto,void,"char*, size_t, const char*" Function,+,name_generator_make_detailed,void,"char*, size_t, const char*" Function,+,name_generator_make_random,void,"char*, size_t" +Function,+,name_generator_make_random_prefixed,void,"char*, size_t, const char*" Function,-,nan,double,const char* Function,-,nanf,float,const char* Function,-,nanl,long double,const char* diff --git a/lib/toolbox/name_generator.c b/lib/toolbox/name_generator.c index 5b822630b..c8080adde 100644 --- a/lib/toolbox/name_generator.c +++ b/lib/toolbox/name_generator.c @@ -48,11 +48,11 @@ void name_generator_make_auto(char* name, size_t max_name_size, const char* pref if(!furi_hal_rtc_is_flag_set(FuriHalRtcFlagRandomFilename)) { name_generator_make_detailed(name, max_name_size, prefix); } else { - name_generator_make_random(name, max_name_size); + name_generator_make_random_prefixed(name, max_name_size, prefix); } } -void name_generator_make_random(char* name, size_t max_name_size) { +void name_generator_make_random_prefixed(char* name, size_t max_name_size, const char* prefix) { furi_assert(name); furi_assert(max_name_size); @@ -62,12 +62,18 @@ void name_generator_make_random(char* name, size_t max_name_size) { snprintf( name, max_name_size, - "%s_%s", + "%s%s%s-%s", + prefix ? prefix : "", + prefix ? "_" : "", name_generator_left[name_generator_left_i], name_generator_right[name_generator_right_i]); // Set first symbol to upper case - name[0] = name[0] - 0x20; + if(islower((int)name[0])) name[0] = name[0] - 0x20; +} + +void name_generator_make_random(char* name, size_t max_name_size) { + name_generator_make_random_prefixed(name, max_name_size, NULL); } void name_generator_make_detailed(char* name, size_t max_name_size, const char* prefix) { @@ -81,11 +87,14 @@ void name_generator_make_detailed(char* name, size_t max_name_size, const char* snprintf( name, max_name_size, - "%s-%.4d_%.2d_%.2d-%.2d_%.2d", + "%s_%.4d-%.2d-%.2d_%.2d,%.2d", prefix, dateTime.year, dateTime.month, dateTime.day, dateTime.hour, dateTime.minute); + + // Set first symbol to upper case + if(islower((int)name[0])) name[0] = name[0] - 0x20; } diff --git a/lib/toolbox/name_generator.h b/lib/toolbox/name_generator.h index bc17d54cd..01b2ad1a8 100644 --- a/lib/toolbox/name_generator.h +++ b/lib/toolbox/name_generator.h @@ -19,8 +19,10 @@ void name_generator_make_auto(char* name, size_t max_name_size, const char* pref * * @param name buffer to write random name * @param max_name_size length of given buffer + * @param[in] prefix The prefix of the name */ void name_generator_make_random(char* name, size_t max_name_size); +void name_generator_make_random_prefixed(char* name, size_t max_name_size, const char* prefix); /** Generates detailed name * @@ -32,4 +34,4 @@ void name_generator_make_detailed(char* name, size_t max_name_size, const char* #ifdef __cplusplus } -#endif \ No newline at end of file +#endif