diff --git a/src/xpdev/ini_file.c b/src/xpdev/ini_file.c index b3a82ed59be01cfa52833e4e8e5290e3c7241708..f1ea6e3347cad04e202bfcecf89fa109117bd34e 100644 --- a/src/xpdev/ini_file.c +++ b/src/xpdev/ini_file.c @@ -272,6 +272,22 @@ BOOL iniRemoveSection(str_list_t* list, const char* section) return(TRUE); } +BOOL iniRenameSection(str_list_t* list, const char* section, const char* newname) +{ + char str[INI_MAX_LINE_LEN]; + size_t i; + + if(section==ROOT_SECTION) + return(FALSE); + + i=find_section_index(*list,section); + if((*list)[i]==NULL) /* not found */ + return(FALSE); + + sprintf(str,"[%s]",newname); + return(strListReplace(*list, i, str)!=NULL); +} + size_t iniAddSection(str_list_t* list, const char* section ,ini_style_t* style) { diff --git a/src/xpdev/ini_file.h b/src/xpdev/ini_file.h index a12958590b3be94cf13dbf8884079f791557e2fc..bc2d999e854ac152e85e8a3e8292c02eb6ad5314 100644 --- a/src/xpdev/ini_file.h +++ b/src/xpdev/ini_file.h @@ -126,6 +126,7 @@ BOOL iniValueExists(str_list_t*, const char* section, const char* key); BOOL iniRemoveKey(str_list_t*, const char* section, const char* key); BOOL iniRemoveValue(str_list_t*, const char* section, const char* key); BOOL iniRemoveSection(str_list_t*, const char* section); +BOOL iniRenameSection(str_list_t*, const char* section, const char* newname); #if defined(__cplusplus) }