[Extractor-gtk-cvslog] SF.net SVN: extractor-gtk:[90] trunk/extractor/extractor.c
Extract files from unusual archive formats
Brought to you by:
someone-guy
From: <som...@us...> - 2008-08-22 16:05:47
|
Revision: 90 http://extractor-gtk.svn.sourceforge.net/extractor-gtk/?rev=90&view=rev Author: someone-guy Date: 2008-08-22 16:05:43 +0000 (Fri, 22 Aug 2008) Log Message: ----------- Allow forcing a format Modified Paths: -------------- trunk/extractor/extractor.c Modified: trunk/extractor/extractor.c =================================================================== --- trunk/extractor/extractor.c 2008-08-22 16:05:19 UTC (rev 89) +++ trunk/extractor/extractor.c 2008-08-22 16:05:43 UTC (rev 90) @@ -247,7 +247,7 @@ static void print_help(void) { int i; - fprintf(stderr, _("Usage: extractor [--|-h|-l] [filename]\n")); + fprintf(stderr, _("Usage: extractor [-h|[-l|--] filename [format]]\n")); fprintf(stderr, _("Supported formats:\n")); for (i = 0; fmts[i]; i++) fprintf(stderr, "%-16s %s\n", fmts[i]->shortname, fmts[i]->name); @@ -255,6 +255,7 @@ int main(int argc, char *argv[]) { int i; + int fmt_idx = -1; GtkWidget *window; GtkWidget *preview_win; GtkWidget *table; @@ -292,7 +293,19 @@ fprintf(stderr, _("Missing filename argument\n")); return 1; } - if (!open_file(argv[pos], NULL)) { + if (argc > pos + 2) { + fprintf(stderr, _("Too many arguments\n")); + return 1; + } + if (argc > pos + 1) { + for (fmt_idx = 0; fmts[fmt_idx]; fmt_idx++) + if (strcmp(argv[pos + 1], fmts[fmt_idx]->shortname) == 0) break; + if (!fmts[fmt_idx]) { + fprintf(stderr, _("Unknown format name\n")); + return 1; + } + } + if (!open_file(argv[pos], fmt_idx >= 0 ? fmts[fmt_idx] : NULL)) { fprintf(stderr, _("Could not open file %s\n"), argv[pos]); return 1; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |