Skip to content
Snippets Groups Projects
Select Git revision
  • 6375f2e90c9de0fa1e94ea1429e5b53fadadf375
  • master default protected
  • 9.0
  • 8.0
  • 7.8
  • 7.6
  • 7.4
  • 7.2
  • 7.0
  • 0.6
  • rosuav/latex-markdown-renderer
  • rxnpatch/rxnpatch
  • marcus/gobject-introspection
  • rxnpatch/8.0
  • rosuav/pre-listening-ports
  • nt-tools
  • rosuav/async-annotations
  • rosuav/pgsql-ssl
  • rxnpatch/rxnpatch-broken/2023-10-06T094250
  • grubba/fdlib
  • grubba/wip/sakura/8.0
  • v8.0.2000
  • v8.0.1998
  • v8.0.1996
  • v8.0.1994
  • v8.0.1992
  • v8.0.1990
  • v8.0.1988
  • v8.0.1986
  • rxnpatch/clusters/8.0/2025-04-29T124414
  • rxnpatch/2025-04-29T124414
  • v8.0.1984
  • v8.0.1982
  • v8.0.1980
  • v8.0.1978
  • v8.0.1976
  • v8.0.1974
  • v8.0.1972
  • v8.0.1970
  • v8.0.1968
  • v8.0.1966
41 results

Getopt.pmod

Blame
  • Getopt.pmod 5.85 KiB
    //  startpid = (int)find_arg(argv, "s", ({ "start-script-pid" }),
    // 			     ({ "ROXEN_START_SCRIPT_PID"}));
    
    //  configuration_dir = find_arg(argv, "d", ({ "config-dir",
    //					     "configurations",
    //					     "configuration-directory" }),
    //			          ({ "ROXEN_CONFIGDIR", "CONFIGURATIONS" }),
    //			           "../configurations");
    
    
    string|int find_option(array argv,
    		       array|string shortform,
    		       array|string|void longform,
    		       array|string|void envvars,
    		       mixed|void def,
    		       int|void throw_errors)
    {
      mixed value;
      int i,hasarg;
    
      hasarg=query_num_arg() > 4;
      if(!arrayp(longform)) longform=({longform});
      if(!arrayp(shortform)) shortform=({shortform});
      if(!arrayp(envvars)) envvars=({envvars});
    
      for(i=1; i<sizeof(argv); i++)
      {
        if(argv[i] && strlen(argv[i]) > 1)
        {
          if(argv[i][0] == '-')
          {
    	if(argv[i][1] == '-')
    	{
    	  string tmp;
    	  int nf;
    
    	  if(argv[i]=="--") break;
    
    	  sscanf(tmp=argv[i], "%s=%s", tmp, value);
    	  
    	  if(search(longform, tmp[2..]) != -1)
    	  {
    	    argv[i]=0;
    	    if(hasarg)
    	    {
    	      if(!value)
    	      {
    		if(i == sizeof(argv)-1)
    		{
    		  if (throw_errors) {
    		    throw(({ "No argument to option "+tmp+".\n",
    			       backtrace() }));
    		  } else {
    		    werror("No argument to option "+tmp+".\n");
    		    exit(1);
    		  }
    		}
    		value=argv[i+1];
    		argv[i+1]=0;
    	      }
    	      return value;
    	    } else {
    	      return value || 1;
    	    }
    	  }
    	} else {
    	  int j;
    	  for(j=1;j<strlen(argv[i]);j++)
    	  {
                string opt;