emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#21698: closed (accessing multiple flagged values w


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#21698: closed (accessing multiple flagged values with (ice-9 getopt-long))
Date: Fri, 24 Jun 2016 17:15:01 +0000

Your message dated Fri, 24 Jun 2016 19:14:28 +0200
with message-id <address@hidden>
and subject line Re: bug#21698: accessing multiple flagged values with (ice-9 
getopt-long)
has caused the debbugs.gnu.org bug report #21698,
regarding accessing multiple flagged values with (ice-9 getopt-long)
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
21698: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21698
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: accessing multiple flagged values with (ice-9 getopt-long) Date: Sat, 17 Oct 2015 10:05:53 -0700
This is in reference to guile-2.0.11.

The (ice-9 getopt-long) module does not provide a process for accessing multiple command line arguments.

A patch for ice-9/getopt-long.scm  is attached which adds the procedure getopt-ref/many to access multiple argument values.

The following program and results illustrate the use of the current getopt-ref and the proposed getopt-ref/many:

mwette$ ./gotest.scm -f foo1 -b bar1 -f foo2 baz1 baz2

program arguments:

("./gotest.scm" "-f" "foo1" "-b" "bar1" "-f" "foo2" "baz1" "baz2")


getopt using option-ref:

foo: "foo2"

bar: "bar1"


getopt using option-ref/many:

foo: ("foo1" "foo2")

bar: "bar1"



where

mwette$ cat gotest.scm 

#!/opt/local/bin/guile

!#

(use-modules (ice-9 getopt-long))


(define spec

 '((foo (single-char #\f) (value #t))

   (bar (single-char #\b) (value #t))))


(let* ((args (program-arguments))

       (opts (getopt-long args spec)))

  (simple-format #t "program arguments:\n")

  (simple-format #t "~S\n" args)


  (simple-format #t "\ngetopt using option-ref:\n")

  (simple-format #t "foo: ~S\n" (option-ref opts 'foo #f))

  (simple-format #t "bar: ~S\n" (option-ref opts 'bar #f))


  (simple-format #t "\ngetopt using option-ref/many:\n")

  (simple-format #t "foo: ~S\n" (option-ref/many opts 'foo #f))

  (simple-format #t "bar: ~S\n" (option-ref/many opts 'bar #f))

  )

Attachment: getopt-long.patch
Description: Binary data


--- End Message ---
--- Begin Message --- Subject: Re: bug#21698: accessing multiple flagged values with (ice-9 getopt-long) Date: Fri, 24 Jun 2016 19:14:28 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)
On Fri 24 Jun 2016 17:30, address@hidden (Ludovic Courtès) writes:

> Andy Wingo <address@hidden> skribis:
>
>> Thanks for the patch.  My instinct however is to point you towards
>> SRFI-37, which in addition to supporting multiple argument values can
>> also be used to fold over the precise argument order.  I just don't know
>> that we should be expanding (ice-9 getopt-long); it has its use case and
>> if your needs go beyond it, then probably your needs go way beyond it.
>>
>>   https://www.gnu.org/software/guile/manual/html_node/SRFI_002d37.html
>>
>> Ludovic, second opinions?
>
> Seconded.  I think we should probably “freeze” (ice-9 getopt-long) and
> recommend SRFI-37.

Okeydoke, closing.  Thanks!

Andy


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]