shell_util_normalize_and_casefold: New utility function

Merge the duplicated copies into shell-util.
This commit is contained in:
Colin Walters 2011-08-10 12:58:40 -04:00
parent 10dcc100e9
commit c5de239e25
4 changed files with 23 additions and 32 deletions

View File

@ -15,6 +15,7 @@
#include "shell-app-private.h"
#include "shell-window-tracker-private.h"
#include "shell-global.h"
#include "shell-util.h"
#include "st.h"
/* Vendor prefixes are something that can be preprended to a .desktop
@ -619,20 +620,6 @@ sort_and_concat_results (ShellAppSystem *system,
return g_slist_concat (multiple_prefix_matches, g_slist_concat (prefix_matches, g_slist_concat (multiple_substring_matches, substring_matches)));
}
static char *
normalize_and_casefold (const char *str)
{
char *normalized, *result;
if (str == NULL)
return NULL;
normalized = g_utf8_normalize (str, -1, G_NORMALIZE_ALL);
result = g_utf8_casefold (normalized, -1);
g_free (normalized);
return result;
}
/**
* normalize_terms:
* @terms: (element-type utf8): Input search terms
@ -647,7 +634,7 @@ normalize_terms (GSList *terms)
for (iter = terms; iter; iter = iter->next)
{
const char *term = iter->data;
normalized_terms = g_slist_prepend (normalized_terms, normalize_and_casefold (term));
normalized_terms = g_slist_prepend (normalized_terms, shell_util_normalize_and_casefold (term));
}
return normalized_terms;
}

View File

@ -11,6 +11,7 @@
#include "shell-app-private.h"
#include "shell-enum-types.h"
#include "shell-global.h"
#include "shell-util.h"
#include "shell-window-tracker-private.h"
#include "st.h"
@ -1125,20 +1126,6 @@ unref_running_state (ShellAppRunningState *state)
g_slice_free (ShellAppRunningState, state);
}
static char *
normalize_and_casefold (const char *str)
{
char *normalized, *result;
if (str == NULL)
return NULL;
normalized = g_utf8_normalize (str, -1, G_NORMALIZE_ALL);
result = g_utf8_casefold (normalized, -1);
g_free (normalized);
return result;
}
static char *
trim_exec_line (const char *str)
{
@ -1166,13 +1153,13 @@ shell_app_init_search_data (ShellApp *app)
appinfo = gmenu_tree_entry_get_app_info (app->entry);
name = g_app_info_get_name (G_APP_INFO (appinfo));
app->casefolded_name = normalize_and_casefold (name);
app->casefolded_name = shell_util_normalize_and_casefold (name);
comment = g_app_info_get_description (G_APP_INFO (appinfo));
app->casefolded_description = normalize_and_casefold (comment);
app->casefolded_description = shell_util_normalize_and_casefold (comment);
exec = g_app_info_get_executable (G_APP_INFO (appinfo));
normalized_exec = normalize_and_casefold (exec);
normalized_exec = shell_util_normalize_and_casefold (exec);
app->casefolded_exec = trim_exec_line (normalized_exec);
g_free (normalized_exec);
}

View File

@ -506,6 +506,20 @@ shell_util_get_transformed_allocation (ClutterActor *actor,
box->y2 = y_max;
}
char *
shell_util_normalize_and_casefold (const char *str)
{
char *normalized, *result;
if (str == NULL)
return NULL;
normalized = g_utf8_normalize (str, -1, G_NORMALIZE_ALL);
result = g_utf8_casefold (normalized, -1);
g_free (normalized);
return result;
}
/**
* shell_util_format_date:
* @format: a strftime-style string format, as parsed by

View File

@ -21,6 +21,9 @@ void shell_util_get_transformed_allocation (ClutterActor *actor,
ClutterActorBox *box);
int shell_util_get_week_start (void);
char *shell_util_normalize_and_casefold (const char *str);
char *shell_util_format_date (const char *format,
gint64 time_ms);