Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ulises-jeremias/simple-parse

Simple, stupid and portable C argument (argv) parser.
https://github.com/ulises-jeremias/simple-parse

Last synced: 20 days ago
JSON representation

Simple, stupid and portable C argument (argv) parser.

Awesome Lists containing this project

README

        

# simple-parse

Mac OS and |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Travis CI: [![Build Status](https://travis-ci.org/ulises-jeremias/simple-parse.svg?branch=master)](https://travis-ci.org/ulises-jeremias/simple-parse) | AppVeyor: [![Build status](https://ci.appveyor.com/api/projects/status/mpc8xk0odl5er0lk/branch/master?svg=true)](https://ci.appveyor.com/project/ulises-jeremias/simple-parse/branch/master)

Simple, stupid and portable C argument (argv) parser. SParse is inspired by [cargo](https://github.com/funlibs/cargo). The idea is to expand the functionalities that this library offers, reimplement them and add new ones.

## Build

Just include sparse.h to your project.

SParse tests are built with CMake for all platforms. You can also use the fake configure script provided to set it up on unix:

```sh
$ ./configure
$ make
```

## Example

To handle the following program arguments:

```sh
./myprog --flag1 --flag2= --flag3=hello --flag4="Hello world"
```

You could write this:

```c
#include
#include

int main(int argc, char* argv[])
{
char *f1 = sparse_flag("flag1", "FALSE", argc, argv); /* f1 = "TRUE" */
char *f2 = sparse_flag("flag2", "defaultval", argc, argv); /* f2 = "" */
char *f3 = sparse_flag("flag3", "bye", argc, argv); /* f3 = "hello" */
char *f4 = sparse_flag("flag4", "Bye world", argc, argv); /* f4 = "Hello world" */
char *f5 = sparse_flag("flag5", "default", argc, argv); /* f5 = "default" */
char *f6 = sparse_flag("flag6", "FALSE", argc, argv); /* f6 = "FALSE" */

return 0;
}
```