contrib/chg/chg.c
changeset 28790 b0cc9652e8dc
parent 28789 7f6e0a15189b
child 28851 584e0716c7af
equal deleted inserted replaced
28789:7f6e0a15189b 28790:b0cc9652e8dc
    70 	size_t i;
    70 	size_t i;
    71 	for (i = 0; i < sizeof(flags) / sizeof(flags[0]); ++i) {
    71 	for (i = 0; i < sizeof(flags) / sizeof(flags[0]); ++i) {
    72 		size_t len = strlen(flags[i].name);
    72 		size_t len = strlen(flags[i].name);
    73 		size_t narg = flags[i].narg;
    73 		size_t narg = flags[i].narg;
    74 		if (memcmp(arg, flags[i].name, len) == 0) {
    74 		if (memcmp(arg, flags[i].name, len) == 0) {
    75 			if (arg[len] == '\0') {  /* --flag (value) */
    75 			if (arg[len] == '\0') {
       
    76 				/* --flag (value) */
    76 				return narg + 1;
    77 				return narg + 1;
    77 			} else if (arg[len] == '=' && narg > 0) {  /* --flag=value */
    78 			} else if (arg[len] == '=' && narg > 0) {
       
    79 				/* --flag=value */
    78 				return 1;
    80 				return 1;
    79 			} else if (flags[i].name[1] != '-') {  /* short flag */
    81 			} else if (flags[i].name[1] != '-') {
       
    82 				/* short flag */
    80 				return 1;
    83 				return 1;
    81 			}
    84 			}
    82 		}
    85 		}
    83 	}
    86 	}
    84 	return 0;
    87 	return 0;
   161  * explicit unlock. Will block if the lock is held by another process.
   164  * explicit unlock. Will block if the lock is held by another process.
   162  */
   165  */
   163 static void lockcmdserver(struct cmdserveropts *opts)
   166 static void lockcmdserver(struct cmdserveropts *opts)
   164 {
   167 {
   165 	if (opts->lockfd == -1) {
   168 	if (opts->lockfd == -1) {
   166 		opts->lockfd = open(opts->lockfile, O_RDWR | O_CREAT | O_NOFOLLOW, 0600);
   169 		opts->lockfd = open(opts->lockfile,
       
   170 				    O_RDWR | O_CREAT | O_NOFOLLOW, 0600);
   167 		if (opts->lockfd == -1)
   171 		if (opts->lockfd == -1)
   168 			abortmsgerrno("cannot create lock file %s",
   172 			abortmsgerrno("cannot create lock file %s",
   169 				      opts->lockfile);
   173 				      opts->lockfile);
   170 	}
   174 	}
   171 	int r = flock(opts->lockfd, LOCK_EX);
   175 	int r = flock(opts->lockfd, LOCK_EX);