/[osn-commons]/trunk/uar/main.c
ViewVC logotype

Diff of /trunk/uar/main.c

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

revision 39 by rakinar2, Thu Aug 8 19:13:26 2024 UTC revision 40 by rakinar2, Sat Aug 10 14:44:20 2024 UTC
# Line 293  create_archive (void) Line 293  create_archive (void)
293    
294  /* Archive extraction callback. */  /* Archive extraction callback. */
295  static bool  static bool
296  extract_archive_callback (struct uar_file *file)  extract_archive_callback (struct uar_archive *uar,
297                              struct uar_file *file __attribute__ ((unused)),
298                              const char *uar_name __attribute__ ((unused)),
299                              const char *fs_name, enum uar_error_level level,
300                              const char *message)
301  {  {
302      pinfo ("extracting: %s\n", uar_file_get_name (file));      if (level == UAR_ELEVEL_NONE)
303            {
304                if (params.verbose)
305                    fprintf (stdout, "%s\n", fs_name);
306            }
307        else if (level == UAR_ELEVEL_WARNING)
308            perr ("warning: %s: %s\n", fs_name,
309                  message != NULL ? message : uar_strerror (uar));
310        else if (level == UAR_ELEVEL_ERROR)
311            perr ("error: %s: %s\n", fs_name,
312                  message != NULL ? message : uar_strerror (uar));
313    
314      return true;      return true;
315  }  }
316    
# Line 307  extract_archive (void) Line 322  extract_archive (void)
322    
323      pinfo ("extracting archive: %s\n", params.file);      pinfo ("extracting archive: %s\n", params.file);
324    
325      struct uar_archive *uar = uar_open (params.file);      struct uar_archive *uar = uar_stream_open (params.file);
326    
327      if (uar == NULL || uar_has_error (uar))      if (uar == NULL || uar_has_error (uar))
328          {          {
# Line 315  extract_archive (void) Line 330  extract_archive (void)
330              return;              return;
331          }          }
332    
333  #ifdef UAR_PRINT_VERBOSE_IMPL_INFO      uar_set_extract_callback (uar, &extract_archive_callback);
334      uar_debug_print (uar, false);  
335  #endif      if (params.cwd != NULL)
336            {
337                if (chdir (params.cwd) != 0)
338                    {
339                        pinfo ("failed to change working directory: %s\n",
340                               strerror (errno));
341                        return;
342                    }
343            }
344    
345        char *cwd = getcwd (NULL, 0);
346    
347      if (!uar_extract (uar, params.cwd, &extract_archive_callback))      if (!uar_stream_extract (uar, cwd))
348          {          {
349              pinfo ("failed to extract archive: %s\n", strerror (errno));              pinfo ("failed to extract archive: %s\n", strerror (errno));
350                free (cwd);
351              return;              return;
352          }          }
353    
354        free (cwd);
355      uar_close (uar);      uar_close (uar);
356  }  }
357    
# Line 502  list_archive (void) Line 529  list_archive (void)
529      table->files = xcalloc (nfiles, sizeof (struct archive_file_info));      table->files = xcalloc (nfiles, sizeof (struct archive_file_info));
530      table->nfiles = 0;      table->nfiles = 0;
531    
532      if (!uar_iterate (uar, &list_archive_callback_analyze, (void *) table))      if (!uar_stream_iterate (uar, &list_archive_callback_analyze,
533                                 (void *) table))
534          {          {
535              pinfo ("failed to read archive: %s\n", strerror (errno));              pinfo ("failed to read archive: %s\n", strerror (errno));
536              goto list_archive_end;              goto list_archive_end;

Legend:
Removed from v.39  
changed lines
  Added in v.40

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26