2.5 KiB
OdwetaLibC
I got bored with having to use complicated checking and stuff when working with files and arrays in C, so I implemented a new file_t struct which can load the contents of a file into a dynamically allocated array (yes, there is an implementation of those here as well... (vector_t struct)). The struct also stores the number of lines the file has.
Also, I managed to come up with an implementation of a kind-of-Python-like list (a vector of vectors of any type interpreted as just one vector). Quite handy, I'd say. The list_t struct is what you want to use when working with lists.
The difference between a vector_t and a list_t is that a vector can only be of one type, whereas a list can have values of any type inside it (in this context, any means types defined in this library and default types in C).
Examples of this work of art are in the /examples/ directory of this repo.
To create a project that uses this library easier, use the vendetta utility (https://gitlab.com/Odweta/vendetta), otherwise it can be difficult to link all the required libraries.
Files
What works so far:
- Reading files into a 2D vector
- Converting a file into a string
- File writing logic
- Copying a file to another file
- Moving (renaming) a file to another file
- Deleting a file
- Checking if a file exists
- Add line numbers at the beggining of each line in a file (with correct indentation)
TODO:
- Number of words in a file
- You tell me
Vectors (dynamic arrays)
What works so far:
- Dynamically allocated arrays (vectors)
- Converting a vector into a string (has to be a
charvector) - Popping the last value of a vector and returning it
- Getting and setting a value of a vector on a given index
- Pushing a value at the end of a vector
- Inserting a value into a vector at a given index
- Insertion of a vector into another vector
- Vectors of lists
- Remove a value at a given index
TODO:
- You tell me
Lists (vectors with dynamic types)
What works so far:
- Creating a list
- Pushing into a list
- Printing a list
- Popping the last value of a list
- Cleanup of a list
- Vectors inside of a list
- Inserting at a given index
- Lists of lists
- Remove at a given index
- Get/set at a given index
TODO:
- You tell me
Installation
git clone https://gitlab.com/Odweta/odwetalibc.git && cd odwetalibc && make install
Run demo
(the library has to be installed with make install)
make && ./demo