Skip to content

Instantly share code, notes, and snippets.

@neheb
Created December 19, 2019 22:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neheb/43e50479047833e9663cd63ff2d00a5c to your computer and use it in GitHub Desktop.
Save neheb/43e50479047833e9663cd63ff2d00a5c to your computer and use it in GitHub Desktop.
bw.i
# 1 "bw.c"
# 1 "<built-in>"
#define __STDC__ 1
#define __STDC_VERSION__ 201710L
#define __STDC_UTF_16__ 1
#define __STDC_UTF_32__ 1
#define __STDC_HOSTED__ 1
#define __GNUC__ 9
#define __GNUC_MINOR__ 2
#define __GNUC_PATCHLEVEL__ 0
#define __VERSION__ "9.2.0"
#define __ATOMIC_RELAXED 0
#define __ATOMIC_SEQ_CST 5
#define __ATOMIC_ACQUIRE 2
#define __ATOMIC_RELEASE 3
#define __ATOMIC_ACQ_REL 4
#define __ATOMIC_CONSUME 1
#define __OPTIMIZE_SIZE__ 1
#define __OPTIMIZE__ 1
#define __FINITE_MATH_ONLY__ 0
#define __SIZEOF_INT__ 4
#define __SIZEOF_LONG__ 4
#define __SIZEOF_LONG_LONG__ 8
#define __SIZEOF_SHORT__ 2
#define __SIZEOF_FLOAT__ 4
#define __SIZEOF_DOUBLE__ 8
#define __SIZEOF_LONG_DOUBLE__ 8
#define __SIZEOF_SIZE_T__ 4
#define __CHAR_BIT__ 8
#define __BIGGEST_ALIGNMENT__ 8
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_PDP_ENDIAN__ 3412
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __SIZEOF_POINTER__ 4
#define __SIZE_TYPE__ unsigned int
#define __PTRDIFF_TYPE__ int
#define __WCHAR_TYPE__ int
#define __WINT_TYPE__ unsigned int
#define __INTMAX_TYPE__ long long int
#define __UINTMAX_TYPE__ long long unsigned int
#define __CHAR16_TYPE__ short unsigned int
#define __CHAR32_TYPE__ unsigned int
#define __SIG_ATOMIC_TYPE__ int
#define __INT8_TYPE__ signed char
#define __INT16_TYPE__ short int
#define __INT32_TYPE__ int
#define __INT64_TYPE__ long long int
#define __UINT8_TYPE__ unsigned char
#define __UINT16_TYPE__ short unsigned int
#define __UINT32_TYPE__ unsigned int
#define __UINT64_TYPE__ long long unsigned int
#define __INT_LEAST8_TYPE__ signed char
#define __INT_LEAST16_TYPE__ short int
#define __INT_LEAST32_TYPE__ int
#define __INT_LEAST64_TYPE__ long long int
#define __UINT_LEAST8_TYPE__ unsigned char
#define __UINT_LEAST16_TYPE__ short unsigned int
#define __UINT_LEAST32_TYPE__ unsigned int
#define __UINT_LEAST64_TYPE__ long long unsigned int
#define __INT_FAST8_TYPE__ signed char
#define __INT_FAST16_TYPE__ int
#define __INT_FAST32_TYPE__ int
#define __INT_FAST64_TYPE__ long long int
#define __UINT_FAST8_TYPE__ unsigned char
#define __UINT_FAST16_TYPE__ unsigned int
#define __UINT_FAST32_TYPE__ unsigned int
#define __UINT_FAST64_TYPE__ long long unsigned int
#define __INTPTR_TYPE__ int
#define __UINTPTR_TYPE__ unsigned int
#define __has_include(STR) __has_include__(STR)
#define __has_include_next(STR) __has_include_next__(STR)
#define __GXX_ABI_VERSION 1013
#define __SCHAR_MAX__ 0x7f
#define __SHRT_MAX__ 0x7fff
#define __INT_MAX__ 0x7fffffff
#define __LONG_MAX__ 0x7fffffffL
#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
#define __WCHAR_MAX__ 0x7fffffff
#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
#define __WINT_MAX__ 0xffffffffU
#define __WINT_MIN__ 0U
#define __PTRDIFF_MAX__ 0x7fffffff
#define __SIZE_MAX__ 0xffffffffU
#define __SCHAR_WIDTH__ 8
#define __SHRT_WIDTH__ 16
#define __INT_WIDTH__ 32
#define __LONG_WIDTH__ 32
#define __LONG_LONG_WIDTH__ 64
#define __WCHAR_WIDTH__ 32
#define __WINT_WIDTH__ 32
#define __PTRDIFF_WIDTH__ 32
#define __SIZE_WIDTH__ 32
#define __INTMAX_MAX__ 0x7fffffffffffffffLL
#define __INTMAX_C(c) c ## LL
#define __UINTMAX_MAX__ 0xffffffffffffffffULL
#define __UINTMAX_C(c) c ## ULL
#define __INTMAX_WIDTH__ 64
#define __SIG_ATOMIC_MAX__ 0x7fffffff
#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
#define __SIG_ATOMIC_WIDTH__ 32
#define __INT8_MAX__ 0x7f
#define __INT16_MAX__ 0x7fff
#define __INT32_MAX__ 0x7fffffff
#define __INT64_MAX__ 0x7fffffffffffffffLL
#define __UINT8_MAX__ 0xff
#define __UINT16_MAX__ 0xffff
#define __UINT32_MAX__ 0xffffffffU
#define __UINT64_MAX__ 0xffffffffffffffffULL
#define __INT_LEAST8_MAX__ 0x7f
#define __INT8_C(c) c
#define __INT_LEAST8_WIDTH__ 8
#define __INT_LEAST16_MAX__ 0x7fff
#define __INT16_C(c) c
#define __INT_LEAST16_WIDTH__ 16
#define __INT_LEAST32_MAX__ 0x7fffffff
#define __INT32_C(c) c
#define __INT_LEAST32_WIDTH__ 32
#define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
#define __INT64_C(c) c ## LL
#define __INT_LEAST64_WIDTH__ 64
#define __UINT_LEAST8_MAX__ 0xff
#define __UINT8_C(c) c
#define __UINT_LEAST16_MAX__ 0xffff
#define __UINT16_C(c) c
#define __UINT_LEAST32_MAX__ 0xffffffffU
#define __UINT32_C(c) c ## U
#define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL
#define __UINT64_C(c) c ## ULL
#define __INT_FAST8_MAX__ 0x7f
#define __INT_FAST8_WIDTH__ 8
#define __INT_FAST16_MAX__ 0x7fffffff
#define __INT_FAST16_WIDTH__ 32
#define __INT_FAST32_MAX__ 0x7fffffff
#define __INT_FAST32_WIDTH__ 32
#define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
#define __INT_FAST64_WIDTH__ 64
#define __UINT_FAST8_MAX__ 0xff
#define __UINT_FAST16_MAX__ 0xffffffffU
#define __UINT_FAST32_MAX__ 0xffffffffU
#define __UINT_FAST64_MAX__ 0xffffffffffffffffULL
#define __INTPTR_MAX__ 0x7fffffff
#define __INTPTR_WIDTH__ 32
#define __UINTPTR_MAX__ 0xffffffffU
#define __GCC_IEC_559 0
#define __GCC_IEC_559_COMPLEX 0
#define __FLT_EVAL_METHOD__ 0
#define __FLT_EVAL_METHOD_TS_18661_3__ 0
#define __DEC_EVAL_METHOD__ 2
#define __FLT_RADIX__ 2
#define __FLT_MANT_DIG__ 24
#define __FLT_DIG__ 6
#define __FLT_MIN_EXP__ (-125)
#define __FLT_MIN_10_EXP__ (-37)
#define __FLT_MAX_EXP__ 128
#define __FLT_MAX_10_EXP__ 38
#define __FLT_DECIMAL_DIG__ 9
#define __FLT_MAX__ 3.4028234663852886e+38F
#define __FLT_MIN__ 1.1754943508222875e-38F
#define __FLT_EPSILON__ 1.1920928955078125e-7F
#define __FLT_DENORM_MIN__ 1.4012984643248171e-45F
#define __FLT_HAS_DENORM__ 1
#define __FLT_HAS_INFINITY__ 1
#define __FLT_HAS_QUIET_NAN__ 1
#define __DBL_MANT_DIG__ 53
#define __DBL_DIG__ 15
#define __DBL_MIN_EXP__ (-1021)
#define __DBL_MIN_10_EXP__ (-307)
#define __DBL_MAX_EXP__ 1024
#define __DBL_MAX_10_EXP__ 308
#define __DBL_DECIMAL_DIG__ 17
#define __DBL_MAX__ ((double)1.7976931348623157e+308L)
#define __DBL_MIN__ ((double)2.2250738585072014e-308L)
#define __DBL_EPSILON__ ((double)2.2204460492503131e-16L)
#define __DBL_DENORM_MIN__ ((double)4.9406564584124654e-324L)
#define __DBL_HAS_DENORM__ 1
#define __DBL_HAS_INFINITY__ 1
#define __DBL_HAS_QUIET_NAN__ 1
#define __LDBL_MANT_DIG__ 53
#define __LDBL_DIG__ 15
#define __LDBL_MIN_EXP__ (-1021)
#define __LDBL_MIN_10_EXP__ (-307)
#define __LDBL_MAX_EXP__ 1024
#define __LDBL_MAX_10_EXP__ 308
#define __DECIMAL_DIG__ 17
#define __LDBL_DECIMAL_DIG__ 17
#define __LDBL_MAX__ 1.7976931348623157e+308L
#define __LDBL_MIN__ 2.2250738585072014e-308L
#define __LDBL_EPSILON__ 2.2204460492503131e-16L
#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
#define __LDBL_HAS_DENORM__ 1
#define __LDBL_HAS_INFINITY__ 1
#define __LDBL_HAS_QUIET_NAN__ 1
#define __FLT32_MANT_DIG__ 24
#define __FLT32_DIG__ 6
#define __FLT32_MIN_EXP__ (-125)
#define __FLT32_MIN_10_EXP__ (-37)
#define __FLT32_MAX_EXP__ 128
#define __FLT32_MAX_10_EXP__ 38
#define __FLT32_DECIMAL_DIG__ 9
#define __FLT32_MAX__ 3.4028234663852886e+38F32
#define __FLT32_MIN__ 1.1754943508222875e-38F32
#define __FLT32_EPSILON__ 1.1920928955078125e-7F32
#define __FLT32_DENORM_MIN__ 1.4012984643248171e-45F32
#define __FLT32_HAS_DENORM__ 1
#define __FLT32_HAS_INFINITY__ 1
#define __FLT32_HAS_QUIET_NAN__ 1
#define __FLT64_MANT_DIG__ 53
#define __FLT64_DIG__ 15
#define __FLT64_MIN_EXP__ (-1021)
#define __FLT64_MIN_10_EXP__ (-307)
#define __FLT64_MAX_EXP__ 1024
#define __FLT64_MAX_10_EXP__ 308
#define __FLT64_DECIMAL_DIG__ 17
#define __FLT64_MAX__ 1.7976931348623157e+308F64
#define __FLT64_MIN__ 2.2250738585072014e-308F64
#define __FLT64_EPSILON__ 2.2204460492503131e-16F64
#define __FLT64_DENORM_MIN__ 4.9406564584124654e-324F64
#define __FLT64_HAS_DENORM__ 1
#define __FLT64_HAS_INFINITY__ 1
#define __FLT64_HAS_QUIET_NAN__ 1
#define __FLT32X_MANT_DIG__ 53
#define __FLT32X_DIG__ 15
#define __FLT32X_MIN_EXP__ (-1021)
#define __FLT32X_MIN_10_EXP__ (-307)
#define __FLT32X_MAX_EXP__ 1024
#define __FLT32X_MAX_10_EXP__ 308
#define __FLT32X_DECIMAL_DIG__ 17
#define __FLT32X_MAX__ 1.7976931348623157e+308F32x
#define __FLT32X_MIN__ 2.2250738585072014e-308F32x
#define __FLT32X_EPSILON__ 2.2204460492503131e-16F32x
#define __FLT32X_DENORM_MIN__ 4.9406564584124654e-324F32x
#define __FLT32X_HAS_DENORM__ 1
#define __FLT32X_HAS_INFINITY__ 1
#define __FLT32X_HAS_QUIET_NAN__ 1
#define __DEC32_MANT_DIG__ 7
#define __DEC32_MIN_EXP__ (-94)
#define __DEC32_MAX_EXP__ 97
#define __DEC32_MIN__ 1E-95DF
#define __DEC32_MAX__ 9.999999E96DF
#define __DEC32_EPSILON__ 1E-6DF
#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
#define __DEC64_MANT_DIG__ 16
#define __DEC64_MIN_EXP__ (-382)
#define __DEC64_MAX_EXP__ 385
#define __DEC64_MIN__ 1E-383DD
#define __DEC64_MAX__ 9.999999999999999E384DD
#define __DEC64_EPSILON__ 1E-15DD
#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
#define __DEC128_MANT_DIG__ 34
#define __DEC128_MIN_EXP__ (-6142)
#define __DEC128_MAX_EXP__ 6145
#define __DEC128_MIN__ 1E-6143DL
#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
#define __DEC128_EPSILON__ 1E-33DL
#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
#define __SFRACT_FBIT__ 7
#define __SFRACT_IBIT__ 0
#define __SFRACT_MIN__ (-0.5HR-0.5HR)
#define __SFRACT_MAX__ 0X7FP-7HR
#define __SFRACT_EPSILON__ 0x1P-7HR
#define __USFRACT_FBIT__ 8
#define __USFRACT_IBIT__ 0
#define __USFRACT_MIN__ 0.0UHR
#define __USFRACT_MAX__ 0XFFP-8UHR
#define __USFRACT_EPSILON__ 0x1P-8UHR
#define __FRACT_FBIT__ 15
#define __FRACT_IBIT__ 0
#define __FRACT_MIN__ (-0.5R-0.5R)
#define __FRACT_MAX__ 0X7FFFP-15R
#define __FRACT_EPSILON__ 0x1P-15R
#define __UFRACT_FBIT__ 16
#define __UFRACT_IBIT__ 0
#define __UFRACT_MIN__ 0.0UR
#define __UFRACT_MAX__ 0XFFFFP-16UR
#define __UFRACT_EPSILON__ 0x1P-16UR
#define __LFRACT_FBIT__ 31
#define __LFRACT_IBIT__ 0
#define __LFRACT_MIN__ (-0.5LR-0.5LR)
#define __LFRACT_MAX__ 0X7FFFFFFFP-31LR
#define __LFRACT_EPSILON__ 0x1P-31LR
#define __ULFRACT_FBIT__ 32
#define __ULFRACT_IBIT__ 0
#define __ULFRACT_MIN__ 0.0ULR
#define __ULFRACT_MAX__ 0XFFFFFFFFP-32ULR
#define __ULFRACT_EPSILON__ 0x1P-32ULR
#define __LLFRACT_FBIT__ 63
#define __LLFRACT_IBIT__ 0
#define __LLFRACT_MIN__ (-0.5LLR-0.5LLR)
#define __LLFRACT_MAX__ 0X7FFFFFFFFFFFFFFFP-63LLR
#define __LLFRACT_EPSILON__ 0x1P-63LLR
#define __ULLFRACT_FBIT__ 64
#define __ULLFRACT_IBIT__ 0
#define __ULLFRACT_MIN__ 0.0ULLR
#define __ULLFRACT_MAX__ 0XFFFFFFFFFFFFFFFFP-64ULLR
#define __ULLFRACT_EPSILON__ 0x1P-64ULLR
#define __SACCUM_FBIT__ 7
#define __SACCUM_IBIT__ 8
#define __SACCUM_MIN__ (-0X1P7HK-0X1P7HK)
#define __SACCUM_MAX__ 0X7FFFP-7HK
#define __SACCUM_EPSILON__ 0x1P-7HK
#define __USACCUM_FBIT__ 8
#define __USACCUM_IBIT__ 8
#define __USACCUM_MIN__ 0.0UHK
#define __USACCUM_MAX__ 0XFFFFP-8UHK
#define __USACCUM_EPSILON__ 0x1P-8UHK
#define __ACCUM_FBIT__ 15
#define __ACCUM_IBIT__ 16
#define __ACCUM_MIN__ (-0X1P15K-0X1P15K)
#define __ACCUM_MAX__ 0X7FFFFFFFP-15K
#define __ACCUM_EPSILON__ 0x1P-15K
#define __UACCUM_FBIT__ 16
#define __UACCUM_IBIT__ 16
#define __UACCUM_MIN__ 0.0UK
#define __UACCUM_MAX__ 0XFFFFFFFFP-16UK
#define __UACCUM_EPSILON__ 0x1P-16UK
#define __LACCUM_FBIT__ 31
#define __LACCUM_IBIT__ 32
#define __LACCUM_MIN__ (-0X1P31LK-0X1P31LK)
#define __LACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LK
#define __LACCUM_EPSILON__ 0x1P-31LK
#define __ULACCUM_FBIT__ 32
#define __ULACCUM_IBIT__ 32
#define __ULACCUM_MIN__ 0.0ULK
#define __ULACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULK
#define __ULACCUM_EPSILON__ 0x1P-32ULK
#define __LLACCUM_FBIT__ 31
#define __LLACCUM_IBIT__ 32
#define __LLACCUM_MIN__ (-0X1P31LLK-0X1P31LLK)
#define __LLACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LLK
#define __LLACCUM_EPSILON__ 0x1P-31LLK
#define __ULLACCUM_FBIT__ 32
#define __ULLACCUM_IBIT__ 32
#define __ULLACCUM_MIN__ 0.0ULLK
#define __ULLACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULLK
#define __ULLACCUM_EPSILON__ 0x1P-32ULLK
#define __QQ_FBIT__ 7
#define __QQ_IBIT__ 0
#define __HQ_FBIT__ 15
#define __HQ_IBIT__ 0
#define __SQ_FBIT__ 31
#define __SQ_IBIT__ 0
#define __DQ_FBIT__ 63
#define __DQ_IBIT__ 0
#define __TQ_FBIT__ 127
#define __TQ_IBIT__ 0
#define __UQQ_FBIT__ 8
#define __UQQ_IBIT__ 0
#define __UHQ_FBIT__ 16
#define __UHQ_IBIT__ 0
#define __USQ_FBIT__ 32
#define __USQ_IBIT__ 0
#define __UDQ_FBIT__ 64
#define __UDQ_IBIT__ 0
#define __UTQ_FBIT__ 128
#define __UTQ_IBIT__ 0
#define __HA_FBIT__ 7
#define __HA_IBIT__ 8
#define __SA_FBIT__ 15
#define __SA_IBIT__ 16
#define __DA_FBIT__ 31
#define __DA_IBIT__ 32
#define __TA_FBIT__ 63
#define __TA_IBIT__ 64
#define __UHA_FBIT__ 8
#define __UHA_IBIT__ 8
#define __USA_FBIT__ 16
#define __USA_IBIT__ 16
#define __UDA_FBIT__ 32
#define __UDA_IBIT__ 32
#define __UTA_FBIT__ 64
#define __UTA_IBIT__ 64
#define __REGISTER_PREFIX__ $
#define __USER_LABEL_PREFIX__
#define __GNUC_STDC_INLINE__ 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
#define __GCC_ATOMIC_INT_LOCK_FREE 2
#define __GCC_ATOMIC_LONG_LOCK_FREE 2
#define __GCC_ATOMIC_LLONG_LOCK_FREE 1
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
#define __PRAGMA_REDEFINE_EXTNAME 1
#define __SSP__ 1
#define __SIZEOF_WCHAR_T__ 4
#define __SIZEOF_WINT_T__ 4
#define __SIZEOF_PTRDIFF_T__ 4
#define __mips__ 1
#define _mips 1
#define mips 1
#define __R3000 1
#define __R3000__ 1
#define R3000 1
#define _R3000 1
#define __mips_fpr 32
#define __mips16 1
#define _MIPS_ARCH_MIPS32R2 1
#define _MIPS_ARCH "mips32r2"
#define _MIPS_TUNE_24KC 1
#define _MIPS_TUNE "24kc"
#define __mips 32
#define _MIPS_ISA _MIPS_ISA_MIPS32
#define __mips_isa_rev 2
#define _ABIO32 1
#define _MIPS_SIM _ABIO32
#define _MIPS_SZINT 32
#define _MIPS_SZLONG 32
#define _MIPS_SZPTR 32
#define _MIPS_FPSET 16
#define _MIPS_SPFPSET 32
#define __mips_soft_float 1
#define __MIPSEL 1
#define __MIPSEL__ 1
#define MIPSEL 1
#define _MIPSEL 1
#define __mips_abicalls 1
#define __LANGUAGE_C 1
#define __LANGUAGE_C__ 1
#define LANGUAGE_C 1
#define _LANGUAGE_C 1
#define __GCC_HAVE_BUILTIN_MIPS_CACHE 1
#define __linux 1
#define __linux__ 1
#define linux 1
#define __unix 1
#define __unix__ 1
#define unix 1
#define __ELF__ 1
# 1 "<command-line>"
#define HAVE_CONFIG_H 1
#define JOERC "/etc/jupp/"
#define _GNU_SOURCE 1
#define _FORTIFY_SOURCE 1
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdc-predef.h" 1 3 4
#define _STDC_PREDEF_H
#define __STDC_ISO_10646__ 201206L
# 1 "<command-line>" 2
# 1 "bw.c"
# 1 "config.h" 1
#define _JOE_CONFIG_H
# 1 "autoconf.h" 1
#define GWINSZ_IN_SYS_IOCTL 1
#define HAVE_ALARM 1
#define HAVE_CTIME 1
#define HAVE_DECL_CTIME 1
#define HAVE_DECL_POPEN 1
#define HAVE_DECL_STRLCAT 1
#define HAVE_DECL_STRLCPY 1
#define HAVE_DIRENT_H 1
#define HAVE_ERRNO_H 1
#define HAVE_FCNTL_H 1
#define HAVE_FORK 1
#define HAVE_FSEEKO 1
#define HAVE_FSYNC 1
#define HAVE_GETCWD 1
#define HAVE_GET_CURRENT_DIR_NAME 1
#define HAVE_INTTYPES_H 1
#define HAVE_ISATTY 1
#define HAVE_LANGINFO_H 1
#define HAVE_LIMITS_H 1
#define HAVE_LOCALE_H 1
#define HAVE_LOGIN_TTY 1
#define HAVE_MEMORY_H 1
#define HAVE_MKDIR 1
#define HAVE_MKSTEMP 1
#define HAVE_NL_LANGINFO 1
#define HAVE_OPENPTY 1
#define HAVE_PATHS_H 1
#define HAVE_POPEN 1
#define HAVE_POSIX_TERMIOS 1
#define HAVE_PTY_H 1
#define HAVE_PUTENV 1
#define HAVE_PWD_H 1
# 131 "autoconf.h"
#define HAVE_SETITIMER 1
#define HAVE_SETLOCALE 1
#define HAVE_SETPGID 1
#define HAVE_SIGACTION 1
#define HAVE_SIGHANDLER_T 1
#define HAVE_SIGINTERRUPT 1
#define HAVE_SIGNAL_H 1
#define HAVE_SIGPROCMASK 1
#define HAVE_SNPRINTF 1
#define HAVE_STDINT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRCHR 1
#define HAVE_STRDUP 1
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
#define HAVE_STRLCAT 1
#define HAVE_STRLCPY 1
#define HAVE_SYNC 1
# 205 "autoconf.h"
#define HAVE_SYS_IOCTL_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_TIME_H 1
#define HAVE_UNISTD_H 1
#define HAVE_UNSETENV 1
#define HAVE_UTIME 1
#define HAVE_UTIME_H 1
#define HAVE_UTMP_H 1
#define JUPP_WIN32RELOC 0
#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
#define NEED_TO_REINSTALL_SIGNAL 1
#define PACKAGE "joe"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME "joe"
#define PACKAGE_STRING "joe 3.1jupp38"
#define PACKAGE_TARNAME "joe"
#define PACKAGE_VERSION "3.1jupp38"
#define RETSIGTYPE void
#define SETPGRP_VOID 1
#define SIZEOF_CHAR 1
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
#define SIZEOF_LONG_LONG 8
#define SIZEOF_OFF_T 8
#define SIZEOF_SHORT 2
#define SIZEOF_VOID_P 4
#define STDC_HEADERS 1
#define TERMINFO 1
#define TIME_WITH_SYS_TIME 1
#define VERSION "3.1jupp38"
#define WANT_FORK 1
#define WANT_MATH 1
# 8 "config.h" 2
# 28 "config.h"
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/types.h" 1 3 4
#define _SYS_TYPES_H
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/features.h" 1 3 4
#define _FEATURES_H
# 16 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/features.h" 3 4
#define __restrict restrict
#define __inline inline
# 40 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/features.h" 3 4
#define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/glibc-types.h" 1 3 4
#define __MUSL_GLIBC_TYPES_H
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 1 3 4
# 20 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define _SYS_CDEFS_H 1
# 35 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#undef __P
#undef __PMT
#define __LEAF , __leaf__
#define __LEAF_ATTR __attribute__ ((__leaf__))
# 56 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __THROW __attribute__ ((__nothrow__ __LEAF))
#define __THROWNL __attribute__ ((__nothrow__))
#define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
# 83 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __P(args) args
#define __PMT(args) args
#define __CONCAT(x,y) x ## y
#define __STRING(x) #x
#define __ptr_t void *
#define __long_double_t long double
#define __BEGIN_DECLS
#define __END_DECLS
# 123 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __BEGIN_NAMESPACE_STD
#define __END_NAMESPACE_STD
#define __USING_NAMESPACE_STD(name)
#define __BEGIN_NAMESPACE_C99
#define __END_NAMESPACE_C99
#define __USING_NAMESPACE_C99(name)
#define __bounded
#define __unbounded
#define __ptrvalue
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)
#define __fortify_function __extern_always_inline __attribute_artificial__
#define __warndecl(name,msg) extern void name (void) __attribute__((__warning__ (msg)))
#define __warnattr(msg) __attribute__((__warning__ (msg)))
#define __errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg)))
# 160 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __flexarr []
# 187 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))
#define __REDIRECT_NTH(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROW
#define __REDIRECT_NTHNL(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROWNL
#define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
#define __ASMNAME2(prefix,cname) __STRING (prefix) cname
# 221 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __attribute_malloc__ __attribute__ ((__malloc__))
# 230 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __attribute_pure__ __attribute__ ((__pure__))
#define __attribute_const__ __attribute__ ((__const__))
# 246 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __attribute_used__ __attribute__ ((__used__))
#define __attribute_noinline__ __attribute__ ((__noinline__))
#define __attribute_deprecated__ __attribute__ ((__deprecated__))
# 267 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
# 277 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))
# 286 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __nonnull(params) __attribute__ ((__nonnull__ params))
#define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))
# 303 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __wur
#define __always_inline __inline __attribute__ ((__always_inline__))
#define __attribute_artificial__ __attribute__ ((__artificial__))
# 325 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
#define __extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__))
# 337 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __va_arg_pack() __builtin_va_arg_pack ()
#define __va_arg_pack_len() __builtin_va_arg_pack_len ()
# 358 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __restrict_arr __restrict
# 373 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/cdefs.h" 3 4
#define __glibc_unlikely(cond) __builtin_expect((cond), 0)
# 5 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/glibc-types.h" 2 3 4
# 7 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/glibc-types.h" 3 4
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
#define __off64_t off_t
#define __loff_t off_t
typedef char *__caddr_t;
#define __locale_t locale_t
#define __gid_t gid_t
#define __uid_t uid_t
# 47 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/features.h" 2 3 4
# 8 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/types.h" 2 3 4
#define __NEED_ino_t
#define __NEED_dev_t
#define __NEED_uid_t
#define __NEED_gid_t
#define __NEED_mode_t
#define __NEED_nlink_t
#define __NEED_off_t
#define __NEED_pid_t
#define __NEED_size_t
#define __NEED_ssize_t
#define __NEED_time_t
#define __NEED_timer_t
#define __NEED_clockid_t
#define __NEED_blkcnt_t
#define __NEED_fsblkcnt_t
#define __NEED_fsfilcnt_t
#define __NEED_id_t
#define __NEED_key_t
#define __NEED_clock_t
#define __NEED_suseconds_t
#define __NEED_blksize_t
#define __NEED_pthread_t
#define __NEED_pthread_attr_t
#define __NEED_pthread_mutexattr_t
#define __NEED_pthread_condattr_t
#define __NEED_pthread_rwlockattr_t
#define __NEED_pthread_barrierattr_t
#define __NEED_pthread_mutex_t
#define __NEED_pthread_cond_t
#define __NEED_pthread_rwlock_t
#define __NEED_pthread_barrier_t
#define __NEED_pthread_spinlock_t
#define __NEED_pthread_key_t
#define __NEED_pthread_once_t
#define __NEED_useconds_t
#define __NEED_int8_t
#define __NEED_int16_t
#define __NEED_int32_t
#define __NEED_int64_t
#define __NEED_u_int64_t
#define __NEED_register_t
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
# 42 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef long time_t;
#define __DEFINED_time_t
typedef long suseconds_t;
#define __DEFINED_suseconds_t
typedef struct { union { int __i[9]; volatile int __vi[9]; unsigned __s[9]; } __u; } pthread_attr_t;
#define __DEFINED_pthread_attr_t
typedef struct { union { int __i[6]; volatile int __vi[6]; volatile void *volatile __p[6]; } __u; } pthread_mutex_t;
#define __DEFINED_pthread_mutex_t
# 68 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } pthread_cond_t;
#define __DEFINED_pthread_cond_t
# 78 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef struct { union { int __i[8]; volatile int __vi[8]; void *__p[8]; } __u; } pthread_rwlock_t;
#define __DEFINED_pthread_rwlock_t
typedef struct { union { int __i[5]; volatile int __vi[5]; void *__p[5]; } __u; } pthread_barrier_t;
#define __DEFINED_pthread_barrier_t
typedef unsigned int size_t;
#define __DEFINED_size_t
# 103 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef int ssize_t;
#define __DEFINED_ssize_t
# 118 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef int register_t;
#define __DEFINED_register_t
typedef signed char int8_t;
#define __DEFINED_int8_t
typedef signed short int16_t;
#define __DEFINED_int16_t
typedef signed int int32_t;
#define __DEFINED_int32_t
typedef signed long long int64_t;
#define __DEFINED_int64_t
# 169 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef unsigned long long u_int64_t;
#define __DEFINED_u_int64_t
# 180 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef unsigned mode_t;
#define __DEFINED_mode_t
typedef unsigned int nlink_t;
#define __DEFINED_nlink_t
typedef long long off_t;
#define __DEFINED_off_t
typedef unsigned long long ino_t;
#define __DEFINED_ino_t
typedef unsigned long long dev_t;
#define __DEFINED_dev_t
typedef long blksize_t;
#define __DEFINED_blksize_t
typedef long long blkcnt_t;
#define __DEFINED_blkcnt_t
typedef unsigned long long fsblkcnt_t;
#define __DEFINED_fsblkcnt_t
typedef unsigned long long fsfilcnt_t;
#define __DEFINED_fsfilcnt_t
# 237 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef void * timer_t;
#define __DEFINED_timer_t
typedef int clockid_t;
#define __DEFINED_clockid_t
typedef long clock_t;
#define __DEFINED_clock_t
# 263 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef int pid_t;
#define __DEFINED_pid_t
typedef unsigned id_t;
#define __DEFINED_id_t
typedef unsigned uid_t;
#define __DEFINED_uid_t
typedef unsigned gid_t;
#define __DEFINED_gid_t
typedef int key_t;
#define __DEFINED_key_t
typedef unsigned useconds_t;
#define __DEFINED_useconds_t
# 301 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef struct __pthread * pthread_t;
#define __DEFINED_pthread_t
typedef int pthread_once_t;
#define __DEFINED_pthread_once_t
typedef unsigned pthread_key_t;
#define __DEFINED_pthread_key_t
typedef int pthread_spinlock_t;
#define __DEFINED_pthread_spinlock_t
typedef struct { unsigned __attr; } pthread_mutexattr_t;
#define __DEFINED_pthread_mutexattr_t
typedef struct { unsigned __attr; } pthread_condattr_t;
#define __DEFINED_pthread_condattr_t
typedef struct { unsigned __attr; } pthread_barrierattr_t;
#define __DEFINED_pthread_barrierattr_t
typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;
#define __DEFINED_pthread_rwlockattr_t
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 58 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/types.h" 2 3 4
typedef unsigned char u_int8_t;
typedef unsigned short u_int16_t;
typedef unsigned u_int32_t;
typedef char *caddr_t;
typedef unsigned char u_char;
typedef unsigned short u_short, ushort;
typedef unsigned u_int, uint;
typedef unsigned long u_long, ulong;
typedef long long quad_t;
typedef unsigned long long u_quad_t;
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/endian.h" 1 3 4
#define _ENDIAN_H
#define __LITTLE_ENDIAN 1234
#define __BIG_ENDIAN 4321
#define __PDP_ENDIAN 3412
#define __BYTE_ORDER __BYTE_ORDER__
#define BIG_ENDIAN __BIG_ENDIAN
#define LITTLE_ENDIAN __LITTLE_ENDIAN
#define PDP_ENDIAN __PDP_ENDIAN
#define BYTE_ORDER __BYTE_ORDER
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdint.h" 1 3 4
#define _STDINT_H
#define __NEED_int8_t
#define __NEED_int16_t
#define __NEED_int32_t
#define __NEED_int64_t
#define __NEED_uint8_t
#define __NEED_uint16_t
#define __NEED_uint32_t
#define __NEED_uint64_t
#define __NEED_intptr_t
#define __NEED_uintptr_t
#define __NEED_intmax_t
#define __NEED_uintmax_t
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
# 93 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef unsigned int uintptr_t;
#define __DEFINED_uintptr_t
# 108 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef int intptr_t;
#define __DEFINED_intptr_t
# 144 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef signed long long intmax_t;
#define __DEFINED_intmax_t
typedef unsigned char uint8_t;
#define __DEFINED_uint8_t
typedef unsigned short uint16_t;
#define __DEFINED_uint16_t
typedef unsigned int uint32_t;
#define __DEFINED_uint32_t
typedef unsigned long long uint64_t;
#define __DEFINED_uint64_t
# 174 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef unsigned long long uintmax_t;
#define __DEFINED_uintmax_t
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 21 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdint.h" 2 3 4
typedef int8_t int_fast8_t;
typedef int64_t int_fast64_t;
typedef int8_t int_least8_t;
typedef int16_t int_least16_t;
typedef int32_t int_least32_t;
typedef int64_t int_least64_t;
typedef uint8_t uint_fast8_t;
typedef uint64_t uint_fast64_t;
typedef uint8_t uint_least8_t;
typedef uint16_t uint_least16_t;
typedef uint32_t uint_least32_t;
typedef uint64_t uint_least64_t;
#define INT8_MIN (-1-0x7f)
#define INT16_MIN (-1-0x7fff)
#define INT32_MIN (-1-0x7fffffff)
#define INT64_MIN (-1-0x7fffffffffffffff)
#define INT8_MAX (0x7f)
#define INT16_MAX (0x7fff)
#define INT32_MAX (0x7fffffff)
#define INT64_MAX (0x7fffffffffffffff)
#define UINT8_MAX (0xff)
#define UINT16_MAX (0xffff)
#define UINT32_MAX (0xffffffffu)
#define UINT64_MAX (0xffffffffffffffffu)
#define INT_FAST8_MIN INT8_MIN
#define INT_FAST64_MIN INT64_MIN
#define INT_LEAST8_MIN INT8_MIN
#define INT_LEAST16_MIN INT16_MIN
#define INT_LEAST32_MIN INT32_MIN
#define INT_LEAST64_MIN INT64_MIN
#define INT_FAST8_MAX INT8_MAX
#define INT_FAST64_MAX INT64_MAX
#define INT_LEAST8_MAX INT8_MAX
#define INT_LEAST16_MAX INT16_MAX
#define INT_LEAST32_MAX INT32_MAX
#define INT_LEAST64_MAX INT64_MAX
#define UINT_FAST8_MAX UINT8_MAX
#define UINT_FAST64_MAX UINT64_MAX
#define UINT_LEAST8_MAX UINT8_MAX
#define UINT_LEAST16_MAX UINT16_MAX
#define UINT_LEAST32_MAX UINT32_MAX
#define UINT_LEAST64_MAX UINT64_MAX
#define INTMAX_MIN INT64_MIN
#define INTMAX_MAX INT64_MAX
#define UINTMAX_MAX UINT64_MAX
#define WINT_MIN 0U
#define WINT_MAX UINT32_MAX
#define WCHAR_MAX (0x7fffffff+L'\0')
#define WCHAR_MIN (-1-0x7fffffff+L'\0')
#define SIG_ATOMIC_MIN INT32_MIN
#define SIG_ATOMIC_MAX INT32_MAX
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/stdint.h" 1 3 4
typedef int32_t int_fast16_t;
typedef int32_t int_fast32_t;
typedef uint32_t uint_fast16_t;
typedef uint32_t uint_fast32_t;
#define INT_FAST16_MIN INT32_MIN
#define INT_FAST32_MIN INT32_MIN
#define INT_FAST16_MAX INT32_MAX
#define INT_FAST32_MAX INT32_MAX
#define UINT_FAST16_MAX UINT32_MAX
#define UINT_FAST32_MAX UINT32_MAX
#define INTPTR_MIN INT32_MIN
#define INTPTR_MAX INT32_MAX
#define UINTPTR_MAX UINT32_MAX
#define PTRDIFF_MIN INT32_MIN
#define PTRDIFF_MAX INT32_MAX
#define SIZE_MAX UINT32_MAX
# 96 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdint.h" 2 3 4
#define INT8_C(c) c
#define INT16_C(c) c
#define INT32_C(c) c
#define UINT8_C(c) c
#define UINT16_C(c) c
#define UINT32_C(c) c ## U
#define INT64_C(c) c ## LL
#define UINT64_C(c) c ## ULL
#define INTMAX_C(c) c ## LL
#define UINTMAX_C(c) c ## ULL
# 24 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/endian.h" 2 3 4
static inline uint16_t __bswap16(uint16_t __x)
{
return __x<<8 | __x>>8;
}
static inline uint32_t __bswap32(uint32_t __x)
{
return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;
}
static inline uint64_t __bswap64(uint64_t __x)
{
return __bswap32(__x)+0ULL<<32 | __bswap32(__x>>32);
}
#define htobe16(x) __bswap16(x)
#define be16toh(x) __bswap16(x)
#define betoh16(x) __bswap16(x)
#define htobe32(x) __bswap32(x)
#define be32toh(x) __bswap32(x)
#define betoh32(x) __bswap32(x)
#define htobe64(x) __bswap64(x)
#define be64toh(x) __bswap64(x)
#define betoh64(x) __bswap64(x)
#define htole16(x) (uint16_t)(x)
#define le16toh(x) (uint16_t)(x)
#define letoh16(x) (uint16_t)(x)
#define htole32(x) (uint32_t)(x)
#define le32toh(x) (uint32_t)(x)
#define letoh32(x) (uint32_t)(x)
#define htole64(x) (uint64_t)(x)
#define le64toh(x) (uint64_t)(x)
#define letoh64(x) (uint64_t)(x)
# 71 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/types.h" 2 3 4
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/select.h" 1 3 4
#define _SYS_SELECT_H
#define __NEED_size_t
#define __NEED_time_t
#define __NEED_suseconds_t
#define __NEED_struct_timeval
#define __NEED_struct_timespec
#define __NEED_sigset_t
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
# 252 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
struct timeval { time_t tv_sec; suseconds_t tv_usec; };
#define __DEFINED_struct_timeval
struct timespec { time_t tv_sec; long tv_nsec; };
#define __DEFINED_struct_timespec
# 366 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
#define __DEFINED_sigset_t
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 17 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/select.h" 2 3 4
#define FD_SETSIZE 1024
typedef unsigned long fd_mask;
typedef struct {
unsigned long fds_bits[1024 / 8 / sizeof(long)];
} fd_set;
#define FD_ZERO(s) do { int __i; unsigned long *__b=(s)->fds_bits; for(__i=sizeof (fd_set)/sizeof (long); __i; __i--) *__b++=0; } while(0)
#define FD_SET(d,s) ((s)->fds_bits[(d)/(8*sizeof(long))] |= (1UL<<((d)%(8*sizeof(long)))))
#define FD_CLR(d,s) ((s)->fds_bits[(d)/(8*sizeof(long))] &= ~(1UL<<((d)%(8*sizeof(long)))))
#define FD_ISSET(d,s) !!((s)->fds_bits[(d)/(8*sizeof(long))] & (1UL<<((d)%(8*sizeof(long)))))
int select (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, struct timeval *restrict);
int pselect (int, fd_set *restrict, fd_set *restrict, fd_set *restrict, const struct timespec *restrict, const sigset_t *restrict);
#define NFDBITS (8*(int)sizeof(long))
# 72 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/sys/types.h" 2 3 4
#define blkcnt64_t blkcnt_t
#define fsblkcnt64_t fsblkcnt_t
#define fsfilcnt64_t fsfilcnt_t
#define ino64_t ino_t
#define off64_t off_t
# 29 "config.h" 2
#define joe_snprintf_0(buf,len,fmt) snprintf((buf),(len),(fmt))
#define joe_snprintf_1(buf,len,fmt,a) snprintf((buf),(len),(fmt),(a))
#define joe_snprintf_2(buf,len,fmt,a,b) snprintf((buf),(len),(fmt),(a),(b))
#define joe_snprintf_3(buf,len,fmt,a,b,c) snprintf((buf),(len),(fmt),(a),(b),(c))
#define joe_snprintf_4(buf,len,fmt,a,b,c,d) snprintf((buf),(len),(fmt),(a),(b),(c),(d))
#define joe_snprintf_5(buf,len,fmt,a,b,c,d,e) snprintf((buf),(len),(fmt),(a),(b),(c),(d),(e))
#define joe_snprintf_6(buf,len,fmt,a,b,c,d,e,f) snprintf((buf),(len),(fmt),(a),(b),(c),(d),(e),(f))
#define joe_snprintf_7(buf,len,fmt,a,b,c,d,e,f,g) snprintf((buf),(len),(fmt),(a),(b),(c),(d),(e),(f),(g))
#define joe_snprintf_8(buf,len,fmt,a,b,c,d,e,f,g,h) snprintf((buf),(len),(fmt),(a),(b),(c),(d),(e),(f),(g),(h))
#define joe_snprintf_9(buf,len,fmt,a,b,c,d,e,f,g,h,i) snprintf((buf),(len),(fmt),(a),(b),(c),(d),(e),(f),(g),(h),(i))
#define joe_snprintf_10(buf,len,fmt,a,b,c,d,e,f,g,h,i,j) snprintf((buf),(len),(fmt),(a),(b),(c),(d),(e),(f),(g),(h),(i),(j))
# 61 "config.h"
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdio.h" 1 3 4
#define _STDIO_H
#define __NEED_FILE
#define __NEED___isoc_va_list
#define __NEED_size_t
# 21 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdio.h" 3 4
#define __NEED_ssize_t
#define __NEED_off_t
#define __NEED_va_list
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
typedef __builtin_va_list va_list;
#define __DEFINED_va_list
typedef __builtin_va_list __isoc_va_list;
#define __DEFINED___isoc_va_list
# 348 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef struct _IO_FILE FILE;
#define __DEFINED_FILE
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 27 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdio.h" 2 3 4
#define __fp(x,y) __attribute__ ((__format__ (__printf__, x, y)))
#define __fs(x,y) __attribute__ ((__format__ (__scanf__, x, y)))
# 39 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdio.h" 3 4
#define NULL ((void*)0)
#undef EOF
#define EOF (-1)
#undef SEEK_SET
#undef SEEK_CUR
#undef SEEK_END
#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2
#define _IOFBF 0
#define _IOLBF 1
#define _IONBF 2
#define BUFSIZ 1024
#define FILENAME_MAX 4096
#define FOPEN_MAX 1000
#define TMP_MAX 10000
#define L_tmpnam 20
typedef union _G_fpos64_t {
char __opaque[16];
long long __lldata;
double __align;
} fpos_t;
extern FILE *const stdin;
extern FILE *const stdout;
extern FILE *const stderr;
#define stdin (stdin)
#define stdout (stdout)
#define stderr (stderr)
FILE *fopen(const char *restrict, const char *restrict);
FILE *freopen(const char *restrict, const char *restrict, FILE *restrict);
int fclose(FILE *);
int remove(const char *);
int rename(const char *, const char *);
int feof(FILE *);
int ferror(FILE *);
int fflush(FILE *);
void clearerr(FILE *);
int fseek(FILE *, long, int);
long ftell(FILE *);
void rewind(FILE *);
int fgetpos(FILE *restrict, fpos_t *restrict);
int fsetpos(FILE *, const fpos_t *);
size_t fread(void *restrict, size_t, size_t, FILE *restrict);
size_t fwrite(const void *restrict, size_t, size_t, FILE *restrict);
int fgetc(FILE *);
int getc(FILE *);
int getchar(void);
int ungetc(int, FILE *);
int fputc(int, FILE *);
int putc(int, FILE *);
int putchar(int);
char *fgets(char *restrict, int, FILE *restrict);
int fputs(const char *restrict, FILE *restrict);
int puts(const char *);
int printf(const char *restrict, ...);
int fprintf(FILE *restrict, const char *restrict, ...);
int sprintf(char *restrict, const char *restrict, ...);
int snprintf(char *restrict, size_t, const char *restrict, ...) __attribute__ ((__format__ (__printf__, 3, 4)));
int vprintf(const char *restrict, __isoc_va_list);
int vfprintf(FILE *restrict, const char *restrict, __isoc_va_list);
int vsprintf(char *restrict, const char *restrict, __isoc_va_list);
int vsnprintf(char *restrict, size_t, const char *restrict, __isoc_va_list) __attribute__ ((__format__ (__printf__, 3, 0)));
int scanf(const char *restrict, ...);
int fscanf(FILE *restrict, const char *restrict, ...);
int sscanf(const char *restrict, const char *restrict, ...);
int vscanf(const char *restrict, __isoc_va_list) __attribute__ ((__format__ (__scanf__, 1, 0)));
int vfscanf(FILE *restrict, const char *restrict, __isoc_va_list) __attribute__ ((__format__ (__scanf__, 2, 0)));
int vsscanf(const char *restrict, const char *restrict, __isoc_va_list) __attribute__ ((__format__ (__scanf__, 2, 0)));
void perror(const char *);
int setvbuf(FILE *restrict, char *restrict, int, size_t);
void setbuf(FILE *restrict, char *restrict);
char *tmpnam(char *);
FILE *tmpfile(void);
FILE *fmemopen(void *restrict, size_t, const char *restrict);
FILE *open_memstream(char **, size_t *);
FILE *fdopen(int, const char *);
FILE *popen(const char *, const char *);
int pclose(FILE *);
int fileno(FILE *);
int fseeko(FILE *, off_t, int);
off_t ftello(FILE *);
int dprintf(int, const char *restrict, ...) __attribute__ ((__format__ (__printf__, 2, 3)));
int vdprintf(int, const char *restrict, __isoc_va_list) __attribute__ ((__format__ (__printf__, 2, 0)));
void flockfile(FILE *);
int ftrylockfile(FILE *);
void funlockfile(FILE *);
int getc_unlocked(FILE *);
int getchar_unlocked(void);
int putc_unlocked(int, FILE *);
int putchar_unlocked(int);
ssize_t getdelim(char **restrict, size_t *restrict, int, FILE *restrict);
ssize_t getline(char **restrict, size_t *restrict, FILE *restrict);
int renameat(int, const char *, int, const char *);
char *ctermid(char *);
#define L_ctermid 20
#define P_tmpdir "/tmp"
char *tempnam(const char *, const char *);
#define L_cuserid 20
char *cuserid(char *);
void setlinebuf(FILE *);
void setbuffer(FILE *, char *, size_t);
int fgetc_unlocked(FILE *);
int fputc_unlocked(int, FILE *);
int fflush_unlocked(FILE *);
size_t fread_unlocked(void *, size_t, size_t, FILE *);
size_t fwrite_unlocked(const void *, size_t, size_t, FILE *);
void clearerr_unlocked(FILE *);
int feof_unlocked(FILE *);
int ferror_unlocked(FILE *);
int fileno_unlocked(FILE *);
int getw(FILE *);
int putw(int, FILE *);
char *fgetln(FILE *, size_t *);
int asprintf(char **, const char *, ...) __attribute__ ((__format__ (__printf__, 2, 3)));
int vasprintf(char **, const char *, __isoc_va_list) __attribute__ ((__format__ (__printf__, 2, 0)));
char *fgets_unlocked(char *, int, FILE *);
int fputs_unlocked(const char *, FILE *);
typedef ssize_t (cookie_read_function_t)(void *, char *, size_t);
typedef ssize_t (cookie_write_function_t)(void *, const char *, size_t);
typedef int (cookie_seek_function_t)(void *, off_t *, int);
typedef int (cookie_close_function_t)(void *);
typedef struct _IO_cookie_io_functions_t {
cookie_read_function_t *read;
cookie_write_function_t *write;
cookie_seek_function_t *seek;
cookie_close_function_t *close;
} cookie_io_functions_t;
FILE *fopencookie(void *, const char *, cookie_io_functions_t);
#undef __fp
#undef __fs
#define tmpfile64 tmpfile
#define fopen64 fopen
#define freopen64 freopen
#define fseeko64 fseeko
#define ftello64 ftello
#define fgetpos64 fgetpos
#define fsetpos64 fsetpos
#define fpos64_t fpos_t
#define off64_t off_t
# 62 "config.h" 2
#define NO_MORE_DATA EOF
#define PGSIZE 4096
#define SEGSIZ PGSIZE
#define LPGSIZE 12
#define ILIMIT (PGSIZE*1024)
#define HTSIZE 2048
# 84 "config.h"
#define ATTR_BOUNDED(p)
# 98 "config.h"
#define BIT(i) (1U << (i))
#define NELEM(a) (sizeof(a) / sizeof((a)[0]))
# 111 "config.h"
#undef __IDSTRING
#undef __IDSTRING_CONCAT
#undef __IDSTRING_EXPAND
#undef __COPYRIGHT
#undef __RCSID
#undef __SCCSID
#define __IDSTRING_CONCAT(l,p) __LINTED__ ## l ## _ ## p
#define __IDSTRING_EXPAND(l,p) __IDSTRING_CONCAT(l,p)
#define __IDSTRING(prefix,string) __asm__(".section .comment" "\n .ascii \"@(\"\"#)" #prefix ": \"" "\n .asciz \"" string "\"" "\n .previous")
# 133 "config.h"
#define __COPYRIGHT(x) __IDSTRING(copyright,x)
#define __RCSID(x) __IDSTRING(rcsid,x)
#define __SCCSID(x) __IDSTRING(sccsid,x)
# 9 "bw.c" 2
# 1 "types.h" 1
#define _JOE_TYPES_H
# 30 "types.h"
#define UC (const unsigned char *)
#define US (unsigned char *)
#define LINK(type) struct { type *next; type *prev; }
#define stdsiz 8192
#define FITHEIGHT 4
#define LINCOLS 6
#define NPROC 8
#define UNDOKEEP 100
#define INC 16
#define TYPETW 0x0100
#define TYPEPW 0x0200
#define TYPEMENU 0x0800
#define TYPEQW 0x1000
# 53 "types.h"
typedef int jpoly_int();
typedef void jpoly_void();
struct jalloc_common {
int esiz;
int elen;
};
# 83 "types.h"
#define ALLOC_INFO(f) f
#define ALLOC_ITEM struct jalloc_common
#define jalloc_krnl(i) ((ALLOC_ITEM *)((char *)(i) - sizeof(ALLOC_ITEM)))
#define jalloc_user(i) ((void *)((char *)(i) + sizeof(ALLOC_ITEM)))
#define jalloc_siz(i) (jalloc_krnl(i)->ALLOC_INFO(esiz))
#define jalloc_len(i) (jalloc_krnl(i)->ALLOC_INFO(elen))
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/limits.h" 1 3 4
#define _LIMITS_H
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/limits.h" 1 3 4
#define LONG_BIT 32
#define LONG_MAX 0x7fffffffL
#define LLONG_MAX 0x7fffffffffffffffLL
# 9 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/limits.h" 2 3 4
#define CHAR_MIN (-128)
#define CHAR_MAX 127
#define CHAR_BIT 8
#define SCHAR_MIN (-128)
#define SCHAR_MAX 127
#define UCHAR_MAX 255
#define SHRT_MIN (-1-0x7fff)
#define SHRT_MAX 0x7fff
#define USHRT_MAX 0xffff
#define INT_MIN (-1-0x7fffffff)
#define INT_MAX 0x7fffffff
#define UINT_MAX 0xffffffffU
#define LONG_MIN (-LONG_MAX-1)
#define ULONG_MAX (2UL*LONG_MAX+1)
#define LLONG_MIN (-LLONG_MAX-1)
#define ULLONG_MAX (2ULL*LLONG_MAX+1)
#define MB_LEN_MAX 4
#define PIPE_BUF 4096
#define FILESIZEBITS 64
#define NAME_MAX 255
#define PATH_MAX 4096
#define NGROUPS_MAX 32
#define ARG_MAX 131072
#define IOV_MAX 1024
#define SYMLOOP_MAX 40
#define WORD_BIT 32
#define SSIZE_MAX LONG_MAX
#define TZNAME_MAX 6
#define TTY_NAME_MAX 32
#define HOST_NAME_MAX 255
#define PTHREAD_KEYS_MAX 128
#define PTHREAD_STACK_MIN 2048
#define PTHREAD_DESTRUCTOR_ITERATIONS 4
#define SEM_VALUE_MAX 0x7fffffff
#define SEM_NSEMS_MAX 256
#define DELAYTIMER_MAX 0x7fffffff
#define MQ_PRIO_MAX 32768
#define LOGIN_NAME_MAX 256
#define BC_BASE_MAX 99
#define BC_DIM_MAX 2048
#define BC_SCALE_MAX 99
#define BC_STRING_MAX 1000
#define CHARCLASS_NAME_MAX 14
#define COLL_WEIGHTS_MAX 2
#define EXPR_NEST_MAX 32
#define LINE_MAX 4096
#define RE_DUP_MAX 255
#define NL_ARGMAX 9
#define NL_MSGMAX 32767
#define NL_SETMAX 255
#define NL_TEXTMAX 2048
# 91 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/limits.h" 3 4
#define NZERO 20
#define NL_LANGMAX 32
#define NL_NMAX 16
#define _POSIX_AIO_LISTIO_MAX 2
#define _POSIX_AIO_MAX 1
#define _POSIX_ARG_MAX 4096
#define _POSIX_CHILD_MAX 25
#define _POSIX_CLOCKRES_MIN 20000000
#define _POSIX_DELAYTIMER_MAX 32
#define _POSIX_HOST_NAME_MAX 255
#define _POSIX_LINK_MAX 8
#define _POSIX_LOGIN_NAME_MAX 9
#define _POSIX_MAX_CANON 255
#define _POSIX_MAX_INPUT 255
#define _POSIX_MQ_OPEN_MAX 8
#define _POSIX_MQ_PRIO_MAX 32
#define _POSIX_NAME_MAX 14
#define _POSIX_NGROUPS_MAX 8
#define _POSIX_OPEN_MAX 20
#define _POSIX_PATH_MAX 256
#define _POSIX_PIPE_BUF 512
#define _POSIX_RE_DUP_MAX 255
#define _POSIX_RTSIG_MAX 8
#define _POSIX_SEM_NSEMS_MAX 256
#define _POSIX_SEM_VALUE_MAX 32767
#define _POSIX_SIGQUEUE_MAX 32
#define _POSIX_SSIZE_MAX 32767
#define _POSIX_STREAM_MAX 8
#define _POSIX_SS_REPL_MAX 4
#define _POSIX_SYMLINK_MAX 255
#define _POSIX_SYMLOOP_MAX 8
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
#define _POSIX_THREAD_KEYS_MAX 128
#define _POSIX_THREAD_THREADS_MAX 64
#define _POSIX_TIMER_MAX 32
#define _POSIX_TRACE_EVENT_NAME_MAX 30
#define _POSIX_TRACE_NAME_MAX 8
#define _POSIX_TRACE_SYS_MAX 8
#define _POSIX_TRACE_USER_EVENT_MAX 32
#define _POSIX_TTY_NAME_MAX 9
#define _POSIX_TZNAME_MAX 6
#define _POSIX2_BC_BASE_MAX 99
#define _POSIX2_BC_DIM_MAX 2048
#define _POSIX2_BC_SCALE_MAX 99
#define _POSIX2_BC_STRING_MAX 1000
#define _POSIX2_CHARCLASS_NAME_MAX 14
#define _POSIX2_COLL_WEIGHTS_MAX 2
#define _POSIX2_EXPR_NEST_MAX 32
#define _POSIX2_LINE_MAX 2048
#define _POSIX2_RE_DUP_MAX 255
#define _XOPEN_IOV_MAX 16
#define _XOPEN_NAME_MAX 255
#define _XOPEN_PATH_MAX 1024
# 94 "types.h" 2
# 107 "types.h"
#define notok2mul(max,val,c) (((val) != 0) && ((c) != 0) && (((max) / (c)) < (val)))
#define notok2add(max,val,c) ((val) > ((max) - (c)))
#define notoktomul(val,cnst) notok2mul(SIZE_MAX, (val), (cnst))
#define notoktoadd(val,cnst) notok2add(SIZE_MAX, (val), (cnst))
void jalloc_init(void);
void *jalloc(void *, size_t, size_t);
void jfree(void *);
#define ralloc(nmemb,size) (notoktomul(nmemb, size) ? NULL : malloc((nmemb) * (size)))
typedef struct header H;
typedef struct buffer B;
typedef struct point P;
typedef struct options OPTIONS;
typedef struct macro MACRO;
typedef struct cmd CMD;
typedef struct hentry HENTRY;
typedef struct hash HASH;
typedef struct kmap KMAP;
typedef struct kbd KBD;
typedef struct key KEY;
typedef struct watom WATOM;
typedef struct screen SCREEN;
typedef struct window W;
typedef struct base BASE;
typedef struct bw BW;
typedef struct menu MENU;
typedef struct scrn SCRN;
typedef struct cap CAP;
typedef struct pw PW;
typedef struct stditem STDITEM;
typedef struct query QW;
typedef struct tw TW;
typedef struct irec IREC;
typedef struct undo UNDO;
typedef struct undorec UNDOREC;
typedef struct search SRCH;
typedef struct srchrec SRCHREC;
typedef struct vpage VPAGE;
typedef struct vfile VFILE;
typedef union {
BASE *base;
MENU *menu;
BW *bw;
QW *qw;
} jobject;
struct header {
struct { H *next; H *prev; } link;
long seg;
int hole;
int ehole;
int nlines;
};
struct point {
struct { P *next; P *prev; } link;
B *b;
int ofst;
unsigned char *ptr;
H *hdr;
long byte;
long line;
long col;
long xcol;
int valcol;
int end;
P **owner;
};
struct options {
OPTIONS *next;
unsigned char *name_regex;
unsigned char *contents_regex;
int overtype;
int lmargin;
int rmargin;
int autoindent;
int wordwrap;
int tab;
int indentc;
int istep;
unsigned char *context;
const unsigned char *lmsg;
const unsigned char *rmsg;
char *hmsg;
int linums;
int readonly;
int french;
int spaces;
int crlf;
int highlight;
unsigned char *syntax_name;
struct high_syntax *syntax;
unsigned char *map_name;
struct charmap *charmap;
int smarthome;
int indentfirst;
int smartbacks;
int purify;
int picture;
MACRO *mnew;
MACRO *mold;
MACRO *msnew;
MACRO *msold;
int vispace;
int hex;
};
struct macro {
int k;
int arg;
CMD *cmd;
int n;
int size;
MACRO **steps;
};
struct recmac {
struct recmac *next;
int n;
MACRO *m;
};
struct cmd {
const unsigned char *name;
const unsigned char *negarg;
jpoly_int *func;
MACRO *m;
unsigned int flag;
int arg;
};
struct buffer {
struct { B *next; B *prev; } link;
P *bof;
P *eof;
unsigned char *name;
long mod_time;
int orphan;
int count;
int changed;
int backup;
void *undo;
P *marks[11];
OPTIONS o;
P *oldcur;
P *oldtop;
int rdonly;
int internal;
int scratch;
int er;
pid_t pid;
int out;
};
struct hentry {
const unsigned char *name;
HENTRY *next;
void *val;
};
struct hash {
int len;
HENTRY **tab;
};
struct help {
struct help *prev;
struct help *next;
unsigned char *name;
unsigned char *text;
unsigned int lines;
};
struct key {
int k;
union {
void *bind;
KMAP *submap;
} value;
};
struct kmap {
KEY keys[256];
};
struct kbd {
KMAP *curmap;
KMAP *topmap;
int seq[16];
int x;
};
struct watom {
const unsigned char *context;
void (*disp)(jobject, int);
void (*follow)(jobject);
int (*abort)(jobject);
int (*rtn)(jobject);
int (*type)(jobject, int);
void (*resize)(jobject, int, int);
void (*move)(jobject, int, int);
void (*ins)(BW *, B *, long, long, int);
void (*del)(BW *, B *, long, long, int);
int what;
};
struct screen {
SCRN *t;
int wind;
W *topwin;
W *curwin;
int w, h;
};
struct window {
struct { W *next; W *prev; } link;
SCREEN *t;
int x, y, w, h;
int ny, nh;
int reqh;
int fixed;
int hh;
W *win;
W *main;
W *orgwin;
int curx, cury;
KBD *kbd;
WATOM *watom;
jobject object;
const unsigned char *msgt;
const unsigned char *msgb;
const unsigned char *huh;
int *notify;
};
struct base {
W *parent;
};
struct bw {
W *parent;
B *b;
P *top;
P *cursor;
long offset;
SCREEN *t;
int h, w, x, y;
OPTIONS o;
void *object;
int linums;
int top_changed;
};
struct menu {
W *parent;
unsigned char **list;
int top;
int cursor;
int width;
int perline;
int nitems;
int saved_co;
SCREEN *t;
int h, w, x, y;
jpoly_int *abrt;
jpoly_int *func;
jpoly_int *backs;
void *object;
};
struct s_hentry {
int next;
int loc;
};
struct scrn {
CAP *cap;
int li;
int co;
const unsigned char *ti;
const unsigned char *cl;
const unsigned char *cd;
const unsigned char *te;
int haz;
int os;
int eo;
int ul;
int am;
int xn;
const unsigned char *so;
const unsigned char *se;
const unsigned char *us;
const unsigned char *ue;
const unsigned char *uc;
int ms;
const unsigned char *mb;
const unsigned char *md;
const unsigned char *mh;
const unsigned char *mr;
const unsigned char *me;
const unsigned char *Sb;
const unsigned char *Sf;
int ut;
int da, db;
const unsigned char *al, *dl, *AL, *DL;
const unsigned char *cs;
int rr;
const unsigned char *sf, *SF, *sr, *SR;
const unsigned char *dm, *dc, *DC, *ed;
const unsigned char *im, *ic, *IC, *ip, *ei;
int mi;
const unsigned char *bs;
int cbs;
const unsigned char *lf;
int clf;
const unsigned char *up;
int cup;
const unsigned char *nd;
const unsigned char *ta;
int cta;
const unsigned char *bt;
int cbt;
int tw;
const unsigned char *ho;
int cho;
const unsigned char *ll;
int cll;
const unsigned char *cr;
int ccr;
const unsigned char *RI;
int cRI;
const unsigned char *LE;
int cLE;
const unsigned char *UP;
int cUP;
const unsigned char *DO;
int cDO;
const unsigned char *ch;
int cch;
const unsigned char *cv;
int ccv;
const unsigned char *cV;
int ccV;
const unsigned char *cm;
int ccm;
const unsigned char *ce;
int cce;
int scroll;
int insdel;
int *scrn;
int *attr;
int x, y;
int top, bot;
int attrib;
int ins;
int *updtab;
int *syntab;
int avattr;
int *sary;
int *compose;
int *ofst;
struct s_hentry *htab;
struct s_hentry *ary;
};
struct sortentry {
unsigned char *name;
unsigned char *value;
};
struct cap {
unsigned char *tbuf;
struct sortentry *sort;
int sortlen;
unsigned char *abuf;
unsigned char *abufp;
int div;
int baud;
const unsigned char *pad;
void (*out) (unsigned char *, unsigned char);
void *outptr;
int dopadding;
const char *paste_on;
const char *paste_off;
};
struct pw {
jpoly_int *pfunc;
jpoly_int *abrt;
jpoly_int *tab;
unsigned char *prompt;
int promptlen;
int promptofst;
B *hist;
void *object;
};
struct stditem {
struct { STDITEM *next; STDITEM *prev; } link;
};
struct query {
W *parent;
jpoly_int *func;
jpoly_int *abrt;
void *object;
unsigned char *prompt;
int promptlen;
int promptofst;
};
typedef struct mpx MPX;
struct mpx {
int ackfd;
int kpid;
int pid;
jpoly_void *func;
void *object;
jpoly_void *die;
void *dieobj;
};
struct tw {
unsigned char *stalin;
unsigned char *staright;
int staon;
long prevline;
int changed;
B *prev_b;
};
struct irec {
struct { IREC *next; IREC *prev; } link;
int what;
long start;
long disp;
int wrap_flag;
};
struct isrch {
IREC irecs;
unsigned char *pattern;
unsigned char *prompt;
int ofst;
int dir;
int quote;
};
struct undorec {
struct { UNDOREC *next; UNDOREC *prev; } link;
UNDOREC *unit;
int min;
int changed;
long where;
long len;
int del;
B *big;
unsigned char *small;
};
struct undo {
struct { UNDO *next; UNDO *prev; } link;
B *b;
int nrecs;
UNDOREC recs;
UNDOREC *ptr;
UNDOREC *first;
UNDOREC *last;
};
struct srchrec {
struct { SRCHREC *next; SRCHREC *prev; } link;
int yn;
int wrap_flag;
long addr;
};
struct search {
unsigned char *pattern;
unsigned char *replacement;
int backwards;
int ignore;
int repeat;
int replace;
int rest;
unsigned char *entire;
unsigned char *pieces[26];
int flg;
SRCHREC recs;
P *markb, *markk;
P *wrap_p;
int wrap_flag;
int valid;
long addr;
int block_restrict;
};
struct vpage {
VPAGE *next;
VFILE *vfile;
long addr;
int count;
int dirty;
unsigned char *data;
};
struct vfile {
struct { VFILE *next; VFILE *prev; } link;
long size;
long alloc;
int fd;
int writeable;
unsigned char *name;
int flags;
unsigned char *vpage1;
long addr;
unsigned char *bufp;
unsigned char *vpage;
int left;
int lv;
};
# 10 "bw.c" 2
__asm__(".section .comment" "\n .ascii \"@(\"\"#)" "rcsid" ": \"" "\n .asciz \"" "$MirOS: contrib/code/jupp/bw.c,v 1.39 2018/10/20 16:32:24 tg Exp $" "\"" "\n .previous");
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/string.h" 1 3 4
#define _STRING_H
# 13 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/string.h" 3 4
#define NULL ((void*)0)
#define __NEED_size_t
#define __NEED_locale_t
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
# 360 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
# 360 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef struct __locale_struct * locale_t;
#define __DEFINED_locale_t
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 24 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/string.h" 2 3 4
void *memcpy (void *restrict, const void *restrict, size_t);
void *memmove (void *, const void *, size_t);
void *memset (void *, int, size_t);
int memcmp (const void *, const void *, size_t);
void *memchr (const void *, int, size_t);
char *strcpy (char *restrict, const char *restrict);
char *strncpy (char *restrict, const char *restrict, size_t);
char *strcat (char *restrict, const char *restrict);
char *strncat (char *restrict, const char *restrict, size_t);
int strcmp (const char *, const char *);
int strncmp (const char *, const char *, size_t);
int strcoll (const char *, const char *);
size_t strxfrm (char *restrict, const char *restrict, size_t);
char *strchr (const char *, int);
char *strrchr (const char *, int);
size_t strcspn (const char *, const char *);
size_t strspn (const char *, const char *);
char *strpbrk (const char *, const char *);
char *strstr (const char *, const char *);
char *strtok (char *restrict, const char *restrict);
size_t strlen (const char *);
char *strerror (int);
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/strings.h" 1 3 4
#define _STRINGS_H
#define __NEED_size_t
#define __NEED_locale_t
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 12 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/strings.h" 2 3 4
int bcmp (const void *, const void *, size_t);
void bcopy (const void *, void *, size_t);
void bzero (void *, size_t);
char *index (const char *, int);
char *rindex (const char *, int);
int ffs (int);
int ffsl (long);
int ffsll (long long);
int strcasecmp (const char *, const char *);
int strncasecmp (const char *, const char *, size_t);
int strcasecmp_l (const char *, const char *, locale_t);
int strncasecmp_l (const char *, const char *, size_t, locale_t);
# 58 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/string.h" 2 3 4
char *strtok_r (char *restrict, const char *restrict, char **restrict);
int strerror_r (int, char *, size_t);
char *stpcpy(char *restrict, const char *restrict);
char *stpncpy(char *restrict, const char *restrict, size_t);
size_t strnlen (const char *, size_t);
char *strdup (const char *);
char *strndup (const char *, size_t);
char *strsignal(int);
char *strerror_l (int, locale_t);
int strcoll_l (const char *, const char *, locale_t);
size_t strxfrm_l (char *restrict, const char *restrict, size_t, locale_t);
void *memccpy (void *restrict, const void *restrict, int, size_t);
char *strsep(char **, const char *);
size_t strlcat (char *, const char *, size_t);
size_t strlcpy (char *, const char *, size_t);
void explicit_bzero (void *, size_t);
#define strdupa(x) strcpy(alloca(strlen(x)+1),x)
int strverscmp (const char *, const char *);
char *strchrnul(const char *, int);
char *strcasestr(const char *, const char *);
void *memmem(const void *, size_t, const void *, size_t);
void *memrchr(const void *, int, size_t);
void *mempcpy(void *, const void *, size_t);
char *basename();
# 14 "bw.c" 2
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdlib.h" 1 3 4
#define _STDLIB_H
# 13 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdlib.h" 3 4
#define NULL ((void*)0)
#define __NEED_size_t
#define __NEED_wchar_t
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
# 18 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
typedef int wchar_t;
#define __DEFINED_wchar_t
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 20 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdlib.h" 2 3 4
int atoi (const char *);
long atol (const char *);
long long atoll (const char *);
double atof (const char *);
float strtof (const char *restrict, char **restrict);
double strtod (const char *restrict, char **restrict);
long double strtold (const char *restrict, char **restrict);
long strtol (const char *restrict, char **restrict, int);
unsigned long strtoul (const char *restrict, char **restrict, int);
long long strtoll (const char *restrict, char **restrict, int);
unsigned long long strtoull (const char *restrict, char **restrict, int);
int rand (void);
void srand (unsigned);
void *malloc (size_t);
void *calloc (size_t, size_t);
void *realloc (void *, size_t);
void free (void *);
void *aligned_alloc(size_t, size_t);
_Noreturn void abort (void);
int atexit (void (*) (void));
_Noreturn void exit (int);
_Noreturn void _Exit (int);
int at_quick_exit (void (*) (void));
_Noreturn void quick_exit (int);
char *getenv (const char *);
int system (const char *);
void *bsearch (const void *, const void *, size_t, size_t, int (*)(const void *, const void *));
void qsort (void *, size_t, size_t, int (*)(const void *, const void *));
int abs (int);
long labs (long);
long long llabs (long long);
typedef struct { int quot, rem; } div_t;
typedef struct { long quot, rem; } ldiv_t;
typedef struct { long long quot, rem; } lldiv_t;
div_t div (int, int);
ldiv_t ldiv (long, long);
lldiv_t lldiv (long long, long long);
int mblen (const char *, size_t);
int mbtowc (wchar_t *restrict, const char *restrict, size_t);
int wctomb (char *, wchar_t);
size_t mbstowcs (wchar_t *restrict, const char *restrict, size_t);
size_t wcstombs (char *restrict, const wchar_t *restrict, size_t);
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
size_t __ctype_get_mb_cur_max(void);
#define MB_CUR_MAX (__ctype_get_mb_cur_max())
#define RAND_MAX (0x7fffffff)
#define WNOHANG 1
#define WUNTRACED 2
#define WEXITSTATUS(s) (((s) & 0xff00) >> 8)
#define WTERMSIG(s) ((s) & 0x7f)
#define WSTOPSIG(s) WEXITSTATUS(s)
#define WIFEXITED(s) (!WTERMSIG(s))
#define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00)
#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu)
int posix_memalign (void **, size_t, size_t);
int setenv (const char *, const char *, int);
int unsetenv (const char *);
int mkstemp (char *);
int mkostemp (char *, int);
char *mkdtemp (char *);
int getsubopt (char **, char *const *, char **);
int rand_r (unsigned *);
char *realpath (const char *restrict, char *restrict);
long int random (void);
void srandom (unsigned int);
char *initstate (unsigned int, char *, size_t);
char *setstate (char *);
int putenv (char *);
int posix_openpt (int);
int grantpt (int);
int unlockpt (int);
char *ptsname (int);
char *l64a (long);
long a64l (const char *);
void setkey (const char *);
double drand48 (void);
double erand48 (unsigned short [3]);
long int lrand48 (void);
long int nrand48 (unsigned short [3]);
long mrand48 (void);
long jrand48 (unsigned short [3]);
void srand48 (long);
unsigned short *seed48 (unsigned short [3]);
void lcong48 (unsigned short [7]);
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/alloca.h" 1 3 4
#define _ALLOCA_H
#define __NEED_size_t
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 10 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/alloca.h" 2 3 4
void *alloca(size_t);
#define alloca __builtin_alloca
# 139 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/stdlib.h" 2 3 4
char *mktemp (char *);
int mkstemps (char *, int);
int mkostemps (char *, int, int);
void *valloc (size_t);
void *memalign(size_t, size_t);
int getloadavg(double *, int);
int clearenv(void);
#define WCOREDUMP(s) ((s) & 0x80)
#define WIFCONTINUED(s) ((s) == 0xffff)
int ptsname_r(int, char *, size_t);
char *ecvt(double, int, int *, int *);
char *fcvt(double, int, int *, int *);
char *gcvt(double, int, char *);
char *secure_getenv(const char *);
struct __locale_struct;
float strtof_l(const char *restrict, char **restrict, struct __locale_struct *);
double strtod_l(const char *restrict, char **restrict, struct __locale_struct *);
long double strtold_l(const char *restrict, char **restrict, struct __locale_struct *);
#define mkstemp64 mkstemp
#define mkostemp64 mkostemp
#define mkstemps64 mkstemps
#define mkostemps64 mkostemps
# 15 "bw.c" 2
# 1 "b.h" 1
# 9 "b.h"
#define _JOE_B_H 1
# 15 "b.h"
extern unsigned char stdbuf[8192];
extern int force;
extern int tabwidth;
extern VFILE *vmem;
extern const unsigned char *msgs[];
B *bmk(B *prop);
void brm(B *b);
B *bfind(const unsigned char *s);
B *bfind_scratch(const unsigned char *s);
B *bcheck_loaded(const unsigned char *s);
B *bfind_reload(const unsigned char *s);
P *pdup(P *p);
P *pdupown(P *p, P **o);
P *poffline(P *p);
P *ponline(P *p);
B *bonline(B *b);
B *boffline(B *b);
void prm(P *p);
P *pset(P *n, P *p);
P *p_goto_bof(P *p);
P *p_goto_eof(P *p);
P *p_goto_bol(P *p);
P *p_goto_eol(P *p);
P *p_goto_indent(P *p,int c);
int pisbof(P *p);
int piseof(P *p);
int piseol(P *p);
int pisbol(P *p);
int pisbow(P *p);
int piseow(P *p);
#define piscol(p) ((p)->valcol ? (p)->col : (pfcol(p), (p)->col))
int pisblank(P *p);
int piseolblank(P *p);
long pisindent(P *p);
int pispure(P *p,int c);
int pnext(P *p);
int pprev(P *p);
int pgetb(P *p);
int prgetb(P *p);
int pgetc(P *p);
int prgetc(P *p);
P *pgoto(P *p, long int loc);
P *pfwrd(P *p, long int n);
P *pbkwd(P *p, long int n);
P *pfcol(P *p);
P *pnextl(P *p);
P *pprevl(P *p);
P *pline(P *p, long int line);
P *pcolwse(P *p, long int goalcol);
P *pcol(P *p, long int goalcol);
P *pcoli(P *p, long int goalcol);
void pbackws(P *p);
void pfill(P *p, long int to, int usetabs);
P *pfind(P *p, unsigned char *s, int len);
P *pifind(P *p, unsigned char *s, int len);
P *prfind(P *p, unsigned char *s, int len);
P *prifind(P *p, unsigned char *s, int len);
B *bcpy(P *from, P *to);
void pcoalesce(P *p);
void bdel(P *from, P *to);
P *binsb(P *p, B *b);
P *binsm(P *p, const unsigned char *blk, int amnt);
P *binsc(P *p, int c);
P *binsbyte(P *p, unsigned char c);
P *binss(P *p, unsigned char *s);
# 125 "b.h"
B *bload(const unsigned char *s);
B *bread(int fi, long int max);
B *borphan(void);
int bsave(P *p, unsigned char *s, long int size,int flag);
int bsavefd(P *p, int fd, long int size);
unsigned char *parsens(const unsigned char *s, long int *skip, long int *amnt);
int brc(P *p);
int brch(P *p);
unsigned char *brmem(P *p, unsigned char *blk, int size);
unsigned char *brs(P *p, int size);
unsigned char *brvs(P *p, int size);
unsigned char *brzs(P *p, unsigned char *buf, int size);
B *bnext(void);
B *bprev(void);
#define error berror
extern int berror;
unsigned char **getbufs(void);
# 21 "bw.c" 2
# 1 "bw.h" 1
# 9 "bw.h"
#define _JOE_BW_H 1
extern int dspasis;
extern int mid;
void bwfllw(jobject);
void bwins(BW *w, long int l, long int n, int flg);
void bwdel(BW *w, long int l, long int n, int flg);
void bwgen(BW *w, int linums);
void bwgenh(BW *w);
BW *bwmk(W *window, B *b, int prompt);
void bwmove(BW *w, int x, int y);
void bwresz(BW *w, int wi, int he);
void bwrm(BW *w);
int ustat_j(BW *bw);
int ucrawll(BW *bw);
int ucrawlr(BW *bw);
void orphit(BW *bw);
# 22 "bw.c" 2
# 1 "blocks.h" 1
# 9 "blocks.h"
#define _JOE_BLOCKS_H 1
# 19 "blocks.h"
void *mmove(void *d, const void *s, int sz);
unsigned char *mset(void *dest, unsigned char c, int sz);
int *msetI(void *dest, int c, int sz);
void **msetP(void **dest, void *c, int sz);
int mcnt(const unsigned char *blk, unsigned char c, int size);
# 23 "bw.c" 2
# 1 "kbd.h" 1
# 9 "kbd.h"
#define _JOE_KBD_H 1
# 18 "kbd.h"
KMAP *mkkmap(void);
void rmkmap(KMAP *kmap);
# 51 "kbd.h"
int kadd(CAP *cap, KMAP *kmap, unsigned char *seq, void *bind);
void kcpy(KMAP *dest, KMAP *src);
# 65 "kbd.h"
int kdel(KMAP *kmap, unsigned char *seq);
KBD *mkkbd(KMAP *kmap);
void rmkbd(KBD *k);
# 85 "kbd.h"
void *dokey(KBD *kbd, int n);
# 24 "bw.c" 2
# 1 "rc.h" 1
# 9 "rc.h"
#define _JOE_RC_H 1
extern OPTIONS pdefault;
extern OPTIONS fdefault;
void setopt(B *b, const unsigned char *name);
KMAP *kmap_getcontext(const unsigned char *name, int docreate);
int procrc(CAP *cap, const unsigned char *name);
int glopt(unsigned char *s, unsigned char *arg, OPTIONS *options, int set);
int umode(BW *bw);
void lazy_opts(OPTIONS *o);
# 25 "bw.c" 2
# 1 "scrn.h" 1
# 9 "scrn.h"
#define _JOE_SCRN_H 1
# 1 "tty.h" 1
# 9 "tty.h"
#define _JOE_TTY_H 1
# 49 "tty.h"
void ttopen(void);
void ttopnn(void);
extern unsigned long upc;
extern unsigned baud;
#define TIMES 3
#define DIVIDEND 10000000
# 67 "tty.h"
void ttclose(void);
void ttclsn(void);
# 79 "tty.h"
int ttgetc(void);
extern int obufp;
extern int obufsiz;
extern unsigned char *obuf;
#define ttputc(c) do { obuf[obufp++] = (c); if (obufp == obufsiz) ttflsh(); } while ( 0)
# 97 "tty.h"
void ttputs(unsigned char *s);
void ttsusp(void);
# 132 "tty.h"
int ttflsh(void);
extern int have;
extern int leave;
void ttsig(int sig) __attribute__((__noreturn__));
void ttabrt(int, const char *);
void ttgtsz(int *x, int *y);
# 158 "tty.h"
void sigjoe(void);
void signrm(int);
# 176 "tty.h"
MPX *mpxmk(int *ptyfd, const unsigned char *cmd, unsigned char **args,
void (*func)(B *, unsigned char *, int), void *object,
void (*die)(B *), void *dieobj);
extern int noxon;
extern int Baud;
void tickoff(void);
void tickon(void);
# 16 "scrn.h" 2
extern int skiptop;
SCRN *nopen(CAP *cap);
void nresize(SCRN *t, int w, int h);
void nredraw(SCRN *t);
void npartial(SCRN *t);
void nescape(SCRN *t);
void nreturn(SCRN *t);
void nclose(SCRN *t);
int cpos(register SCRN *t, register int x, register int y);
int set_attr(SCRN *t, int c);
void utf8_putc(int c);
# 75 "scrn.h"
#define INVERSE 256
#define UNDERLINE 512
#define BOLD 1024
#define BLINK 2048
#define DIM 4096
#define AT_MASK (INVERSE+UNDERLINE+BOLD+BLINK+DIM)
#define BG_SHIFT 13
#define BG_VALUE (7<<BG_SHIFT)
#define BG_NOT_DEFAULT (8<<BG_SHIFT)
#define BG_MASK (15<<BG_SHIFT)
#define BG_DEFAULT (0<<BG_SHIFT)
#define BG_BLACK (8<<BG_SHIFT)
#define BG_RED (9<<BG_SHIFT)
#define BG_GREEN (10<<BG_SHIFT)
#define BG_YELLOW (11<<BG_SHIFT)
#define BG_BLUE (12<<BG_SHIFT)
#define BG_MAGENTA (13<<BG_SHIFT)
#define BG_CYAN (14<<BG_SHIFT)
#define BG_WHITE (15<<BG_SHIFT)
#define FG_SHIFT 17
#define FG_VALUE (7<<FG_SHIFT)
#define FG_NOT_DEFAULT (8<<FG_SHIFT)
#define FG_MASK (15<<FG_SHIFT)
#define FG_DEFAULT (0<<FG_SHIFT)
#define FG_WHITE (8<<FG_SHIFT)
#define FG_CYAN (9<<FG_SHIFT)
#define FG_MAGENTA (10<<FG_SHIFT)
#define FG_BLUE (11<<FG_SHIFT)
#define FG_YELLOW (12<<FG_SHIFT)
#define FG_GREEN (13<<FG_SHIFT)
#define FG_RED (14<<FG_SHIFT)
#define FG_BLACK (15<<FG_SHIFT)
#define HAS_COMBINING 0x200000
void outatr(struct charmap *map,SCRN *t,int *scrn,int *attrf,int xx,int yy,int c,int a);
void outatr_help(SCRN *, int *, int *, int, int, int, int);
int eraeol(SCRN *t, int x, int y);
void nscrlup(SCRN *t, int top, int bot, int amnt);
void nscrldn(SCRN *t, int top, int bot, int amnt);
void nscroll(SCRN *t);
void magic(SCRN *t, int y, int *cs, int *ca, int *s, int *a,int placex);
int clrins(SCRN *t);
int meta_color(unsigned char *s);
void genfield(SCRN *t,int *scrn,int *attr,int x,int y,int ofst,unsigned char *s,int len,int atr,int width,int flg,int *fmt);
int txtwidth(unsigned char *s,int len);
void genfmt(SCRN *t, int x, int y, int ofst, const unsigned char *s, int flg);
int fmtlen(const unsigned char *s);
int fmtpos(unsigned char *s, int goal);
# 26 "bw.c" 2
# 1 "ublock.h" 1
# 9 "ublock.h"
#define _JOE_UBLOCK_H 1
extern int square;
extern int lightoff;
extern P *markb, *markk;
void pinsrect(P *cur, B *tmp, long int width, int usetabs);
int ptabrect(P *org, long int height, long int right);
void pclrrect(P *org, long int height, long int right, int usetabs);
void pdelrect(P *org, long int height, long int right);
B *pextrect(P *org, long int height, long int right);
int markv(int r);
int umarkb(BW *bw);
int umarkk(BW *bw);
int uswap(BW *bw);
int umarkl(BW *bw);
int utomarkb(BW *bw);
int utomarkk(BW *bw);
int utomarkbk(BW *bw);
int ublkdel(BW *bw);
int upicokill(BW *bw);
int ublkmove(BW *bw);
int ublkcpy(BW *bw);
int dowrite(BW *bw, unsigned char *s, void *object, int *notify);
int doinsf(BW *bw, unsigned char *s, void *object, int *notify);
void setindent(BW *bw);
int urindent(BW *bw);
int ulindent(BW *bw);
int ufilt(BW *bw);
int unmark(BW *bw);
int udrop(BW *bw);
int utoggle_marking(BW *bw);
int ubegin_marking(BW *bw);
int uselect(BW *bw);
int upsh(BW *bw);
int upop(BW *bw);
int ulower(BW *bw);
int uupper(BW *bw);
extern int nstack;
# 27 "bw.c" 2
# 1 "utils.h" 1
# 11 "utils.h"
#define _JOE_UTILS_H 1
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/signal.h" 1 3 4
#define _SIGNAL_H
# 15 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/signal.h" 3 4
#define __ucontext ucontext
#define __NEED_size_t
#define __NEED_pid_t
#define __NEED_uid_t
#define __NEED_struct_timespec
#define __NEED_pthread_t
#define __NEED_pthread_attr_t
#define __NEED_time_t
#define __NEED_clock_t
#define __NEED_sigset_t
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 1 3 4
#define _Addr int
#define _Int64 long long
#define _Reg int
# 388 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/alltypes.h" 3 4
#undef _Addr
#undef _Int64
#undef _Reg
# 29 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/signal.h" 2 3 4
#define SIG_BLOCK 0
#define SIG_UNBLOCK 1
#define SIG_SETMASK 2
#define SI_ASYNCNL (-60)
#define SI_TKILL (-6)
#define SI_SIGIO (-5)
#define SI_ASYNCIO (-4)
#define SI_MESGQ (-3)
#define SI_TIMER (-2)
#define SI_QUEUE (-1)
#define SI_USER 0
#define SI_KERNEL 128
# 44 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/signal.h" 3 4
typedef struct sigaltstack stack_t;
# 1 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/signal.h" 1 3 4
#define MINSIGSTKSZ 2048
#define SIGSTKSZ 8192
typedef unsigned long long greg_t, gregset_t[32];
typedef struct {
union {
double fp_dregs[32];
struct {
float _fp_fregs;
unsigned _fp_pad;
} fp_fregs[32];
} fp_r;
} fpregset_t;
struct sigcontext {
unsigned sc_regmask, sc_status;
unsigned long long sc_pc, sc_regs[32], sc_fpregs[32];
unsigned sc_ownedfp, sc_fpc_csr, sc_fpc_eir, sc_used_math, sc_dsp;
unsigned long long sc_mdhi, sc_mdlo;
unsigned long sc_hi1, sc_lo1, sc_hi2, sc_lo2, sc_hi3, sc_lo3;
};
typedef struct {
unsigned regmask, status;
unsigned long long pc, gregs[32], fpregs[32];
unsigned ownedfp, fpc_csr, fpc_eir, used_math, dsp;
unsigned long long mdhi, mdlo;
unsigned long hi1, lo1, hi2, lo2, hi3, lo3;
} mcontext_t;
# 44 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/bits/signal.h" 3 4
struct sigaltstack {
void *ss_sp;
size_t ss_size;
int ss_flags;
};
typedef struct ucontext {
unsigned long uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
sigset_t uc_sigmask;
} ucontext_t;
#define SA_NOCLDSTOP 1
#define SA_NOCLDWAIT 0x10000
#define SA_SIGINFO 8
#define SA_ONSTACK 0x08000000
#define SA_RESTART 0x10000000
#define SA_NODEFER 0x40000000
#define SA_RESETHAND 0x80000000
#define SA_RESTORER 0x04000000
#undef SIG_BLOCK
#undef SIG_UNBLOCK
#undef SIG_SETMASK
#define SIG_BLOCK 1
#define SIG_UNBLOCK 2
#define SIG_SETMASK 3
#undef SI_ASYNCIO
#undef SI_MESGQ
#undef SI_TIMER
#define SI_ASYNCIO (-2)
#define SI_MESGQ (-4)
#define SI_TIMER (-3)
#define __SI_SWAP_ERRNO_CODE
#define SIGHUP 1
#define SIGINT 2
#define SIGQUIT 3
#define SIGILL 4
#define SIGTRAP 5
#define SIGABRT 6
#define SIGIOT SIGABRT
#define SIGSTKFLT 7
#define SIGFPE 8
#define SIGKILL 9
#define SIGBUS 10
#define SIGSEGV 11
#define SIGSYS 12
#define SIGPIPE 13
#define SIGALRM 14
#define SIGTERM 15
#define SIGUSR1 16
#define SIGUSR2 17
#define SIGCHLD 18
#define SIGPWR 19
#define SIGWINCH 20
#define SIGURG 21
#define SIGIO 22
#define SIGPOLL SIGIO
#define SIGSTOP 23
#define SIGTSTP 24
#define SIGCONT 25
#define SIGTTIN 26
#define SIGTTOU 27
#define SIGVTALRM 28
#define SIGPROF 29
#define SIGXCPU 30
#define SIGXFSZ 31
#define SIGUNUSED SIGSYS
#define _NSIG 128
# 49 "/home/mangix/devstuff/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-9.2.0_musl/include/signal.h" 2 3 4
#define SIG_HOLD ((void (*)(int)) 2)
#define FPE_INTDIV 1
#define FPE_INTOVF 2
#define FPE_FLTDIV 3
#define FPE_FLTOVF 4
#define FPE_FLTUND 5
#define FPE_FLTRES 6
#define FPE_FLTINV 7
#define FPE_FLTSUB 8
#define ILL_ILLOPC 1
#define ILL_ILLOPN 2
#define ILL_ILLADR 3
#define ILL_ILLTRP 4
#define ILL_PRVOPC 5
#define ILL_PRVREG 6
#define ILL_COPROC 7
#define ILL_BADSTK 8
#define SEGV_MAPERR 1
#define SEGV_ACCERR 2
#define SEGV_BNDERR 3
#define SEGV_PKUERR 4
#define BUS_ADRALN 1
#define BUS_ADRERR 2
#define BUS_OBJERR 3
#define BUS_MCEERR_AR 4
#define BUS_MCEERR_AO 5
#define CLD_EXITED 1
#define CLD_KILLED 2
#define CLD_DUMPED 3
#define CLD_TRAPPED 4
#define CLD_STOPPED 5
#define CLD_CONTINUED 6
union sigval {
int sival_int;
void *sival_ptr;
};
typedef struct {
int si_signo, si_code, si_errno;
union {
char __pad[128 - 2*sizeof(int) - sizeof(long)];
struct {
union {
struct {
pid_t si_pid;
uid_t si_uid;
} __piduid;
struct {
int si_timerid;
int si_overrun;
} __timer;
} __first;
union {
union sigval si_value;
struct {
int si_status;
clock_t si_utime, si_stime;
} __sigchld;
} __second;
} __si_common;
struct {
void *si_addr;
short si_addr_lsb;
union {
struct {
void *si_lower;
void *si_upper;
} __addr_bnd;
unsigned si_pkey;
} __first;
} __sigfault;
struct {
long si_band;
int si_fd;
} __sigpoll;
struct {
void *si_call_addr;
int si_syscall;
unsigned si_arch;
} __sigsys;
} __si_fields;
} siginfo_t;
#define si_pid __si_fields.__si_common.__first.__piduid.si_pid
#define si_uid __si_fields.__si_common.__first.__piduid.si_uid
#define si_status __si_fields.__si_common.__second.__sigchld.si_status
#define si_utime __si_fields.__si_common.__second.__sigchld.si_utime
#define si_stime __si_fields.__si_common.__second.__sigchld.si_stime
#define si_value __si_fields.__si_common.__second.si_value
#define si_addr __si_fields.__sigfault.si_addr
#define si_addr_lsb __si_fields.__sigfault.si_addr_lsb
#define si_lower __si_fields.__sigfault.__first.__addr_bnd.si_lower
#define si_upper __si_fields.__sigfault.__first.__addr_bnd.si_upper
#define si_pkey __si_fields.__sigfault.__first.si_pkey
#define si_band __si_fields.__sigpoll.si_band
#define si_fd __si_fields.__sigpoll.si_fd
#define si_timerid __si_fields.__si_common.__first.__timer.si_timerid
#define si_overrun __si_fields.__si_common.__first.__timer.si_overrun
#define si_ptr si_value.sival_ptr
#define si_int si_value.sival_int
#define si_call_addr __si_fields.__sigsys.si_call_addr
#define si_syscall __si_fields.__sigsys.si_syscall
#define si_arch __si_fields.__sigsys.si_arch
struct sigaction {
union {
void (*sa_handler)(int);
void (*sa_sigaction)(int, siginfo_t *, void *);
} __sa_handler;
sigset_t sa_mask;
int sa_flags;
void (*sa_restorer)(void);
};
#define sa_handler __sa_handler.sa_handler
#define sa_sigaction __sa_handler.sa_sigaction
struct sigevent {
union sigval sigev_value;
int sigev_signo;
int sigev_notify;
void (*sigev_notify_function)(union sigval);
pthread_attr_t *sigev_notify_attributes;
char __pad[56-3*sizeof(long)];
};
#define SIGEV_SIGNAL 0
#define SIGEV_NONE 1
#define SIGEV_THREAD 2
int __libc_current_sigrtmin(void);
int __libc_current_sigrtmax(void);
#define SIGRTMIN (__libc_current_sigrtmin())
#define SIGRTMAX (__libc_current_sigrtmax())
int kill(pid_t, int);
int sigemptyset(sigset_t *);
int sigfillset(sigset_t *);
int sigaddset(sigset_t *, int);
int sigdelset(sigset_t *, int);
int sigismember(const sigset_t *, int);
int sigprocmask(int, const sigset_t *restrict, sigset_t *restrict);
int sigsuspend(const sigset_t *);
int sigaction(int, const struct sigaction *restrict, struct sigaction *restrict);
int sigpending(sigset_t *);
int sigwait(const sigset_t *restrict, int *restrict);
int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict);
int sigtimedwait(const sigset_t *restrict, siginfo_t *restrict, const struct timespec *restrict);
int sigqueue(pid_t, int, union sigval);
int pthread_sigmask(int, const sigset_t *restrict, sigset_t *restrict);
int pthread_kill(pthread_t, int);
void psiginfo(const siginfo_t *, const char *);
void psignal(int, const char *);
int killpg(pid_t, int);
int sigaltstack(const stack_t *restrict, stack_t *restrict);
int sighold(int);
int sigignore(int);
int siginterrupt(int, int);
int sigpause(int);
int sigrelse(int);
void (*sigset(int, void (*)(int)))(int);
#define TRAP_BRKPT 1
#define TRAP_TRACE 2
#define TRAP_BRANCH 3
#define TRAP_HWBKPT 4
#define TRAP_UNK 5
#define POLL_IN 1
#define POLL_OUT 2
#define POLL_MSG 3
#define POLL_ERR 4
#define POLL_PRI 5
#define POLL_HUP 6
#define SS_ONSTACK 1
#define SS_DISABLE 2
#define SS_AUTODISARM (1U << 31)
#define SS_FLAG_BITS SS_AUTODISARM
#define NSIG _NSIG
typedef void (*sig_t)(int);
typedef void (*sighandler_t)(int);
void (*bsd_signal(int, void (*)(int)))(int);
int sigisemptyset(const sigset_t *);
int sigorset (sigset_t *, const sigset_t *, const sigset_t *);
int sigandset(sigset_t *, const sigset_t *, const sigset_t *);
#define SA_NOMASK SA_NODEFER
#define SA_ONESHOT SA_RESETHAND
#define SIG_ERR ((void (*)(int))-1)
#define SIG_DFL ((void (*)(int)) 0)
#define SIG_IGN ((void (*)(int)) 1)
typedef int sig_atomic_t;
void (*signal(int, void (*)(int)))(int);
int raise(int);
# 18 "utils.h" 2
# 22 "utils.h"
unsigned int uns_min(unsigned int a, unsigned int b);
signed int int_min(signed int a, int signed b);
signed long long_max(signed long a, signed long b);
signed long long_min(signed long a, signed long b);
ssize_t joe_read(int fd, void *buf, size_t siz);
ssize_t joe_write(int fd, const void *buf, size_t siz);
ssize_t joe_readex(int, void *, size_t);
ssize_t joe_writex(int, const void *, size_t);
#define REINSTALL_SIGHANDLER(sig,handler) joe_set_signal(sig, handler)
int joe_set_signal(int signum, sighandler_t handler);
int parse_ws(unsigned char **p, int cmt);
int parse_ident(unsigned char **p, unsigned char *buf, int len);
int parse_tows(unsigned char **p, unsigned char *buf);
int parse_kw(unsigned char **p, const unsigned char *kw);
int parse_field(unsigned char **p, const unsigned char *field);
int parse_char(unsigned char **p, unsigned char c);
int parse_string(unsigned char **p, unsigned char *buf, int len);
int parse_range(unsigned char **p, int *first, int *second);
void tty_xonoffbaudrst(void);
#define USTOL_AUTO 0x00
#define USTOL_DEC 0x01
#define USTOL_HEX 0x02
#define USTOL_OCT 0x03
#define USTOL_LTRIM 0x04
#define USTOL_RTRIM 0x08
#define USTOL_TRIM 0x0C
#define USTOL_EOS 0x10
long ustol(void *, void **, int);
long ustolb(void *, void **, long, long, int);
#define USTOC_MAX 4
size_t ustoc_hex(const void *, int *, size_t);
size_t ustoc_oct(const void *, int *, size_t);
int copy_security_context(const char *, const char *);
# 28 "bw.c" 2
# 1 "syntax.h" 1
#define _Isyntax 1
# 1 "hash.h" 1
# 9 "hash.h"
#define _JOE_HASH_H 1
unsigned long hash(const unsigned char *s);
HASH *htmk(int len);
void htrm(HASH *ht);
void *htadd(HASH *ht, const unsigned char *name, void *val);
void *htfind(HASH *ht, const unsigned char *name);
# 9 "syntax.h" 2
# 20 "syntax.h"
struct high_color {
struct high_color *next;
const unsigned char *name;
int color;
};
struct high_state {
int no;
const unsigned char *name;
int color;
struct high_cmd *cmd[256];
};
struct high_cmd {
struct high_state *new_state;
HASH *keywords;
int recolor;
unsigned noeat : 1;
unsigned start_buffering : 1;
unsigned stop_buffering : 1;
unsigned ignore : 1;
};
struct high_syntax {
struct high_syntax *next;
const unsigned char *name;
struct high_state **states;
int nstates;
int szstates;
struct high_color *color;
int sync_lines;
struct high_cmd default_cmd;
};
struct high_syntax *load_dfa(const unsigned char *name);
extern int *attr_buf;
int parse(struct high_syntax *syntax, P *line, int state);
# 29 "bw.c" 2
# 1 "charmap.h" 1
# 10 "charmap.h"
#define _Icharmap 1
struct pair {
int first;
int last;
};
struct charmap {
struct charmap *next;
const unsigned char *name;
int type;
int (*is_punct)(struct charmap *map,int c);
int (*is_print)(struct charmap *map,int c);
int (*is_space)(struct charmap *map,int c);
int (*is_alphx)(struct charmap *map,int c);
int (*is_alnux)(struct charmap *map,int c);
int (*to_lower)(struct charmap *map,int c);
int (*to_upper)(struct charmap *map,int c);
int (*to_uni)(struct charmap *map,int c);
int (*from_uni)(struct charmap *map,int c);
const int *to_map;
unsigned char lower_map[256];
unsigned char upper_map[256];
struct pair from_map[256 + 2];
int from_size;
unsigned char print_map[32];
unsigned char alphx_map[32];
unsigned char alnux_map[32];
};
#define joe_ispunct(map,c) ((map)->is_punct((map),(c)))
#define joe_isprint(map,c) ((map)->is_print((map),(c)))
#define joe_isspace(map,c) ((map)->is_space((map),(c)))
#define joe_isalphx(map,c) ((map)->is_alphx((map),(c)))
#define joe_isalnux(map,c) ((map)->is_alnux((map),(c)))
int joe_isblank(struct charmap *map,int c);
int joe_isspace_eof(struct charmap *map,int c);
#define joe_tolower(map,c) ((map)->to_lower((map),(c)))
#define joe_toupper(map,c) ((map)->to_upper((map),(c)))
#define joe_to_uni(map,c) ((map)->to_uni((map),(c)))
#define joe_from_uni(map,c) ((map)->from_uni((map),(c)))
unsigned char *joe_strtolower(unsigned char *s);
struct charmap *find_charmap(const unsigned char *name);
unsigned char **get_encodings(void);
int to_uni(struct charmap *cset, int c);
int from_uni(struct charmap *cset, int c);
# 1 "utf8.h" 1
# 9 "utf8.h"
#define _Iutf8 1
# 1 "i18n.h" 1
#define _Ii18n 1
# 14 "i18n.h"
int joe_iswalpha(struct charmap *,int c);
int joe_iswalnum(struct charmap *,int c);
int joe_iswdigit(struct charmap *,int c);
int joe_iswspace(struct charmap *,int c);
int joe_iswpunct(struct charmap *,int c);
int joe_iswprint(struct charmap *,int c);
int joe_wcwidth(unsigned int c);
int joe_towupper(struct charmap *,int c);
int joe_towlower(struct charmap *,int c);
extern unsigned char unictrlbuf[11];
int unictrl(unsigned int c);
# 16 "utf8.h" 2
# 24 "utf8.h"
int utf8_encode(unsigned char *buf,int c);
struct utf8_sm {
unsigned char buf[8];
int ptr;
int state;
int accu;
int minv;
};
# 44 "utf8.h"
int utf8_decode(struct utf8_sm *utf8_sm,unsigned char c);
int utf8_decode_string(unsigned char *s);
int utf8_decode_fwrd(unsigned char **p,int *plen);
void utf8_init(struct utf8_sm *utf8_sm);
void joe_locale(void);
void to_utf8(struct charmap *map,unsigned char *s,int c);
int from_utf8(struct charmap *map,unsigned char *s);
extern int utf8;
int mk_wcwidth(int wide,int c);
extern struct charmap *locale_map;
extern struct charmap *utf8_map;
# 90 "charmap.h" 2
# 30 "bw.c" 2
# 1 "w.h" 1
# 9 "w.h"
#define _JOE_W_H 1
# 22 "w.h"
int getgrouph(W *w);
W *findtopw(W *w);
W *findbotw(W *w);
int demotegroup(W *w);
W *lastw(SCREEN *t);
int countmain(SCREEN *t);
void wfit(SCREEN *t);
# 59 "w.h"
SCREEN *screate(SCRN *scrn);
void sresize(SCREEN *t);
# 86 "w.h"
W *wcreate(SCREEN *t, WATOM *watom, W *where, W *target, W *original, int height, const unsigned char *huh, int *notify);
int wabort(W *w);
int wnext(SCREEN *t);
int wprev(SCREEN *t);
int wgrow(W *w);
int wshrink(W *w);
void wshowone(W *w);
void wshowall(SCREEN *t);
void wredraw(W *w);
void updall(void);
void msgnw(W *w, const unsigned char *s);
void msgnwt(W *w, const unsigned char *s);
#define JOE_MSGBUFSIZE 300
extern unsigned char msgbuf[300];
void msgout(W *w);
int urtn(jobject jO, int k);
int utype(jobject jO, int k);
int uretyp(BASE *bw);
int ugroww(BASE *bw);
int uexpld(BASE *bw);
int ushrnk(BASE *bw);
int unextw(BASE *bw);
int uprevw(BASE *bw);
void scrdel(B *b, long int l, long int n, int flg);
void scrins(B *b, long int l, long int n, int flg);
# 31 "bw.c" 2
int dspasis = 0;
int marking = 0;
extern int staen;
extern SCREEN *maint;
static P *getto(P *p, P *cur, P *top, long int line)
{
if (p ==
# 41 "bw.c" 3 4
((void*)0)
# 41 "bw.c"
) {
P *best = cur;
long dist =
# 43 "bw.c" 3 4
0x7fffffffL
# 43 "bw.c"
;
long d;
d = (line >= cur->line ? line - cur->line : cur->line - line);
if (d < dist) {
dist = d;
best = cur;
}
d = (line >= top->line ? line - top->line : top->line - line);
if (d < dist) {
best = top;
}
p = pdup(best);
p_goto_bol(p);
}
while (line > p->line)
if (!pnextl(p))
break;
if (line < p->line) {
while (line < p->line)
pprevl(p);
p_goto_bol(p);
}
return p;
}
int mid = 0;
static void
bwfllwh(BW *w)
{
long dofs = 0;
if (w->top->byte%16) {
pbkwd(w->top,w->top->byte%16);
}
if (w->cursor->byte < w->top->byte) {
long new_top = w->cursor->byte/16;
if (mid) {
if (new_top >= w->h / 2)
new_top -= w->h / 2;
else
new_top = 0;
}
if (w->top->byte/16 - new_top < w->h)
nscrldn(w->t->t, w->y, w->y + w->h, (int) (w->top->byte/16 - new_top));
else
msetI(w->t->t->updtab + w->y, 1, w->h);
pgoto(w->top,new_top*16);
}
if (w->cursor->byte >= w->top->byte+(w->h*16)) {
long new_top;
if (mid) {
new_top = w->cursor->byte/16 - w->h / 2;
} else {
new_top = w->cursor->byte/16 - (w->h - 1);
}
if (new_top - w->top->byte/16 < w->h)
nscrlup(w->t->t, w->y, w->y + w->h, (int) (new_top - w->top->byte/16));
else {
msetI(w->t->t->updtab + w->y, 1, w->h);
}
pgoto(w->top, new_top*16);
}
if (w->cursor->byte % 16 + 60 >= w->w)
dofs = w->cursor->byte % 16 + 60 - (w->w - 1);
if (w->offset != dofs) {
w->offset = dofs;
msetI(w->t->t->updtab + w->y, 1, w->h);
}
}
static void bwfllwt(BW *w)
{
P *newtop;
if (w->cursor->line < w->top->line) {
newtop = pdup(w->cursor);
p_goto_bol(newtop);
if (mid) {
if (newtop->line >= w->h / 2)
pline(newtop, newtop->line - w->h / 2);
else
pset(newtop, newtop->b->bof);
}
if (w->top->line - newtop->line < w->h)
nscrldn(w->t->t, w->y, w->y + w->h, (int) (w->top->line - newtop->line));
else {
msetI(w->t->t->updtab + w->y, 1, w->h);
msetI(w->t->t->syntab + w->y, -1, w->h);
}
pset(w->top, newtop);
prm(newtop);
} else if (w->cursor->line >= w->top->line + w->h) {
pdup(w->top);
newtop = getto(
# 152 "bw.c" 3 4
((void*)0)
# 152 "bw.c"
, w->cursor, w->top, w->cursor->line -
(mid ? (w->h / 2) : (w->h - 1)));
if (newtop->line - w->top->line < w->h)
nscrlup(w->t->t, w->y, w->y + w->h, (int) (newtop->line - w->top->line));
else {
msetI(w->t->t->updtab + w->y, 1, w->h);
msetI(w->t->t->syntab + w->y, -1, w->h);
}
pset(w->top, newtop);
prm(newtop);
}
if (w->cursor->xcol < w->offset) {
w->offset = w->cursor->xcol;
msetI(w->t->t->updtab + w->y, 1, w->h);
} else if (w->cursor->xcol >= w->offset + w->w) {
w->offset = w->cursor->xcol - (w->w - 1);
msetI(w->t->t->updtab + w->y, 1, w->h);
}
}
void bwfllw(jobject jO)
{
BW *w = jO.bw;
if (w->o.hex)
bwfllwh(w);
else
bwfllwt(w);
}
static int
get_highlight_state(BW *w, int line)
{
P *tmp = 0;
int state;
int y = line-w->top->line+w->y;
if(!w->o.highlight || !w->o.syntax)
return -1;
if (w->parent->t->t->syntab[y]>=0)
return w->parent->t->t->syntab[y];
while (y > w->y && w->parent->t->t->syntab[y] < 0) --y;
if (w->parent->t->t->syntab[y]<0) {
state = 0;
tmp = pdup(w->top);
if(w->o.syntax->sync_lines >= 0 && tmp->line > w->o.syntax->sync_lines)
pline(tmp, tmp->line-w->o.syntax->sync_lines);
else
p_goto_bof(tmp);
while(tmp->line!=y-w->y+w->top->line)
state = parse(w->o.syntax,tmp,state);
w->parent->t->t->syntab[y] = state;
w->parent->t->t->updtab[y] = 1;
prm(tmp);
}
tmp = pdup(w->top);
pline(tmp, y-w->y+w->top->line);
state = w->parent->t->t->syntab[y];
while(tmp->line!=w->top->line+w->h-1 && !piseof(tmp)) {
state = parse(w->o.syntax,tmp,state);
w->parent->t->t->syntab[++y] = state;
w->parent->t->t->updtab[y] = 1;
}
prm(tmp);
while(y<w->y+w->h-1) {
w->parent->t->t->syntab[++y] = state;
}
# 246 "bw.c"
y = line - w->top->line + w->y;
return w->parent->t->t->syntab[y];
}
void bwins(BW *w, long int l, long int n, int flg)
{
if (l + flg + n < w->top->line + w->h && l + flg >= w->top->line && l + flg <= w->b->eof->line) {
if (flg)
w->t->t->sary[w->y + l - w->top->line] = w->t->t->li;
nscrldn(w->t->t, (int) (w->y + l + flg - w->top->line), w->y + w->h, (int) n);
}
if (l < w->top->line + w->h && l >= w->top->line) {
if (n >= w->h - (l - w->top->line)) {
msetI(w->t->t->updtab + w->y + l - w->top->line, 1, w->h - (int) (l - w->top->line));
msetI(w->t->t->syntab + w->y + l - w->top->line, -1, w->h - (int) (l - w->top->line));
} else {
msetI(w->t->t->updtab + w->y + l - w->top->line, 1, (int) n + 1);
msetI(w->t->t->syntab + w->y + l - w->top->line, -1, (int) n + 1);
}
}
}
void bwdel(BW *w, long int l, long int n, int flg)
{
if (l < w->top->line + w->h && l >= w->top->line)
w->t->t->updtab[w->y + l - w->top->line] = 1;
if ((l+1) < w->top->line + w->h && (l+1) >= w->top->line) {
w->t->t->syntab[w->y + (l+1) - w->top->line] = -1;
w->t->t->updtab[w->y + (l+1) - w->top->line] = 1;
}
if (l + n < w->top->line + w->h && l + n >= w->top->line)
w->t->t->updtab[w->y + l + n - w->top->line] = 1;
if (l < w->top->line + w->h && (l + n >= w->top->line + w->h || (l + n == w->b->eof->line && w->b->eof->line >= w->top->line + w->h))) {
if (l >= w->top->line)
msetI(w->t->t->updtab + w->y + l - w->top->line, 1, w->h - (int) (l - w->top->line));
else
msetI(w->t->t->updtab + w->y, 1, w->h);
} else if (l < w->top->line + w->h && l + n == w->b->eof->line && w->b->eof->line < w->top->line + w->h) {
if (l >= w->top->line)
msetI(w->t->t->updtab + w->y + l - w->top->line, 1, (int) n);
else
msetI(w->t->t->updtab + w->y, 1, (int) (w->b->eof->line - w->top->line));
} else if (l + n < w->top->line + w->h && l + n > w->top->line && l + n < w->b->eof->line) {
if (l + flg >= w->top->line)
nscrlup(w->t->t, (int) (w->y + l + flg - w->top->line), w->y + w->h, (int) n);
else
nscrlup(w->t->t, w->y, w->y + w->h, (int) (l + n - w->top->line));
}
}
static int
lgen(SCRN *t, int y,
int *screen,
int *attr, int x,
int w,
P *p,
long int scr,
long int from, long int to,
int st, BW *bw)
{
int ox = x;
int tach, tach1;
int done = 1;
long col = 0;
long byte = p->byte;
unsigned char *bp;
int amnt;
int c, ta, c1 = 0;
unsigned char bc = 0;
int ungetit = -1;
struct utf8_sm utf8_sm;
int *syn =
# 342 "bw.c" 3 4
((void*)0)
# 342 "bw.c"
;
P *tmp;
int idx=0;
int atr = 0;
utf8_init(&utf8_sm);
if(st!=-1) {
tmp=pdup(p);
p_goto_bol(tmp);
parse(bw->o.syntax,tmp,st);
syn = attr_buf;
prm(tmp);
}
if (p->ofst >= p->hdr->hole) {
bp = p->ptr + p->hdr->ehole + p->ofst - p->hdr->hole;
amnt = 4096 - p->hdr->ehole - (p->ofst - p->hdr->hole);
} else {
bp = p->ptr + p->ofst;
amnt = p->hdr->hole - p->ofst;
}
if (col == scr)
goto v_loop;
#define LGEN_Q
#define LGEN_LABEL(x) q_ ## x
# 1 "bw-lgen.inc" 1
# 10 "bw-lgen.inc"
__asm__(".section .comment" "\n .ascii \"@(\"\"#)" "rcsid_bw_lgen_inc" ": \"" "\n .asciz \"" "$MirOS: contrib/code/jupp/bw-lgen.inc,v 1.5 2018/06/28 03:11:18 tg Exp $" "\"" "\n .previous");
#define XCOL col
q_loop:
if (!amnt)
goto q_noamnt;
do {
if (ungetit == -1)
bc = *bp++;
else {
bc = ungetit;
ungetit = -1;
}
if (st != -1)
atr = syn[idx++];
if (utf8_sm.state && !(bc & 0x80))
goto q_ilseq;
if (p->b->o.crlf && bc == '\r') {
++byte;
if (!--amnt) {
q_pl:
if (bp == p->ptr + 4096) {
if (pnext(p)) {
bp = p->ptr;
amnt = p->hdr->hole;
} else
goto q_nl;
} else {
bp = p->ptr + p->hdr->ehole;
amnt = 4096 - p->hdr->ehole;
if (!amnt)
goto q_pl;
}
}
if (*bp == '\n') {
++bp;
++byte;
++amnt;
goto eobl;
}
q_nl:
--byte;
++amnt;
}
if (square)
if (bc == '\t') {
long tcol = col + p->b->o.tab -
(col % p->b->o.tab);
if (tcol > from && tcol <= to)
c1 = 256;
else
c1 = 0;
} else if (col >= from && col < to)
c1 = 256;
else
c1 = 0;
else if (byte >= from && byte < to)
c1 = 256;
else
c1 = 0;
++byte;
if (bc == '\t') {
ta = p->b->o.tab - (col % p->b->o.tab);
if (ta + col > scr) {
ta -= scr - col;
goto dota_tab;
}
if ((col += ta) == scr) {
--amnt;
goto v_loop;
}
# 105 "bw-lgen.inc"
} else if (bc == '\n') {
goto eobl;
} else {
int wid = -1;
if (bw->b->o.charmap->type) {
c = utf8_decode(&utf8_sm, bc);
if (c >= 0) {
wid = joe_wcwidth(c);
} else if (c == -1) {
wid = -1;
} else if (c == -2) {
--byte;
q_ilseq:
++amnt;
ungetit = bc;
c = 0x1000FFFE;
wid = utf8_sm.ptr;
utf8_init(&utf8_sm);
} else if (c == -3) {
c = 0x1000FFFE;
wid = 1;
}
} else {
c = bc;
wid = 1;
}
if (wid >= 0) {
col += wid;
if (col == scr) {
--amnt;
goto v_loop;
} else if (col > scr) {
ta = col - scr;
tach1 = tach = '<';
goto dota_gen;
}
# 184 "bw-lgen.inc"
} else
--idx;
}
} while (--amnt);
q_noamnt:
if (bp == p->ptr + 4096) {
if (pnext(p)) {
bp = p->ptr;
amnt = p->hdr->hole;
goto q_loop;
}
} else {
bp = p->ptr + p->hdr->ehole;
amnt = 4096 - p->hdr->ehole;
goto q_loop;
}
if (utf8_sm.state)
goto q_ilseq;
goto eof;
#undef XCOL
# 372 "bw.c" 2
#undef LGEN_LABEL
#undef LGEN_Q
#define LGEN_LABEL(x) v_ ## x
# 1 "bw-lgen.inc" 1
# 13 "bw-lgen.inc"
#define XCOL (scr + x - ox)
v_loop:
if (!amnt)
goto v_noamnt;
do {
if (ungetit == -1)
bc = *bp++;
else {
bc = ungetit;
ungetit = -1;
}
if (st != -1)
atr = syn[idx++];
if (utf8_sm.state && !(bc & 0x80))
goto v_ilseq;
if (p->b->o.crlf && bc == '\r') {
++byte;
if (!--amnt) {
v_pl:
if (bp == p->ptr + 4096) {
if (pnext(p)) {
bp = p->ptr;
amnt = p->hdr->hole;
} else
goto v_nl;
} else {
bp = p->ptr + p->hdr->ehole;
amnt = 4096 - p->hdr->ehole;
if (!amnt)
goto v_pl;
}
}
if (*bp == '\n') {
++bp;
++byte;
++amnt;
goto eobl;
}
v_nl:
--byte;
++amnt;
}
if (square)
if (bc == '\t') {
long tcol = (scr + x - ox) + p->b->o.tab -
((scr + x - ox) % p->b->o.tab);
if (tcol > from && tcol <= to)
c1 = 256;
else
c1 = 0;
} else if ((scr + x - ox) >= from && (scr + x - ox) < to)
c1 = 256;
else
c1 = 0;
else if (byte >= from && byte < to)
c1 = 256;
else
c1 = 0;
++byte;
if (bc == '\t') {
ta = p->b->o.tab - ((scr + x - ox) % p->b->o.tab);
# 88 "bw-lgen.inc"
dota_tab:
tach1 = tach = ' ';
if (bw->o.vispace)
tach = 0x2192;
goto dota_gen;
dota_loop:
tach = tach1;
dota_gen:
outatr(utf8_map, t, screen + x, attr + x,
x, y, tach, c1 | atr);
if (have)
goto bye;
if (++x == w)
goto eosl;
if (--ta)
goto dota_loop;
} else if (bc == '\n') {
goto eobl;
} else {
int wid = -1;
if (bw->b->o.charmap->type) {
c = utf8_decode(&utf8_sm, bc);
if (c >= 0) {
wid = joe_wcwidth(c);
} else if (c == -1) {
wid = -1;
} else if (c == -2) {
--byte;
v_ilseq:
++amnt;
ungetit = bc;
c = 0x1000FFFE;
wid = utf8_sm.ptr;
utf8_init(&utf8_sm);
} else if (c == -3) {
c = 0x1000FFFE;
wid = 1;
}
} else {
c = bc;
wid = 1;
}
if (wid >= 0) {
# 157 "bw-lgen.inc"
if (x + wid > w) {
while (x < w) {
outatr(bw->b->o.charmap,
t, screen + x, attr + x,
x, y, '>', c1 | atr);
x++;
}
} else if (c == 0x1000FFFE) while (wid--) {
outatr(bw->b->o.charmap, t,
screen + x, attr + x,
x, y, 0xFFFD,
(c1 | atr | 512) ^ 256);
x++;
} else if (c == 0x20 && bw->o.vispace) {
outatr(utf8_map, t,
screen + x, attr + x,
x, y, 0xB7, c1 | atr);
x++;
} else {
outatr(bw->b->o.charmap, t,
screen + x, attr + x,
x, y, c, c1 | atr);
x += wid;
}
} else
--idx;
if (have)
goto bye;
if (x >= w)
goto eosl;
}
} while (--amnt);
v_noamnt:
if (bp == p->ptr + 4096) {
if (pnext(p)) {
bp = p->ptr;
amnt = p->hdr->hole;
goto v_loop;
}
} else {
bp = p->ptr + p->hdr->ehole;
amnt = 4096 - p->hdr->ehole;
goto v_loop;
}
if (utf8_sm.state)
goto v_ilseq;
goto eof;
#undef XCOL
# 377 "bw.c" 2
#undef LGEN_LABEL
eobl:
++p->line;
eof:
done = x == w ? 0 : eraeol(t, x, y);
bye:
c = 1;
if (0)
eosl:
done = c = 0;
if ((p->ofst = bp - p->ptr) > p->hdr->hole)
p->ofst -= p->hdr->ehole - p->hdr->hole;
p->byte = byte;
if (!c)
pnextl(p);
return (done);
}
static void gennum(BW *w, int *screen, int *attr, SCRN *t, int y, int *comp)
{
unsigned char buf[12];
int z;
int lin = w->top->line + y - w->y;
if (lin <= w->b->eof->line)
snprintf(((char *)buf),(sizeof(buf)),("%5ld "),(w->top->line + y - w->y + 1));
else
strlcpy((char *)buf, " ",12);
for (z = 0; buf[z]; ++z) {
outatr(w->b->o.charmap, t, screen + z, attr + z, z, y, buf[z], 0);
if (have)
return;
comp[z] = buf[z];
}
}
void bwgenh(BW *w)
{
int *screen;
int *attr;
P *q = pdup(w->top);
int bot = w->h + w->y;
int y;
SCRN *t = w->t->t;
int flg = 0;
long from;
long to;
int dosquare = 0;
from = to = 0;
if (markv(0) && markk->b == w->b)
if (square) {
from = markb->xcol;
to = markk->xcol;
dosquare = 1;
} else {
from = markb->byte;
to = markk->byte;
}
else if (marking && w == maint->curwin->object.bw && markb && markb->b == w->b && w->cursor->byte != markb->byte && !from) {
if (square) {
from = long_min(w->cursor->xcol, markb->xcol);
to = long_max(w->cursor->xcol, markb->xcol);
dosquare = 1;
} else {
from = long_min(w->cursor->byte, markb->byte);
to = long_max(w->cursor->byte, markb->byte);
}
}
if (marking && w == maint->curwin->object.bw)
msetI(t->updtab + w->y, 1, w->h);
if (dosquare) {
from = 0;
to = 0;
}
y=w->y;
attr = t->attr + y*w->t->w;
for (screen = t->scrn + y * w->t->w; y != bot; ++y, (screen += w->t->w), (attr += w->t->w)) {
unsigned char txt[80];
int fmt[80];
unsigned char bf[16];
int x;
memset(txt,' ',76);
msetI(fmt, 0,76);
txt[76]=0;
if (!flg) {
snprintf(((char *)bf),(sizeof(bf)),("%8llX "),((unsigned long long)q->byte));
memcpy(txt,bf,9);
for (x=0; x!=8; ++x) {
int c;
if (q->byte==w->cursor->byte && !flg) {
fmt[10+x*3] |= 256;
fmt[10+x*3+1] |= 256;
}
if (q->byte>=from && q->byte<to && !flg) {
fmt[10+x*3] |= 512;
fmt[10+x*3+1] |= 512;
fmt[60+x] |= 256;
}
c = pgetb(q);
if (c >= 0) {
snprintf(((char *)bf),(sizeof(bf)),("%2.2X"),(c));
txt[10+x*3] = bf[0];
txt[10+x*3+1] = bf[1];
if (c >= 0x20 && c <= 0x7E)
txt[60+x] = c;
else
txt[60+x] = '.';
} else
flg = 1;
}
for (x=8; x!=16; ++x) {
int c;
if (q->byte==w->cursor->byte && !flg) {
fmt[11+x*3] |= 256;
fmt[11+x*3+1] |= 256;
}
if (q->byte>=from && q->byte<to && !flg) {
fmt[11+x*3] |= 512;
fmt[11+x*3+1] |= 512;
fmt[60+x] |= 256;
}
c = pgetb(q);
if (c >= 0) {
snprintf(((char *)bf),(sizeof(bf)),("%2.2X"),(c));
txt[11+x*3] = bf[0];
txt[11+x*3+1] = bf[1];
if (c >= 0x20 && c <= 0x7E)
txt[60+x] = c;
else
txt[60+x] = '.';
} else
flg = 1;
}
}
genfield(t, screen, attr, 0, y, w->offset, txt, 76, 0, w->w, 1, fmt);
}
prm(q);
}
void bwgen(BW *w, int linums)
{
int *screen;
int *attr;
P *p =
# 534 "bw.c" 3 4
((void*)0)
# 534 "bw.c"
;
P *q = pdup(w->cursor);
int bot = w->h + w->y;
int y;
int dosquare = 0;
long from, to;
long fromline, toline;
SCRN *t = w->t->t;
fromline = toline = from = to = 0;
if (markv(0) && markk->b == w->b)
if (square) {
from = markb->xcol;
to = markk->xcol;
dosquare = 1;
fromline = markb->line;
toline = markk->line;
} else {
from = markb->byte;
to = markk->byte;
}
else if (marking && w == maint->curwin->object.bw && markb && markb->b == w->b && w->cursor->byte != markb->byte && !from) {
if (square) {
from = long_min(w->cursor->xcol, markb->xcol);
to = long_max(w->cursor->xcol, markb->xcol);
fromline = long_min(w->cursor->line, markb->line);
toline = long_max(w->cursor->line, markb->line);
dosquare = 1;
} else {
from = long_min(w->cursor->byte, markb->byte);
to = long_max(w->cursor->byte, markb->byte);
}
}
if (marking && w == maint->curwin->object.bw)
msetI(t->updtab + w->y, 1, w->h);
y = w->cursor->line - w->top->line + w->y;
attr = t->attr + y*w->t->w;
for (screen = t->scrn + y * w->t->w; y != bot; ++y, (screen += w->t->w), (attr += w->t->w)) {
if (have && !linums)
break;
if (linums)
gennum(w, screen, attr, t, y, t->compose);
if (t->updtab[y]) {
p = getto(p, w->cursor, w->top, w->top->line + y - w->y);
# 592 "bw.c"
if (dosquare)
if (w->top->line + y - w->y >= fromline && w->top->line + y - w->y <= toline)
t->updtab[y] = lgen(t, y, screen, attr, w->x, w->x + w->w, p, w->offset, from, to, get_highlight_state(w,w->top->line+y-w->y),w);
else
t->updtab[y] = lgen(t, y, screen, attr, w->x, w->x + w->w, p, w->offset, 0L, 0L, get_highlight_state(w,w->top->line+y-w->y),w);
else
t->updtab[y] = lgen(t, y, screen, attr, w->x, w->x + w->w, p, w->offset, from, to, get_highlight_state(w,w->top->line+y-w->y),w);
}
}
y = w->y;
attr = t->attr + w->y * w->t->w;
for (screen = t->scrn + w->y * w->t->w; y != w->y + w->cursor->line - w->top->line; ++y, (screen += w->t->w), (attr += w->t->w)) {
if (have && !linums)
break;
if (linums)
gennum(w, screen, attr, t, y, t->compose);
if (t->updtab[y]) {
p = getto(p, w->cursor, w->top, w->top->line + y - w->y);
# 622 "bw.c"
if (dosquare)
if (w->top->line + y - w->y >= fromline && w->top->line + y - w->y <= toline)
t->updtab[y] = lgen(t, y, screen, attr, w->x, w->x + w->w, p, w->offset, from, to, get_highlight_state(w,w->top->line+y-w->y),w);
else
t->updtab[y] = lgen(t, y, screen, attr, w->x, w->x + w->w, p, w->offset, 0L, 0L, get_highlight_state(w,w->top->line+y-w->y),w);
else
t->updtab[y] = lgen(t, y, screen, attr, w->x, w->x + w->w, p, w->offset, from, to, get_highlight_state(w,w->top->line+y-w->y),w);
}
}
prm(q);
if (p)
prm(p);
}
void bwmove(BW *w, int x, int y)
{
w->x = x;
w->y = y;
}
void bwresz(BW *w, int wi, int he)
{
if (he > w->h && w->y != -1) {
msetI(w->t->t->updtab + w->y + w->h, 1, he - w->h);
msetI(w->t->t->syntab + w->y + w->h, -1, he - w->h);
}
w->w = wi;
w->h = he;
}
BW *bwmk(W *window, B *b, int prompt)
{
BW *w = malloc(sizeof(BW));
w->parent = window;
w->b = b;
if (prompt || (!window->y && staen)) {
w->y = window->y;
w->h = window->h;
} else {
w->y = window->y + 1;
w->h = window->h - 1;
}
if (b->oldcur) {
w->top = b->oldtop;
b->oldtop =
# 667 "bw.c" 3 4
((void*)0)
# 667 "bw.c"
;
w->top->owner =
# 668 "bw.c" 3 4
((void*)0)
# 668 "bw.c"
;
w->cursor = b->oldcur;
b->oldcur =
# 670 "bw.c" 3 4
((void*)0)
# 670 "bw.c"
;
w->cursor->owner =
# 671 "bw.c" 3 4
((void*)0)
# 671 "bw.c"
;
} else {
w->top = pdup(b->bof);
w->cursor = pdup(b->bof);
}
w->t = window->t;
w->object =
# 677 "bw.c" 3 4
((void*)0)
# 677 "bw.c"
;
w->offset = 0;
w->o = w->b->o;
if ((w->linums = w->o.linums)) {
w->x = window->x + 6;
w->w = window->w - 6;
} else {
w->x = window->x;
w->w = window->w;
}
if (window == window->main) {
rmkbd(window->kbd);
window->kbd = mkkbd(kmap_getcontext(w->o.context, 1));
}
w->top->xcol = 0;
w->cursor->xcol = 0;
w->top_changed = 1;
return w;
}
void bwrm(BW *w)
{
prm(w->top);
prm(w->cursor);
brm(w->b);
free(w);
}
int ustat_j(BW *bw)
{
static unsigned char buf[80];
int c = brch(bw->cursor);
if (c ==
# 710 "bw.c" 3 4
(-1)
# 710 "bw.c"
)
snprintf(((char *)buf),(sizeof(buf)),("** Line %ld Col %ld Offset %ld(0x%lX) **"),(bw->cursor->line + 1),(((bw->cursor)->valcol ? (bw->cursor)->col : (pfcol(bw->cursor), (bw->cursor)->col)) + 1),(bw->cursor->byte),(bw->cursor->byte))
;
else
snprintf(((char *)buf),(sizeof(buf)),("** Line %ld Col %ld Offset %ld(0x%lX) %s %d(0%o/0x%X) Width %d **"),(bw->cursor->line + 1),(((bw->cursor)->valcol ? (bw->cursor)->col : (pfcol(bw->cursor), (bw->cursor)->col)) + 1),(bw->cursor->byte),(bw->cursor->byte),(bw->b->o.charmap->name),(c),(c),(c),(bw->o.charmap->type ? joe_wcwidth(c) : 1))
;
msgnw(bw->parent, buf);
return 0;
}
int ucrawlr(BW *bw)
{
int amnt = bw->w / 2;
pcol(bw->cursor, bw->cursor->xcol + amnt);
bw->cursor->xcol += amnt;
bw->offset += amnt;
updall();
return 0;
}
int ucrawll(BW *bw)
{
int amnt = bw->w / 2;
int curamnt = bw->w / 2;
if (amnt > bw->offset) {
amnt = bw->offset;
curamnt = bw->offset;
}
if (!bw->offset)
curamnt = bw->cursor->xcol;
if (!curamnt)
return -1;
pcol(bw->cursor, bw->cursor->xcol - curamnt);
bw->cursor->xcol -= curamnt;
bw->offset -= amnt;
updall();
return 0;
}
void orphit(BW *bw)
{
++bw->b->count;
bw->b->orphan = 1;
pdupown(bw->cursor, &bw->b->oldcur);
pdupown(bw->top, &bw->b->oldtop);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment