FreeCalypso > hg > freecalypso-tools
view rvinterf/old/g23sh/main.c @ 752:c79aaed75bd8
compile-fc-batt: allow possible third field in source lines
Battery tables maintained in the fc-battery-conf repository will now
have a third field added, defining thresholds for the battery bars icon,
and there will be a new utility to compile them into the new
/etc/batterytab2 file read by the FC Tourmaline version of our
FCHG driver. For backward compatibility with the original Magnetite
version of FCHG, compile-fc-batt remains the tool for compiling the
original /etc/batterytab file format, and it needs to ignore the
newly added third field in battery table sources.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 05 Nov 2020 20:37:55 +0000 |
parents | e7502631a0f9 |
children |
line wrap: on
line source
/* * This module contains the main() function for g23sh. */ #include <sys/types.h> #include <sys/errno.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> char *socket_pathname = "/tmp/rvinterf_socket"; int ttyhacks, dflag; int sock; extern char *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; main(argc, argv) char **argv; { extern int optind; extern char *optarg; int c; fd_set fds; while ((c = getopt(argc, argv, "B:dl:s:w:")) != EOF) switch (c) { case 'B': rvinterf_Bopt = optarg; continue; case 'd': dflag++; continue; case 'l': rvinterf_lopt = optarg; continue; case 's': socket_pathname = optarg; continue; case 'w': rvinterf_wopt = optarg; continue; case '?': default: usage: fprintf(stderr, "usage: %s [options] [ttyport]\n", argv[0]); exit(1); } switch (argc - optind) { case 0: if (rvinterf_Bopt || rvinterf_lopt || rvinterf_wopt) { fprintf(stderr, "%s: -B, -l and -w options are meaningful only when launching rvinterf\n", argv[0]); exit(1); } break; case 1: launch_rvinterf(argv[optind]); break; default: goto usage; } ttyhacks = isatty(0) && !dflag; init(); tty_init(); for (;;) { FD_ZERO(&fds); FD_SET(0, &fds); FD_SET(sock, &fds); c = select(sock+1, &fds, 0, 0, 0); if (c < 0) { if (errno == EINTR) continue; tty_cleanup(); perror("select"); exit(1); } if (FD_ISSET(0, &fds)) handle_tty_input(); if (FD_ISSET(sock, &fds)) handle_rvinterf_input(); fflush(stdout); } }