This commit is contained in:
Grant Mackey 2024-04-08 05:49:34 +00:00
parent db00076108
commit 21e3ad6ce4
6 changed files with 57 additions and 14 deletions

View File

@ -58,7 +58,7 @@ APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
Copyright 2024 Jackrabbit-Labs-LLC
Copyright 2024 Jackrabbit-Founders-LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -13,16 +13,16 @@
# ******************************************************************************
CC=gcc
CFLAGS= -g3 -O0 -Wall -Wextra
MACROS=
INCLUDE_DIR=/usr/local/include
LIB_DIR=/usr/local/lib
CFLAGS?= -g3 -O0 -Wall -Wextra
MACROS?=
INCLUDE_DIR?=/usr/local/include
LIB_DIR?=/usr/local/lib
INCLUDE_PATH=-I $(INCLUDE_DIR) -I /usr/include/glib-2.0 -I /usr/lib/`uname -m`-linux-gnu/glib-2.0/include/
LIB_PATH=-L $(LIB_DIR)
LIBS=-l yaml -l glib-2.0
TARGET=yamlloader
all: testbench lib$(TARGET).a
all: lib$(TARGET).a
testbench: testbench.c main.o
$(CC) $^ $(CFLAGS) $(MACROS) $(INCLUDE_PATH) $(LIB_PATH) $(LIBS) -o $@
@ -43,7 +43,11 @@ install: lib$(TARGET).a
sudo cp lib$(TARGET).a $(LIB_DIR)/
sudo cp main.h $(INCLUDE_DIR)/$(TARGET).h
.PHONY: all clean doc install
uninstall:
sudo rm $(LIB_DIR)/lib$(TARGET).a
sudo rm $(INCLUDE_DIR)/$(TARGET).h
.PHONY: all clean doc install uninstall
# Variables
# $^ Will expand to be all the sensitivity list

View File

@ -1,2 +1,40 @@
# yaml_loader-release
# Overview
This is a C library that provides a parsing facility to load a config file in
YAML format into a GLib Hash Table.
# Supported Operating System Versions
- Ubuntu 23.10
- Fedora 38, 39
# Building
1. Install OS libraries
Install the following build packages to compile the software on the following
operating systems.
**Ubuntu:**
```bash
apt install build-essential libglib2.0-dev libyaml-dev
```
**Fedora:**
```bash
```
2. Build Dependencies
This library does not depend upon any other non-os provided library.
3. Build
To build, simply run
```bash
make
```

9
main.c
View File

@ -238,12 +238,13 @@ int yl_print(GHashTable *ht)
/**
* Print an individual entry in the GHashTable
*/
GHFunc _yl_print_entry(gpointer key, gpointer value, gpointer user_data)
void _yl_print_entry(gpointer key, gpointer value, gpointer user_data)
{
int i, indent;
int i;
__u64 indent;
yl_obj_t *ylo;
indent = (int) user_data;
indent = (__u64) user_data;
ylo = (yl_obj_t*) value;
// Print the indent spaces
@ -255,7 +256,7 @@ GHFunc _yl_print_entry(gpointer key, gpointer value, gpointer user_data)
}
else {
printf("%s:\n", (char*) key);
g_hash_table_foreach(ylo->ht, _yl_print_entry, indent+2);
g_hash_table_foreach(ylo->ht, _yl_print_entry, (void*)(indent+2));
}
}

2
main.h
View File

@ -39,6 +39,6 @@ typedef struct yl_obj
GHashTable *yl_load(char *filename);
int yl_free(GHashTable *ht);
int yl_print(GHashTable *ht);
GHFunc _yl_print_entry(gpointer key, gpointer value, gpointer user_data);
void _yl_print_entry(gpointer key, gpointer value, gpointer user_data);
#endif //ifndef _YAMLLOADER_H

View File

@ -19,7 +19,7 @@
#include <glib-2.0/glib.h>
#include "yamlloader.h"
#include "main.h"
/* MACROS ====================================================================*/