From e6e134fff63e98af0127a739a38b8d02230ff4f2 Mon Sep 17 00:00:00 2001 From: farisawan-2000 Date: Sat, 9 Jan 2021 21:53:27 -0500 Subject: [PATCH] added separator character to be able to separate parameters and numbers without a space --- s2d_parse.c | 5 ++++- s2d_print.h | 2 ++ s2d_ustdlib.c | 8 ++++---- x86_testing_ground/a.out | Bin 17384 -> 17408 bytes x86_testing_ground/atoi.c | 27 +++++++++++++++++++++++++-- 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/s2d_parse.c b/s2d_parse.c index 35d19034..f5a64723 100644 --- a/s2d_parse.c +++ b/s2d_parse.c @@ -70,8 +70,11 @@ void s2d_snprint(int x, int y, const char *str, uObjMtx *buf, int len) { x += TAB_WIDTH_V; y += TEX_HEIGHT; break; + // case CH_SEPARATOR: + // CH_SKIP(p); + // break; default: - if (current_char != '\0') { + if (current_char != '\0' && current_char != CH_SEPARATOR) { draw_s2d_glyph(current_char, x, y, (buf++)); (x += (s2d_kerning_table[current_char] * myScale)); } diff --git a/s2d_print.h b/s2d_print.h index 0dce019a..901f4f3a 100644 --- a/s2d_print.h +++ b/s2d_print.h @@ -7,6 +7,7 @@ #define COLOR "\x83" // COLOR (r) (g) (b) (a) #define DROPSHADOW "\x84" // DROPSHADOW (no params) #define BACKGROUND "\x85" // BACKGROUND (w) (h) (alpha) +#define SEPARATOR "\x86" #define CH_SCALE '\x80' #define CH_ROT '\x81' @@ -14,6 +15,7 @@ #define CH_COLOR '\x83' #define CH_DROPSHADOW '\x84' #define CH_BACKGROUND '\x85' +#define CH_SEPARATOR '\x86' // ASCII standard escape codes #define CH_NEWLINE '\n' diff --git a/s2d_ustdlib.c b/s2d_ustdlib.c index 619957ec..63406bde 100644 --- a/s2d_ustdlib.c +++ b/s2d_ustdlib.c @@ -1,6 +1,6 @@ // ustdlib means un-standard library // i'm going to abuse so much of my power here lol - +#include "s2d_print.h" // int s2d_atoi(char *s, char **s2) { // int ret = 0; // int isNegative = (*s == '-'); @@ -25,12 +25,12 @@ int s2d_atoi(char *s, char **s2) { s++; (*s2)++; } - for (; *s != '\0' && *s != ' ' && *s >= '0' && *s <= '9'; s++) { + for (; *s != '\0' && *s != ' ' && *s != CH_SEPARATOR && *s >= '0' && *s <= '9'; s++) { ret *= 10; if (*s >= '0' && *s <= '9') ret += *s - '0'; else break; - if (!(*(s+1) != '\0' && *(s+1) != ' ' && *(s+1) >= '0' && *(s+1) <= '9')) break; + if (!(*(s+1) != '\0' && *(s+1) != CH_SEPARATOR && *(s+1) != ' ' && *(s+1) >= '0' && *(s+1) <= '9')) break; (*s2)++; } if (isNegative) ret *= -1; @@ -40,7 +40,7 @@ int s2d_atoi(char *s, char **s2) { int s2d_ilen(char *s) { int ret = 0; char *p = s; - while (*p >= '0' && *p <= '9') { + while (*p >= '0' && *p <= '9' && *p != CH_SEPARATOR) { ret++; p++; } diff --git a/x86_testing_ground/a.out b/x86_testing_ground/a.out index 674ddc8401af9c5d6fab3f4e59fac23a19d9f487..192d4ac0a6e2cd3f6c19c953d7b36ef7e128b2f7 100755 GIT binary patch delta 2929 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 diff --git a/x86_testing_ground/atoi.c b/x86_testing_ground/atoi.c index 3c12a2a0..16b33717 100644 --- a/x86_testing_ground/atoi.c +++ b/x86_testing_ground/atoi.c @@ -195,10 +195,33 @@ int main(void) { // printf("%d\n", s2d_atoi(s, &s)); // printf("%s\n", s); // s2d_print(0,0, t); - while (pos != strlen(my2)) { + char laStrBuf[0x100]; + char ff[0x100]; + sprintf(ff, + "%s %d:" + TRANSLATE "134 93" "%s:" + , "Floor", 213, "Seed"); + sprintf( + laStrBuf, + "%s" + TRANSLATE "138 93" "%s" + TRANSLATE "138 110" "%s" + TRANSLATE "138 130" "%s" + , "The Basement", "LLRRABAB", "Continue", "End Run"); + + while (pos != strlen(laStrBuf)) { // s2d_type_print(0, 0, myS, &pos); - printf("%d %s\n",s2d_ilen(my2 + pos), my2 + pos); + printf("%d %s\n",s2d_ilen(laStrBuf + pos), laStrBuf + pos); pos++; } + pos = 0; + while (pos != strlen(ff)) { + // s2d_type_print(0, 0, myS, &pos); + printf("%d %s\n",s2d_ilen(ff + pos), ff + pos); + pos++; + } + // laStrBuf[strlen(laStrBuf)] = "\x1"; + // laStrBuf[strlen(laStrBuf)+1] = "\x1"; + // printf("%s\n", laStrBuf); // printf("%d\n", s2d_ilen(sss + 1)); } \ No newline at end of file