liblinux++

A hosted C++ runtime without any libc.
git clone git://henryandlizzy.uk/liblinux++
Log | Files | Refs

errno.sh (493B)


      1 #!/bin/sh
      2 set -eu
      3 
      4 echo -e '#pragma once\n\nenum class errno_t : int16_t {'
      5 sed -En 's/#[[:space:]]*define[[:space:]]+E([[:alnum:]]+)[[:space:]]+([[:digit:]]+)/E\1 = -\2,/p' /usr/include/asm-generic/errno{,-base}.h
      6 echo '};'
      7 
      8 echo -e 'inline span<char const> errname(errno_t e) { switch (e) {'
      9 sed -En 's/#[[:space:]]*define[[:space:]]+E([[:alnum:]]+)[[:space:]]+([[:digit:]]+)/case errno_t::E\1: return "E\1"_sp;/p' /usr/include/asm-generic/errno{,-base}.h
     10 echo '} return "E?unknown?"_sp; }'