[Issue 3780] getopt improvements by Igor Lesik

2014-10-22 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3780

--- Comment #22 from Alexey G golovanov_ale...@mail.ru ---
getopt.d contain getoptX strings (in ddoc comments).
something not done?

--


[Issue 3780] getopt improvements by Igor Lesik

2014-10-22 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3780

--- Comment #23 from Robert Schadek rburn...@gmail.com ---
I will fix this tonight

--


[Issue 3780] getopt improvements by Igor Lesik

2014-09-22 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3780

--- Comment #18 from jens.k.muel...@gmx.de ---
I'm a little bit confused.
The changelog says it was fixed in 2.066 (http://dlang.org/changelog.html). I'm
using dmd.2.066.0.zip. Further its documentation does not look like it contains
any new documentation regarding this feature
(http://dlang.org/phobos/std_getopt.html).
So I assume the changelog is just wrong.

--


[Issue 3780] getopt improvements by Igor Lesik

2014-09-22 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3780

--- Comment #19 from Robert Schadek rburn...@gmail.com ---
the page doc is out of sync

--


[Issue 3780] getopt improvements by Igor Lesik

2014-09-22 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3780

--- Comment #20 from jens.k.muel...@gmx.de ---
The changes are also not in dmd.2.066.0.zip which makes me think the changelog
is in error. Or the 2.066 release.

--


[Issue 3780] getopt improvements by Igor Lesik

2014-09-22 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3780

--- Comment #21 from Robert Schadek rburn...@gmail.com ---
You're right, I just checked and it is not in 2.066. I though it got in

--


[Issue 3780] getopt improvements by Igor Lesik

2014-08-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3780

Robert Schadek rburn...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #17 from Robert Schadek rburn...@gmail.com ---
This one is done

--


[Issue 3780] getopt improvements by Igor Lesik

2014-03-26 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=3780


Robert Schadek rburn...@gmail.com changed:

   What|Removed |Added

 CC||rburn...@gmail.com


--- Comment #14 from Robert Schadek rburn...@gmail.com 2014-03-26 06:11:24 
PDT ---
Is anyone still working on this? I would like to take over.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2014-03-26 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=3780


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|ASSIGNED|NEW


--- Comment #15 from Andrei Alexandrescu and...@erdani.com 2014-03-26 
06:17:57 PDT ---
@Rpbert ask Andrej Mitrovic

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2014-03-26 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=3780



--- Comment #16 from Andrej Mitrovic andrej.mitrov...@gmail.com 2014-03-26 
15:16:36 CET ---
I've worked on a bit here but I have to work on it again as there was some nice
feedback:
https://github.com/D-Programming-Language/phobos/pull/1840

This is Issue 11876.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2014-03-24 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=3780


Nick Sabalausky cbkbbej...@mailinator.com changed:

   What|Removed |Added

 CC||cbkbbej...@mailinator.com


--- Comment #13 from Nick Sabalausky cbkbbej...@mailinator.com 2014-03-24 
18:10:46 PDT ---
This report is somewhat vague. What does seem clear is the expectation of an
optional way to help automate generating a help screen. But beyond that, can we
get clarification on the scope and expectations of this enhancement request?

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2013-11-19 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=3780



--- Comment #12 from jens.k.muel...@gmx.de 2013-11-19 00:13:00 PST ---
I don't have the time to finish this.
You can use my changes (if you want) to improve Phobos' getopt.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2013-11-18 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=3780


Jonathan Crapuchettes jcrapuchet...@gmail.com changed:

   What|Removed |Added

 CC||jcrapuchet...@gmail.com


--- Comment #11 from Jonathan Crapuchettes jcrapuchet...@gmail.com 2013-11-18 
16:48:49 PST ---
We use something like this in my company. It would be really nice to have it
part of phobos.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2013-03-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780



--- Comment #10 from Alexey G golovanov_ale...@mail.ru 2013-03-25 13:07:21 
PDT ---
 If somebody comments I'm happy to finish it.

Good job! Thanx!

 I don't like implementing stuff that nobody would use.

Nobody? I have no statistics. But, IMHO, everybody, who write small command
line utilities with D, today invent the wheel every time.
Best way - to have this features in std library.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2013-02-26 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780



--- Comment #8 from Andrei Alexandrescu and...@erdani.com 2013-02-26 09:21:14 
PST ---
Didn't have time to get to this, and probably won't for a while. Could anyone
take it over?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2013-02-26 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780



--- Comment #9 from jens.k.muel...@gmx.de 2013-02-26 15:16:56 PST ---
There is my pull request
https://github.com/D-Programming-Language/phobos/pull/1030.

If somebody comments I'm happy to finish it. The reason why I was less willing
to finish it is that I don't like implementing stuff that nobody would use. So
please comment on the API from a usage point of view and I will implement it.

BTW Recently I was wondering whether it is the right way to throw exceptions
because I find that this is not a rare situation. Actually it's a pretty common
situation to do some usage error. But either way I want to finish it.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2012-12-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780



--- Comment #7 from Alexey G golovanov_ale...@mail.ru 2012-12-22 00:48:39 PST 
---
Any news?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2012-05-20 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780


Alexey G golovanov_ale...@mail.ru changed:

   What|Removed |Added

 CC||golovanov_ale...@mail.ru


--- Comment #6 from Alexey G golovanov_ale...@mail.ru 2012-05-20 14:05:16 PDT 
---
Any news?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2012-01-03 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780


Trass3r mrmoc...@gmx.de changed:

   What|Removed |Added

 CC||mrmoc...@gmx.de


--- Comment #4 from Trass3r mrmoc...@gmx.de 2012-01-03 06:04:23 PST ---
Where is that pull request?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2012-01-03 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780



--- Comment #5 from jens.k.muel...@gmx.de 2012-01-03 07:15:19 PST ---
It's still in my local repository. The point is that getting the other changes
in is a bit problematic due to changing of defaults and breaking code. And the
other getopt changes may break code. That's why I wanted to have all changes
(including generating usage information) in one pull request.
At the moment there is no decision whether breaking old code is worth it. That
got me distracted. But I should finish the code. I will provide a new function
called getOptions to avoid breaking any code since there is some controversy
about the proper defaults and similar.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2011-06-15 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780


jens.k.muel...@gmx.de changed:

   What|Removed |Added

 CC||jens.k.muel...@gmx.de


--- Comment #3 from jens.k.muel...@gmx.de 2011-06-15 10:30:26 PDT ---
Igor, I already have the code in my local repository. I will create pull
request if you don't mind and make you the author of that commit.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2011-06-14 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780


Igor Lesik curo...@yahoo.com changed:

   What|Removed |Added

 CC||curo...@yahoo.com


--- Comment #2 from Igor Lesik curo...@yahoo.com 2011-06-14 20:49:23 PDT ---
I will see how I can work it into github, meanwhile I paste the original page
as comment here. Igor

getoptex

One way to extend Phobos library std.getopt.getopt function is make a wrapper
around it that could be feeded with usage information about every option and
let it automatically gather all usage strings into one usage/help message
block, similarly to Boost program_options library 

Links: 

http://en.wikipedia.org/wiki/Tuple 
http://www.digitalmars.com/d/2.0/phobos/std_getopt.html 
http://www.digitalmars.com/d/2.0/phobos/std_typetuple.html 

Below is an example how getoptEx could be used: 

import getoptex;
import std.stdio;


void main(string[] args)
{
string inputFile, outputFile;

bool helpPrinted = getoptEx(
Test program to demonstrate getoptEx\n~
written by Igor Lesik on Feb 2010\n~
Usage: test1 { --switch }\n,
args,
std.getopt.config.caseInsensitive,
input,
\tinput file name,\n~
\tmust be html file,
inputFile,
output,
\toutput file name,
outputFile,
author,
\tprint name of\n~
\tthe author,
delegate() {writeln(Igor Lesik);}
);

if (helpPrinted)
return;

writeln(Input file name:, inputFile);
writeln(Output file name:, outputFile);
}

If you call the program with --help option, then output is: 

test1.exe --help

Test program to demonstrate getoptEx
written by Igor Lesik on Feb 2010
Usage: test1 { --switch }

--input
input file name,
must be html file
--output
output file name
--author
print name of
the author

--help
produce help message


getopEx implementation: 

module getoptex;

import std.stdio;
import std.getopt;

private import std.contracts;
private import std.typetuple;
private import std.conv;

bool getoptEx(T...)(string helphdr, ref string[] args, T opts)
{
enforce(args.length,
Invalid arguments string passed: program name missing);

string helpMsg = GetoptHelp(opts); // extract all help strings

bool helpPrinted = false; // state tells if called with --help

void printHelp()
{
writeln(\n, helphdr, \n, helpMsg,
--help, \n\tproduce help message);
helpPrinted = true;
}

getopt(args, GetoptEx!(opts), help, printHelp);

return helpPrinted;
}

private template GetoptEx(TList...)
{
static if (TList.length)
{
static if (is(typeof(TList[0]) : config))
{
// it's a configuration flag, lets move on
alias TypeTuple!(TList[0],GetoptEx!(TList[1 .. $])) GetoptEx;
}
else
{
// it's an option string, eat help string
alias TypeTuple!(TList[0],TList[2],GetoptEx!(TList[3 .. $]))
GetoptEx;
}
}
else
{
alias TList GetoptEx;
}
}

private string GetoptHelp(T...)(T opts)
{
static if (opts.length)
{
static if (is(typeof(opts[0]) : config))
{
// it's a configuration flag, skip it
return GetoptHelp(opts[1 .. $]);
}
else
{
// it's an option string
string option  = to!(string)(opts[0]);
string help= to!(string)(opts[1]);

return( --~option~\n~help~\n~GetoptHelp(opts[3 .. $]) );
}
}
else
{
return to!(string)(\n);
}
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3780] getopt improvements by Igor Lesik

2011-06-05 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3780



--- Comment #1 from Andrei Alexandrescu and...@metalanguage.com 2011-06-05 
20:12:47 PDT ---
I can't find the code for download. Does anyone have Igor Lesik's email
address?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---