[Marc Mutz]:
On Sunday 11 May 2003 05:16, Kjetil Torgrim Homme wrote:
> Marc suggests a system variable for accessing the current value,
> ${#imapflags}.
Actually, I suggested a test for it, but ok.
sorry, I have missed that. would you mind repeating it? I think it
makes sense.
> you can get rid of ':globalflags_plus "Flag"' like
> this:
>
> keep :flags "${#imapflags} Flag";
more like
set "safe_flags" "${#imapflags}";
addflag "Flag";
keep :globalflags
setflags "${safe_flags}";
this was the added verbosity I hinted at if :flags was removed.
> my suggestion is to add a another action instead, only available when
> the variables extension is in effect:
>
> STOREFLAGS <variable: string>
The downside of that is that you need to come up with such an
action for each and every extension that possibly wants to store
away state temporarily.
true. it remains to be seen how common that is, though.
So how could imapflags progress in this light? I see two routes:
I non-system variables:
1. Dump :globalflags, keep only :flags. This means that implicit
keep never sets any flags, but you can always end your script with
an explicit keep (multiscript might make problems, though).
the implicit keep can't be emulated _that_ easily. consider
if ... {
fileinto "somewhere";
}
keep :flags "${myflags}";
(message uniqueness only concerns a single folder.)
so you'd need to keep track of it yourself.
if ... {
set "kept" "yes";
fileinto "somewhere";
}
if not string "${kept}" "yes" {
keep :flags "${myflags}";
}
thank you for your very useful summary!
--
Kjetil T.