/*
 *
 *  Copyright (C) 2024-2025  Yurii Yakubin (yurii.yakubin@gmail.com)
 *
 */

#ifndef _GETOPT_H
#define _GETOPT_H

#include <bits/getopt.h>

#ifdef __cplusplus
extern "C" {
#endif

struct option {
  const char* name;
  int has_arg;
  int* flag;
  int val;
};

#define no_argument       0
#define required_argument 1
#define optional_argument 2

int getopt_long(int argc, char* const* argv, const char* optstring, const struct option* longopts, int* longindex);
int getopt_long_only(int argc, char* const* argv, const char* optstring, const struct option* longopts, int* longindex);

#ifdef __cplusplus
}
#endif

#endif /* _GETOPT_H */
