View | Details | Raw Unified | Return to bug 33341
Collapse All | Expand All

(-)a/C4/Installer.pm (-15 / +19 lines)
Lines 123-141 sub marc_framework_sql_list { Link Here
123
123
124
    undef $/;
124
    undef $/;
125
    my $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/$lang/marcflavour/".lc($marcflavour);
125
    my $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/$lang/marcflavour/".lc($marcflavour);
126
    unless (opendir( MYDIR, $dir )) {
126
    my $dir_h;
127
    unless (opendir( $dir_h, $dir )) {
127
        if ($lang eq 'en') {
128
        if ($lang eq 'en') {
128
            warn "cannot open MARC frameworks directory $dir";
129
            warn "cannot open MARC frameworks directory $dir";
129
        } else {
130
        } else {
130
            # if no translated MARC framework is available,
131
            # if no translated MARC framework is available,
131
            # default to English
132
            # default to English
132
            $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/en/marcflavour/".lc($marcflavour);
133
            $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/en/marcflavour/".lc($marcflavour);
133
            opendir(MYDIR, $dir) or warn "cannot open English MARC frameworks directory $dir";
134
            opendir($dir_h, $dir) or warn "cannot open English MARC frameworks directory $dir";
134
            $defaulted_to_en = 1;
135
            $defaulted_to_en = 1;
135
        }
136
        }
136
    }
137
    }
137
    my @listdir = sort grep { !/^\.|marcflavour/ && -d "$dir/$_" } readdir(MYDIR);
138
    my @listdir = sort grep { !/^\.|marcflavour/ && -d "$dir/$_" } readdir($dir_h);
138
    closedir MYDIR;
139
    closedir $dir_h;
139
140
140
    my @fwklist;
141
    my @fwklist;
141
    my $request = $self->{'dbh'}->prepare("SELECT value FROM systempreferences WHERE variable='FrameworksLoaded'");
142
    my $request = $self->{'dbh'}->prepare("SELECT value FROM systempreferences WHERE variable='FrameworksLoaded'");
Lines 148-156 sub marc_framework_sql_list { Link Here
148
    }
149
    }
