gbranden pushed a commit to branch master
in repository groff.
commit d2cb1117a9b74a6b740b6c5b4eac01451d016b53
Author: G. Branden Robinson <[email protected]>
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 <[email protected]>
+
+ * 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 <[email protected]>
* 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
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit