mirror of
https://github.com/Llewellynvdm/conky.git
synced 2025-01-28 09:38:38 +00:00
make override_utf8_locale a lua setting
This commit is contained in:
parent
ede92b87bd
commit
c31f27fe92
45
src/conky.cc
45
src/conky.cc
@ -377,6 +377,22 @@ static int fixed_size = 0, fixed_pos = 0;
|
|||||||
static int minimum_width, minimum_height;
|
static int minimum_width, minimum_height;
|
||||||
static int maximum_width;
|
static int maximum_width;
|
||||||
|
|
||||||
|
static bool isutf8(const char* envvar) {
|
||||||
|
char *s = getenv(envvar);
|
||||||
|
if(s) {
|
||||||
|
std::string temp = s;
|
||||||
|
std::transform(temp.begin(), temp.end(), temp.begin(), ::tolower);
|
||||||
|
if( (temp.find("utf-8") != std::string::npos) || (temp.find("utf8") != std::string::npos) ) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* UTF-8 */
|
||||||
|
static conky::simple_config_setting<bool> utf8_mode("override_utf8_locale",
|
||||||
|
isutf8("LC_ALL") || isutf8("LC_CTYPE") || isutf8("LANG"), false);
|
||||||
|
|
||||||
#endif /* BUILD_X11 */
|
#endif /* BUILD_X11 */
|
||||||
|
|
||||||
#ifdef __OpenBSD__
|
#ifdef __OpenBSD__
|
||||||
@ -389,9 +405,6 @@ unsigned int max_user_text;
|
|||||||
/* maximum size of individual text buffers, ie $exec buffer size */
|
/* maximum size of individual text buffers, ie $exec buffer size */
|
||||||
unsigned int text_buffer_size = DEFAULT_TEXT_BUFFER_SIZE;
|
unsigned int text_buffer_size = DEFAULT_TEXT_BUFFER_SIZE;
|
||||||
|
|
||||||
/* UTF-8 */
|
|
||||||
bool utf8_mode = false;
|
|
||||||
|
|
||||||
/* pad percentages to decimals? */
|
/* pad percentages to decimals? */
|
||||||
static int pad_percents = 0;
|
static int pad_percents = 0;
|
||||||
|
|
||||||
@ -440,7 +453,7 @@ int calc_text_width(const char *s)
|
|||||||
if (use_xft.get(*state)) {
|
if (use_xft.get(*state)) {
|
||||||
XGlyphInfo gi;
|
XGlyphInfo gi;
|
||||||
|
|
||||||
if (utf8_mode) {
|
if (utf8_mode.get(*state)) {
|
||||||
XftTextExtentsUtf8(display, fonts[selected_font].xftfont,
|
XftTextExtentsUtf8(display, fonts[selected_font].xftfont,
|
||||||
(const FcChar8 *) s, slen, &gi);
|
(const FcChar8 *) s, slen, &gi);
|
||||||
} else {
|
} else {
|
||||||
@ -1229,7 +1242,7 @@ static void draw_string(const char *s)
|
|||||||
c2.color.green = c.green;
|
c2.color.green = c.green;
|
||||||
c2.color.blue = c.blue;
|
c2.color.blue = c.blue;
|
||||||
c2.color.alpha = fonts[selected_font].font_alpha;
|
c2.color.alpha = fonts[selected_font].font_alpha;
|
||||||
if (utf8_mode) {
|
if (utf8_mode.get(*state)) {
|
||||||
XftDrawStringUtf8(window.xftdraw, &c2, fonts[selected_font].xftfont,
|
XftDrawStringUtf8(window.xftdraw, &c2, fonts[selected_font].xftfont,
|
||||||
cur_x, cur_y, (const XftChar8 *) s, strlen(s));
|
cur_x, cur_y, (const XftChar8 *) s, strlen(s));
|
||||||
} else {
|
} else {
|
||||||
@ -2926,11 +2939,6 @@ char load_config_file(const char *f)
|
|||||||
CONF_ERR;
|
CONF_ERR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef BUILD_X11
|
|
||||||
CONF("override_utf8_locale") {
|
|
||||||
utf8_mode = string_to_bool(value);
|
|
||||||
}
|
|
||||||
#endif /* BUILD_X11 */
|
|
||||||
CONF("max_text_width") {
|
CONF("max_text_width") {
|
||||||
max_text_width = atoi(value);
|
max_text_width = atoi(value);
|
||||||
}
|
}
|
||||||
@ -3619,20 +3627,6 @@ void initialisation(int argc, char **argv) {
|
|||||||
#endif /* BUILD_LUA */
|
#endif /* BUILD_LUA */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef BUILD_X11
|
|
||||||
bool isutf8(const char* envvar) {
|
|
||||||
char *s = getenv(envvar);
|
|
||||||
if(s) {
|
|
||||||
std::string temp = s;
|
|
||||||
std::transform(temp.begin(), temp.end(), temp.begin(), ::tolower);
|
|
||||||
if( (temp.find("utf-8") != std::string::npos) || (temp.find("utf8") != std::string::npos) ) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
argc_copy = argc;
|
argc_copy = argc;
|
||||||
@ -3649,9 +3643,6 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
/* handle command line parameters that don't change configs */
|
/* handle command line parameters that don't change configs */
|
||||||
#ifdef BUILD_X11
|
#ifdef BUILD_X11
|
||||||
if(isutf8("LC_ALL") || isutf8("LC_CTYPE") || isutf8("LANG")) {
|
|
||||||
utf8_mode = true;
|
|
||||||
}
|
|
||||||
if (!setlocale(LC_CTYPE, "")) {
|
if (!setlocale(LC_CTYPE, "")) {
|
||||||
NORM_ERR("Can't set the specified locale!\nCheck LANG, LC_CTYPE, LC_ALL.");
|
NORM_ERR("Can't set the specified locale!\nCheck LANG, LC_CTYPE, LC_ALL.");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user