gbranden pushed a commit to branch master in repository groff. commit d2cb1117a9b74a6b740b6c5b4eac01451d016b53 Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Fri Jul 4 05:39:59 2025 -0500
[gropdf]: Refactor `OpenFontFile()`. * src/devices/gropdf/gropdf.pl (OpenFontFile): Refactor. Rename scalar `fnm` to `fileName`. Add scalar `resolvedFileName`, recording the file specification actually opened in the event of success. Eliminate multiple returns. Use global scalar `fontPath` instead of `dirs` argument to search for files. --- ChangeLog | 8 ++++++++ src/devices/gropdf/gropdf.pl | 31 +++++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index f4633da5b..1bf6f2443 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2025-07-04 G. Branden Robinson <g.branden.robin...@gmail.com> + + * src/devices/gropdf/gropdf.pl (OpenFontFile): Refactor. Rename + scalar `fnm` to `fileName`. Add scalar `resolvedFileName`, + recording the file specification actually opened in the event of + success. Eliminate multiple returns. Use global scalar + `fontPath` instead of `dirs` argument to search for files. + 2025-07-04 G. Branden Robinson <g.branden.robin...@gmail.com> * src/devices/gropdf/gropdf.pl (OpenFile): Rename this... diff --git a/src/devices/gropdf/gropdf.pl b/src/devices/gropdf/gropdf.pl index eedd0afdb..6d91f163f 100644 --- a/src/devices/gropdf/gropdf.pl +++ b/src/devices/gropdf/gropdf.pl @@ -1218,19 +1218,34 @@ sub OpenFontFile { my $f=shift; my $dirs=shift; - my $fnm=shift; + my $fileName=shift; + my $resolvedFileName; - if (substr($fnm,0,1) eq '/' or substr($fnm,1,1) eq ':') # dos + # Is the file specification absolute? + # + # XXX: Forbid this? See Savannah #66419. + if ((substr($fileName,0,1) eq '/') + or (substr($fileName,1,1) eq ':')) # dos { - return if -r "$fnm" and open($$f,"<$fnm"); + $resolvedFileName=$fileName + if (-r "$fileName" and open($$f,"<$fileName")); } - - my (@dirs)=split($cfg{RT_SEP},$dirs); - - foreach my $dir (@dirs) + else { - last if -r "$dir/$devnm/$fnm" and open($$f,"<$dir/$devnm/$fnm"); + my (@dirs)=split($cfg{RT_SEP},$fontPath); + + foreach my $dir (@dirs) + { + my $attempt="$dir/$devnm/$fileName"; + if (-r "$attempt" and open($$f,"<$attempt")) { + $resolvedFileName=$attempt; + last; + } + } } + + Notice("opened '$resolvedFileName' for reading") + if $resolvedFileName; } sub LoadDesc _______________________________________________ groff-commit mailing list groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit