View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000464 | file | General | public | 2023-07-05 11:02 | 2023-07-17 16:01 |
| Reporter | jpalus | Assigned To | christos | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | 5.44 | ||||
| Fixed in Version | 5.45 | ||||
| Summary | 0000464: Perl module with package version not detected as Perl source | ||||
| Description | Sample Perl file: $ cat test.pm package foo 1.0; is not detected as Perl source: $ file test.pm test.pm: ASCII text That's because current pattern does not cover optional version following package name. Attached two patches: 1. Change perl detection regexes to use [:space:] class instead of fixed space 2. Add support for version following package name as per https://perldoc.perl.org/functions/package | ||||
| Tags | No tags attached. | ||||
|
|
0001-perl-use-space-class-instead-of-fixed-spaces.patch (1,079 bytes)
From 32f07f408ffb920442072b06fd2e2fe15c7a48f2 Mon Sep 17 00:00:00 2001
From: Jan Palus <jpalus@fastmail.com>
Date: Wed, 5 Jul 2023 12:09:50 +0200
Subject: [PATCH 1/2] perl: use [:space:] class instead of fixed spaces
---
magic/Magdir/perl | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/magic/Magdir/perl b/magic/Magdir/perl
index c391d4a7..db1d633e 100644
--- a/magic/Magdir/perl
+++ b/magic/Magdir/perl
@@ -34,12 +34,12 @@
# by Dmitry V. Levin and Alexey Tourbin
# check the first line
0 search/8192 package
->0 regex \^package[\ \t]+[0-9A-Za-z_:]+\ *; Perl5 module source text
+>0 regex \^package[[:space:]]+[0-9A-Za-z_:]+[[:space:]]*; Perl5 module source text
!:strength + 40
# not 'p', check other lines
0 search/8192 !p
->0 regex \^package[\ \t]+[0-9A-Za-z_:]+\ *;
->>0 regex \^1\ *;|\^(use|sub|my)\ .*[(;{=] Perl5 module source text
+>0 regex \^package[[:space:]]+[0-9A-Za-z_:]+[[:space:]]*;
+>>0 regex \^1[[:space:]]*;|\^(use|sub|my)[[:space:]].*[(;{=] Perl5 module source text
!:strength + 75
# Perl POD documents
--
2.41.0
0002-perl-detect-files-with-version-after-package-name.patch (1,418 bytes)
From 355103d5873351b491db96e0b432d3c00de67b09 Mon Sep 17 00:00:00 2001
From: Jan Palus <jpalus@fastmail.com>
Date: Wed, 5 Jul 2023 12:12:06 +0200
Subject: [PATCH 2/2] perl: detect files with version after package name
as per https://perldoc.perl.org/functions/package perl allows to give
version after package name so in addition to:
package <package-name>;
add support for detecting:
package <package-name> <version>;
where <version> is version string consisting of numbers and dotts,
optionally prefixed with 'v'. Examples:
v1.2.3
1.0
---
magic/Magdir/perl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/magic/Magdir/perl b/magic/Magdir/perl
index db1d633e..d4e8080e 100644
--- a/magic/Magdir/perl
+++ b/magic/Magdir/perl
@@ -34,11 +34,11 @@
# by Dmitry V. Levin and Alexey Tourbin
# check the first line
0 search/8192 package
->0 regex \^package[[:space:]]+[0-9A-Za-z_:]+[[:space:]]*; Perl5 module source text
+>0 regex \^package[[:space:]]+[0-9A-Za-z_:]+[[:space:]]*([[:space:]]v?[0-9][0-9.]*)?[[:space:]]*; Perl5 module source text
!:strength + 40
# not 'p', check other lines
0 search/8192 !p
->0 regex \^package[[:space:]]+[0-9A-Za-z_:]+[[:space:]]*;
+>0 regex \^package[[:space:]]+[0-9A-Za-z_:]+[[:space:]]*([[:space:]]v?[0-9][0-9.]*)?[[:space:]]*;
>>0 regex \^1[[:space:]]*;|\^(use|sub|my)[[:space:]].*[(;{=] Perl5 module source text
!:strength + 75
--
2.41.0
|
|
|
Applied thanks! |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2023-07-05 11:02 | jpalus | New Issue | |
| 2023-07-05 11:02 | jpalus | File Added: 0001-perl-use-space-class-instead-of-fixed-spaces.patch | |
| 2023-07-05 11:02 | jpalus | File Added: 0002-perl-detect-files-with-version-after-package-name.patch | |
| 2023-07-17 16:01 | christos | Assigned To | => christos |
| 2023-07-17 16:01 | christos | Status | new => assigned |
| 2023-07-17 16:01 | christos | Status | assigned => resolved |
| 2023-07-17 16:01 | christos | Resolution | open => fixed |
| 2023-07-17 16:01 | christos | Fixed in Version | => 5.45 |
| 2023-07-17 16:01 | christos | Note Added: 0003959 |