all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* How to define a `multiple prompt' function?
@ 2008-09-03  0:21 Rodolfo Medina
  2008-09-03  4:08 ` Barry Margolin
  2008-09-03 19:43 ` How to define a `multiple prompt' function? Evans Winner
  0 siblings, 2 replies; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-03  0:21 UTC (permalink / raw)
  To: help-gnu-emacs

I wish to define a function that prompts me more than once: let's call it
`my-function': when I type `M-x my-function', in the echo area I see (just an
example):

 Hi, how are you today?

.  Then I type, e.g., `fine RET', and again it prompts me with:

 I see.  And, what did you do yesterday?

... and so on.  Then I'm going to put some `if... else' conditions over my
possible answers.  Can anybody please provide some hints about how to elisp
this?

Thanks for any help
Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How to define a `multiple prompt' function?
  2008-09-03  0:21 How to define a `multiple prompt' function? Rodolfo Medina
@ 2008-09-03  4:08 ` Barry Margolin
  2008-09-03 20:31   ` ps-print variables interactive setting (was: How to define a `multiple prompt' function?) Rodolfo Medina
  2008-09-03 19:43 ` How to define a `multiple prompt' function? Evans Winner
  1 sibling, 1 reply; 19+ messages in thread
From: Barry Margolin @ 2008-09-03  4:08 UTC (permalink / raw)
  To: help-gnu-emacs

In article <87ej42m64o.fsf@gmail.com>,
 Rodolfo Medina <rodolfo.medina@gmail.com> wrote:

> I wish to define a function that prompts me more than once: let's call it
> `my-function': when I type `M-x my-function', in the echo area I see (just an
> example):
> 
>  Hi, how are you today?
> 
> .  Then I type, e.g., `fine RET', and again it prompts me with:
> 
>  I see.  And, what did you do yesterday?
> 
> ... and so on.  Then I'm going to put some `if... else' conditions over my
> possible answers.  Can anybody please provide some hints about how to elisp
> this?
> 
> Thanks for any help
> Rodolfo


(defun my-function ()
  (interactive)
  (let* ((response (read-from-minibuffer "Hi, how are you today? "))
         (new-prompt (format "I see, you're %s?  And where did you go 
yesterday?" response))
         (response2 (read-from-minibuffer new-prompt)))
    (message "I hope you enjoyed %s" response2)))

-- 
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: How to define a `multiple prompt' function?
  2008-09-03  0:21 How to define a `multiple prompt' function? Rodolfo Medina
  2008-09-03  4:08 ` Barry Margolin
@ 2008-09-03 19:43 ` Evans Winner
  1 sibling, 0 replies; 19+ messages in thread
From: Evans Winner @ 2008-09-03 19:43 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

    I wish to define a function that prompts me more than
    once: let's call it `my-function': when I type `M-x
    my-function', in the echo area I see (just an example):

     Hi, how are you today?
 
    .  Then I type, e.g., `fine RET', and again it prompts me with:
 
     I see.  And, what did you do yesterday?
 
    ... and so on.  Then I'm going to put some `if... else'
    conditions over my possible answers.  Can anybody please
    provide some hints about how to elisp this?

'read-from-minibuffer might be what you want.


(format "Your name is: %s"
	(read-from-minibuffer "Who are you? "))



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: ps-print variables interactive setting
  2008-09-03 20:31   ` ps-print variables interactive setting (was: How to define a `multiple prompt' function?) Rodolfo Medina
@ 2008-09-03 19:51     ` Lennart Borgman (gmail)
  2008-09-03 22:32     ` Andreas Politz
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 19+ messages in thread
From: Lennart Borgman (gmail) @ 2008-09-03 19:51 UTC (permalink / raw)
  To: Rodolfo Medina; +Cc: help-gnu-emacs

Rodolfo Medina wrote:
> (defun my-manage-ps-font-size ()
>   (interactive)
>   (let* ((prompt1 (read-from-minibuffer "Font size? "))
> 	 (prompt2 (format "(quote (7 . %s))" prompt1))
> 	 )
>   (setq ps-font-size prompt2)
>     )
> )
> 
> 
> , but it seems that the variable's value is put between "" and so it is not
> accepted.  I need help in this point.  Thanks to anyone still helping.


Maybe like this

(defun my-manage-ps-font-size ()
  (interactive)
  (let ((font-size (read-number "Font size? ")))
    (setq ps-font-size (cons 7 font-size))))




^ permalink raw reply	[flat|nested] 19+ messages in thread

* ps-print variables interactive setting (was: How to define a `multiple prompt' function?)
  2008-09-03  4:08 ` Barry Margolin
@ 2008-09-03 20:31   ` Rodolfo Medina
  2008-09-03 19:51     ` ps-print variables interactive setting Lennart Borgman (gmail)
                       ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-03 20:31 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> wrote:

>> I wish to define a function that prompts me more than once: let's call it
>> `my-function': when I type `M-x my-function', in the echo area I see (just an
>> example):
>> 
>>  Hi, how are you today?
>> 
>> .  Then I type, e.g., `fine RET', and again it prompts me with:
>> 
>>  I see.  And, what did you do yesterday?
>> 
>> ... and so on.  Then I'm going to put some `if... else' conditions over my
>> possible answers.  Can anybody please provide some hints about how to elisp
>> this?



Barry Margolin <barmar@alum.mit.edu> writes:

> (defun my-function ()
>   (interactive)
>   (let* ((response (read-from-minibuffer "Hi, how are you today? "))
>          (new-prompt (format "I see, you're %s?  And where did you go 
> yesterday?" response))
>          (response2 (read-from-minibuffer new-prompt)))
>     (message "I hope you enjoyed %s" response2)))


Thanks, that works.
I wish to set some ps-print variables in an interactive way, i.e. be prompted
for the value that I want to set.  So, following Barry's hint, I put:


(defun my-manage-ps-font-size ()
  (interactive)
  (let* ((prompt1 (read-from-minibuffer "Font size? "))
	 (prompt2 (format "(quote (7 . %s))" prompt1))
	 )
  (setq ps-font-size prompt2)
    )
)


, but it seems that the variable's value is put between "" and so it is not
accepted.  I need help in this point.  Thanks to anyone still helping.

Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: ps-print variables interactive setting
  2008-09-03 20:31   ` ps-print variables interactive setting (was: How to define a `multiple prompt' function?) Rodolfo Medina
  2008-09-03 19:51     ` ps-print variables interactive setting Lennart Borgman (gmail)
@ 2008-09-03 22:32     ` Andreas Politz
  2008-09-04 17:24       ` `are-you-fine' function definition (was: ps-print variables interactive setting) Rodolfo Medina
  2008-09-04 21:47     ` ps-right-footer interactive setting (was: ps-print variables interactive setting) Rodolfo Medina
  2008-09-07 16:44     ` A `my-ps-print-setting' function (was: ps-print variables interactive setting) Rodolfo Medina
  3 siblings, 1 reply; 19+ messages in thread
From: Andreas Politz @ 2008-09-03 22:32 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina wrote:
> Rodolfo Medina <rodolfo.medina@gmail.com> wrote:
> 
>>> I wish to define a function that prompts me more than once: let's call it
>>> `my-function': when I type `M-x my-function', in the echo area I see (just an
>>> example):
>>>
>>>  Hi, how are you today?
>>>
>>> .  Then I type, e.g., `fine RET', and again it prompts me with:
>>>
>>>  I see.  And, what did you do yesterday?
>>>
>>> ... and so on.  Then I'm going to put some `if... else' conditions over my
>>> possible answers.  Can anybody please provide some hints about how to elisp
>>> this?
> 
> 
> 
> Barry Margolin <barmar@alum.mit.edu> writes:
> 
>> (defun my-function ()
>>   (interactive)
>>   (let* ((response (read-from-minibuffer "Hi, how are you today? "))
>>          (new-prompt (format "I see, you're %s?  And where did you go 
>> yesterday?" response))
>>          (response2 (read-from-minibuffer new-prompt)))
>>     (message "I hope you enjoyed %s" response2)))
> 
> 
> Thanks, that works.
> I wish to set some ps-print variables in an interactive way, i.e. be prompted
> for the value that I want to set.  So, following Barry's hint, I put:
> 
> 
> (defun my-manage-ps-font-size ()
>   (interactive)
>   (let* ((prompt1 (read-from-minibuffer "Font size? "))
> 	 (prompt2 (format "(quote (7 . %s))" prompt1))
> 	 )
>   (setq ps-font-size prompt2)
>     )
> )
> 
> 
> , but it seems that the variable's value is put between "" and so it is not
> accepted.  I need help in this point.  Thanks to anyone still helping.
> 
> Rodolfo


Take a look at the documentation of the interactive call, it let's you
read any kind of data from the minibuffer.

(defun my-manage-ps-font-size(size string)
   (interactive "nFont size ? \nsErase all memory ? ")
   (setq ps-font-size (cons 7 size)))

This reads a number and a string.

-ap


^ permalink raw reply	[flat|nested] 19+ messages in thread

* `are-you-fine' function definition (was: ps-print variables interactive setting)
  2008-09-03 22:32     ` Andreas Politz
@ 2008-09-04 17:24       ` Rodolfo Medina
  2008-09-05  2:18         ` `are-you-fine' function definition Kevin Rodgers
       [not found]         ` <mailman.18482.1220581140.18990.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-04 17:24 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina wrote:

>>>> I wish to define a function that prompts me more than once
>>>>
>>>> [...]
>>>>
>>>> Then I'm going to put some `if... else' conditions over my
>>>> possible answers.  Can anybody please provide some hints about how to
>>>> elisp this?



Barry Margolin <barmar@alum.mit.edu> writes:

>>> (defun my-function ()
>>>   (interactive)
>>>   (let* ((response (read-from-minibuffer "Hi, how are you today? "))
>>>          (new-prompt (format "I see, you're %s?  And where did you go
>>> yesterday?" response))
>>>          (response2 (read-from-minibuffer new-prompt)))
>>>     (message "I hope you enjoyed %s" response2)))



"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:

> Maybe like this
>
> (defun my-manage-ps-font-size ()
>   (interactive)
>   (let ((font-size (read-number "Font size? ")))
>     (setq ps-font-size (cons 7 font-size))))



Andreas Politz <politza@fh-trier.de> writes:

> Take a look at the documentation of the interactive call, it let's you
> read any kind of data from the minibuffer.
>
> (defun my-manage-ps-font-size(size string)
>   (interactive "nFont size ? \nsErase all memory ? ")
>   (setq ps-font-size (cons 7 size)))
>
> This reads a number and a string.



Thanks very much to all who helped.  With their help I'm building a
`my-ps-print-buffer' function, that I'll report so that it may be useful to
others: now I need something like this: the function says:

 Are you fine today?

.  If I say `y', it says: `Oh, good.'; otherwise it says: `Why don't you see a
doctor?'

I tried a lot but don't manage by myself.

Please help in this regard

Thanks again
Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* ps-right-footer interactive setting (was: ps-print variables interactive setting)
  2008-09-03 20:31   ` ps-print variables interactive setting (was: How to define a `multiple prompt' function?) Rodolfo Medina
  2008-09-03 19:51     ` ps-print variables interactive setting Lennart Borgman (gmail)
  2008-09-03 22:32     ` Andreas Politz
@ 2008-09-04 21:47     ` Rodolfo Medina
  2008-09-05  1:19       ` Barry Margolin
  2008-09-07 16:44     ` A `my-ps-print-setting' function (was: ps-print variables interactive setting) Rodolfo Medina
  3 siblings, 1 reply; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-04 21:47 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

> I wish to set some ps-print variables in an interactive way, i.e. be
> prompted for the value that I want to set.



Now I'm working on the ps-right-footer variable.  I wish to be prompted for a
page number so that the variable is set to:

 (list <page number>)

.  I did:

(defun my-ps-right-footer ()
  (interactive)
  (let ((my-page-number (read-number "page number? ")))
    (setq ps-print-footer t)
    (setq ps-right-footer (list 'my-page-number))
    )
  )

, but it doesn't work.  Any suggestion?

Thanks
Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: ps-right-footer interactive setting (was: ps-print variables interactive setting)
  2008-09-04 21:47     ` ps-right-footer interactive setting (was: ps-print variables interactive setting) Rodolfo Medina
@ 2008-09-05  1:19       ` Barry Margolin
  2008-09-05 10:21         ` ps-right-footer interactive setting Rodolfo Medina
  0 siblings, 1 reply; 19+ messages in thread
From: Barry Margolin @ 2008-09-05  1:19 UTC (permalink / raw)
  To: help-gnu-emacs

In article <87aben37np.fsf@gmail.com>,
 Rodolfo Medina <rodolfo.medina@gmail.com> wrote:

> Rodolfo Medina <rodolfo.medina@gmail.com> writes:
> 
> > I wish to set some ps-print variables in an interactive way, i.e. be
> > prompted for the value that I want to set.
> 
> 
> 
> Now I'm working on the ps-right-footer variable.  I wish to be prompted for a
> page number so that the variable is set to:
> 
>  (list <page number>)
> 
> .  I did:
> 
> (defun my-ps-right-footer ()
>   (interactive)
>   (let ((my-page-number (read-number "page number? ")))
>     (setq ps-print-footer t)
>     (setq ps-right-footer (list 'my-page-number))
>     )
>   )
> 
> , but it doesn't work.  Any suggestion?
> 
> Thanks
> Rodolfo

It should be (list my-page number).  Quoting prevents the variable from 
being evaluated.

-- 
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: `are-you-fine' function definition
  2008-09-04 17:24       ` `are-you-fine' function definition (was: ps-print variables interactive setting) Rodolfo Medina
@ 2008-09-05  2:18         ` Kevin Rodgers
       [not found]         ` <mailman.18482.1220581140.18990.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 19+ messages in thread
From: Kevin Rodgers @ 2008-09-05  2:18 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina wrote:
> Thanks very much to all who helped.  With their help I'm building a
> `my-ps-print-buffer' function, that I'll report so that it may be useful to
> others: now I need something like this: the function says:
> 
>  Are you fine today?
> 
> .  If I say `y', it says: `Oh, good.'; otherwise it says: `Why don't you see a
> doctor?'

(if (equal (read-string "Are you fine today? ") "y")
     (message "Oh, good.")
   (message "Why don't you see a doctor?"))

You might want to change the (equal ...) test to one of these:

(y-or-n-p "Are you fine today? ")

(yes-or-no-p "Are you fine today? ")

(let ((case-fold-search t))
   (string-match "\\`y\\(es\\)?\\'" (read-string "Are you fine today? ")))

-- 
Kevin Rodgers
Denver, Colorado, USA





^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: ps-right-footer interactive setting
  2008-09-05  1:19       ` Barry Margolin
@ 2008-09-05 10:21         ` Rodolfo Medina
  2008-09-05 19:21           ` Chetan
  0 siblings, 1 reply; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-05 10:21 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> wrote:

>> Now I'm working on the ps-right-footer variable.  I wish to be prompted for
>> a page number so that the variable is set to:
>> 
>>  (list <page number>)
>> 
>> .  I did:
>> 
>> (defun my-ps-right-footer ()
>>   (interactive)
>>   (let ((my-page-number (read-number "page number? ")))
>>     (setq ps-print-footer t)
>>     (setq ps-right-footer (list 'my-page-number))
>>     )
>>   )
>> 
>> , but it doesn't work.  Any suggestion?



Barry Margolin <barmar@alum.mit.edu> writes:

> It should be (list my-page number).  Quoting prevents the variable from 
> being evaluated.



Unfortunately it doesn't work either:

(defun my-ps-right-footer ()
  (interactive)
  (let ((my-page-number (read-number "page number? ")))
    (setq ps-print-footer t)
    (setq ps-right-footer (list my-page-number))
    )
  )

produces a ps print error.  I can't find a solution.  Thanks for furhter
suggestions.
Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: ps-right-footer interactive setting
  2008-09-05 10:21         ` ps-right-footer interactive setting Rodolfo Medina
@ 2008-09-05 19:21           ` Chetan
  2008-09-06 16:28             ` Rodolfo Medina
  0 siblings, 1 reply; 19+ messages in thread
From: Chetan @ 2008-09-05 19:21 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

> Rodolfo Medina <rodolfo.medina@gmail.com> wrote:
>
>>> Now I'm working on the ps-right-footer variable.  I wish to be prompted for
>>> a page number so that the variable is set to:
>>> 
>>>  (list <page number>)
>>> 
>>> .  I did:
>>> 
>>> (defun my-ps-right-footer ()
>>>   (interactive)
>>>   (let ((my-page-number (read-number "page number? ")))
>>>     (setq ps-print-footer t)
>>>     (setq ps-right-footer (list 'my-page-number))
>>>     )
>>>   )
>>> 
>>> , but it doesn't work.  Any suggestion?
>
>
>
> Barry Margolin <barmar@alum.mit.edu> writes:
>
>> It should be (list my-page number).  Quoting prevents the variable from 
>> being evaluated.
>
>
>
> Unfortunately it doesn't work either:
>
> (defun my-ps-right-footer ()
>   (interactive)
>   (let ((my-page-number (read-number "page number? ")))
>     (setq ps-print-footer t)
>     (setq ps-right-footer (list my-page-number))
>     )
>   )
>
> produces a ps print error.  I can't find a solution.  Thanks for furhter
> suggestions.
> Rodolfo
It is a postscript string...
(list (concat "(" (number-to-string my-page-number) ")"))


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: `are-you-fine' function definition
       [not found]         ` <mailman.18482.1220581140.18990.help-gnu-emacs@gnu.org>
@ 2008-09-06 16:27           ` Rodolfo Medina
  2008-09-06 16:32             ` `y-or-n-p' function definition (was: `are-you-fine' function definition) Rodolfo Medina
  0 siblings, 1 reply; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-06 16:27 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina wrote:

>> now I need something like this: the function says:
>>
>>  Are you fine today?
>>
>> .  If I say `y', it says: `Oh, good.'; otherwise it says: `Why don't you
>> see a doctor?'



Kevin Rodgers <kevin.d.rodgers@gmail.com> writes:

> (if (equal (read-string "Are you fine today? ") "y")
>     (message "Oh, good.")
>   (message "Why don't you see a doctor?"))
>
> You might want to change the (equal ...) test to one of these:
>
> (y-or-n-p "Are you fine today? ")
>
> (yes-or-no-p "Are you fine today? ")
>
> (let ((case-fold-search t))
>   (string-match "\\`y\\(es\\)?\\'" (read-string "Are you fine today? ")))


Thanks, the `y-or-n-p' function is perfect for what I was looking for.  But
now I wish to have something like `y-or-n-p' that asks me if I want right or
left ps footer, like this:

 Right or left? (r/l)

.  If I could access the `y-or-n-p' defun, then I could try to adapt it to an
`r-or-l-p' version, but can't find it anywhere.  Please any suggestion?

Thanks
Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: ps-right-footer interactive setting
  2008-09-05 19:21           ` Chetan
@ 2008-09-06 16:28             ` Rodolfo Medina
  0 siblings, 0 replies; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-06 16:28 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

>>>> Now I'm working on the ps-right-footer variable.  I wish to be prompted
>>>> for a page number so that the variable is set to:
>>>> 
>>>>  (list <page number>)
>>>> 
>>>> .  I did:
>>>> 
>>>> (defun my-ps-right-footer ()
>>>>   (interactive)
>>>>   (let ((my-page-number (read-number "page number? ")))
>>>>     (setq ps-print-footer t)
>>>>     (setq ps-right-footer (list 'my-page-number))
>>>>     )
>>>>   )
>>>> 
>>>> , but it doesn't work.  Any suggestion?



Barry Margolin <barmar@alum.mit.edu> writes:

>>> It should be (list my-page number).  Quoting prevents the variable from 
>>> being evaluated.



Rodolfo:

>> Unfortunately it doesn't work either:
>>
>> (defun my-ps-right-footer ()
>>   (interactive)
>>   (let ((my-page-number (read-number "page number? ")))
>>     (setq ps-print-footer t)
>>     (setq ps-right-footer (list my-page-number))
>>     )
>>   )
>>
>> produces a ps print error.  I can't find a solution.  Thanks for furhter
>> suggestions.




Chetan <Chet.xspam@xspam.sbcglobal.net> writes:

> It is a postscript string...
> (list (concat "(" (number-to-string my-page-number) ")"))



Thanks, this worked!
Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* `y-or-n-p' function definition (was: `are-you-fine' function definition)
  2008-09-06 16:27           ` Rodolfo Medina
@ 2008-09-06 16:32             ` Rodolfo Medina
  2008-09-08 10:14               ` `y-or-n-p' function definition Nikolaj Schumacher
  0 siblings, 1 reply; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-06 16:32 UTC (permalink / raw)
  To: help-gnu-emacs; +Cc: kevin.d.rodgers

Rodolfo Medina wrote:

>> now I need something like this: the function says:
>>
>>  Are you fine today?
>>
>> .  If I say `y', it says: `Oh, good.'; otherwise it says: `Why don't you
>> see a doctor?'



Kevin Rodgers <kevin.d.rodgers@gmail.com> writes:

> (if (equal (read-string "Are you fine today? ") "y")
>     (message "Oh, good.")
>   (message "Why don't you see a doctor?"))
>
> You might want to change the (equal ...) test to one of these:
>
> (y-or-n-p "Are you fine today? ")
>
> (yes-or-no-p "Are you fine today? ")
>
> (let ((case-fold-search t))
>   (string-match "\\`y\\(es\\)?\\'" (read-string "Are you fine today? ")))


Thanks, the `y-or-n-p' function is perfect for what I was looking for.  But
now I wish to have something like `y-or-n-p' that asks me if I want right or
left ps footer, like this:

 Right or left? (r/l)

.  If I could access the `y-or-n-p' defun, then I could try to adapt it to an
`r-or-l-p' version, but can't find it anywhere.  Please any suggestion?

Thanks
Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* A `my-ps-print-setting' function (was: ps-print variables interactive setting)
  2008-09-03 20:31   ` ps-print variables interactive setting (was: How to define a `multiple prompt' function?) Rodolfo Medina
                       ` (2 preceding siblings ...)
  2008-09-04 21:47     ` ps-right-footer interactive setting (was: ps-print variables interactive setting) Rodolfo Medina
@ 2008-09-07 16:44     ` Rodolfo Medina
  2008-09-07 19:40       ` A `my-ps-print-setting' function Andreas Politz
  3 siblings, 1 reply; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-07 16:44 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

> [...] I wish to set some ps-print variables in an interactive way, i.e. be
> prompted for the value that I want to set.



With the help that came from this list, I defined a `my-ps-print-setting'
function, that I'm reporting below.  Improvements are welcome: in particular
I wish it said: "please answer `r' or `l'" when prompting for a right or left
footer and the answer is neither r nor l.  Besides, I wish to have
automatically odd page numbers in the right footer and even page numbers in
the left footer.  But I'm starting a new thread for that.

bye
Rodolfo



(defun my-ps-print-setting ()
  "Prompts for some ps print settings.
Other settings are inside the function definition
and can be changed at pleasure."
  (interactive)
  (if (equal (y-or-n-p "Do you want footer? ") t)
      (let (key val)
	(while (progn
		 (setq key
		       (let ((cursor-in-echo-area t))
			 (read-char
			  (format "right or left? "))))
		 (not (memq key '(?r ?l)))))
	(if (eq key ?r)
	    (if (equal (y-or-n-p "So, you want right footer.  \
Do you want the default footer? ") nil)
		(let ((my-page-number (read-string 
				       "Enter the footer you want: ")))
		  (setq ps-right-footer (list (concat "(" my-page-number ")"))
			ps-print-footer t
			ps-print-footer-frame nil
			ps-top-margin 20
			ps-bottom-margin 5
			ps-left-margin 10
			ps-right-margin 7
			ps-print-header nil
			ps-show-n-of-n nil
			ps-print-footer-frame nil
			ps-footer-lines 1
			ps-left-footer (quote ( ))
			ps-footer-offset -10))
	      (setq ps-right-footer (quote ("/pagenumberstring load"))
		    ps-print-footer t
		    ps-print-footer-frame nil
		    ps-top-margin 20
		    ps-bottom-margin 5
		    ps-left-margin 10
		    ps-right-margin 7
		    ps-print-header nil
		    ps-show-n-of-n nil
		    ps-print-footer-frame nil
		    ps-footer-lines 1
		    ps-left-footer (quote ( ))
		    ps-footer-offset -10))
	  (if (equal (y-or-n-p "So, you want left footer.  \
Do you want the default footer? ") nil)
	      (let ((my-page-number (read-string 
				     "Enter the footer you want: ")))
		(setq ps-left-footer (list (concat "(" my-page-number ")"))
		      ps-print-footer t
		      ps-print-footer-frame nil
		      ps-top-margin 20
		      ps-bottom-margin 5
		      ps-left-margin 10
		      ps-right-margin 7
		      ps-print-header nil
		      ps-show-n-of-n nil
		      ps-print-footer-frame nil
		      ps-footer-lines 1
		      ps-right-footer (quote ( ))
		      ps-footer-offset -10))
	    (setq ps-left-footer (quote ("/pagenumberstring load"))
		  ps-print-footer t
		  ps-print-footer-frame nil
		  ps-top-margin 20
		  ps-bottom-margin 5
		  ps-left-margin 10
		  ps-right-margin 7
		  ps-print-header nil
		  ps-show-n-of-n nil
		  ps-print-footer-frame nil
		  ps-footer-lines 1
		  ps-right-footer (quote ( ))
		  ps-footer-offset -10))
	  ))
    (setq ps-print-footer nil
					;	  ps-top-margin 10
	  ps-top-margin 5
	  ps-bottom-margin 0
	  ps-left-margin 10
	  ps-right-margin 0
	  ps-print-header nil
	  ps-print-footer nil))    
  (let ((font-size (read-number "What font size do you want? ")))
    (setq ps-font-size (cons 7 font-size)))
  (if (equal ps-font-size '(7 . 9.5))
      (setq-default fill-column 101))
  (if (equal ps-font-size '(7 . 12))
      (setq-default fill-column 78))
  )


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: A `my-ps-print-setting' function
  2008-09-07 16:44     ` A `my-ps-print-setting' function (was: ps-print variables interactive setting) Rodolfo Medina
@ 2008-09-07 19:40       ` Andreas Politz
  2008-09-08  1:18         ` defchoice macro (was: A `my-ps-print-setting' function) Rodolfo Medina
  0 siblings, 1 reply; 19+ messages in thread
From: Andreas Politz @ 2008-09-07 19:40 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina wrote:
> Rodolfo Medina <rodolfo.medina@gmail.com> writes:
> 
>> [...] I wish to set some ps-print variables in an interactive way, i.e. be
>> prompted for the value that I want to set.
> 
> 
> 
> With the help that came from this list, I defined a `my-ps-print-setting'
> function, that I'm reporting below.  Improvements are welcome: in particular
> I wish it said: "please answer `r' or `l'" when prompting for a right or left
> footer and [...]

Thank lisp you can make your own choices...

(defmacro defchoice (yes no)
   (let* ((name (format "%c-or-%c-p" yes no))
	 (name-symbol (intern name)))
     `(defun ,name-symbol (prompt)
        ,(format "Ask user a \"%c or %c\" question.  Return t is answer is \"%c\"."
		yes no yes)
        (let* ((pprompt1 (propertize (format "%s (%c or %c) ?" prompt ,yes ,no) 'face
				    'minibuffer-prompt))
	      (pprompt2 (concat (propertize (format "Please answer %c or %c.  " ,yes ,no) 'face
					    'minibuffer-prompt)
				pprompt1))
	      (answer (read-char-exclusive pprompt1)))
	 (while (not (or (= answer ,yes)
			 (= answer ,no)))
	   (setq answer (read-char-exclusive pprompt2)))
	 (= answer ,yes)))))


(defchoice ?r ?l)
(r-or-l-p "Choose !")

-ap


^ permalink raw reply	[flat|nested] 19+ messages in thread

* defchoice macro (was: A `my-ps-print-setting' function)
  2008-09-07 19:40       ` A `my-ps-print-setting' function Andreas Politz
@ 2008-09-08  1:18         ` Rodolfo Medina
  0 siblings, 0 replies; 19+ messages in thread
From: Rodolfo Medina @ 2008-09-08  1:18 UTC (permalink / raw)
  To: help-gnu-emacs

Rodolfo Medina <rodolfo.medina@gmail.com> writes:

>> With the help that came from this list, I defined a `my-ps-print-setting'
>> function, that I'm reporting below.  Improvements are welcome: in particular
>> I wish it said: "please answer `r' or `l'" when prompting for a right or
>> left footer [...]



Andreas Politz <politza@fh-trier.de> writes:

> Thank lisp you can make your own choices...
>
> (defmacro defchoice (yes no)
>   (let* ((name (format "%c-or-%c-p" yes no))
> 	 (name-symbol (intern name)))
>     `(defun ,name-symbol (prompt)
>        ,(format "Ask user a \"%c or %c\" question.  Return t is answer is \"%c\"."
> 		yes no yes)
>        (let* ((pprompt1 (propertize (format "%s (%c or %c) ?" prompt ,yes ,no) 'face
> 				    'minibuffer-prompt))
> 	      (pprompt2 (concat (propertize (format "Please answer %c or %c.  " ,yes ,no) 'face
> 					    'minibuffer-prompt)
> 				pprompt1))
> 	      (answer (read-char-exclusive pprompt1)))
> 	 (while (not (or (= answer ,yes)
> 			 (= answer ,no)))
> 	   (setq answer (read-char-exclusive pprompt2)))
> 	 (= answer ,yes)))))
>
>
> (defchoice ?r ?l)
> (r-or-l-p "Choose !")



Fantastic.  The `r-or-l-p' function so defined is even better than `y-or-n-p',
because if I put, e.g.:

(defun my-test ()
  (interactive)
  (y-or-n-p "y or n? "))

(defun my-test2 ()
  (interactive)
  (r-or-l-p "l or r? "))

, with my-test the text in the echo area does not disappear after answering,
whereas it does with my-test2, which is better.

Only two things:
1) the cursor should appear in the echo area, so I imagine that your macro
   definition should contain some `(let ((cursor-in-echo-area t)))' condition
   somewhere;
2) keys like up, down, right, left, next, prior, end have problems.

Would it be hard to fix those two things?

Thanks, bye
Rodolfo


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: `y-or-n-p' function definition
  2008-09-06 16:32             ` `y-or-n-p' function definition (was: `are-you-fine' function definition) Rodolfo Medina
@ 2008-09-08 10:14               ` Nikolaj Schumacher
  0 siblings, 0 replies; 19+ messages in thread
From: Nikolaj Schumacher @ 2008-09-08 10:14 UTC (permalink / raw)
  To: Rodolfo Medina; +Cc: help-gnu-emacs, kevin.d.rodgers

Rodolfo Medina <rodolfo.medina@gmail.com> wrote:

> Thanks, the `y-or-n-p' function is perfect for what I was looking for.  But
> now I wish to have something like `y-or-n-p' that asks me if I want right or
> left ps footer, like this:
>
>  Right or left? (r/l)

Try `read-char'.

>  If I could access the `y-or-n-p' defun, then I could try to adapt it to an
> `r-or-l-p' version, but can't find it anywhere.

As `describe-function' will tell you, that function is in the C
sources.  So you won't be able to adapt it for lisp code.



regards,
Nikolaj Schumacher




^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2008-09-08 10:14 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-03  0:21 How to define a `multiple prompt' function? Rodolfo Medina
2008-09-03  4:08 ` Barry Margolin
2008-09-03 20:31   ` ps-print variables interactive setting (was: How to define a `multiple prompt' function?) Rodolfo Medina
2008-09-03 19:51     ` ps-print variables interactive setting Lennart Borgman (gmail)
2008-09-03 22:32     ` Andreas Politz
2008-09-04 17:24       ` `are-you-fine' function definition (was: ps-print variables interactive setting) Rodolfo Medina
2008-09-05  2:18         ` `are-you-fine' function definition Kevin Rodgers
     [not found]         ` <mailman.18482.1220581140.18990.help-gnu-emacs@gnu.org>
2008-09-06 16:27           ` Rodolfo Medina
2008-09-06 16:32             ` `y-or-n-p' function definition (was: `are-you-fine' function definition) Rodolfo Medina
2008-09-08 10:14               ` `y-or-n-p' function definition Nikolaj Schumacher
2008-09-04 21:47     ` ps-right-footer interactive setting (was: ps-print variables interactive setting) Rodolfo Medina
2008-09-05  1:19       ` Barry Margolin
2008-09-05 10:21         ` ps-right-footer interactive setting Rodolfo Medina
2008-09-05 19:21           ` Chetan
2008-09-06 16:28             ` Rodolfo Medina
2008-09-07 16:44     ` A `my-ps-print-setting' function (was: ps-print variables interactive setting) Rodolfo Medina
2008-09-07 19:40       ` A `my-ps-print-setting' function Andreas Politz
2008-09-08  1:18         ` defchoice macro (was: A `my-ps-print-setting' function) Rodolfo Medina
2008-09-03 19:43 ` How to define a `multiple prompt' function? Evans Winner

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.