*** empty log message ***
This commit is contained in:
		@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * $Id: run.c,v 1.184 2006-08-30 14:23:19 bacon Exp $
 | 
			
		||||
 * $Id: run.c,v 1.185 2006-08-30 14:25:33 bacon Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <xp/awk/awk_i.h>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										82
									
								
								ase/awk/sa.c
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								ase/awk/sa.c
									
									
									
									
									
								
							@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * $Id: sa.c,v 1.30 2006-08-16 11:35:53 bacon Exp $
 | 
			
		||||
 * $Id: sa.c,v 1.31 2006-08-30 14:23:19 bacon Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <xp/awk/awk_i.h>
 | 
			
		||||
@ -123,79 +123,25 @@ xp_char_t* xp_strxnstr (
 | 
			
		||||
xp_char_t* xp_strtok (const xp_char_t* s, 
 | 
			
		||||
	const xp_char_t* delim, xp_char_t** tok, xp_size_t* tok_len)
 | 
			
		||||
{
 | 
			
		||||
	const xp_char_t* p = s, *d;
 | 
			
		||||
	const xp_char_t* sp = XP_NULL, * ep = XP_NULL;
 | 
			
		||||
	xp_char_t c; 
 | 
			
		||||
	int delim_mode;
 | 
			
		||||
 | 
			
		||||
	/* skip preceding space xp_char_tacters */
 | 
			
		||||
	while (/* *p != XP_T('\0') && */ xp_isspace(*p)) p++;
 | 
			
		||||
 | 
			
		||||
	if (delim == XP_NULL) delim_mode = 0;
 | 
			
		||||
	else {
 | 
			
		||||
		delim_mode = 1;
 | 
			
		||||
		for (d = delim; *d != XP_T('\0'); d++) 
 | 
			
		||||
			if (!xp_isspace(*d)) delim_mode = 2;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (delim_mode == 0) { 
 | 
			
		||||
		/* when XP_NULL is given as "delim", it has an effect of cutting
 | 
			
		||||
		   preceding and trailing space characters off "s". */
 | 
			
		||||
		while ((c = *p) != XP_T('\0')) 
 | 
			
		||||
		{
 | 
			
		||||
			if (!xp_isspace(c)) 
 | 
			
		||||
			{
 | 
			
		||||
				if (sp == XP_NULL) sp = p;
 | 
			
		||||
				ep = p;
 | 
			
		||||
			}
 | 
			
		||||
			p++;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else if (delim_mode == 1) 
 | 
			
		||||
	{
 | 
			
		||||
		while ((c = *p) != XP_T('\0')) 
 | 
			
		||||
		{
 | 
			
		||||
			if (xp_isspace(c)) break;
 | 
			
		||||
 | 
			
		||||
			if (sp == XP_NULL) sp = p;
 | 
			
		||||
			ep = p++;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else /* if (delim_mode == 2) */
 | 
			
		||||
	{ 
 | 
			
		||||
		while ((c = *p) != XP_T('\0')) {
 | 
			
		||||
			if (xp_isspace(c)) {
 | 
			
		||||
				p++;
 | 
			
		||||
				continue;
 | 
			
		||||
			}
 | 
			
		||||
			for (d = delim; *d; d++) {
 | 
			
		||||
				if (c == *d) {
 | 
			
		||||
					goto exit_loop;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			if (sp == XP_NULL) sp = p;
 | 
			
		||||
			ep = p++;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
exit_loop:
 | 
			
		||||
	if (sp == XP_NULL) {
 | 
			
		||||
		*tok = XP_NULL;
 | 
			
		||||
		*tok_len = (xp_size_t)0;
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		*tok = (xp_char_t*)sp;
 | 
			
		||||
		*tok_len = ep - sp + 1;
 | 
			
		||||
	}
 | 
			
		||||
	return (c == XP_T('\0'))? XP_NULL: ((xp_char_t*)++p);
 | 
			
		||||
	return xp_strxntok (
 | 
			
		||||
		s, xp_strlen(s), delim, xp_strlen(delim), tok, tok_len);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
xp_char_t* xp_strxtok (const xp_char_t* s, xp_size_t len,
 | 
			
		||||
	const xp_char_t* delim, xp_char_t** tok, xp_size_t* tok_len)
 | 
			
		||||
{
 | 
			
		||||
	return xp_strxntok (s, len, delim, xp_strlen(delim), tok, tok_len);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
xp_char_t* xp_strxntok (
 | 
			
		||||
	const xp_char_t* s, xp_size_t len,
 | 
			
		||||
	const xp_char_t* delim, xp_size_t delim_len, 
 | 
			
		||||
	xp_char_t** tok, xp_size_t* tok_len)
 | 
			
		||||
{
 | 
			
		||||
	const xp_char_t* p = s, *d;
 | 
			
		||||
	const xp_char_t* end = s + len;	
 | 
			
		||||
	const xp_char_t* sp = XP_NULL, * ep = XP_NULL;
 | 
			
		||||
	const xp_char_t* delim_end = delim + delim_len;
 | 
			
		||||
	xp_char_t c; 
 | 
			
		||||
	int delim_mode;
 | 
			
		||||
 | 
			
		||||
@ -206,7 +152,7 @@ xp_char_t* xp_strxtok (const xp_char_t* s, xp_size_t len,
 | 
			
		||||
	else 
 | 
			
		||||
	{
 | 
			
		||||
		delim_mode = 1;
 | 
			
		||||
		for (d = delim; *d != XP_T('\0'); d++) 
 | 
			
		||||
		for (d = delim; d < delim_end; d++) 
 | 
			
		||||
			if (!xp_isspace(*d)) delim_mode = 2;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -246,7 +192,7 @@ xp_char_t* xp_strxtok (const xp_char_t* s, xp_size_t len,
 | 
			
		||||
				p++;
 | 
			
		||||
				continue;
 | 
			
		||||
			}
 | 
			
		||||
			for (d = delim; *d != XP_T('\0'); d++) 
 | 
			
		||||
			for (d = delim; d < delim_end; d++) 
 | 
			
		||||
			{
 | 
			
		||||
				if (c == *d) goto exit_loop;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
 * $Id: sa.h,v 1.32 2006-08-30 07:15:14 bacon Exp $
 | 
			
		||||
 * $Id: sa.h,v 1.33 2006-08-30 14:23:19 bacon Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef _XP_AWK_SA_H_
 | 
			
		||||
@ -153,6 +153,12 @@ xp_char_t* xp_strtok (const xp_char_t* s,
 | 
			
		||||
xp_char_t* xp_strxtok (const xp_char_t* s, xp_size_t len,
 | 
			
		||||
	const xp_char_t* delim, xp_char_t** tok, xp_size_t* tok_len);
 | 
			
		||||
 | 
			
		||||
#define xp_strxntok xp_awk_strxntok
 | 
			
		||||
xp_char_t* xp_strxntok (
 | 
			
		||||
	const xp_char_t* s, xp_size_t len,
 | 
			
		||||
	const xp_char_t* delim, xp_size_t delim_len,
 | 
			
		||||
	xp_char_t** tok, xp_size_t* tok_len);
 | 
			
		||||
 | 
			
		||||
#define xp_printf xp_awk_printf
 | 
			
		||||
int xp_printf (const xp_char_t* fmt, ...);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,7 @@
 | 
			
		||||
global x, y;
 | 
			
		||||
 | 
			
		||||
BEGIN { FS="A"; }
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
	print "NF = " NF;
 | 
			
		||||
	for (i = 0; i < 10; i++)
 | 
			
		||||
@ -10,11 +12,12 @@ global x, y;
 | 
			
		||||
 | 
			
		||||
	$1 = 100;
 | 
			
		||||
 | 
			
		||||
	//$1 = $2;
 | 
			
		||||
	//$3 = $2;
 | 
			
		||||
	//$2 = $2;
 | 
			
		||||
	/*$1 = $2;
 | 
			
		||||
	$3 = $2;
 | 
			
		||||
	$2 = $2;*/
 | 
			
		||||
 | 
			
		||||
	/*OFS["1234"]=":";*/
 | 
			
		||||
 | 
			
		||||
	OFS["1234"]=":";
 | 
			
		||||
	$20 = 10;
 | 
			
		||||
	print $0;
 | 
			
		||||
	print "--------------------";
 | 
			
		||||
@ -22,4 +25,4 @@ global x, y;
 | 
			
		||||
	print "====================";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
END { system ("dir /w/p"); print sin(270); }
 | 
			
		||||
END { fflush (); system ("dir /w/p"); print sin(270); }
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user