This commit is contained in:
Scandum 2026-01-29 13:25:33 +01:00
parent 99e0b0b113
commit 010881e768
8 changed files with 41 additions and 24 deletions

22
TODO
View file

@ -1,4 +1,18 @@
- Look into #map find clearing room symbols on rooms with a symbol length of 2-5.
- Figure out how to deal with large images and packet fragmentation
eden-test.rpgframework.de 4000
- #snoop scroll malfunctions if inputregion is changed (should be fixed)
#screen scroll 1 1 20 50
#screen input 22 1 22 50
#screen fill default
#line background #run bla bash
#bla #cursor echo on
#bla #screen scroll 1 52 20 101
#bla #screen input 22 52 22 101
#snoop bla scroll
#bla #screen input 21 52 21 101
- #config {COMMAND ECHO} mode that echoes all commands as sent to the mud.
@ -33,8 +47,6 @@
- allow a full telnet disable in port.c
- Add message when a substitution exceeds available memory.
- config loglevel medium option
- look into GMCP larger than buffer size
@ -65,16 +77,12 @@
- #line escape {variables;functions}
- Another nice thing would be if there was some flag to make a trigger match newlines as space.
- add a #regex like command for #cursor to update the input line.
- custom mapping for unicode table to set width
- color code for dynamic color ranges
- Look into delete_index_list leaving a table with ->used set to 0 causing #list crashes
- #daemon attach fails under high cpu load
- https://github.com/scandum/tintin/issues/161

View file

@ -1,3 +1,7 @@
Jan 2026 2.02.61
------------------------------------------------------------------------------
substitute.c Fixed a bug causing improper handling of large variables.
Jun 2025 2.02.60
------------------------------------------------------------------------------
cursor.c Added #cursor flag keypad on/off option.

View file

@ -500,7 +500,7 @@ int show_buffer(struct session *ses)
scroll_cnt--;
}
save_pos(ses);
save_pos(gtd->ses);
if (scroll_cnt == 0) // home
{
@ -611,7 +611,7 @@ int show_buffer(struct session *ses)
buffer_print(ses, 0, 0, 0);
restore_pos(ses);
restore_pos(gtd->ses);
if (IS_SPLIT(ses))
{

View file

@ -262,6 +262,13 @@ DO_COMMAND(do_test)
}
if (!strcmp(arg1, "prompt"))
{
SET_BIT(ses->telopts, TELOPT_FLAG_PROMPT);
SET_BIT(ses->config_flags, CONFIG_FLAG_AUTOPROMPT);
return ses;
}
return ses;
}

View file

@ -317,7 +317,6 @@ void write_line_mud(struct session *ses, char *line, int size)
return;
}
if (!HAS_BIT(ses->telopts, TELOPT_FLAG_TELNET) && HAS_BIT(ses->charset, CHARSET_FLAG_ALL_TOUTF8))
{
char buf[BUFFER_SIZE];

View file

@ -1083,17 +1083,16 @@ int substitute(struct session *ses, char *string, char *result, int flags)
*pto++ = *pti++;
continue;
}
/*
if (pto - buffer > BUFFER_SIZE - 1000)
{
pto += sprintf(pto, "[BUFFER OVERFLOW]");
pto += sprintf(pto, "[BUFFER OVERFLOW]"); // causes large variables to fail to load
goto eol;
}
*/
switch (*pti)
{
case '\0':
eol:
if (HAS_BIT(flags, SUB_EOL))
{
if (HAS_BIT(ses->telopts, TELOPT_FLAG_CR|TELOPT_FLAG_LF))
@ -1181,6 +1180,8 @@ int substitute(struct session *ses, char *string, char *result, int flags)
if (sesptr == NULL && node == NULL)
{
show_debug(ses, LIST_FUNCTION, NULL, COLOR_DEBUG "#DEBUG: UNDEFINED FUNCTION " COLOR_BRACE "{" COLOR_STRING "%s" COLOR_BRACE "}", temp);
while (*pti == '@')
{
*pto++ = *pti++;

View file

@ -449,10 +449,7 @@ int client_translate_telopts(struct session *ses, unsigned char *src, int cplen)
break;
case ASCII_LF:
if (HAS_BIT(ses->telopts, TELOPT_FLAG_PROMPT))
{
DEL_BIT(ses->telopts, TELOPT_FLAG_PROMPT);
}
DEL_BIT(ses->telopts, TELOPT_FLAG_PROMPT);
*cpdst++ = *cpsrc++;
gtd->mud_output_len++;
@ -480,14 +477,15 @@ int client_translate_telopts(struct session *ses, unsigned char *src, int cplen)
{
DEL_BIT(ses->telopts, TELOPT_FLAG_PROMPT);
/*
Fix up non vt muds
*/
// Fix up non vt muds
if (HAS_BIT(ses->flags, SES_FLAG_SPLIT) || !IS_SPLIT(ses))
{
*cpdst++ = '\n';
gtd->mud_output_len++;
if (!HAS_BIT(ses->telopts, TELOPT_FLAG_SGA))
{
*cpdst++ = '\n';
gtd->mud_output_len++;
}
}
}

View file

@ -213,7 +213,7 @@
#define CLIENT_NAME "TinTin++"
#define CLIENT_VERSION "2.02.60 "
#define CLIENT_VERSION "2.02.61 "
#define XT_E 0x27