mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* util.c: parenthesize macro arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									1ca8760902
								
							
						
					
					
						commit
						ee0f448fea
					
				
					 2 changed files with 39 additions and 35 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,7 @@
 | 
			
		|||
Mon Jan 10 11:22:02 2011  Tanaka Akira  <akr@fsij.org>
 | 
			
		||||
 | 
			
		||||
	* util.c: parenthesize macro arguments.
 | 
			
		||||
 | 
			
		||||
Mon Jan 10 07:41:31 2011  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
 | 
			
		||||
 | 
			
		||||
	* misc/README: mention rdoc-mode.el and ruby-style.el.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										70
									
								
								util.c
									
										
									
									
									
								
							
							
						
						
									
										70
									
								
								util.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -180,7 +180,7 @@ ruby_strtoul(const char *str, char **endptr, int base)
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef S_ISDIR
 | 
			
		||||
#   define S_ISDIR(m) ((m & S_IFMT) == S_IFDIR)
 | 
			
		||||
#   define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__CYGWIN32__) || defined(_WIN32)
 | 
			
		||||
| 
						 | 
				
			
			@ -259,7 +259,7 @@ static int valid_filename(const char *s);
 | 
			
		|||
static const char suffix1[] = ".$$$";
 | 
			
		||||
static const char suffix2[] = ".~~~";
 | 
			
		||||
 | 
			
		||||
#define strEQ(s1,s2) (strcmp(s1,s2) == 0)
 | 
			
		||||
#define strEQ(s1,s2) (strcmp((s1),(s2)) == 0)
 | 
			
		||||
 | 
			
		||||
extern const char *ruby_find_basename(const char *, long *, long *);
 | 
			
		||||
extern const char *ruby_find_extname(const char *, long *);
 | 
			
		||||
| 
						 | 
				
			
			@ -373,12 +373,12 @@ valid_filename(const char *s)
 | 
			
		|||
#define D ((int*)d)
 | 
			
		||||
 | 
			
		||||
#define mmprepare(base, size) do {\
 | 
			
		||||
 if (((VALUE)base & (0x3)) == 0)\
 | 
			
		||||
   if (size >= 16) mmkind = 1;\
 | 
			
		||||
   else            mmkind = 0;\
 | 
			
		||||
 else              mmkind = -1;\
 | 
			
		||||
 high = (size & (~0xf));\
 | 
			
		||||
 low  = (size &  0x0c);\
 | 
			
		||||
 if (((VALUE)(base) & (0x3)) == 0)\
 | 
			
		||||
   if ((size) >= 16) mmkind = 1;\
 | 
			
		||||
   else              mmkind = 0;\
 | 
			
		||||
 else                mmkind = -1;\
 | 
			
		||||
 high = ((size) & (~0xf));\
 | 
			
		||||
 low  = ((size) &  0x0c);\
 | 
			
		||||
} while (0)\
 | 
			
		||||
 | 
			
		||||
#define mmarg mmkind, size, high, low
 | 
			
		||||
| 
						 | 
				
			
			@ -443,11 +443,11 @@ static void mmrot3_(register char *a, register char *b, register char *c, int mm
 | 
			
		|||
 | 
			
		||||
typedef struct { char *LL, *RR; } stack_node; /* Stack structure for L,l,R,r */
 | 
			
		||||
#define PUSH(ll,rr) do { top->LL = (ll); top->RR = (rr); ++top; } while (0)  /* Push L,l,R,r */
 | 
			
		||||
#define POP(ll,rr)  do { --top; ll = top->LL; rr = top->RR; } while (0)      /* Pop L,l,R,r */
 | 
			
		||||
#define POP(ll,rr)  do { --top; (ll) = top->LL; (rr) = top->RR; } while (0)      /* Pop L,l,R,r */
 | 
			
		||||
 | 
			
		||||
#define med3(a,b,c) ((*cmp)(a,b,d)<0 ?                                   \
 | 
			
		||||
                       ((*cmp)(b,c,d)<0 ? b : ((*cmp)(a,c,d)<0 ? c : a)) : \
 | 
			
		||||
                       ((*cmp)(b,c,d)>0 ? b : ((*cmp)(a,c,d)<0 ? a : c)))
 | 
			
		||||
