+static void conky_user_time(char *ptr)
+{
+ time_t real, diff;
+ static time_t log_in = 0;
+ char buf[BUFLEN] = "";
+
+ if (log_in == 0) {
+ struct utmp *usr, line;
+ char *real_tty_path = NULL;
+
+ real_tty_path = ttyname(0);
+ if (real_tty_path == NULL ) {
+ return;
+ }
+
+ real_tty_path += 5; /* Remove "/dev/". */
+
+ setutent();
+ strcpy(line.ut_line, real_tty_path);
+ usr = getutline(&line);
+ if (usr == NULL ) {
+ return;
+ }
+
+ log_in = usr->ut_time;
+ }
+ time(&real);
+ diff = difftime(real, log_in);
+ format_seconds(buf, BUFLEN, diff);
+ strncpy(ptr, buf, BUFLEN-1);
+}