149
150
150
    foreach my $requirelevel (@listdir) {
151
    foreach my $requirelevel (@listdir) {
151
        opendir( MYDIR, "$dir/$requirelevel" );
152
        my $dir_h;
152
        my @listname = grep { !/^\./ && -f "$dir/$requirelevel/$_" && $_ =~ m/\.(sql|yml)$/ } readdir(MYDIR);
153
        opendir( $dir_h, "$dir/$requirelevel" );
153
        closedir MYDIR;
154
        my @listname = grep { !/^\./ && -f "$dir/$requirelevel/$_" && $_ =~ m/\.(sql|yml)$/ } readdir($dir_h);
155
        closedir $dir_h;
154
        my %cell;
156
        my %cell;
155
        my @frameworklist;
157
        my @frameworklist;
156
        map {
158
        map {
Lines 206-224 sub sample_data_sql_list { Link Here
206
208
207
    undef $/;
209
    undef $/;
208
    my $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/$lang";
210
    my $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/$lang";
209
    unless (opendir( MYDIR, $dir )) {
211
    my $dir_h;
212
    unless (opendir( $dir_h, $dir )) {
210
        if ($lang eq 'en') {
213
        if ($lang eq 'en') {
211
            warn "cannot open sample data directory $dir";
214
            warn "cannot open sample data directory $dir";
212
        } else {
215
        } else {
213
            # if no sample data is available,
216
            # if no sample data is available,
214
            # default to English
217
            # default to English
215
            $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/en";
218
            $dir = C4::Context->config('intranetdir') . "/installer/data/$self->{dbms}/en";
216
            opendir(MYDIR, $dir) or warn "cannot open English sample data directory $dir";
219
            opendir($dir_h, $dir) or warn "cannot open English sample data directory $dir";
217
            $defaulted_to_en = 1;
220
            $defaulted_to_en = 1;
218
        }
221
        }
219
    }
222
    }
220
    my @listdir = sort grep { !/^\.|marcflavour/ && -d "$dir/$_" } readdir(MYDIR);
223
    my @listdir = sort grep { !/^\.|marcflavour/ && -d "$dir/$_" } readdir($dir_h);
221
    closedir MYDIR;
224
    closedir $dir_h;
222
225
223
    my @levellist;
226
    my @levellist;
224
    my $request = $self->{'dbh'}->prepare("SELECT value FROM systempreferences WHERE variable='FrameworksLoaded'");
227
    my $request = $self->{'dbh'}->prepare("SELECT value FROM systempreferences WHERE variable='FrameworksLoaded'");
Lines 231-239 sub sample_data_sql_list { Link Here
231
    }
234
    }
232
235
233
    foreach my $requirelevel (@listdir) {
236
    foreach my $requirelevel (@listdir) {
234
        opendir( MYDIR, "$dir/$requirelevel" );
237
        my $dir_h;
235
        my @listname = grep { !/^\./ && -f "$dir/$requirelevel/$_" && $_ =~ m/\.(sql|yml)$/ } readdir(MYDIR);
238
        opendir( $dir_h, "$dir/$requirelevel" );
236
        closedir MYDIR;
239
        my @listname = grep { !/^\./ && -f "$dir/$requirelevel/$_" && $_ =~ m/\.(sql|yml)$/ } readdir($dir_h);
240
        closedir $dir_h;
237
        my %cell;
241
        my %cell;
238
        my @frameworklist;
242
        my @frameworklist;
239
        map {
243
        map {
Lines 847-853 sub run_atomic_updates { Link Here
847
            my $code = read_file( $filepath );
851
            my $code = read_file( $filepath );
848
            my ( $out, $err ) = ('', '');
852
            my ( $out, $err ) = ('', '');
849
            {
853
            {
850
                open my $oldout, ">&STDOUT";
854
                open my $oldout, qw{>}, "&STDOUT";
851
                close STDOUT;
855
                close STDOUT;
852
                open STDOUT,'>:encoding(utf8)', \$out;
856
                open STDOUT,'>:encoding(utf8)', \$out;
853
                my $DBversion = Koha::version; # We need $DBversion and $dbh for the eval
857
                my $DBversion = Koha::version; # We need $DBversion and $dbh for the eval
(-)a/C4/Koha.pm (-2 / +4 lines)
Lines 301-312 sub getallthemes { Link Here
301
    else {
301
    else {
302
        $htdocs = C4::Context->config('opachtdocs');
302
        $htdocs = C4::Context->config('opachtdocs');
303
    }
303
    }
304
    opendir D, "$htdocs";
304
    my $dir_h;
305
    my @dirlist = readdir D;
305
    opendir $dir_h, "$htdocs";
306
    my @dirlist = readdir $dir_h;
306
    foreach my $directory (@dirlist) {
307
    foreach my $directory (@dirlist) {
307
        next if $directory eq 'lib';
308
        next if $directory eq 'lib';
308
        -d "$htdocs/$directory/en" and push @themes, $directory;
309
        -d "$htdocs/$directory/en" and push @themes, $directory;
309
    }
310
    }
311
    close $dir_h;
310
    return @themes;
312
    return @themes;
311
}
313
}
312
314
(-)a/C4/Languages.pm (-8 / +13 lines)
Lines 76-84 sub getFrameworkLanguages { Link Here
76
    
76
    
77
    # find the available directory names
77
    # find the available directory names
78
    my $dir=C4::Context->config('intranetdir')."/installer/data/";
78
    my $dir=C4::Context->config('intranetdir')."/installer/data/";
79
    opendir (MYDIR,$dir);
79
    my $dir_h;
80
    my @listdir= grep { !/^\.|CVS/ && -d "$dir/$_"} readdir(MYDIR);    
80
    opendir ($dir_h,$dir);
81
    closedir MYDIR;
81
    my @listdir= grep { !/^\.|CVS/ && -d "$dir/$_"} readdir($dir_h);
82
    closedir $dir_h;
82
83
83
    # pull out all data for the dir names that exist
84
    # pull out all data for the dir names that exist
84
    for my $dirname (@listdir) {
85
    for my $dirname (@listdir) {
Lines 293-304 sub _get_themes { Link Here
293
    else {
294
    else {
294
        $htdocs = C4::Context->config('opachtdocs');
295
        $htdocs = C4::Context->config('opachtdocs');
295
    }
296
    }
296
    opendir D, "$htdocs";
297
    my $dir_h;
297
    my @dirlist = readdir D;
298
    opendir $dir_h, "$htdocs";
299
    my @dirlist = readdir $dir_h;
298
    foreach my $directory (@dirlist) {
300
    foreach my $directory (@dirlist) {
299
        # if there's an en dir, it's a valid theme
301
        # if there's an en dir, it's a valid theme
300
        -d "$htdocs/$directory/en" and push @themes, $directory;
302
        -d "$htdocs/$directory/en" and push @themes, $directory;
301
    }
303
    }
304
    close $dir_h;
302
    return @themes;
305
    return @themes;
303
}
306
}
304
307
Lines 313-320 sub _get_language_dirs { Link Here
313
    $htdocs //= '';
316
    $htdocs //= '';
314
    $theme //= '';
317
    $theme //= '';
315
    my @lang_strings;
318
    my @lang_strings;
316
    opendir D, "$htdocs/$theme";
319
    my $dir_h;
317
    for my $lang_string ( readdir D ) {
320
    opendir $dir_h, "$htdocs/$theme";
321
    for my $lang_string ( readdir $dir_h ) {
318
        next if $lang_string =~/^\./;
322
        next if $lang_string =~/^\./;
319
        next if $lang_string eq 'all';
323
        next if $lang_string eq 'all';
320
        next if $lang_string =~/png$/;
324
        next if $lang_string =~/png$/;
Lines 325-331 sub _get_language_dirs { Link Here
325
        next if $lang_string =~/img|images|famfam|js|less|lib|sound|pdf/;
329
        next if $lang_string =~/img|images|famfam|js|less|lib|sound|pdf/;
326
        push @lang_strings, $lang_string;
330
        push @lang_strings, $lang_string;
327
    }
331
    }
328
        return (@lang_strings);
332
    close $dir_h;
333
    return (@lang_strings);
329
}
334
}
330
335
331
=head2 _build_languages_arrayref 
336
=head2 _build_languages_arrayref 
(-)a/C4/Ris.pm (-1 / +1 lines)
Lines 97-103 sub marc2ris { Link Here
97
    my $intype = lc($marcflavour);
97
    my $intype = lc($marcflavour);
98
98
99
    # Let's redirect stdout
99
    # Let's redirect stdout
100
    open my $oldout, ">&STDOUT";
100
    open my $oldout, qw{>}, "&STDOUT";
101
    my $outvar;
101
    my $outvar;
102
    close STDOUT;
102
    close STDOUT;
103
    open STDOUT,'>:encoding(utf8)', \$outvar;
103
    open STDOUT,'>:encoding(utf8)', \$outvar;
(-)a/Koha/AuthUtils.pm (-3 / +4 lines)
Lines 122-128 sub generate_salt { Link Here
122
        $source = '/dev/urandom'; # non-blocking
122
        $source = '/dev/urandom'; # non-blocking
123
    }
123
    }
124
124
125
    sysopen SOURCE, $source, O_RDONLY
125
    my $source_fh;
126
    sysopen $source_fh, $source, O_RDONLY
126
        or die "failed to open source '$source' in Koha::AuthUtils::generate_salt\n";
127
        or die "failed to open source '$source' in Koha::AuthUtils::generate_salt\n";
127
128
128
    # $bytes is the bytes just read
129
    # $bytes is the bytes just read
Lines 132-138 sub generate_salt { Link Here
132
    # keep reading until we have $length bytes in $strength
133
    # keep reading until we have $length bytes in $strength
133
    while( length($string) < $length ){
134
    while( length($string) < $length ){
134
        # return the number of bytes read, 0 (EOF), or -1 (ERROR)
135
        # return the number of bytes read, 0 (EOF), or -1 (ERROR)
135
        my $return = sysread SOURCE, $bytes, $length - length($string);
136
        my $return = sysread $source_fh, $bytes, $length - length($string);
136
137
137
        # if no bytes were read, keep reading (if using /dev/random it is possible there was insufficient entropy so this may block)
138
        # if no bytes were read, keep reading (if using /dev/random it is possible there was insufficient entropy so this may block)
138
        next unless $return;
139
        next unless $return;
Lines 143-149 sub generate_salt { Link Here
143
        $string .= $bytes;
144
        $string .= $bytes;
144
    }
145
    }
145
146
146
    close SOURCE;
147
    close $source_fh;
147
    return $string;
148
    return $string;
148
}
149
}
149
150
(-)a/admin/auth_subfields_structure.pl (-12 / +13 lines)
Lines 87-105 if ($op eq 'add_form') { Link Here
87
	# 2 cases here : on CVS install, $cgidir does not need a /cgi-bin
87
	# 2 cases here : on CVS install, $cgidir does not need a /cgi-bin
88
	# on a standard install, /cgi-bin need to be added. 
88
	# on a standard install, /cgi-bin need to be added. 
89
	# test one, then the other
89
	# test one, then the other
90
    my $cgidir = C4::Context->config('intranetdir') ."/cgi-bin";
90
    my $cgidir = C4::Context->config('intranetdir') . "/cgi-bin";
91
	unless (opendir(DIR, "$cgidir/cataloguing/value_builder")) {
91
    my $dir_h;
92
    unless ( opendir( $dir_h, "$cgidir/cataloguing/value_builder" ) ) {
92
        $cgidir = C4::Context->config('intranetdir');
93
        $cgidir = C4::Context->config('intranetdir');
93
		opendir(DIR, "$cgidir/cataloguing/value_builder") || die "can't opendir $cgidir/value_builder: $!";
94
        opendir( $dir_h, "$cgidir/cataloguing/value_builder" ) || die "can't opendir $cgidir/value_builder: $!";
94
	} 
95
    }
95
	while (my $line = readdir(DIR)) {
96
    while ( my $line = readdir($dir_h) ) {
96
        if ( $line =~ /\.pl$/ &&
97
        if (   $line =~ /\.pl$/
97
             $line !~ /EXAMPLE\.pl$/ ) { # documentation purposes
98
            && $line !~ /EXAMPLE\.pl$/ ) {    # documentation purposes
98
            push (@value_builder,$line);
99
            push( @value_builder, $line );
99
		}
100
        }
100
	}
101
    }
101
        @value_builder= sort {$a cmp $b} @value_builder;
102
    @value_builder = sort { $a cmp $b } @value_builder;
102
	closedir DIR;
103
    closedir $dir_h;
103
104
104
    my @loop_data;
105
    my @loop_data;
105
    my $asses = Koha::Authority::Subfields->search({ tagfield => $tagfield, authtypecode => $authtypecode}, {order_by => 'display_order'})->unblessed;
106
    my $asses = Koha::Authority::Subfields->search({ tagfield => $tagfield, authtypecode => $authtypecode}, {order_by => 'display_order'})->unblessed;
(-)a/admin/marc_subfields_structure.pl (-4 / +5 lines)
Lines 111-129 if ( $op eq 'add_form' ) { Link Here
111
    # on a standard install, /cgi-bin need to be added.
111
    # on a standard install, /cgi-bin need to be added.
112
    # test one, then the other
112
    # test one, then the other
113
    my $cgidir = C4::Context->config('intranetdir') . "/cgi-bin";
113
    my $cgidir = C4::Context->config('intranetdir') . "/cgi-bin";
114
    unless ( opendir( DIR, "$cgidir/cataloguing/value_builder" ) ) {
114
    my $dir_h;
115
    unless ( opendir( $dir_h, "$cgidir/cataloguing/value_builder" ) ) {
115
        $cgidir = C4::Context->config('intranetdir');
116
        $cgidir = C4::Context->config('intranetdir');
116
        opendir( DIR, "$cgidir/cataloguing/value_builder" )
117
        opendir( $dir_h, "$cgidir/cataloguing/value_builder" )
117
          || die "can't opendir $cgidir/value_builder: $!";
118
          || die "can't opendir $cgidir/value_builder: $!";
118
    }
119
    }
119
    while ( my $line = readdir(DIR) ) {
120
    while ( my $line = readdir($dir_h) ) {
120
        if ( $line =~ /\.pl$/ &&
121
        if ( $line =~ /\.pl$/ &&
121
             $line !~ /EXAMPLE\.pl$/ ) { # documentation purposes
122
             $line !~ /EXAMPLE\.pl$/ ) { # documentation purposes
122
            push( @value_builder, $line );
123
            push( @value_builder, $line );
123
        }
124
        }
124
    }
125
    }
125
    @value_builder= sort {$a cmp $b} @value_builder;
126
    @value_builder= sort {$a cmp $b} @value_builder;
126
    closedir DIR;
127
    closedir $dir_h;
127
128
128
    # build values list
129
    # build values list
129
    my $mss = Koha::MarcSubfieldStructures->search(
130
    my $mss = Koha::MarcSubfieldStructures->search(
(-)a/installer/install.pl (-4 / +5 lines)
Lines 327-333 elsif ( $step && $step == 3 ) { Link Here
327
        my $dir =
327
        my $dir =
328
          C4::Context->config('intranetdir')
328
          C4::Context->config('intranetdir')
329
          . "/installer/data/$info{dbms}/$langchoice/marcflavour";
329
          . "/installer/data/$info{dbms}/$langchoice/marcflavour";
330
        unless ( opendir( MYDIR, $dir ) ) {
330
        my $dir_h;
331
        unless ( opendir( $dir_h, $dir ) ) {
331
            if ( $langchoice eq 'en' ) {
332
            if ( $langchoice eq 'en' ) {
332
                warn "cannot open MARC frameworks directory $dir";
333
                warn "cannot open MARC frameworks directory $dir";
333
            }
334
            }
Lines 336-347 elsif ( $step && $step == 3 ) { Link Here
336
                # default to English
337
                # default to English
337
                $dir = C4::Context->config('intranetdir')
338
                $dir = C4::Context->config('intranetdir')
338
                  . "/installer/data/$info{dbms}/en/marcflavour";
339
                  . "/installer/data/$info{dbms}/en/marcflavour";
339
                opendir( MYDIR, $dir )
340
                opendir( $dir_h, $dir )
340
                  or warn "cannot open English MARC frameworks directory $dir";
341
                  or warn "cannot open English MARC frameworks directory $dir";
341
            }
342
            }
342
        }
343
        }
343
        my @listdir = grep { !/^\./ && -d "$dir/$_" } readdir(MYDIR);
344
        my @listdir = grep { !/^\./ && -d "$dir/$_" } readdir($dir_h);
344
        closedir MYDIR;
345
        closedir $dir_h;
345
        my $marcflavour = C4::Context->preference("marcflavour");
346
        my $marcflavour = C4::Context->preference("marcflavour");
346
        my @flavourlist;
347
        my @flavourlist;
347
        foreach my $marc (@listdir) {
348
        foreach my $marc (@listdir) {
(-)a/misc/maintenance/generate_MARC21Languages.pl (-1 / +1 lines)
Lines 56-62 my $out_handle; Link Here
56
if (defined $outfile) {
56
if (defined $outfile) {
57
    open( $out_handle, ">", $outfile ) || croak("Cannot open output file");
57
    open( $out_handle, ">", $outfile ) || croak("Cannot open output file");
58
} else {
58
} else {
59
    open( $out_handle, ">&STDOUT" ) || croak("Couldn't duplicate STDOUT: $!");
59
    open( $out_handle, q{>}, "&STDOUT" ) || croak("Couldn't duplicate STDOUT: $!");
60
}
60
}
61
generate_header($out_handle);
61
generate_header($out_handle);
62
generate_body($out_handle, $languages);
62
generate_body($out_handle, $languages);
(-)a/misc/translator/tmpl_process3.pl (-3 / +4 lines)
Lines 157-165 sub listfiles { Link Here
157
    my $match     = join ('|', @match);     # use only this files
157
    my $match     = join ('|', @match);     # use only this files
158
    my $nomatch   = join ('|', @nomatch);   # do no use this files
158
    my $nomatch   = join ('|', @nomatch);   # do no use this files
159
    my @it = ();
159
    my @it = ();
160
    if (opendir(DIR, $dir)) {
160
    my $dir_h;
161
        my @dirent = readdir DIR;   # because DIR is shared when recursing
161
    if (opendir($dir_h, $dir)) {
162
        closedir DIR;
162
        my @dirent = readdir $dir_h;   # because $dir_h is shared when recursing
163
        closedir $dir_h;
163
        for my $dirent (@dirent) {
164
        for my $dirent (@dirent) {
164
            my $path = "$dir/$dirent";
165
            my $path = "$dir/$dirent";
165
            if ($dirent =~ /^\./ || $dirent eq 'CVS' || $dirent eq 'RCS'
166
            if ($dirent =~ /^\./ || $dirent eq 'CVS' || $dirent eq 'RCS'
(-)a/misc/translator/xgettext.pl (-1 / +1 lines)
Lines 387-393 if (defined $output && $output ne '-') { Link Here
387
    open($OUTPUT, '>:encoding(utf-8)', $output) || die "$output: $!\n";
387
    open($OUTPUT, '>:encoding(utf-8)', $output) || die "$output: $!\n";
388
} else {
388
} else {
389
    print STDERR "$0: Outputting to STDOUT...\n" if $verbose_p;
389
    print STDERR "$0: Outputting to STDOUT...\n" if $verbose_p;
390
    open($OUTPUT, ">&STDOUT");
390
    open($OUTPUT, q{>}, "&STDOUT");
391
}
391
}
392
392
393
if (defined $files_from) {
393
if (defined $files_from) {
(-)a/tools/access_files.pl (-3 / +4 lines)
Lines 61-68 else { Link Here
61
    #Get the files list
61
    #Get the files list
62
    my @files_list;
62
    my @files_list;
63
    foreach my $dir(@directories){
63
    foreach my $dir(@directories){
64
        opendir(DIR, $dir);
64
        my $dir_h;
65
        foreach my $filename (readdir(DIR)) {
65
        opendir($dir_h, $dir);
66
        foreach my $filename (readdir($dir_h)) {
66
            my $full_path = "$dir/$filename";
67
            my $full_path = "$dir/$filename";
67
            my $id = md5_hex($full_path);
68
            my $id = md5_hex($full_path);
68
            next if ($filename =~ /^\./ or -d $full_path);
69
            next if ($filename =~ /^\./ or -d $full_path);
Lines 84-90 else { Link Here
84
                               size => $st->size,
85
                               size => $st->size,
85
                               id   => $id});
86
                               id   => $id});
86
        }
87
        }
87
        closedir(DIR);
88
        closedir($dir_h);
88
    }
89
    }
89
90
90
    my %files_hash = map { $_->{id} => $_ } @files_list;
91
    my %files_hash = map { $_->{id} => $_ } @files_list;
(-)a/tools/picture-upload.pl (-7 / +8 lines)
Lines 145-156 if ( ( $op eq 'Upload' ) && ($uploadfile || $uploadfiletext) ) { Link Here
145
        }
145
        }
146
        push @directories, "$dirname";
146
        push @directories, "$dirname";
147
        foreach my $recursive_dir (@directories) {
147
        foreach my $recursive_dir (@directories) {
148
            opendir RECDIR, $recursive_dir;
148
            my $recdir_h;
149
            while ( my $entry = readdir RECDIR ) {
149
            opendir $recdir_h, $recursive_dir;
150
            while ( my $entry = readdir $recdir_h ) {
150
                push @directories, "$recursive_dir/$entry"
151
                push @directories, "$recursive_dir/$entry"
151
                  if ( -d "$recursive_dir/$entry" and $entry !~ /^\./ );
152
                  if ( -d "$recursive_dir/$entry" and $entry !~ /^\./ );
152
            }
153
            }
153
            closedir RECDIR;
154
            closedir $recdir_h;
154
        }
155
        }
155
        foreach my $dir (@directories) {
156
        foreach my $dir (@directories) {
156
            $results = handle_dir( $dir, $filesuffix, $template );
157
            $results = handle_dir( $dir, $filesuffix, $template );
Lines 225-232 sub handle_dir { Link Here
225
        my ( $file, $filename );
226
        my ( $file, $filename );
226
        undef $cardnumber;
227
        undef $cardnumber;
227
        $logger->debug("Passed a zip file.");
228
        $logger->debug("Passed a zip file.");
228
        opendir DIR, $dir;
229
        my $dir_h;
229
        while ( my $filename = readdir DIR ) {
230
        opendir $dir_h, $dir;
231
        while ( my $filename = readdir $dir_h ) {
230
            $file = "$dir/$filename"
232
            $file = "$dir/$filename"
231
              if ( $filename =~ m/datalink\.txt/i
233
              if ( $filename =~ m/datalink\.txt/i
232
                || $filename =~ m/idlink\.txt/i );
234
                || $filename =~ m/idlink\.txt/i );
Lines 262-268 sub handle_dir { Link Here
262
            $source = "$dir/$filename";
264
            $source = "$dir/$filename";
263
            %counts = handle_file( $cardnumber, $source, $template, %counts );
265
            %counts = handle_file( $cardnumber, $source, $template, %counts );
264
        }
266
        }
265
        closedir DIR;
267
        closedir $dir_h;
266
    }
268
    }
267
    else {
269
    else {
268
        %counts = handle_file( $cardnumber, $source, $template, %counts );
270
        %counts = handle_file( $cardnumber, $source, $template, %counts );
269
- 

Return to bug 33341