Return end of string pointer in SettingDesc formatters

This commit is contained in:
Jonathan G Rennison
2024-01-10 23:19:36 +00:00
parent b42beecb0d
commit 2ec4b2a8ca
2 changed files with 27 additions and 22 deletions

View File

@@ -145,8 +145,9 @@ struct SettingDesc {
* @param buf The before of the buffer to format into.
* @param last The end of the buffer to format into.
* @param object The object the setting is in.
* @return The pointer to the terminating null-character in the destination buffer
*/
virtual void FormatValue(char *buf, const char *last, const void *object) const = 0;
virtual char *FormatValue(char *buf, const char *last, const void *object) const = 0;
/**
* Parse/read the value from the Ini item into the setting associated with this object.
@@ -223,8 +224,8 @@ struct IntSettingDesc : SettingDesc {
void MakeValueValidAndWrite(const void *object, int32_t value) const;
virtual size_t ParseValue(const char *str) const;
void FormatValue(char *buf, const char *last, const void *object) const override;
virtual void FormatIntValue(char *buf, const char *last, uint32_t value) const;
char *FormatValue(char *buf, const char *last, const void *object) const override;
virtual char *FormatIntValue(char *buf, const char *last, uint32_t value) const;
void ParseValue(const IniItem *item, void *object) const override;
bool IsSameValue(const IniItem *item, void *object) const override;
bool IsDefaultValue(void *object) const override;
@@ -246,7 +247,7 @@ struct BoolSettingDesc : IntSettingDesc {
bool IsBoolSetting() const override { return true; }
size_t ParseValue(const char *str) const override;
void FormatIntValue(char *buf, const char *last, uint32_t value) const override;
char *FormatIntValue(char *buf, const char *last, uint32_t value) const override;
};
/** One of many setting. */
@@ -269,7 +270,7 @@ struct OneOfManySettingDesc : IntSettingDesc {
char *FormatSingleValue(char *buf, const char *last, uint id) const;
size_t ParseValue(const char *str) const override;
void FormatIntValue(char *buf, const char *last, uint32_t value) const override;
char *FormatIntValue(char *buf, const char *last, uint32_t value) const override;
};
/** Many of many setting. */
@@ -282,7 +283,7 @@ struct ManyOfManySettingDesc : OneOfManySettingDesc {
str_val, cat, pre_check, post_callback, many, many_cnvt) {}
size_t ParseValue(const char *str) const override;
void FormatIntValue(char *buf, const char *last, uint32_t value) const override;
char *FormatIntValue(char *buf, const char *last, uint32_t value) const override;
};
/** String settings. */
@@ -315,7 +316,7 @@ struct StringSettingDesc : SettingDesc {
bool IsStringSetting() const override { return true; }
void ChangeValue(const void *object, std::string &newval, SaveToConfigFlags ini_save_flags) const;
void FormatValue(char *buf, const char *last, const void *object) const override;
char *FormatValue(char *buf, const char *last, const void *object) const override;
void ParseValue(const IniItem *item, void *object) const override;
bool IsSameValue(const IniItem *item, void *object) const override;
bool IsDefaultValue(void *object) const override;
@@ -333,7 +334,7 @@ struct ListSettingDesc : SettingDesc {
const char *def; ///< default value given when none is present
void FormatValue(char *buf, const char *last, const void *object) const override;
char *FormatValue(char *buf, const char *last, const void *object) const override;
void ParseValue(const IniItem *item, void *object) const override;
bool IsSameValue(const IniItem *item, void *object) const override;
bool IsDefaultValue(void *object) const override;
@@ -346,7 +347,7 @@ struct NullSettingDesc : SettingDesc {
NullSettingDesc(const SaveLoad &save, const char *name, const char *patx_name) :
SettingDesc(save, name, SF_NOT_IN_CONFIG, nullptr, false, patx_name) {}
void FormatValue(char *buf, const char *last, const void *object) const override { NOT_REACHED(); }
char *FormatValue(char *buf, const char *last, const void *object) const override { NOT_REACHED(); }
void ParseValue(const IniItem *item, void *object) const override { NOT_REACHED(); }
bool IsSameValue(const IniItem *item, void *object) const override { NOT_REACHED(); }
bool IsDefaultValue(void *object) const override { NOT_REACHED(); }