make intense use of const keyword
authorPhil <n0-1@users.sourceforge.net>
Sat, 29 Mar 2008 03:45:36 +0000 (03:45 +0000)
committerPhil <n0-1@users.sourceforge.net>
Sat, 29 Mar 2008 03:45:36 +0000 (03:45 +0000)
* accidential writes to const char * are being detected
  at compile time
* also clean up casting at some places

git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1059 7f574dfc-610e-0410-a909-a81674777703

src/conky.c
src/conky.h
src/libmpdclient.c
src/libmpdclient.h
src/linux.c
src/openbsd.c
src/prss.c
src/smapi.c
src/smapi.h
src/top.c

index 9ab3a18..655fdd0 100644 (file)
@@ -127,7 +127,7 @@ static void print_version(void)
        exit(0);
 }
 
-static char *suffixes[] = { "B", "kiB", "MiB", "GiB", "TiB", "PiB", "" };
+static const char *suffixes[] = { "B", "kiB", "MiB", "GiB", "TiB", "PiB", "" };
 
 #ifdef X11
 
@@ -476,10 +476,10 @@ static inline int calc_text_width(const char *s, int l)
 
                if (utf8_mode) {
                        XftTextExtentsUtf8(display, fonts[selected_font].xftfont,
-                               (FcChar8 *) s, l, &gi);
+                               (const FcChar8 *) s, l, &gi);
                } else {
                        XftTextExtents8(display, fonts[selected_font].xftfont,
-                               (FcChar8 *) s, l, &gi);
+                               (const FcChar8 *) s, l, &gi);
                }
                return gi.xOff;
        } else
@@ -969,8 +969,8 @@ static void convert_escapes(char *buf)
 /* Prints anything normally printed with snprintf according to the current value
  * of use_spacer.  Actually slightly more flexible than snprintf, as you can
  * safely specify the destination buffer as one of your inputs.  */
-static int spaced_print(char *buf, int size, char *format, int width,
-               char *func_name, ...) {
+static int spaced_print(char *buf, int size, const char *format, int width,
+               const char *func_name, ...) {
        int len;
        va_list argp;
        if (size < 1) {
@@ -1004,9 +1004,9 @@ static int spaced_print(char *buf, int size, char *format, int width,
 }
 
 /* converts from bytes to human readable format (k, M, G, T) */
-static void human_readable(long long num, char *buf, int size, char *func_name)
+static void human_readable(long long num, char *buf, int size, const char *func_name)
 {
-       char **suffix = suffixes;
+       const char **suffix = suffixes;
        float fnum;
        int precision, len;
        static const int WIDTH = 10, SHORT_WIDTH = 8;
@@ -3818,11 +3818,14 @@ static struct text_object *create_plain_text(const char *s)
        return obj;
 }
 
-static struct text_object_list *extract_variable_text_internal(const char *p)
+static struct text_object_list *extract_variable_text_internal(const char *const_p)
 {
        struct text_object_list *retval;
        struct text_object *obj;
-       const char *s = p;
+       char *p, *s;
+
+       p = strdup(const_p);
+       s = p;
 
        retval = malloc(sizeof(struct text_object_list));
        memset(retval, 0, sizeof(struct text_object_list));
@@ -3835,7 +3838,7 @@ static struct text_object_list *extract_variable_text_internal(const char *p)
                        line++;
                }
                if (*p == '$') {
-                       *(char *) p = '\0';
+                       *p = '\0';
                        obj = create_plain_text(s);
                        if (obj != NULL) {
                                // allocate memory for the object
@@ -3847,7 +3850,7 @@ static struct text_object_list *extract_variable_text_internal(const char *p)
                                        sizeof(struct text_object));
                                free(obj);
                        }
-                       *(char *) p = '$';
+                       *p = '$';
                        p++;
                        s = p;
 
@@ -3896,7 +3899,7 @@ static struct text_object_list *extract_variable_text_internal(const char *p)
 
                                /* if variable wasn't found in environment, use some special */
                                if (!var) {
-                                       char *p;
+                                       char *tmp_p;
                                        char *arg = 0;
 
                                        /* split arg */
@@ -3913,10 +3916,10 @@ static struct text_object_list *extract_variable_text_internal(const char *p)
                                        }
 
                                        /* lowercase variable name */
-                                       p = buf;
-                                       while (*p) {
-                                               *p = tolower(*p);
-                                               p++;
+                                       tmp_p = buf;
+                                       while (*tmp_p) {
+                                               *tmp_p = tolower(*tmp_p);
+                                               tmp_p++;
                                        }
 
                                        // create new object
@@ -3966,6 +3969,7 @@ static struct text_object_list *extract_variable_text_internal(const char *p)
                ERR("one or more $endif's are missing");
        }
 
+       free(p);
        return retval;
 }
 
@@ -6507,10 +6511,10 @@ static void draw_string(const char *s)
                c2.color.alpha = fonts[selected_font].font_alpha;
                if (utf8_mode) {
                        XftDrawStringUtf8(window.xftdraw, &c2, fonts[selected_font].xftfont,
-                               cur_x, cur_y, (XftChar8 *) s, strlen(s));
+                               cur_x, cur_y, (const XftChar8 *) s, strlen(s));
                } else {
                        XftDrawString8(window.xftdraw, &c2, fonts[selected_font].xftfont,
-                               cur_x, cur_y, (XftChar8 *) s, strlen(s));
+                               cur_x, cur_y, (const XftChar8 *) s, strlen(s));
                }
        } else
 #endif
