| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: fstyp.c,v 1.11 2020/01/01 12:47:19 tkusumi Exp $ */ | | 1 | /* $NetBSD: fstyp.c,v 1.12 2020/01/02 08:52:42 tkusumi Exp $ */ |
2 | | | 2 | |
3 | /*- | | 3 | /*- |
4 | * Copyright (c) 2017 The NetBSD Foundation, Inc. | | 4 | * Copyright (c) 2017 The NetBSD Foundation, Inc. |
5 | * Copyright (c) 2016 The DragonFly Project | | 5 | * Copyright (c) 2016 The DragonFly Project |
6 | * Copyright (c) 2014 The FreeBSD Foundation | | 6 | * Copyright (c) 2014 The FreeBSD Foundation |
7 | * All rights reserved. | | 7 | * All rights reserved. |
8 | * | | 8 | * |
9 | * This code is derived from software contributed to The NetBSD Foundation | | 9 | * This code is derived from software contributed to The NetBSD Foundation |
10 | * by Tomohiro Kusumi <kusumi.tomohiro@gmail.com>. | | 10 | * by Tomohiro Kusumi <kusumi.tomohiro@gmail.com>. |
11 | * | | 11 | * |
12 | * This software was developed by Edward Tomasz Napierala under sponsorship | | 12 | * This software was developed by Edward Tomasz Napierala under sponsorship |
13 | * from the FreeBSD Foundation. | | 13 | * from the FreeBSD Foundation. |
14 | * | | 14 | * |
| @@ -25,27 +25,27 @@ | | | @@ -25,27 +25,27 @@ |
25 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | 25 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | | 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | | 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
30 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | | 30 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
31 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | 31 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | 32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
33 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | | 33 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
34 | * SUCH DAMAGE. | | 34 | * SUCH DAMAGE. |
35 | * | | 35 | * |
36 | */ | | 36 | */ |
37 | #include <sys/cdefs.h> | | 37 | #include <sys/cdefs.h> |
38 | __RCSID("$NetBSD: fstyp.c,v 1.11 2020/01/01 12:47:19 tkusumi Exp $"); | | 38 | __RCSID("$NetBSD: fstyp.c,v 1.12 2020/01/02 08:52:42 tkusumi Exp $"); |
39 | | | 39 | |
40 | #include <sys/param.h> | | 40 | #include <sys/param.h> |
41 | #include <sys/disklabel.h> | | 41 | #include <sys/disklabel.h> |
42 | #include <sys/dkio.h> | | 42 | #include <sys/dkio.h> |
43 | #include <sys/ioctl.h> | | 43 | #include <sys/ioctl.h> |
44 | #include <sys/stat.h> | | 44 | #include <sys/stat.h> |
45 | #include <err.h> | | 45 | #include <err.h> |
46 | #include <errno.h> | | 46 | #include <errno.h> |
47 | #include <iconv.h> | | 47 | #include <iconv.h> |
48 | #include <locale.h> | | 48 | #include <locale.h> |
49 | #include <stdbool.h> | | 49 | #include <stdbool.h> |
50 | #include <stddef.h> | | 50 | #include <stddef.h> |
51 | #include <stdio.h> | | 51 | #include <stdio.h> |
| @@ -210,42 +210,26 @@ main(int argc, char **argv) | | | @@ -210,42 +210,26 @@ main(int argc, char **argv) |
210 | } | | 210 | } |
211 | } | | 211 | } |
212 | | | 212 | |
213 | argc -= optind; | | 213 | argc -= optind; |
214 | argv += optind; | | 214 | argv += optind; |
215 | if (argc != 1) | | 215 | if (argc != 1) |
216 | usage(); | | 216 | usage(); |
217 | | | 217 | |
218 | path = argv[0]; | | 218 | path = argv[0]; |
219 | | | 219 | |
220 | if (setlocale(LC_CTYPE, "") == NULL) | | 220 | if (setlocale(LC_CTYPE, "") == NULL) |
221 | err(1, "setlocale"); | | 221 | err(1, "setlocale"); |
222 | | | 222 | |
223 | /* Cache iconv conversion data before entering capability mode. */ | | | |
224 | if (show_label) { | | | |
225 | for (i = 0; i < (int)__arraycount(fstypes); i++) { | | | |
226 | iconv_t cd; | | | |
227 | | | | |
228 | if (fstypes[i].precache_encoding == NULL) | | | |
229 | continue; | | | |
230 | cd = iconv_open("", fstypes[i].precache_encoding); | | | |
231 | if (cd == (iconv_t)-1) | | | |
232 | err(1, "%s: iconv_open %s", fstypes[i].name, | | | |
233 | fstypes[i].precache_encoding); | | | |
234 | /* Iconv keeps a small cache of unused encodings. */ | | | |
235 | iconv_close(cd); | | | |
236 | } | | | |
237 | } | | | |
238 | | | | |
239 | /* | | 223 | /* |
240 | * DragonFly: Filesystems may have syntax to decorate path. | | 224 | * DragonFly: Filesystems may have syntax to decorate path. |
241 | * Make a wild guess. | | 225 | * Make a wild guess. |
242 | * XXX devpath is unsupported in NetBSD, but at least parse '@' for fp. | | 226 | * XXX devpath is unsupported in NetBSD, but at least parse '@' for fp. |
243 | */ | | 227 | */ |
244 | strlcpy(fdpath, path, sizeof(fdpath)); | | 228 | strlcpy(fdpath, path, sizeof(fdpath)); |
245 | p = strchr(fdpath, '@'); | | 229 | p = strchr(fdpath, '@'); |
246 | if (p) | | 230 | if (p) |
247 | *p = '\0'; | | 231 | *p = '\0'; |
248 | | | 232 | |
249 | fp = fopen(fdpath, "r"); | | 233 | fp = fopen(fdpath, "r"); |
250 | if (fp == NULL) { | | 234 | if (fp == NULL) { |
251 | if (strcmp(path, fdpath)) | | 235 | if (strcmp(path, fdpath)) |