diff options
author | P. J. McDermott <pj@pehjota.net> | 2016-02-14 21:46:40 (EST) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2016-02-14 21:46:40 (EST) |
commit | 5da1775daf87fe38d46dcdeef6ed64c6fac0bd29 (patch) | |
tree | 0389b995add0684e7c8f0099d810dc3a7fb7ce0c /libsh/errno.sh | |
download | eggshell-5da1775daf87fe38d46dcdeef6ed64c6fac0bd29.zip eggshell-5da1775daf87fe38d46dcdeef6ed64c6fac0bd29.tar.gz eggshell-5da1775daf87fe38d46dcdeef6ed64c6fac0bd29.tar.bz2 |
Initial commit
Diffstat (limited to 'libsh/errno.sh')
-rw-r--r-- | libsh/errno.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/libsh/errno.sh b/libsh/errno.sh new file mode 100644 index 0000000..a0f9648 --- /dev/null +++ b/libsh/errno.sh @@ -0,0 +1,53 @@ +# Copyright (C) 2016 Patrick "P. J." McDermott +# +# This file is part of libsh. +# +# libsh 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 3 of the License, or +# (at your option) any later version. +# +# libsh 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 General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with libsh. If not, see +# <http://www.gnu.org/licenses/>. + +static errlist=' + EINVAL 1 + EUNK 2 + EMFILE 3 + EACCES 4 + ENOENT 5 + EISDIR 6 + EBADF 7 + ' + +static strerror() +{ + local errnum=${1} + + eval "msgget \"\${__errsym_${errnum}}\"" +} + +static init_error_syms() +{ + IFS=' ' + while read errsym errno; do + eval "${errsym}=${errno}" + eval "__errsym_${errno}=${errsym}" + done <<-EOF + ${errlist} + EOF + unset IFS +} +__init ${init_error_syms} + +static errno_alias() +{ + __alias ${strerror} strerror int +} +__init ${errno_alias} |