/[webpac]/trunk2/all2xml.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk2/all2xml.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 98 by dpavlin, Sun Jul 13 22:29:14 2003 UTC revision 109 by dpavlin, Mon Jul 14 18:50:39 2003 UTC
# Line 294  print STDERR "reading ./import_xml/$type Line 294  print STDERR "reading ./import_xml/$type
294          # output current progress indicator          # output current progress indicator
295          my $last_p = 0;          my $last_p = 0;
296          sub progress {          sub progress {
297                  # XXX return if ($show_progress ne "");                  return if (! $show_progress);
298                  my $current = shift;                  my $current = shift;
299                  my $total = shift || 1;                  my $total = shift || 1;
300                  my $p = int($current * 100 / $total);                  my $p = int($current * 100 / $total);
# Line 306  print STDERR "reading ./import_xml/$type Line 306  print STDERR "reading ./import_xml/$type
306    
307          my $fake_dir = 1;          my $fake_dir = 1;
308          sub fakeprogress {          sub fakeprogress {
309                    return if (! $show_progress);
310                  my $current = shift @_;                  my $current = shift @_;
311    
312                  my @ind = ('-','\\','|','/','-','\\','|','/', '-');                  my @ind = ('-','\\','|','/','-','\\','|','/', '-');
# Line 327  print STDERR "using: $type...\n"; Line 328  print STDERR "using: $type...\n";
328                  $import2cp = Text::Iconv->new($config->{isis_codepage},$codepage);                  $import2cp = Text::Iconv->new($config->{isis_codepage},$codepage);
329                  my $db = OpenIsis::open( $isis_db );                  my $db = OpenIsis::open( $isis_db );
330    
331                    # check if .txt database for OpenIsis is zero length,
332                    # if so, erase it and re-open database
333                    sub check_txt_db {
334                            my $isis_db = shift || die "need isis database name";
335                            my $reopen = 0;
336    
337                            if (-e $isis_db.".TXT") {
338                                    print STDERR "WARNING: removing $isis_db.TXT OpenIsis database...\n";
339                                    unlink $isis_db.".TXT" || warn "FATAL: unlink error on '$isis_db.TXT': $!";
340                                    $reopen++;
341                            }
342                            if (-e $isis_db.".PTR") {
343                                    print STDERR "WARNING: removing $isis_db.PTR OpenIsis database...\n";
344                                    unlink $isis_db.".PTR" || warn "FATAL: unlink error on '$isis_db.PTR': $!";
345                                    $reopen++;
346                            }
347                            return OpenIsis::open( $isis_db ) if ($reopen);
348                    }
349    
350                    # EOF error
351                    if ($db == -1) {
352                            $db = check_txt_db($isis_db);
353                            if ($db == -1) {
354                                    print STDERR "FATAL: OpenIsis can't open zero size file $isis_db\n";
355                                    next;
356                            }
357                    }
358    
359                    # OpenIsis::ERR_BADF
360                    if ($db == -4) {
361                            print STDERR "FATAL: OpenIsis can't find file $isis_db\n";
362                            next;
363                    # OpenIsis::ERR_IO
364                    } elsif ($db == -5) {
365                            print STDERR "FATAL: OpenIsis can't access file $isis_db\n";
366                            next;
367                    } elsif ($db < 0) {
368                            print STDERR "FATAL: OpenIsis unknown error $db with file $isis_db\n";
369                            next;
370                    }
371    
372                  my $max_rowid = OpenIsis::maxRowid( $db );                  my $max_rowid = OpenIsis::maxRowid( $db );
373    
374                    # if 0 records, try to rease isis .txt database
375                    if ($max_rowid == 0) {
376                            # force removal of database
377                            $db = check_txt_db($isis_db);
378                            $max_rowid = OpenIsis::maxRowid( $db );
379                    }
380    
381                  print STDERR "Reading database: $isis_db [$max_rowid rows]\n";                  print STDERR "Reading database: $isis_db [$max_rowid rows]\n";
382    
383                  my $path = $database;                  my $path = $database;
# Line 350  print STDERR "using: $type...\n"; Line 399  print STDERR "using: $type...\n";
399                                  }                                  }
400                          }                          }
401                  }                  }
402                    # for this to work with current version of OpenIsis (0.9.0)
403                    # you might need my patch from
404                    # http://www.rot13.org/~dpavlin/projects/openisis-0.9.0-perl_close.diff
405                    OpenIsis::close($db);
406                  print STDERR "\n";                  print STDERR "\n";
407    
408          } elsif ($type_base eq "excel") {          } elsif ($type_base eq "excel") {

Legend:
Removed from v.98  
changed lines
  Added in v.109

  ViewVC Help
Powered by ViewVC 1.1.26