From 9903c8cf446312baf648a2e309a4fbb3e9a21806 Mon Sep 17 00:00:00 2001 From: Chris Nutter Date: Sun, 12 May 2019 23:13:57 -0700 Subject: [PATCH] pretty smooth, printnormal is not working its still beta --- diff-rcm | Bin 35072 -> 35416 bytes diff.c | 11 +++-------- pa.c | 16 +++++++++++++--- pa.h | 1 + 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/diff-rcm b/diff-rcm index b109891ab2ab40b00c49b88e539918579c63abef..1dd2e212fe1c888a04d89f579ce49f76d5036547 100755 GIT binary patch delta 4983 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⩔c$%;+3F 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 0) { strncpy(buf, first, len1); } + buf[len1 - 1] = '\0'; +} + size_t pa_filesize(pa* p) { return p == NULL ? 0 : p->filesize; } size_t pa_size(pa* p) { return p == NULL || p->stop < p->start ? 0 : p->stop - p->start + 1; } @@ -70,11 +77,14 @@ char* pa_info(pa* p) { } int pa_equal(pa* p, pa* q) { + if (p == NULL || q == NULL) { return 0; } if (pa_size(p) != pa_size(q)) { return 0; } - int i = p->start, j = q->start, equal = 0; - while ((equal = strcmp(p->base[i], q->base[i])) == 0) { ++i; ++j; } - return equal; + if (p->start >= p->filesize || q->start >= q->filesize) { return 0; } + int i = p->start, j = q->start, equal = 0, psize = p->filesize, qsize = q->filesize; + while (i < psize && j < qsize && (equal = strcmp(p->base[i], q->base[i])) == 0) { ++i; ++j; } + return 1; + } FILE* openfile(const char* filename, const char* openflags) { diff --git a/pa.h b/pa.h index fc36707..c7ba8ba 100644 --- a/pa.h +++ b/pa.h @@ -30,6 +30,7 @@ void pa_print(pa* p, void (*fp)(const char*)); void printboth(const char* left_right); void printleft(const char* left); void printright(const char* right); +void printnormal(const char* first); FILE* openfile(const char* filename, const char* openflags); char* yesorno(int condition);