cgdb: fix escape sequences
This commit adds a patch that fixes bad escape sequences in prompt. This should be fixed in next release of cgdb. The patch is based of https://github.com/cgdb/cgdb/issues/239#issuecomment-706249589 and https://github.com/cgdb/cgdb/issues/255#issuecomment-820546156.
This commit is contained in:
parent
c374bbcc31
commit
5679f2d395
|
@ -0,0 +1,48 @@
|
|||
From 242ea26b6f4aa7ce2ce56cbb1b50cd93a3126a57 Mon Sep 17 00:00:00 2001
|
||||
From: meator <coder64@protonmail.com>
|
||||
Date: Thu, 17 Jun 2021 21:30:06 +0200
|
||||
Subject: [PATCH] Patch
|
||||
|
||||
This is a patch for v0.7.1 of cgdb. It fixes bad escape sequences in prompt string. Based of https://github.com/cgdb/cgdb/issues/239#issuecomment-706249589 and https://github.com/cgdb/cgdb/issues/255#issuecomment-820546156.
|
||||
|
||||
---
|
||||
cgdb/scroller.cpp | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cgdb/scroller.cpp b/cgdb/scroller.cpp
|
||||
index 2d01e82..d2d36ca 100644
|
||||
--- a/cgdb/scroller.cpp
|
||||
+++ b/cgdb/scroller.cpp
|
||||
@@ -106,14 +106,27 @@ static char *parse(struct scroller *scr, struct hl_line_attr **attrs,
|
||||
/* Carriage return -> Move back to the beginning of the line */
|
||||
case '\r':
|
||||
i = 0;
|
||||
- if (buf[j + 1] != '\n') {
|
||||
+ if ((buflen - j) >= 1 && buf[j + 1] != '\n') {
|
||||
sbfree(*attrs);
|
||||
*attrs = NULL;
|
||||
}
|
||||
break;
|
||||
case '\033':
|
||||
/* Handle ansi escape characters */
|
||||
- if (hl_ansi_color_support(hl_groups_instance) &&
|
||||
+ /* see https://conemu.github.io/en/AnsiEscapeCodes.html#SGR_Select_Graphic_Rendition_parameters
|
||||
+ */
|
||||
+ if ((buflen - j) >= 6
|
||||
+ && buf[j + 1] == '[' && buf[j + 2] == '?' && buf[j + 3] == '2'
|
||||
+ && buf[j + 4] == '0' && buf[j + 5] == '0' && buf[j + 6] == '4') {
|
||||
+ /* simply ignore these escape sequences like e.g. "[?2004h" */
|
||||
+ j += 7;
|
||||
+ } else if ((buflen - j) >= 2 && buf[j + 1] == '[' && buf[j + 2] == '?') {
|
||||
+ /* simply ignore these escape sequences like e.g. "[?1h" */
|
||||
+ j += 4;
|
||||
+ } else if ((buflen - j) >= 1 && (buf[j + 1] == '=' || buf[j + 1] == '>')) {
|
||||
+ /* simply ignore these escape sequences */
|
||||
+ j += 1;
|
||||
+ } else if (hl_ansi_color_support(hl_groups_instance) &&
|
||||
debugwincolor) {
|
||||
int attr;
|
||||
int ansi_count = hl_ansi_get_color_attrs(
|
||||
--
|
||||
2.32.0
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'cgdb'
|
||||
pkgname=cgdb
|
||||
version=0.7.1
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=gnu-configure
|
||||
configure_args="ac_cv_rl_version=6.3
|
||||
ac_cv_file__proc_self_status=yes"
|
||||
|
|
Loading…
Reference in New Issue