added sys::mktime() and sys::strftime() to awk
This commit is contained in:
		| @ -58,27 +58,32 @@ static qse_awk_fnc_t sysfnctab[] = | ||||
| 	{ {QSE_T("int"),     3}, 0, { {1,     1, QSE_NULL},     fnc_int,              0 }, QSE_NULL}, | ||||
|  | ||||
| 	/* string functions */ | ||||
| 	{ {QSE_T("index"),   5}, 0, { {2,     3, QSE_NULL},     qse_awk_fnc_index,    0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("substr"),  6}, 0, { {2,     3, QSE_NULL},     qse_awk_fnc_substr,   0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("length"),  6}, 1, { {0,     1, QSE_NULL},     qse_awk_fnc_length,   0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("split"),   5}, 0, { {2,     3, QSE_T("vrx")}, qse_awk_fnc_split,    0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("tolower"), 7}, 0, { {1,     1, QSE_NULL},     qse_awk_fnc_tolower,  0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("toupper"), 7}, 0, { {1,     1, QSE_NULL},     qse_awk_fnc_toupper,  0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("gsub"),    4}, 0, { {2,     3, QSE_T("xvr")}, qse_awk_fnc_gsub,     0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("sub"),     3}, 0, { {2,     3, QSE_T("xvr")}, qse_awk_fnc_sub,      0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("match"),   5}, 0, { {2,     3, QSE_T("vxv")}, qse_awk_fnc_match,    0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("sprintf"), 7}, 0, { {1, A_MAX, QSE_NULL},     qse_awk_fnc_sprintf,  0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("index"),    5}, 0, { {2,     3, QSE_NULL},     qse_awk_fnc_index,    0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("substr"),   6}, 0, { {2,     3, QSE_NULL},     qse_awk_fnc_substr,   0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("length"),   6}, 1, { {0,     1, QSE_NULL},     qse_awk_fnc_length,   0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("split"),    5}, 0, { {2,     3, QSE_T("vrx")}, qse_awk_fnc_split,    0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("tolower"),  7}, 0, { {1,     1, QSE_NULL},     qse_awk_fnc_tolower,  0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("toupper"),  7}, 0, { {1,     1, QSE_NULL},     qse_awk_fnc_toupper,  0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("gsub"),     4}, 0, { {2,     3, QSE_T("xvr")}, qse_awk_fnc_gsub,     0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("sub"),      3}, 0, { {2,     3, QSE_T("xvr")}, qse_awk_fnc_sub,      0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("match"),    5}, 0, { {2,     3, QSE_T("vxv")}, qse_awk_fnc_match,    0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("sprintf"),  7}, 0, { {1, A_MAX, QSE_NULL},     qse_awk_fnc_sprintf,  0 }, QSE_NULL}, | ||||
|  | ||||
| 	/* math functions */ | ||||
| 	{ {QSE_T("sin"),     3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("cos"),     3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("tan"),     3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("atan"),    4}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("atan2"),   5}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("log"),     3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("log10"),   5}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("exp"),     3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("sqrt"),    4}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL} | ||||
| 	{ {QSE_T("sin"),      3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("cos"),      3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("tan"),      3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("atan"),     4}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("atan2"),    5}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("log"),      3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("log10"),    5}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("exp"),      3}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("sqrt"),     4}, 0, { {A_MAX, 0, QSE_T("math") },   QSE_NULL,         0 }, QSE_NULL}, | ||||
|  | ||||
| 	/* time functions */ | ||||
| 	{ {QSE_T("mktime"),   6}, 0, { {A_MAX, 0, QSE_T("sys") },   QSE_NULL,          0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("strftime"), 8}, 0, { {A_MAX, 0, QSE_T("sys") },   QSE_NULL,          0 }, QSE_NULL}, | ||||
| 	{ {QSE_T("systime"),  7}, 0, { {A_MAX, 0, QSE_T("sys") },   QSE_NULL,          0 }, QSE_NULL} | ||||
| }; | ||||
|  | ||||
| qse_awk_fnc_t* qse_awk_addfnc (qse_awk_t* awk, const qse_char_t* name, const qse_awk_fnc_spec_t* spec) | ||||
| @ -90,7 +95,6 @@ qse_awk_fnc_t* qse_awk_addfnc (qse_awk_t* awk, const qse_char_t* name, const qse | ||||
|  | ||||
| 	ncs.ptr = (qse_char_t*)name; | ||||
| 	ncs.len = qse_strlen (name); | ||||
|  | ||||
| 	if (ncs.len <= 0) | ||||
| 	{ | ||||
| 		qse_awk_seterrnum (awk, QSE_AWK_EINVAL, QSE_NULL); | ||||
| @ -1243,7 +1247,7 @@ int qse_awk_fnc_match (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) | ||||
| } | ||||
|  | ||||
| int qse_awk_fnc_sprintf (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) | ||||
| {	 | ||||
| { | ||||
| 	qse_size_t nargs; | ||||
| 	qse_awk_val_t* a0; | ||||
| 	qse_str_t out, fbu; | ||||
|  | ||||
| @ -26,6 +26,7 @@ | ||||
|  | ||||
| #include "mod-sys.h" | ||||
| #include <qse/cmn/str.h> | ||||
| #include <qse/cmn/chr.h> | ||||
| #include <qse/cmn/time.h> | ||||
| #include <qse/cmn/nwif.h> | ||||
| #include <qse/cmn/nwad.h> | ||||
| @ -51,6 +52,7 @@ | ||||
| #endif | ||||
|  | ||||
| #include <stdlib.h> /* getenv, system */ | ||||
| #include <time.h> | ||||
|  | ||||
| static int fnc_fork (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) | ||||
| { | ||||
| @ -496,6 +498,213 @@ static int fnc_settime (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static int fnc_mktime (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) | ||||
| { | ||||
| 	qse_ntime_t nt; | ||||
| 	qse_size_t nargs; | ||||
| 	qse_awk_val_t* retv; | ||||
|  | ||||
| 	nargs = qse_awk_rtx_getnargs (rtx); | ||||
| 	if (nargs >= 1) | ||||
| 	{ | ||||
| 		int sign; | ||||
| 		qse_char_t* str, * p, * end; | ||||
| 		qse_size_t len; | ||||
| 		qse_awk_val_t* a0; | ||||
| 		qse_btime_t bt; | ||||
|  | ||||
| 		a0 = qse_awk_rtx_getarg (rtx, 0); | ||||
| 		str = qse_awk_rtx_getvalstr (rtx, a0, &len); | ||||
| 		if (str == QSE_NULL) return -1; | ||||
|  | ||||
| 		/* the string must be of the format  YYYY MM DD HH MM SS[ DST] */ | ||||
| 		p = str; | ||||
| 		end = str + len; | ||||
| 		QSE_MEMSET (&bt, 0, QSE_SIZEOF(bt)); | ||||
|  | ||||
| 		sign = 1; | ||||
| 		if (p < end && *p == QSE_T('-')) { sign = -1; p++; } | ||||
| 		while (p < end && QSE_ISDIGIT(*p)) bt.year = bt.year * 10 + (*p++ - QSE_T('0')); | ||||
| 		bt.year *= sign; | ||||
| 		bt.year -= 1900; | ||||
| 		while (p < end && (QSE_ISSPACE(*p) || *p == QSE_T('\0'))) p++; | ||||
|  | ||||
| 		sign = 1; | ||||
| 		if (p < end && *p == QSE_T('-')) { sign = -1; p++; } | ||||
| 		while (p < end && QSE_ISDIGIT(*p)) bt.mon = bt.mon * 10 + (*p++ - QSE_T('0')); | ||||
| 		bt.mon *= sign; | ||||
| 		bt.mon -= 1; | ||||
| 		while (p < end && (QSE_ISSPACE(*p) || *p == QSE_T('\0'))) p++; | ||||
|  | ||||
| 		sign = 1; | ||||
| 		if (p < end && *p == QSE_T('-')) { sign = -1; p++; } | ||||
| 		while (p < end && QSE_ISDIGIT(*p)) bt.mday = bt.mday * 10 + (*p++ - QSE_T('0')); | ||||
| 		bt.mday *= sign; | ||||
| 		while (p < end && (QSE_ISSPACE(*p) || *p == QSE_T('\0'))) p++; | ||||
|  | ||||
| 		sign = 1; | ||||
| 		if (p < end && *p == QSE_T('-')) { sign = -1; p++; } | ||||
| 		while (p < end && QSE_ISDIGIT(*p)) bt.hour = bt.hour * 10 + (*p++ - QSE_T('0')); | ||||
| 		bt.hour *= sign; | ||||
| 		while (p < end && (QSE_ISSPACE(*p) || *p == QSE_T('\0'))) p++; | ||||
|  | ||||
| 		sign = 1; | ||||
| 		if (p < end && *p == QSE_T('-')) { sign = -1; p++; } | ||||
| 		while (p < end && QSE_ISDIGIT(*p)) bt.min = bt.min * 10 + (*p++ - QSE_T('0')); | ||||
| 		bt.min *= sign; | ||||
| 		while (p < end && (QSE_ISSPACE(*p) || *p == QSE_T('\0'))) p++; | ||||
|  | ||||
| 		sign = 1; | ||||
| 		if (p < end && *p == QSE_T('-')) { sign = -1; p++; } | ||||
| 		while (p < end && QSE_ISDIGIT(*p)) bt.sec = bt.sec * 10 + (*p++ - QSE_T('0')); | ||||
| 		bt.sec *= sign; | ||||
| 		while (p < end && (QSE_ISSPACE(*p) || *p == QSE_T('\0'))) p++; | ||||
|  | ||||
| 		sign = 1; | ||||
| 		if (p < end && *p == QSE_T('-')) { sign = -1; p++; } | ||||
| 		while (p < end && QSE_ISDIGIT(*p)) bt.isdst = bt.isdst * 10 + (*p++ - QSE_T('0')); | ||||
| 		bt.isdst *= sign; | ||||
| 		while (p < end && (QSE_ISSPACE(*p) || *p == QSE_T('\0'))) p++; | ||||
|  | ||||
| 		qse_awk_rtx_freevalstr (rtx, a0, str); | ||||
| 		qse_timelocal (&bt, &nt); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		/* get the current time when no argument is given */ | ||||
| 		qse_gettime (&nt); | ||||
| 	} | ||||
|  | ||||
| 	retv = qse_awk_rtx_makeintval (rtx, nt.sec); | ||||
| 	if (retv == QSE_NULL) return -1; | ||||
|  | ||||
| 	qse_awk_rtx_setretval (rtx, retv); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| static int fnc_strftime (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) | ||||
| { | ||||
| 	qse_mchar_t* fmt; | ||||
| 	qse_size_t len; | ||||
| 	qse_awk_val_t* retv; | ||||
|  | ||||
| 	fmt = qse_awk_rtx_valtombsdup (rtx, qse_awk_rtx_getarg (rtx, 0), &len); | ||||
| 	if (fmt)  | ||||
| 	{ | ||||
| 		qse_ntime_t nt; | ||||
| 		qse_btime_t bt; | ||||
| 		qse_awk_int_t tmpsec; | ||||
|  | ||||
| 		nt.nsec = 0; | ||||
| 		if (qse_awk_rtx_valtoint (rtx, qse_awk_rtx_getarg (rtx, 1), &tmpsec) <= -1)  | ||||
| 		{ | ||||
| 			nt.sec = 0; | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			nt.sec = tmpsec; | ||||
| 		} | ||||
|  | ||||
| 		if (qse_localtime (&nt, &bt) >= 0) | ||||
| 		{ | ||||
| 			qse_mchar_t tmpbuf[64], * tmpptr; | ||||
| 			struct tm tm; | ||||
| 			qse_size_t sl; | ||||
|  | ||||
| 			QSE_MEMSET (&tm, 0, QSE_SIZEOF(tm)); | ||||
| 			tm.tm_year = bt.year; | ||||
| 			tm.tm_mon = bt.mon; | ||||
| 			tm.tm_mday = bt.mday; | ||||
| 			tm.tm_hour = bt.hour; | ||||
| 			tm.tm_min = bt.min; | ||||
| 			tm.tm_sec = bt.sec; | ||||
| 			tm.tm_isdst = bt.isdst; | ||||
|  | ||||
| 			sl = strftime (tmpbuf, QSE_COUNTOF(tmpbuf), fmt, &tm); | ||||
| 			if (sl <= 0 || sl >= QSE_COUNTOF(tmpbuf)) | ||||
| 			{ | ||||
| 				/* buffer too small */ | ||||
| 				qse_mchar_t* tmp; | ||||
| 				qse_size_t tmpcapa, i, count = 0; | ||||
|  | ||||
| /* | ||||
| man strftime >>> | ||||
|  | ||||
| RETURN VALUE | ||||
|        The strftime() function returns the number of bytes placed in the array s, not including the  terminating  null  byte,  provided  the | ||||
|        string,  including  the  terminating  null  byte,  fits.  Otherwise, it returns 0, and the contents of the array is undefined.  (This | ||||
|        behavior applies since at least libc 4.4.4; very old versions of libc, such as libc 4.4.1, would return max  if  the  array  was  too | ||||
|        small.) | ||||
|  | ||||
|        Note that the return value 0 does not necessarily indicate an error; for example, in many locales %p yields an empty string. | ||||
|   | ||||
| -------------------------------------------------------------------------------------- | ||||
| *  | ||||
| I use 'count' to limit the maximum number of retries when 0 is returned. | ||||
| */ | ||||
|  | ||||
| 				for (i = 0; i < len;) | ||||
| 				{ | ||||
| 					if (fmt[i] == QSE_MT('%'))  | ||||
| 					{ | ||||
| 						count++; /* the nubmer of % specifier */ | ||||
| 						i++; | ||||
| 						if (i < len) i++; | ||||
| 					} | ||||
| 					else i++; | ||||
| 				} | ||||
|  | ||||
| 				tmpptr = QSE_NULL; | ||||
| 				tmpcapa = QSE_COUNTOF(tmpbuf); | ||||
| 				if (tmpcapa < len) tmpcapa = len; | ||||
|  | ||||
| 				do | ||||
| 				{ | ||||
| 					if (count <= 0)  | ||||
| 					{ | ||||
| 						if (tmpptr) qse_awk_rtx_freemem (rtx, tmpptr); | ||||
| 						tmpbuf[0] = QSE_MT('\0'); | ||||
| 						tmpptr = tmpbuf; | ||||
| 						break; | ||||
| 					} | ||||
| 					count--; | ||||
|  | ||||
| 					tmpcapa *= 2; | ||||
| 					tmp = qse_awk_rtx_reallocmem (rtx, tmpptr, tmpcapa * QSE_SIZEOF(*tmpptr)); | ||||
| 					if (!tmp)  | ||||
| 					{ | ||||
| 						if (tmpptr) qse_awk_rtx_freemem (rtx, tmpptr); | ||||
| 						tmpbuf[0] = QSE_MT('\0'); | ||||
| 						tmpptr = tmpbuf; | ||||
| 						break; | ||||
| 					} | ||||
|  | ||||
| 					tmpptr = tmp; | ||||
| 					sl = strftime (tmpptr, tmpcapa, fmt, &tm); | ||||
| 				} | ||||
| 				while (sl <= 0 || sl >= tmpcapa); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				tmpptr = tmpbuf; | ||||
| 			} | ||||
| 			qse_awk_rtx_freemem (rtx, fmt); | ||||
|  | ||||
| 			retv = qse_awk_rtx_makestrvalwithmbs (rtx, tmpptr); | ||||
| 			if (tmpptr && tmpptr != tmpbuf) qse_awk_rtx_freemem (rtx, tmpptr); | ||||
| 			if (retv == QSE_NULL) return -1; | ||||
|  | ||||
| 			qse_awk_rtx_setretval (rtx, retv); | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			qse_awk_rtx_freemem (rtx, fmt); | ||||
| 		} | ||||
| 	} | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| static int fnc_getenv (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) | ||||
| { | ||||
| 	qse_mchar_t* var; | ||||
| @ -544,7 +753,7 @@ static int fnc_getnwifcfg (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) | ||||
|  | ||||
| 			if (qse_getnwifcfg (&cfg) >= 0) | ||||
| 			{ | ||||
| 				/* make a map value containg configuration */	 | ||||
| 				/* make a map value containg configuration */ | ||||
| 				qse_awk_int_t index, mtu; | ||||
| 				qse_char_t addr[128]; | ||||
| 				qse_char_t mask[128]; | ||||
| @ -693,9 +902,12 @@ static fnctab_t fnctab[] = | ||||
| 	{ QSE_T("gettime"),    { { 0, 0, QSE_NULL     }, fnc_gettime,    0  } }, | ||||
| 	{ QSE_T("getuid"),     { { 0, 0, QSE_NULL     }, fnc_getuid,     0  } }, | ||||
| 	{ QSE_T("kill"),       { { 2, 2, QSE_NULL     }, fnc_kill,       0  } }, | ||||
| 	{ QSE_T("mktime"),     { { 0, 1, QSE_NULL     }, fnc_mktime,     0  } }, | ||||
| 	{ QSE_T("settime"),    { { 1, 1, QSE_NULL     }, fnc_settime,    0  } }, | ||||
| 	{ QSE_T("sleep"),      { { 1, 1, QSE_NULL     }, fnc_sleep,      0  } }, | ||||
| 	{ QSE_T("strftime"),   { { 2, 2, QSE_NULL     }, fnc_strftime,   0  } }, | ||||
| 	{ QSE_T("system"),     { { 1, 1, QSE_NULL     }, fnc_system,     0  } }, | ||||
| 	{ QSE_T("systime"),    { { 0, 0, QSE_NULL     }, fnc_gettime,    0  } }, /* alias to gettime() */ | ||||
| 	{ QSE_T("wait"),       { { 1, 1, QSE_NULL     }, fnc_wait,       0  } } | ||||
| }; | ||||
|  | ||||
|  | ||||
| @ -20,7 +20,8 @@ libqsesys_la_LIBADD = -lqsecmn $(PTHREAD_LIBS) | ||||
| if ENABLE_CXX | ||||
| lib_LTLIBRARIES += libqsesysxx.la | ||||
| libqsesysxx_la_SOURCES = \ | ||||
| 	SocketAddress.cpp | ||||
| 	SocketAddress.cpp \ | ||||
| 	Socket.cpp | ||||
| libqsesysxx_la_LDFLAGS = -L. -L../cmn -version-info 1:0:0 -no-undefined | ||||
| libqsesysxx_la_LIBADD = -lqsecmnxx -lqsecmn  | ||||
| endif | ||||
|  | ||||
| @ -140,8 +140,9 @@ libqsesys_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||||
| 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libqsesys_la_CFLAGS) \ | ||||
| 	$(CFLAGS) $(libqsesys_la_LDFLAGS) $(LDFLAGS) -o $@ | ||||
| libqsesysxx_la_DEPENDENCIES = | ||||
| am__libqsesysxx_la_SOURCES_DIST = SocketAddress.cpp | ||||
| @ENABLE_CXX_TRUE@am_libqsesysxx_la_OBJECTS = SocketAddress.lo | ||||
| am__libqsesysxx_la_SOURCES_DIST = SocketAddress.cpp Socket.cpp | ||||
| @ENABLE_CXX_TRUE@am_libqsesysxx_la_OBJECTS = SocketAddress.lo \ | ||||
| @ENABLE_CXX_TRUE@	Socket.lo | ||||
| libqsesysxx_la_OBJECTS = $(am_libqsesysxx_la_OBJECTS) | ||||
| libqsesysxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ | ||||
| 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ | ||||
| @ -422,7 +423,8 @@ libqsesys_la_CFLAGS = $(PTHREAD_CFLAGS) | ||||
| libqsesys_la_LDFLAGS = -L../cmn -version-info 1:0:0 -no-undefined | ||||
| libqsesys_la_LIBADD = -lqsecmn $(PTHREAD_LIBS) | ||||
| @ENABLE_CXX_TRUE@libqsesysxx_la_SOURCES = \ | ||||
| @ENABLE_CXX_TRUE@	SocketAddress.cpp | ||||
| @ENABLE_CXX_TRUE@	SocketAddress.cpp \ | ||||
| @ENABLE_CXX_TRUE@	Socket.cpp | ||||
|  | ||||
| @ENABLE_CXX_TRUE@libqsesysxx_la_LDFLAGS = -L. -L../cmn -version-info 1:0:0 -no-undefined | ||||
| @ENABLE_CXX_TRUE@libqsesysxx_la_LIBADD = -lqsecmnxx -lqsecmn  | ||||
| @ -508,6 +510,7 @@ mostlyclean-compile: | ||||
| distclean-compile: | ||||
| 	-rm -f *.tab.c | ||||
|  | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Socket.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SocketAddress.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-cnd.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-intr.Plo@am__quote@ | ||||
|  | ||||
| @ -132,7 +132,6 @@ void SocketAddress::setIpaddr (const qse_ip4ad_t* ipaddr) | ||||
| 	{ | ||||
| 		struct sockaddr_in* v4 = (struct sockaddr_in*)&this->skad; | ||||
| 		QSE_MEMCPY (&v4->sin_addr, ipaddr, QSE_SIZEOF(*ipaddr)); | ||||
|  | ||||
| 	} | ||||
| #endif | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user