aboutsummaryrefslogtreecommitdiff
path: root/hardinfo2
diff options
context:
space:
mode:
authorhwspeedy <ns@bigbear.dk>2024-05-01 00:13:10 +0200
committerhwspeedy <ns@bigbear.dk>2024-05-01 00:13:10 +0200
commitbabf0dfcd68022aa5088763258e3f50bbe7e7e29 (patch)
tree0eff3a6794036f62909a05196f366003bbf361e4 /hardinfo2
parentb68e803cecdfee529544a94575073b095c4b41ba (diff)
FIX Added strwrap function and fixed width for OS, Security & Env vars
Diffstat (limited to 'hardinfo2')
-rw-r--r--hardinfo2/util.c33
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);
+}