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

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

?? parserc.c

?? 使用TAP的蜂窩型GSM手機短消息服務中心
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* -------------------------------------------------------------------- *//* SMS Client, send messages to mobile phones and pagers		*//*									*//* parserc.c								*//*									*//*  Copyright (C) 1997,1998 Angelo Masci				*//*									*//*  This library 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 of the License, or (at your option) any later version.	*//*									*//*  This library 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 library; if not, write to the Free		*//*  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.	*//*									*//*  You can contact the author at this e-mail address:			*//*									*//*  angelo@styx.demon.co.uk						*//*									*//* -------------------------------------------------------------------- *//* $Id: parserc.c,v 5.1 1998/02/01 07:10:39 root Exp root $   -------------------------------------------------------------------- */#include <stdio.h>#include <ctype.h>#include <string.h>#include <stdlib.h>#include <limits.h>#include <sys/types.h>#include <pwd.h>#include <unistd.h>#include <stddef.h>#if defined(NEXT)#include <sys/dir.h>#include <sys/dirent.h>#define NAME_MAX 255#define PATH_MAX 1024#else#include <dirent.h>#endif#include "sms_error.h"#include "logfile.h"#include "parserc.h"#include "sms_list.h"#include "sms_resource.h"#include "driver/driver.h"#include "token.h"#include "common.h"/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */#define MAXRCLINELEN 	80#define DELIMETER 	'='#if !defined(MLOCALSMSRC)#error "MLOCALSMSRC undefined"#else#define LOCALSMSRC      MLOCALSMSRC#endif#if !defined(MGLOBALSMSRC)#error "MGLOBALSMSRC undefined"#else#define GLOBALSMSRC     MGLOBALSMSRC#endif#if !defined(MSERVICEDIR)#error "MSERVICEDIR undefined"#else#define SERVICEDIR      MSERVICEDIR#endif/* -------------------------------------------------------------------- */static 	RESOURCE	*SMS_services_list = NULL;SMS_list *search_list;/* -------------------------------------------------------------------- */static FILE *SMS_open_global_smsrc(void);static FILE *SMS_open_local_smsrc(void);static void SMS_close_smsrc(FILE *fp);static void read_services(void);static SMS_list *expandnumber(FILE *fp[2], char *id, char *str, char *default_service);/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */static FILE *SMS_open_global_smsrc(void){	lprintf(LOG_VERBOSE, "Opening Global Addressbook File: %s\n", GLOBALSMSRC);	return fopen(GLOBALSMSRC, "r");}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */#if defined(SOLARIS)#define NAME_MAX FILENAME_MAX#endif#if defined(AIX)#define NAME_MAX 512#endifstatic FILE *SMS_open_local_smsrc(void){	struct passwd		*pentry;	char 	filename[PATH_MAX + NAME_MAX +1];	pentry = getpwuid(getuid());		sms_strcpy(filename, pentry->pw_dir);	sms_strcat(filename, "/");	sms_strcat(filename, LOCALSMSRC);	lprintf(LOG_VERBOSE, "Opening Local Addressbook File: %s\n", filename);	return fopen(filename, "r");}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */static void SMS_close_smsrc(FILE *fp){	if (fp != NULL)	{	fclose(fp);	}}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int is_name(char *name){	char 	*ptr;		ptr = name;		if (isdigit(*ptr))	/* First character NUMERIC 	*/	{			/* This is NOT a NAME		*/		return FALSE;	}		while (*ptr != '\0')	{		if (*ptr == ':')	/* Contains ':' this	*/		{			/* this is NOT a NAME	*/					/*			*/					/* SERVICE:NUMBER	*/								return FALSE;		}				ptr++;	}	return TRUE;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */char *SMS_get_smsrc_value(FILE *fp, char *name){	char 	line[MAXRCLINELEN],		SMS_name[MAXRCLINELEN],		token[MAXRCLINELEN],	 	*SMS_value,	 	*src;			int	type,		line_count;	if (fp == NULL)		{	return NULL;	}	rewind(fp);		SMS_value = (char *)malloc(sizeof(char) * MAXRCLINELEN);	if (SMS_value == NULL)	{		lprintf(LOG_ERROR, "Allocating memory\n");		exit(EMALLOC);	}		line_count = 0;	while (get_line(line, MAXRCLINELEN, &line_count, fp) != NULL)	{		src = line;		type = get_token(SMS_name, MAXRCLINELEN, src, &src);		if (type != STRING_TOKEN)		{			if (type == COMMENT_TOKEN)			{	continue;			}			lprintf(LOG_VERBOSE, "Syntax Error: Name expected at line %d\n", line_count);			return NULL;		}		type = get_token(token, MAXRCLINELEN, src, &src);		if (type != ASSIGNMENT_TOKEN)		{			lprintf(LOG_VERBOSE, "Syntax Error: Assignment expected at line %d\n", line_count);			return NULL;		}		type = get_token(SMS_value, MAXRCLINELEN, src, &src);		if ((type != STRING_TOKEN) &&		    (type != QUOTED_STRING_TOKEN) &&		    (type != SINGLE_QUOTED_STRING_TOKEN) &&		    (type != NULL_TOKEN))		{			lprintf(LOG_VERBOSE, "Syntax Error: String expected at line %d\n", line_count);			return NULL;		}		type = get_token(token, MAXRCLINELEN, src, &src);		if ((type != NULL_TOKEN) &&		    (type != COMMENT_TOKEN))		{			lprintf(LOG_VERBOSE, "Syntax Error: EOL or comment expected at line %d\n", line_count);			return NULL;		}		if (strcmp(name, SMS_name) == 0)		{			lprintf(LOG_VERBOSE, "Name Found: %s = %s\n", SMS_name, SMS_value);			return SMS_value;		} 	}	lprintf(LOG_VERBOSE, "Name NOT Found: %s\n", name);	free(SMS_value);	return NULL;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */char *SMS_dual_get_smsrc_value(FILE **fp, char *name){	char 	*ptr;	ptr = SMS_get_smsrc_value(fp[0], name);	if (ptr != NULL)	{	return ptr;	}	ptr = SMS_get_smsrc_value(fp[1], name);	if (ptr != NULL)	{	return ptr;	}	return NULL;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int SMS_getnamevalue_numeric(FILE *fp, char *name, long *value){	char 	*str,		*ptr;	str = SMS_get_smsrc_value(fp, name);	if (str == NULL)	{	return -1;	}	*value = strtol(str, &ptr, 10);	if (ptr == str)	{	return -1;	}	return 0;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int SMS_open_dual_getnamevalue_numeric(char *name, long *value){	FILE 	*fp[2];	SMS_dual_openrc(fp);	if (SMS_getnamevalue_numeric(fp[0], name, value) == 0)	{		SMS_dual_closerc(fp);		return 0;	}	if (SMS_getnamevalue_numeric(fp[1], name, value) == 0)	{		SMS_dual_closerc(fp);		return 0;	}	SMS_dual_closerc(fp);	return -1;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */void SMS_dual_closerc(FILE **fp){	SMS_close_smsrc(fp[0]);	SMS_close_smsrc(fp[1]);}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */void SMS_dual_openrc(FILE **fp){	fp[0] = SMS_open_local_smsrc();	if (fp[0] == NULL)	{	lprintf(LOG_VERBOSE, "Failed to open local smsrc file\n");	}	fp[1] = SMS_open_global_smsrc();	if (fp[1] == NULL)	{	lprintf(LOG_WARNING, "Failed to open global smsrc file\n");	}}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */static char *strdup_service(char *str){	char 	*ptr,		*dst,		*service;	service = (char *)malloc(sizeof(char) * (sms_strlen(str) +1));	if (service == NULL)	{		lprintf(LOG_ERROR, "Allocating memory\n");		exit(EMALLOC);	}		dst = service;	ptr = str;	while(*ptr != '\0')	{		if (*ptr == ':')		{	*dst = '\0';			break;		}		else		{	*dst = *ptr;		}				dst++;				ptr++;	}	if (*ptr == '\0')	{		*service = '\0';	}	return service;	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精选免费视频| 久久久久99精品一区| 国产精品进线69影院| 国产成人精品www牛牛影视| 久久麻豆一区二区| eeuss鲁片一区二区三区在线看| 国产农村妇女毛片精品久久麻豆 | 精品人伦一区二区色婷婷| 久久国产精品72免费观看| 精品久久久久av影院| 国产v日产∨综合v精品视频| 国产精品久久久久国产精品日日| 色综合久久久久综合99| 亚洲成人午夜影院| 精品国产伦一区二区三区观看方式 | 亚洲精品一区二区三区99| 国产不卡高清在线观看视频| 亚洲精品亚洲人成人网在线播放| 欧美人与性动xxxx| 国产自产v一区二区三区c| 国产精品精品国产色婷婷| 欧美精品色一区二区三区| 国内欧美视频一区二区| 亚洲素人一区二区| 日韩一区二区在线看片| 成人手机电影网| 亚洲成人动漫精品| 久久久高清一区二区三区| 欧洲一区二区三区免费视频| 久久激情五月婷婷| 亚洲丝袜精品丝袜在线| 欧美岛国在线观看| 91久久人澡人人添人人爽欧美| 免费观看91视频大全| 亚洲天堂免费看| 精品久久国产老人久久综合| 色综合激情五月| 国产一区二区在线电影| 亚洲国产中文字幕| 亚洲欧洲国产日本综合| 日韩精品一区二区三区蜜臀| 97久久精品人人爽人人爽蜜臀| 狂野欧美性猛交blacked| 综合精品久久久| 精品国产99国产精品| 欧美三级日韩在线| 成人性生交大合| 蜜臀久久久久久久| 一区二区三区在线不卡| 亚洲国产精品av| ww亚洲ww在线观看国产| 欧美人狂配大交3d怪物一区| 成人福利视频在线看| 麻豆成人91精品二区三区| 亚洲资源在线观看| 中文字幕一区二区三区精华液| 欧美一区二区久久久| 欧美性一区二区| 97久久超碰国产精品电影| 国产剧情一区二区| 久久精品国产免费| 日韩二区在线观看| 亚洲午夜免费视频| 一区二区三区国产豹纹内裤在线| 国产欧美一区二区三区在线老狼| 日韩精品一区在线| 欧美一区二区久久| 91精品国产美女浴室洗澡无遮挡| 日本韩国精品在线| 91蝌蚪porny成人天涯| 大白屁股一区二区视频| 紧缚捆绑精品一区二区| 精品亚洲国产成人av制服丝袜| 一区二区三区久久| 一区二区三区日本| 一卡二卡欧美日韩| 一区二区三区**美女毛片| 亚洲美女免费在线| 亚洲同性同志一二三专区| 亚洲人123区| 亚洲精品久久嫩草网站秘色| 亚洲欧美另类小说视频| 亚洲制服丝袜av| 亚洲综合在线电影| 亚洲国产美国国产综合一区二区| 亚洲国产精品一区二区尤物区| 一区二区在线看| 亚洲一二三专区| 婷婷国产在线综合| 麻豆国产欧美一区二区三区| 美女视频一区二区三区| 国产乱子轮精品视频| 国产999精品久久| 99精品视频一区二区| 色狠狠av一区二区三区| 欧美日韩免费电影| 日韩一级免费一区| 久久久久久久性| 18成人在线视频| 亚洲综合色区另类av| 婷婷综合五月天| 九九视频精品免费| 波多野结衣中文字幕一区| 在线中文字幕一区| 日韩一区二区三区电影在线观看 | 欧美日本一区二区| 精品奇米国产一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋 | 国产精品美女久久久久aⅴ国产馆| 国产精品女同一区二区三区| 亚洲综合精品自拍| 毛片av一区二区| 不卡在线视频中文字幕| 欧美日韩国产免费| 久久久久国产精品厨房| 一区二区三区在线免费观看| 麻豆精品国产91久久久久久| 成人黄色网址在线观看| 久久久久久久久久电影| 一级日本不卡的影视| 经典一区二区三区| 欧美性受xxxx| 国产午夜久久久久| 亚洲www啪成人一区二区麻豆| 国产成人免费在线视频| 欧美三级午夜理伦三级中视频| www国产精品av| 一区二区三区精品视频| 国产中文字幕一区| 欧美午夜精品电影| 久久夜色精品国产噜噜av| 一区二区三区色| 国产成人精品在线看| 91.麻豆视频| 亚洲欧美在线观看| 精品综合久久久久久8888| 在线观看欧美日本| 日本一区二区三区dvd视频在线| 日韩精品一二三四| 91在线国内视频| 2017欧美狠狠色| 青青草原综合久久大伊人精品| 99精品视频免费在线观看| 久久夜色精品国产噜噜av | 国产精品电影院| 六月丁香婷婷久久| 欧美色图在线观看| 国产精品家庭影院| 粉嫩av一区二区三区在线播放| 欧美电影影音先锋| 夜夜夜精品看看| 91美女片黄在线观看91美女| 国产情人综合久久777777| 久久国产精品区| 日韩片之四级片| 亚洲mv在线观看| 欧美性猛交一区二区三区精品| ...av二区三区久久精品| 高清在线成人网| 国产网站一区二区三区| 韩国三级电影一区二区| 欧美一区二区视频免费观看| 亚洲成av人综合在线观看| 在线观看国产日韩| 一区二区三区免费| 在线观看成人小视频| 亚洲人精品一区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲最新在线观看| 99精品1区2区| 中文字幕亚洲区| 97se狠狠狠综合亚洲狠狠| 亚洲色图制服丝袜| 色8久久精品久久久久久蜜| 亚洲男人的天堂在线观看| 91偷拍与自偷拍精品| 亚洲日本在线a| 欧美色图激情小说| 五月婷婷久久丁香| 欧美一区二区不卡视频| 免费人成精品欧美精品| 精品国产精品网麻豆系列| 国产高清在线观看免费不卡| 国产欧美日韩一区二区三区在线观看 | 国产欧美日韩综合| 成+人+亚洲+综合天堂| 亚洲精品视频在线看| 欧美日韩免费视频| 久久精品72免费观看| 国产日韩综合av| 91一区二区在线观看| 亚洲综合色网站| 日韩欧美国产综合| 国产成人av电影在线观看| 亚洲激情自拍偷拍| 9191久久久久久久久久久| 久久激情五月婷婷| 欧美一区二区观看视频| 懂色av中文一区二区三区| 色噜噜狠狠成人网p站|