updates
- bump libtomcrypt - SetFile -a "support" - Date command.
This commit is contained in:
parent
58c8cb758e
commit
77d807fbf9
|
@ -0,0 +1,152 @@
|
|||
|
||||
#ifdef __ORCAC__
|
||||
#pragma optimize 79
|
||||
#pragma noroot
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "Date-flags.h"
|
||||
|
||||
void FlagsHelp(void)
|
||||
{
|
||||
fputs("Date [options]\n", stdout);
|
||||
fputs("-a abbreviated date (e.g. Wed, Jun 14, 1995)\n", stdout);
|
||||
fputs("-s short date (e.g. 6/14/95)\n", stdout);
|
||||
fputs("-s4 short date, using 4-digit year (e.g. 6/14/1995)\n", stdout);
|
||||
fputs("-u uniform output format, \1YYYY-MM-DD HH:MM:SS\1\n", stdout);
|
||||
fputs("-st omit seconds from time format\n", stdout);
|
||||
fputs("-d write date only\n", stdout);
|
||||
fputs("-t write time only\n", stdout);
|
||||
fputs("-c seconds write date corresponding to seconds\n", stdout);
|
||||
fputs("-x date write seconds corresponding to date\n", stdout);
|
||||
fputs("-n write seconds since January 1, 1904\n", stdout);
|
||||
fputs("-utc write output converted to Universal Time Coordinates\n", stdout);
|
||||
fputs("\n", stdout);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
struct Flags flags;
|
||||
int FlagsParse(int argc, char **argv)
|
||||
{
|
||||
char *cp;
|
||||
char *optarg;
|
||||
|
||||
char c;
|
||||
int i;
|
||||
int j;
|
||||
int eof; // end-of-flags
|
||||
int mindex; // mutation index.
|
||||
|
||||
memset(&flags, 0, sizeof(flags));
|
||||
|
||||
for (i = 1, mindex = 1, eof = 0; i < argc; ++i) {
|
||||
cp = argv[i];
|
||||
c = cp[0];
|
||||
|
||||
if (c != '-' || eof) {
|
||||
if (i != mindex) argv[mindex] = argv[i];
|
||||
mindex++;
|
||||
continue;
|
||||
}
|
||||
|
||||
// -- = end of options.
|
||||
if (cp[1] == '-' && cp[2] == 0) {
|
||||
eof = 1;
|
||||
continue;
|
||||
}
|
||||
if (!strcasecmp("s4", cp+1)) {
|
||||
flags._s4 = 1;
|
||||
continue;
|
||||
}
|
||||
if (!strcasecmp("st", cp+1)) {
|
||||
flags._st = 1;
|
||||
continue;
|
||||
}
|
||||
if (!strcasecmp("utc", cp+1)) {
|
||||
flags._utc = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
// now scan all the flags in the string...
|
||||
optarg = NULL;
|
||||
for (j = 1; ; ++j) {
|
||||
c = cp[j];
|
||||
if (c == 0) break;
|
||||
|
||||
switch (c) {
|
||||
case 'h':
|
||||
FlagsHelp();
|
||||
exit(0);
|
||||
case 'a':
|
||||
case 'A':
|
||||
flags._a = 1;
|
||||
break;
|
||||
case 'c':
|
||||
case 'C':
|
||||
// -xarg or -x arg
|
||||
++j;
|
||||
if (cp[j]) {
|
||||
optarg = cp + j;
|
||||
}
|
||||
else {
|
||||
if (++i >= argc) {
|
||||
fputs("### Date - \"-c\" requires an argument.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
optarg = argv[i];
|
||||
}
|
||||
flags._c = optarg;
|
||||
|
||||
break;
|
||||
case 'd':
|
||||
case 'D':
|
||||
flags._d = 1;
|
||||
break;
|
||||
case 'n':
|
||||
case 'N':
|
||||
flags._n = 1;
|
||||
break;
|
||||
case 's':
|
||||
case 'S':
|
||||
flags._s = 1;
|
||||
break;
|
||||
case 't':
|
||||
case 'T':
|
||||
flags._t = 1;
|
||||
break;
|
||||
case 'u':
|
||||
case 'U':
|
||||
flags._u = 1;
|
||||
break;
|
||||
case 'x':
|
||||
case 'X':
|
||||
// -xarg or -x arg
|
||||
++j;
|
||||
if (cp[j]) {
|
||||
optarg = cp + j;
|
||||
}
|
||||
else {
|
||||
if (++i >= argc) {
|
||||
fputs("### Date - \"-x\" requires an argument.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
optarg = argv[i];
|
||||
}
|
||||
flags._x = optarg;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "### Date - \"-%c\" is not an option.\n", c);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (optarg) break;
|
||||
}
|
||||
}
|
||||
|
||||
return mindex;
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
#ifndef __flags_h__
|
||||
#define __flags_h__
|
||||
|
||||
typedef struct Flags {
|
||||
char *_c;
|
||||
char *_x;
|
||||
|
||||
unsigned _a:1;
|
||||
unsigned _d:1;
|
||||
unsigned _n:1;
|
||||
unsigned _s:1;
|
||||
unsigned _s4:1;
|
||||
unsigned _st:1;
|
||||
unsigned _t:1;
|
||||
unsigned _u:1;
|
||||
unsigned _utc:1;
|
||||
|
||||
} Flags;
|
||||
|
||||
|
||||
extern struct Flags flags;
|
||||
|
||||
int FlagsParse(int argc, char **argv);
|
||||
|
||||
void FlagsHelp(void);
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
case_insensitive: true
|
||||
name: Date
|
||||
options:
|
||||
- a
|
||||
- c: { argument : true }
|
||||
- d
|
||||
- n
|
||||
- s
|
||||
- s4
|
||||
- st
|
||||
- t
|
||||
- u
|
||||
- utc
|
||||
- x: { argument : true }
|
||||
help:
|
||||
- Date [options]
|
||||
- -a abbreviated date (e.g. Wed, Jun 14, 1995)
|
||||
- -s short date (e.g. 6/14/95)
|
||||
- -s4 short date, using 4-digit year (e.g. 6/14/1995)
|
||||
- -u uniform output format, "YYYY-MM-DD HH:MM:SS"
|
||||
- -st omit seconds from time format
|
||||
- -d write date only
|
||||
- -t write time only
|
||||
- -c seconds write date corresponding to seconds
|
||||
- -x date write seconds corresponding to date
|
||||
- -n write seconds since January 1, 1904
|
||||
- -utc write output converted to Universal Time Coordinates
|
|
@ -0,0 +1,146 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <DateTimeUtils.h>
|
||||
#include "Date-flags.h"
|
||||
|
||||
/*
|
||||
|
||||
Date # write the date and time
|
||||
Date ([-a | -s | -s4 | -u] [-st] [-d | -t] [-c seconds | -utc]) | ([-n] [-utc]) | [-x date] > date
|
||||
-a # abbreviated date (e.g. Wed, Jun 14, 1995)
|
||||
-s # short date (e.g. 6/14/95)
|
||||
-s4 # short date, using 4-digit year (e.g. 6/14/1995)
|
||||
-u # uniform output format, "YYYY◊MM◊DD HH:MM:SS"
|
||||
-st # omit seconds from time format
|
||||
-d # write date only
|
||||
-t # write time only
|
||||
-c seconds # write date corresponding to seconds
|
||||
-x date # write seconds corresponding to date
|
||||
-n # write seconds since January 1, 1904
|
||||
-utc # write output converted to Universal Time Coordinates
|
||||
|
||||
*/
|
||||
|
||||
void conflict(void) {
|
||||
fprintf(stderr, "### Date - Conflicting options were specified.\n");
|
||||
FlagsHelp();
|
||||
exit(1);
|
||||
}
|
||||
unsigned long parse_seconds(const char *cp) {
|
||||
unsigned long rv;
|
||||
char *end = NULL;
|
||||
|
||||
rv = strtoul(cp, &end, 10);
|
||||
if (!end || *end) {
|
||||
fprintf(stderr, "### Date - illegal number, %s, specified with the \"-c\" option\n", cp);
|
||||
exit(1);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
unsigned long parse_date(const char *cp) {
|
||||
|
||||
/* easter egg? bug? return 42316544 on bad input
|
||||
accepts mm/dd/yy hh:mm:ss
|
||||
accepts yyyy-mm-dd hh:mm:ss as well,
|
||||
but option-shift-v diamond instead of -
|
||||
*/
|
||||
// should use StringToDate, StringToTime....
|
||||
|
||||
fputs("### Date -x not supported (yet)\n", stderr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
unsigned type = 0;
|
||||
unsigned long now;
|
||||
DateForm df = longDate;
|
||||
unsigned i;
|
||||
|
||||
unsigned char ds[256+1];
|
||||
unsigned char ts[256+1];
|
||||
const char *sep;
|
||||
|
||||
|
||||
argc = FlagsParse(argc, argv);
|
||||
|
||||
if (argc > 1) {
|
||||
fputs("### Date - Too many parameters were specified.\n", stderr);
|
||||
FlagsHelp();
|
||||
return 1;
|
||||
}
|
||||
|
||||
// ([-a | -s | -s4 | -u] [-st] [-d | -t] [-c seconds | -utc])
|
||||
// ([-n] [-utc])
|
||||
// [-x date]
|
||||
if (flags._a + flags._s + flags._s4 + flags._u > 1) conflict();
|
||||
if (flags._d + flags._t > 1) conflict();
|
||||
if (flags._c && flags._utc) conflict();
|
||||
if (flags._utc + flags._n > 1) conflict();
|
||||
// utc allowed in 1 or 2, not 3.
|
||||
if (flags._utc && flags._x) conflict();
|
||||
|
||||
type = 0;
|
||||
if (flags._a | flags._s | flags._s4 | flags._u | flags._st | flags._d | flags._t)
|
||||
type |= 1;
|
||||
if (flags._c) type |= 1;
|
||||
if (flags._n) type |= 2;
|
||||
if (flags._x) type |= 4;
|
||||
|
||||
switch(type) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
break;
|
||||
default:
|
||||
conflict();
|
||||
}
|
||||
|
||||
if (flags._x) {
|
||||
printf("%lu", parse_date(flags._x));
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (flags._c) {
|
||||
now = parse_seconds(flags._c);
|
||||
} else {
|
||||
ReadDateTime(&now);
|
||||
}
|
||||
|
||||
if (flags._n) {
|
||||
/* just print seconds */
|
||||
printf("%lu\n", now);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (flags._u) {
|
||||
/* uniform format .... */
|
||||
}
|
||||
|
||||
if (flags._a) df = abbrevDate;
|
||||
if (flags._s) df = shortDate;
|
||||
|
||||
// SecondsToDate(now, &dt);
|
||||
|
||||
IUDateString(now, df, ds);
|
||||
IUTimeString(now, flags._st ? 0 : 1, ts);
|
||||
|
||||
|
||||
i = ds[0];
|
||||
if (flags._t) i = 0;
|
||||
ds[i+1] = 0;
|
||||
|
||||
i = ts[0];
|
||||
if (flags._d) i = 0;
|
||||
ts[i+1] = 0;
|
||||
|
||||
if (flags._d | flags._t) sep = "";
|
||||
else sep = " ";
|
||||
|
||||
printf("%s%s%s\n", ds+1, sep, ts+1);
|
||||
|
||||
return 0;
|
||||
}
|
2
Rename.c
2
Rename.c
|
@ -91,7 +91,7 @@ int do_rename(const unsigned char *src, const unsigned char *dest) {
|
|||
fprintf(stderr, "# %s\n", GetSysErrText(err, error_message));
|
||||
return 2;
|
||||
}
|
||||
err = Rename((const unsigned char *)src, 0, (const unsigned char *)dest);
|
||||
err = HRename(0, 0, src, dest);
|
||||
if (err) {
|
||||
fprintf(stderr, "### Rename - unable to rename %s to %s\n", src+1, dest+1);
|
||||
fprintf(stderr, "# %s\n", GetSysErrText(err, error_message));
|
||||
|
|
|
@ -33,49 +33,41 @@ int FlagsParse(int argc, char **argv)
|
|||
|
||||
memset(&flags, 0, sizeof(flags));
|
||||
|
||||
for (i = 1, mindex = 1, eof = 0; i < argc; ++i)
|
||||
{
|
||||
for (i = 1, mindex = 1, eof = 0; i < argc; ++i) {
|
||||
cp = argv[i];
|
||||
c = cp[0];
|
||||
|
||||
if (c != '-' || eof)
|
||||
{
|
||||
|
||||
if (c != '-' || eof) {
|
||||
if (i != mindex) argv[mindex] = argv[i];
|
||||
mindex++;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// -- = end of options.
|
||||
if (cp[1] == '-' && cp[2] == 0)
|
||||
{
|
||||
if (cp[1] == '-' && cp[2] == 0) {
|
||||
eof = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// now scan all the flags in the string...
|
||||
optarg = NULL;
|
||||
for (j = 1; ; ++j)
|
||||
{
|
||||
for (j = 1; ; ++j) {
|
||||
c = cp[j];
|
||||
if (c == 0) break;
|
||||
|
||||
switch (c)
|
||||
{
|
||||
|
||||
switch (c) {
|
||||
case 'h':
|
||||
FlagsHelp();
|
||||
break;
|
||||
exit(0);
|
||||
case 'c':
|
||||
// -xarg or -x arg
|
||||
++j;
|
||||
if (cp[j])
|
||||
{
|
||||
++j;
|
||||
if (cp[j]) {
|
||||
optarg = cp + j;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (++i >= argc)
|
||||
{
|
||||
fputs("option requires an argument -- c\n", stderr);
|
||||
else {
|
||||
if (++i >= argc) {
|
||||
fputs("### - \"-c\" requires an argument.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
optarg = argv[i];
|
||||
|
@ -85,16 +77,13 @@ int FlagsParse(int argc, char **argv)
|
|||
break;
|
||||
case 't':
|
||||
// -xarg or -x arg
|
||||
++j;
|
||||
if (cp[j])
|
||||
{
|
||||
++j;
|
||||
if (cp[j]) {
|
||||
optarg = cp + j;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (++i >= argc)
|
||||
{
|
||||
fputs("option requires an argument -- t\n", stderr);
|
||||
else {
|
||||
if (++i >= argc) {
|
||||
fputs("### - \"-t\" requires an argument.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
optarg = argv[i];
|
||||
|
@ -104,31 +93,44 @@ int FlagsParse(int argc, char **argv)
|
|||
break;
|
||||
case 'm':
|
||||
// -xarg or -x arg
|
||||
++j;
|
||||
if (cp[j])
|
||||
{
|
||||
++j;
|
||||
if (cp[j]) {
|
||||
optarg = cp + j;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (++i >= argc)
|
||||
{
|
||||
fputs("option requires an argument -- m\n", stderr);
|
||||
else {
|
||||
if (++i >= argc) {
|
||||
fputs("### - \"-m\" requires an argument.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
optarg = argv[i];
|
||||
}
|
||||
flags._m = optarg;
|
||||
|
||||
break;
|
||||
case 'a':
|
||||
// -xarg or -x arg
|
||||
++j;
|
||||
if (cp[j]) {
|
||||
optarg = cp + j;
|
||||
}
|
||||
else {
|
||||
if (++i >= argc) {
|
||||
fputs("### - \"-a\" requires an argument.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
optarg = argv[i];
|
||||
}
|
||||
flags._a = optarg;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "illegal option -- %c\n", c);
|
||||
exit(1);
|
||||
fprintf(stderr, "### - \"-%c\" is not an option.\n", c);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
if (optarg) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return mindex;
|
||||
|
|
|
@ -6,6 +6,7 @@ typedef struct Flags {
|
|||
char *_c;
|
||||
char *_t;
|
||||
char *_m;
|
||||
char *_a;
|
||||
|
||||
|
||||
} Flags;
|
||||
|
|
30
SetFile.c
30
SetFile.c
|
@ -98,7 +98,6 @@ int main(int argc, char **argv)
|
|||
{
|
||||
|
||||
FInfo newFI;
|
||||
int optind;
|
||||
int ok;
|
||||
int i;
|
||||
|
||||
|
@ -161,6 +160,35 @@ int main(int argc, char **argv)
|
|||
|
||||
if (flags._t) fi.fdType = newFI.fdType;
|
||||
if (flags._c) fi.fdCreator = newFI.fdCreator;
|
||||
if (flags._a) {
|
||||
char *cp = flags._a;
|
||||
while (*cp) {
|
||||
static char *attr = "AaVvBbSsTtCcOoLlIiNnMmWwDd";
|
||||
int offset;
|
||||
char *pos;
|
||||
char c = *cp++;
|
||||
pos = strchr(attr, c);
|
||||
if (pos == NULL) {
|
||||
fprintf(stderr, "SetFile: %c is not a valid flag letter\n", c);
|
||||
exit(1);
|
||||
}
|
||||
offset = (int)(pos - attr);
|
||||
switch(offset) {
|
||||
case 2: // 'V'
|
||||
fi.fdFlags |= fInvisible;
|
||||
break;
|
||||
case 3: // 'v'
|
||||
fi.fdFlags &= ~fInvisible;
|
||||
break;
|
||||
case 4: // 'B'
|
||||
fi.fdFlags |= fHasBundle;
|
||||
break;
|
||||
case 5: // 'b'
|
||||
fi.fdFlags &= ~fHasBundle;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ok = SetFInfo((unsigned char *)buffer, 0, &fi);
|
||||
if (ok != 0)
|
||||
|
|
104
flags.rb
104
flags.rb
|
@ -75,6 +75,7 @@ class Option
|
|||
|
||||
@char = hash['char'].to_s
|
||||
@argument = hash['argument'] || false
|
||||
@ignore = hash['ignore'] || false
|
||||
|
||||
@flag_name = hash['flag_name']
|
||||
@flag_name = @flag_name.to_s if @flag_name
|
||||
|
@ -89,18 +90,32 @@ class Option
|
|||
raise "Invalid xor type: #{@xor}"
|
||||
end
|
||||
|
||||
@long = @char.length > 1
|
||||
|
||||
@xor.map! { |x| x.to_s }
|
||||
end
|
||||
|
||||
attr_reader :char, :xor, :argument
|
||||
attr_reader :char, :xor, :argument, :long
|
||||
|
||||
def flag_name
|
||||
return @flag_name if @flag_name
|
||||
return self.class.flag_name(@char)
|
||||
end
|
||||
|
||||
def field_type
|
||||
return :optarg if @argument
|
||||
return :null if @ignore
|
||||
return :bit
|
||||
end
|
||||
|
||||
def self.flag_name(char)
|
||||
return '_' + @@map[char] if @@map[char]
|
||||
if char.length > 1
|
||||
name = char
|
||||
name = '_' + name.gsub(/[^A-Za-z0-9_]/, '_')
|
||||
name = name.gsub('/_+/', '_')
|
||||
return name
|
||||
end
|
||||
return '_' + @@map[char] if @@map[char]
|
||||
return '_' + char
|
||||
end
|
||||
|
||||
|
@ -108,14 +123,14 @@ class Option
|
|||
end
|
||||
|
||||
# better ARGF.
|
||||
def argf_each
|
||||
def argf_each
|
||||
|
||||
if ARGV.count > 0
|
||||
|
||||
ARGV.each {|file|
|
||||
|
||||
File.open(file, "r") {|io|
|
||||
yield file, io
|
||||
File.open(file, "r") {|io|
|
||||
yield file, io
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,15 +188,13 @@ argf_each {|filename, file|
|
|||
else
|
||||
raise "Unexpected data type: #{opt}"
|
||||
end
|
||||
|
||||
opt['char'] = opt['char'].downcase if case_insensitive
|
||||
Option.new(opt)
|
||||
}
|
||||
|
||||
if case_insensitive
|
||||
options.each {|opt|
|
||||
opt.char.downcase!
|
||||
}
|
||||
end
|
||||
|
||||
long_options = options.select {|opt| opt.long }
|
||||
long_options = long_options
|
||||
|
||||
#data[options] = options
|
||||
# check for help?
|
||||
|
@ -203,13 +216,13 @@ argf_each {|filename, file|
|
|||
io.write(header_preamble)
|
||||
# two passes - one with arguments, one without.
|
||||
options.each {|opt|
|
||||
if opt.argument
|
||||
if opt.field_type == :optarg
|
||||
io.printf(" char *%s;\n", opt.flag_name)
|
||||
end
|
||||
}
|
||||
io.puts()
|
||||
options.each {|opt|
|
||||
if !opt.argument
|
||||
if opt.field_type == :bit
|
||||
io.printf(" unsigned %s:1;\n", opt.flag_name)
|
||||
end
|
||||
}
|
||||
|
@ -219,6 +232,7 @@ argf_each {|filename, file|
|
|||
io.close unless io == $stdout
|
||||
|
||||
|
||||
|
||||
# #puts options.to_yaml
|
||||
# puts code.result(binding())
|
||||
|
||||
|
@ -261,41 +275,54 @@ int FlagsParse(int argc, char **argv)
|
|||
|
||||
memset(&flags, 0, sizeof(flags));
|
||||
|
||||
for (i = 1, mindex = 1, eof = 0; i < argc; ++i)
|
||||
{
|
||||
for (i = 1, mindex = 1, eof = 0; i < argc; ++i) {
|
||||
cp = argv[i];
|
||||
c = cp[0];
|
||||
|
||||
if (c != '-' || eof)
|
||||
{
|
||||
|
||||
if (c != '-' || eof) {
|
||||
if (i != mindex) argv[mindex] = argv[i];
|
||||
mindex++;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// -- = end of options.
|
||||
if (cp[1] == '-' && cp[2] == 0)
|
||||
{
|
||||
if (cp[1] == '-' && cp[2] == 0) {
|
||||
eof = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
% long_options.each do |opt|
|
||||
% flag_name = 'flags.' + opt.flag_name
|
||||
% strcmp = case_insensitive ? 'strcasecmp' : 'strcmp'
|
||||
if (!<%= strcmp %>("<%= opt.char %>", cp+1)) {
|
||||
% case opt.field_type
|
||||
% when :optarg
|
||||
if (++i >= argc) {
|
||||
fputs("### <%= name %> - \"-<%= opt.char %>\" requires an argument.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
<%= flag_name %> = argv[i];
|
||||
% when :bit
|
||||
<%= flag_name %> = 1;
|
||||
% end
|
||||
continue;
|
||||
}
|
||||
% end
|
||||
|
||||
// now scan all the flags in the string...
|
||||
optarg = NULL;
|
||||
for (j = 1; ; ++j)
|
||||
{
|
||||
for (j = 1; ; ++j) {
|
||||
c = cp[j];
|
||||
if (c == 0) break;
|
||||
|
||||
switch (c)
|
||||
{
|
||||
% if help && !options.find_index {|x| x.char == 'h' }
|
||||
|
||||
switch (c) {
|
||||
% if help && !options.find_index {|x| x.char == 'h' }
|
||||
case 'h':
|
||||
FlagsHelp();
|
||||
exit(0);
|
||||
% end
|
||||
% end
|
||||
% #
|
||||
% options.each do |opt|
|
||||
% next if opt.long
|
||||
case '<%= escape_cstr(opt.char) %>':
|
||||
% if case_insensitive && opt.char =~ /^[a-z]$/
|
||||
case '<%= escape_cstr(opt.char.upcase) %>':
|
||||
|
@ -305,16 +332,13 @@ int FlagsParse(int argc, char **argv)
|
|||
% #
|
||||
% if opt.argument
|
||||
// -xarg or -x arg
|
||||
++j;
|
||||
if (cp[j])
|
||||
{
|
||||
++j;
|
||||
if (cp[j]) {
|
||||
optarg = cp + j;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (++i >= argc)
|
||||
{
|
||||
fputs("### <%= name %> - \"-<%= opt.char %>\" requires an argument.\n", stderr);
|
||||
else {
|
||||
if (++i >= argc) {
|
||||
fputs("### <%= name %> - \"-<%= opt.char %>\" requires an argument.\n", stderr);
|
||||
exit(1);
|
||||
}
|
||||
optarg = argv[i];
|
||||
|
@ -334,11 +358,11 @@ int FlagsParse(int argc, char **argv)
|
|||
|
||||
default:
|
||||
fprintf(stderr, "### <%= name %> - \"-%c\" is not an option.\n", c);
|
||||
exit(1);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
if (optarg) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return mindex;
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 0676c9aec7299f5c398d96cbbb64f7e38f67d73f
|
||||
Subproject commit 9b65d46584f6d0aae770562903bfeaa57e734f3c
|
6
makefile
6
makefile
|
@ -77,6 +77,12 @@ OverlayIIgs: OverlayIIgs.c.o OverlayIIgs-flags.c.o $(LIBRARIES)
|
|||
Rename: Rename.c.o Rename-flags.c.o FileCommon.c.o $(LIBRARIES)
|
||||
$(MPW) Link $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
|
||||
Date : Date.c.o Date-flags.c.o $(LIBRARIES)
|
||||
$(MPW) Link $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
|
||||
|
||||
LTC_H = libtomcrypt/src/hashes/
|
||||
lib/libtomcrypt : \
|
||||
$(LTC_H)/md2.c.o $(LTC_H)/md4.c.o $(LTC_H)/md5.c.o \
|
||||
|
|
Loading…
Reference in New Issue