فهرست منبع

misc: expstring.h: add ExpString_AppendByte()

ambrop7 14 سال پیش
والد
کامیت
402e397f13
1فایلهای تغییر یافته به همراه16 افزوده شده و 0 حذف شده
  1. 16 0
      misc/expstring.h

+ 16 - 0
misc/expstring.h

@@ -45,6 +45,7 @@ static int ExpString_Init (ExpString *c);
 static void ExpString_Free (ExpString *c);
 static int ExpString_Append (ExpString *c, const char *str);
 static int ExpString_AppendChar (ExpString *c, char ch);
+static int ExpString_AppendByte (ExpString *c, uint8_t x);
 static int ExpString_AppendBinary (ExpString *c, const uint8_t *data, size_t len);
 static int ExpString_AppendZeros (ExpString *c, size_t len);
 static char * ExpString_Get (ExpString *c);
@@ -102,6 +103,21 @@ int ExpString_AppendChar (ExpString *c, char ch)
     return 1;
 }
 
+int ExpString_AppendByte (ExpString *c, uint8_t x)
+{
+    bsize_t newsize = bsize_add(bsize_fromsize(c->n), bsize_fromint(2));
+    
+    if (newsize.is_overflow || !ExpArray_resize(&c->arr, newsize.value)) {
+        return 0;
+    }
+    
+    ((uint8_t *)c->arr.v)[c->n] = x;
+    c->n++;
+    ((char *)c->arr.v)[c->n] = '\0';
+    
+    return 1;
+}
+
 int ExpString_AppendBinary (ExpString *c, const uint8_t *data, size_t len)
 {
     bsize_t newsize = bsize_add(bsize_fromsize(c->n), bsize_add(bsize_fromsize(len), bsize_fromint(1)));