+Thu Aug 4 16:26:06 1994 Steve Chamberlain (sac@jonny.cygnus.com)
+
+ * remote.c (read_frame): Calculate run length encoded checksum correctly.
+ * config/sh/stub.c: New file.
+
Thu Aug 4 14:34:12 1994 Stu Grossman (grossman@cygnus.com)
* target.c (find_default_run_target): Make sure to_can_run is set
remote target.
Responses can be run-length encoded to save space. A '*' means that
- the next two characters are hex digits giving a repeat count which
+ the next character is an ASCII encoding giving a repeat count which
stands for that many repititions of the character preceding the '*'.
- Note that this means that responses cannot contain '*'. Example:
- "0*03" means the same as "0000". */
+ The encoding is n+29, yielding a printable character where n >=3
+ (which is where rle starts to win). Don't use an n > 126.
+
+ So
+ "0* " means the same as "0000". */
#include "defs.h"
#include <string.h>
return 0;
}
case '*': /* Run length encoding */
+ csum += c;
c = readchar (remote_timeout);
csum += c;
c = c - ' ' + 3; /* Compute repeat count */
printf_filtered ("Repeat count %d too large for buffer: ", c);
puts_filtered (buf);
puts_filtered ("\n");
-
return 0;
+
default:
if (bp < buf + PBUFSIZ - 1)
{