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

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

?? tintinutils.cpp

?? Windows上的MUD客戶端程序
?? CPP
字號:
/*----------------------------------------------------------------------------
                        _                              _ _       
        /\             | |                            | (_)      
       /  \   _ __   __| |_ __ ___  _ __ ___   ___  __| |_  __ _ 
      / /\ \ | '_ \ / _` | '__/ _ \| '_ ` _ \ / _ \/ _` | |/ _` |
     / ____ \| | | | (_| | | | (_) | | | | | |  __/ (_| | | (_| |
    /_/    \_\_| |_|\__,_|_|  \___/|_| |_| |_|\___|\__,_|_|\__,_|

    The contents of this file are subject to the Andromedia Public
	License Version 1.0 (the "License"); you may not use this file
	except in compliance with the License. You may obtain a copy of
	the License at http://www.andromedia.com/APL/

    Software distributed under the License is distributed on an
	"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
	implied. See the License for the specific language governing
	rights and limitations under the License.

    The Original Code is Pueblo client code, released November 4, 1998.

    The Initial Developer of the Original Code is Andromedia Incorporated.
	Portions created by Andromedia are Copyright (C) 1998 Andromedia
	Incorporated.  All Rights Reserved.

	Andromedia Incorporated                         415.365.6700
	818 Mission Street - 2nd Floor                  415.365.6701 fax
	San Francisco, CA 94103

    Contributor(s):
	--------------------------------------------------------------------------
	   Chaco team:  Dan Greening, Glenn Crocker, Jim Doubek,
	                Coyote Lussier, Pritham Shetty.

					Wrote and designed original codebase.

------------------------------------------------------------------------------

	TinTin class utility methods.  Originally modified from TinTin++,
	(T)he K(I)cki(N) (T)ickin D(I)kumud Clie(N)t, originally coded by
	Peter Unold 1992.

----------------------------------------------------------------------------*/

// $Header: /home/cvs/chaco/modules/client/msw/ChText/TinTinUtils.cpp,v 2.3 1996/02/16 23:05:19 coyote Exp $

#include <ChTypes.h>

#include "TinTin.h"


/*----------------------------------------------------------------------------
	TinTin class protected methods
----------------------------------------------------------------------------*/

											/* If you change this array must
												also change the TTCommand
												enumeration to correspond
												with the indices in this
												array */
                      
const char* TinTin::m_pstrCommands[] =
						{	"action",
							"alias",
							"antisubstitute",
							"bell",
							"boss",
							"char",
							"cr",
							"echo",
							"end",
							"gag",
							"help",
							"highlight",
							"history",
							"if",
							"ignore",
							"info",
							"killall",
							"log",
							"loop",
							"nop",
							"map",
							"math",
							"mark",
							"message",
							"path",
							"pathdir",
							"presub",
							"redraw",
							"retab",
							"return",
							"read",
							"savepath",
							"showme",
							"speedwalk",
							"startquotes",
							"substitute",
							"textin",
							"tick",
							"tickoff",
							"tickon",
							"tickset",
							"ticksize",
							"tolower",
							"togglesubs",
							"toupper",
							"unaction",
							"unalias",
							"unantisubstitute",
							"unhighlight",
							"unsubstitute",
							"ungag",
							"unpath",
							"unvariable",
							"variable",
							"version",
							"wizlist",
							"write",
							"writesession",
							"zap",
							"verbatim",		// This is at the end for a reason
							0 };


/*----------------------------------------------------------------------------
	TinTin::ParseTinTinCmd
				Returns the TTCommand value corresponding to the passed
				string.  Abbreviations are matched.
----------------------------------------------------------------------------*/

TTCommand TinTin::ParseTinTinCmd( const char* strCommand )
{
	const char**	ppstrThisCommand = m_pstrCommands;
	TTCommand		foundCommand = ttUnknown;
	int				iLoop = 0;

	while (*ppstrThisCommand && (ttUnknown == foundCommand))
	{
		if (IsAbrev( strCommand, *ppstrThisCommand ))
		{
			foundCommand = (TTCommand)iLoop;
		}

		iLoop++;
		ppstrThisCommand++;
	}

	return foundCommand;
}


/*----------------------------------------------------------------------------
	TinTin::IsAbrev
				Returns true if pstr1 is an abbreviation of pstr2.
----------------------------------------------------------------------------*/

bool TinTin::IsAbrev( const char* pstr1, const char* pstr2 )
{
	return( !strncmp( pstr2, pstr1, strlen( pstr1 ) ) );
}


/*----------------------------------------------------------------------------
	TinTin::Match
				Lightweight regular expression matching.  Only matches '*'
				and understands backslashes for escaping.
----------------------------------------------------------------------------*/

bool TinTin::Match( const char* pstrRegex, const char* pstrTest )
{
	while (*pstrRegex != 0)
	{
		char		cRegex;

		switch (cRegex = *pstrRegex++)
		{
			case '*':
			{
				const char*	pstrSave;
											/* Match empty strTest at end
												of `strTest' */
				if (0 == *pstrTest)
				{							/* ... but only if we're done
													with the pattern */
					return (0 == *pstrRegex);
				}
											/* Greedy algorithm: save starting
												location, then find end of
												strTest */
				pstrSave = pstrTest;
				pstrTest += strlen( pstrTest );

				do
				{
					if (Match( pstrRegex, pstrTest ))
					{
											// Return success if we match here
						return true;
					}
											// Otherwise back up and try again

				} while (--pstrTest >= pstrSave);

											/* Backed up all the way to the
												starting location (i.e. `*'
												matches empty strTest) and
												we _still_ can't match here.
												Give up. */
				return false;
			}

			case '\\':
			{
				if ((cRegex = *pstrRegex++) != '\0')
				{
											/* If not end of pattern, match
												next char explicitly */
					if (cRegex != *pstrTest++)
					{
						return false;
					}
					break;
				}
				
				/* else FALL THROUGH to match a backslash */
			}

			default:
			{								// Normal character
				if (cRegex != *pstrTest++)
				{
					return false;
				}
				break;
			}
		}
	}
											/* OK, we successfully matched the
												pattern if we got here.  Now
												return a match if we also
												reached end of strTest,
												otherwise failure */
	return (0 == *pstrTest);
}


#if 0

/* Autoconf patching by David Hedbor, neotron@lysator.liu.se */
/*********************************************************************/
/* file: utils.c - some utility-functions                            */
/*                             TINTIN III                            */
/*          (T)he K(I)cki(N) (T)ickin D(I)kumud Clie(N)t             */
/*                     coded by peter unold 1992                     */
/*********************************************************************/
#ifdef HAVE_STRING_H
#include <string.h>
#else
#ifdef HAVE_STRINGS_H
#include <strings.h>
#endif
#endif
#include "tintin.h"

#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif

void syserr();


/********************************/
/* strdup - duplicates a string */
/* return: address of duplicate */
/********************************/
char *mystrdup(s)
     char *s;
{
  char *dup;

  if((dup=(char *)malloc(strlen(s)+1))==NULL)
    syserr("Not enought memory for strdup.");
  strcpy(dup, s);
  return dup;
}


/*************************************************/
/* print system call error message and terminate */
/*************************************************/
void syserr(msg)
     char *msg;
{
  extern int errno, sys_nerr;
  extern char *sys_errlist[];

  fprintf(stderr,"ERROR: %s (%d",msg, errno);
  if(errno>0 && errno<sys_nerr)
    fprintf(stderr,": %s)\n",sys_errlist[errno]);
  else
    fprintf(stderr,")\n");
  exit(1);
}

