亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? checktim.c

?? 匯編源代碼大全
?? C
字號:
/*--------------------------------------------------------------------*/
/*    c h e c k t i m . c                                             */
/*                                                                    */
/*    Time of day validation routine for UUPC/extended                */
/*--------------------------------------------------------------------*/

/*--------------------------------------------------------------------*/
/*       Changes Copyright (c) 1989-1993 by Kendra Electronic         */
/*       Wonderworks.                                                 */
/*                                                                    */
/*       All rights reserved except those explicitly granted by       */
/*       the UUPC/extended license agreement.                         */
/*--------------------------------------------------------------------*/

/*--------------------------------------------------------------------*/
/*                          RCS Information                           */
/*--------------------------------------------------------------------*/

/*
 *    $Id: checktim.c 1.2 1993/09/20 04:46:34 ahd Exp $
 *
 *    Revision history:
 *    $Log: checktim.c $
 * Revision 1.2  1993/09/20  04:46:34  ahd
 * OS/2 2.x support (BC++ 1.0 support)
 * TCP/IP support from Dave Watt
 * 't' protocol support
 *
 */

/*--------------------------------------------------------------------*/
/*                        System include files                        */
/*--------------------------------------------------------------------*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

/*--------------------------------------------------------------------*/
/*                    UUPC/extended include files                     */
/*--------------------------------------------------------------------*/

#include "lib.h"
#include "checktim.h"

/*--------------------------------------------------------------------*/
/*                          Global variables                          */
/*--------------------------------------------------------------------*/

currentfile();

/*--------------------------------------------------------------------*/
/*                          Local functions                           */
/*--------------------------------------------------------------------*/

static char checkone( char *input, size_t hhmm, int weekday );

/*--------------------------------------------------------------------*/
/*   The following day values are based on the fact the               */
/*   localtime() call returns the day of the week as a value zero     */
/*   (0) through six (6), which is converted into the bit number      */
/*   and then AND'ed against the date mask.                           */
/*--------------------------------------------------------------------*/

#define SUN 0x80
#define MON 0x40
#define TUE 0x20
#define WED 0x10
#define THU 0x08
#define FRI 0x04
#define SAT 0x02
#define NEVER 0x00
#define WEEKEND (SAT | SUN)
#define WEEKDAY (MON | TUE | WED | THU | FRI)
#define ANY (WEEKEND | WEEKDAY)

/*--------------------------------------------------------------------*/
/*   Table of values for schedules.  Based on values given for        */
/*   legal schedule keywords in "Managing uucp and Usenet" by         */
/*   O'Reilly & Associates.  Multiple entries for a single keyword    */
/*   are processed in logical OR fashion, just as multiple entries    */
/*   for the same host in L.sys are treated in a logical OR           */
/*   fashion.                                                         */
/*                                                                    */
/*   Timing windows are adjusted five minutes away from higher        */
/*   telephone rates in an attempt to avoid massive charges           */
/*   because of inaccurate PC clocks and the fact that a telephone    */
/*   call generally requires more than one minute if the system is    */
/*   trying to do useful work.                                        */
/*                                                                    */
/*   Does not support multiple keywords in one token                  */
/*   (TuFr0800-0805), but allows multiple tokens                      */
/*   (Tu0800-805,Fr0800-0805) on one line.                            */
/*                                                                    */
/*   The NonPeak keyword has been corrected to the current (May       */
/*   1989) NonPeak hours for Telenet's PC-Pursuit.  However, keep     */
/*   in mind the PC-Pursuit customer agreement specifies that you     */
/*   can't use PC-Pursuit to network multiple PC's, so thou shalt     */
/*   not use PC-Pursuit from a central mail server.  *sigh*           */
/*                                                                    */
/*   I also have Reach-Out America from ATT, for which night rates    */
/*   begin at 10:00 pm.  It is duly added to the table.               */
/*--------------------------------------------------------------------*/

static struct Table {
   char *keyword;
   int wdays;
   unsigned int start;
   unsigned int end;

} table[] = {
   { "Any",     ANY,         0, 2400},
   { "Wk",      WEEKDAY,     0, 2400},
   { "Su",      SUN,         0, 2400},
   { "Mo",      MON,         0, 2400},
   { "Tu",      TUE,         0, 2400},
   { "We",      WED,         0, 2400},
   { "Th",      THU,         0, 2400},
   { "Fr",      FRI,         0, 2400},
   { "Sa",      SAT,         0, 2400},
   { "Evening", WEEKDAY,  1705,  755},
   { "Evening", WEEKEND,     0, 2400},
   { "Night",   WEEKDAY,  2305,  755},
   { "Night",   SAT,         0, 2400},
   { "Night",   SUN,      2305, 1655},
   { "NonPeak", WEEKDAY,  1805,  655}, /* Subject to change at TELENET's whim */
   { "NonPeak", WEEKEND,     0, 2400},
   { "ROA",     WEEKDAY,  2205,  755}, /* Reach Out America (sm) (AT&T)       */
   { "ROA",     SAT,         0, 2400}, /* Reach Out America (sm) (AT&T)       */
   { "ROA",     SUN,      2205, 1655}, /* Reach Out America (sm) (AT&T)       */
   { "Never",   NEVER,       0, 2400},
   {  nil(char) }
}; /* table */

/*--------------------------------------------------------------------*/
/*    c h e c k t i m e                                               */
/*                                                                    */
/*    Validate a time of day field; returns lowest grade              */
/*--------------------------------------------------------------------*/

char checktime(const char *xtime)
{

   struct tm *tm_now;
   time_t secs_now;
   size_t hhmm;
   char  buf[BUFSIZ];
   char  *token;
   char  *nexttoken;
   char  bestgrade = '\0';    /* No grade found yet                  */
   int   weekday;

   strcpy(buf,xtime);         /* Copy time to local buffer we can alter */
   time(&secs_now);
   tm_now = localtime(&secs_now);
                                       /* Create structure with time    */
   weekday = SUN >> tm_now->tm_wday;   /* Get day of week as single bit */
   hhmm = tm_now->tm_hour*100 + tm_now->tm_min;
   nexttoken = buf;           /* First pass, look at start of buffer    */

   while ((bestgrade < ALL_GRADES) &&
          ((token = strtok(nexttoken,",")) != NULL))
   {
      char grade = checkone( token, hhmm, weekday);

      if ( bestgrade < grade )
            bestgrade = grade;

      nexttoken = NULL;       /* Continue parsing same string           */

   } /* while (!(dial) && ((token = strtok(nexttoken,",")) != NULL) ) */

/*--------------------------------------------------------------------*/
/*            Report our results and return to the caller             */
/*--------------------------------------------------------------------*/

   return (bestgrade);

} /*checktime*/

/*--------------------------------------------------------------------*/
/*    c h e c k o n e                                                 */
/*                                                                    */
/*    Process one time field for checktime                            */
/*--------------------------------------------------------------------*/

