--- a/sreplace.c Tue May 29 18:52:18 2007 +0200
+++ b/sreplace.c Thu May 31 00:17:52 2007 +0200
@@ -8,18 +8,14 @@
#include <assert.h>
#include <string.h>
+#include "sreplace.h"
+
enum {
BUFFER_SIZE = 2048
};
static FILE * input, * output;
-struct String
-{
- char *ptr;
- int length;
-};
-
struct CmpState
{
struct String *str;
@@ -241,45 +237,6 @@
printf("usage: %s OLD_STR NEW_STR\n", pname);
}
-static void parse_backslashes(char *str)
-{
- int was_backslash = 0;
- char *write_str = str;
-
- while (*str != 0)
- {
- if (*str == '\\')
- was_backslash = 1;
- else
- {
- if (was_backslash)
- {
- switch(*str)
- {
- case '\\':
- *(write_str++) = '\\';
- break;
- case 'n':
- *(write_str++) = '\n';
- break;
- case 't':
- *(write_str++) = '\t';
- break;
- default:
- *(write_str++) = *str;
- }
- }
- else
- {
- *(write_str++) = *str;
- }
- was_backslash = 0;
- }
- ++str;
- }
- *(write_str++) = '\0';
-}
-
static void process_parameters(int argc, char **argv)
{
if (argc != 3)
@@ -291,11 +248,15 @@
old_str.ptr = argv[1];
new_str.ptr = argv[2];
- parse_backslashes(old_str.ptr);
- parse_backslashes(new_str.ptr);
+ old_str.length = parse_backslashes(old_str.ptr);
+ fprintf(stderr, "OLD: ");
+ print_hex(stderr, &old_str);
+ fprintf(stderr, "\n");
- old_str.length = strlen(old_str.ptr);
- new_str.length = strlen(new_str.ptr);
+ new_str.length = parse_backslashes(new_str.ptr);
+ fprintf(stderr, "NEW: ");
+ print_hex(stderr, &new_str);
+ fprintf(stderr, "\n");
}
int main(int argc, char ** argv)