TEXTCLIENT: getutline also belongs to the textclient. Tnx to Lightspeed for pointing...
[citadel.git] / textclient / src / getutline.c
diff --git a/textclient/src/getutline.c b/textclient/src/getutline.c
new file mode 100644 (file)
index 0000000..7c6b78e
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * getutline.c: not-quite-compatible replacement for getutline(3)
+ * by nathan bryant, feb 1999
+ */
+
+#include "sysdep.h"
+#ifdef HAVE_UTMP_H
+#include <stdio.h>
+#include <sys/types.h>
+#include <utmp.h>
+#ifdef HAVE_PATHS_H
+#include <paths.h>
+#endif
+#include <string.h>
+
+struct utmp *getutline(struct utmp *ut)
+{
+  static struct utmp retval;
+  FILE *utmp;
+
+#ifdef UTMP_FILE
+  if ((utmp = fopen(UTMP_FILE, "rb")) == NULL)
+#else
+  if ((utmp = fopen(_PATH_UTMP, "rb")) == NULL)
+#endif
+    return NULL;
+
+  do
+    if (!fread(&retval, sizeof retval, 1, utmp))
+      {
+       fclose(utmp);
+       return NULL;
+      }
+  while (strcmp(ut->ut_line, retval.ut_line));
+
+  fclose(utmp);
+  return &retval;
+}
+#endif /* HAVE_UTMP_H */