slackbuilds_ponce/system/mlterm/mlterm-3.3.3-fixes.patch
Dimitris Zlatanidis 3f375ada78 system/mlterm: Rebuilt with patch.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
2014-03-24 13:02:34 +07:00

212 lines
4.7 KiB
Diff

diff -r ac6ec6344d05 inputmethod/uim/im_uim.c
--- a/inputmethod/uim/im_uim.c
+++ b/inputmethod/uim/im_uim.c
@@ -78,6 +78,8 @@
u_int cand_limit ;
+ int is_mozc ;
+
} im_uim_t ;
KIK_LIST_TYPEDEF( im_uim_t) ;
@@ -744,13 +746,13 @@
uim = (im_uim_t*) p ;
+ (*uim->im.listener->get_spot)( uim->im.listener->self ,
+ uim->im.preedit.chars ,
+ uim->im.preedit.segment_offset ,
+ &x , &y) ;
+
if( uim->im.cand_screen == NULL)
{
- (*uim->im.listener->get_spot)( uim->im.listener->self ,
- uim->im.preedit.chars ,
- uim->im.preedit.segment_offset ,
- &x , &y) ;
-
if( ! ( uim->im.cand_screen = (*syms->x_im_candidate_screen_new)(
uim->im.disp , uim->im.font_man , uim->im.color_man ,
(*uim->im.listener->is_vertical)(uim->im.listener->self) ,
@@ -847,6 +852,22 @@
if( uim->im.cand_screen)
{
+ /*
+ * XXX Hack for uim-mozc (1.11.1522.102)
+ * If candidate_activate() is called with num == 20 and limit = 10,
+ * uim_get_candidate() on mozc doesn't returns 20 candidates but 10 ones.
+ * (e.g. uim_get_candidate(0) and uim_get_candidate(10) returns the same.)
+ */
+ if( uim->is_mozc &&
+ uim->im.cand_screen->index != index &&
+ uim->im.cand_screen->index / uim->cand_limit != index / uim->cand_limit &&
+ (index % uim->cand_limit) == 0)
+ {
+ candidate_activate( p ,
+ uim->im.cand_screen->num_of_candidates ,
+ uim->cand_limit) ;
+ }
+
(*uim->im.cand_screen->select)( uim->im.cand_screen , index) ;
}
}
@@ -1616,6 +1637,8 @@
goto error ;
}
+ uim->is_mozc = (strcmp( engine , "mozc") == 0) ;
+
uim_set_preedit_cb( uim->context ,
preedit_clear ,
preedit_pushback ,
diff -r ac6ec6344d05 xwindow/x_screen.c
--- a/xwindow/x_screen.c
+++ b/xwindow/x_screen.c
@@ -5268,11 +5268,13 @@
* Callbacks of x_config_event_listener_t events.
*/
-static char *
+static void
get_config_intern(
x_screen_t * screen ,
char * dev , /* can be NULL */
- char * key /* can be "error" */
+ char * key , /* can be "error" */
+ int to_menu , /* -1: don't output to pty and menu. */
+ int * flag /* 1(true), 0(false) or -1(other) is returned. */
)
{
ml_term_t * term ;
@@ -5285,7 +5287,7 @@
if( ( term = (*screen->system_listener->get_pty)( screen->system_listener->self ,
dev)) == NULL)
{
- return NULL ;
+ return ;
}
}
else
@@ -5829,7 +5831,34 @@
}
}
- return value ;
+ if( to_menu >= 0)
+ {
+ if( value == NULL)
+ {
+ ml_term_write( screen->term , "#error\n" , 7 , to_menu) ;
+
+ #ifdef __DEBUG
+ kik_debug_printf( KIK_DEBUG_TAG " #error\n") ;
+ #endif
+ }
+ else
+ {
+ ml_term_write( screen->term , "#" , 1 , to_menu) ;
+ ml_term_write( screen->term , key , strlen( key) , to_menu) ;
+ ml_term_write( screen->term , "=" , 1 , to_menu) ;
+ ml_term_write( screen->term , value , strlen( value) , to_menu) ;
+ ml_term_write( screen->term , "\n" , 1 , to_menu) ;
+
+ #ifdef __DEBUG
+ kik_debug_printf( KIK_DEBUG_TAG " #%s=%s\n" , key , value) ;
+ #endif
+ }
+ }
+
+ if( flag)
+ {
+ *flag = value ? true_or_false( value) : -1 ;
+ }
}
static void
@@ -5840,31 +5869,7 @@
int to_menu
)
{
- x_screen_t * screen ;
- char * value ;
-
- screen = p ;
-
- if( ( value = get_config_intern( screen , dev , key)) == NULL)
- {
- ml_term_write( screen->term , "#error\n" , 7 , to_menu) ;
-
- #ifdef __DEBUG
- kik_debug_printf( KIK_DEBUG_TAG " #error\n") ;
- #endif
- }
- else
- {
- ml_term_write( screen->term , "#" , 1 , to_menu) ;
- ml_term_write( screen->term , key , strlen( key) , to_menu) ;
- ml_term_write( screen->term , "=" , 1 , to_menu) ;
- ml_term_write( screen->term , value , strlen( value) , to_menu) ;
- ml_term_write( screen->term , "\n" , 1 , to_menu) ;
-
- #ifdef __DEBUG
- kik_debug_printf( KIK_DEBUG_TAG " #%s=%s\n" , key , value) ;
- #endif
- }
+ get_config_intern( p , dev , key , to_menu , NULL) ;
}
static void
@@ -8286,18 +8291,21 @@
}
else if( strcmp( value , "switch") == 0)
{
- char * val ;
-
- if( ( val = get_config_intern( screen , /* dev */ NULL , key)))
- {
- if( strcmp( val , "true") == 0)
- {
- value = "false" ;
- }
- else if( strcmp( val , "false") == 0)
- {
- value = "true" ;
- }
+ int flag ;
+
+ get_config_intern( screen , /* dev */ NULL , key , -1 , &flag) ;
+
+ if( flag == 1)
+ {
+ value = "false" ;
+ }
+ else if( flag == 0)
+ {
+ value = "true" ;
+ }
+ else
+ {
+ return 1 ;
}
}
@@ -8312,7 +8320,7 @@
if( ( term = (*screen->system_listener->get_pty)( screen->system_listener->self ,
dev)) == NULL)
{
- return 0 ;
+ return 1 ;
}
}
else
@@ -8838,7 +8846,7 @@
}
else
{
- return 0 ;
+ return 1 ;
}
usascii_font_cs_changed( screen , ml_term_get_encoding( screen->term)) ;