#define med3(a,b,c) ((*cmp)((a),(b),d)<0 ?                                   \
 | 
			
		||||
                       ((*cmp)((b),(c),d)<0 ? (b) : ((*cmp)((a),(c),d)<0 ? (c) : (a))) : \
 | 
			
		||||
                       ((*cmp)((b),(c),d)>0 ? (b) : ((*cmp)((a),(c),d)<0 ? (a) : (c))))
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
ruby_qsort(void* base, const size_t nel, const size_t size,
 | 
			
		||||
| 
						 | 
				
			
			@ -839,7 +839,7 @@ ruby_getcwd(void)
 | 
			
		|||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
#include "stdio.h"
 | 
			
		||||
#define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);}
 | 
			
		||||
#define Bug(x) {fprintf(stderr, "%s\n", (x)); exit(1);}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "stdlib.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -924,24 +924,24 @@ typedef union { double d; ULong L[2]; } U;
 | 
			
		|||
 | 
			
		||||
#ifdef YES_ALIAS
 | 
			
		||||
typedef double double_u;
 | 
			
		||||
#  define dval(x) x
 | 
			
		||||
#  define dval(x) (x)
 | 
			
		||||
#  ifdef IEEE_LITTLE_ENDIAN
 | 
			
		||||
#    define word0(x) (((ULong *)&x)[1])
 | 
			
		||||
#    define word1(x) (((ULong *)&x)[0])
 | 
			
		||||
#    define word0(x) (((ULong *)&(x))[1])
 | 
			
		||||
#    define word1(x) (((ULong *)&(x))[0])
 | 
			
		||||
#  else
 | 
			
		||||
#    define word0(x) (((ULong *)&x)[0])
 | 
			
		||||
#    define word1(x) (((ULong *)&x)[1])
 | 
			
		||||
#    define word0(x) (((ULong *)&(x))[0])
 | 
			
		||||
#    define word1(x) (((ULong *)&(x))[1])
 | 
			
		||||
#  endif
 | 
			
		||||
#else
 | 
			
		||||
typedef U double_u;
 | 
			
		||||
#  ifdef IEEE_LITTLE_ENDIAN
 | 
			
		||||
#    define word0(x) (x.L[1])
 | 
			
		||||
#    define word1(x) (x.L[0])
 | 
			
		||||
#    define word0(x) ((x).L[1])
 | 
			
		||||
#    define word1(x) ((x).L[0])
 | 
			
		||||
#  else
 | 
			
		||||
#    define word0(x) (x.L[0])
 | 
			
		||||
#    define word1(x) (x.L[1])
 | 
			
		||||
#    define word0(x) ((x).L[0])
 | 
			
		||||
#    define word1(x) ((x).L[1])
 | 
			
		||||
#  endif
 | 
			
		||||
#  define dval(x) (x.d)
 | 
			
		||||
#  define dval(x) ((x).d)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* The following definition of Storeinc is appropriate for MIPS processors.
 | 
			
		||||
| 
						 | 
				
			
			@ -949,11 +949,11 @@ typedef U double_u;
 | 
			
		|||
 * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff)
 | 
			
		||||
 */
 | 
			
		||||
#if defined(IEEE_LITTLE_ENDIAN) + defined(VAX) + defined(__arm__)
 | 
			
		||||
#define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \
 | 
			
		||||
((unsigned short *)a)[0] = (unsigned short)c, a++)
 | 
			
		||||
#define Storeinc(a,b,c) (((unsigned short *)(a))[1] = (unsigned short)(b), \
 | 
			
		||||
((unsigned short *)(a))[0] = (unsigned short)(c), (a)++)
 | 
			
		||||
#else
 | 
			
		||||
#define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \
 | 
			
		||||
((unsigned short *)a)[1] = (unsigned short)c, a++)
 | 
			
		||||
#define Storeinc(a,b,c) (((unsigned short *)(a))[0] = (unsigned short)(b), \
 | 
			
		||||
((unsigned short *)(a))[1] = (unsigned short)(c), (a)++)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* #define P DBL_MANT_DIG */
 | 
			
		||||
| 
						 | 
				
			
			@ -1076,12 +1076,12 @@ typedef U double_u;
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef RND_PRODQUOT
 | 
			
		||||
#define rounded_product(a,b) a = rnd_prod(a, b)
 | 
			
		||||
#define rounded_quotient(a,b) a = rnd_quot(a, b)
 | 
			
		||||
#define rounded_product(a,b) ((a) = rnd_prod((a), (b)))
 | 
			
		||||
#define rounded_quotient(a,b) ((a) = rnd_quot((a), (b)))
 | 
			
		||||
extern double rnd_prod(double, double), rnd_quot(double, double);
 | 
			
		||||
#else
 | 
			
		||||
#define rounded_product(a,b) a *= b
 | 
			
		||||
#define rounded_quotient(a,b) a /= b
 | 
			
		||||
#define rounded_product(a,b) ((a) *= (b))
 | 
			
		||||
#define rounded_quotient(a,b) ((a) /= (b))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1))
 | 
			
		||||
| 
						 | 
				
			
			@ -1180,8 +1180,8 @@ Bfree(Bigint *v)
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
 | 
			
		||||
y->wds*sizeof(Long) + 2*sizeof(int))
 | 
			
		||||
#define Bcopy(x,y) memcpy((char *)&(x)->sign, (char *)&(y)->sign, \
 | 
			
		||||
(y)->wds*sizeof(Long) + 2*sizeof(int))
 | 
			
		||||
 | 
			
		||||
static Bigint *
 | 
			
		||||
multadd(Bigint *b, int m, int a)   /* multiply by m and add a */
 | 
			
		||||
| 
						 | 
				
			
			@ -3159,7 +3159,7 @@ nrv_alloc(const char *s, char **rve, size_t n)
 | 
			
		|||
    return rv;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define rv_strdup(s, rve) nrv_alloc(s, rve, strlen(s)+1)
 | 
			
		||||
#define rv_strdup(s, rve) nrv_alloc((s), (rve), strlen(s)+1)
 | 
			
		||||
 | 
			
		||||
#ifndef MULTIPLE_THREADS
 | 
			
		||||
/* freedtoa(s) must be used to free values s returned by dtoa
 | 
			
		||||
| 
						 | 
				
			
			@ -3934,7 +3934,7 @@ ruby_each_words(const char *str, void (*func)(const char*, int, void*), void *ar
 | 
			
		|||
#define	DBL_ADJ	(DBL_MAX_EXP - 2)
 | 
			
		||||
#define	SIGFIGS	((DBL_MANT_DIG + 3) / 4 + 1)
 | 
			
		||||
#define dexp_get(u) ((int)(word0(u) >> Exp_shift) & ~Exp_msk1)
 | 
			
		||||
#define dexp_set(u,v) (word0(u) = (((int)(word0(u)) & ~Exp_mask) | (v << Exp_shift)))
 | 
			
		||||
#define dexp_set(u,v) (word0(u) = (((int)(word0(u)) & ~Exp_mask) | ((v) << Exp_shift)))
 | 
			
		||||
#define dmanh_get(u) ((uint32_t)(word0(u) & Frac_mask))
 | 
			
		||||
#define dmanl_get(u) ((uint32_t)word1(u))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue