From 707cf3115f060fe385a253b08badd701d3caea42 Mon Sep 17 00:00:00 2001 From: Preston Pan Date: Tue, 9 Jan 2024 18:40:22 -0800 Subject: working gitignore --- .../index/better_string.c.F6CE69749F896848.idx | Bin 1858 -> 0 bytes .../index/better_string.h.E96A9A131533992C.idx | Bin 1166 -> 0 bytes .../clangd/index/builtins.c.0FD8BD8549B51D75.idx | Bin 27530 -> 0 bytes .../clangd/index/builtins.h.F3321E1D2A261F9C.idx | Bin 3730 -> 0 bytes .cache/clangd/index/macros.c.301BEA6B0987DE05.idx | Bin 492 -> 0 bytes .cache/clangd/index/macros.h.2CD294975D4FAC82.idx | Bin 1634 -> 0 bytes .cache/clangd/index/main.c.74E5B985AC5DB516.idx | Bin 2050 -> 0 bytes .cache/clangd/index/parser.c.F6825B55D192ECCF.idx | Bin 11434 -> 0 bytes .cache/clangd/index/parser.h.E3B44678E1C8EB69.idx | Bin 5858 -> 0 bytes .cache/clangd/index/stem.c.84B8D44C769C33D4.idx | Bin 11450 -> 0 bytes .cache/clangd/index/stem.h.BC711E09418453D1.idx | Bin 5812 -> 0 bytes .gitignore | 1 + bin/stem | Bin 45488 -> 0 bytes build/better_string.i | 1811 ------- build/better_string.o | Bin 4320 -> 0 bytes build/better_string.s | 462 -- build/builtins.i | 5096 -------------------- build/builtins.o | Bin 47152 -> 0 bytes build/builtins.s | 4764 ------------------ build/macros.i | 2078 -------- build/macros.o | Bin 1616 -> 0 bytes build/macros.s | 26 - build/main.i | 3968 --------------- build/main.o | Bin 4800 -> 0 bytes build/main.s | 188 - build/parser.i | 4234 ---------------- build/parser.o | Bin 15864 -> 0 bytes build/parser.s | 2934 ----------- build/stem.i | 4228 ---------------- build/stem.o | Bin 15864 -> 0 bytes build/stem.s | 2934 ----------- 31 files changed, 1 insertion(+), 32723 deletions(-) delete mode 100644 .cache/clangd/index/better_string.c.F6CE69749F896848.idx delete mode 100644 .cache/clangd/index/better_string.h.E96A9A131533992C.idx delete mode 100644 .cache/clangd/index/builtins.c.0FD8BD8549B51D75.idx delete mode 100644 .cache/clangd/index/builtins.h.F3321E1D2A261F9C.idx delete mode 100644 .cache/clangd/index/macros.c.301BEA6B0987DE05.idx delete mode 100644 .cache/clangd/index/macros.h.2CD294975D4FAC82.idx delete mode 100644 .cache/clangd/index/main.c.74E5B985AC5DB516.idx delete mode 100644 .cache/clangd/index/parser.c.F6825B55D192ECCF.idx delete mode 100644 .cache/clangd/index/parser.h.E3B44678E1C8EB69.idx delete mode 100644 .cache/clangd/index/stem.c.84B8D44C769C33D4.idx delete mode 100644 .cache/clangd/index/stem.h.BC711E09418453D1.idx delete mode 100755 bin/stem delete mode 100644 build/better_string.i delete mode 100644 build/better_string.o delete mode 100644 build/better_string.s delete mode 100644 build/builtins.i delete mode 100644 build/builtins.o delete mode 100644 build/builtins.s delete mode 100644 build/macros.i delete mode 100644 build/macros.o delete mode 100644 build/macros.s delete mode 100644 build/main.i delete mode 100644 build/main.o delete mode 100644 build/main.s delete mode 100644 build/parser.i delete mode 100644 build/parser.o delete mode 100644 build/parser.s delete mode 100644 build/stem.i delete mode 100644 build/stem.o delete mode 100644 build/stem.s diff --git a/.cache/clangd/index/better_string.c.F6CE69749F896848.idx b/.cache/clangd/index/better_string.c.F6CE69749F896848.idx deleted file mode 100644 index 932101b..0000000 Binary files a/.cache/clangd/index/better_string.c.F6CE69749F896848.idx and /dev/null differ diff --git a/.cache/clangd/index/better_string.h.E96A9A131533992C.idx b/.cache/clangd/index/better_string.h.E96A9A131533992C.idx deleted file mode 100644 index e3e9f67..0000000 Binary files a/.cache/clangd/index/better_string.h.E96A9A131533992C.idx and /dev/null differ diff --git a/.cache/clangd/index/builtins.c.0FD8BD8549B51D75.idx b/.cache/clangd/index/builtins.c.0FD8BD8549B51D75.idx deleted file mode 100644 index ad061f8..0000000 Binary files a/.cache/clangd/index/builtins.c.0FD8BD8549B51D75.idx and /dev/null differ diff --git a/.cache/clangd/index/builtins.h.F3321E1D2A261F9C.idx b/.cache/clangd/index/builtins.h.F3321E1D2A261F9C.idx deleted file mode 100644 index 6a5ebc2..0000000 Binary files a/.cache/clangd/index/builtins.h.F3321E1D2A261F9C.idx and /dev/null differ diff --git a/.cache/clangd/index/macros.c.301BEA6B0987DE05.idx b/.cache/clangd/index/macros.c.301BEA6B0987DE05.idx deleted file mode 100644 index a8374e2..0000000 Binary files a/.cache/clangd/index/macros.c.301BEA6B0987DE05.idx and /dev/null differ diff --git a/.cache/clangd/index/macros.h.2CD294975D4FAC82.idx b/.cache/clangd/index/macros.h.2CD294975D4FAC82.idx deleted file mode 100644 index 383a378..0000000 Binary files a/.cache/clangd/index/macros.h.2CD294975D4FAC82.idx and /dev/null differ diff --git a/.cache/clangd/index/main.c.74E5B985AC5DB516.idx b/.cache/clangd/index/main.c.74E5B985AC5DB516.idx deleted file mode 100644 index b833de1..0000000 Binary files a/.cache/clangd/index/main.c.74E5B985AC5DB516.idx and /dev/null differ diff --git a/.cache/clangd/index/parser.c.F6825B55D192ECCF.idx b/.cache/clangd/index/parser.c.F6825B55D192ECCF.idx deleted file mode 100644 index 4d08f8f..0000000 Binary files a/.cache/clangd/index/parser.c.F6825B55D192ECCF.idx and /dev/null differ diff --git a/.cache/clangd/index/parser.h.E3B44678E1C8EB69.idx b/.cache/clangd/index/parser.h.E3B44678E1C8EB69.idx deleted file mode 100644 index 499dfc0..0000000 Binary files a/.cache/clangd/index/parser.h.E3B44678E1C8EB69.idx and /dev/null differ diff --git a/.cache/clangd/index/stem.c.84B8D44C769C33D4.idx b/.cache/clangd/index/stem.c.84B8D44C769C33D4.idx deleted file mode 100644 index 78b865c..0000000 Binary files a/.cache/clangd/index/stem.c.84B8D44C769C33D4.idx and /dev/null differ diff --git a/.cache/clangd/index/stem.h.BC711E09418453D1.idx b/.cache/clangd/index/stem.h.BC711E09418453D1.idx deleted file mode 100644 index f1be191..0000000 Binary files a/.cache/clangd/index/stem.h.BC711E09418453D1.idx and /dev/null differ diff --git a/.gitignore b/.gitignore index 8b1a6fe..ee9fe7f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ tmp/ /bin/** /build/** +/.cache/** compile_commands.json diff --git a/bin/stem b/bin/stem deleted file mode 100755 index a33f3dd..0000000 Binary files a/bin/stem and /dev/null differ diff --git a/build/better_string.i b/build/better_string.i deleted file mode 100644 index d6fcf74..0000000 --- a/build/better_string.i +++ /dev/null @@ -1,1811 +0,0 @@ -# 0 "src/better_string.c" -# 0 "" -# 0 "" -# 1 "/usr/include/stdc-predef.h" 1 3 4 -# 0 "" 2 -# 1 "src/better_string.c" -# 1 "include/better_string.h" 1 - - -# 1 "/usr/include/stdlib.h" 1 3 4 -# 26 "/usr/include/stdlib.h" 3 4 -# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 -# 33 "/usr/include/bits/libc-header-start.h" 3 4 -# 1 "/usr/include/features.h" 1 3 4 -# 394 "/usr/include/features.h" 3 4 -# 1 "/usr/include/features-time64.h" 1 3 4 -# 20 "/usr/include/features-time64.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 21 "/usr/include/features-time64.h" 2 3 4 -# 1 "/usr/include/bits/timesize.h" 1 3 4 -# 19 "/usr/include/bits/timesize.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 20 "/usr/include/bits/timesize.h" 2 3 4 -# 22 "/usr/include/features-time64.h" 2 3 4 -# 395 "/usr/include/features.h" 2 3 4 -# 503 "/usr/include/features.h" 3 4 -# 1 "/usr/include/sys/cdefs.h" 1 3 4 -# 576 "/usr/include/sys/cdefs.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 577 "/usr/include/sys/cdefs.h" 2 3 4 -# 1 "/usr/include/bits/long-double.h" 1 3 4 -# 578 "/usr/include/sys/cdefs.h" 2 3 4 -# 504 "/usr/include/features.h" 2 3 4 -# 527 "/usr/include/features.h" 3 4 -# 1 "/usr/include/gnu/stubs.h" 1 3 4 -# 10 "/usr/include/gnu/stubs.h" 3 4 -# 1 "/usr/include/gnu/stubs-64.h" 1 3 4 -# 11 "/usr/include/gnu/stubs.h" 2 3 4 -# 528 "/usr/include/features.h" 2 3 4 -# 34 "/usr/include/bits/libc-header-start.h" 2 3 4 -# 27 "/usr/include/stdlib.h" 2 3 4 - - - - - -# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/stddef.h" 1 3 4 -# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/stddef.h" 3 4 - -# 214 "/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/stddef.h" 3 4 -typedef long unsigned int size_t; -# 329 "/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/stddef.h" 3 4 -typedef int wchar_t; -# 33 "/usr/include/stdlib.h" 2 3 4 - - - - - - - -# 1 "/usr/include/bits/waitflags.h" 1 3 4 -# 41 "/usr/include/stdlib.h" 2 3 4 -# 1 "/usr/include/bits/waitstatus.h" 1 3 4 -# 42 "/usr/include/stdlib.h" 2 3 4 -# 56 "/usr/include/stdlib.h" 3 4 -# 1 "/usr/include/bits/floatn.h" 1 3 4 -# 119 "/usr/include/bits/floatn.h" 3 4 -# 1 "/usr/include/bits/floatn-common.h" 1 3 4 -# 24 "/usr/include/bits/floatn-common.h" 3 4 -# 1 "/usr/include/bits/long-double.h" 1 3 4 -# 25 "/usr/include/bits/floatn-common.h" 2 3 4 -# 120 "/usr/include/bits/floatn.h" 2 3 4 -# 57 "/usr/include/stdlib.h" 2 3 4 - - -typedef struct - { - int quot; - int rem; - } div_t; - - - -typedef struct - { - long int quot; - long int rem; - } ldiv_t; - - - - - -__extension__ typedef struct - { - long long int quot; - long long int rem; - } lldiv_t; -# 98 "/usr/include/stdlib.h" 3 4 -extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ; - - - -extern double atof (const char *__nptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - -extern int atoi (const char *__nptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - -extern long int atol (const char *__nptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - - - -__extension__ extern long long int atoll (const char *__nptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - - - -extern double strtod (const char *__restrict __nptr, - char **__restrict __endptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - -extern float strtof (const char *__restrict __nptr, - char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - -extern long double strtold (const char *__restrict __nptr, - char **__restrict __endptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); -# 177 "/usr/include/stdlib.h" 3 4 -extern long int strtol (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - -extern unsigned long int strtoul (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - -__extension__ -extern long long int strtoq (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - -__extension__ -extern unsigned long long int strtouq (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - - -__extension__ -extern long long int strtoll (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - -__extension__ -extern unsigned long long int strtoull (const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); -# 480 "/usr/include/stdlib.h" 3 4 -extern __inline __attribute__ ((__gnu_inline__)) int -__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr) -{ - return (int) strtol (__nptr, (char **) ((void *)0), 10); -} -extern __inline __attribute__ ((__gnu_inline__)) long int -__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr) -{ - return strtol (__nptr, (char **) ((void *)0), 10); -} - - -__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int -__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr) -{ - return strtoll (__nptr, (char **) ((void *)0), 10); -} -# 505 "/usr/include/stdlib.h" 3 4 -extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ; - - -extern long int a64l (const char *__s) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; - - - - -# 1 "/usr/include/sys/types.h" 1 3 4 -# 27 "/usr/include/sys/types.h" 3 4 - - -# 1 "/usr/include/bits/types.h" 1 3 4 -# 27 "/usr/include/bits/types.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 28 "/usr/include/bits/types.h" 2 3 4 -# 1 "/usr/include/bits/timesize.h" 1 3 4 -# 19 "/usr/include/bits/timesize.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 20 "/usr/include/bits/timesize.h" 2 3 4 -# 29 "/usr/include/bits/types.h" 2 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; - -typedef signed long int __int64_t; -typedef unsigned long int __uint64_t; - - - - - - -typedef __int8_t __int_least8_t; -typedef __uint8_t __uint_least8_t; -typedef __int16_t __int_least16_t; -typedef __uint16_t __uint_least16_t; -typedef __int32_t __int_least32_t; -typedef __uint32_t __uint_least32_t; -typedef __int64_t __int_least64_t; -typedef __uint64_t __uint_least64_t; - - - -typedef long int __quad_t; -typedef unsigned long int __u_quad_t; - - - - - - - -typedef long int __intmax_t; -typedef unsigned long int __uintmax_t; -# 141 "/usr/include/bits/types.h" 3 4 -# 1 "/usr/include/bits/typesizes.h" 1 3 4 -# 142 "/usr/include/bits/types.h" 2 3 4 -# 1 "/usr/include/bits/time64.h" 1 3 4 -# 143 "/usr/include/bits/types.h" 2 3 4 - - -typedef unsigned long int __dev_t; -typedef unsigned int __uid_t; -typedef unsigned int __gid_t; -typedef unsigned long int __ino_t; -typedef unsigned long int __ino64_t; -typedef unsigned int __mode_t; -typedef unsigned long int __nlink_t; -typedef long int __off_t; -typedef long int __off64_t; -typedef int __pid_t; -typedef struct { int __val[2]; } __fsid_t; -typedef long int __clock_t; -typedef unsigned long int __rlim_t; -typedef unsigned long int __rlim64_t; -typedef unsigned int __id_t; -typedef long int __time_t; -typedef unsigned int __useconds_t; -typedef long int __suseconds_t; -typedef long int __suseconds64_t; - -typedef int __daddr_t; -typedef int __key_t; - - -typedef int __clockid_t; - - -typedef void * __timer_t; - - -typedef long int __blksize_t; - - - - -typedef long int __blkcnt_t; -typedef long int __blkcnt64_t; - - -typedef unsigned long int __fsblkcnt_t; -typedef unsigned long int __fsblkcnt64_t; - - -typedef unsigned long int __fsfilcnt_t; -typedef unsigned long int __fsfilcnt64_t; - - -typedef long int __fsword_t; - -typedef long int __ssize_t; - - -typedef long int __syscall_slong_t; - -typedef unsigned long int __syscall_ulong_t; - - - -typedef __off64_t __loff_t; -typedef char *__caddr_t; - - -typedef long int __intptr_t; - - -typedef unsigned int __socklen_t; - - - - -typedef int __sig_atomic_t; -# 30 "/usr/include/sys/types.h" 2 3 4 - - - -typedef __u_char u_char; -typedef __u_short u_short; -typedef __u_int u_int; -typedef __u_long u_long; -typedef __quad_t quad_t; -typedef __u_quad_t u_quad_t; -typedef __fsid_t fsid_t; - - -typedef __loff_t loff_t; - - - - -typedef __ino_t ino_t; -# 59 "/usr/include/sys/types.h" 3 4 -typedef __dev_t dev_t; - - - - -typedef __gid_t gid_t; - - - - -typedef __mode_t mode_t; - - - - -typedef __nlink_t nlink_t; - - - - -typedef __uid_t uid_t; - - - - - -typedef __off_t off_t; -# 97 "/usr/include/sys/types.h" 3 4 -typedef __pid_t pid_t; - - - - - -typedef __id_t id_t; - - - - -typedef __ssize_t ssize_t; - - - - - -typedef __daddr_t daddr_t; -typedef __caddr_t caddr_t; - - - - - -typedef __key_t key_t; - - - - -# 1 "/usr/include/bits/types/clock_t.h" 1 3 4 - - - - - - -typedef __clock_t clock_t; -# 127 "/usr/include/sys/types.h" 2 3 4 - -# 1 "/usr/include/bits/types/clockid_t.h" 1 3 4 - - - - - - -typedef __clockid_t clockid_t; -# 129 "/usr/include/sys/types.h" 2 3 4 -# 1 "/usr/include/bits/types/time_t.h" 1 3 4 -# 10 "/usr/include/bits/types/time_t.h" 3 4 -typedef __time_t time_t; -# 130 "/usr/include/sys/types.h" 2 3 4 -# 1 "/usr/include/bits/types/timer_t.h" 1 3 4 - - - - - - -typedef __timer_t timer_t; -# 131 "/usr/include/sys/types.h" 2 3 4 -# 144 "/usr/include/sys/types.h" 3 4 -# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/stddef.h" 1 3 4 -# 145 "/usr/include/sys/types.h" 2 3 4 - - - -typedef unsigned long int ulong; -typedef unsigned short int ushort; -typedef unsigned int uint; - - - - -# 1 "/usr/include/bits/stdint-intn.h" 1 3 4 -# 24 "/usr/include/bits/stdint-intn.h" 3 4 -typedef __int8_t int8_t; -typedef __int16_t int16_t; -typedef __int32_t int32_t; -typedef __int64_t int64_t; -# 156 "/usr/include/sys/types.h" 2 3 4 - - -typedef __uint8_t u_int8_t; -typedef __uint16_t u_int16_t; -typedef __uint32_t u_int32_t; -typedef __uint64_t u_int64_t; - - -typedef int register_t __attribute__ ((__mode__ (__word__))); -# 176 "/usr/include/sys/types.h" 3 4 -# 1 "/usr/include/endian.h" 1 3 4 -# 24 "/usr/include/endian.h" 3 4 -# 1 "/usr/include/bits/endian.h" 1 3 4 -# 35 "/usr/include/bits/endian.h" 3 4 -# 1 "/usr/include/bits/endianness.h" 1 3 4 -# 36 "/usr/include/bits/endian.h" 2 3 4 -# 25 "/usr/include/endian.h" 2 3 4 -# 35 "/usr/include/endian.h" 3 4 -# 1 "/usr/include/bits/byteswap.h" 1 3 4 -# 33 "/usr/include/bits/byteswap.h" 3 4 -static __inline __uint16_t -__bswap_16 (__uint16_t __bsx) -{ - - return __builtin_bswap16 (__bsx); - - - -} - - - - - - -static __inline __uint32_t -__bswap_32 (__uint32_t __bsx) -{ - - return __builtin_bswap32 (__bsx); - - - -} -# 69 "/usr/include/bits/byteswap.h" 3 4 -__extension__ static __inline __uint64_t -__bswap_64 (__uint64_t __bsx) -{ - - return __builtin_bswap64 (__bsx); - - - -} -# 36 "/usr/include/endian.h" 2 3 4 -# 1 "/usr/include/bits/uintn-identity.h" 1 3 4 -# 32 "/usr/include/bits/uintn-identity.h" 3 4 -static __inline __uint16_t -__uint16_identity (__uint16_t __x) -{ - return __x; -} - -static __inline __uint32_t -__uint32_identity (__uint32_t __x) -{ - return __x; -} - -static __inline __uint64_t -__uint64_identity (__uint64_t __x) -{ - return __x; -} -# 37 "/usr/include/endian.h" 2 3 4 -# 177 "/usr/include/sys/types.h" 2 3 4 - - -# 1 "/usr/include/sys/select.h" 1 3 4 -# 30 "/usr/include/sys/select.h" 3 4 -# 1 "/usr/include/bits/select.h" 1 3 4 -# 31 "/usr/include/sys/select.h" 2 3 4 - - -# 1 "/usr/include/bits/types/sigset_t.h" 1 3 4 - - - -# 1 "/usr/include/bits/types/__sigset_t.h" 1 3 4 - - - - -typedef struct -{ - unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; -} __sigset_t; -# 5 "/usr/include/bits/types/sigset_t.h" 2 3 4 - - -typedef __sigset_t sigset_t; -# 34 "/usr/include/sys/select.h" 2 3 4 - - - -# 1 "/usr/include/bits/types/struct_timeval.h" 1 3 4 - - - - - - - -struct timeval -{ - - - - - __time_t tv_sec; - __suseconds_t tv_usec; - -}; -# 38 "/usr/include/sys/select.h" 2 3 4 - -# 1 "/usr/include/bits/types/struct_timespec.h" 1 3 4 -# 11 "/usr/include/bits/types/struct_timespec.h" 3 4 -struct timespec -{ - - - - __time_t tv_sec; - - - - - __syscall_slong_t tv_nsec; -# 31 "/usr/include/bits/types/struct_timespec.h" 3 4 -}; -# 40 "/usr/include/sys/select.h" 2 3 4 - - - -typedef __suseconds_t suseconds_t; - - - - - -typedef long int __fd_mask; -# 59 "/usr/include/sys/select.h" 3 4 -typedef struct - { - - - - - - - __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; - - - } fd_set; - - - - - - -typedef __fd_mask fd_mask; -# 91 "/usr/include/sys/select.h" 3 4 - -# 102 "/usr/include/sys/select.h" 3 4 -extern int select (int __nfds, fd_set *__restrict __readfds, - fd_set *__restrict __writefds, - fd_set *__restrict __exceptfds, - struct timeval *__restrict __timeout); -# 127 "/usr/include/sys/select.h" 3 4 -extern int pselect (int __nfds, fd_set *__restrict __readfds, - fd_set *__restrict __writefds, - fd_set *__restrict __exceptfds, - const struct timespec *__restrict __timeout, - const __sigset_t *__restrict __sigmask); -# 153 "/usr/include/sys/select.h" 3 4 - -# 180 "/usr/include/sys/types.h" 2 3 4 - - - - - -typedef __blksize_t blksize_t; - - - - - - -typedef __blkcnt_t blkcnt_t; - - - -typedef __fsblkcnt_t fsblkcnt_t; - - - -typedef __fsfilcnt_t fsfilcnt_t; -# 227 "/usr/include/sys/types.h" 3 4 -# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 -# 23 "/usr/include/bits/pthreadtypes.h" 3 4 -# 1 "/usr/include/bits/thread-shared-types.h" 1 3 4 -# 44 "/usr/include/bits/thread-shared-types.h" 3 4 -# 1 "/usr/include/bits/pthreadtypes-arch.h" 1 3 4 -# 21 "/usr/include/bits/pthreadtypes-arch.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 22 "/usr/include/bits/pthreadtypes-arch.h" 2 3 4 -# 45 "/usr/include/bits/thread-shared-types.h" 2 3 4 - -# 1 "/usr/include/bits/atomic_wide_counter.h" 1 3 4 -# 25 "/usr/include/bits/atomic_wide_counter.h" 3 4 -typedef union -{ - __extension__ unsigned long long int __value64; - struct - { - unsigned int __low; - unsigned int __high; - } __value32; -} __atomic_wide_counter; -# 47 "/usr/include/bits/thread-shared-types.h" 2 3 4 - - - - -typedef struct __pthread_internal_list -{ - struct __pthread_internal_list *__prev; - struct __pthread_internal_list *__next; -} __pthread_list_t; - -typedef struct __pthread_internal_slist -{ - struct __pthread_internal_slist *__next; -} __pthread_slist_t; -# 76 "/usr/include/bits/thread-shared-types.h" 3 4 -# 1 "/usr/include/bits/struct_mutex.h" 1 3 4 -# 22 "/usr/include/bits/struct_mutex.h" 3 4 -struct __pthread_mutex_s -{ - int __lock; - unsigned int __count; - int __owner; - - unsigned int __nusers; - - - - int __kind; - - short __spins; - short __elision; - __pthread_list_t __list; -# 53 "/usr/include/bits/struct_mutex.h" 3 4 -}; -# 77 "/usr/include/bits/thread-shared-types.h" 2 3 4 -# 89 "/usr/include/bits/thread-shared-types.h" 3 4 -# 1 "/usr/include/bits/struct_rwlock.h" 1 3 4 -# 23 "/usr/include/bits/struct_rwlock.h" 3 4 -struct __pthread_rwlock_arch_t -{ - unsigned int __readers; - unsigned int __writers; - unsigned int __wrphase_futex; - unsigned int __writers_futex; - unsigned int __pad3; - unsigned int __pad4; - - int __cur_writer; - int __shared; - signed char __rwelision; - - - - - unsigned char __pad1[7]; - - - unsigned long int __pad2; - - - unsigned int __flags; -# 55 "/usr/include/bits/struct_rwlock.h" 3 4 -}; -# 90 "/usr/include/bits/thread-shared-types.h" 2 3 4 - - - - -struct __pthread_cond_s -{ - __atomic_wide_counter __wseq; - __atomic_wide_counter __g1_start; - unsigned int __g_refs[2] ; - unsigned int __g_size[2]; - unsigned int __g1_orig_size; - unsigned int __wrefs; - unsigned int __g_signals[2]; -}; - -typedef unsigned int __tss_t; -typedef unsigned long int __thrd_t; - -typedef struct -{ - int __data ; -} __once_flag; -# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 - - - -typedef unsigned long int pthread_t; - - - - -typedef union -{ - char __size[4]; - int __align; -} pthread_mutexattr_t; - - - - -typedef union -{ - char __size[4]; - int __align; -} pthread_condattr_t; - - - -typedef unsigned int pthread_key_t; - - - -typedef int pthread_once_t; - - -union pthread_attr_t -{ - char __size[56]; - long int __align; -}; - -typedef union pthread_attr_t pthread_attr_t; - - - - -typedef union -{ - struct __pthread_mutex_s __data; - char __size[40]; - long int __align; -} pthread_mutex_t; - - -typedef union -{ - struct __pthread_cond_s __data; - char __size[48]; - __extension__ long long int __align; -} pthread_cond_t; - - - - - -typedef union -{ - struct __pthread_rwlock_arch_t __data; - char __size[56]; - long int __align; -} pthread_rwlock_t; - -typedef union -{ - char __size[8]; - long int __align; -} pthread_rwlockattr_t; - - - - - -typedef volatile int pthread_spinlock_t; - - - - -typedef union -{ - char __size[32]; - long int __align; -} pthread_barrier_t; - -typedef union -{ - char __size[4]; - int __align; -} pthread_barrierattr_t; -# 228 "/usr/include/sys/types.h" 2 3 4 - - - -# 515 "/usr/include/stdlib.h" 2 3 4 - - - - - - -extern long int random (void) __attribute__ ((__nothrow__ , __leaf__)); - - -extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); - - - - - -extern char *initstate (unsigned int __seed, char *__statebuf, - size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); - - - -extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - - - - - -struct random_data - { - int32_t *fptr; - int32_t *rptr; - int32_t *state; - int rand_type; - int rand_deg; - int rand_sep; - int32_t *end_ptr; - }; - -extern int random_r (struct random_data *__restrict __buf, - int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - -extern int srandom_r (unsigned int __seed, struct random_data *__buf) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); - -extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, - size_t __statelen, - struct random_data *__restrict __buf) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); - -extern int setstate_r (char *__restrict __statebuf, - struct random_data *__restrict __buf) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - - - - -extern int rand (void) __attribute__ ((__nothrow__ , __leaf__)); - -extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); - - - -extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__)); - - - - - - - -extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__)); -extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - -extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); -extern long int nrand48 (unsigned short int __xsubi[3]) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - -extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); -extern long int jrand48 (unsigned short int __xsubi[3]) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - -extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__)); -extern unsigned short int *seed48 (unsigned short int __seed16v[3]) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); -extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - - - -struct drand48_data - { - unsigned short int __x[3]; - unsigned short int __old_x[3]; - unsigned short int __c; - unsigned short int __init; - __extension__ unsigned long long int __a; - - }; - - -extern int drand48_r (struct drand48_data *__restrict __buffer, - double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); -extern int erand48_r (unsigned short int __xsubi[3], - struct drand48_data *__restrict __buffer, - double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern int lrand48_r (struct drand48_data *__restrict __buffer, - long int *__restrict __result) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); -extern int nrand48_r (unsigned short int __xsubi[3], - struct drand48_data *__restrict __buffer, - long int *__restrict __result) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern int mrand48_r (struct drand48_data *__restrict __buffer, - long int *__restrict __result) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); -extern int jrand48_r (unsigned short int __xsubi[3], - struct drand48_data *__restrict __buffer, - long int *__restrict __result) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern int srand48_r (long int __seedval, struct drand48_data *__buffer) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); - -extern int seed48_r (unsigned short int __seed16v[3], - struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - -extern int lcong48_r (unsigned short int __param[7], - struct drand48_data *__buffer) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern __uint32_t arc4random (void) - __attribute__ ((__nothrow__ , __leaf__)) ; - - -extern void arc4random_buf (void *__buf, size_t __size) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - -extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) - __attribute__ ((__nothrow__ , __leaf__)) ; - - - - -extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) - __attribute__ ((__alloc_size__ (1))) ; - -extern void *calloc (size_t __nmemb, size_t __size) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ; - - - - - - -extern void *realloc (void *__ptr, size_t __size) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2))); - - -extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); - - - - - - - -extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) - __attribute__ ((__alloc_size__ (2, 3))) - __attribute__ ((__malloc__ (__builtin_free, 1))); - - -extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1))); - - - -# 1 "/usr/include/alloca.h" 1 3 4 -# 24 "/usr/include/alloca.h" 3 4 -# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/stddef.h" 1 3 4 -# 25 "/usr/include/alloca.h" 2 3 4 - - - - - - - -extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__)); - - - - - - -# 707 "/usr/include/stdlib.h" 2 3 4 - - - - - -extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) - __attribute__ ((__alloc_size__ (1))) ; - - - - -extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; - - - - -extern void *aligned_alloc (size_t __alignment, size_t __size) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1))) - __attribute__ ((__alloc_size__ (2))) ; - - - -extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); - - - -extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - - - - - -extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - - - - -extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - - - -extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); - - - - - -extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); - - - - - -extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); - - - - -extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; -# 786 "/usr/include/stdlib.h" 3 4 -extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - - - -extern int setenv (const char *__name, const char *__value, int __replace) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); - - -extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - - - - - -extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__)); -# 814 "/usr/include/stdlib.h" 3 4 -extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); -# 827 "/usr/include/stdlib.h" 3 4 -extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; -# 849 "/usr/include/stdlib.h" 3 4 -extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; -# 870 "/usr/include/stdlib.h" 3 4 -extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; -# 923 "/usr/include/stdlib.h" 3 4 -extern int system (const char *__command) ; -# 940 "/usr/include/stdlib.h" 3 4 -extern char *realpath (const char *__restrict __name, - char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ; - - - - - - -typedef int (*__compar_fn_t) (const void *, const void *); -# 960 "/usr/include/stdlib.h" 3 4 -extern void *bsearch (const void *__key, const void *__base, - size_t __nmemb, size_t __size, __compar_fn_t __compar) - __attribute__ ((__nonnull__ (1, 2, 5))) ; - - -# 1 "/usr/include/bits/stdlib-bsearch.h" 1 3 4 -# 19 "/usr/include/bits/stdlib-bsearch.h" 3 4 -extern __inline __attribute__ ((__gnu_inline__)) void * -bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, - __compar_fn_t __compar) -{ - size_t __l, __u, __idx; - const void *__p; - int __comparison; - - __l = 0; - __u = __nmemb; - while (__l < __u) - { - __idx = (__l + __u) / 2; - __p = (const void *) (((const char *) __base) + (__idx * __size)); - __comparison = (*__compar) (__key, __p); - if (__comparison < 0) - __u = __idx; - else if (__comparison > 0) - __l = __idx + 1; - else - { - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wcast-qual" - - return (void *) __p; - -#pragma GCC diagnostic pop - - } - } - - return ((void *)0); -} -# 966 "/usr/include/stdlib.h" 2 3 4 - - - - -extern void qsort (void *__base, size_t __nmemb, size_t __size, - __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); -# 980 "/usr/include/stdlib.h" 3 4 -extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; -extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; - - -__extension__ extern long long int llabs (long long int __x) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; - - - - - - -extern div_t div (int __numer, int __denom) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; -extern ldiv_t ldiv (long int __numer, long int __denom) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; - - -__extension__ extern lldiv_t lldiv (long long int __numer, - long long int __denom) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ; -# 1012 "/usr/include/stdlib.h" 3 4 -extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ; - - - - -extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ; - - - - -extern char *gcvt (double __value, int __ndigit, char *__buf) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ; - - - - -extern char *qecvt (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ; -extern char *qfcvt (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ; -extern char *qgcvt (long double __value, int __ndigit, char *__buf) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ; - - - - -extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign, char *__restrict __buf, - size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); -extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, - int *__restrict __sign, char *__restrict __buf, - size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); - -extern int qecvt_r (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign, - char *__restrict __buf, size_t __len) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); -extern int qfcvt_r (long double __value, int __ndigit, - int *__restrict __decpt, int *__restrict __sign, - char *__restrict __buf, size_t __len) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); - - - - - -extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); - - -extern int mbtowc (wchar_t *__restrict __pwc, - const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); - - -extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__)); - - - -extern size_t mbstowcs (wchar_t *__restrict __pwcs, - const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) - __attribute__ ((__access__ (__read_only__, 2))); - -extern size_t wcstombs (char *__restrict __s, - const wchar_t *__restrict __pwcs, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) - __attribute__ ((__access__ (__write_only__, 1, 3))) - __attribute__ ((__access__ (__read_only__, 2))); - - - - - - -extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ; -# 1099 "/usr/include/stdlib.h" 3 4 -extern int getsubopt (char **__restrict __optionp, - char *const *__restrict __tokens, - char **__restrict __valuep) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; -# 1145 "/usr/include/stdlib.h" 3 4 -extern int getloadavg (double __loadavg[], int __nelem) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); -# 1155 "/usr/include/stdlib.h" 3 4 -# 1 "/usr/include/bits/stdlib-float.h" 1 3 4 -# 24 "/usr/include/bits/stdlib-float.h" 3 4 -extern __inline __attribute__ ((__gnu_inline__)) double -__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr) -{ - return strtod (__nptr, (char **) ((void *)0)); -} -# 1156 "/usr/include/stdlib.h" 2 3 4 -# 1167 "/usr/include/stdlib.h" 3 4 - -# 4 "include/better_string.h" 2 - - - -# 6 "include/better_string.h" -typedef struct STRING_STRUCT { - - size_t length; - - size_t bufsize; - char *value; -} string_t; - - -string_t *init_string(char *value); - - -string_t *string_copy(string_t *s); - - -void string_concat(string_t *s1, string_t *s2); - - -void string_append(string_t *s, char c); - - -void string_free(string_t *s); -# 2 "src/better_string.c" 2 -# 1 "include/macros.h" 1 -# 78 "include/macros.h" -void die(char *message); -# 3 "src/better_string.c" 2 - -# 1 "/usr/include/string.h" 1 3 4 -# 26 "/usr/include/string.h" 3 4 -# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 -# 27 "/usr/include/string.h" 2 3 4 - - - - - - -# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/stddef.h" 1 3 4 -# 34 "/usr/include/string.h" 2 3 4 -# 43 "/usr/include/string.h" 3 4 - -# 43 "/usr/include/string.h" 3 4 -extern void *memcpy (void *__restrict __dest, const void *__restrict __src, - size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern void *memmove (void *__dest, const void *__src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - - - - -extern void *memccpy (void *__restrict __dest, const void *__restrict __src, - int __c, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4))); - - - - -extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); - - -extern int memcmp (const void *__s1, const void *__s2, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -# 80 "/usr/include/string.h" 3 4 -extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -# 107 "/usr/include/string.h" 3 4 -extern void *memchr (const void *__s, int __c, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 141 "/usr/include/string.h" 3 4 -extern char *strcpy (char *__restrict __dest, const char *__restrict __src) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - -extern char *strncpy (char *__restrict __dest, - const char *__restrict __src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern char *strcat (char *__restrict __dest, const char *__restrict __src) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - -extern char *strncat (char *__restrict __dest, const char *__restrict __src, - size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern int strcmp (const char *__s1, const char *__s2) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - -extern int strncmp (const char *__s1, const char *__s2, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern int strcoll (const char *__s1, const char *__s2) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - -extern size_t strxfrm (char *__restrict __dest, - const char *__restrict __src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3))); - - - -# 1 "/usr/include/bits/types/locale_t.h" 1 3 4 -# 22 "/usr/include/bits/types/locale_t.h" 3 4 -# 1 "/usr/include/bits/types/__locale_t.h" 1 3 4 -# 27 "/usr/include/bits/types/__locale_t.h" 3 4 -struct __locale_struct -{ - - struct __locale_data *__locales[13]; - - - const unsigned short int *__ctype_b; - const int *__ctype_tolower; - const int *__ctype_toupper; - - - const char *__names[13]; -}; - -typedef struct __locale_struct *__locale_t; -# 23 "/usr/include/bits/types/locale_t.h" 2 3 4 - -typedef __locale_t locale_t; -# 173 "/usr/include/string.h" 2 3 4 - - -extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); - - -extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, - locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) - __attribute__ ((__access__ (__write_only__, 1, 3))); - - - - - -extern char *strdup (const char *__s) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); - - - - - - -extern char *strndup (const char *__string, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); -# 246 "/usr/include/string.h" 3 4 -extern char *strchr (const char *__s, int __c) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 273 "/usr/include/string.h" 3 4 -extern char *strrchr (const char *__s, int __c) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 286 "/usr/include/string.h" 3 4 -extern char *strchrnul (const char *__s, int __c) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - - -extern size_t strcspn (const char *__s, const char *__reject) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern size_t strspn (const char *__s, const char *__accept) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -# 323 "/usr/include/string.h" 3 4 -extern char *strpbrk (const char *__s, const char *__accept) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); -# 350 "/usr/include/string.h" 3 4 -extern char *strstr (const char *__haystack, const char *__needle) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - - - -extern char *strtok (char *__restrict __s, const char *__restrict __delim) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); - - - -extern char *__strtok_r (char *__restrict __s, - const char *__restrict __delim, - char **__restrict __save_ptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); - -extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, - char **__restrict __save_ptr) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); -# 380 "/usr/include/string.h" 3 4 -extern char *strcasestr (const char *__haystack, const char *__needle) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - - - - - - -extern void *memmem (const void *__haystack, size_t __haystacklen, - const void *__needle, size_t __needlelen) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))) - __attribute__ ((__access__ (__read_only__, 1, 2))) - __attribute__ ((__access__ (__read_only__, 3, 4))); - - - -extern void *__mempcpy (void *__restrict __dest, - const void *__restrict __src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); -extern void *mempcpy (void *__restrict __dest, - const void *__restrict __src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - - - -extern size_t strlen (const char *__s) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - -extern size_t strnlen (const char *__string, size_t __maxlen) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - -extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__)); -# 432 "/usr/include/string.h" 3 4 -extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__)) - - __attribute__ ((__nonnull__ (2))) - __attribute__ ((__access__ (__write_only__, 2, 3))); -# 458 "/usr/include/string.h" 3 4 -extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); - - - -# 1 "/usr/include/strings.h" 1 3 4 -# 23 "/usr/include/strings.h" 3 4 -# 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/include/stddef.h" 1 3 4 -# 24 "/usr/include/strings.h" 2 3 4 - - - - - - - - - - -extern int bcmp (const void *__s1, const void *__s2, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern void bcopy (const void *__src, void *__dest, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); -# 68 "/usr/include/strings.h" 3 4 -extern char *index (const char *__s, int __c) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); -# 96 "/usr/include/strings.h" 3 4 -extern char *rindex (const char *__s, int __c) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); - - - - - - -extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); - - - - - -extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); -__extension__ extern int ffsll (long long int __ll) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); - - - -extern int strcasecmp (const char *__s1, const char *__s2) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - -extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); - - - - - - -extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); - - - -extern int strncasecmp_l (const char *__s1, const char *__s2, - size_t __n, locale_t __loc) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); - - - -# 463 "/usr/include/string.h" 2 3 4 - - - -extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) - __attribute__ ((__access__ (__write_only__, 1, 2))); - - - -extern char *strsep (char **__restrict __stringp, - const char *__restrict __delim) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - - - -extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); -# 489 "/usr/include/string.h" 3 4 -extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); -extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - - -extern char *__stpncpy (char *__restrict __dest, - const char *__restrict __src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); -extern char *stpncpy (char *__restrict __dest, - const char *__restrict __src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); - - - - -extern size_t strlcpy (char *__restrict __dest, - const char *__restrict __src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 3))); - - - -extern size_t strlcat (char *__restrict __dest, - const char *__restrict __src, size_t __n) - __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__read_write__, 1, 3))); -# 552 "/usr/include/string.h" 3 4 - -# 5 "src/better_string.c" 2 - - -# 6 "src/better_string.c" -string_t *init_string(char *s) { - string_t *str = malloc(sizeof(string_t)); - if (str == -# 8 "src/better_string.c" 3 4 - ((void *)0) -# 8 "src/better_string.c" - ) - die("malloc in init_string"); - - - if (s == -# 12 "src/better_string.c" 3 4 - ((void *)0) -# 12 "src/better_string.c" - || strcmp(s, "") == 0) { - str->bufsize = 10; - str->value = calloc(str->bufsize, sizeof(char)); - str->value[0] = '\0'; - if (str->value == -# 16 "src/better_string.c" 3 4 - ((void *)0) -# 16 "src/better_string.c" - ) - die("calloc in init_string"); - str->length = 0; - return str; - } - - str->length = strlen(s); - str->bufsize = 2 * strlen(s); - str->value = calloc(str->bufsize, sizeof(char)); - if (str->value == -# 25 "src/better_string.c" 3 4 - ((void *)0) -# 25 "src/better_string.c" - ) - die("calloc in init_string"); - strcpy(str->value, s); - return str; -} - -string_t *string_copy(string_t *s) { return init_string(s->value); } - - -void *realloc_zero(void *pBuffer, size_t oldSize, size_t newSize) { - void *pNew = realloc(pBuffer, newSize); - if (pNew == -# 36 "src/better_string.c" 3 4 - ((void *)0) -# 36 "src/better_string.c" - ) - die("realloc on realloc_zero"); - if (newSize > oldSize && pNew) { - size_t diff = newSize - oldSize; - void *pStart = ((char *)pNew) + oldSize; - memset(pStart, 0, diff); - } - return pNew; -} - -void string_concat(string_t *s1, string_t *s2) { - for (int i = 0; i < s2->length; i++) { - string_append(s1, s2->value[i]); - } -} - -void string_append(string_t *s, char c) { - char str[2] = {c, '\0'}; - int oldsize = s->bufsize; - if (s->bufsize - 1 <= s->length) { - s->bufsize = s->bufsize * 2; - s->value = realloc_zero(s->value, oldsize, s->bufsize); - } - s->length++; - strcat(s->value, str); -} - -void string_free(string_t *s) { - free(s->value); - free(s); -} diff --git a/build/better_string.o b/build/better_string.o deleted file mode 100644 index 8c45184..0000000 Binary files a/build/better_string.o and /dev/null differ diff --git a/build/better_string.s b/build/better_string.s deleted file mode 100644 index f962b6b..0000000 --- a/build/better_string.s +++ /dev/null @@ -1,462 +0,0 @@ - .file "better_string.c" - .text - .section .rodata.str1.1,"aMS",@progbits,1 -.LC0: - .string "malloc in init_string" -.LC1: - .string "calloc in init_string" - .text - .p2align 4 - .globl init_string - .type init_string, @function -init_string: -.LFB11: - .cfi_startproc - pushq %rbp - .cfi_def_cfa_offset 16 - .cfi_offset 6, -16 - movq %rdi, %rbp - movl $24, %edi - pushq %rbx - .cfi_def_cfa_offset 24 - .cfi_offset 3, -24 - subq $8, %rsp - .cfi_def_cfa_offset 32 - call malloc@PLT - movq %rax, %rbx - testq %rax, %rax - je .L12 -.L2: - testq %rbp, %rbp - je .L3 - cmpb $0, 0(%rbp) - jne .L4 -.L3: - movq $10, 8(%rbx) - movl $1, %esi - movl $10, %edi - call calloc@PLT - movq $0, (%rbx) - movq %rax, 16(%rbx) - addq $8, %rsp - .cfi_remember_state - .cfi_def_cfa_offset 24 - movq %rbx, %rax - popq %rbx - .cfi_def_cfa_offset 16 - popq %rbp - .cfi_def_cfa_offset 8 - ret - .p2align 4,,10 - .p2align 3 -.L4: - .cfi_restore_state - movq %rbp, %rdi - call strlen@PLT - movl $1, %esi - leaq (%rax,%rax), %rdi - movq %rax, (%rbx) - movq %rdi, 8(%rbx) - call calloc@PLT - movq %rax, 16(%rbx) - movq %rax, %rdi - testq %rax, %rax - je .L13 -.L6: - movq %rbp, %rsi - call strcpy@PLT - addq $8, %rsp - .cfi_remember_state - .cfi_def_cfa_offset 24 - movq %rbx, %rax - popq %rbx - .cfi_def_cfa_offset 16 - popq %rbp - .cfi_def_cfa_offset 8 - ret -.L12: - .cfi_restore_state - leaq .LC0(%rip), %rdi - call die@PLT - jmp .L2 -.L13: - leaq .LC1(%rip), %rdi - call die@PLT - movq 16(%rbx), %rdi - jmp .L6 - .cfi_endproc -.LFE11: - .size init_string, .-init_string - .p2align 4 - .globl string_copy - .type string_copy, @function -string_copy: -.LFB12: - .cfi_startproc - pushq %rbp - .cfi_def_cfa_offset 16 - .cfi_offset 6, -16 - pushq %rbx - .cfi_def_cfa_offset 24 - .cfi_offset 3, -24 - subq $8, %rsp - .cfi_def_cfa_offset 32 - movq 16(%rdi), %rbp - movl $24, %edi - call malloc@PLT - movq %rax, %rbx - testq %rax, %rax - je .L24 -.L15: - testq %rbp, %rbp - je .L16 - cmpb $0, 0(%rbp) - jne .L17 -.L16: - movq $10, 8(%rbx) - movl $1, %esi - movl $10, %edi - call calloc@PLT - movq $0, (%rbx) - movq %rax, 16(%rbx) - addq $8, %rsp - .cfi_remember_state - .cfi_def_cfa_offset 24 - movq %rbx, %rax - popq %rbx - .cfi_def_cfa_offset 16 - popq %rbp - .cfi_def_cfa_offset 8 - ret - .p2align 4,,10 - .p2align 3 -.L17: - .cfi_restore_state - movq %rbp, %rdi - call strlen@PLT - movq %rbp, %rdi - movq %rax, (%rbx) - call strlen@PLT - movl $1, %esi - leaq (%rax,%rax), %rdi - movq %rdi, 8(%rbx) - call calloc@PLT - movq %rax, 16(%rbx) - movq %rax, %rdi - testq %rax, %rax - je .L25 -.L19: - movq %rbp, %rsi - call strcpy@PLT - addq $8, %rsp - .cfi_remember_state - .cfi_def_cfa_offset 24 - movq %rbx, %rax - popq %rbx - .cfi_def_cfa_offset 16 - popq %rbp - .cfi_def_cfa_offset 8 - ret -.L24: - .cfi_restore_state - leaq .LC0(%rip), %rdi - call die@PLT - jmp .L15 -.L25: - leaq .LC1(%rip), %rdi - call die@PLT - movq 16(%rbx), %rdi - jmp .L19 - .cfi_endproc -.LFE12: - .size string_copy, .-string_copy - .section .rodata.str1.1 -.LC2: - .string "realloc on realloc_zero" - .text - .p2align 4 - .globl realloc_zero - .type realloc_zero, @function -realloc_zero: -.LFB13: - .cfi_startproc - pushq %r12 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - movq %rsi, %r12 - movq %rdx, %rsi - pushq %rbp - .cfi_def_cfa_offset 24 - .cfi_offset 6, -24 - pushq %rbx - .cfi_def_cfa_offset 32 - .cfi_offset 3, -32 - movq %rdx, %rbx - call realloc@PLT - movq %rax, %rbp - testq %rax, %rax - je .L30 - cmpq %rbx, %r12 - jb .L31 -.L26: - movq %rbp, %rax - popq %rbx - .cfi_remember_state - .cfi_def_cfa_offset 24 - popq %rbp - .cfi_def_cfa_offset 16 - popq %r12 - .cfi_def_cfa_offset 8 - ret - .p2align 4,,10 - .p2align 3 -.L31: - .cfi_restore_state - subq %r12, %rbx - leaq (%rax,%r12), %rdi - xorl %esi, %esi - movq %rbx, %rdx - call memset@PLT - movq %rbp, %rax - popq %rbx - .cfi_remember_state - .cfi_def_cfa_offset 24 - popq %rbp - .cfi_def_cfa_offset 16 - popq %r12 - .cfi_def_cfa_offset 8 - ret -.L30: - .cfi_restore_state - leaq .LC2(%rip), %rdi - call die@PLT - jmp .L26 - .cfi_endproc -.LFE13: - .size realloc_zero, .-realloc_zero - .p2align 4 - .globl string_concat - .type string_concat, @function -string_concat: -.LFB14: - .cfi_startproc - pushq %r15 - .cfi_def_cfa_offset 16 - .cfi_offset 15, -16 - pushq %r14 - .cfi_def_cfa_offset 24 - .cfi_offset 14, -24 - pushq %r13 - .cfi_def_cfa_offset 32 - .cfi_offset 13, -32 - pushq %r12 - .cfi_def_cfa_offset 40 - .cfi_offset 12, -40 - pushq %rbp - .cfi_def_cfa_offset 48 - .cfi_offset 6, -48 - pushq %rbx - .cfi_def_cfa_offset 56 - .cfi_offset 3, -56 - subq $40, %rsp - .cfi_def_cfa_offset 96 - movq %fs:40, %rax - movq %rax, 24(%rsp) - xorl %eax, %eax - cmpq $0, (%rsi) - je .L32 - movq %rdi, %rbx - movq %rsi, %r15 - leaq 22(%rsp), %r13 - xorl %ebp, %ebp - jmp .L33 - .p2align 4,,10 - .p2align 3 -.L34: - addq $1, %rax - movq %r13, %rsi - movq %r12, %rdi - addq $1, %rbp - movq %rax, (%rbx) - call strcat@PLT - cmpq (%r15), %rbp - jnb .L32 -.L33: - movq 16(%r15), %rax - movq 8(%rbx), %rdi - movb $0, 23(%rsp) - movq 16(%rbx), %r12 - movzbl (%rax,%rbp), %eax - leaq -1(%rdi), %rdx - movb %al, 22(%rsp) - movq (%rbx), %rax - cmpq %rdx, %rax - jb .L34 - leaq (%rdi,%rdi), %rdx - movslq %edi, %r14 - movq %r12, %rdi - movq %rdx, 8(%rbx) - movq %rdx, %rsi - movq %rdx, 8(%rsp) - call realloc@PLT - movq 8(%rsp), %rdx - testq %rax, %rax - movq %rax, %r12 - je .L43 - cmpq %rdx, %r14 - jb .L44 -.L36: - movq %r12, 16(%rbx) - movq (%rbx), %rax - jmp .L34 - .p2align 4,,10 - .p2align 3 -.L32: - movq 24(%rsp), %rax - subq %fs:40, %rax - jne .L45 - addq $40, %rsp - .cfi_remember_state - .cfi_def_cfa_offset 56 - popq %rbx - .cfi_def_cfa_offset 48 - popq %rbp - .cfi_def_cfa_offset 40 - popq %r12 - .cfi_def_cfa_offset 32 - popq %r13 - .cfi_def_cfa_offset 24 - popq %r14 - .cfi_def_cfa_offset 16 - popq %r15 - .cfi_def_cfa_offset 8 - ret - .p2align 4,,10 - .p2align 3 -.L44: - .cfi_restore_state - subq %r14, %rdx - leaq (%rax,%r14), %rdi - xorl %esi, %esi - call memset@PLT - jmp .L36 -.L43: - leaq .LC2(%rip), %rdi - call die@PLT - jmp .L36 -.L45: - call __stack_chk_fail@PLT - .cfi_endproc -.LFE14: - .size string_concat, .-string_concat - .p2align 4 - .globl string_append - .type string_append, @function -string_append: -.LFB15: - .cfi_startproc - pushq %r13 - .cfi_def_cfa_offset 16 - .cfi_offset 13, -16 - pushq %r12 - .cfi_def_cfa_offset 24 - .cfi_offset 12, -24 - pushq %rbp - .cfi_def_cfa_offset 32 - .cfi_offset 6, -32 - pushq %rbx - .cfi_def_cfa_offset 40 - .cfi_offset 3, -40 - movq %rdi, %rbx - subq $24, %rsp - .cfi_def_cfa_offset 64 - movq 8(%rdi), %rdi - movq 16(%rbx), %rbp - movq %fs:40, %rax - movq %rax, 8(%rsp) - xorl %eax, %eax - movq (%rbx), %rax - movb %sil, 6(%rsp) - leaq -1(%rdi), %rdx - movb $0, 7(%rsp) - cmpq %rdx, %rax - jnb .L52 -.L47: - addq $1, %rax - leaq 6(%rsp), %rsi - movq %rbp, %rdi - movq %rax, (%rbx) - call strcat@PLT - movq 8(%rsp), %rax - subq %fs:40, %rax - jne .L53 - addq $24, %rsp - .cfi_remember_state - .cfi_def_cfa_offset 40 - popq %rbx - .cfi_def_cfa_offset 32 - popq %rbp - .cfi_def_cfa_offset 24 - popq %r12 - .cfi_def_cfa_offset 16 - popq %r13 - .cfi_def_cfa_offset 8 - ret - .p2align 4,,10 - .p2align 3 -.L52: - .cfi_restore_state - leaq (%rdi,%rdi), %r13 - movslq %edi, %r12 - movq %rbp, %rdi - movq %r13, 8(%rbx) - movq %r13, %rsi - call realloc@PLT - movq %rax, %rbp - testq %rax, %rax - je .L54 - cmpq %r13, %r12 - jb .L55 -.L49: - movq %rbp, 16(%rbx) - movq (%rbx), %rax - jmp .L47 - .p2align 4,,10 - .p2align 3 -.L55: - movq %r13, %rdx - leaq (%rax,%r12), %rdi - xorl %esi, %esi - subq %r12, %rdx - call memset@PLT - jmp .L49 -.L53: - call __stack_chk_fail@PLT -.L54: - leaq .LC2(%rip), %rdi - call die@PLT - jmp .L49 - .cfi_endproc -.LFE15: - .size string_append, .-string_append - .p2align 4 - .globl string_free - .type string_free, @function -string_free: -.LFB16: - .cfi_startproc - pushq %rbx - .cfi_def_cfa_offset 16 - .cfi_offset 3, -16 - movq %rdi, %rbx - movq 16(%rdi), %rdi - call free@PLT - movq %rbx, %rdi - popq %rbx - .cfi_def_cfa_offset 8 - jmp free@PLT - .cfi_endproc -.LFE16: - .size string_free, .-string_free - .ident "GCC: (GNU) 13.2.1 20230801" - .section .note.GNU-stack,"",@progbits diff --git a/build/builtins.i b/build/builtins.i deleted file mode 100644 index f7275a1..0000000 --- a/build/builtins.i +++ /dev/null @@ -1,5096 +0,0 @@ -# 0 "src/builtins.c" -# 0 "" -# 0 "" -# 1 "/usr/include/stdc-predef.h" 1 3 4 -# 0 "" 2 -# 1 "src/builtins.c" -# 1 "include/builtins.h" 1 - - -# 1 "include/stem.h" 1 - - -# 1 "include/better_string.h" 1 - - -# 1 "/usr/include/stdlib.h" 1 3 4 -# 26 "/usr/include/stdlib.h" 3 4 -# 1 "/usr/include/bits/libc-header-start.h" 1 3 4 -# 33 "/usr/include/bits/libc-header-start.h" 3 4 -# 1 "/usr/include/features.h" 1 3 4 -# 394 "/usr/include/features.h" 3 4 -# 1 "/usr/include/features-time64.h" 1 3 4 -# 20 "/usr/include/features-time64.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 21 "/usr/include/features-time64.h" 2 3 4 -# 1 "/usr/include/bits/timesize.h" 1 3 4 -# 19 "/usr/include/bits/timesize.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 20 "/usr/include/bits/timesize.h" 2 3 4 -# 22 "/usr/include/features-time64.h" 2 3 4 -# 395 "/usr/include/features.h" 2 3 4 -# 503 "/usr/include/features.h" 3 4 -# 1 "/usr/include/sys/cdefs.h" 1 3 4 -# 576 "/usr/include/sys/cdefs.h" 3 4 -# 1 "/usr/include/bits/wordsize.h" 1 3 4 -# 577 "/usr/include/sys/cdefs.h" 2 3 4 -# 1 "/usr