diff --git a/7.3.594 b/7.3.594 new file mode 100644 index 0000000..3f7d3b2 --- /dev/null +++ b/7.3.594 @@ -0,0 +1,171 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.594 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.594 +Problem: The X command server doesn't work perfectly. It sends an empty + reply for as-keys requests. +Solution: Remove duplicate ga_init2(). Do not send a reply for as-keys + requests. (Brian Burns) +Files: src/if_xcmdsrv.c + + +*** ../vim-7.3.593/src/if_xcmdsrv.c 2010-08-15 21:57:27.000000000 +0200 +--- src/if_xcmdsrv.c 2012-07-10 14:15:59.000000000 +0200 +*************** +*** 655,661 **** + if (SendInit(dpy) < 0) + return NULL; + } +- ga_init2(&ga, 1, 100); + + /* + * Read the registry property. +--- 655,660 ---- +*************** +*** 1198,1206 **** + if ((*p == 'c' || *p == 'k') && (p[1] == 0)) + { + Window resWindow; +! char_u *name, *script, *serial, *end, *res; + Bool asKeys = *p == 'k'; +- garray_T reply; + char_u *enc; + + /* +--- 1197,1204 ---- + if ((*p == 'c' || *p == 'k') && (p[1] == 0)) + { + Window resWindow; +! char_u *name, *script, *serial, *end; + Bool asKeys = *p == 'k'; + char_u *enc; + + /* +*************** +*** 1256,1305 **** + if (script == NULL || name == NULL) + continue; + +! /* +! * Initialize the result property, so that we're ready at any +! * time if we need to return an error. +! */ +! if (resWindow != None) +! { +! ga_init2(&reply, 1, 100); + #ifdef FEAT_MBYTE +! ga_grow(&reply, 50 + STRLEN(p_enc)); +! sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ", + 0, 0, p_enc, 0, serial, 0); +! reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial); + #else +! ga_grow(&reply, 50); +! sprintf(reply.ga_data, "%cr%c-s %s%c-r ", 0, 0, serial, 0); +! reply.ga_len = 10 + STRLEN(serial); + #endif +! } +! res = NULL; +! if (serverName != NULL && STRICMP(name, serverName) == 0) +! { +! script = serverConvert(enc, script, &tofree); +! if (asKeys) +! server_to_input_buf(script); +! else +! res = eval_client_expr_to_string(script); +! vim_free(tofree); +! } +! if (resWindow != None) +! { +! if (res != NULL) +! ga_concat(&reply, res); +! else if (asKeys == 0) +! { +! ga_concat(&reply, (char_u *)_(e_invexprmsg)); +! ga_append(&reply, 0); +! ga_concat(&reply, (char_u *)"-c 1"); +! } +! ga_append(&reply, NUL); +! (void)AppendPropCarefully(dpy, resWindow, commProperty, +! reply.ga_data, reply.ga_len); +! ga_clear(&reply); +! } +! vim_free(res); + } + else if (*p == 'r' && p[1] == 0) + { +--- 1254,1305 ---- + if (script == NULL || name == NULL) + continue; + +! if (serverName != NULL && STRICMP(name, serverName) == 0) +! { +! script = serverConvert(enc, script, &tofree); +! if (asKeys) +! server_to_input_buf(script); +! else +! { +! char_u *res; +! +! res = eval_client_expr_to_string(script); +! if (resWindow != None) +! { +! garray_T reply; +! +! /* Initialize the result property. */ +! ga_init2(&reply, 1, 100); + #ifdef FEAT_MBYTE +! ga_grow(&reply, 50 + STRLEN(p_enc)); +! sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ", + 0, 0, p_enc, 0, serial, 0); +! reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial); + #else +! ga_grow(&reply, 50); +! sprintf(reply.ga_data, "%cr%c-s %s%c-r ", +! 0, 0, serial, 0); +! reply.ga_len = 10 + STRLEN(serial); + #endif +! +! /* Evaluate the expression and return the result. */ +! if (res != NULL) +! ga_concat(&reply, res); +! else +! { +! ga_concat(&reply, (char_u *)_(e_invexprmsg)); +! ga_append(&reply, 0); +! ga_concat(&reply, (char_u *)"-c 1"); +! } +! ga_append(&reply, NUL); +! (void)AppendPropCarefully(dpy, resWindow, commProperty, +! reply.ga_data, reply.ga_len); +! ga_clear(&reply); +! } +! vim_free(res); +! } +! vim_free(tofree); +! } + } + else if (*p == 'r' && p[1] == 0) + { +*** ../vim-7.3.593/src/version.c 2012-07-10 13:41:09.000000000 +0200 +--- src/version.c 2012-07-10 14:17:50.000000000 +0200 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 594, + /**/ + +-- +A meeting is an event at which the minutes are kept and the hours are lost. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///