Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 2fc3c478f9337a369e840b6ec2b72256 > files > 12

gnome-libs-1.4.2-22mdv2009.0.src.rpm

--- gnome-libs-1.4.2/zvt/gnome-utmp.c.biarch-utmp	2000-06-20 15:49:14.000000000 -0400
+++ gnome-libs-1.4.2/zvt/gnome-utmp.c	2003-04-08 10:51:41.000000000 -0400
@@ -204,7 +204,7 @@ update_lastlog(char* login_name, UTMP *u
     
     lseek (fd, (off_t)pwd->pw_uid * sizeof (ll), SEEK_SET);
     
-    time (&ll.ll_time);
+	ll.ll_time = time (NULL);
 
     strncpy (ll.ll_line, ut->ut_line, sizeof (ll.ll_line));
 
@@ -235,9 +235,17 @@ write_logout_record (void *data, int utm
 	strncpy (put.ut_line, ut->ut_line, sizeof (put.ut_line));
 
 #if defined(HAVE_UT_UT_TV)
-	gettimeofday ((struct timeval*) &put.ut_tv, NULL);
+    if (sizeof (put.ut_tv) == sizeof (struct timeval))
+	  gettimeofday((struct timeval *) &put.ut_tv, NULL);
+    else
+      {
+		struct timeval tv;
+		gettimeofday(&tv, NULL);
+		put.ut_tv.tv_sec = tv.tv_sec;
+		put.ut_tv.tv_usec = tv.tv_usec;
+      }
 #elif defined(HAVE_UT_UT_TIME)
-	time (&put.ut_time);
+	put.ut_time = time (NULL);
 #endif
 
 	if (utmp)
@@ -316,9 +324,17 @@ write_login_record (char *login_name, ch
 #endif
 	/* If structure has ut_tv it doesn't need ut_time */
 #if defined(HAVE_UT_UT_TV)
-	gettimeofday ((struct timeval*) &(ut->ut_tv), NULL);
+    if (sizeof (ut->ut_tv) == sizeof (struct timeval))
+	  gettimeofday((struct timeval *) &ut->ut_tv, NULL);
+    else
+      {
+		struct timeval tv;
+		gettimeofday(&tv, NULL);
+		ut->ut_tv.tv_sec = tv.tv_sec;
+		ut->ut_tv.tv_usec = tv.tv_usec;
+      }
 #elif defined(HAVE_UT_UT_TIME)
-	time (&ut->ut_time);
+	ut->ut_time = time (NULL);
 #endif
 	/* ut_ host supposed to be null terminated or len should */
 	/* be specifid in additional field. We do both :)  */