6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * This file and its contents are supplied under the terms of the
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * Common Development and Distribution License ("CDDL"), version 1.0.
5aec55eb0591d2fcdd38d7dd5408a6ff3456e596Garrett D'Amore * You may only use this file in accordance with the terms of version
5aec55eb0591d2fcdd38d7dd5408a6ff3456e596Garrett D'Amore * 1.0 of the CDDL.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * A full copy of the text of the CDDL should have accompanied this
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * source. A copy of the CDDL is also available via the Internet at
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * Copyright 2010 Nexenta Systems, Inc. All rights reserved.
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore * Copyright 2013 DEY Storage Systems, Inc.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * POSIX localedef.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore return ("CHARMAP");
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore return ("WIDTH");
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore return ("LC_COLLATE");
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore return ("LC_CTYPE");
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore return ("LC_MESSAGES");
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore return ("LC_MONETARY");
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore return ("LC_NUMERIC");
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore return ("LC_TIME");
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) snprintf(locpath, sizeof (locpath), "%s/%s/LCL_DATA",
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) printf(_("Writing category %s: "), category_name());
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore /* make the parent directory */
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) mkdirp(dirname(category_file()), 0755);
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * note that we have to regenerate the file name, as dirname
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * clobbered it.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * This function is used when copying the category from another
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * locale. Note that the copy is actually performed using a hard
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore * link for efficiency.
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) snprintf(srcpath, sizeof (srcpath), "%s/%s/LCL_DATA",
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore if ((rv != 0) && (strchr(srcpath, '/') == NULL)) {
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore /* Maybe we should try the system locale */
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore "/usr/lib/locale/%s/%s/LCL_DATA", src, category_name());
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore errf(_("source locale data unavailable"), src);
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) printf(_("Copying category %s from %s: "),
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore /* make the parent directory */
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) mkdirp(dirname(category_file()), 0755);
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore errf(_("unable to copy locale data: %s"), strerror(errno));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore _("Usage: localedef [options] localename\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) fprintf(stderr, ("[options] are:\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) fprintf(stderr, (" -c : ignore warnings\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) fprintf(stderr, (" -v : verbose output\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) fprintf(stderr, (" -U : ignore undefined symbols\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) fprintf(stderr, (" -f charmap : use given charmap file\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) fprintf(stderr, (" -u encoding : assume encoding\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) fprintf(stderr, (" -w widths : use screen widths file\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) fprintf(stderr, (" -i locsrc : source file for locale\n"));
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore while ((c = getopt(argc, argv, "w:i:cf:u:vU")) != -1) {
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) printf(_("Processing locale %s.\n"), locname);
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) printf(_("Loading charmap %s.\n"), cfname);
2da1cd3a39e2d3da7f9d15071ea9462919c011acGarrett D'Amore (void) printf(_("Loading widths %s.\n"), wfname);
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) printf(_("Loading POSIX portable characters.\n"));
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore /* make the directory for the locale if not already present */
6b5e5868e7ebf1aff3a5abd7d0c4ef0e5fbf3648Garrett D'Amore (void) mkdirp(dirname(category_file()), 0755);