static char checkone( char *input, size_t hhmm, int weekday )
{
   char  tdays[20];           /* String version of user tokens       */
   char  tstart[20];
   char  tend[20];
   size_t istart;
   size_t iend;
   struct Table *tptr;
   boolean dial = FALSE;      /* Assume we cannot dial               */
   char  found = 0;           /* Did not yet find current keyword    */
   char grade = ALL_GRADES;   /* Default grade if none specified     */

   char *slash = strchr( input, '/' );

/*--------------------------------------------------------------------*/
/*     Parse a day/time combination from the L.SYS file         *     */
/*--------------------------------------------------------------------*/

   strcpy(tstart,"0000");  /* Set default times to all day           */
   strcpy(tend,"2400");

/*--------------------------------------------------------------------*/
/*                      Determine the call grade                      */
/*--------------------------------------------------------------------*/

   if ( slash != NULL )
   {

      if (strlen( slash ) != 2)
      {
         printmsg(0,"Invalid call grade in field: %s", input );
         panic();
      }

      *slash++ = '\0';     /* Terminate original string              */
      grade = *slash;      /* Save the grade the user wanted         */

   } /* if ( slash != NULL ) */

/*--------------------------------------------------------------------*/
/*         Get the period and time limits the user specified          */
/*--------------------------------------------------------------------*/

    sscanf(input,
           "%[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]"
           "%[0123456789]-%[0123456789]", tdays, tstart, tend);

/*--------------------------------------------------------------------*/
/*          Verify the lengths of the fields the user specified       */
/*--------------------------------------------------------------------*/

   if (strlen(tstart) >= sizeof tstart)
   {
      printf( "%d character buffer overflow \"%s\"\n",
               sizeof tstart , tstart );
      panic();
   }

   if (strlen(tend) >= sizeof tend)
   {
      printf( "%d character buffer overflow \"%s\"\n",
               sizeof tend , tend );
      panic();
   }

   if (strlen(tdays) >= sizeof tdays)
   {
      printf( "%d character buffer overflow \"%s\"\n",
               sizeof tdays, tdays );
      panic();
   }

   printmsg(8,"checkone: %s broken into \"%s\" from \"%s\" to \"%s\""
              " with grade %c",
            input,tdays,tstart,tend,grade );

   istart = atoi(tstart);  /* Convert start/end times to binary          */
   iend  = atoi(tend);

/*--------------------------------------------------------------------*/
/*    Handle case of midnight specified in such a way that the        */
/*    time wraps through the daylight hours; we'll take the           */
/*    conservative approach that the user really meant to start at    */
/*    midnight.                                                       */
/*--------------------------------------------------------------------*/

   if ((istart > iend) && (istart == 2400))
      istart = 0000;

/*--------------------------------------------------------------------*/
/*                  Search for the requested keyword                  */
/*--------------------------------------------------------------------*/

   for (tptr = table, found = FALSE;
         (tptr->keyword != nil(char)) && !dial; tptr++)
   {

/*--------------------------------------------------------------------*/
/*      We found the keyword, see if today qualifies for dialing      */
/*--------------------------------------------------------------------*/

      if (equal(tptr->keyword,tdays))
      {
         found = TRUE;     /* Win or Lose, keyword is valid          */
         if (weekday & tptr->wdays)    /* Can we dial out today?     */
         {                             /* Yes --> Check the time     */

/*--------------------------------------------------------------------*/
/*    This entry allows us to dial out today; now determine if the    */
/*    time slot in the table allows dialing.                          */
/*--------------------------------------------------------------------*/

            if (tptr->start > tptr->end)  /* span midnight?          */
               dial = (tptr->start <= hhmm) || (tptr->end >= hhmm);
            else
               dial = (tptr->start <= hhmm) && (tptr->end >= hhmm);

/*--------------------------------------------------------------------*/
/*    Now do a logical AND of that time with the time the user        */
/*    specified in L.sys for this particular system.                  */
/*--------------------------------------------------------------------*/

            if (istart > iend)            /* span midnight?          */
               dial = ((istart <= hhmm) || (iend >= hhmm)) && dial;
            else if (istart == iend)
               dial = (istart == hhmm) && dial;
            else
               dial = (istart <= hhmm) && (iend >= hhmm) && dial;
         } /* if */
      } /* if */
   } /* for */

   if (!found)
      printmsg(0,"checkone: keyword \"%s\" not found",input);

   printmsg(3,"checkone: call window \"%s\" %s",
         input,
         dial ? "open" :"closed");

/*--------------------------------------------------------------------*/
/*                Return success or failure to caller                 */
/*--------------------------------------------------------------------*/

   if ( dial )
      return grade;
   else
      return '\0';

} /* checkone */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品成人一区二区三区| 99re热这里只有精品免费视频| 欧美日本一区二区| 亚洲国产成人高清精品| 欧美日韩一区 二区 三区 久久精品| 亚洲欧美激情插 | av男人天堂一区| 中文字幕欧美一| 色94色欧美sute亚洲线路一久 | 婷婷中文字幕一区三区| 欧美日韩国产一区| 免费成人在线影院| 久久久久久久久久看片| 国产成人在线电影| 亚洲人一二三区| 9191精品国产综合久久久久久| 日韩av一区二区在线影视| www激情久久| 91蝌蚪porny| 久久精品国产**网站演员| 国产欧美在线观看一区| 日本韩国一区二区三区| 免费在线观看一区二区三区| 国产色产综合产在线视频| 91久久精品一区二区三| 蜜桃精品在线观看| 亚洲精品国产a久久久久久 | 日韩午夜精品视频| av在线不卡免费看| 日韩不卡一二三区| 亚洲视频一区二区免费在线观看| 欧美日韩三级一区| 成人免费看的视频| 天使萌一区二区三区免费观看| 欧美韩日一区二区三区四区| 欧美撒尿777hd撒尿| 国产大片一区二区| 视频一区免费在线观看| 国产精品视频在线看| 91精品国产综合久久精品麻豆| 国产成人免费xxxxxxxx| 日韩精品一卡二卡三卡四卡无卡| 日本一区二区久久| 欧美成人aa大片| 欧美日韩小视频| 91香蕉视频mp4| 国产成人综合精品三级| 日韩av电影天堂| 亚洲五月六月丁香激情| 国产情人综合久久777777| 欧美日韩第一区日日骚| 91一区二区三区在线观看| 国产一区欧美二区| 日本视频在线一区| 亚洲观看高清完整版在线观看| 国产精品成人在线观看| 国产日韩欧美电影| 日韩免费在线观看| 在线不卡的av| 欧洲日韩一区二区三区| eeuss国产一区二区三区| 狠狠色综合色综合网络| 日韩主播视频在线| 亚洲高清免费视频| 亚洲国产裸拍裸体视频在线观看乱了 | 制服视频三区第一页精品| 一本色道久久综合亚洲精品按摩| 国产黄色成人av| 国产精品 日产精品 欧美精品| 韩国精品一区二区| 国产在线不卡一卡二卡三卡四卡| 日本欧美一区二区在线观看| 婷婷成人激情在线网| 午夜影院在线观看欧美| 亚洲一区二区精品3399| 一级做a爱片久久| 夜夜嗨av一区二区三区网页| 亚洲免费在线看| 亚洲午夜日本在线观看| 亚洲一区二区在线免费看| 亚洲一区二区三区美女| 亚洲chinese男男1069| 日韩精品五月天| 精品一二三四在线| 国产精品一区在线观看你懂的| 国产传媒日韩欧美成人| 成人一道本在线| 色婷婷av一区二区| 欧美高清视频一二三区 | 国产成人免费视频网站| 成人短视频下载| 一本一道久久a久久精品| 欧美色精品天天在线观看视频| 欧美精品国产精品| 久久综合九色综合欧美就去吻 | 久久福利资源站| 国产盗摄女厕一区二区三区| 91丨九色丨蝌蚪富婆spa| 色天使色偷偷av一区二区| 4438成人网| 久久日韩粉嫩一区二区三区| 国产精品色婷婷| 夜夜嗨av一区二区三区| 麻豆成人av在线| 粉嫩在线一区二区三区视频| 91久久精品国产91性色tv| 欧美一级理论片| 中文字幕一区二区三中文字幕| 一区二区三区欧美日| 开心九九激情九九欧美日韩精美视频电影 | 欧美日本一区二区| 国产性做久久久久久| 亚洲午夜激情网站| 国产精品1区二区.| 欧美日韩一区精品| 国产午夜一区二区三区| 亚洲国产精品久久艾草纯爱| 极品少妇xxxx偷拍精品少妇| 日本精品视频一区二区三区| 精品国产乱码久久久久久蜜臀| 中文字幕在线不卡| 玖玖九九国产精品| 欧美亚洲综合色| 日本一区二区动态图| 日韩av电影天堂| 色悠悠久久综合| 久久久久久久久久美女| 亚洲成av人片在线观看| 白白色 亚洲乱淫| 精品福利一区二区三区免费视频| 夜夜嗨av一区二区三区四季av| 国产乱人伦偷精品视频免下载| 欧美图区在线视频| 中文字幕一区二区三| 国产一区在线精品| 欧美精品久久天天躁| 亚洲激情成人在线| 成人在线视频一区二区| 日韩欧美中文一区二区| 一区二区三区四区在线免费观看| 大桥未久av一区二区三区中文| 欧美α欧美αv大片| 五月天一区二区三区| 91精品办公室少妇高潮对白| 国产精品女人毛片| 国产精品一二三在| 久久综合九色综合欧美就去吻| 亚欧色一区w666天堂| 色婷婷久久99综合精品jk白丝| 欧美韩日一区二区三区| 国产一区二区不卡老阿姨| 91麻豆精品国产91久久久久久久久 | 欧美日韩一区小说| 玉足女爽爽91| 色综合久久久久综合体| 中文字幕在线不卡国产视频| 丁香天五香天堂综合| 久久久久高清精品| 精品在线观看免费| 欧美不卡一二三| 狠狠色丁香九九婷婷综合五月| 欧美一区二区三区影视| 三级影片在线观看欧美日韩一区二区 | 亚洲成人自拍一区| 在线精品亚洲一区二区不卡| 亚洲色图欧美在线| 99精品在线免费| 亚洲欧美日韩中文字幕一区二区三区 | 视频一区欧美精品| 欧美一三区三区四区免费在线看| 午夜视黄欧洲亚洲| 91麻豆精品国产| 看片网站欧美日韩| 久久久久国色av免费看影院| 国产suv精品一区二区6| 中文字幕一区二区三区视频 | 福利电影一区二区| 中文字幕永久在线不卡| 91视频在线看| 亚洲午夜久久久久久久久电影网| 欧美亚洲国产一区二区三区va| 亚洲一区成人在线| 这里只有精品视频在线观看| 寂寞少妇一区二区三区| 欧美高清在线一区二区| av成人老司机| 一区二区欧美视频| 欧美一区二区三区日韩| 国产精品亚洲专一区二区三区 | 亚洲欧洲无码一区二区三区| 91麻豆精品视频| 亚洲电影你懂得| 精品少妇一区二区三区| 成人免费的视频| 一区二区三区精品在线| 91精品免费在线观看| 国产一区二区三区精品视频| 亚洲欧洲日韩综合一区二区| 欧美日韩免费观看一区二区三区| 麻豆视频一区二区|