Patch 8.0.1762
Problem: Terminal debug logging is a bit complicated.
Solution: Make log_tr() use variable arguments (Ozaki Kiichi, closes #2730)
Files: src/term.c
*** ../vim-8.0.1761/src/term.c 2018-04-24 15:19:00.507068755 +0200
--- src/term.c 2018-04-24 21:36:42.993915142 +0200
***************
*** 108,117 ****
/* Change this to "if 1" to debug what happens with termresponse. */
# if 0
# define DEBUG_TERMRESPONSE
! static void log_tr(char *msg);
! # define LOG_TR(msg) log_tr(msg)
# else
! # define LOG_TR(msg)
# endif
# define STATUS_GET 1 /* send request when switching to RAW mode */
--- 108,117 ----
/* Change this to "if 1" to debug what happens with termresponse. */
# if 0
# define DEBUG_TERMRESPONSE
! static void log_tr(const char *fmt, ...);
! # define LOG_TR(msg) log_tr msg
# else
! # define LOG_TR(msg) do { /**/ } while (0)
# endif
# define STATUS_GET 1 /* send request when switching to RAW mode */
***************
*** 1516,1530 ****
init_highlight(TRUE, FALSE);
# ifdef DEBUG_TERMRESPONSE
{
! char buf[100];
! int r = redraw_asap(CLEAR);
! sprintf(buf, "Received t_Co, redraw_asap(): %d", r);
! log_tr(buf);
}
! # else
redraw_asap(CLEAR);
! # endif
}
}
#endif
--- 1516,1528 ----
init_highlight(TRUE, FALSE);
# ifdef DEBUG_TERMRESPONSE
{
! int r = redraw_asap(CLEAR);
! log_tr("Received t_Co, redraw_asap(): %d", r);
}
! #else
redraw_asap(CLEAR);
! #endif
}
}
#endif
***************
*** 1948,1954 ****
full_screen = TRUE; /* we can use termcap codes from now on
*/
set_term_defaults(); /* use current values as defaults */
#ifdef FEAT_TERMRESPONSE
! LOG_TR("setting crv_status to STATUS_GET");
crv_status = STATUS_GET; /* Get terminal version later */
#endif
--- 1946,1952 ----
full_screen = TRUE; /* we can use termcap codes from now on
*/
set_term_defaults(); /* use current values as defaults */
#ifdef FEAT_TERMRESPONSE
! LOG_TR(("setting crv_status to STATUS_GET"));
crv_status = STATUS_GET; /* Get terminal version later */
#endif
***************
*** 3510,3516 ****
&& starting == 0
&& *T_CRV != NUL)
{
! LOG_TR("Sending CRV request");
out_str(T_CRV);
crv_status = STATUS_SENT;
/* check for the characters now, otherwise they might be eaten by
--- 3508,3514 ----
&& starting == 0
&& *T_CRV != NUL)
{
! LOG_TR(("Sending CRV request"));
out_str(T_CRV);
crv_status = STATUS_SENT;
/* check for the characters now, otherwise they might be eaten by
***************
*** 3541,3547 ****
{
char_u buf[16];
! LOG_TR("Sending U7 request");
/* Do this in the second row. In the first row the returned sequence
* may be CSI 1;2R, which is the same as <S-F3>. */
term_windgoto(1, 0);
--- 3539,3545 ----
{
char_u buf[16];
! LOG_TR(("Sending U7 request"));
/* Do this in the second row. In the first row the returned sequence
* may be CSI 1;2R, which is the same as <S-F3>. */
term_windgoto(1, 0);
***************
*** 3583,3589 ****
/* Only request foreground if t_RF is set. */
if (rfg_status == STATUS_GET && *T_RFG != NUL)
{
! LOG_TR("Sending FG request");
out_str(T_RFG);
rfg_status = STATUS_SENT;
didit = TRUE;
--- 3581,3587 ----
/* Only request foreground if t_RF is set. */
if (rfg_status == STATUS_GET && *T_RFG != NUL)
{
! LOG_TR(("Sending FG request"));
out_str(T_RFG);
rfg_status = STATUS_SENT;
didit = TRUE;
***************
*** 3593,3599 ****
/* Only request background if t_RB is set. */
if (rbg_status == STATUS_GET && *T_RBG != NUL)
{
! LOG_TR("Sending BG request");
out_str(T_RBG);
rbg_status = STATUS_SENT;
didit = TRUE;
--- 3591,3597 ----
/* Only request background if t_RB is set. */
if (rbg_status == STATUS_GET && *T_RBG != NUL)
{
! LOG_TR(("Sending BG request"));
out_str(T_RBG);
rbg_status = STATUS_SENT;
didit = TRUE;
***************
*** 3611,3621 ****
# ifdef DEBUG_TERMRESPONSE
static void
! log_tr(char *msg)
{
static FILE *fd_tr = NULL;
static proftime_T start;
proftime_T now;
if (fd_tr == NULL)
{
--- 3609,3620 ----
# ifdef DEBUG_TERMRESPONSE
static void
! log_tr(const char *fmt, ...)
{
static FILE *fd_tr = NULL;
static proftime_T start;
proftime_T now;
+ va_list ap;
if (fd_tr == NULL)
{
***************
*** 3624,3634 ****
}
now = start;
profile_end(&now);
! fprintf(fd_tr, "%s: %s %s\n",
! profile_msg(&now),
! must_redraw == NOT_VALID ? "NV"
! : must_redraw == CLEAR ? "CL" : " ",
! msg);
}
# endif
#endif
--- 3623,3636 ----
}
now = start;
profile_end(&now);
! fprintf(fd_tr, "%s: %s ", profile_msg(&now),
! must_redraw == NOT_VALID ? "NV"
! : must_redraw == CLEAR ? "CL" : " ");
! va_start(ap, fmt);
! vfprintf(fd_tr, fmt, ap);
! va_end(ap);
! fputc('\n', fd_tr);
! fflush(fd_tr);
}
# endif
#endif
***************
*** 4179,4185 ****
need_gather = TRUE; /* need to fill termleader[] */
}
detected_8bit = TRUE;
! LOG_TR("Switching to 8 bit");
}
#endif
--- 4181,4187 ----
need_gather = TRUE; /* need to fill termleader[] */
}
detected_8bit = TRUE;
! LOG_TR(("Switching to 8 bit"));
}
#endif
***************
*** 4512,4518 ****
}
if (i == len)
{
! LOG_TR("Not enough characters for CRV");
return -1;
}
if (extra > 0)
--- 4514,4520 ----
}
if (i == len)
{
! LOG_TR(("Not enough characters for CRV"));
return -1;
}
if (extra > 0)
***************
*** 4529,4535 ****
{
char *aw = NULL;
! LOG_TR("Received U7 status");
u7_status = STATUS_GOT;
did_cursorhold = TRUE;
if (col == 2)
--- 4531,4537 ----
{
char *aw = NULL;
! LOG_TR(("Received U7 status: %s", tp));
u7_status = STATUS_GOT;
did_cursorhold = TRUE;
if (col == 2)
***************
*** 4545,4557 ****
(char_u *)aw, 0);
# ifdef DEBUG_TERMRESPONSE
{
! char buf[100];
! int r = redraw_asap(CLEAR);
! sprintf(buf,
! "set 'ambiwidth', redraw_asap(): %d",
! r);
! log_tr(buf);
}
# else
redraw_asap(CLEAR);
--- 4547,4555 ----
(char_u *)aw, 0);
# ifdef DEBUG_TERMRESPONSE
{
! int r = redraw_asap(CLEAR);
! log_tr("set 'ambiwidth', redraw_asap(): %d", r);
}
# else
redraw_asap(CLEAR);
***************
*** 4572,4578 ****
{
int version = col;
! LOG_TR("Received CRV response");
crv_status = STATUS_GOT;
did_cursorhold = TRUE;
--- 4570,4576 ----
{
int version = col;
! LOG_TR(("Received CRV response: %s", tp));
crv_status = STATUS_GOT;
did_cursorhold = TRUE;
***************
*** 4598,4604 ****
/* if xterm version >= 141 try to get termcap codes */
if (version >= 141)
{
! LOG_TR("Enable checking for XT codes");
check_for_codes = TRUE;
need_gather = TRUE;
req_codes_from_term();
--- 4596,4602 ----
/* if xterm version >= 141 try to get termcap codes */
if (version >= 141)
{
! LOG_TR(("Enable checking for XT codes"));
check_for_codes = TRUE;
need_gather = TRUE;
req_codes_from_term();
***************
*** 4688,4694 ****
&& *T_CSH != NUL
&& *T_CRS != NUL)
{
! LOG_TR("Sending cursor style request");
out_str(T_CRS);
rcs_status = STATUS_SENT;
need_flush = TRUE;
--- 4686,4692 ----
&& *T_CSH != NUL
&& *T_CRS != NUL)
{
! LOG_TR(("Sending cursor style request"));
out_str(T_CRS);
rcs_status = STATUS_SENT;
need_flush = TRUE;
***************
*** 4701,4707 ****
&& !is_not_xterm
&& *T_CRC != NUL)
{
! LOG_TR("Sending cursor blink mode request");
out_str(T_CRC);
rbm_status = STATUS_SENT;
need_flush = TRUE;
--- 4699,4705 ----
&& !is_not_xterm
&& *T_CRC != NUL)
{
! LOG_TR(("Sending cursor blink mode request"));
out_str(T_CRC);
rbm_status = STATUS_SENT;
need_flush = TRUE;
***************
*** 4737,4743 ****
{
initial_cursor_blink = (tp[j + 4] == '1');
rbm_status = STATUS_GOT;
! LOG_TR("Received cursor blinking mode response");
key_name[0] = (int)KS_EXTRA;
key_name[1] = (int)KE_IGNORE;
slen = i + 1;
--- 4735,4741 ----
{
initial_cursor_blink = (tp[j + 4] == '1');
rbm_status = STATUS_GOT;
! LOG_TR(("Received cursor blinking mode response: %s", tp));
key_name[0] = (int)KS_EXTRA;
key_name[1] = (int)KE_IGNORE;
slen = i + 1;
***************
*** 4779,4785 ****
}
if (i == len)
{
! LOG_TR("not enough characters for winpos");
return -1;
}
}
--- 4777,4783 ----
}
if (i == len)
{
! LOG_TR(("not enough characters for winpos"));
return -1;
}
}
***************
*** 4825,4831 ****
char *newval = (3 * '6' < tp[j+7] + tp[j+12]
+ tp[j+17]) ? "light" : "dark";
! LOG_TR("Received RBG response");
rbg_status = STATUS_GOT;
#ifdef FEAT_TERMINAL
bg_r = rval;
--- 4823,4829 ----
char *newval = (3 * '6' < tp[j+7] + tp[j+12]
+ tp[j+17]) ? "light" : "dark";
! LOG_TR(("Received RBG response: %s", tp));
rbg_status = STATUS_GOT;
#ifdef FEAT_TERMINAL
bg_r = rval;
***************
*** 4845,4851 ****
#ifdef FEAT_TERMINAL
else
{
! LOG_TR("Received RFG response");
rfg_status = STATUS_GOT;
fg_r = rval;
fg_g = gval;
--- 4843,4849 ----
#ifdef FEAT_TERMINAL
else
{
! LOG_TR(("Received RFG response: %s", tp));
rfg_status = STATUS_GOT;
fg_r = rval;
fg_g = gval;
***************
*** 4866,4872 ****
}
if (i == len)
{
! LOG_TR("not enough characters for RB");
return -1;
}
}
--- 4864,4870 ----
}
if (i == len)
{
! LOG_TR(("not enough characters for RB"));
return -1;
}
}
***************
*** 4940,4946 ****
initial_cursor_shape_blink =
(number & 1) ? FALSE : TRUE;
rcs_status = STATUS_GOT;
! LOG_TR("Received cursor shape response");
key_name[0] = (int)KS_EXTRA;
key_name[1] = (int)KE_IGNORE;
--- 4938,4944 ----
initial_cursor_shape_blink =
(number & 1) ? FALSE : TRUE;
rcs_status = STATUS_GOT;
! LOG_TR(("Received cursor shape response: %s", tp));
key_name[0] = (int)KS_EXTRA;
key_name[1] = (int)KE_IGNORE;
***************
*** 4957,4963 ****
{
/* These codes arrive many together, each code can be
* truncated at any point. */
! LOG_TR("not enough characters for XT");
return -1;
}
}
--- 4955,4961 ----
{
/* These codes arrive many together, each code can be
* truncated at any point. */
! LOG_TR(("not enough characters for XT"));
return -1;
}
}
***************
*** 5910,5916 ****
}
#ifdef FEAT_TERMRESPONSE
! LOG_TR("normal character");
#endif
return 0; /* no match found */
--- 5908,5914 ----
}
#ifdef FEAT_TERMRESPONSE
! LOG_TR(("normal character"));
#endif
return 0; /* no match found */
***************
*** 6393,6407 ****
* many, there can be a buffer overflow somewhere. */
while (xt_index_out < xt_index_in + 10 && key_names[xt_index_out] != NULL)
{
! # ifdef DEBUG_TERMRESPONSE
! char dbuf[100];
! sprintf(dbuf, "Requesting XT %d: %s",
! xt_index_out, key_names[xt_index_out]);
! log_tr(dbuf);
! # endif
! sprintf(buf, "\033P+q%02x%02x\033\\",
! key_names[xt_index_out][0], key_names[xt_index_out][1]);
out_str_nf((char_u *)buf);
++xt_index_out;
}
--- 6391,6400 ----
* many, there can be a buffer overflow somewhere. */
while (xt_index_out < xt_index_in + 10 && key_names[xt_index_out] != NULL)
{
! char *key_name = key_names[xt_index_out];
! LOG_TR(("Requesting XT %d: %s", xt_index_out, key_name));
! sprintf(buf, "\033P+q%02x%02x\033\\", key_name[0], key_name[1]);
out_str_nf((char_u *)buf);
++xt_index_out;
}
***************
*** 6444,6457 ****
break;
}
}
- # ifdef DEBUG_TERMRESPONSE
- {
- char buf[100];
! sprintf(buf, "Received XT %d: %s", xt_index_in, (char *)name);
! log_tr(buf);
! }
! # endif
if (key_names[i] != NULL)
{
for (i = 8; (c = hexhex2nr(code + i)) >= 0; i += 2)
--- 6437,6445 ----
break;
}
}
! LOG_TR(("Received XT %d: %s", xt_index_in, (char *)name));
!
if (key_names[i] != NULL)
{
for (i = 8; (c = hexhex2nr(code + i)) >= 0; i += 2)
*** ../vim-8.0.1761/src/version.c 2018-04-24 20:54:01.576445033 +0200
--- src/version.c 2018-04-24 21:24:02.288389734 +0200
***************
*** 763,764 ****
--- 763,766 ----
{ /* Add new patch number below this line */
+ /**/
+ 1762,
/**/
--
In war we're tough and able.
Quite indefatigable
Between our quests
We sequin vests
And impersonate Clark Gable
It's a busy life in Camelot.
I have to push the pram a lot.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- [email protected] -- 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 ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.