]> bicyclesonthemoon.info Git - botm/common-perl/commitdiff
change some regexp to use 'regex_sets' v1.1.4
authorb <rowerynaksiezycu@gmail.com>
Sat, 9 Mar 2024 19:55:55 +0000 (19:55 +0000)
committerb <rowerynaksiezycu@gmail.com>
Sat, 9 Mar 2024 19:55:55 +0000 (19:55 +0000)
botm_common.pm

index 33572f33f9ad63e0646f3d601fc487170e5f5b47..200d14c7ffc5663ceb75852f802c664e78e6c713 100644 (file)
@@ -19,6 +19,7 @@ use strict;
 #use warnings;
 use utf8;
 use feature 'state';
+use experimental 'regex_sets';
 
 use Encode::Locale;
 use Encode ('encode', 'decode');
@@ -26,7 +27,7 @@ use File::Copy;
 
 use Exporter;
 
-our $VERSION     = '1.1.3';
+our $VERSION     = '1.1.4';
 our @ISA         = qw(Exporter);
 our @EXPORT      = ();
 our @EXPORT_OK   = (
@@ -464,7 +465,7 @@ sub read_data_file {
                        }
                }
                # Line starts with a name followed by colon/equal sign. Save the value
-               elsif ($line =~ /^([ -9;-<>-~]+)((:[ \t])|=)/s) {
+               elsif ($line =~ /^((?[[\ -~]-[:=]])+)((:[ \t])|=)/s) {
                        $name = lc($1);
                        $value = $';
                        
@@ -618,7 +619,7 @@ sub write_postdata_file {
        return 1;
 }
 
-# read_list_file() reads a list file and returns an arral with the data values.
+# read_list_file() reads a list file and returns an array with the data values.
 #
 # $file is the path to the file to read.
 # file will be opened, read, and closed.
@@ -884,7 +885,7 @@ use constant HTTP_STATUS => {
 sub http_header_line {
        (my $name, my $value, my $single_line) = @_;
        if (
-               ($name !~ /^[\x21\x23-\x27\x2a\x2b\x2d\x2e\x30-\x39\x3d\x41-\x5a\x5e-\x7a\x7c\x7e]+$/s) ||
+               ($name !~ /^(?[[\x21-\x7e]-["\(\),\/:;<>\?\[\\\]\{\|\}]])+$/s) ||
                ($value !~ /^([^\x00-\x1f\x7f]|((\r?\n)?[ \t]))*$/s)
        ) {
                # name: 'token'
@@ -970,18 +971,18 @@ sub http_header_content_length {
 sub http_header_content_disposition {
        (my $type, my $filename) = @_;
        
-       if ($type !~ /^[\x21\x23-\x27\x2a\x2b\x2d\x2e\x30-\x39\x3d\x41-\x5a\x5e-\x7a\x7c\x7e]+$/s) {
+       if ($type !~ /^(?[[\x21-\x7e]-["\(\),\/:;<>\?\[\\\]\{\}]])+$/s) {
                return '';
        }
        my $value = lc($type);
        
        if ($filename ne '') {
                $value .= '; filename';
-               if ($filename =~ /^[\x21\x23-\x27\x2a\x2b\x2d\x2e\x30-\x39\x3d\x41-\x5a\x5e-\x7a\x7c\x7e]+$/s) {
+               if ($filename =~ /^(?[[\x21-\x7e]-["\(\),\/:;<>\?\[\\\]\{\}]])+$/s) {
                        # token
                        $value .= '='.$filename;
                }
-               elsif ($filename =~ /^[\x20-\x21\x23-\x5b\x5d-\x7e]*$/s) {
+               elsif ($filename =~ /^(?[[\x20-\x7e]-["\\]])*$/s) {
                        # quoted-string
                        $value .= '="'.$filename.'"';
                }
@@ -997,7 +998,7 @@ sub http_header_content_disposition {
 
 # sub http_header_content_type {
        # (my $media_type, my $parameters) = @_;
-       # if ($media_type !~ /^[\x21\x23-\x27\x2a\x2b\x2d\x2e\x30-\x39\x3d\x41-\x5a\x5e-\x7a\x7c\x7e]+\/[\x21\x23-\x27\x2a\x2b\x2d\x2e\x30-\x39\x3d\x41-\x5a\x5e-\x7a\x7c\x7e]+$/s) {
+       # if ($media_type !~ /^(?[[\x21-\x7e]-["\(\),\/:;<>\?\[\\\]\{\}])+$/s) {
                # return ''
        # }
        # my $value = media_type;