-
- /* If the user wants to guarantee that everything is under one directory,
- determine its name now and let it be created later. */
- if (one_top_level_option)
- {
- int i;
- char *base = base_name (archive_name_array[0]);
-
- for (i = strlen (base) - 1; i > 2; i--)
- if (!strncmp (base + i - 3, ".tar", 4) ||
- !strncmp (base + i - 3, ".taz", 4) ||
- !strncmp (base + i - 3, ".tbz", 4) ||
- !strncmp (base + i - 3, ".tb2", 4) ||
- !strncmp (base + i - 3, ".tgz", 4) ||
- !strncmp (base + i - 3, ".tlz", 4) ||
- !strncmp (base + i - 3, ".txz", 4)) break;
-
- if (i <= 3)
- {
- one_top_level_option = false;
- free (base);
- return;
- }
-
- one_top_level = xmalloc (i - 2);
- strncpy (one_top_level, base, i - 3);
- one_top_level[i - 3] = '\0';
- free (base);
- }