How about at first using pathconf(3) with the constant _PC_NAME_MAX to 
determine the file name length (for a specfific path) and using the constants 
only when pathconf returns -1?

> Ingo Schwarze <[email protected]> hat am 21. Oktober 2020 um 18:43 
> geschrieben:
> 
> 
> Update of bug #55449 (project groff):
> 
>              Assigned to:                    None => schwarze               
>          Planned Release:                    None => 1.23                   
> 
>     _______________________________________________________
> 
> Follow-up Comment #4:
> 
> The patch #45943 is not correct.
> 
> According to the comment at the top of src/libs/libgroff/maxfilename.cpp, what
> the function file_name_max() wants to return is NAME_MAX.
> 
> If a system defines both NAME_MAX and FILENAME_MAX - which all system ought to
> do because POSIX requires both - then the patch clobbers NAME_MAX with
> FILENAME_MAX.  On some systems, both have different values.
> 
> I also suggest to use a more readable idiom avoiding nested #ifs, see the
> attached patch 55449-schwarze.patch.
> 
> Also, use FILENAME_MAX only as a last-resort fallback.  It is not clear to me
> that FILENAME_MAX has exactly the same meaning as NAME_MAX.  On some systems,
> FILENAME_MAX is much larger than NAME_MAX, so using it does not seem perfectly
> safe.  Then again, when nothing else is available, maybe it is still better
> than 14.
> 
> Eli, can you test whether this version works for you, too?
> 
> (file #50036)
>     _______________________________________________________
> 
> Additional Item Attachment:
> 
> File name: 55449-schwarze.patch           Size:1 KB
>     <https://file.savannah.gnu.org/file/55449-schwarze.patch?file_id=50036>
> 
> 
> 
>     _______________________________________________________
> 
> Reply to this item at:
> 
>   <https://savannah.gnu.org/bugs/?55449>
> 
> _______________________________________________
>   Message sent via Savannah
>   https://savannah.gnu.org/
> 
>

Reply via email to