redhat's consolehelper(8) / userhelper(8) are examples. I see no big deal to imply windows style arguments if invoked as xfreerdp.exe..
On Tue, Dec 4, 2012 at 3:54 PM, Kevin Dalley <kdal...@vmware.com> wrote: > Alex, > > The two of use agree on most issues here. > > Heuristics, no. > > Pre-existing parsers, yes. I prefer argp, because it includes > documentation. > > We do disagree n argv[0] > > Using argv[0] to determine behavior definitely used to be standard, > back in the pre-Linux days. mv and ln, I believe were the same binary. > But not any more. > > And today, in memory-limited environments, busybox uses this technique. > It makes sense there. > > Please name modern examples which do not result from limited memory. > > Using argv[0] leaves you in a situation where copying an executable to > a new name results in different behavior. In your example, if I copied > xfreerdp to xfreerdp-new, then the behavior would be different, even > though the name is almost the same. > > And it using argv[0] violates the GNU standard, something > you should do only when there is a good reason for doing so. > > ----- Original Message ----- > From: Alex Bligh <a...@alex.org.uk> > To: Kevin Dalley <kdal...@vmware.com> > Cc: Alex Bligh <a...@alex.org.uk>, Stephen Dowdy <sdo...@ucar.edu>, > freerdp-devel@lists.sourceforge.net > Sent: Tue, 04 Dec 2012 11:46:34 -0800 (PST) > Subject: Re: [Freerdp-devel] Why is there a change in the command line > interface? > > > On 4 Dec 2012, at 18:07, Kevin Dalley wrote: > > > Please don't use argv[0] to determine the behavior. This is confusing. > > > > It should be possible to make a link to a program and have it behave in > > the same way as the original program. > > > > Also, it violates the GNU standards. > > > > > http://www.gnu.org/prep/standards/html_node/User-Interfaces.html#User-Interfaces > > Opinion from someone who has had exposure to reading the code but not > writing > it, and tripped over the current CLI. > > In my opinion using argv[0] to influence program operation is perfectly > reasonable and a lot of linux utilities do it (for better or worse). > Moreover, > the appropriate standard should be POSIX not GNU here. I don't believe > there > is a POSIX requirement not to do this (but POSIX standards are full of > surprises). > I understand some people consider it hacky, but it does permit the > following > which is what I'd recommend. > > If invoked as xfreerdp, use a command line interface as close as possible > to the > current one. I know this needs work, having tried to find my way through > the > homebrew parser to backport stuff. I would suggest moving to the > getopt_long > which has support everywhere, and at least is a known quantity. I do not > think > there is anything freerdp does which would not possible using getopt_long, > and > there might be bugs which could be fixed by a refactor (from memory the > parsing > of certain security parameters depends on other parameters, which means as > they > are parsed in order, the effect is dependent upon the ordering of > parameters - > this could be fixed by recording parameters prior to interpreting them). > > If invoked as [something else], use a CLI more friendly for windows users, > be > that borrowed from mstsc or otherwise. > > Heuristics that rely on the presence or absence of slashes or minus signs > are bound to fail as filenames on windows can begin with minus signs and > file names (well, paths) on linux can begin with slashes. So don't try and > guess, use something that can never be ambiguous (i.e. argv[0]). I believe > on some non-POSIX platforms it may not be possible to determine the value > of argv[0], but I doubt xfreerdp will run there anyway. > > -- > Alex Bligh > > > > > > > > ------------------------------------------------------------------------------ > LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial > Remotely access PCs and mobile devices and provide instant support > Improve your efficiency, and focus on delivering more value-add services > Discover what IT Professionals Know. Rescue delivers > http://p.sf.net/sfu/logmein_12329d2d > _______________________________________________ > Freerdp-devel mailing list > Freerdp-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/freerdp-devel > ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ Freerdp-devel mailing list Freerdp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freerdp-devel