groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Specifying dependencies more clearly


From: Alejandro Colomar
Subject: Re: Specifying dependencies more clearly
Date: Wed, 9 Nov 2022 14:30:58 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1

Hi Branden,

On 11/8/22 22:05, Alejandro Colomar wrote:
It may be the issue that the deps mention about ambiguous paths; don't know.  I don't know if I have multiple versions of the URW fonts in my system.  I hope I don't, because I rarely install things from source, so I trust Debian packaging to sort that out for me.  Unless some groff configure scripts have messed my system about that, which I don't expect either...

Let's see if we can first find what is the actual bug, and then analyze what should be changed in the INSTALL.* files about it, if at all.

Since it seems to be the multiple paths thing and it has been fixed, it seems that the dependencies were correct, both in my system and the documentation. Since the issue seems to be fixed in the repo, I'd say there's nothing to do about it (except maybe that I wonder why I could reproduce the problem, since I believe my system should be quite clean in that regard).

Cheers,

Alex

[...]

[1]: (pissed off)

Okay, here we go for a rant.

Let's say there's some software with cowboy programmers, which has things like:


Since I wrote the code from memory, I had a few typos, but the idea was there...

     typedef struct {
         size_t  length;
         u_char  *start;
     } str_t;

     #define length(s)   (sizeof(s) - 1)

     #define str_set(str, text)  do       \
     {                                    \
         (str)->length = length(test);    \
         (str)->start = (u_char *) text;  \
     }

       } while (0)


(Of course, cowboy programmers don't need terminating NUL bytes, that's for newbies, but that's not today's rant.)

And the use of that macro is typically for things like:

     str_t  str = str_set("foo");

       str_t  str;

       str_set(&str, "foo");


The same software uses the ternary operator extensively (and that's fine to me; it makes some things much more readable), so you can find it all around the code.

And then some new programmer in the team writes a line of code that's something like:

     str = str_set(cond ? "someword" : "another");

       str_set(&str, cond ? "someword" : "another");


--
<http://www.alejandro-colomar.es/>

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]