Adapt dtlogin/config/_common.ksh.src for OpenBSD:
[oweals/cde.git] / cde / programs / dtlogin / account.c
index 2783e22f25e4600c2882015abd6a6cb30e29c364..3999de3decbc1d33f47f1777989fc3b00931c1fb 100644 (file)
@@ -1,3 +1,25 @@
+/*
+ * CDE - Common Desktop Environment
+ *
+ * Copyright (c) 1993-2012, The Open Group. All rights reserved.
+ *
+ * These libraries and programs are free software; you can
+ * redistribute them and/or modify them under the terms of the GNU
+ * Lesser General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * These libraries and programs are distributed in the hope that
+ * they will be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with these librararies and programs; if not, write
+ * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+ * Floor, Boston, MA 02110-1301 USA
+ */
 /* $XConsortium: account.c /main/6 1996/10/30 11:12:13 drk $ */
 /*                                                                      *
  * (c) Copyright 1993, 1994 Hewlett-Packard Company                     *
 #endif
 
 #include       <fcntl.h>
+#if defined(__FreeBSD__) && OSMAJORVERSION > 8
+#include       <utmpx.h>
+#else
 #include       <utmp.h>
+#endif
+
 #include       <time.h>
 #include       "dm.h"
 
@@ -116,6 +143,7 @@ Account( struct display *d, char *user, char *line, pid_t pid,
 #endif /* NeedWidePrototypes */
         waitType exitcode )
 {
+#if !defined(CSRG_BASED) /* we cannot do this on BSD ... */
     struct utmp utmp;          /* local struct for new entry              */
     struct utmp *u;            /* pointer to entry in utmp file           */
     int        fd;
@@ -326,6 +354,7 @@ Account( struct display *d, char *user, char *line, pid_t pid,
 #endif
 
 #endif /* !sun */
+#endif /* !CSRG_BASED */
 }
 
 
@@ -347,6 +376,7 @@ UtmpIdOpen( char *utmpId )
     struct utmp *u;            /* pointer to entry in utmp file           */
     int    status = 1;         /* return code                             */
 
+#if !defined(CSRG_BASED)
     while ( (u = getutent()) != NULL ) {
 
        if ( (strncmp(u->ut_id, utmpId, 4) == 0 ) &&
@@ -358,6 +388,7 @@ UtmpIdOpen( char *utmpId )
     }
     
     endutent();
+#endif
     return (status);
 }