diff --git a/array-create/main.c b/array-create/main.c new file mode 100644 index 0000000..6b5c102 --- /dev/null +++ b/array-create/main.c @@ -0,0 +1,25 @@ +#include + +int main(int argc, char *argv[]) { + fprintf(stdout,"main() Started...\n"); + + json_t *array, *integer1, *integer2; + size_t size; + + array = json_array(); + + integer1 = json_integer(42); + integer2 = json_integer(23); + + json_array_append(array, integer1); + json_array_append(array, integer2); + + json_decref(integer1); + json_decref(integer2); + + size = json_array_size(array); + + fprintf(stdout,"main() size: %ld\n", size); + fprintf(stdout,"main() Done.\n"); + return 0; +} diff --git a/array-create/makefile b/array-create/makefile new file mode 100644 index 0000000..8fed1b4 --- /dev/null +++ b/array-create/makefile @@ -0,0 +1,24 @@ +# Docu +# +#$@ is the name of the file to be made +#$? is the names of the changed dependents +#$< the name of the related file that caused the action +#$* the prefix shared by target and dependent files +# +# Others +RM = /bin/rm -f +# +# Source, Executable, Includes, Library Defines +EXE = main +# +# Compiler, Linker Defines +CC = /usr/bin/gcc +# +all: main.o + $(CC) main.c -L/usr/lib/x86_64-linux-gnu -ljansson -Wall -o $(EXE) +# +main.o: + $(CC) -c main.c +# Clean Up Objects, Exectuables, Dumps out of source directory +clean: + $(RM) *.o $(EXE) *~ diff --git a/array-create/readme.md b/array-create/readme.md new file mode 100644 index 0000000..f0c3946 --- /dev/null +++ b/array-create/readme.md @@ -0,0 +1,17 @@ +* build + +``` +make clean all +``` + +* cleanup + +``` +make clean +``` + +* run + +``` +./main +``` diff --git a/github-commits/main.c b/github-commits/main.c index c020f46..bf35b21 100644 --- a/github-commits/main.c +++ b/github-commits/main.c @@ -125,6 +125,7 @@ int main(int argc, char *argv[]) { if (!text) return 1; + /*decode the JSON text we got as a response*/ root = json_loads(text, 0, &error); free(text); @@ -143,7 +144,10 @@ int main(int argc, char *argv[]) { json_t *data, *sha, *commit, *message; const char *message_text; + /*get i'th element of the 'root' array*/ data = json_array_get(root, i); + + /*Is 'data' a JSON object?*/ if (!json_is_object(data)) { fprintf(stderr, "error: commit data %d is not an object\n", (int)(i + 1)); json_decref(root); @@ -170,11 +174,14 @@ int main(int argc, char *argv[]) { return 1; } + /*extract C-style string from a JSON string*/ message_text = json_string_value(message); printf("%.8s %.*s\n", json_string_value(sha), newline_offset(message_text), message_text); } + /*decrease the reference count*/ + /*this way the recource is released*/ json_decref(root); return 0; }