diff options
Diffstat (limited to 'includes/hardinfo.h')
-rw-r--r-- | includes/hardinfo.h | 96 |
1 files changed, 74 insertions, 22 deletions
diff --git a/includes/hardinfo.h b/includes/hardinfo.h index 637aa1fd..872a29fc 100644 --- a/includes/hardinfo.h +++ b/includes/hardinfo.h @@ -1,10 +1,10 @@ /* * HardInfo - Displays System Information - * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org> + * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.br> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. + * the Free Software Foundation, version 2 or later. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,14 +19,19 @@ #ifndef __HARDINFO_H__ #define __HARDINFO_H__ +#include <stdio.h> +#include <string.h> +#include <ctype.h> +#include <unistd.h> #include <gtk/gtk.h> #include "config.h" #include "shell.h" #include "vendor.h" #include "gettext.h" #include "info.h" +#include "format_early.h" -#define HARDINFO_COPYRIGHT_LATEST_YEAR 2017 +#define HARDINFO2_COPYRIGHT_LATEST_YEAR 2024 #ifndef LOCALEDIR #define LOCALEDIR "/usr/share/locale" @@ -36,6 +41,7 @@ typedef enum { MODULE_FLAG_NONE = 0, MODULE_FLAG_NO_REMOTE = 1<<0, MODULE_FLAG_HAS_HELP = 1<<1, + MODULE_FLAG_HIDE = 1<<2, } ModuleEntryFlags; typedef struct _ModuleEntry ModuleEntry; @@ -45,16 +51,29 @@ typedef struct _ProgramParameters ProgramParameters; struct _ProgramParameters { gboolean create_report; + gboolean force_all_details; /* for create_report, include any "moreinfo" that exists for any item */ gboolean show_version; gboolean gui_running; gboolean list_modules; gboolean autoload_deps; - gboolean run_xmlrpc_server; + gboolean skip_benchmarks; + gboolean quiet; + + /* + * OK to use the common parts of HTML(4.0) and Pango Markup + * in the value part of a key/value. + * Including the (b,big,i,s,sub,sup,small,tt,u) tags. + * https://developer.gnome.org/pango/stable/PangoMarkupFormat.html + */ + gboolean markup_ok; + int fmt_opts; gint report_format; + gint max_bench_results; gchar **use_modules; gchar *run_benchmark; + gchar *bench_user_note; gchar *result_format; gchar *path_lib; gchar *path_data; @@ -84,11 +103,11 @@ struct _ModuleAbout { }; /* String utility functions */ -inline void remove_quotes(gchar *str); -inline char *strend(gchar *str, gchar chr); -inline void remove_linefeed(gchar *str); -gchar *strreplacechr(gchar *string, gchar *replace, gchar new_char); -gchar *strreplace(gchar *string, gchar *replace, gchar *replacement); +void remove_quotes(gchar *str); +char *strend(gchar *str, gchar chr); +void remove_linefeed(gchar *str); +gchar *strreplacechr(gchar *string, gchar *replace, gchar new_char); +gchar *strreplace(gchar *string, gchar *replace, gchar *replacement); /* Widget utility functions */ void widget_set_cursor(GtkWidget *widget, GdkCursorType cursor_type); @@ -102,25 +121,24 @@ gchar *file_chooser_build_filename(GtkWidget *chooser, gchar *extension); gpointer file_types_get_data_by_name(FileTypes *file_types, gchar *name); /* Misc utility functions */ -#if RELEASE == 1 -gpointer idle_free(gpointer ptr); -#else -gpointer __idle_free(gpointer ptr, gchar *f, gint l); -#define idle_free(p) __idle_free(p, __FILE__, __LINE__) -#endif /* RELEASE == 1 */ +#if !(RELEASE == 1) +#define DEBUG_AUTO_FREE 2 +#endif +#include "auto_free.h" +#define idle_free(ptr) auto_free(ptr) gchar *find_program(gchar *program_name); -inline gchar *size_human_readable(gfloat size); +gchar *size_human_readable(gfloat size); void nonblock_sleep(guint msec); -void open_url(gchar *url); GSList *modules_get_list(void); GSList *modules_load_selected(void); GSList *modules_load_all(void); void module_unload_all(void); -ModuleAbout *module_get_about(ShellModule *module); +const ModuleAbout *module_get_about(ShellModule *module); gchar *seconds_to_string(unsigned int seconds); -gchar *h_strdup_cprintf(const gchar *format, gchar *source, ...); +gchar *h_strdup_cprintf(const gchar *format, gchar *source, ...) + __attribute__((format(gnu_printf, 1, 3))); gchar *h_strconcat(gchar *string1, ...); void h_hash_table_remove_all (GHashTable *hash_table); @@ -146,9 +164,10 @@ gchar *module_call_method(gchar *method); gchar *module_call_method_param(gchar * method, gchar * parameter); /* Sysfs stuff */ -gfloat h_sysfs_read_float(gchar *endpoint, gchar *entry); -gint h_sysfs_read_int(gchar *endpoint, gchar *entry); -gchar *h_sysfs_read_string(gchar *endpoint, gchar *entry); +gfloat h_sysfs_read_float(const gchar *endpoint, const gchar *entry); +gint h_sysfs_read_int(const gchar *endpoint, const gchar *entry); +gint h_sysfs_read_hex(const gchar *endpoint, const gchar *entry); +gchar *h_sysfs_read_string(const gchar *endpoint, const gchar *entry); #define SCAN_START() static gboolean scanned = FALSE; if (reload) scanned = FALSE; if (scanned) return; #define SCAN_END() scanned = TRUE; @@ -171,6 +190,11 @@ gchar *moreinfo_lookup(gchar *key); gboolean g_strv_contains(const gchar * const * strv, const gchar *str); #endif +/* in gg_key_file_parse_string_as_value.c */ +gchar * +gg_key_file_parse_string_as_value (const gchar *string, const gchar list_separator); + +gchar *hardinfo_clean_grpname(const gchar *v, int replacing); /* Hardinfo labels that have # are truncated and/or hidden. * Labels can't have $ because that is the delimiter in * moreinfo. @@ -179,4 +203,32 @@ gchar *hardinfo_clean_label(const gchar *v, int replacing); /* hardinfo uses the values as {ht,x}ml, apparently */ gchar *hardinfo_clean_value(const gchar *v, int replacing); +/* Same as hardinfo_spawn_command_line_sync(), but calls shell_status_pulse() + * before. */ +gboolean hardinfo_spawn_command_line_sync(const gchar *command_line, + gchar **standard_output, + gchar **standard_error, + gint *exit_status, + GError **error); + +/* a marker in text to point out problems, using markup where possible */ +const char *problem_marker(); + +/* a version of g_strescape() that allows escaping extra characters. + * use with g_strcompress() as normal. */ +gchar * +gg_strescape (const gchar *source, + const gchar *exceptions, + const gchar *extra); + +/* hinote helpers */ +#define note_max_len 512 +#define note_printf(note_buff, fmt, ...) \ + snprintf((note_buff) + strlen(note_buff), note_max_len - strlen(note_buff) - 1, \ + fmt, ##__VA_ARGS__) +#define note_print(note_buff, str) note_printf((note_buff), "%s", str) +gboolean note_cond_bullet(gboolean cond, gchar *note_buff, const gchar *desc_str); +gboolean note_require_tool(const gchar *tool, gchar *note_buff, const gchar *desc_str); +int cpu_procs_cores_threads(int *p, int *c, int *t); + #endif /* __HARDINFO_H__ */ |