Skip to content
option_parser.c 915 B
Newer Older
Seblu's avatar
Seblu committed
/*
Seblu's avatar
Seblu committed
** option_parser.c for 42sh
Seblu's avatar
Seblu committed
**
** Made by Seblu
** Login   <seblu@epita.fr>
**
** Started on  Sun Jul 30 03:28:26 2006 Seblu
Seblu's avatar
Seblu committed
** Last update Wed Aug 23 18:39:19 2006 Seblu
Seblu's avatar
Seblu committed
*/

#include <stdio.h>
Seblu's avatar
Seblu committed
#include "option.h"
Seblu's avatar
Seblu committed
#include "../common/common.h"

/*!
** Parse the command line
**
** @param argc program argc
** @param argv program argv
** @param opt shell opt structure to set with options
*/
Seblu's avatar
Seblu committed
void option_parser(ts_options *opt, int argc, char **argv)
Seblu's avatar
Seblu committed
#if DEBUG_OPTION == 1
Seblu's avatar
Seblu committed
  printf("* Option Parser\n");
#endif
  if (argc == 1)
    return;
  for (int i = 1; i < argc; ++i)
    {
Seblu's avatar
Seblu committed
#if DEBUG_OPTION == 1
Seblu's avatar
Seblu committed
      printf("argv[%d]=%s\n", i, argv[i]);
#endif
      const char *copt = argv[i];
      if (*copt == '-')
	{
	  if (copt[1] == 'c')
	    {
	      opt->command = strvmerge((const char**)argv + i + 1);
Seblu's avatar
Seblu committed
#if DEBUG_OPTION == 1
Seblu's avatar
Seblu committed
	      printf("option c: %s\n", opt->command);
#endif
	      break;
	    }
	}
    }
}