From patchwork Mon Nov 11 14:39:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arjun Shankar X-Patchwork-Id: 35791 Received: (qmail 94514 invoked by alias); 11 Nov 2019 14:39:56 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 94501 invoked by uid 89); 11 Nov 2019 14:39:56 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, SPF_PASS autolearn=ham version=3.3.1 spammy=TOP, H*F:D*se X-HELO: aloka.lostca.se DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=lostca.se; h=date:from:to :subject:message-id:mime-version:content-type :content-transfer-encoding; s=howrah; bh=rWG55nXYmX0RvgJ3ik8yxRV U8qg=; b=j2JbTWw8evUbkRu9r3iPswvgl4zOeExvUgfk6iSZ6Z/Q8GDG1WBwA32 NmnNSfmVCG15wAoFS4+qGXQmDygBolLbI/+MVwS70nroE6myw/8KcqtfUC6bG6zr h2ijFgDwEyqIQCZ7p+GS2YarFGFb0RvXfZMVJc4UB3SyoCnI7KuQ= Date: Mon, 11 Nov 2019 14:39:47 +0000 From: Arjun Shankar To: libc-alpha@sourceware.org Subject: [PATCH] support: Add xsetlocale function Message-ID: <20191111143946.GA5229@aloka.lostca.se> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) From: Arjun Shankar --- support/Makefile | 1 + support/support.h | 1 + support/xsetlocale.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 support/xsetlocale.c diff --git a/support/Makefile b/support/Makefile index a6081bba98..21a27cf863 100644 --- a/support/Makefile +++ b/support/Makefile @@ -169,6 +169,7 @@ libsupport-routines = \ xunlink \ xwaitpid \ xwrite \ + xsetlocale \ libsupport-static-only-routines := $(libsupport-routines) # Only build one variant of the library. diff --git a/support/support.h b/support/support.h index a9df6e9a3c..c10234404a 100644 --- a/support/support.h +++ b/support/support.h @@ -91,6 +91,7 @@ char *xasprintf (const char *format, ...) __attribute__ ((format (printf, 1, 2), malloc)); char *xstrdup (const char *); char *xstrndup (const char *, size_t); +char *xsetlocale (int category, const char *locale); /* These point to the TOP of the source/build tree, not your (or support's) subdirectory. */ diff --git a/support/xsetlocale.c b/support/xsetlocale.c new file mode 100644 index 0000000000..063ed4b0d6 --- /dev/null +++ b/support/xsetlocale.c @@ -0,0 +1,30 @@ +/* setlocale with error checking. + Copyright (C) 2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + +#include + +char * +xsetlocale (int category, const char *locale) +{ + char *p = setlocale (category, locale); + if (p == NULL) + FAIL_EXIT1 ("error: setlocale (%d, \"%s\")\n", category, locale); + return p; +}