@@ -33,6 +33,8 @@ This program implements a simple debugger "preprocessor" for ScriptBasic.
3333#include "debugger.h"
3434#include "vb.h"
3535
36+ #define snprintf _snprintf
37+
3638int LineNumberForNode (pDebuggerObject pDO , int node )
3739{
3840 if ( node < 1 || node > pDO -> cNodes ) return 0 ;
@@ -46,31 +48,31 @@ void __stdcall dbg_EnumCallStack(pDebuggerObject pDO)
4648 pDebugCallStack_t p ;
4749 pDebugCallStack_t np ;
4850 pUserFunction_t uf ;
49- char buf [1024 ];
51+ char buf [1025 ];
5052 long i ;
5153
5254 if ( pDO == NULL )return ;
5355
54- sprintf (buf , "Call-Stack:%d:%s" , LineNumberForNode (pDO ,pDO -> lPC ), "CurrentLine" );
56+ snprintf (buf , 1024 , "Call-Stack:%d:%s" , LineNumberForNode (pDO ,pDO -> lPC ), "CurrentLine" );
5557 vbStdOut (cb_debugger ,buf ,strlen (buf ));
5658
5759 if ( pDO -> StackListPointer == NULL )return ;
5860
5961 p = pDO -> StackListPointer ;
6062 if (p -> pUF && p -> pUF -> pszFunctionName ){
61- sprintf (buf , "Call-Stack:%d:%s" , LineNumberForNode (pDO ,p -> Node ), p -> pUF -> pszFunctionName );
63+ snprintf (buf , 1024 , "Call-Stack:%d:%s" , LineNumberForNode (pDO ,p -> Node ), p -> pUF -> pszFunctionName );
6264 }else {
63- sprintf (buf , "Call-Stack:%d:Unknown" , LineNumberForNode (pDO ,p -> Node ) );
65+ snprintf (buf , 1024 , "Call-Stack:%d:Unknown" , LineNumberForNode (pDO ,p -> Node ) );
6466 }
6567 vbStdOut (cb_debugger ,buf ,strlen (buf ));
6668
6769 for (i = 0 ; i < pDO -> CallStackDepth ; i ++ ){
6870 if (p -> up == NULL ) return ;
6971 p = p -> up ;
7072 if (p -> pUF && p -> pUF -> pszFunctionName ){
71- sprintf (buf , "Call-Stack:%d:%s" , LineNumberForNode (pDO ,p -> Node ) , p -> pUF -> pszFunctionName );
73+ snprintf (buf , 1024 , "Call-Stack:%d:%s" , LineNumberForNode (pDO ,p -> Node ) , p -> pUF -> pszFunctionName );
7274 }else {
73- sprintf (buf , "Call-Stack:%d:Unknown" , LineNumberForNode (pDO ,p -> Node ));
75+ snprintf (buf , 1024 , "Call-Stack:%d:Unknown" , LineNumberForNode (pDO ,p -> Node ));
7476 }
7577 vbStdOut (cb_debugger ,buf ,strlen (buf ));
7678 }
@@ -235,12 +237,12 @@ CUT*/
235237 return 0 ;
236238 }
237239
238- if ( TYPE (v ) == VTYPE_STRING ){
240+ if ( TYPE (v ) == VTYPE_STRING ){ //<-- it would be nice if this didnt err on to long string but just appended with ... to show more..
239241 /* calculate the printed size */
240242 r = v -> Value .pValue ;
241243 slen = 2 ; /* starting and ending " */
242244 i = 0 ;
243- while ( i < STRLEN (v ) ){
245+ while ( i < STRLEN (v ) ){
244246 if ( * r < 0x20 || * r > 0x7F ){
245247 slen += 4 ; /* \xXX */
246248 i ++ ;
@@ -889,8 +891,6 @@ void __stdcall dbg_WriteFlatSourceFile(pDebuggerObject pDO, char* path)
889891#pragma EXPORT
890892
891893 long j ;
892- char cBuffer [1024 ];
893- int cbBuffer ;
894894
895895 FILE * f = fopen (path , "wb" );
896896 if (f == NULL ) return ;
@@ -915,9 +915,9 @@ command was executed successfully or that the command failed and why.
915915*/
916916void scomm_Message (pDebuggerObject pDO , char * pszMessage )
917917{
918- char cBuffer [200 ];
918+ char cBuffer [1025 ];
919919 int cbBuffer ;
920- sprintf (cBuffer ,"Message: %s\r\n" ,pszMessage );
920+ snprintf (cBuffer , 1024 ,"Message: %s\r\n" ,pszMessage );
921921 vbStdOut (cb_debugger , cBuffer , strlen (cBuffer ));
922922}
923923
@@ -1069,7 +1069,7 @@ void __stdcall dbg_EnumAryVarsByPointer(pDebuggerObject pDO, VARIABLE v)
10691069 VARIABLE v2 = NULL ;
10701070 int low , high , i ;
10711071 unsigned long sz ;
1072- char cBuffer [2050 ];
1072+ char cBuffer [1111 ];
10731073 char buf [1025 ];
10741074
10751075 if (v == NULL ) return ;
@@ -1083,7 +1083,7 @@ void __stdcall dbg_EnumAryVarsByPointer(pDebuggerObject pDO, VARIABLE v)
10831083 if (v2 != NULL ){
10841084 sz = 1024 ;
10851085 SPrintVariable (pDO , v2 , buf , & sz );
1086- sprintf (cBuffer ,"Array-Variable:%d:%d:%s" , i , TYPE (v2 ), buf );
1086+ snprintf (cBuffer ,1110 , "Array-Variable:%d:%d:%s" , i , TYPE (v2 ), buf );
10871087 vbStdOut (cb_debugger , cBuffer , strlen (cBuffer ));
10881088 }
10891089 }
@@ -1092,12 +1092,7 @@ void __stdcall dbg_EnumAryVarsByPointer(pDebuggerObject pDO, VARIABLE v)
10921092void __stdcall dbg_EnumAryVarsByName (pDebuggerObject pDO , char * varName )
10931093{
10941094#pragma EXPORT
1095- VARIABLE v , v2 = NULL ;
1096- int low , high , i ;
1097- unsigned long sz ;
1098- char cBuffer [2050 ];
1099- char buf [1025 ];
1100-
1095+ VARIABLE v ;
11011096 v = dbg_VariableFromName (pDO , varName );
11021097 dbg_EnumAryVarsByPointer (pDO , v );
11031098}
@@ -1115,7 +1110,7 @@ void __stdcall dbg_EnumVars(pDebuggerObject pDO)
11151110 for (i = 0 ; i < pDO -> cGlobalVariables ; i ++ )
11161111 {
11171112 if ( NULL == pDO -> ppszGlobalVariables [i ] )break ;
1118- sprintf (cBuffer ,"Global-Variable-Name:%s" ,pDO -> ppszGlobalVariables [i ]);
1113+ snprintf (cBuffer , 1024 ,"Global-Variable-Name:%s" ,pDO -> ppszGlobalVariables [i ]);
11191114 vbStdOut (cb_debugger , cBuffer , strlen (cBuffer ));
11201115 }
11211116
@@ -1138,7 +1133,7 @@ void __stdcall dbg_EnumVars(pDebuggerObject pDO)
11381133 if ( StackListPointer -> LocalVariables ){
11391134 for (i = StackListPointer -> LocalVariables -> ArrayLowLimit ; i <= StackListPointer -> LocalVariables -> ArrayHighLimit ; i ++ )
11401135 {
1141- sprintf (cBuffer ,"Local-Variable-Name:%s" ,pUF -> ppszLocalVariables [i - 1 ]);
1136+ snprintf (cBuffer , 1024 ,"Local-Variable-Name:%s" ,pUF -> ppszLocalVariables [i - 1 ]);
11421137 vbStdOut (cb_debugger , cBuffer , strlen (cBuffer ));
11431138 }
11441139 }
0 commit comments