晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/include/ |
Upload File : |
/* tld.h --- Declarations for TLD restriction checking.
Copyright (C) 2004-2016 Simon Josefsson.
Copyright (C) 2003-2014, 2016 Free Software Foundation, Inc.
Author: Thomas Jacob, Internet24.de
This file is part of GNU Libidn.
GNU Libidn is free software: you can redistribute it and/or
modify it under the terms of either:
* the GNU Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at
your option) any later version.
or
* the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at
your option) any later version.
or both in parallel, as here.
GNU Libidn 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
General Public License for more details.
You should have received copies of the GNU General Public License and
the GNU Lesser General Public License along with this program. If
not, see <http://www.gnu.org/licenses/>. */
#ifndef TLD_H
# define TLD_H
# ifndef IDNAPI
# if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY
# define IDNAPI __attribute__((__visibility__("default")))
# elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC
# define IDNAPI __declspec(dllexport)
# elif defined _MSC_VER && ! defined LIBIDN_STATIC
# define IDNAPI __declspec(dllimport)
# else
# define IDNAPI
# endif
# endif
# ifdef __cplusplus
extern "C"
{
# endif
/* Get size_t. */
# include <stdlib.h>
/* Get uint32_t. */
# include <idn-int.h>
/* Interval of valid code points in the TLD. */
struct Tld_table_element
{
uint32_t start; /* Start of range. */
uint32_t end; /* End of range, end == start if single. */
};
typedef struct Tld_table_element Tld_table_element;
/* List valid code points in a TLD. */
struct Tld_table
{
const char *name; /* TLD name, e.g., "no". */
const char *version; /* Version string from TLD file. */
size_t nvalid; /* Number of entries in data. */
const Tld_table_element *valid; /* Sorted array of valid code points. */
};
typedef struct Tld_table Tld_table;
/* Error codes. */
typedef enum
{
TLD_SUCCESS = 0,
TLD_INVALID = 1, /* Invalid character found. */
TLD_NODATA = 2, /* Char, domain or inlen = 0. */
TLD_MALLOC_ERROR = 3,
TLD_ICONV_ERROR = 4,
TLD_NO_TLD = 5,
/* Workaround typo in earlier versions. */
TLD_NOTLD = TLD_NO_TLD
} Tld_rc;
extern IDNAPI const char *tld_strerror (Tld_rc rc);
/* Extract TLD, as ASCII string, of UCS4 domain name into "out". */
extern IDNAPI int tld_get_4 (const uint32_t * in, size_t inlen,
char **out);
extern IDNAPI int tld_get_4z (const uint32_t * in, char **out);
extern IDNAPI int tld_get_z (const char *in, char **out);
/* Return structure corresponding to the named TLD from specified
* list of TLD tables, or return NULL if no matching TLD can be
* found. */
extern IDNAPI const Tld_table *tld_get_table (const char *tld,
const Tld_table ** tables);
/* Return structure corresponding to the named TLD, first looking
* thru overrides then thru built-in list, or return NULL if no
* matching TLD can be found. */
extern IDNAPI const Tld_table * tld_default_table (const char *tld,
const Tld_table ** overrides);
/* Check NAMEPREPPED domain name for valid characters as defined by
* the relevant registering body (plus [a-z0-9.-]). If error is
* TLD_INVALID, set errpos to position of offending character. */
extern IDNAPI int tld_check_4t (const uint32_t * in, size_t inlen,
size_t * errpos, const Tld_table * tld);
extern IDNAPI int tld_check_4tz (const uint32_t * in, size_t * errpos,
const Tld_table * tld);
/* Utility interfaces that uses tld_get_4* to find TLD of string,
then tld_default_table (with overrides) to find proper TLD table
for the string, and then hands over to tld_check_4t*. */
extern IDNAPI int tld_check_4 (const uint32_t * in, size_t inlen,
size_t * errpos,
const Tld_table ** overrides);
extern IDNAPI int tld_check_4z (const uint32_t * in, size_t * errpos,
const Tld_table ** overrides);
extern IDNAPI int tld_check_8z (const char *in, size_t * errpos,
const Tld_table ** overrides);
extern IDNAPI int tld_check_lz (const char *in, size_t * errpos,
const Tld_table ** overrides);
# ifdef __cplusplus
}
# endif
#endif /* TLD_H */