/* * mainloop.c: * * Copyright (c) 2008 James McKenzie , * All rights reserved. * */ static char rcsid[] = "$Id$"; /* * $Log$ * Revision 1.33 2008/05/09 12:35:57 james * *** empty log message *** * * Revision 1.32 2008/03/11 17:56:50 james * *** empty log message *** * * Revision 1.31 2008/03/11 17:56:04 james * *** empty log message *** * * Revision 1.30 2008/03/11 17:47:24 james * *** empty log message *** * * Revision 1.29 2008/03/10 11:49:32 james * *** empty log message *** * * Revision 1.28 2008/03/07 13:56:39 james * *** empty log message *** * * Revision 1.27 2008/03/07 13:16:02 james * *** empty log message *** * * Revision 1.26 2008/03/06 21:34:09 james * *** empty log message *** * * Revision 1.25 2008/03/06 21:33:02 james * *** empty log message *** * * Revision 1.24 2008/03/06 16:49:39 james * *** empty log message *** * * Revision 1.23 2008/03/06 16:49:05 james * *** empty log message *** * * Revision 1.22 2008/03/03 06:04:42 james * *** empty log message *** * * Revision 1.21 2008/03/02 10:27:24 james * *** empty log message *** * * Revision 1.20 2008/02/28 16:57:51 james * *** empty log message *** * * Revision 1.19 2008/02/28 16:37:16 james * *** empty log message *** * * Revision 1.18 2008/02/28 11:27:48 james * *** empty log message *** * * Revision 1.17 2008/02/27 09:42:53 james * *** empty log message *** * * Revision 1.16 2008/02/27 09:42:21 james * *** empty log message *** * * Revision 1.15 2008/02/27 01:31:38 james * *** empty log message *** * * Revision 1.14 2008/02/27 01:31:14 james * *** empty log message *** * * Revision 1.13 2008/02/26 23:56:12 james * *** empty log message *** * * Revision 1.12 2008/02/26 23:23:16 james * *** empty log message *** * * Revision 1.11 2008/02/24 00:43:55 james * *** empty log message *** * * Revision 1.10 2008/02/23 13:05:57 staffcvs * *** empty log message *** * * Revision 1.9 2008/02/23 11:48:51 james * *** empty log message *** * * Revision 1.8 2008/02/22 23:39:30 james * *** empty log message *** * * Revision 1.7 2008/02/20 20:16:07 james * *** empty log message *** * * Revision 1.6 2008/02/20 19:44:37 james * @@ * * Revision 1.5 2008/02/20 18:31:44 james * *** empty log message *** * * Revision 1.4 2008/02/20 17:18:33 james * *** empty log message *** * * Revision 1.3 2008/02/20 02:11:35 james * *** empty log message *** * * Revision 1.2 2008/02/16 10:58:52 james * *** empty log message *** * * Revision 1.13 2008/02/15 23:52:12 james * *** empty log message *** * * Revision 1.12 2008/02/15 03:32:07 james * *** empty log message *** * * Revision 1.11 2008/02/14 16:21:17 james * *** empty log message *** * * Revision 1.10 2008/02/14 10:39:14 james * *** empty log message *** * * Revision 1.9 2008/02/14 10:34:47 james * *** empty log message *** * * Revision 1.8 2008/02/14 10:34:30 james * *** empty log message *** * * Revision 1.7 2008/02/14 02:46:44 james * *** empty log message *** * * Revision 1.6 2008/02/14 00:57:58 james * *** empty log message *** * * Revision 1.5 2008/02/13 18:05:06 james * *** empty log message *** * * Revision 1.4 2008/02/13 17:21:55 james * *** empty log message *** * * Revision 1.3 2008/02/08 15:06:52 james * *** empty log message *** * * Revision 1.2 2008/02/07 15:42:49 james * *** empty log message *** * * Revision 1.1 2008/02/05 14:25:49 james * *** empty log message *** * */ #include #include #include "mainloop.h" #include "clients.h" typedef struct { int nclients; int lines; int baud; int crtscts; int cd_edge_sec; int blocked; int bootstrap; } Status; static Status get_status (TTY * t, Clients * cs) { static struct timeval last_cd_edge = { 0 }; static int last_cd_state = -1; int cd; struct timeval now, dif; TTY_Status tty_status = { 0 }; Status status; tty_get_status (t, &tty_status); status.bootstrap = 1; if (cs) status.nclients = cs->n; else status.nclients = 0; status.lines = tty_status.lines; status.baud = tty_status.baud; status.crtscts = (tty_status.termios.c_cflag & CRTSCTS) ? 1 : 0; status.blocked = tty_status.blocked; cd = (tty_status.lines & TIOCM_CD) ? 1 : 0; if (cd != last_cd_state) { gettimeofday (&last_cd_edge, NULL); last_cd_state = cd; } gettimeofday (&now, NULL); timersub (&now, &last_cd_edge, &dif); status.cd_edge_sec = dif.tv_sec; return status; } static char * line_to_nam
/* Implementation of the dcngettext(3) function.
   Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU Library General Public License as published
   by the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public
   License along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
   USA.  */

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif

#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif

/* @@ end of prolog @@ */

/* Names for the libintl functions are a problem.  They must not clash
   with existing names and they should follow ANSI C.  But this source
   code is also used in GNU C Library where the names have a __
   prefix.  So we have to make a difference here.  */
#ifdef _LIBC
# define DCNGETTEXT __dcngettext
# define DCIGETTEXT __dcigettext
#else
# define DCNGETTEXT libintl_dcngettext
# define DCIGETTEXT libintl_dcigettext
#endif

/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
   locale.  */
char *
DCNGETTEXT (const char *domainname,
	    const char *msgid1, const char *msgid2, unsigned long int n,
	    int category)
{
  return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
}

#ifdef _LIBC
/* Alias for function name in GNU C Library.  */
weak_alias (__dcngettext, dcngettext);
#endif