home *** CD-ROM | disk | FTP | other *** search
- To: vim_dev@googlegroups.com
- Subject: Patch 7.3.594
- Fcc: outbox
- From: Bram Moolenaar <Bram@moolenaar.net>
- 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 ///
-