xdbe replaced with more generic pixmap based buffering but there are 3 major bugs:
[monky] / src / user.c
index c02a240..6af54f4 100644 (file)
@@ -10,7 +10,7 @@
  * Please see COPYING for details
  *
  * Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
- * Copyright (c) 2005-2009 Brenden Matthews, Philip Kovacs, et. al.
+ * Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al.
  *   (see AUTHORS)
  * All rights reserved.
  *
  *
  */
 
-#include <logging.h>
 #include <pwd.h>
+#include <grp.h>
 #include <errno.h>
 #include "conky.h"
+#include "logging.h"
 
 void print_uid_name(struct text_object *obj, char *p, int p_max_size) {
        struct passwd *pw;
@@ -51,3 +52,22 @@ void print_uid_name(struct text_object *obj, char *p, int p_max_size) {
                NORM_ERR("$uid_name didn't receive a uid as argument")
        }
 }
+
+void print_gid_name(struct text_object *obj, char *p, int p_max_size) {
+       struct group *grp;
+       gid_t gid;
+       char* firstinvalid;
+
+       errno = 0;
+       gid = strtol(obj->data.s, &firstinvalid, 10);
+       if (errno == 0 && obj->data.s != firstinvalid) {
+               grp = getgrgid(gid);
+               if(grp != NULL) {
+                       snprintf(p, p_max_size, "%s", grp->gr_name);
+               } else {
+                       NORM_ERR("The gid %d doesn't exist", gid)
+               }
+       } else {
+               NORM_ERR("$gid_name didn't receive a gid as argument")
+       }
+}