Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Aug 2008 08:52:15 +0400 (MSD)
From:      Artemiev Igor <ai@kliksys.ru>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/126294: mlterm didn`t recode menu pty list from non-unicode locale
Message-ID:  <200808060452.m764qFac056575@aef.kliksoft.ru>
Resent-Message-ID: <200808060530.m765U2OK057417@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         126294
>Category:       ports
>Synopsis:       mlterm didn`t recode menu pty list from non-unicode locale
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Aug 06 05:30:02 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Artemiev Igor
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
Klik
>Environment:
System: FreeBSD one.kliksys.ru 7.0-STABLE FreeBSD 7.0-STABLE #4: Sun May 11 11:02:56 MSD 2008 root@one.kliksys.ru:/usr/obj/usr/src.7/sys/KERNEL i386
>Description:
	GTK 2.0 internally use UTF-8, but mlterm didn`t convert pty list for the menu.
	If pty name have national characters, mlterm didn`t show it in the pty selection menu 
	( invoke by Ctrl + left mouse button or Ctrl + right mouse button )
>How-To-Repeat:
	Try to change mlterm title with non-latin characters via Xterm escape sequency (\033]0;<nonlatin string>\007) and invoke mlterm menu with pty list - pty name displayed partially, only latin symbols
>Fix:
	Apply this patch:

--- contrib/tool/mlterm-menu/mlterm-menu.c.orig	2008-08-06 08:21:01.000000000 +0400
+++ contrib/tool/mlterm-menu/mlterm-menu.c	2008-08-06 08:30:00.000000000 +0400
@@ -201,6 +201,7 @@
     GtkWidget* item;
     char* pty_list;
     char* name;
+    gchar *utf8_name;
     char* pty;
     char* command;
     int is_active;
@@ -228,11 +229,12 @@
             name = pty;
         if (strncmp(name, "/dev/", 5) == 0)
             name += 5;
+	utf8_name = g_locale_to_utf8(name, -1, NULL, NULL, NULL);
 
         command = malloc(strlen(pty) + 12);
         sprintf(command, "select_pty=%s", pty);
 
-        item = gtk_radio_menu_item_new_with_label(group, name);
+        item = gtk_radio_menu_item_new_with_label(group, utf8_name);
         group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(item));
 
         gtk_signal_connect(GTK_OBJECT(item), "toggled",
@@ -240,6 +242,7 @@
                            (gpointer) command);
 
         gtk_menu_append(menu, item);
+	g_free(utf8_name);
         if (is_active) {
             gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
                                            TRUE);


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808060452.m764qFac056575>