]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
fstyp(8): Show exFAT volume labels with -l flag
authorConrad Meyer <cem@FreeBSD.org>
Sun, 22 Dec 2019 03:19:17 +0000 (03:19 +0000)
committerEd Maste <emaste@FreeBSD.org>
Tue, 2 Feb 2021 21:12:04 +0000 (16:12 -0500)
commit58a9e1ca85797a050d3a39bffa6babcb9d3463a4
tree0e2db57eeb471d8fc0961b6ea5139ba235186c07
parenta2c37aa836c0d24b97102605d65971b887a8e957
fstyp(8): Show exFAT volume labels with -l flag

exfat is fundamentally the same design as fat32.  The superblock differs
marginally, and there are some additional optional features irrelevant to
fstype(8); the structure of dirents has changed slightly to enable, among
other things, larger files; the directory entries are no longer DOS 8.3
ASCII or local 8-bit encoding, but instead explicitly UCS-2-LE.

(As a result, this change uses iconv to convert a found exfat volume label
to the user's locale.)

Locating the volume label is identical to FAT32: locate the root directory
and walk through dirents until you find a volume label.  Like FAT32, follow
the FAT chain between root directory clusters as necessary.

PR: 242225
Reported by: Victor Sudakov <vas AT sibptus.ru>

(cherry picked from commit 85b4c344c8c69ff7993bc0ac833aaf9a8108b88d)

fstyp(8): Fix WITHOUT_ICONV build

Reported by: olivier

(cherry picked from commit 5ab1cb52b21fdc5524bd970e9b5cdff21a5bcabf)
usr.sbin/fstyp/Makefile
usr.sbin/fstyp/exfat.c
usr.sbin/fstyp/fstyp.c
usr.sbin/fstyp/fstyp.h
usr.sbin/fstyp/ntfs.c
usr.sbin/fstyp/tests/fstyp_test.sh