Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. #ifndef _CMDARG_H
  2. #define _CMDARG_H
  3. /* cmdarg.h */
  4. /*****************************************************************************/
  5. /* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only                     */
  6. /*                                                                           */
  7. /* AS-Portierung                                                             */
  8. /*                                                                           */
  9. /* Verarbeitung Kommandozeilenparameter                                      */
  10. /*                                                                           */
  11. /* Historie:  4. 5.1996 Grundsteinlegung                                     */
  12. /*            2001-10-20: option string is pointer instead of array          */
  13. /*                                                                           */
  14. /*****************************************************************************/
  15.  
  16. #include <stddef.h>
  17. #include "stringlists.h"
  18. #include "datatypes.h"
  19.  
  20. typedef enum
  21. {
  22.   e_cmd_ok,
  23.   e_cmd_err,
  24.   e_cmd_file,
  25.   e_cmd_arg
  26. } as_cmd_result_t;
  27.  
  28. typedef as_cmd_result_t (*as_cmd_callback_t)(
  29. #ifdef __PROTOS__
  30. Boolean neg_flag, const char *p_arg
  31. #endif
  32. );
  33.  
  34. typedef struct
  35. {
  36.   const char *p_ident;
  37.   as_cmd_callback_t callback;
  38. } as_cmd_rec_t;
  39.  
  40. typedef struct
  41. {
  42.   StringList file_arg_list;
  43.   Boolean write_help_exit, write_version_exit;
  44.   char error_arg[100];
  45.   Boolean error_arg_in_env;
  46. } as_cmd_results_t;
  47.  
  48. extern void as_cmd_register(const as_cmd_rec_t *p_new_recs, size_t new_rec_cnt);
  49.  
  50. extern as_cmd_result_t as_cmd_process(int argc, char **argv,
  51.                                       const char *p_env_name,
  52.                                       as_cmd_results_t *p_results);
  53.  
  54. extern const char *as_cmdarg_get_executable_name(void);
  55.  
  56. extern void as_cmdarg_init(char *ProgPath);
  57.  
  58. #endif /* _CMDARG_H */
  59.