On Thu, Jan 21, 2010 at 12:34:54PM +0100, Johannes Meixner wrote:
> I cannot find where `id() is documented, i.e. what exactly
> does this symbol do in particular regarding UI functions.
> 
> I am confused because
> http://forgeftp.novell.com/yast/doc/SL11.1/tdg/id_ycp_data_symbol.html
> reads "A symbol is a literal constant".
> 
> In contrast
> http://forgeftp.novell.com/yast/doc/SL11.1/tdg/ChangeWidget.html
> reads "symbol widgetId Can also be specified as `id( any widgetId )"

The ChangeWidget documentation is incomplete. It is true that the ID
can be specified as `foo or `id(bar), where bar is of any type, but
the function prototype wrongly restricts the argument type to
a symbol.

> Therefore for example in UI::ChangeWidget(`id("widget_id_string"),...
> the literal constant `id("widget_id_string") seems to be more
> like a function call of a function named id with prototype/signature
>   symbol id ( any )
> but I cannot even find such a function documented.
> 
> I use and used `id() by "look at other code" all the time
> but now I have the strange idea to try to understand it ;-)
> 
> In particular I wonder why
>   UI::whatever_widget_function(`id(`widget_id_symbol),...
> is used most often in YCP code instead of simply calling
>   UI::whatever_widget_function(`widget_id_symbol,...
> which is also (less often) used in YCP code.
> 
> For me `id(`widget_id_symbol) looks like a useless "call"
> of a symbol->symbol conversion.

`id is a term, not a function call. If the ID is a symbol, you can
say `foo or `id(`foo), where the latter is preferred for
consistency.

-- 
Martin Vidner, YaST developer
http://en.opensuse.org/User:Mvidner

Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu

Attachment: pgpaamPnWS0QK.pgp
Description: PGP signature

Reply via email to