/[webpac]/trunk/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 /trunk/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 137 by dpavlin, Wed Oct 29 22:57:43 2003 UTC
# Line 160  sub data2xml { Line 160  sub data2xml {
160                                          }                                          }
161                                          if ($filter) {                                          if ($filter) {
162                                                  no strict 'refs';                                                  no strict 'refs';
163                                                  $display_data .= join($delimiter,&$filter($display));                                                  $display_data .= $delimiter.&$filter($display) if ($display_data);
164                                          } else {                                          } else {
165                                                  if ($display_data) {                                                  $display_data .= $delimiter.$display if ($display_data);
                                                         $display_data .= $delimiter.$display;  
                                                 } else {  
                                                         $display_data .= $display;  
                                                 }  
166                                          }                                          }
167                                  }                                  }
168                                                                                                    
# Line 181  sub data2xml { Line 177  sub data2xml {
177                          if (@index_data) {                          if (@index_data) {
178                                  if ($index_filter) {                                  if ($index_filter) {
179                                          no strict 'refs';                                          no strict 'refs';
180                                          foreach my $d (&$index_filter(@index_data)) {                                          foreach my $d (@index_data) {
181                                                  $index->insert($field, $d, $path);                                                  $index->insert($field, &$index_filter($d), $path);
182                                          }                                          }
183                                  } else {                                  } else {
184                                          foreach my $d (@index_data) {                                          foreach my $d (@index_data) {
# Line 294  print STDERR "reading ./import_xml/$type Line 290  print STDERR "reading ./import_xml/$type
290          # output current progress indicator          # output current progress indicator
291          my $last_p = 0;          my $last_p = 0;
292          sub progress {          sub progress {
293                  # XXX return if ($show_progress ne "");                  return if (! $show_progress);
294                  my $current = shift;                  my $current = shift;
295                  my $total = shift || 1;                  my $total = shift || 1;
296                  my $p = int($current * 100 / $total);                  my $p = int($current * 100 / $total);
# Line 306  print STDERR "reading ./import_xml/$type Line 302  print STDERR "reading ./import_xml/$type
302    
303          my $fake_dir = 1;          my $fake_dir = 1;
304          sub fakeprogress {          sub fakeprogress {
305                    return if (! $show_progress);
306                  my $current = shift @_;                  my $current = shift @_;
307    
308                  my @ind = ('-','\\','|','/','-','\\','|','/', '-');                  my @ind = ('-','\\','|','/','-','\\','|','/', '-');
# Line 327  print STDERR "using: $type...\n"; Line 324  print STDERR "using: $type...\n";
324                  $import2cp = Text::Iconv->new($config->{isis_codepage},$codepage);                  $import2cp = Text::Iconv->new($config->{isis_codepage},$codepage);
325                  my $db = OpenIsis::open( $isis_db );                  my $db = OpenIsis::open( $isis_db );
326    
327                    # check if .txt database for OpenIsis is zero length,
328                    # if so, erase it and re-open database
329                    sub check_txt_db {
330                            my $isis_db = shift || die "need isis database name";
331                            my $reopen = 0;
332    
333                            if (-e $isis_db.".TXT") {
334                                    print STDERR "WARNING: removing $isis_db.TXT OpenIsis database...\n";
335                                    unlink $isis_db.".TXT" || warn "FATAL: unlink error on '$isis_db.TXT': $!";
336                                    $reopen++;
337                            }
338                            if (-e $isis_db.".PTR") {
339                                    print STDERR "WARNING: removing $isis_db.PTR OpenIsis database...\n";
340                                    unlink $isis_db.".PTR" || warn "FATAL: unlink error on '$isis_db.PTR': $!";
341                                    $reopen++;
342                            }
343                            return OpenIsis::open( $isis_db ) if ($reopen);
344                    }
345    
346                    # EOF error
347                    if ($db == -1) {
348                            $db = check_txt_db($isis_db);
349                            if ($db == -1) {
350                                    print STDERR "FATAL: OpenIsis can't open zero size file $isis_db\n";
351                                    next;
352                            }
353                    }
354    
355                    # OpenIsis::ERR_BADF
356                    if ($db == -4) {
357                            print STDERR "FATAL: OpenIsis can't find file $isis_db\n";
358                            next;
359                    # OpenIsis::ERR_IO
360                    } elsif ($db == -5) {
361                            print STDERR "FATAL: OpenIsis can't access file $isis_db\n";
362                            next;
363                    } elsif ($db < 0) {
364                            print STDERR "FATAL: OpenIsis unknown error $db with file $isis_db\n";
365                            next;
366                    }
367    
368                  my $max_rowid = OpenIsis::maxRowid( $db );                  my $max_rowid = OpenIsis::maxRowid( $db );
369    
370                    # if 0 records, try to rease isis .txt database
371                    if ($max_rowid == 0) {
372                            # force removal of database
373                            $db = check_txt_db($isis_db);
374                            $max_rowid = OpenIsis::maxRowid( $db );
375                    }
376    
377                  print STDERR "Reading database: $isis_db [$max_rowid rows]\n";                  print STDERR "Reading database: $isis_db [$max_rowid rows]\n";
378    
379                  my $path = $database;                  my $path = $database;
# Line 350  print STDERR "using: $type...\n"; Line 395  print STDERR "using: $type...\n";
395                                  }                                  }
396                          }                          }
397                  }                  }
398                    # for this to work with current version of OpenIsis (0.9.0)
399                    # you might need my patch from
400                    # http://www.rot13.org/~dpavlin/projects/openisis-0.9.0-perl_close.diff
401                    OpenIsis::close($db);
402                  print STDERR "\n";                  print STDERR "\n";
403    
404          } elsif ($type_base eq "excel") {          } elsif ($type_base eq "excel") {

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

  ViewVC Help
Powered by ViewVC 1.1.26