index e4a8746..1669b57 100644 (file)
@@ -548,9 +548,9 @@ void update_cpu_usage(void);
 void update_total_processes(void);
 void update_running_processes(void);
 void update_i8k(void);
-char get_freq(char *, size_t, char *, int, unsigned int);
-void get_freq_dynamic(char *, size_t, char *, int);
-char get_voltage(char *, size_t, char *, int, unsigned int);   /* ptarjan */
+char get_freq(char *, size_t, const char *, int, unsigned int);
+void get_freq_dynamic(char *, size_t, const char *, int);
+char get_voltage(char *, size_t, const char *, int, unsigned int);     /* ptarjan */
 void update_load_average(void);
 int interface_up(const char *dev);
 char *get_ioscheduler(char *);
@@ -584,7 +584,7 @@ void get_ibm_acpi_fan(char *buf, size_t client_buffer_size);
 void get_ibm_acpi_temps(void);
 void get_ibm_acpi_volume(char *buf, size_t client_buffer_size);
 void get_ibm_acpi_brightness(char *buf, size_t client_buffer_size);
-char *get_disk_protect_queue(char *disk);
+const char *get_disk_protect_queue(const char *);
 void get_cpu_count(void);
 
 struct ibm_acpi_struct {
index 47b5021..67bfbb0 100644 (file)
@@ -238,7 +238,7 @@ static int mpd_connect(mpd_Connection *connection, const char *host, int port,
 }
 #endif /* !MPD_HAVE_GAI */
 
-char *mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES] = {
+const char *mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES] = {
        "Artist",
        "Album",
        "Title",
@@ -435,12 +435,12 @@ void mpd_closeConnection(mpd_Connection *connection)
        WSACleanup();
 }
 
