nmh-workers
[Top] [All Lists]

Re: [Nmh-workers] nmh internals: argument processing

2013-01-08 10:08:45
Ah, I assumed the returned index was later used to index, e.g. get the
full-length version of the option for error messages or something.  I
agree, if it just needs to be an arbitrary distinct integer, unique for
that array of switches then __LINE__ suffices.  :-)

Let me double-check to make sure I'm not a liar ... nope, I can't find
an example where the return value of smatch is used in anything other
than a case statement.  Ok, there are a few bits of weirdness where
the return value from smatch() is assigned to a variable, but that's
done to check the return value of smatch in a loop (see send.c and
repl.c for examples).  It's never used as an index into the struct swit
array.

I only think that's marginally easier ... I mean, if I want to know
which enum corresponds to a particular option, I'd have to count it
out by hand, the kind of tedious thing I'd rather leave to a computer.

I do.  Move to the first and then 42W in vi to get to the one valued 42.

Oh, sure, use vi tricks :-)  Ok, fine, but still even that seems unnecessary
to me.

True.  In that case, do you know the X-macro technique?
http://en.wikipedia.org/wiki/X_Macro

I think I've seen that before, but I definitely hadn't heard of the
name.  I'm not sure that helps in this situation here, though.  We
have three distinct bits of information that need to be matched up:
the option name, the minimum abbreviation length, and the value that
needs to be returned.  I'm not sure:

        X("noaudit", 0, NAUDSW)

is better than:

        { "noaudit", 0, NAUDSW },

I'd have a temporary vim macro created on the fly mapped to `Q' that
incremented the current one and moved to the next.

Okay, fair enough.  Not incrementing at all would be preferrable, though :-)

--Ken

_______________________________________________
Nmh-workers mailing list
Nmh-workers(_at_)nongnu(_dot_)org
https://lists.nongnu.org/mailman/listinfo/nmh-workers

<Prev in Thread] Current Thread [Next in Thread>