ports/misc/orville-write/files/patch-mesg.c
Stefan Eßer 5a1b795757 Fix build with -fno-common
While here fix one program error ("%s" format without argument).
2020-10-01 15:31:55 +00:00

159 lines
4.8 KiB
C

--- mesg.c.orig 2004-09-29 04:43:14 UTC
+++ mesg.c
@@ -19,7 +19,7 @@
char *mytty; /* my tty name in tty?? format */
long mypos; /* offset of my entry in wrttmp file */
struct wrttmp mywrt; /* my wrttmp entry */
-struct utmp myutmp; /* A tmp buffer for reading utmp entries */
+struct utmpx myutmp; /* A tmp buffer for reading utmp entries */
char silent= FALSE; /* generates no output if true */
int verbose= FALSE; /* generate whole table of output if true */
@@ -335,7 +335,7 @@ char flag;
}
/* Close the utmp file */
- endutent();
+ endutxent();
if (f_wrthist != NULL &&
!wassilent && (new[SMESG] == 'n' || new[SEXCP] == 'y'))
@@ -549,12 +549,12 @@ int code;
void do_disconnect()
{
-struct utmp *ut; /* A tmp buffer for reading utmp entries */
+struct utmpx *ut; /* A tmp buffer for reading utmp entries */
struct wrttmp hiswrt; /* Someone's wrttmp entry */
int slot= 0;
/* Rewind utmp file */
- setutent();
+ setutxent();
/* For each user who is writing me */
for (;;)
@@ -564,16 +564,16 @@ int slot= 0;
sizeof(struct wrttmp))
break;
- if (!strncmp(hiswrt.wrt_what, myutmp.ut_name, UT_NAMESIZE))
+ if (!strncmp(hiswrt.wrt_what, myutmp.ut_user, sizeof(myutmp.ut_user)))
{
setutent();
/* Check apparant writer against utmp file */
- while ((ut= getutent()) != NULL)
+ while ((ut= getutxent()) != NULL)
if (
#ifdef USER_PROCESS
ut->ut_type == USER_PROCESS &&
#endif
- !strncmp(hiswrt.wrt_line, ut->ut_line, UT_LINESIZE))
+ !strncmp(hiswrt.wrt_line, ut->ut_line, sizeof(ut->ut_line)))
{
/* Writer is for real: bonk him one */
kill(hiswrt.wrt_pid, SIGTERM);
@@ -590,10 +590,10 @@ int slot= 0;
int find_me()
{
-struct utmp *ut;
+struct utmpx *ut;
/* Find our entry in the Utmp file */
- if ((ut= find_utmp(mytty)) == NULL || ut->ut_name[0] == '\0')
+ if ((ut= find_utmp(mytty)) == NULL || ut->ut_user[0] == '\0')
{
printf("%s: Unable to find your tty (%s) in utmp file\n",
progname,mytty);
@@ -602,7 +602,7 @@ struct utmp *ut;
myutmp= *ut;
/* Find the entry in the wrttmp file */
- find_wrttmp(mytty,myutmp.ut_time,&mywrt,&mypos);
+ find_wrttmp(mytty,myutmp.ut_tv.tv_sec,&mywrt,&mypos);
}
@@ -616,13 +616,13 @@ int may_help()
#define BUFSZ 80
FILE *hfp;
char buf[BUFSZ+1];
-char myname[UT_NAMESIZE+2];
+char myname[sizeof(myutmp.ut_user)+1];
if (f_helperlist == NULL || (hfp= fopen(f_helperlist,"r")) == NULL)
return TRUE;
- strncpy(myname,myutmp.ut_name,UT_NAMESIZE);
- myname[UT_NAMESIZE]= '\0';
+ strncpy(myname,myutmp.ut_user,sizeof(myutmp.ut_user) -1);
+ myname[sizeof(myutmp.ut_user)]= '\0';
strcat(myname,"\n");
while (fgets(buf,BUFSZ,hfp) != NULL)
@@ -645,7 +645,7 @@ int window_warning(int newmode)
{
struct wrthist *hist;
struct wrttmp w;
-struct utmp *u;
+struct utmpx *u;
long writer, writee;
time_t now;
int n, foundsome= 0;
@@ -669,7 +669,7 @@ FILE *fp;
for (writee= 0; writee < n; writee++)
{
- if (hist[writee].tm > myutmp.ut_time &&
+ if (hist[writee].tm > myutmp.ut_tv.tv_sec &&
now - hist[writee].tm <= f_answertel)
{
/* Fetch "his" wrttmp entry - it may actually belong to a previous
@@ -688,12 +688,12 @@ FILE *fp;
/* Fetch his utmp entry, and confirm that the current user was
* already logged in there when we sent our last telegram there.
*/
- if ((u= find_utmp(w.wrt_line)) == NULL || u->ut_name[0] == '\0' ||
- hist[writee].tm < u->ut_time)
+ if ((u= find_utmp(w.wrt_line)) == NULL || u->ut_user[0] == '\0' ||
+ hist[writee].tm < u->ut_tv.tv_sec)
continue;
/* Check if due to exceptions he may write us anyway */
- if (f_exceptions && newmode > 1 && maywriteme(u->ut_name, newmode))
+ if (f_exceptions && newmode > 1 && maywriteme(u->ut_user, newmode))
continue;
if (!foundsome)
@@ -703,8 +703,8 @@ FILE *fp;
foundsome= 1;
}
printf(" %-*.*s %-*.*s %4.1f more minutes\n",
- UT_NAMESIZE, UT_NAMESIZE, u->ut_name,
- UT_LINESIZE, UT_LINESIZE, u->ut_line,
+ sizeof(u->ut_user) -1, sizeof(u->ut_user) -1, u->ut_user,
+ sizeof(u->ut_line) -1, sizeof(u->ut_line) -1, u->ut_line,
(float)(f_answertel - now + hist[writee].tm)/60.0);
}
}
@@ -717,7 +717,7 @@ FILE *fp;
char *myhomedir()
{
-char myname[UT_NAMESIZE+2];
+char myname[sizeof(myutmp.ut_user)+1];
struct passwd *pw;
char *dir, *getenv();
@@ -726,8 +726,8 @@ char *dir, *getenv();
return dir;
/* If that don't work, try passwd file */
- strncpy(myname,myutmp.ut_name,UT_NAMESIZE);
- myname[UT_NAMESIZE]= '\0';
+ strncpy(myname,myutmp.ut_user,sizeof(myutmp.ut_user) -1);
+ myname[sizeof(myutmp.ut_user)]= '\0';
if ((pw= getpwnam(myname)) != NULL)
return pw->pw_dir;