소스 검색

*** empty log message ***

François Pinard 30 년 전
부모
커밋
71c2c8c303
1개의 변경된 파일13개의 추가작업 그리고 4개의 파일을 삭제
  1. 13 4
      src/list.c

+ 13 - 4
src/list.c

@@ -172,6 +172,7 @@ read_and(do_something)
 		break;
 		break;
 	};
 	};
 
 
+	restore_saved_dir_info ();
 	close_archive();
 	close_archive();
 	names_notfound();		/* Print names not found */
 	names_notfound();		/* Print names not found */
 }		
 }		
@@ -380,8 +381,14 @@ decode_header(header, st, stdp, wantug)
 			st->st_uid = from_oct(8,  header->header.uid);
 			st->st_uid = from_oct(8,  header->header.uid);
 			st->st_gid = from_oct(8,  header->header.gid);
 			st->st_gid = from_oct(8,  header->header.gid);
 #else
 #else
-			st->st_uid = finduid(header->header.uname);
-			st->st_gid = findgid(header->header.gname);
+			st->st_uid = 
+			  (*header->header.uname
+			   ? finduid (header->header.uname)
+			   : from_oct (8, header->header.uid));
+			st->st_gid =
+			  (*header->header.gname
+			   ? findgid (header->header.gname)
+			   : from_oct (8, header->header.gid));
 #endif
 #endif
 		}
 		}
 #if defined(S_IFBLK) || defined(S_IFCHR)
 #if defined(S_IFBLK) || defined(S_IFCHR)
@@ -525,13 +532,15 @@ print_header()
 			user  = head->header.uname;
 			user  = head->header.uname;
 		} else {
 		} else {
 			user = uform;
 			user = uform;
-			(void)sprintf(uform, "%d", (int)hstat.st_uid);
+			(void)sprintf(uform, "%d",
+				      from_oct (8, head->header.uid));
 		}
 		}
 		if (*head->header.gname && head_standard) {
 		if (*head->header.gname && head_standard) {
 			group = head->header.gname;
 			group = head->header.gname;
 		} else {
 		} else {
 			group = gform;
 			group = gform;
-			(void)sprintf(gform, "%d", (int)hstat.st_gid);
+			(void)sprintf(gform, "%d",
+				      from_oct (8, head->header.gid));
 		}
 		}
 
 
 		/* Format the file size or major/minor device numbers */
 		/* Format the file size or major/minor device numbers */