diff options
author | hwspeedy <ns@bigbear.dk> | 2024-05-01 00:13:10 +0200 |
---|---|---|
committer | hwspeedy <ns@bigbear.dk> | 2024-05-01 00:13:10 +0200 |
commit | babf0dfcd68022aa5088763258e3f50bbe7e7e29 (patch) | |
tree | 0eff3a6794036f62909a05196f366003bbf361e4 /hardinfo2 | |
parent | b68e803cecdfee529544a94575073b095c4b41ba (diff) |
FIX Added strwrap function and fixed width for OS, Security & Env vars
Diffstat (limited to 'hardinfo2')
-rw-r--r-- | hardinfo2/util.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/hardinfo2/util.c b/hardinfo2/util.c index 32c93b49..0edd21c2 100644 --- a/hardinfo2/util.c +++ b/hardinfo2/util.c @@ -1347,3 +1347,36 @@ gboolean hardinfo_spawn_command_line_sync(const gchar *command_line, return g_spawn_command_line_sync(command_line, standard_output, standard_error, exit_status, error); } + + +#define MAX_STRWRAP 10000 +gchar *strwrap(const gchar *st, size_t w, gchar delimiter) +{ + gchar retst[MAX_STRWRAP]; + gchar *rst=retst; + const gchar *ist=st; + int first=1; + size_t len; + + if(!st) return NULL; + + while(((len=strlen(ist)) > 0) && (((rst-retst)+w+2)<MAX_STRWRAP)){ + if(len>w) len=w; + while((len>1) && (*(ist+len)!=0)&&(*(ist+len)!=delimiter)) len--; + if(len==1) {len=strlen(ist);if(len>w) len=w;} + if(!first) { + *rst++=13; + strncpy(rst,ist,len); + }else{ + strncpy(rst,ist,len); + } + rst+=len; + ist+=len; + if(*ist==delimiter) ist++; + if(*ist==0x20) ist++; + first=0; + } + *rst=0; + + return g_strdup(retst); +} |