jed-users mailing list

[2003 Date Index] [2003 Thread Index] [Other years]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]

Re: optional arguments


On Fri, Jun 06, 2003 at 08:54:32PM +0000, Joerg Sommer wrote:
> Hi,
> 
> in slang.txt section "4.1.5 Null_Type" is an example given, that show,
> how to use NULL for functions with optional arguments. But this example
> doesn't work if I call add_numbers() and what's my problem, I don't see
> how to use this with functions with one argument.

There is, however a way for optional arguments: use the variable _NARGS,
that is set to the number of arguments given with the function call.

Example:

define foo()
{
  vmessage("%d", _NARGS);
  _pop_n(_NARGS);
}

Now foo() shows 0, foo("s") shows 1, and foo(,5) shows 2.
However, 1; foo() would show 0 and leave 1 on stack.



Something more usefull: Arguments with default

% Hide/unhide the whole buffer
public define set_buffer_hidden() % (hide=1)
{
   variable hide = 1;
   if (_NARGS)
     hide = ();
   push_spot();
   !if (is_visible_mark())
     mark_buffer();
   set_region_hidden(hide);
   pop_spot();
}

Unfortunately, menu_append_item doesnot set _NARGS right, when calling a
function with the 4th argument as argument. So use with caution.

Günter

-- 
Milde at ife.et.tu-dresden.de

--------------------------
To unsubscribe send email to <jed-users-request@xxxxxxxxxxx> with
the word "unsubscribe" in the message body.
Need help? Email <jed-users-owner@xxxxxxxxxxx>.


[2003 date index] [2003 thread index]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]