-static void mpd_executeCommand(mpd_Connection *connection, char *command)
+static void mpd_executeCommand(mpd_Connection *connection, const char *command)
 {
        int ret;
        struct timeval tv;
        fd_set fds;
-       char *commandPtr = command;
+       const char *commandPtr = command;
        int commandLen = strlen(command);
 
        if (!connection->doneProcessing && !connection->commandList) {
@@ -1945,7 +1945,7 @@ void mpd_startPlaylistSearch(mpd_Connection *connection, int exact)
 
 void mpd_startFieldSearch(mpd_Connection *connection, int type)
 {
-       char *strtype;
+       const char *strtype;
        int len;
 
        if (connection->request) {
@@ -1972,7 +1972,7 @@ void mpd_startFieldSearch(mpd_Connection *connection, int type)
 void mpd_addConstraintSearch(mpd_Connection *connection, int type,
                const char *name)
 {
-       char *strtype;
+       const char *strtype;
        char *arg;
        int len;
        char *string;
index bdc0447..44b0282 100644 (file)
@@ -87,7 +87,7 @@ typedef enum mpd_TagItems {
        MPD_TAG_NUM_OF_ITEM_TYPES
 } mpd_TagItems;
 
-extern char *mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES];
+extern const char *mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES];
 
 /* internal stuff don't touch this struct */
 typedef struct _mpd_ReturnElement {
index 5475525..e290818 100644 (file)
@@ -610,7 +610,7 @@ inline static void update_stat(void)
        unsigned int i;
        unsigned int index;
        double curtmp;
-       char *stat_template = NULL;
+       const char *stat_template = NULL;
        unsigned int malloc_cpu_size = 0;
 
        /* add check for !info.cpu_usage since that mem is freed on a SIGUSR1 */
@@ -1042,7 +1042,7 @@ __inline__ unsigned long long int rdtsc(void)
 
 /* return system frequency in MHz (use divisor=1) or GHz (use divisor=1000) */
 void get_freq_dynamic(char *p_client_buffer, size_t client_buffer_size,
-               char *p_format, int divisor)
+               const char *p_format, int divisor)
 {
 #if  defined(__i386) || defined(__x86_64)
        struct timezone tz;
@@ -1086,8 +1086,8 @@ void get_freq_dynamic(char *p_client_buffer, size_t client_buffer_size,
 #define CPUFREQ_POSTFIX "cpufreq/scaling_cur_freq"
 
 /* return system frequency in MHz (use divisor=1) or GHz (use divisor=1000) */
-char get_freq(char *p_client_buffer, size_t client_buffer_size, char *p_format,
-               int divisor, unsigned int cpu)
+char get_freq(char *p_client_buffer, size_t client_buffer_size,
+               const char *p_format, int divisor, unsigned int cpu)
 {
        FILE *f;
        static int rep = 0;
@@ -1185,7 +1185,7 @@ char get_freq(char *p_client_buffer, size_t client_buffer_size, char *p_format,
 
 /* return cpu voltage in mV (use divisor=1) or V (use divisor=1000) */
 char get_voltage(char *p_client_buffer, size_t client_buffer_size,
-               char *p_format, int divisor, unsigned int cpu)
+               const char *p_format, int divisor, unsigned int cpu)
 {
        FILE *f;
        char s[256];
@@ -2429,7 +2429,7 @@ void update_entropy(void)
        info.mask |= (1 << INFO_ENTROPY);
 }
 
-char *get_disk_protect_queue(char *disk)
+const char *get_disk_protect_queue(const char *disk)
 {
        FILE *fp;
        char path[128];
index 6685858..2c18b14 100644 (file)
@@ -545,7 +545,7 @@ __inline__ unsigned long long int rdtsc()
 
 /* return system frequency in MHz (use divisor=1) or GHz (use divisor=1000) */
 void get_freq_dynamic(char *p_client_buffer, size_t client_buffer_size,
-               char *p_format, int divisor)
+               const char *p_format, int divisor)
 {
 #if  defined(__i386) || defined(__x86_64)
        struct timezone tz;
@@ -575,8 +575,8 @@ void get_freq_dynamic(char *p_client_buffer, size_t client_buffer_size,
 }
 
 /* void */
-char get_freq(char *p_client_buffer, size_t client_buffer_size, char *p_format,
-               int divisor, unsigned int cpu)
+char get_freq(char *p_client_buffer, size_t client_buffer_size,
+               const char *p_format, int divisor, unsigned int cpu)
 {
        int freq = cpu;
        int mib[2] = { CTL_HW, HW_CPUSPEED };
index a4e1fa8..5c7d191 100644 (file)
@@ -78,6 +78,8 @@ static inline void read_item(PRSS_Item *res, xmlNodePtr data)
 
        res->title = res->link = res->description = NULL;
        for (; data; data = data->next) {
+               const char *name;
+
                if (data->type != XML_ELEMENT_NODE) {
                        continue;
                }
@@ -87,23 +89,26 @@ static inline void read_item(PRSS_Item *res, xmlNodePtr data)
                        continue;
                }
 
-               if (!strcasecmp((char *) data->name, "title")) {
+               name = (const char *)data->name;
+               if (!strcasecmp(name, "title")) {
                        res->title = (char *) child->content;
-               } else if (!strcasecmp((char *) data->name, "link")) {
+               } else if (!strcasecmp(name, "link")) {
                        res->link = (char *) child->content;
-               } else if (!strcasecmp((char *) data->name, "description")) {
+               } else if (!strcasecmp(name, "description")) {
                        res->description = (char *) child->content;
-               } else if (!strcasecmp((char *) data->name, "category")) {
+               } else if (!strcasecmp(name, "category")) {
                        res->category = (char *) child->content;
-               } else if (!strcasecmp((char *) data->name, "pubDate")) {
+               } else if (!strcasecmp(name, "pubDate")) {
                        res->pubdate = (char *) child->content;
-               } else if (!strcasecmp((char *) data->name, "guid")) {
+               } else if (!strcasecmp(name, "guid")) {
                        res->guid = (char *) child->content;
                }
        }
 }
 static inline void read_element(PRSS *res, xmlNodePtr n)
 {
+       const char *name;
+
        if (n->type != XML_ELEMENT_NODE) {
                return;
        }
@@ -113,31 +118,32 @@ static inline void read_element(PRSS *res, xmlNodePtr n)
                return;
        }
 
-       if (!strcasecmp((char *) n->name, "title")) {
+       name = (const char *)n->name;
+       if (!strcasecmp(name, "title")) {
                res->title = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "link")) {
+       } else if (!strcasecmp(name, "link")) {
                res->link = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "description")) {
+       } else if (!strcasecmp(name, "description")) {
                res->description = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "language")) {
+       } else if (!strcasecmp(name, "language")) {
                res->language = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "pubDate")) {
+       } else if (!strcasecmp(name, "pubDate")) {
                res->pubdate = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "lastBuildDate")) {
+       } else if (!strcasecmp(name, "lastBuildDate")) {
                res->lastbuilddate = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "generator")) {
+       } else if (!strcasecmp(name, "generator")) {
                res->generator = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "docs")) {
+       } else if (!strcasecmp(name, "docs")) {
                res->docs = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "managingEditor")) {
+       } else if (!strcasecmp(name, "managingEditor")) {
                res->managingeditor = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "webMaster")) {
+       } else if (!strcasecmp(name, "webMaster")) {
                res->webmaster = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "copyright")) {
+       } else if (!strcasecmp(name, "copyright")) {
                res->copyright = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "ttl")) {
+       } else if (!strcasecmp(name, "ttl")) {
                res->ttl = (char *) child->content;
-       } else if (!strcasecmp((char *) n->name, "item")) {
+       } else if (!strcasecmp(name, "item")) {
                read_item(&res->items[res->item_count++], n->children);
        }
 }