#endif	// 0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美偷拍一区二区| 成人av片在线观看| 一区二区三区四区五区视频在线观看 | 国产精品一二三区| 狠狠久久亚洲欧美| 国产麻豆91精品| 韩国v欧美v亚洲v日本v| 日韩精品亚洲一区| 麻豆一区二区在线| 精品无码三级在线观看视频| 久久成人av少妇免费| 国产美女一区二区三区| 国产麻豆午夜三级精品| 92国产精品观看| 欧美日韩性生活| 日韩欧美在线观看一区二区三区| 欧美一区二区精美| 国产欧美日本一区视频| 综合网在线视频| 午夜一区二区三区在线观看| 婷婷中文字幕综合| 国产xxx精品视频大全| 色综合久久99| 精品久久久久久久久久久久久久久 | 国产午夜精品福利| 精品99一区二区三区| 久久嫩草精品久久久久| 亚洲欧美在线aaa| 日韩二区三区四区| 成人美女视频在线看| 欧美吻胸吃奶大尺度电影 | 国产精品一线二线三线精华| av电影一区二区| 在线成人午夜影院| 中文字幕的久久| 青草av.久久免费一区| 岛国一区二区在线观看| 制服丝袜国产精品| 国产精品美女一区二区| 日本女人一区二区三区| www.欧美日韩国产在线| 日韩欧美一级特黄在线播放| 亚洲精品综合在线| 国产成人精品免费在线| 在线不卡a资源高清| 国产精品你懂的| 国内外成人在线视频| 欧美中文字幕一区| 亚洲第一激情av| 99re视频精品| 久久精品一区四区| 久久精品国产亚洲a| 欧美在线观看一区| 中文字幕中文字幕一区| 国产成人8x视频一区二区| 69p69国产精品| 亚洲福利一二三区| 91啪亚洲精品| 国产精品久久久久久妇女6080| 毛片av中文字幕一区二区| 色88888久久久久久影院野外| 久久久久免费观看| 国精产品一区一区三区mba桃花| 欧美日韩午夜在线视频| 亚洲亚洲精品在线观看| 在线观看日产精品| 一区二区三区资源| 欧美在线三级电影| 亚洲福中文字幕伊人影院| 欧洲日韩一区二区三区| 亚洲一区二区三区四区五区黄| aaa欧美大片| 最新国产の精品合集bt伙计| 丁香天五香天堂综合| 久久精品无码一区二区三区| 狠狠色丁香婷婷综合久久片| 精品91自产拍在线观看一区| 日韩av电影天堂| 91精品国产综合久久精品性色| 午夜精品久久久久| 欧美一级二级三级蜜桃| 激情文学综合网| 久久精品视频一区二区| av成人免费在线| 亚洲综合色噜噜狠狠| 欧美丰满嫩嫩电影| 久久99国产精品麻豆| 久久久久国产精品厨房| 成人97人人超碰人人99| 亚洲精品免费视频| 欧美精品乱码久久久久久| 三级一区在线视频先锋| 日韩一区二区免费高清| 国产一区二区三区高清播放| 中文字幕av不卡| 色94色欧美sute亚洲线路一ni| 视频一区欧美精品| 精品国产91九色蝌蚪| www.亚洲色图.com| 午夜视频一区二区| 国产亚洲精品福利| 欧美色老头old∨ideo| 精品一区二区在线免费观看| 中文字幕在线观看不卡视频| 欧美日韩国产首页在线观看| 久久成人麻豆午夜电影| 中文字幕亚洲在| 日韩一级大片在线观看| 成人黄色网址在线观看| 日韩二区三区四区| 亚洲欧洲日韩av| 日韩欧美三级在线| 色综合久久中文字幕综合网| 久久国内精品自在自线400部| 国产欧美精品区一区二区三区| 欧美亚洲尤物久久| 国产精品456露脸| 偷拍一区二区三区四区| 国产亚洲一区二区三区在线观看| 欧美亚洲一区二区三区四区| 极品少妇xxxx偷拍精品少妇| 亚洲一二三专区| 欧美国产激情二区三区| 日韩午夜精品电影| 欧美性做爰猛烈叫床潮| www.日韩精品| 韩国av一区二区三区| 日韩国产精品久久久久久亚洲| 国产综合久久久久久鬼色| 日韩欧美国产午夜精品| 国产精品久久久久久久裸模| 午夜免费久久看| 国产精品另类一区| 欧美成人免费网站| 欧美三级电影在线看| 成人av电影观看| 国产东北露脸精品视频| 精品制服美女久久| 日韩和的一区二区| 亚洲444eee在线观看| 亚洲黄色尤物视频| 国产精品进线69影院| 亚洲国产精品t66y| 国产欧美日韩精品一区| 国产婷婷一区二区| 精品精品国产高清一毛片一天堂| 在线播放91灌醉迷j高跟美女| 91免费视频网址| 91在线码无精品| 91在线观看一区二区| 不卡一区二区在线| 99国产精品久久久久久久久久久| 成人免费的视频| av午夜一区麻豆| 91在线免费视频观看| 91久久精品一区二区二区| 日本韩国欧美在线| 欧美日韩亚洲丝袜制服| 欧美精品久久久久久久多人混战 | 日韩视频中午一区| 日韩三级伦理片妻子的秘密按摩| 欧美午夜一区二区三区| 在线综合+亚洲+欧美中文字幕| 欧美人与禽zozo性伦| 日韩天堂在线观看| 国产亚洲短视频| 国产精品不卡在线| 亚洲免费在线播放| 石原莉奈一区二区三区在线观看| 日韩精品电影一区亚洲| 美腿丝袜亚洲色图| 国产一区在线视频| 成人激情av网| 欧美视频在线观看一区二区| 欧美日韩精品高清| 日韩女同互慰一区二区| 精品国产91亚洲一区二区三区婷婷| 欧美激情艳妇裸体舞| 一区二区三区在线视频免费观看| 日韩精品欧美精品| 成人精品小蝌蚪| 欧美疯狂做受xxxx富婆| 2020国产精品自拍| 一区二区三区在线观看动漫| 麻豆精品一区二区| 色一情一伦一子一伦一区| 91精品国产欧美一区二区| 中文字幕欧美一| 美腿丝袜亚洲色图| 一本久久a久久免费精品不卡| 日韩一区二区三区三四区视频在线观看 | 国产精品久久久久久亚洲毛片| 亚洲午夜私人影院| 国产一区二区调教| 欧美日韩黄色一区二区| 亚洲国产成人私人影院tom| 日韩电影在线免费看| 91丝袜美腿高跟国产极品老师 | 欧美日韩在线不卡| 国产精品久久99|