PRIVATE void check_version() { if (shutdown_config == NULL) shutdown_config = load_app_config(SHUTDOWN_CONF); GError* err = NULL; gchar* version = g_key_file_get_string(shutdown_config, "main", "version", &err); if (err != NULL) { g_warning("[%s] read version failed from config file: %s", __func__, err->message); g_error_free(err); g_key_file_set_string(shutdown_config, "main", "version", SHUTDOWN_VERSION); save_app_config(shutdown_config, SHUTDOWN_CONF); } if (version != NULL) g_free(version); }
void check_version() { GKeyFile* dock_config = load_app_config(DOCK_CONFIG); GError* err = NULL; gchar* version = g_key_file_get_string(dock_config, "main", "version", &err); if (err != NULL) { g_warning("[%s] read version failed from config file: %s", __func__, err->message); g_error_free(err); g_key_file_set_string(dock_config, "main", "version", DOCK_VERSION); save_app_config(dock_config, DOCK_CONFIG); } if (version != NULL && g_strcmp0(DOCK_VERSION, version) != 0) { g_key_file_set_string(dock_config, "main", "version", DOCK_VERSION); save_app_config(dock_config, DOCK_CONFIG); int noused G_GNUC_UNUSED; noused = system("sed -i 's/DockedItems/"DOCKED_ITEM_GROUP_NAME"/g' $HOME/.config/"APPS_INI); GKeyFile* f = load_app_config(APPS_INI); gsize len = 0; char** list = g_key_file_get_groups(f, &len); for (guint i = 1; i < len; ++i) { /* g_key_file_set_string(f, list[i], "Type", DOCKED_ITEM_APP_TYPE); */ if (g_strcmp0(list[i], "wps") == 0) { g_key_file_set_string(f, list[i], "Name", "Kingsoft Write"); g_key_file_set_string(f, list[i], "CmdLine", "/usr/bin/wps %%f"); g_key_file_set_string(f, list[i], "Icon", "wps-office-wpsmain"); g_key_file_set_string(f, list[i], "Path", "/usr/share/aplications/wps-office-wps.desktop"); g_key_file_set_string(f, list[i], "Terminal", "false"); } if (g_strcmp0(list[i], "wpp") == 0) { g_key_file_set_string(f, list[i], "Name", "Kingsoft Presentation"); g_key_file_set_string(f, list[i], "CmdLine", "/usr/bin/wpp %%f"); g_key_file_set_string(f, list[i], "Icon", "wps-office-wppmain"); g_key_file_set_string(f, list[i], "Path", "/usr/share/aplications/wps-office-wpp.desktop"); g_key_file_set_string(f, list[i], "Terminal", "false"); } if (g_strcmp0(list[i], "et") == 0) { g_key_file_set_string(f, list[i], "Name", "Kingsoft Spreadsheet"); g_key_file_set_string(f, list[i], "CmdLine", "/usr/bin/et %%f"); g_key_file_set_string(f, list[i], "Icon", "wps-office-etmain"); g_key_file_set_string(f, list[i], "Path", "/usr/share/aplications/wps-office-et.desktop"); g_key_file_set_string(f, list[i], "Terminal", "false"); } } g_strfreev(list); list = g_key_file_get_string_list(f, DOCKED_ITEM_GROUP_NAME, DOCKED_ITEM_KEY_NAME, &len, &err); if (err != NULL) { g_error_free(err); len = 0; list = NULL; } for (guint i = 0; i < len; ++i) { if (g_strcmp0("wps", list[i]) == 0) { g_free(list[i]); list[i] = g_strdup("wps-office-wps"); } if (g_strcmp0("wpp", list[i]) == 0) { g_free(list[i]); list[i] = g_strdup("wps-office-wpp"); } if (g_strcmp0("et", list[i]) == 0) { g_free(list[i]); list[i] = g_strdup("wps-office-et"); } } if (list != NULL) { g_key_file_set_string_list(f, DOCKED_ITEM_GROUP_NAME, DOCKED_ITEM_KEY_NAME, (const char* const*)list, len); g_strfreev(list); } save_app_config(f, APPS_INI); noused = system("sed -i 's/\\[wps\\]/\\[wps-office-wps\\]/g' $HOME/.config/"APPS_INI); noused = system("sed -i 's/\\[wpp\\]/\\[wps-office-wpp\\]/g' $HOME/.config/"APPS_INI); noused = system("sed -i 's/\\[et\\]/\\[wps-office-et\\]/g' $HOME/.config/"APPS_INI); g_key_file_unref(f); } g_free(version); g_key_file_unref(dock_config); }