This is misc.c in view mode; [Download] [Up]
#ifdef TENT_Z #define I_IOCTL #endif #define I_SYS #define I_TTY #include "includes.h" #include "debug.h" # ifdef USE_WINCHKILL # include <signal.h> # endif void update_time(void) { struct timeval t; extern int bytes_left; unsigned long old_time = current_time; #ifdef SVR4 gettimeofday(&t); #else gettimeofday(&t, (struct timezone *) 0 ); #endif current_time = ((unsigned long)t.tv_sec) * (unsigned long)20 + (unsigned long)(t.tv_usec / 50000); if (baudrate) bytes_left += (((current_time - old_time) * baudrate) / 200); if (bytes_left > (baudrate/10) && baudrate) bytes_left = (baudrate/10); if (bytes_left < 0) bytes_left = 0;/* sanity check */ } void do_debug(int level, char *c) { /* fprintf(stderr, "%s\n", c); */ return; } void do_noise(int a) { if (!write_noise) return; a ^= byte_shift; if ((a != 10 && a != 13 && a < 32) || a > 127) fprintf(stderr, "<%d>", a); else fprintf(stderr, "%c", a); } void do_alert(char *s) { if (remote) return; fprintf(stderr, "%s", s); } /* rebuild the arg list * compliment to build_arg() * * by: croutons * * mallocs the arry that is returned. * see build_arg() for other assumptions. */ char ** rebuild_arg(char * f) { int i,s; char ** a; DEBUG_FP(stderr,"rebuild :%s:\n",f); if ( ! f || !f[0]) return NULL; for ( s = 0, i = 2; '\0' != f[s]; s++ ) { /* if ( '\xff' == f[s] ) { Ultrix MIP compiler chokes on this */ if ( '\377' == f[s] ) { i++; } } if ( NULL == ( a = (char**) malloc(i*sizeof(char*)) ) ) { return NULL; } a[0]=f; for ( s = i = 0; '\0' != f[s]; s++ ) { /* if ( '\xff' == f[s] ) { */ if ( '\377' == f[s] ) { f[s] = '\0'; a[++i] = &f[s+1]; } } a[i] = NULL; return a; } #ifdef USE_SIGWINCH void do_resize(int number, int rows, int cols, int ypixels, int xpixels) { int i; #ifdef USE_WINCHKILL int pg; #endif for (i=0; i < MAX_CLIENTS; i++) { if (clients[i].fd >= 0 && clients[i].number == number) { #ifdef TIOCSWINSZ struct winsize ws; ws.ws_row = rows; ws.ws_col = cols; ws.ws_ypixel = ypixels; ws.ws_xpixel = xpixels; ioctl(clients[i].fd, TIOCSWINSZ, &ws); #else #ifdef TIOCSSIZE struct ttysize ts; ts.ts_lines = rows; ts.ts_cols = cols; ts.ts_yyy = ypixels; ts.ts_xxx = xpixels; ioctl(clients[i].fd, TIOCSSIZE, &ts); #endif #endif #ifdef USE_WINCHKILL #ifdef SYSV pg = getpgid(clients[i].pid); if (pg > 0) kill(pg, SIGWINCH); #else pg = getpgrp(clients[i].pid); if (pg > 0) killpg(pg, SIGWINCH); #endif #endif /* USE_WINCHKILL */ } } return; } #endif /* USE_SIGWINCH */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.