sdtui: normalize whitespace in clipboard input
This commit is contained in:
parent
bb4e732a25
commit
85ca0c5857
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2013 - 2020, Přemysl Eric Janouch <p@janouch.name>
|
||||
Copyright (c) 2013 - 2021, Přemysl Eric Janouch <p@janouch.name>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
|
23
src/sdtui.c
23
src/sdtui.c
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* StarDict terminal UI
|
||||
*
|
||||
* Copyright (c) 2013 - 2020, Přemysl Eric Janouch <p@janouch.name>
|
||||
* Copyright (c) 2013 - 2021, Přemysl Eric Janouch <p@janouch.name>
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted.
|
||||
|
@ -980,7 +980,7 @@ app_show_help (Application *self)
|
|||
{
|
||||
PROJECT_NAME " " PROJECT_VERSION,
|
||||
_("Terminal UI for StarDict dictionaries"),
|
||||
"Copyright (c) 2013 - 2020, Přemysl Eric Janouch",
|
||||
"Copyright (c) 2013 - 2021, Přemysl Eric Janouch",
|
||||
"",
|
||||
_("Type to search")
|
||||
};
|
||||
|
@ -1842,13 +1842,26 @@ app_set_input (Application *self, const gchar *text, gsize text_len)
|
|||
self->input_pos = 0;
|
||||
|
||||
gunichar *p = output;
|
||||
gboolean last_was_space = false;
|
||||
while (size--)
|
||||
{
|
||||
// XXX: skip?
|
||||
if (!g_unichar_isprint (*p))
|
||||
// Normalize whitespace, to cover OCR anomalies
|
||||
gunichar c = *p++;
|
||||
if (!g_unichar_isspace (c))
|
||||
last_was_space = FALSE;
|
||||
else if (last_was_space)
|
||||
continue;
|
||||
else
|
||||
{
|
||||
c = ' ';
|
||||
last_was_space = TRUE;
|
||||
}
|
||||
|
||||
// XXX: skip? Might be some binary nonsense.
|
||||
if (!g_unichar_isprint (c))
|
||||
break;
|
||||
|
||||
g_array_insert_val (self->input, self->input_pos++, *p++);
|
||||
g_array_insert_val (self->input, self->input_pos++, c);
|
||||
}
|
||||
g_free (output);
|
||||
|
||||
|
|
Loading…
Reference in New Issue