Группа :: Система/Настройка/Загрузка и инициализация
Пакет: sysvinit
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: 0009-ALT-wall-line-size.patch
Скачать
Скачать
From 20308ad253f58db8c9a4939056e72c4acff1c0f0 Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <legion@altlinux.org>
Date: Thu, 16 Dec 2021 22:25:18 +0300
Subject: ALT: wall line size
---
src/dowall.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/dowall.c b/src/dowall.c
index 83b2828..951d24d 100644
--- a/src/dowall.c
+++ b/src/dowall.c
@@ -163,9 +163,8 @@ void wall(const char *text, int remote)
struct utmp *utmp;
time_t t;
char term[UT_LINESIZE+ strlen(_PATH_DEV) + 1];
- char line[256];
+ char line[263], header[256], date[21];
char hostname[HOST_NAME_MAX+1];
- char *date, *p;
char *user, *tty;
int fd, flags;
@@ -190,20 +189,21 @@ void wall(const char *text, int remote)
/* Get the time */
time(&t);
- date = ctime(&t);
- for(p = date; *p && *p != '\n'; p++)
- ;
- *p = 0;
-
+ strftime(date, sizeof(date), "%F %T", localtime(&t));
+
if (remote) {
- snprintf(line, sizeof(line),
- "\r\nRemote broadcast message (%s):\r\n\r\n",
+ snprintf(header, sizeof(header),
+ "Remote broadcast message (%s):",
date);
} else {
- snprintf(line, sizeof(line),
- "\r\nBroadcast message from %s@%s %s(%s):\r\n\r\n",
- user, hostname, tty, date);
+ int len = (int)sizeof(header) -
+ sizeof("Broadcast message from @ ():") -
+ strlen(user) - strlen(tty) - strlen(date);
+ snprintf(header, sizeof(header),
+ "Broadcast message from %s@%.*s %s(%s):",
+ user, (len > 0 ? len : 0), hostname, tty, date);
}
+ snprintf(line, sizeof(line), "\007\r\n%s\r\n\r\n", header);
/*
* Fork to avoid us hanging in a write()
--
2.25.4