Control: retitle -1 ltrace: [p]{read,write}[v]() handling, common *64() 
functions in modern glibc, [fl]seek[o]()/ftell[o](); requisite [u]llong; 20x 
speed optimisation in default config; format %b+bin() lens and %w[f]32x; 
splice/c_f_r/sendfile[64] formatting; useful __errno_location; %config lines 
not limited to 1kB; pipe[2]() with fds; sysconf(); %m[un]map[64](); operator 
new/delete; <regex.h>; another ~10%; %*locale(); time.h functions; strto*l(); 
qsort_r()

For demo see https://github.com/neomutt/neomutt/pull/3963
From: =?utf-8?b?0L3QsNCx?= <nabijaczlew...@nabijaczleweli.xyz>
Date: Tue, 8 Aug 2023 19:52:01 +0200
Subject: *locale(); time.h functions; strto*l(); qsort_r()

---
 etc/ltrace.conf | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/etc/ltrace.conf b/etc/ltrace.conf
index bd9a111..4ffb725 100644
--- a/etc/ltrace.conf
+++ b/etc/ltrace.conf
@@ -91,6 +91,10 @@ int _IO_putc(char,file);
 
 ; locale.h
 string setlocale(enum(LC_CTYPE=0, LC_NUMERIC=1, LC_TIME=2, LC_COLLATE=3, LC_MONETARY=4, LC_MESSAGES=5, LC_ALL=6, LC_PAPER=7, LC_NAME=8, LC_ADDRESS=9, LC_TELEPHONE=10, LC_MEASUREMENT=11, LC_IDENTIFICATION=12), string);
+addr duplocale(addr);
+addr uselocale(addr);
+addr newlocale(bin(int),string,addr);
+void freelocale(addr);
 
 ; mcheck.h
 void mtrace();
@@ -229,7 +233,13 @@ int rename(string,string);
 
 ; stdlib.h
 long __strtol_internal(string,addr,int);
+llong __strtoll_internal(string,addr,int);
 ulong __strtoul_internal(string,addr,int);
+ullong __strtoull_internal(string,addr,int);
+long strtol(string,+string*,int);
+llong strtoll(string,+string*,int);
+ulong strtoul(string,+string*,int);
+ullong strtoull(string,+string*,int);
 int atexit(addr);
 addr bsearch(string, addr, ulong, ulong, addr);
 addr calloc(ulong, ulong);
@@ -241,7 +251,8 @@ int setenv(string,string,int);
 void unsetenv(string);
 addr malloc(ulong);
 void qsort(addr,ulong,ulong,addr);
-int random();
+void qsort_r(addr,ulong,ulong,addr,addr);
+long random();
 addr realloc(addr,ulong);
 addr reallocarray(addr,ulong,ulong);
 void srandom(uint);
@@ -313,12 +324,17 @@ int tcgetattr(int,addr);
 int tcsetattr(int,int,addr);
 
 ; time.h
+typedef tm = struct(int,int,int,int,int,int,int,int,int,long,string);
 string ctime(addr);
 int gettimeofday(addr, addr);
-addr gmtime(addr);
-addr localtime(addr);
-ulong strftime(+string2,ulong,string,addr);
-long time(addr);
+tm* gmtime(llong*);
+tm* localtime(llong*);
+tm* gmtime_r(llong*,addr);
+tm* localtime_r(llong*,addr);
+ulong strftime(+string2,ulong,string,tm*);
+ulong strftime_l(+string2,ulong,string,tm*,addr);
+llong time(addr);
+llong mktime(tm*);
 
 ; unistd.h
 void _exit(int);

Attachment: signature.asc
Description: PGP signature

Reply via email to