Oh this kind of conversation hurts my head, LOL.
I guess its simpler to just use the old DOS 8.3 for filenames and only allow
the "." as the extension delimiter??
To me its simply KISS, keep it simple. I am not a programmer, but I can
appreciate the work involved in making programs work the way that users
anticipate them to. Are we so isolated here in North America that we assume
the rest of the world follows the same naming file naming conventions? Using
the comma instead of the period seems European to me. If a program is
written to follow US English standards, why would we expect it to know some
European languages as well. I interviewed a few years ago to hire an inhouse
database programmer, and of the 5 candidates we interviewed, 3 were recent
immigrants to Canada, two of them from former communist regimes. I remember
one of them commenting...programming is the same all over the world cause
most of the programming languages use US English. Is this not true? So while
his SQL tools had Russian words on the menus, when he coded it was in
If you truly understand what the C parser does, and also fully understand
that Blat uses the comma character to separate file names, then you will
know that your "bug" is more work to solve than any effort is worth.
What you want to be the right thing is really going to break the code, with
no solution in sight. To solve *one* man's problem, you want me to break
many others'. How is this fair to the majority? Your "bug" is really a
feature of Blat and not a design or implementation bug.
I won't say you are wrong, I am going to say that I and others have offered
Now, instead of complaining further, try offering up a solution that fits
1. Must be acceptable to C command line parser and passed to main() in
2. Must allow comma separated filenames.
3. Optionally, should allow comma within a filename.
If I change parser.cpp to allow a pipe character to be used as an escape for
filenames only, then how would Blat users be effected who might want to pipe
their output elsewhere, or use other programs and languages to spawn Blat?
Would having to escape the comma be counter to your stated requirement that
you must not change the filename?
I can't use a colon (:) to escape the comma, that is a legitimate drive
I can't use the less than or greater than signs (<>) because they can be
used for routing input and output.
Everything else I can type from my US keyboard is a legitimate character for
filename usage. There again, adding anything to escape a comma means you
need to change the filename syntax when you pass your command line to Blat.
To #2 above, what is the difference between -attach "op,tions.txt"
and -attach "op,tions.txt", where the former is a list of files while the
latter is a single file? Here is a command line I just used, with each
option on separate lines:
-body "Testing argv"
The attach list is per your request. When I read argv in main(), I
printed the following list:
argv[ 0] = e:\blat264\release\blat
argv[ 1] = -
argv[ 2] = -body
argv[ 3] = Testing argv
argv[ 4] = -s
argv[ 5] = argv
argv[ 6] = -t
argv[ 7] = myself
argv[ 8] = -p
argv[ 9] = attmail
argv = -log
argv = blat.log
argv = -superdebug
argv = -attach
argv = op,tions.txt,blat.log,op,tions.txt
Now, given your claim to understand what C does to parse the command line,
tell me with exacting detail how I should know which commas belong to a
specific filename and which are delimiters between filenames?
Don't go claim to understand C command line parser, and get huffy about your
supposed bug, unless you can offer real tangible solutions with real C
source code changes to parser.cpp. Remember, too, that the backslash is a
[Non-text portions of this message have been removed]