@@ -147,7 +153,7 @@ static inline int parse_rss_2_0(PRSS *res, xmlNodePtr root)
        xmlNodePtr channel = root->children;
 
        while (channel && (channel->type != XML_ELEMENT_NODE
-                       || strcmp((char *) channel->name, "channel"))) {
+                       || strcmp((const char *) channel->name, "channel"))) {
                channel = channel->next;
        }
        if (!channel) {
@@ -158,7 +164,8 @@ static inline int parse_rss_2_0(PRSS *res, xmlNodePtr root)
        xmlNodePtr n;
 
        for (n = channel->children; n; n = n->next) {
-               if (n->type == XML_ELEMENT_NODE && !strcmp((char *) n->name, "item")) {
+               if (n->type == XML_ELEMENT_NODE &&
+                               !strcmp((const char *) n->name, "item")) {
                        ++items;
                }
        }
@@ -180,9 +187,9 @@ static inline int parse_rss_1_0(PRSS *res, xmlNodePtr root)
 
        for (n = root->children; n; n = n->next) {
                if (n->type == XML_ELEMENT_NODE) {
-                       if (!strcmp((char *) n->name, "item")) {
+                       if (!strcmp((const char *) n->name, "item")) {
                                ++items;
-                       } else if (!strcmp((char *) n->name, "channel")) {
+                       } else if (!strcmp((const char *) n->name, "channel")) {
                                xmlNodePtr i;
 
                                for (i = n->children; i; i = i->next) {
@@ -197,7 +204,8 @@ static inline int parse_rss_1_0(PRSS *res, xmlNodePtr root)
        res->item_count = 0;
 
        for (n = root->children; n; n = n->next) {
-               if (n->type == XML_ELEMENT_NODE && !strcmp((char *) n->name, "item")) {
+               if (n->type == XML_ELEMENT_NODE &&
+                               !strcmp((const char *) n->name, "item")) {
                        read_item(&res->items[res->item_count++], n->children);
                }
        }
@@ -222,7 +230,7 @@ PRSS *prss_parse_doc(xmlDocPtr doc)
        result->_data = doc;
        do {
                if (root->type == XML_ELEMENT_NODE) {
-                       if (!strcmp((char *) root->name, "RDF")) {
+                       if (!strcmp((const char *) root->name, "RDF")) {
                                // RSS 1.0 document
                                if (!parse_rss_1_0(result, root)) {
                                        free(result);
@@ -230,7 +238,7 @@ PRSS *prss_parse_doc(xmlDocPtr doc)
                                        return NULL;
                                }
                                return result;
-                       } else if (!strcmp((char *) root->name, "rss")) {
+                       } else if (!strcmp((const char *) root->name, "rss")) {
                                // RSS 2.0 or <1.0 document
                                if (!parse_rss_2_0(result, root)) {
                                        free(result);
index 7b97f13..2b1e608 100644 (file)
@@ -42,7 +42,7 @@ int smapi_bat_installed(int idx)
 
 }
 
-char *smapi_read_str(char *path)
+char *smapi_read_str(const char *path)
 {
        FILE *fp;
        char *str = NULL;
@@ -53,7 +53,7 @@ char *smapi_read_str(char *path)
        return str;
 }
 
-int smapi_read_int(char *path)
+int smapi_read_int(const char *path)
 {
        FILE *fp;
        int i = 0;
@@ -64,7 +64,7 @@ int smapi_read_int(char *path)
        return i;
 }
 
-char *smapi_get_str(char *fname)
+char *smapi_get_str(const char *fname)
 {
        char path[128];
        if(snprintf(path, 127, SYS_SMAPI_PATH "/%s", fname) < 0)
@@ -73,7 +73,7 @@ char *smapi_get_str(char *fname)
        return smapi_read_str(path);
 }
 
-char *smapi_get_bat_str(int idx, char *fname)
+char *smapi_get_bat_str(int idx, const char *fname)
 {
        char path[128];
        if(snprintf(path, 127, SYS_SMAPI_PATH "/BAT%i/%s", idx, fname) < 0)
@@ -81,7 +81,7 @@ char *smapi_get_bat_str(int idx, char *fname)
        return smapi_read_str(path);
 }
 
-int smapi_get_bat_int(int idx, char *fname)
+int smapi_get_bat_int(int idx, const char *fname)
 {
        char path[128];
        if(snprintf(path, 127, SYS_SMAPI_PATH "/BAT%i/%s", idx, fname) < 0)
@@ -89,7 +89,7 @@ int smapi_get_bat_int(int idx, char *fname)
        return smapi_read_int(path);
 }
 
-char *smapi_get_bat_val(char *args)
+char *smapi_get_bat_val(const char *args)
 {
        char fname[128];
        int idx, cnt;
@@ -106,7 +106,7 @@ char *smapi_get_bat_val(char *args)
        return smapi_get_bat_str(idx, fname);
 }
 
-char *smapi_get_val(char *args)
+char *smapi_get_val(const char *args)
 {
        char str[128];
 
index daaff8d..2ae7ecf 100644 (file)
 
 int smapi_bat_installed(int);
 
-char *smapi_read_str(char *);
-int smapi_read_int(char *);
+char *smapi_read_str(const char *);
+int smapi_read_int(const char *);
 
-char *smapi_get_str(char *);
-char *smapi_get_val(char *);
+char *smapi_get_str(const char *);
+char *smapi_get_val(const char *);
 
-char *smapi_get_bat_str(int, char *);
-int smapi_get_bat_int(int, char *);
-char *smapi_get_bat_val(char *);
+char *smapi_get_bat_str(int, const char *);
+int smapi_get_bat_int(int, const char *);
+char *smapi_get_bat_val(const char *);
index 8d757a1..4423cf9 100644 (file)
--- a/src/top.c
+++ b/src/top.c
@@ -361,7 +361,7 @@ static unsigned long long calc_cpu_total(void)
        unsigned long long irq = 0;
        unsigned long long softirq = 0;
        unsigned long long steal = 0;
-       char *template =
+       const char *template =
                KFLAG_ISSET(KFLAG_IS_LONGSTAT) ? TMPL_LONGPROC : TMPL_SHORTPROC;
 
        ps = open("/proc/stat", O_RDONLY);