Code for 'clean total'

Dirk Traulsen dirk.traulsen at
Mon Oct 31 09:15:30 CET 2005

Am 30 Oct 2005 um 23:06 hat David Shaw geschrieben:

> I have no problem with the function concept.  

I'm delighted to hear that.

> I have to confess my problem with this is the name ;)
> Right now we have "import-clean-sigs" and "import-clean-uids".  To get
> both, you can either use both, or use "import-clean".  Adding
> something called "import-clean-total" looks like it should mean the
> same thing as "import-clean" (i.e. all possible import-clean-xxx
> values).  I think it would confuse people.
> The thesaurus lists these verbs for 'clean':
> absterge, bath, bathe, blot, blow, brush, cauterize, clarify, cleanse,
> clear up, deodorize, depurate, deterge, disinfect, do up, dredge,
> dust, edulcorate, elutriate, erase, expunge, expurgate, flush, hackle,
> launder, lave, mop, neaten, pick, pick up, polish, purge, purify,
> rake, rasp, refine, rinse, rout out, sanitize, scald, scour, scrape,
> scrub, shake out, shampoo, soak, soap, sponge, spruce up, sterilize,
> straighten up, swab, sweep, tidy up, vacuum, wash, whisk, winnow, wipe
> Most of these are silly, but some are not too bad: purge perhaps, or
> neaten.  Maybe even wipe.  What do you think?

'shampoo' sounds nice... :)
No, all three are fitting ('wipe' maybe being too near to 'minimal' and as a german I first had to look up 'neaten', so maybe 'purge' would be the best of the three.), but the idea was to not take a completely new name for a function which does what 'clean' does according to the man-page:

("clean    Cleans keys by removing unusable pieces. ...
clean sigs:     Remove any signatures that are not usable
                    by the trust calculations. ..."),

I was sure that the signatures with no available signing key would be 
meant too, as they are not usable by the trust calculations. I think 
that the current implementation/man-page is misleading. 'clean' does 
not remove all unusable pieces, which are not part of the trust 
I think this confuses people. Well, maybe this is too bold, it 
confused me... There are so many options that it is intimidating for 
a new user. In the beginning I read the man-page again and again, and 
there was always something new which I hadn't registered before.
Why take a completely different name for a function which does 
exactly what's in the man-page?

First I thought it would be best to change 'clean' and 'clean sigs' 
to do what is in the man-page (and what does the code for 'clean 
total'). But maybe you wouldn't like it as you implemented it this 
way and there are sure (some|a lot of) people who want to keep their 
'flag12'-signatures. So if it is newly stated clearly in the man-page 
that 'clean' and 'clean sigs' keep these signatures and a new option 
does the same as 'clean', but additionally deletes them, I thought 
you would be more 'open' to include it. Don't you think it is easier 
to find for the users if it just another 'clean' option?

As 'clean' is still a new feature, maybe the first idea was better 
and you could change the way 'clean' works? Let it do what you said 
above:  'clean' stands for all possible import-clean-xxx values.
There could be the three options: 
'clean sigs'    like today but stated differently in the man-page
'clean uids'    like today
'clean total' or 'clean complete' or 'clean all'    as proposed.

Another idea would be to enhance 'clean sigs':
'clean sigs'     like today
'clean sigs (all | total | complete)'    all unusable sigs, no UIDs
'clean uids     like today'
and 'clean', which means all three.

But again, there shouldn't be two different names for the same 


As the code was my first 'commit', the first time I tried to read a C 
program and to understand a big project like gnupg, I would 
appreciate if you could tell me what was ok and what abysmal. Did I 
find the right places to tweak 'clean'?
Ah, and was it ok to put the diffs inside the mail?
Was it even ok to send you my diffs or shouldn't I have done it?
As you didn't comment on the subject on gnupg-users, I thought you 
maybe wanted to see a least a rudimentary implementation, before you 
put effort in this subject..
Another question: Is this the right place to discuss such things? 
There is not a lot traffic on this list. Where do you discuss such 
things normally?

More information about the Gnupg-devel mailing list