about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAli Fardan <raiz@stellarbound.space>2020-10-23 18:06:05 +0300
committerAli Fardan <raiz@stellarbound.space>2020-10-23 18:06:05 +0300
commit41cee4661d176e8ff765afad0e920992aaa70853 (patch)
treed9c43405d4370de82284aa83689f306562b18e6c
parentf0c842e82a7304f75feee03bd22b9b822747deff (diff)
downloadlibgemtext-41cee4661d176e8ff765afad0e920992aaa70853.tar.gz
allow passing NULL pointer to gemtext_encode() len
-rw-r--r--Makefile1
-rw-r--r--encode.c24
-rw-r--r--gemtext_encode.34
3 files changed, 19 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index 7bc8f5d..271bc75 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,6 @@
 AR = ar
 CC = cc
 CFLAGS = -g -O0 -Wall -Wextra
-LDFLAGS = -shared
 TARGET_LIB_DYNAMIC = libgemtext.so
 TARGET_LIB_STATIC = libgemtext.a
 
diff --git a/encode.c b/encode.c
index e8674ad..ae8cba1 100644
--- a/encode.c
+++ b/encode.c
@@ -214,49 +214,57 @@ gemtext_encode(struct gemtext *line, char **text, int *len)
 		*text = _case_text(line);
 		if (*text == NULL)
 			return -1;
-		*len = strlen(*text);
+		if (len)
+			*len = strlen(*text);
 		return 0;
 	case GEMTEXT_LINK:
 		*text = _case_link(line);
 		if (*text == NULL)
 			return -1;
-		*len = strlen(*text);
+		if (len)
+			*len = strlen(*text);
 		return 0;
 	case GEMTEXT_PRE:
 		*text = _case_pre(line);
 		if (*text == NULL)
 			return -1;
-		*len = strlen(*text);
+		if (len)
+			*len = strlen(*text);
 		return 0;
 	case GEMTEXT_H1:
 		*text = _case_h1(line);
 		if (*text == NULL)
 			return -1;
-		*len = strlen(*text);
+		if (len)
+			*len = strlen(*text);
 		return 0;
 	case GEMTEXT_H2:
 		*text = _case_h2(line);
 		if (*text == NULL)
 			return -1;
-		*len = strlen(*text);
+		if (len)
+			*len = strlen(*text);
 		return 0;
 	case GEMTEXT_H3:
 		*text = _case_h3(line);
 		if (*text == NULL)
 			return -1;
-		*len = strlen(*text);
+		if (len)
+			*len = strlen(*text);
 		return 0;
 	case GEMTEXT_UL:
 		*text = _case_ul(line);
 		if (*text == NULL)
 			return -1;
-		*len = strlen(*text);
+		if (len)
+			*len = strlen(*text);
 		return 0;
 	case GEMTEXT_QT:
 		*text = _case_qt(line);
 		if (*text == NULL)
 			return -1;
-		*len = strlen(*text);
+		if (len)
+			*len = strlen(*text);
 		return 0;
 	}
 
diff --git a/gemtext_encode.3 b/gemtext_encode.3
index 6a0c2bd..a72b56e 100644
--- a/gemtext_encode.3
+++ b/gemtext_encode.3
@@ -55,7 +55,9 @@ to the encoded text and sets
 .Em int
 pointed to by
 .Em lenptr
-to the size of the encoded text excluding terminating NULL byte.
+to the size of the encoded text excluding terminating NULL byte, this can be discarded by setting
+.Em lenptr
+to NULL.
 .Pp
 Upon success, pointer set at
 .Em *textptr