libexplain
1.4.D001
|
00001 /* 00002 * libexplain - Explain errno values returned by libc functions 00003 * Copyright (C) 2009, 2013 Peter Miller 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU Lesser General Public License as 00007 * published by the Free Software Foundation; either version 3 of the 00008 * License, or (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public License 00016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 */ 00018 00019 #include <libexplain/ac/string.h> 00020 00021 #include <libexplain/buffer/einval.h> 00022 #include <libexplain/buffer/software_error.h> 00023 00024 00025 void 00026 explain_buffer_einval_mkstemp(explain_string_buffer_t *sb, const char *pathname, 00027 const char *pathname_caption) 00028 { 00029 /* 00030 * The template was too small; or, last six characters of template 00031 * were not "XXXXXX". 00032 */ 00033 if (strlen(pathname) < 6) 00034 { 00035 explain_string_buffer_printf_gettext 00036 ( 00037 sb, 00038 /* 00039 * xgettext: This error message is issued to explain an 00040 * EINVAL error reported by the mkstemp system call, in the 00041 * case where the file name template is too small. 00042 * 00043 * %1$s => The name of the offending system call argument. 00044 */ 00045 i18n("the %s is too small, it must be at least six " 00046 "characters"), 00047 pathname_caption 00048 ); 00049 } 00050 else 00051 { 00052 explain_string_buffer_printf_gettext 00053 ( 00054 sb, 00055 /* 00056 * xgettext: This error message is issued to explain an 00057 * EINVAL error reported by the mkstemp system call, in 00058 * the case where the file name template does not end in 00059 * "XXXXXX". 00060 * 00061 * %1$s => The name of the offending system call argument. 00062 */ 00063 i18n("the last six characters of the %s were not " 00064 "\"XXXXXX\""), 00065 pathname_caption 00066 ); 00067 } 00068 explain_buffer_software_error(sb); 00069 } 00070 00071 00072 /* vim: set ts=8 sw=4 et : */