summaryrefslogtreecommitdiff
path: root/deps/node/deps/icu-small/source/tools/toolutil/uoptions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/icu-small/source/tools/toolutil/uoptions.cpp')
-rw-r--r--deps/node/deps/icu-small/source/tools/toolutil/uoptions.cpp133
1 files changed, 0 insertions, 133 deletions
diff --git a/deps/node/deps/icu-small/source/tools/toolutil/uoptions.cpp b/deps/node/deps/icu-small/source/tools/toolutil/uoptions.cpp
deleted file mode 100644
index 53a77bcc..00000000
--- a/deps/node/deps/icu-small/source/tools/toolutil/uoptions.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-*
-* Copyright (C) 2000-2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*
-*******************************************************************************
-* file name: uoptions.c
-* encoding: UTF-8
-* tab size: 8 (not used)
-* indentation:4
-*
-* created on: 2000apr17
-* created by: Markus W. Scherer
-*
-* This file provides a command line argument parser.
-*/
-
-#include "unicode/utypes.h"
-#include "cstring.h"
-#include "uoptions.h"
-
-U_CAPI int U_EXPORT2
-u_parseArgs(int argc, char* argv[],
- int optionCount, UOption options[]) {
- char *arg;
- int i=1, remaining=1;
- char c, stopOptions=0;
-
- while(i<argc) {
- arg=argv[i];
- if(!stopOptions && *arg=='-' && (c=arg[1])!=0) {
- /* process an option */
- UOption *option=NULL;
- arg+=2;
- if(c=='-') {
- /* process a long option */
- if(*arg==0) {
- /* stop processing options after "--" */
- stopOptions=1;
- } else {
- /* search for the option string */
- int j;
- for(j=0; j<optionCount; ++j) {
- if(options[j].longName && uprv_strcmp(arg, options[j].longName)==0) {
- option=options+j;
- break;
- }
- }
- if(option==NULL) {
- /* no option matches */
- return -i;
- }
- option->doesOccur=1;
-
- if(option->hasArg!=UOPT_NO_ARG) {
- /* parse the argument for the option, if any */
- if(i+1<argc && !(argv[i+1][0]=='-' && argv[i+1][1]!=0)) {
- /* argument in the next argv[], and there is not an option in there */
- option->value=argv[++i];
- } else if(option->hasArg==UOPT_REQUIRES_ARG) {
- /* there is no argument, but one is required: return with error */
- option->doesOccur=0;
- return -i;
- }
- }
-
- if(option->optionFn!=NULL && option->optionFn(option->context, option)<0) {
- /* the option function was called and returned an error */
- option->doesOccur=0;
- return -i;
- }
- }
- } else {
- /* process one or more short options */
- do {
- /* search for the option letter */
- int j;
- for(j=0; j<optionCount; ++j) {
- if(c==options[j].shortName) {
- option=options+j;
- break;
- }
- }
- if(option==NULL) {
- /* no option matches */
- return -i;
- }
- option->doesOccur=1;
-
- if(option->hasArg!=UOPT_NO_ARG) {
- /* parse the argument for the option, if any */
- if(*arg!=0) {
- /* argument following in the same argv[] */
- option->value=arg;
- /* do not process the rest of this arg as option letters */
- break;
- } else if(i+1<argc && !(argv[i+1][0]=='-' && argv[i+1][1]!=0)) {
- /* argument in the next argv[], and there is not an option in there */
- option->value=argv[++i];
- /* this break is redundant because we know that *arg==0 */
- break;
- } else if(option->hasArg==UOPT_REQUIRES_ARG) {
- /* there is no argument, but one is required: return with error */
- option->doesOccur=0;
- return -i;
- }
- }
-
- if(option->optionFn!=NULL && option->optionFn(option->context, option)<0) {
- /* the option function was called and returned an error */
- option->doesOccur=0;
- return -i;
- }
-
- /* get the next option letter */
- option=NULL;
- c=*arg++;
- } while(c!=0);
- }
-
- /* go to next argv[] */
- ++i;
- } else {
- /* move a non-option up in argv[] */
- argv[remaining++]=arg;
- ++i;
- }
- }
- return remaining;
-}