On Thursday, July 28, 2011, Deniz Dogan <deniz@dogan.se> wrote:
> I have a command like this:
>
> (defun ftip-rate-movie (rating)
>  (interactive
>   (list
>    (if (not ftip-movie-id)
>        (error "Not viewing movie")
>      (completing-read "Rating: " '("1" "2" "3" "4" "5" "Remove rating") nil t))))
>  (unless ftip-movie-id
>    (error "Not viewing movie"))
>
>  ;; ...code here
>  )
>
> Is there any more intelligent way to do this?  I'm not too keen on the code duplication.
>
> Thanks,
> Deniz

You could have it pass in nil interactively, and do the completing-read if rating is nil after you check ftip-movie-id.  Or have it pass in some other value if you want to distinguish between an interactive call and a lisp call that actually passed in nil.

--

-PJ