From c2d0d7e77bd2570ce39c1ec510e5197557487405 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Sat, 4 Nov 2006 06:19:59 +0000 Subject: [PATCH] Patch from upstream --- R-2.4.0-patched-2006-11-03.patch | 10076 +++++++++++++++++++++++++++++ 1 file changed, 10076 insertions(+) create mode 100644 R-2.4.0-patched-2006-11-03.patch diff --git a/R-2.4.0-patched-2006-11-03.patch b/R-2.4.0-patched-2006-11-03.patch new file mode 100644 index 0000000..4c82dd7 --- /dev/null +++ b/R-2.4.0-patched-2006-11-03.patch @@ -0,0 +1,10076 @@ +diff -urp R-2.4.0.old/config.site R-2.4.0/config.site +--- R-2.4.0.old/config.site 2006-09-04 09:41:48.000000000 -0500 ++++ R-2.4.0/config.site 2006-10-28 14:36:13.000000000 -0500 +@@ -43,12 +43,16 @@ + ## If unspecified, a search is made for gcc and cc (in that order). + ## To override this choice, specify the name of the command which runs + ## the compiler here, for example 'c89'. ++## It is also convenient to set the architecture here, e.g. 'gcc -m32'. ++## NB, as from R 2.5.0 configure will append flags for C99 compliance, ++## e.g. CC=gcc -std=gnu99 ++## To avoid this, set contradictory flags (such as -ansi) as part of CFLAGS. + ## CC= + + ## Debugging and optimization options for the C compiler. + ## Use this to specify CFLAGS for the version of the C compiler + ## specified above. +-## If unspecified, defaults to '-g -O2 -std=gnu99' for gcc, ++## If unspecified, defaults to '-g -O2' for gcc, + ## and '-g' in all other cases except icc (for which see R-admin.html). + ## CFLAGS= + +diff -urp R-2.4.0.old/configure R-2.4.0/configure +--- R-2.4.0.old/configure 2006-10-03 05:01:50.000000000 -0500 ++++ R-2.4.0/configure 2006-11-03 19:41:47.000000000 -0600 +@@ -4629,6 +4629,182 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS con + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu + ++## next is a macro borrowed from autoconf 2.60 ++ echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 ++echo $ECHO_N "checking for $CC option to accept ISO C99... $ECHO_C" >&6 ++if test "${ac_cv_prog_cc_c99+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_cv_prog_cc_c99=no ++ac_save_CC=$CC ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++#include ++ ++struct incomplete_array ++{ ++ int datasize; ++ double data[]; ++}; ++ ++struct named_init { ++ int number; ++ const wchar_t *name; ++ double average; ++}; ++ ++typedef const char *ccp; ++ ++static inline int ++test_restrict(ccp restrict text) ++{ ++ // See if C++-style comments work. ++ // Iterate through items via the restricted pointer. ++ // Also check for declarations in for loops. ++ for (unsigned int i = 0; *(text+i) != '\0'; ++i) ++ continue; ++ return 0; ++} ++ ++// Check varargs and va_copy work. ++static void ++test_varargs(const char *format, ...) ++{ ++ va_list args; ++ va_start(args, format); ++ va_list args_copy; ++ va_copy(args_copy, args); ++ ++ const char *str; ++ int number; ++ float fnumber; ++ ++ while (*format) ++ { ++ switch (*format++) ++ { ++ case 's': // string ++ str = va_arg(args_copy, const char *); ++ break; ++ case 'd': // int ++ number = va_arg(args_copy, int); ++ break; ++ case 'f': // float ++ fnumber = (float) va_arg(args_copy, double); ++ break; ++ default: ++ break; ++ } ++ } ++ va_end(args_copy); ++ va_end(args); ++} ++ ++int ++main () ++{ ++ ++ // Check bool and long long datatypes. ++ _Bool success = false; ++ long long int bignum = -1234567890LL; ++ unsigned long long int ubignum = 1234567890uLL; ++ ++ // Check restrict. ++ if (test_restrict("String literal") != 0) ++ success = true; ++ char *restrict newvar = "Another string"; ++ ++ // Check varargs. ++ test_varargs("s, d' f .", "string", 65, 34.234); ++ ++ // Check incomplete arrays work. ++ struct incomplete_array *ia = ++ malloc(sizeof(struct incomplete_array) + (sizeof(double) * 10)); ++ ia->datasize = 10; ++ for (int i = 0; i < ia->datasize; ++i) ++ ia->data[i] = (double) i * 1.234; ++ ++ // Check named initialisers. ++ struct named_init ni = { ++ .number = 34, ++ .name = L"Test wide string", ++ .average = 543.34343, ++ }; ++ ++ ni.number = 58; ++ ++ int dynamic_array[ni.number]; ++ dynamic_array[43] = 543; ++ ++ // work around unused variable warnings ++ return bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'; ++ ++ ; ++ return 0; ++} ++_ACEOF ++for ac_arg in '' -std=gnu99 -c99 -qlanglvl=extc99 ++do ++ CC="$ac_save_CC $ac_arg" ++ rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_prog_cc_c99=$ac_arg ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++fi ++rm -f conftest.err conftest.$ac_objext ++ test "x$ac_cv_prog_cc_c99" != "xno" && break ++done ++rm -f conftest.$ac_ext ++CC=$ac_save_CC ++ ++fi ++# AC_CACHE_VAL ++case "x$ac_cv_prog_cc_c99" in ++ x) ++ echo "$as_me:$LINENO: result: none needed" >&5 ++echo "${ECHO_T}none needed" >&6 ;; ++ xno) ++ echo "$as_me:$LINENO: result: unsupported" >&5 ++echo "${ECHO_T}unsupported" >&6 ;; ++ *) ++ CC="$CC $ac_cv_prog_cc_c99" ++ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 ++echo "${ECHO_T}$ac_cv_prog_cc_c99" >&6 ;; ++esac ++ ++ ++ + + + ac_ext=c +@@ -5352,7 +5528,7 @@ fi + + + # Provide some information about the compiler. +-echo "$as_me:5355:" \ ++echo "$as_me:5531:" \ + "checking for Fortran 77 compiler version" >&5 + ac_compiler=`set X $ac_compile; echo $2` + { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 +@@ -6181,8 +6357,8 @@ if test "${r_cv_prog_cc_vis}" = yes; the + fi + fi + case "${CC}" in +- ## Intel compiler +- *icc) ++ ## Intel compiler: note that -c99 may have been appended ++ *icc*) + C_VISIBILITY= + ;; + esac +@@ -6794,7 +6970,7 @@ ia64-*-hpux*) + ;; + *-*-irix6*) + # Find out which ABI we are using. +- echo '#line 6797 "configure"' > conftest.$ac_ext ++ echo '#line 6973 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +@@ -8235,11 +8411,11 @@ else + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8238: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:8414: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:8242: \$? = $ac_status" >&5 ++ echo "$as_me:8418: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings +@@ -8468,11 +8644,11 @@ else + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8471: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:8647: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:8475: \$? = $ac_status" >&5 ++ echo "$as_me:8651: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings +@@ -8528,11 +8704,11 @@ else + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8531: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:8707: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:8535: \$? = $ac_status" >&5 ++ echo "$as_me:8711: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -10712,7 +10888,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < conftest.$ac_ext <&5) ++ (eval echo "\"\$as_me:13169: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:12997: \$? = $ac_status" >&5 ++ echo "$as_me:13173: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings +@@ -13050,11 +13226,11 @@ else + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:13053: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:13229: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:13057: \$? = $ac_status" >&5 ++ echo "$as_me:13233: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -14411,7 +14587,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < conftest.$ac_ext <&5) ++ (eval echo "\"\$as_me:15515: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:15343: \$? = $ac_status" >&5 ++ echo "$as_me:15519: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings +@@ -15396,11 +15572,11 @@ else + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:15399: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:15575: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:15403: \$? = $ac_status" >&5 ++ echo "$as_me:15579: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -17430,11 +17606,11 @@ else + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:17433: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:17609: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:17437: \$? = $ac_status" >&5 ++ echo "$as_me:17613: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings +@@ -17663,11 +17839,11 @@ else + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:17666: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:17842: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:17670: \$? = $ac_status" >&5 ++ echo "$as_me:17846: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings +@@ -17723,11 +17899,11 @@ else + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:17726: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:17902: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:17730: \$? = $ac_status" >&5 ++ echo "$as_me:17906: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -19907,7 +20083,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < conftest.$ac_ext <&5 +-echo $ECHO_N "checking whether ${CC} accepts -std=gnu99... $ECHO_C" >&6 +-if eval "test \"\${r_cv_prog_cc_flag_${ac_safe}+set}\" = set"; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +-r_save_CFLAGS="${CFLAGS}" +-CFLAGS="${CFLAGS} -std=gnu99" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>conftest.er1 +- ac_status=$? +- grep -v '^ *+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -z "$ac_c_werror_flag" +- || test ! -s conftest.err' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- eval "r_cv_prog_cc_flag_${ac_safe}=yes" +-else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +-eval "r_cv_prog_cc_flag_${ac_safe}=no" +-fi +-rm -f conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-CFLAGS="${r_save_CFLAGS}" +-ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- +-fi +- +-if eval "test \"`echo '$r_cv_prog_cc_flag_'$ac_safe`\" = yes"; then +- echo "$as_me:$LINENO: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- separator="" +-test -z "${separator}" && separator=" " +-if test -z "${CFLAGS}"; then +- CFLAGS="-std=gnu99" +-else +- CFLAGS="${CFLAGS}${separator}-std=gnu99" +-fi +-else +- echo "$as_me:$LINENO: result: no" >&5 +-echo "${ECHO_T}no" >&6 +-fi +- +- fi +-fi +- + + echo "$as_me:$LINENO: checking whether we can compute C Make dependencies" >&5 + echo $ECHO_N "checking whether we can compute C Make dependencies... $ECHO_C" >&6 +@@ -26535,7 +26621,7 @@ _ACEOF + # flags. + ac_save_FFLAGS=$FFLAGS + FFLAGS="$FFLAGS $ac_verb" +-(eval echo $as_me:26538: \"$ac_link\") >&5 ++(eval echo $as_me:26624: \"$ac_link\") >&5 + ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` + echo "$ac_f77_v_output" >&5 + FFLAGS=$ac_save_FFLAGS +@@ -26613,7 +26699,7 @@ _ACEOF + # flags. + ac_save_FFLAGS=$FFLAGS + FFLAGS="$FFLAGS $ac_cv_prog_f77_v" +-(eval echo $as_me:26616: \"$ac_link\") >&5 ++(eval echo $as_me:26702: \"$ac_link\") >&5 + ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` + echo "$ac_f77_v_output" >&5 + FFLAGS=$ac_save_FFLAGS +@@ -26859,7 +26945,7 @@ _ACEOF + # flags. + r_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $r_verb" +-(eval echo $as_me:26862: \"$ac_link\") >&5 ++(eval echo $as_me:26948: \"$ac_link\") >&5 + r_c_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` + echo "$r_c_v_output" >&5 + CFLAGS=$r_save_CFLAGS +@@ -26941,7 +27027,7 @@ _ACEOF + # flags. + r_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $r_cv_prog_c_v" +-(eval echo $as_me:26944: \"$ac_link\") >&5 ++(eval echo $as_me:27030: \"$ac_link\") >&5 + r_c_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` + echo "$r_c_v_output" >&5 + CFLAGS=$r_save_CFLAGS +@@ -29188,7 +29274,7 @@ fi + linux*) + case "${CC}" in + ## Intel compiler +- *icc) ++ *icc*) + ## icc declares __GNUC__, so it picks up CFLAGS intended for gcc. + if test "$ac_test_CFLAGS" != set; then + if test $ac_cv_prog_cc_g = yes; then +@@ -29922,12 +30008,12 @@ echo "$as_me: WARNING: Use of flat names + ;; + linux*) # GNU Linux/ELF + case "${CC}" in +- ## Intel compiler +- *icc) ++ ## Intel compiler: note that -c99 may have been appended ++ *icc*) + cpicflags="-fpic" + ;; + ## Portland Group +- *pgcc) ++ *pgcc*) + cpicflags="-fpic" + ;; + esac +@@ -37985,7 +38071,7 @@ ac_x_header_dirs=' + /usr/openwin/share/include' + + if test "$ac_x_includes" = no; then +- # Guess where to find include files, by looking for Intrinsic.h. ++ # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ +@@ -37993,7 +38079,7 @@ _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include ++#include + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -38020,7 +38106,7 @@ else + sed 's/^/| /' conftest.$ac_ext >&5 + + for ac_dir in $ac_x_header_dirs; do +- if test -r "$ac_dir/X11/Intrinsic.h"; then ++ if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +@@ -38041,7 +38127,7 @@ _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include ++#include + #ifdef F77_DUMMY_MAIN + + # ifdef __cplusplus +@@ -38053,7 +38139,7 @@ cat >>conftest.$ac_ext <<_ACEOF + int + main () + { +-XtMalloc (0) ++XrmInitialize () + ; + return 0; + } +@@ -43510,6 +43596,7 @@ echo "${ECHO_T}in ${JAVA_HOME}" >&6 + case "${host_os}" in + darwin*) + JAVA_LIBS="-framework JavaVM" ++ JAVA_LIBS0="-framework JavaVM" + JAVA_LD_LIBRARY_PATH= + ;; + *) +@@ -43659,7 +43746,7 @@ fi + + + # Provide some information about the compiler. +-echo "$as_me:43662:" \ ++echo "$as_me:43748:" \ + "checking for Fortran compiler version" >&5 + ac_compiler=`set X $ac_compile; echo $2` + { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 +diff -urp R-2.4.0.old/configure.ac R-2.4.0/configure.ac +--- R-2.4.0.old/configure.ac 2006-09-22 21:05:11.000000000 -0500 ++++ R-2.4.0/configure.ac 2006-10-28 14:36:13.000000000 -0500 +@@ -534,6 +534,8 @@ R_PROG_BROWSER + R_PROG_PDFVIEWER + + AC_PROG_CC ++## next is a macro borrowed from autoconf 2.60 ++AC_PROG_CC_C99 + + AC_PROG_GCC_TRADITIONAL + AC_PROG_CPP +@@ -752,12 +754,6 @@ AC_CHECK_SIZEOF(long, 4) + AC_CHECK_SIZEOF(long long, 0) + AC_CHECK_SIZEOF(long double, 0) + +-if test "$ac_test_CFLAGS" != set; then +- if test "$GCC" = yes; then +- R_PROG_CC_FLAG([-std=gnu99], R_SH_VAR_ADD(CFLAGS, [-std=gnu99])) +- fi +-fi +- + R_PROG_CC_MAKEFRAG + R_PROG_CC_LO_MAKEFRAG + +@@ -890,7 +886,7 @@ case "${host_os}" in + linux*) + case "${CC}" in + ## Intel compiler +- *icc) ++ *icc*) + ## icc declares __GNUC__, so it picks up CFLAGS intended for gcc. + if test "$ac_test_CFLAGS" != set; then + if test $ac_cv_prog_cc_g = yes; then +@@ -1289,12 +1285,12 @@ rm -f libconftest${DYLIB_EXT} conftest.c + ;; + linux*) # GNU Linux/ELF + case "${CC}" in +- ## Intel compiler +- *icc) ++ ## Intel compiler: note that -c99 may have been appended ++ *icc*) + cpicflags="-fpic" + ;; + ## Portland Group +- *pgcc) ++ *pgcc*) + cpicflags="-fpic" + ;; + esac +diff -urp R-2.4.0.old/doc/CRAN_mirrors.csv R-2.4.0/doc/CRAN_mirrors.csv +--- R-2.4.0.old/doc/CRAN_mirrors.csv 2006-09-16 21:05:15.000000000 -0500 ++++ R-2.4.0/doc/CRAN_mirrors.csv 2006-10-28 14:36:02.000000000 -0500 +@@ -32,7 +32,7 @@ Israel,Israel,Tel-Aviv,http://cran.activ + "Japan (Aizu)",Japan,Aizu,ftp://ftp.u-aizu.ac.jp/pub/lang/R/CRAN,"University of Aizu", + "Japan (Tokyo)",Japan,Tokyo,ftp://ftp.ecc.u-tokyo.ac.jp/CRAN/,"University of Tokyo","Teru KAMOGASHIRA " + "Japan (Tsukuba)",Japan,Tsukuba,http://cran.md.tsukuba.ac.jp/,"University of Tsukuba", +-Korea,Korea,Seoul,http://bibscvs.snu.ac.kr/R/,"Seoul National University","SungGON Yi " ++Korea,Korea,Seoul,http://bibs.snu.ac.kr/R/,"Seoul National University","SungGON Yi " + Netherlands,Netherlands,Amsterdam,http://cran.nedmirror.nl/,"Nedmirror, Amsterdam",mirror@nedmirror.nl + Norway,Norway,Bergen,http://cran.ii.uib.no/,"University of Bergen",webmaster@ii.uib.no + "Poland (Lublin)",Poland,Lublin,http://novum.am.lublin.pl/CRAN/,"Skubiszewski Medical University, Lublin","Lukasz Komsta " +diff -urp R-2.4.0.old/doc/FAQ R-2.4.0/doc/FAQ +--- R-2.4.0.old/doc/FAQ 2006-10-03 05:02:46.000000000 -0500 ++++ R-2.4.0/doc/FAQ 2006-11-02 10:45:59.000000000 -0600 +@@ -1,6 +1,6 @@ + R FAQ + Frequently Asked Questions on R +-Version 2.4.2006-10-02 ++Version 2.4.2006-10-31 + ISBN 3-900051-08-9 + Kurt Hornik + +@@ -95,6 +95,7 @@ R FAQ + 7.34 How can I save the result of each iteration in a loop into a separate file? + 7.35 Why are p-values not displayed when using lmer()? + 7.36 Why are there unwanted lines between polygons in PDF output viewed in Adobe Reader? ++ 7.37 Why does backslash behave strangely inside strings? + 8 R Programming + 8.1 How should I write summary methods? + 8.2 How can I debug dynamically loaded code? +@@ -388,20 +389,21 @@ port of R for Macintosh is no longer sup + + The `bin/linux' directory of a CRAN site contains the following packages. + +- CPU Versions Provider +- ------------------------------------------------------------------- +- Debian et al. i386 stable/oldstable Christian Steigies +- Mandrake i386 10.0 Michele Alzetta +- Red Hat i386 FC3/FC4/FC5 Martyn Plummer +- x86_64 FC3 Brian Ripley +- x86_64 FC4/FC5 Martyn Plummer +- i386 Enterprise Linux Matthew P. Cox +- x86_64 Enterprise Linux Matthew P. Cox +- SuSE i386 7.3/8.0/8.1/8.2 Detlef Steuer +- i586 9.0/9.1/9.2/9.3/10.0/10.1Detlef Steuer +- x86_64 9.2/9.3/10.0/10.1 Detlef Steuer +- Ubuntu i386 dapper Dirk Eddelbuettel +- VineLinux i386 3.2 Susunu Tanimura ++ CPU Versions Provider ++ ------------------------------------------------------------------------ ++ Debian et al. i386 stable/oldstable Christian Steigies ++ Mandrake i386 10.0 Michele Alzetta ++ Red Hat i386 FC3/FC4/FC5/FC6 Martyn Plummer ++ x86_64 FC3 Brian Ripley ++ x86_64 FC4/FC5 Martyn Plummer ++ i386 Enterprise Linux Matthew P. Cox ++ x86_64 Enterprise Linux Matthew P. Cox ++ SuSE i386 7.3/8.0/8.1/8.2 Detlef Steuer ++ i586 9.0/9.1/9.2/9.3/10.0/10.1 Detlef Steuer ++ x86_64 9.2/9.3/10.0/10.1 Detlef Steuer ++ Ubuntu i386 dapper Christian Steigies ++ amd64 dapper Christian Steigies ++ VineLinux i386 3.2 Susunu Tanimura + + Debian packages, maintained by Dirk Eddelbuettel and Doug Bates, have + long been part of the Debian distribution, and can be accessed through APT, +@@ -1211,8 +1213,8 @@ Computational and Graphical Statistics_, + + For a very long time, there was no such thing. + +- XL Solutions (http://www.xlsolutions-corp.com/) is currently beta +-testing a commercially supported version of R named R+ (read R plus). ++ XLSolutions Corporation (http://www.xlsolutions-corp.com/) is currently ++beta testing a commercially supported version of R named R+ (read R plus). + + In addition, REvolution Computing (http://www.revolution-computing.com/) + has released RPro (http://www.revolution-computing.com/rpro.html), an +@@ -1462,6 +1464,9 @@ distributions of R.) + *CompetingRiskFrailty* + Competing risk model with frailties for right censored survival data. + ++*CreditMetrics* ++ Functions for calculating the CreditMetrics risk model. ++ + *DAAG* + Various data sets used in examples and exercises in "Data Analysis and + Graphics Using R" by John H. Maindonald and W. John Brown, 2003. +@@ -1605,6 +1610,9 @@ distributions of R.) + MCMC inference from individual genetic data based on a spatial + statistical model. + ++*GeoXP* ++ Interactive exploratory spatial data analysis. ++ + *GroupSeq* + Computations related to group-seqential boundaries. + +@@ -1651,6 +1659,10 @@ distributions of R.) + Utilities from the Institute of Data Analyses and Process Design, + IDP/ZHW. + ++*IPSUR* ++ Accompanies "Introduction to Probability and Statistics Using R" by G. ++ Andy Chang and G. Jay Kerns(in progress). ++ + *ISwR* + Data sets for "Introductory Statistics with R" by Peter Dalgaard, + 2002, Springer. +@@ -1987,10 +1999,6 @@ distributions of R.) + Transforms with an Implementation in S" by Rene Carmona, Wen L. Hwang + and Bruno Torresani, 1998, Academic Press. + +-*SAGx* +- Retrieval, preparation and analysis of data from the Affymetrix +- GeneChip. +- + *SASmixed* + Data sets and sample linear mixed effects analyses corresponding to the + examples in "SAS System for Mixed Models" by R. C. Littell, G. A. +@@ -2041,6 +2049,9 @@ distributions of R.) + *SparseM* + Basic linear algebra for sparse matrices. + ++*SpherWave* ++ Spherical Wavelets and SW-based spatially adaptive methods. ++ + *StatDataML* + Read and write StatDataML. + +@@ -2086,6 +2097,9 @@ distributions of R.) + Utilities supporting VDC, an open source digital library system for + quantitative data. + ++*VGAM* ++ Vector Generalized Linear and Additive Models. ++ + *VLMC* + Functions, classes & methods for estimation, prediction, and simulation + (bootstrap) of VLMC (Variable Length Markov Chain) models. +@@ -2093,12 +2107,18 @@ distributions of R.) + *VaR* + Methods for calculation of Value at Risk (VaR). + ++*WeedMap* ++ Map of weed intensity. ++ + *WhatIf* + Software for evaluating counterfactuals. + + *XML* + Tools for reading XML documents and DTDs. + ++*ZIGP* ++ Zero Inflated Generalized Poisson (ZIGP) regression models. ++ + *Zelig* + Everyone's statistical software: an easy-to-use program that can + estimate, and help interpret the results of, an enormous range of +@@ -2140,6 +2160,9 @@ distributions of R.) + *adehabitat* + A collection of tools for the analysis of habitat selection by animals. + ++*adimpro* ++ Adaptive smoothing of digital images. ++ + *adlift* + Adaptive Wavelet transforms for signal denoising. + +@@ -2327,6 +2350,10 @@ distributions of R.) + *cfa* + Analysis of configuration frequencies. + ++*cgh* ++ Analysis of microarray comparative genome hybridisation data using the ++ Smith-Waterman algorithm. ++ + *chplot* + Augmented convex hull plots: informative and nice plots for grouped + bivariate data. +@@ -2359,6 +2386,9 @@ distributions of R.) + *classPP* + Projection Pursuit for supervised classification. + ++*classifly* ++ Explore classification models in high dimensions. ++ + *clim.pact* + Climate analysis and downscaling for monthly and daily data. + +@@ -2695,6 +2725,9 @@ distributions of R.) + *fCalendar* + The Rmetrics module for "Date, Time and Calendars". + ++*fEcofin* ++ The Rmetrics module with "Selected economic and financial data sets". ++ + *fExtremes* + The Rmetrics module for "Beyond the Sample, Dealing with Extreme + Values". +@@ -2843,6 +2876,9 @@ distributions of R.) + Functions to fit Generalized Additive Models for Location Scale and + Shape. + ++*gamlss.dist* ++ Extra distributions for GAMLSS modeling. ++ + *gamlss.nl* + A GAMLSS add on package for fitting non linear parametric models. + +@@ -3057,6 +3093,9 @@ distributions of R.) + *homals* + Homogeneity Analysis (HOMALS) package with optional Tcl/Tk interface. + ++*homtest* ++ Homogeneity tests for regional frequency analysis. ++ + *hopach* + Hierarchical Ordered Partitioning and Collapsing Hybrid (HOPACH). + +@@ -3389,9 +3428,6 @@ distributions of R.) + Routines for GAMs and other genralized ridge regression problems with + multiple smoothing parameter selection by GCV or UBRE. _Recommended_. + +-*micEcdat* +- Data sets for micro-econometrics. +- + *micEcon* + Tools for microeconomic analysis and microeconomic modelling. + +@@ -3421,6 +3457,12 @@ distributions of R.) + *mixreg* + Functions to fit mixtures of regressions. + ++*mixtools* ++ Tools for mixture models. ++ ++*mlCopulaSelection* ++ Copula selection and fitting using maximum likelihood. ++ + *mlbench* + A collection of artificial and real-world machine learning benchmark + problems, including the Boston housing data. +@@ -3462,6 +3504,9 @@ distributions of R.) + *mratios* + Inferences for ratios of coefficients in the general linear model. + ++*msgcop* ++ Semiparametric Bayesian Gaussian copula estimation. ++ + *msm* + Functions for fitting continuous-time Markov multi-state models to + categorical processes observed at arbitrary times, optionally with +@@ -3621,6 +3666,10 @@ distributions of R.) + *oz* + Functions for plotting Australia's coastline and state boundaries. + ++*pARtial* ++ (Partial) attributable risk estimates, corresponding variance estimates ++ and confidence intervals. ++ + *paleoTS* + Modeling evolution in paleontological time-series. + +@@ -3743,6 +3792,9 @@ distributions of R.) + *portfolio* + Classes for analyzing and implementing portfolios. + ++*portfolioSim* ++ Framework for simulating equity portfolio strategies. ++ + *powell* + Optimizes a function using Powell's UObyQA algorithm. + +@@ -3880,9 +3932,15 @@ distributions of R.) + C Double Description for R, an interface to the CDD computational + geometry library. + ++*rcdk* ++ Interface to the CDK libraries, a Java framework for cheminformatics. ++ + *rcom* + R COM Client Interface and internal COM Server. + ++*rcompletion* ++ TAB completion for R using Readline. ++ + *rda* + Shrunken Centroids Regularized Discriminant Analysis. + +@@ -3932,6 +3990,9 @@ distributions of R.) + *rgenoud* + R version of GENetic Optimization Using Derivatives. + ++*rggm* ++ Robustified methods for Gaussian Graphical Models. ++ + *rggobi* + Interface between R and GGobi. + +@@ -4312,6 +4373,9 @@ distributions of R.) + Computes the distribution of a linear combination of independent + Student's t variables. + ++*tdm* ++ A tool for Therapeutic Drug Monitoring. ++ + *tdthap* + Transmission/disequilibrium tests for extended marker haplotypes. + +@@ -4328,6 +4392,9 @@ distributions of R.) + *time* + Time tracking for developers. + ++*titan* ++ Titration analysis for mass spectrometry data. ++ + *titecrm* + TIme-To-Event Continual Reassessment Method and calibration tools. + +@@ -4638,6 +4705,9 @@ available via `http://www.omegahat.org/R + Interface to Snowball implementation of Porter's word stemming + algorithm. + ++*Ryacas* ++ R interface to yacas. ++ + *SASXML* + Example for reading XML files in SAS 8.2 manner. + +@@ -6266,6 +6336,53 @@ The unwanted effect can be removed by tu + use the `Edit | Preferences | Page Display | Smooth line art' menu in Adobe + Reader 7.0. + ++7.37 Why does backslash behave strangely inside strings? ++======================================================== ++ ++This question most often comes up in relation to file names (see *Note How ++do file names work in Windows?::) but it also happens that people complain ++that they cannot seem to put a single `\' character into a text string ++unless it happens to be followed by certain other characters. ++ ++ To understand this, you have to distinguish between character strings ++and _representations_ of character strings. Mostly, the representation in ++R is just the string with a single or double quote at either end, but there ++are strings that cannot be represented that way, e.g., strings that ++themselves contains the quote character. So ++ ++ > str <- "This \"text\" is quoted" ++ > str ++ [1] "This \"text\" is quoted" ++ > cat(str, "\n") ++ This "text" is quoted ++ ++The _escape sequences_ `\"' and `\n' represent a double quote and the ++newline character respectively. Printing text strings, using `print()' or ++by typing the name at the prompt will use the escape sequences too, but the ++`cat()' function will display the string as-is. Notice that `"\n"' is a ++one-character string, not two; the backslash is not actually in the string, ++it is just generated in the printed representation. ++ ++ > nchar("\n") ++ [1] 1 ++ > substring("\n", 1, 1) ++ [1] "\n" ++ ++ So how do you put a backslash in a string? For this, you have to escape ++the escape character. I.e., you have to double the backslash. as in ++ ++ > cat("\\n", "\n") ++ \n ++ ++ Some functions, particularly those involving regular expression ++matching, themselves use metacharacters, which may need to be escaped by ++the backslash mechanism. In those cases you may need a _quadruple_ ++backslash to represent a single literal one. ++ ++ In current versions of R (up to 2.4.0) an unknown escape sequence like ++`\p' is quietly interpreted as just `p'. The development version now emits ++a warning. ++ + 8 R Programming + *************** + +diff -urp R-2.4.0.old/doc/html/R-admin.html R-2.4.0/doc/html/R-admin.html +--- R-2.4.0.old/doc/html/R-admin.html 2006-10-03 05:14:24.000000000 -0500 ++++ R-2.4.0/doc/html/R-admin.html 2006-11-03 20:01:31.000000000 -0600 +@@ -27,7 +27,7 @@ + +

This is a guide to installation and administration for R. + +-

The current version of this document is 2.4.0 (2006-10-03). ++

The current version of this document is 2.4.0 (2006-11-03). + +

ISBN 3-900051-09-7 + +@@ -101,13 +101,16 @@ Subversion repository. If you have a Su + subversion.tigris.org), you + can check out and update the current r-devel from + https://svn.r-project.org/R/trunk/ and the current r-patched from +-`https://svn.r-project.org/R/branches/R-x-y-patches/' ++`https://svn.r-project.org/R/branches/R-x-y-branch/' + (where x and y are the major and minor number of the current + released version of R). E.g., use + +

     svn checkout https://svn.r-project.org/R/trunk/ path
+ 
+-

to check out r-devel into directory path. ++

to check out `r-devel' into directory path. The alpha, beta ++and RC versions of an upcoming x.y.0 release are available from ++`https://svn.r-project.org/R/branches/R-x-y-branch/' in ++the four-week period prior to the release. + +

Note that `https:' is required, and that the SSL certificate for + the Subversion server of the R project is +@@ -510,7 +513,7 @@ Windows 64). +

Your file system must allow long file names (as is likely except + perhaps for some network-mounted systems). + +-

Installation is via the installer R-2.4.0.exe. ++

Installation is via the installer R-2.4.0pat.exe. + Just double-click on the icon and follow the instructions. You can + uninstall R from the Control Panel. (Note that you will probably + (depending on the Windows language settings) be asked to choose a +@@ -775,12 +778,12 @@ customizations to that installation. Th + +

where rootdir is the path to the root of the customized + installation (forward slashes and no spaces, please). This creates an +-executable with the standard name, R-2.4.0.exe, so ++executable with the standard name, R-2.4.0pat.exe, so + please rename it to indicate that it is customized. + +

The defaults for the startup parameters may also be customized. For example + +-

     make rinstaller MDISDI=1
++
     make myR IMAGEDIR=rootdir MDISDI=1
+ 
+

will create an installer that defaults to installing R to run in SDI + mode. See src/gnuwin32/installer/Makefile for the names and +@@ -1128,7 +1131,7 @@ originals. +

  • zipdata-foo to compress the data files. This is recommended if + you have either many small data files (as in package Devore5) or a + few large data files. +-
  • pkgcheck-foo to check the package (like R CMD CHECK foo). ++
  • pkgcheck-foo to check the package (like R CMD check foo). + + +

    Using this approach allows variables to be set during the build, e.g. +@@ -1501,10 +1504,11 @@ installed. +

    You need a means of compiling C and FORTRAN 77 (see Using FORTRAN). Some add-on packages also need a C++ compiler. Your C + compiler should be IEC 600596, POSIX 1003.1 and C99-compliant if at all + possible. R tries to choose suitable flags for the C compilers it +-knows about, but you may have to set CFLAGS suitably. For recent +-versions of gcc with glibc this means including +--std=gnu99 in CFLAGS (-std=c99 excludes POSIX +-functionality). ++knows about, but you may have to set CC or CFLAGS suitably. ++For recent versions of gcc with glibc this means including ++-std=gnu99 (-std=c99 excludes POSIX functionality). ++If the compiler is detected as gcc, -std=gnu99 will be ++appended to CC unless it conflicts with a setting of CFLAGS. + +

    Unless you do not want to view graphs on-screen you need `X11' + installed, including its headers and client libraries. (On Fedora Core +@@ -2078,8 +2082,8 @@ On most platforms using CFLAGS and FFLAGS produces worthwhile performance gains. + On systems using the GNU linker (especially those using R as a shared + library), it is likely that including `-Wl,-O1' in LDFLAGS +-is worthwhile, and on upcoming systems15 +-`'-Wl,-O1,-Bdirect,--hash-style=both'' is recommended at ++is worthwhile, and on recent systems15 ++`'-Bdirect,--hash-style=both,-Wl,-O1'' is recommended at + http://lwn.net/Articles/192624/ + +

    +@@ -2392,10 +2396,11 @@ libraries. + libraries in /usr/local/lib64. To build a 32-bit version of R + on `x86_64' with Fedora Core 5 we used + +-

         CFLAGS="-m32 -O2 -g -Wall -pedantic -std=gnu99"
    ++
         CC="gcc -m32"
    +      CXXFLAGS="-m32 -O2 -g"
    +      FFLAGS="-m32 -O2 -g"
    +-     LDFLAGS="-m32 -L/usr/local/lib"
    ++     FCFLAGS="-m32 -O2 -g"
    ++     LDFLAGS="-L/usr/local/lib"
    +      LIBnn=lib
    + 
    +

    Fedora Core 3 also needed +@@ -2452,9 +2457,10 @@ optimization. For ` +-

    R will add `-mp' in R_XTRA_{C,F,CXX}FLAGS to maintain ++

    configure will add `-c99' to CC for C99-compliance. ++R will add `-mp' in R_XTRA_{C,F,CXX}FLAGS to maintain + correct IEC 60559 arithmetic. The flag -wd188 + suppresses a large number of warnings about the enumeration type + `Rboolean'. Because the Intel C compiler sets `__GNUC__' +@@ -2564,7 +2570,7 @@ yourself. + this disables IEEE arithmetic and make check will + fail. The maximal set of optimization options known to work on Sparc is + +-

         -xlibmil -xO5 -dalign -xc99
    ++
         -xlibmil -xO5 -dalign
    + 
    +

    (`x86' versions do not need `-dalign', and some do not + support it.) +@@ -2578,10 +2584,10 @@ the compiler correctly. + +

    To compile for a 64-bit target on Sparc Solaris (which needs an + UltraSparc chip and for support to be enabled in the OS) with the Forte +-7 compilers we used --without-blas and ++7 compilers we used + +-

         CC="cc -xarch=v9"
    +-     CFLAGS="-xO5 -xlibmil -dalign -xc99"
    ++
         CC="cc -xarch=v9 -xc99"
    ++     CFLAGS="-xO5 -xlibmil -dalign"
    +      F77="f95 -xarch=v9"
    +      FFLAGS="-xO5 -xlibmil -dalign"
    +      CXX="CC -xarch=v9"
    +@@ -2599,9 +2605,10 @@ UltraSparc chip and for support to be en
    +      FC="gfortran -m64"
    +      LDFLAGS="-L/usr/local/lib/sparcv9 -L/usr/local/lib"
    + 
    +-

    replacing `g77' with `gfortran' for gcc 4.0.x. Note ++

    replacing `g77' with `gfortran' for gcc 4.x.y. Note + that /usr/local/lib/sparcv9 may need to be in the +-LD_LIBRARY_PATH during configuration. ++LD_LIBRARY_PATH during configuration. (configure will ++append -std=gnu99 to CC.) + +

    Solaris on Sparc CPUs need `PIC' and not `pic' versions of + CPICFLAGS and FPICFLAGS since the `pic' version only +@@ -3080,7 +3087,7 @@ but no compiled code, only the first two + +

    A complete build of R including compiled HTML help files and + PDF manuals, and producing the standalone installer +-R-2.4.0.exe will also need the following: ++R-2.4.0pat.exe will also need the following: +

      +
    • The Microsoft HTML Help Workshop +
    • LaTeX +@@ -3208,8 +3215,8 @@ suitably; ensure you have the required f + +

      E.6 The Inno Setup installer

      + +-

      To make the installer package (R-2.4.0.exe) we require +-Inno Setup 5.1.5 or later from jrsoftware.org. ++

      To make the installer package (R-2.4.0pat.exe) we require ++Inno Setup 5.1.7 or later from jrsoftware.org. + +

      Edit file src/gnuwin32/MkRules and change ISDIR to the + location where Inno Setup was installed. +diff -urp R-2.4.0.old/doc/manual/Makefile.in R-2.4.0/doc/manual/Makefile.in +--- R-2.4.0.old/doc/manual/Makefile.in 2006-09-04 21:05:05.000000000 -0500 ++++ R-2.4.0/doc/manual/Makefile.in 2006-10-28 14:36:02.000000000 -0500 +@@ -211,6 +211,7 @@ $(OBJECTS_DVI): $(srcdir)/texinfo.tex + R-admin.dvi: $(texiincludes) + R-data.dvi: $(texiincludes) + R-exts.dvi: $(texiincludes) ++R-ints.dvi: $(texiincludes) + version.texi: Makefile $(top_srcdir)/VERSION $(top_builddir)/SVN-REVISION + @echo "creating $(subdir)/$@" + @(v=`sed 's/\([^ ]*\).*/\1/' $(top_srcdir)/VERSION`; \ +@@ -238,6 +239,7 @@ R-admin.html: $(texiincludes) + R-data.html: $(texiincludes) + R-exts.html: $(texiincludes) + R-intro.html: $(texiincludes) ++R-ints.html: $(texiincludes) + R-lang.html: $(texiincludes) + + info: $(OBJECTS_INFO) +@@ -245,6 +247,7 @@ R-admin.info: $(texiincludes) + R-data.info: $(texiincludes) + R-exts.info: $(texiincludes) + R-intro.info: $(texiincludes) ++R-ints.info: $(texiincludes) + R-lang.info: $(texiincludes) + + pdf: refman.pdf $(OBJECTS_PDF) +@@ -325,6 +328,7 @@ R-admin.pdf: $(texiincludes) + R-data.pdf: $(texiincludes) + R-exts.pdf: $(texiincludes) + R-intro.pdf: stamp-images-pdf $(texiincludes) ++R-ints.pdf: $(texiincludes) + stamp-images-pdf: + @if test "$(BUILDDIR_IS_SRCDIR)" = no ; then \ + $(MAKE) rdocdir=$(top_builddir)/doc install-images-pdf; \ +diff -urp R-2.4.0.old/doc/manual/R-admin.texi R-2.4.0/doc/manual/R-admin.texi +--- R-2.4.0.old/doc/manual/R-admin.texi 2006-09-27 21:05:07.000000000 -0500 ++++ R-2.4.0/doc/manual/R-admin.texi 2006-11-01 19:41:42.000000000 -0600 +@@ -166,7 +166,7 @@ Subversion repository. If you have a Su + @url{http://subversion.tigris.org/, @code{subversion.tigris.org}}), you + can check out and update the current r-devel from + @url{https://svn.r-project.org/R/trunk/} and the current r-patched from +-@samp{https://svn.r-project.org/R/branches/R-@var{x}-@var{y}-patches/} ++@samp{https://svn.r-project.org/R/branches/R-@var{x}-@var{y}-branch/} + (where @var{x} and @var{y} are the major and minor number of the current + released version of R). E.g., use + +@@ -175,7 +175,10 @@ svn checkout https://svn.r-project.org/R + @end example + + @noindent +-to check out r-devel into directory @var{path}. ++to check out @samp{r-devel} into directory @var{path}. The alpha, beta ++and RC versions of an upcoming @var{x.y.0} release are available from ++@samp{https://svn.r-project.org/R/branches/R-@var{x}-@var{y}-branch/} in ++the four-week period prior to the release. + + Note that @samp{https:} is required, and that the SSL certificate for + the Subversion server of the R project is +@@ -1005,7 +1008,7 @@ please rename it to indicate that it is + The defaults for the startup parameters may also be customized. For example + + @example +-make rinstaller MDISDI=1 ++make myR IMAGEDIR=rootdir MDISDI=1 + @end example + + @noindent +@@ -1410,7 +1413,7 @@ originals. + you have either many small data files (as in package @pkg{Devore5}) or a + few large data files. + @item +-@code{pkgcheck-foo} to check the package (like @code{R CMD CHECK foo}). ++@code{pkgcheck-foo} to check the package (like @code{R CMD check foo}). + @end itemize + + Using this approach allows variables to be set during the build, e.g. +@@ -1840,10 +1843,11 @@ FORTRAN}). Some add-on packages also ne + compiler should be @acronym{IEC}@tie{}60059@footnote{also known as + @acronym{IEEE}@tie{}754}, POSIX 1003.1 and C99-compliant if at all + possible. @R{} tries to choose suitable flags for the C compilers it +-knows about, but you may have to set @code{CFLAGS} suitably. For recent +-versions of @command{gcc} with @code{glibc} this means including +-@option{-std=gnu99} in @code{CFLAGS} (@option{-std=c99} excludes POSIX +-functionality). ++knows about, but you may have to set @code{CC} or @code{CFLAGS} suitably. ++For recent versions of @command{gcc} with @code{glibc} this means including ++@option{-std=gnu99} (@option{-std=c99} excludes POSIX functionality). ++If the compiler is detected as @command{gcc}, @code{-std=gnu99} will be ++appended to @code{CC} unless it conflicts with a setting of @code{CFLAGS}. + + Unless you do not want to view graphs on-screen you need @samp{X11} + installed, including its headers and client libraries. (On Fedora Core +@@ -2521,8 +2525,8 @@ On most platforms using @command{gcc}, h + @code{CFLAGS} and @code{FFLAGS} produces worthwhile performance gains. + On systems using the GNU linker (especially those using @R{} as a shared + library), it is likely that including @samp{-Wl,-O1} in @code{LDFLAGS} +-is worthwhile, and on upcoming systems@footnote{e.g. Fedora Core 6} +-@samp{'-Wl,-O1,-Bdirect,--hash-style=both'} is recommended at ++is worthwhile, and on recent systems@footnote{e.g. Fedora Core 6} ++@samp{'-Bdirect,--hash-style=both,-Wl,-O1'} is recommended at + @url{http://lwn.net/Articles/192624/} + + @node Making manuals, , Compilation flags, Configuration variables +@@ -2888,10 +2892,11 @@ libraries in @file{/usr/local/lib64}. T + on @cputype{x86_64} with Fedora Core 5 we used + + @example +-CFLAGS="-m32 -O2 -g -Wall -pedantic -std=gnu99" ++CC="gcc -m32" + CXXFLAGS="-m32 -O2 -g" + FFLAGS="-m32 -O2 -g" +-LDFLAGS="-m32 -L/usr/local/lib" ++FCFLAGS="-m32 -O2 -g" ++LDFLAGS="-L/usr/local/lib" + LIBnn=lib + @end example + +@@ -2957,10 +2962,11 @@ F77=ifort + CXX=icc + ICC_LIBS=/opt/compilers/intel/cce/9.0/lib + IFC_LIBS=/opt/compilers/intel/fce/9.0/lib +-LDFLAGS="-L$ICC_LIBS -L$IFC_LIBS -L/usr/local/lib" ++LDFLAGS="-L$ICC_LIBS -L$IFC_LIBS -L/usr/local/lib64" + @end example + + @noindent ++@command{configure} will add @samp{-c99} to @code{CC} for C99-compliance. + @R{} will add @samp{-mp} in @code{R_XTRA_@{C,F,CXX@}FLAGS} to maintain + correct @acronym{IEC}@tie{}60559 arithmetic. The flag @option{-wd188} + suppresses a large number of warnings about the enumeration type +@@ -3086,7 +3092,7 @@ this disables @acronym{IEEE} arithmetic + fail. The maximal set of optimization options known to work on Sparc is + + @example +--xlibmil -xO5 -dalign -xc99 ++-xlibmil -xO5 -dalign + @end example + + @noindent +@@ -3102,11 +3108,11 @@ the compiler correctly. + + To compile for a 64-bit target on Sparc Solaris (which needs an + UltraSparc chip and for support to be enabled in the OS) with the Forte +-7 compilers we used @option{--without-blas} and ++7 compilers we used + + @example +-CC="cc -xarch=v9" +-CFLAGS="-xO5 -xlibmil -dalign -xc99" ++CC="cc -xarch=v9 -xc99" ++CFLAGS="-xO5 -xlibmil -dalign" + F77="f95 -xarch=v9" + FFLAGS="-xO5 -xlibmil -dalign" + CXX="CC -xarch=v9" +@@ -3130,9 +3136,10 @@ LDFLAGS="-L/usr/local/lib/sparcv9 -L/usr + @end example + + @noindent +-replacing @samp{g77} with @samp{gfortran} for @command{gcc} 4.0.x. Note ++replacing @samp{g77} with @samp{gfortran} for @command{gcc} 4.x.y. Note + that @file{/usr/local/lib/sparcv9} may need to be in the +-@env{LD_LIBRARY_PATH} during configuration. ++@env{LD_LIBRARY_PATH} during configuration. (@command{configure} will ++append @code{-std=gnu99} to @code{CC}.) + + Solaris on Sparc CPUs need @samp{PIC} and not @samp{pic} versions of + @env{CPICFLAGS} and @env{FPICFLAGS} since the @samp{pic} version only +@@ -3814,7 +3821,7 @@ suitably; ensure you have the required f + @section The Inno Setup installer + + To make the installer package (@file{@value{RWVERSION}.exe}) we require +-Inno Setup 5.1.5 or later from @url{http://jrsoftware.org, ++Inno Setup 5.1.7 or later from @url{http://jrsoftware.org, + @code{jrsoftware.org}}. + + Edit file @file{src/gnuwin32/MkRules} and change @code{ISDIR} to the +diff -urp R-2.4.0.old/doc/manual/R-exts.texi R-2.4.0/doc/manual/R-exts.texi +--- R-2.4.0.old/doc/manual/R-exts.texi 2006-09-18 21:05:16.000000000 -0500 ++++ R-2.4.0/doc/manual/R-exts.texi 2006-10-30 10:45:48.000000000 -0600 +@@ -8119,7 +8119,7 @@ this is defined. + @node Internationalization, Allowing interrupts, Utility functions, The R API + @section Internationalization + +-@R{} has its own C-level interface to the the encoding conversion ++@R{} has its own C-level interface to the encoding conversion + capabilities provided by @code{iconv}, for the following reasons + + @itemize @bullet +diff -urp R-2.4.0.old/doc/manual/R-FAQ.texi R-2.4.0/doc/manual/R-FAQ.texi +--- R-2.4.0.old/doc/manual/R-FAQ.texi 2006-10-03 05:00:11.000000000 -0500 ++++ R-2.4.0/doc/manual/R-FAQ.texi 2006-11-02 10:45:47.000000000 -0600 +@@ -4,7 +4,7 @@ + @settitle R FAQ + @setchapternewpage on + @set FAQ_YEAR 2006 +-@set FAQ_DATE @value{FAQ_YEAR}-10-02 ++@set FAQ_DATE @value{FAQ_YEAR}-10-31 + @set REL_YEAR 2006 + @set REL_MAJOR 2 + @set REL_MINOR 4 +@@ -500,24 +500,25 @@ to Mac OS 9.2.2. This port of R for Mac + @node Are there Unix binaries for R?, What documentation exists for R?, How can R be installed?, R Basics + @section Are there Unix binaries for R? + +-@c Linux binaries as of 2006-09-13: ++@c Linux binaries as of 2006-10-31: + @c + @c debian +-@c stable i386 2.3.1 Christian T. Steigies ++@c stable i386 2.4.0 Christian T. Steigies + @c oldstable + @c i386 2.1.1 Christian T. Steigies + @c mandrake + @c 10.0 i386 2.0.0 Michele Alzetta + @c redhat + @c el3 i386 2.3.1 Matthew P Cox +-@c el4 i386 2.3.1 Matthew P Cox +-@c x86_64 2.3.1 Matthew P Cox +-@c fc3 i386 2.3.1 Martyn Plummer +-@c x86_64 2.3.1 Brian Ripley +-@c fc4 i386 2.3.1 Martyn Plummer +-@c x86_64 2.3.1 Martyn Plummer +-@c fc5 i386 2.3.1 Martyn Plummer +-@c x86_64 2.3.1 Martyn Plummer ++@c el4 i386 2.4.0 Matthew P Cox ++@c x86_64 2.4.0 Matthew P Cox ++@c fc3 i386 2.4.0 Martyn Plummer ++@c x86_64 2.4.0 Brian Ripley ++@c fc4 i386 2.4.0 Martyn Plummer ++@c x86_64 2.4.0 Martyn Plummer ++@c fc5 i386 2.4.0 Martyn Plummer ++@c x86_64 2.4.0 Martyn Plummer ++@c fc6 i386 2.4.0 Martyn Plummer + @c suse + @c 7.3 i386 1.8.0 Detlef Steuer + @c 8.0 i386 1.8.1 Detlef Steuer +@@ -531,10 +532,11 @@ to Mac OS 9.2.2. This port of R for Mac + @c x86_64 2.2.0 Detlef Steuer + @c 10.0 i586 2.3.1 Detlef Steuer + @c x86_64 2.3.1 Detlef Steuer +-@c 10.1 i586 2.3.1 Detlef Steuer +-@c x86_64 2.3.1 Detlef Steuer ++@c 10.1 i586 2.4.0 Detlef Steuer ++@c x86_64 2.4.0 Detlef Steuer + @c ubuntu +-@c dapper i386 2.3.1 Dirk Eddelbuettel ++@c dapper i386 2.4.0 Christian T. Steigies ++@c amd64 2.4.0 Christian T. Steigies + @c vinelinux + @c 3.2 i386 2.3.1 Susunu Tanimura + +@@ -542,11 +544,11 @@ The @file{bin/linux} directory of a @CRA + packages. + + @quotation +-@multitable {Debian et al.} {x86_64} {9.0/9.1/9.2/9.3/10.0} {James Henstridge} ++@multitable {Debian et al.} {x86_64} {9.0/9.1/9.2/9.3/10.0/10.1} {James Henstridge} + @headitem @tab CPU @tab Versions @tab Provider + @item Debian et al. @tab i386 @tab stable/oldstable @tab Christian Steigies + @item Mandrake @tab i386 @tab 10.0 @tab Michele Alzetta +-@item Red Hat @tab i386 @tab FC3/FC4/FC5 @tab Martyn Plummer ++@item Red Hat @tab i386 @tab FC3/FC4/FC5/FC6 @tab Martyn Plummer + @item @tab x86_64 @tab FC3 @tab Brian Ripley + @item @tab x86_64 @tab FC4/FC5 @tab Martyn Plummer + @item @tab i386 @tab Enterprise Linux @tab Matthew P. Cox +@@ -554,7 +556,8 @@ packages. + @item SuSE @tab i386 @tab 7.3/8.0/8.1/8.2 @tab Detlef Steuer + @item @tab i586 @tab 9.0/9.1/9.2/9.3/10.0/10.1 @tab Detlef Steuer + @item @tab x86_64 @tab 9.2/9.3/10.0/10.1 @tab Detlef Steuer +-@item Ubuntu @tab i386 @tab dapper @tab Dirk Eddelbuettel ++@item Ubuntu @tab i386 @tab dapper @tab Christian Steigies ++@item @tab amd64 @tab dapper @tab Christian Steigies + @item VineLinux @tab i386 @tab 3.2 @tab Susunu Tanimura + @end multitable + @end quotation +@@ -1615,8 +1618,9 @@ Annotation in Plots'', @url{http://www.a + + For a very long time, there was no such thing. + +-@url{http://www.xlsolutions-corp.com/, XL Solutions} is currently beta +-testing a commercially supported version of R named R+ (read R plus). ++@url{http://www.xlsolutions-corp.com/, XLSolutions Corporation} is ++currently beta testing a commercially supported version of R named R+ ++(read R plus). + + In addition, @url{http://www.revolution-computing.com/, REvolution + Computing} has released +@@ -1867,6 +1871,8 @@ Graphical modeling for contingency table + @c + @item CompetingRiskFrailty + Competing risk model with frailties for right censored survival data. ++@item CreditMetrics ++Functions for calculating the CreditMetrics risk model. + @item DAAG + Various data sets used in examples and exercises in ``Data Analysis and + Graphics Using R'' by John H. Maindonald and W. John Brown, 2003. +@@ -1973,6 +1979,8 @@ large sparse graphical Gaussian models. + @item Geneland + MCMC inference from individual genetic data based on a spatial + statistical model. ++@item GeoXP ++Interactive exploratory spatial data analysis. + @item GroupSeq + Computations related to group-seqential boundaries. + @item HH +@@ -2009,6 +2017,9 @@ interval-censored data. + @item IDPmisc + Utilities from the Institute of Data Analyses and Process Design, + IDP/ZHW. ++@item IPSUR ++Accompanies ``Introduction to Probability and Statistics Using R'' by ++G. Andy Chang and G. Jay Kerns(in progress). + @item ISwR + Data sets for ``Introductory Statistics with R'' by Peter Dalgaard, + 2002, Springer. +@@ -2268,9 +2279,12 @@ especially for the wavelet and Gabor tra + on the book ``Practical Time-Frequency Analysis: Gabor and Wavelet + Transforms with an Implementation in S'' by Rene Carmona, Wen L. Hwang + and Bruno Torresani, 1998, Academic Press. +-@item SAGx +-Retrieval, preparation and analysis of data from the Affymetrix +-GeneChip. ++@c ++@c Removed on 2006-10-06 as requested by the maintainer (now @BioC). ++@c @item SAGx ++@c Retrieval, preparation and analysis of data from the Affymetrix ++@c GeneChip. ++@c + @item SASmixed + Data sets and sample linear mixed effects analyses corresponding to the + examples in ``SAS System for Mixed Models'' by R. C. Littell, +@@ -2309,6 +2323,8 @@ soil. + Sparse logistic regression. + @item SparseM + Basic linear algebra for sparse matrices. ++@item SpherWave ++Spherical Wavelets and SW-based spatially adaptive methods. + @item StatDataML + Read and write StatDataML. + @item StoppingRules +@@ -2342,15 +2358,21 @@ Statistics'' by J. Verzani, 2005, Chapma + @item VDCutil + Utilities supporting VDC, an open source digital library system for + quantitative data. ++@item VGAM ++Vector Generalized Linear and Additive Models. + @item VLMC + Functions, classes & methods for estimation, prediction, and simulation + (bootstrap) of VLMC (Variable Length Markov Chain) models. + @item VaR + Methods for calculation of Value at Risk (VaR). ++@item WeedMap ++Map of weed intensity. + @item WhatIf + Software for evaluating counterfactuals. + @item XML + Tools for reading @XML{} documents and DTDs. ++@item ZIGP ++Zero Inflated Generalized Poisson (ZIGP) regression models. + @item Zelig + Everyone's statistical software: an easy-to-use program that can + estimate, and help interpret the results of, an enormous range of +@@ -2380,6 +2402,8 @@ Multivariate data analysis and graphical + Tcl/Tk Graphical User Interface for @strong{ade4}. + @item adehabitat + A collection of tools for the analysis of habitat selection by animals. ++@item adimpro ++Adaptive smoothing of digital images. + @item adlift + Adaptive Wavelet transforms for signal denoising. + @item agce +@@ -2524,6 +2548,9 @@ update algorithm (Hard Competitive Learn + finding the number of clusters in a data set. + @item cfa + Analysis of configuration frequencies. ++@item cgh ++Analysis of microarray comparative genome hybridisation data using the ++Smith-Waterman algorithm. + @item chplot + Augmented convex hull plots: informative and nice plots for grouped + bivariate data. +@@ -2547,6 +2574,8 @@ Choose univariate class intervals for ma + purposes. + @item classPP + Projection Pursuit for supervised classification. ++@item classifly ++Explore classification models in high dimensions. + @item clim.pact + Climate analysis and downscaling for monthly and daily data. + @item climatol +@@ -2798,6 +2827,8 @@ teaching financial engineering and compu + (@url{http://www.Rmetrics.org/}). + @item fCalendar + The Rmetrics module for ``Date, Time and Calendars''. ++@item fEcofin ++The Rmetrics module with ``Selected economic and financial data sets''. + @item fExtremes + The Rmetrics module for ``Beyond the Sample, Dealing with Extreme + Values''. +@@ -2907,6 +2938,8 @@ Introduction with R'' by S. Wood (2006). + @item gamlss + Functions to fit Generalized Additive Models for Location Scale and + Shape. ++@item gamlss.dist ++Extra distributions for GAMLSS modeling. + @item gamlss.nl + A GAMLSS add on package for fitting non linear parametric models. + @item gamlss.tr +@@ -3071,6 +3104,8 @@ marginal inference for regression-scale + higher order inference for nonlinear heteroscedastic models. + @item homals + Homogeneity Analysis (HOMALS) package with optional Tcl/Tk interface. ++@item homtest ++Homogeneity tests for regional frequency analysis. + @item hopach + Hierarchical Ordered Partitioning and Collapsing Hybrid (HOPACH). + @item hot +@@ -3325,8 +3360,11 @@ Multiple Fractional Polynomials. + Routines for GAMs and other genralized ridge regression problems with + multiple smoothing parameter selection by GCV or UBRE. + @emph{Recommended}. +-@item micEcdat +-Data sets for micro-econometrics. ++@c ++@c Removed on 2006-10-11 as requested by the maintainer. ++@c @item micEcdat ++@c Data sets for micro-econometrics. ++@c + @item micEcon + Tools for microeconomic analysis and microeconomic modelling. + @item mice +@@ -3347,6 +3385,10 @@ Estimation/multiple imputation programs + continuous data. + @item mixreg + Functions to fit mixtures of regressions. ++@item mixtools ++Tools for mixture models. ++@item mlCopulaSelection ++Copula selection and fitting using maximum likelihood. + @item mlbench + A collection of artificial and real-world machine learning benchmark + problems, including the Boston housing data. +@@ -3382,6 +3424,8 @@ Inferences for ratios of coefficients in + @c @item mscalib + @c Calibration and filtering of MALDI-TOF Peptide Mass Fingerprint data. + @c ++@item msgcop ++Semiparametric Bayesian Gaussian copula estimation. + @item msm + Functions for fitting continuous-time Markov multi-state models to + categorical processes observed at arbitrary times, optionally with +@@ -3531,6 +3575,9 @@ Ornstein-Uhlenbeck models for phylogenet + A collection of some tests commonly used for identifying outliers. + @item oz + Functions for plotting Australia's coastline and state boundaries. ++@item pARtial ++(Partial) attributable risk estimates, corresponding variance estimates ++and confidence intervals. + @item paleoTS + Modeling evolution in paleontological time-series. + @item pamr +@@ -3635,6 +3682,8 @@ manipulations. + Statistical and POPulation GENetics. + @item portfolio + Classes for analyzing and implementing portfolios. ++@item portfolioSim ++Framework for simulating equity portfolio strategies. + @item powell + Optimizes a function using Powell's UObyQA algorithm. + @item powerpkg +@@ -3736,8 +3785,12 @@ running BUGS from R. Support for Linux + @item rcdd + C Double Description for R, an interface to the CDD computational + geometry library. ++@item rcdk ++Interface to the CDK libraries, a Java framework for cheminformatics. + @item rcom + R COM Client Interface and internal COM Server. ++@item rcompletion ++TAB completion for R using Readline. + @item rda + Shrunken Centroids Regularized Discriminant Analysis. + @item ref +@@ -3774,6 +3827,8 @@ Provides bindings to Frank Warmerdam's G + Library (GDAL). + @item rgenoud + R version of GENetic Optimization Using Derivatives. ++@item rggm ++Robustified methods for Gaussian Graphical Models. + @item rggobi + Interface between R and GGobi. + @item rgl +@@ -4096,6 +4151,8 @@ A series of widgets and functions to sup + @item tdist + Computes the distribution of a linear combination of independent + Student's @math{t} variables. ++@item tdm ++A tool for Therapeutic Drug Monitoring. + @item tdthap + Transmission/disequilibrium tests for extended marker haplotypes. + @item tensor +@@ -4107,6 +4164,8 @@ Bayesian regression and adaptive samplin + models. + @item time + Time tracking for developers. ++@item titan ++Titration analysis for mass spectrometry data. + @item titecrm + TIme-To-Event Continual Reassessment Method and calibration tools. + @item tkrplot +@@ -4416,6 +4475,8 @@ An interface to call XLisp-Stat function + @item Rstem + Interface to Snowball implementation of Porter's word stemming + algorithm. ++@item Ryacas ++R interface to yacas. + @item SASXML + Example for reading @XML{} files in SAS 8.2 manner. + @item SJava +@@ -5289,6 +5350,7 @@ dir /opt/R/src/unix + * How can I save the result of each iteration in a loop into a separate file?:: + * Why are p-values not displayed when using lmer()?:: + * Why are there unwanted lines between polygons in PDF output viewed in Adobe Reader?:: ++* Why does backslash behave strangely inside strings?:: + @end menu + + @c @node Why does R run out of memory?, Why does sourcing a correct file fail?, R Miscellanea, R Miscellanea +@@ -6165,7 +6227,7 @@ Doug Bates has kindly provided an extens + r-help list, which can be reviewed at + @uref{https://stat.ethz.ch/pipermail/r-help/2006-May/094765.html}. + +-@node Why are there unwanted lines between polygons in PDF output viewed in Adobe Reader?, , Why are p-values not displayed when using lmer()?, R Miscellanea ++@node Why are there unwanted lines between polygons in PDF output viewed in Adobe Reader?, Why does backslash behave strangely inside strings?, Why are p-values not displayed when using lmer()?, R Miscellanea + @section Why are there unwanted lines between polygons in PDF output viewed in Adobe Reader? + + Output from @code{polygon()} (and other functions calling +@@ -6185,6 +6247,64 @@ The unwanted effect can be removed by tu + art: use the `Edit | Preferences | Page Display | Smooth line art' menu + in Adobe Reader 7.0. + ++@node Why does backslash behave strangely inside strings?, , Why are there unwanted lines between polygons in PDF output viewed in Adobe Reader?, R Miscellanea ++@section Why does backslash behave strangely inside strings? ++ ++This question most often comes up in relation to file names (see ++@ref{How do file names work in Windows?}) but it also happens that ++people complain that they cannot seem to put a single @samp{\} character ++into a text string unless it happens to be followed by certain other ++characters. ++ ++To understand this, you have to distinguish between character strings ++and @emph{representations} of character strings. Mostly, the ++representation in R is just the string with a single or double quote at ++either end, but there are strings that cannot be represented that way, ++e.g., strings that themselves contains the quote character. So ++ ++@example ++> str <- "This \"text\" is quoted" ++> str ++[1] "This \"text\" is quoted" ++> cat(str, "\n") ++This "text" is quoted ++@end example ++ ++@noindent ++The @emph{escape sequences} @samp{\"} and @samp{\n} represent a double ++quote and the newline character respectively. Printing text strings, ++using @code{print()} or by typing the name at the prompt will use the ++escape sequences too, but the @code{cat()} function will display the ++string as-is. Notice that @samp{"\n"} is a one-character string, not ++two; the backslash is not actually in the string, it is just generated ++in the printed representation. ++ ++@example ++> nchar("\n") ++[1] 1 ++> substring("\n", 1, 1) ++[1] "\n" ++@end example ++ ++So how do you put a backslash in a string? For this, you have to ++escape the escape character. I.e., you have to double the backslash. ++as in ++ ++@example ++> cat("\\n", "\n") ++\n ++@end example ++ ++Some functions, particularly those involving regular expression ++matching, themselves use metacharacters, which may need to be escaped ++by the backslash mechanism. In those cases you may need a ++@emph{quadruple} backslash to represent a single literal one. ++ ++@c ++In current versions of R (up to 2.4.0) an unknown escape sequence like ++@samp{\p} is quietly interpreted as just @samp{p}. ++The development version now emits a warning. ++@c + + @node R Programming, R Bugs, R Miscellanea, Top + @chapter R Programming +diff -urp R-2.4.0.old/doc/manual/R-intro.texi R-2.4.0/doc/manual/R-intro.texi +--- R-2.4.0.old/doc/manual/R-intro.texi 2006-09-26 21:05:13.000000000 -0500 ++++ R-2.4.0/doc/manual/R-intro.texi 2006-10-29 10:45:45.000000000 -0600 +@@ -6882,9 +6882,13 @@ directory where @R{} was started, but ca + variable @env{R_HISTFILE}) should be restored at startup or not. The + default is to restore. + ++@item --no-Rconsole ++(Windows only) Prevent loading the @file{Rconsole} file at startup. ++ + @item --vanilla + Combine @option{--no-save}, @option{--no-environ} + @option{--no-site-file}, @option{--no-init-file} and @option{--no-restore}. ++In Windows, this also includes @option{--no-Rconsole}. + + @item --no-readline + (UNIX only) Turn off command-line editing via @strong{readline}. This is useful +diff -urp R-2.4.0.old/doc/manual/R-ints.texi R-2.4.0/doc/manual/R-ints.texi +--- R-2.4.0.old/doc/manual/R-ints.texi 2006-09-26 21:05:13.000000000 -0500 ++++ R-2.4.0/doc/manual/R-ints.texi 2006-10-28 14:36:02.000000000 -0500 +@@ -1161,7 +1161,7 @@ libraries. + saving on-screen graphs to those formats. This is technically optional, + and needs source code not in the tarball. + +-@item @file{Rchmtl.dll} ++@item @file{Rchtml.dll} + (Windows only.) A link to an ActiveX control that displays Compiled + @HTML{} help. This is optional, and only compiled if CHTML is specified. + +Only in R-2.4.0/m4: c99.m4 +diff -urp R-2.4.0.old/m4/java.m4 R-2.4.0/m4/java.m4 +--- R-2.4.0.old/m4/java.m4 2006-09-10 21:05:02.000000000 -0500 ++++ R-2.4.0/m4/java.m4 2006-11-03 19:41:45.000000000 -0600 +@@ -103,6 +103,7 @@ if test ${acx_java_works} = yes; then + case "${host_os}" in + darwin*) + JAVA_LIBS="-framework JavaVM" ++ JAVA_LIBS0="-framework JavaVM" + JAVA_LD_LIBRARY_PATH= + ;; + *) +diff -urp R-2.4.0.old/m4/Makefile.in R-2.4.0/m4/Makefile.in +--- R-2.4.0.old/m4/Makefile.in 2006-04-09 17:18:56.000000000 -0500 ++++ R-2.4.0/m4/Makefile.in 2006-10-28 14:35:49.000000000 -0500 +@@ -13,7 +13,7 @@ include $(top_builddir)/Makeconf + distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + DISTFILES = Makefile.in README \ + R.m4 \ +- clibs.m4 \ ++ clibs.m4 c99.m4 \ + codeset.m4 \ + gettext.m4 gettext-lib.m4 \ + java.m4 \ +diff -urp R-2.4.0.old/m4/R.m4 R-2.4.0/m4/R.m4 +--- R-2.4.0.old/m4/R.m4 2006-09-04 09:40:57.000000000 -0500 ++++ R-2.4.0/m4/R.m4 2006-10-28 14:35:49.000000000 -0500 +@@ -3107,8 +3107,8 @@ fi + ## The flag is documented, and is effective but also hides + ## unsatisfied references. We cannot test for GCC, as icc passes that test. + case "${CC}" in +- ## Intel compiler +- *icc) ++ ## Intel compiler: note that -c99 may have been appended ++ *icc*) + C_VISIBILITY= + ;; + esac +diff -urp R-2.4.0.old/Makefile.in R-2.4.0/Makefile.in +--- R-2.4.0.old/Makefile.in 2006-09-04 09:41:48.000000000 -0500 ++++ R-2.4.0/Makefile.in 2006-10-28 14:36:13.000000000 -0500 +@@ -30,7 +30,7 @@ Makeconf: $(srcdir)/Makeconf.in $(top_bu + ACLOCAL_M4 = aclocal.m4 + ACINCLUDE_DEPENDENCIES = \ + m4/R.m4 \ +- m4/clibs.m4 \ ++ m4/clibs.m4 m4/c99.m4 \ + m4/codeset.m4 \ + m4/gettext.m4 m4/gettext-lib.m4 \ + m4/java.m4 \ +@@ -104,15 +104,7 @@ svnonly: + touch non-tarball ; \ + (cd $(srcdir); LC_ALL=C TZ=GMT svn info || echo "Revision: unknown") 2> /dev/null \ + | sed -n -e '/^Revision/p' -e '/^Last Changed Date/'p \ +- | cut -d' ' -f1,2,3,4 > SVN-REVISION-tmp ; \ +- if grep unknown SVN-REVISION-tmp > /dev/null ; then \ +- echo "Last Changed Date: Today" >> SVN-REVISION-tmp ; \ +- if test -f "$(srcdir)/.svn/entries" ; then \ +- rev=`grep committed-rev "$(srcdir)/.svn/entries" | head -1 | sed -e 's/^ *committed-rev=\"//' -e 's/\"//'`; \ +- cdate=`grep committed-date "$(srcdir)/.svn/entries" | head -1 | sed -e 's/^ *committed-date=\"//' -e 's/T.*//'`; \ +- sed -e "s/unknown/$${rev}/" -e "s/Today/$${cdate}/" SVN-REVISION-tmp > SVN-REVISION-tmp2; mv SVN-REVISION-tmp2 SVN-REVISION-tmp ; \ +- fi ; \ +- fi ; \ ++ | cut -d' ' -f1,2,3,4 > SVN-REVISION-tmp ; \ + $(top_srcdir)/tools/move-if-change SVN-REVISION-tmp SVN-REVISION ; \ + rm -f SVN-REVISION-tmp ; \ + else \ +diff -urp R-2.4.0.old/NEWS R-2.4.0/NEWS +--- R-2.4.0.old/NEWS 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/NEWS 2006-11-03 19:41:47.000000000 -0600 +@@ -6,6 +6,100 @@ + ************************************************** + + ++ CHANGES IN R VERSION 2.4.0 patched ++ ++INSTALLATION ++ ++ o The extraction of info from Subversion for an SVN checkout now ++ also works for svn >= 1.4.0. However, on Windows the 'Last ++ Changed Date' will be in the local timezone, and not in GMT as ++ previously. ++ ++ o configure uses code borrowed from autoconf 2.60 to try harder to ++ ensure that a C99-compliant compiler is used. (It does so by ++ appending to CC.) This avoids problems with systems such as FC5 ++ which override CFLAGS and thereby lose flags such as -std=gnu99. ++ ++ ++NEW FEATURES ++ ++ o rainbow(), heat.colors(), terrain.colors(), topo.colors() and ++ cm.colors() all gain an 'alpha' argument to be passed to hsv(). ++ ++ ++BUG FIXES ++ ++ o Fixed warning() to use .dfltWarn intead of .dfltStop for default ++ handling (PR#9274). ++ ++ o R would slow down when the product of the length of a vector and ++ the length of a character vector used to subset it exceeded 2^31. ++ (PR#9280) ++ ++ o merge() now allows zero-row data frames. ++ ++ o add1.lm() had been broken by other changes for weighted fits. ++ ++ o axis.POSIXct() would sometimes give the wrong labels. ++ ++ o Help for a method call would fail. (PR#9291) ++ ++ o gzfile() returned an object of class "file" not "gzfile". (PR#9271) ++ ++ o load()ing from a connection had a logic bug in when it closed ++ the connection. (PR#9271) ++ ++ o The lowess() algorithm is unstable if the MAD of the residuals ++ becomes (effectively) zero: R now terminates the iterations at ++ that point. (This may result in quite different answers.) ++ ++ The 'delta' argument was incorrectly documented. (PR#9264) ++ ++ o abbreviate() would only work for strings of up to 8191 bytes, ++ but this was not checked. Now longer strings are errors. ++ ++ o Drawing X11 rotated text was buggy for VERY small (negative) ++ angle of rotation. Reported by Ben Bolker. ++ ++ o The X11 data editor would crash in an MBCS locale if R was ++ compiled with FC's CFLAGS that add buffer overflow and ++ stack-smashing detection. ++ ++ o rect() was not accepting border=NA in some cases involving ++ cross-hatching. ++ ++ o Fixes to S4 group generics to ensure that the correct number of ++ active arguments are in the signature of the group and all ++ members. Also a fix to keep the 'groupMembers' slot up to date. ++ ++ o removeClass() now takes care to remove any subclass references ++ to the deleted class. ++ ++ o mle() (in stats4) might not have worked as intended when the ++ order of parameters in 'start' differed from that in the ++ log-likelihood. (PR#9313) ++ ++ o dotchart() now properly restores par() settings behind itself. ++ ++ o system() on Mac OS X was blocking arbitrary signals during the ++ call although only SIGPROF was meant to be blocked. ++ ++ o methods cached via callNextMethod() and (sometimes) as() were ++ being cached as directly specified although in fact they were ++ inherited. Caused problems in later search for inherited methods. ++ ++ o str() works properly for method definitions and other S4-classed ++ function objects. ++ ++ o JAVA_LIBS are now correctly set on MacOS X ++ ++ o Fix null-termination issue suspected of causing crash with Fedora ++ Extra RPMS (PR#9339, Justin Harrington, analysis and fix from Bill ++ Dunlap). ++ ++ ++ ++ + CHANGES IN R VERSION 2.4.0 + + +Binary files R-2.4.0.old/po/de.gmo and R-2.4.0/po/de.gmo differ +diff -urp R-2.4.0.old/po/de.po R-2.4.0/po/de.po +--- R-2.4.0.old/po/de.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/de.po 2006-10-28 14:36:11.000000000 -0500 +@@ -7,7 +7,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R-2.2.1\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2006-09-21 10:41+0200\n" + "Last-Translator: Detlef Steuer \n" + "Language-Team: R-core \n" +@@ -82,7 +82,7 @@ msgstr "ungültige 'names' in 'R_unlink' + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -127,7 +127,7 @@ msgstr "ungültige 'names' in 'R_unlink' + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -473,7 +473,7 @@ msgid "second argument must be a list" + msgstr "zweites Argument muss eine Liste sein" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "Indizierung außerhalb der Grenzen" + +@@ -1151,7 +1151,7 @@ msgstr "angegebene Vektorgröße ist zu + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "Verwendung der NULL Umgebung ist nicht mehr möglich" + +@@ -1284,114 +1284,114 @@ msgstr "ungültiges Teilungsmuster '%s'" + msgid "the first argument must be a character vector" + msgstr "erstes Argument muss ein Charaktervektor sein" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "abbreviate mit nicht-ASCII Zeichen genutzt" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "Nicht-Charakter Namen" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "ungültiger Wert von 'allow_'" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "ungültige multibyte Zeichenkette %d" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "regular expression ist in dieser Lokalisierung ungültig" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "ungültige regular expression '%s'" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "Eingabezeichenkette %d ungültig in dieser locale" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "ungültige Rückreferenz %d in regular expression" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern' ist ungültig in dieser locale" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacement' ist ungültig in dieser locale" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "Muster mit Länge 0" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "Nicht-Charakter Argument für tolower()" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "abnehmende Bereichsspezifikation ('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "abnehmende Bereichsspezifikation ('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "ungültige (NA) Argumente." + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "ungültige multibyte Zeichenkette 'old'" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "ungültige multibyte Zeichenkette 'new'" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old' ist länger als 'new'" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "ungültige multibyte Eingabezeichenkette %d" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + "Benutzung von agrep() in einer UTF-8 Lokalisierung arbeitet wahrscheinlich " + "nur für ASCII Zeichenketten" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "konnte keinen Speicher für approximate matching zuteilen" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "konnte case insensitive matching nicht durchführen" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "Argument muss ein Charakter-Vektor der Länge 1 sein" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1399,45 +1399,45 @@ msgstr "" + "Argument sollte ein Charakter-Vektor der Länge 1 sein\n" + "alle Argumente bis auf das erste werden ignoriert" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "Argument 'x' muss ein raw Vektor sein" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "Argument 'multiple' muss TRUE oder FALSE sein" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "Argument 'shift' muss eine kleine ganze Zahl sein" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "Argument 'x' muss ein Vektor ganzer Zahlen sein" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "Argument 'x' muss entweder raw, ganzzahlig oder logisch sein" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "Argument 'type' muss eine Zeichenkette sein" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "Länge des Argumentes 'x' muss ein Vielfaches von %d sein" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "Argument 'x' darf keine NAs enthalten" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "Argument 'x' muss ein Vektor ganzer Zahlen sein" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim() benötigt Charakter-Vektor" + +@@ -5496,7 +5496,7 @@ msgstr "Schreibfehler in Verbindung" + msgid "no input is available" + msgstr "keine Eingabe verfügbar" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6126,7 +6126,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]] Index (%d) außerhalb des Bereichs" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "ungültiger Indextyp" + +@@ -6162,19 +6162,19 @@ msgstr "(subscript) boolescher Index zu + msgid "only 0's may be mixed with negative subscripts" + msgstr "nur Nullen dürfen mit negativen Indizes gemischt werden" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "Element eines Charaktervektors ist nicht vom Typ CHARSXP" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "kein 'dimnames' Attribut für Arrays" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "ungültiger Index" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "Indizierung bei einem Nicht-Vektor" + +Binary files R-2.4.0.old/po/en_GB.gmo and R-2.4.0/po/en_GB.gmo differ +diff -urp R-2.4.0.old/po/en_GB.po R-2.4.0/po/en_GB.po +--- R-2.4.0.old/po/en_GB.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/en_GB.po 2006-10-28 14:36:08.000000000 -0500 +@@ -7,7 +7,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.1.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2005-02-22 16:55+0000\n" + "Last-Translator: Prof Brian Ripley \n" + "Language-Team: English\n" +@@ -82,7 +82,7 @@ msgstr "" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -127,7 +127,7 @@ msgstr "" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -471,7 +471,7 @@ msgid "second argument must be a list" + msgstr "" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "" + +@@ -1133,7 +1133,7 @@ msgstr "" + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "" + +@@ -1266,156 +1266,156 @@ msgstr "" + msgid "the first argument must be a character vector" + msgstr "" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "" + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" + msgstr "" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "" + +@@ -5406,7 +5406,7 @@ msgstr "" + msgid "no input is available" + msgstr "" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6016,7 +6016,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "" + +@@ -6052,19 +6052,19 @@ msgstr "" + msgid "only 0's may be mixed with negative subscripts" + msgstr "" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "" + +Binary files R-2.4.0.old/po/en.gmo and R-2.4.0/po/en.gmo differ +diff -urp R-2.4.0.old/po/en.po R-2.4.0/po/en.po +--- R-2.4.0.old/po/en.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/en.po 2006-10-28 14:36:10.000000000 -0500 +@@ -6,7 +6,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.1.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2005-01-25 12:01+0000\n" + "Last-Translator: Brian Ripley \n" + "Language-Team: R-core \n" +@@ -80,7 +80,7 @@ msgstr "" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -125,7 +125,7 @@ msgstr "" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -469,7 +469,7 @@ msgid "second argument must be a list" + msgstr "" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "" + +@@ -1131,7 +1131,7 @@ msgstr "" + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "" + +@@ -1264,156 +1264,156 @@ msgstr "" + msgid "the first argument must be a character vector" + msgstr "" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "" + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" + msgstr "" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "" + +@@ -5404,7 +5404,7 @@ msgstr "" + msgid "no input is available" + msgstr "" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6014,7 +6014,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "" + +@@ -6050,19 +6050,19 @@ msgstr "" + msgid "only 0's may be mixed with negative subscripts" + msgstr "" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "" + +Binary files R-2.4.0.old/po/en@quot.gmo and R-2.4.0/po/en@quot.gmo differ +diff -urp R-2.4.0.old/po/en@quot.po R-2.4.0/po/en@quot.po +--- R-2.4.0.old/po/en@quot.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/en@quot.po 2006-10-28 14:36:10.000000000 -0500 +@@ -29,8 +29,8 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.4.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" +-"PO-Revision-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" ++"PO-Revision-Date: 2006-10-24 15:53+0100\n" + "Last-Translator: Automatically generated\n" + "Language-Team: none\n" + "MIME-Version: 1.0\n" +@@ -104,7 +104,7 @@ msgstr "invalid ‘names’ in ‘R_unli + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -149,7 +149,7 @@ msgstr "invalid ‘names’ in ‘R_unli + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -494,7 +494,7 @@ msgid "second argument must be a list" + msgstr "second argument must be a list" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "subscript out of bounds" + +@@ -1166,7 +1166,7 @@ msgstr "vector size specified is too lar + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "use of NULL environment is defunct" + +@@ -1299,112 +1299,112 @@ msgstr "invalid split pattern ‘%s’" + msgid "the first argument must be a character vector" + msgstr "the first argument must be a character vector" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "abbreviate used with non-ASCII chars" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "non-character names" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "invalid value of ‘allow_’" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "invalid multibyte string %d" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "regular expression is invalid in this locale" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "invalid regular expression ‘%s’" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "input string %d is invalid in this locale" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "invalid backreference %d in regular expression" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "‘pattern’ is invalid in this locale" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "‘replacement’ is invalid in this locale" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "zero-length pattern" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "non-character argument to tolower()" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "decreasing range specification ('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "decreasing range specification ('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "invalid (NA) arguments." + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "invalid multibyte string ‘old’" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "invalid multibyte string ‘new’" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "‘old’ is longer than ‘new’" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "invalid input multibyte string %d" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "use of agrep() in a UTF-8 locale may only work for ASCII strings" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "could not allocate memory for approximate matching" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "could not perform case insensitive matching" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "argument must be a character vector of length 1" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1412,45 +1412,45 @@ msgstr "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "argument ‘x’ must be a raw vector" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "argument ‘multiple’ must be TRUE or FALSE" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "argument ‘shift’ must be a small integer" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "argument ‘x’ must be a integer vector" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "argument ‘x’ must be raw, integer or logical" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "argument ‘type’ must be a character string" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "argument ‘x’ must be a multiple of %d long" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "argument ‘x’ must not contain NAs" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "argument ‘x’ must be an integer vector" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim() requires a character vector" + +@@ -5479,7 +5479,7 @@ msgstr "error writing to connection" + msgid "no input is available" + msgstr "no input is available" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6103,7 +6103,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]] subscript (%d) out of bounds" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "invalid subscript type" + +@@ -6139,19 +6139,19 @@ msgstr "(subscript) logical subscript to + msgid "only 0's may be mixed with negative subscripts" + msgstr "only 0's may be mixed with negative subscripts" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "character vector element does not have type CHARSXP" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "no ‘dimnames’ attribute for array" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "invalid subscript" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "subscripting on non-vector" + +Binary files R-2.4.0.old/po/es.gmo and R-2.4.0/po/es.gmo differ +diff -urp R-2.4.0.old/po/es.po R-2.4.0/po/es.po +--- R-2.4.0.old/po/es.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/es.po 2006-10-28 14:36:08.000000000 -0500 +@@ -7,7 +7,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.3.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2006-04-17 00:24+0100\n" + "Last-Translator: Pablo E. Verde \n" + "Language-Team: Spanish \n" +@@ -84,7 +84,7 @@ msgstr "'names' inválidos en R_unlink" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -129,7 +129,7 @@ msgstr "'names' inválidos en R_unlink" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -481,7 +481,7 @@ msgid "second argument must be a list" + msgstr "el segundo argumento debe ser una lista" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "subíndice fuera de los límites" + +@@ -1162,7 +1162,7 @@ msgstr "tamaño del vector especificado e + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "" + +@@ -1299,114 +1299,114 @@ msgstr "patrón de separación inválido '% + msgid "the first argument must be a character vector" + msgstr "el primer argumento debe ser un vector de caracteres" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "abreviatura utilizada con caracteres no ASCII" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "nombres de tipo no caracter" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "valor de 'allow_' inválido" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "string multibyte inválida %d" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "la expresión regular es inválida es este locale" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "expresión regular inválida '%s'" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "string de entrada %d es inválida en este locale" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "auto-referencia %d inválida en una expresión regular" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern' es inválido en este locale" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacement' es inválido en este locale" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "patrón de longitud 0" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "argumento que no es caracter para tolower()" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "especificación de rango decreciente ('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "especificación de rango decreciente ('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "argumentos (NA) inválidos" + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "string multibyte inválida 'old'" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "string multibyte inválida 'new'" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old' es más largo que 'new'" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "string multibyte %d de entrada inválida" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + "el uso de agrep() en un locale UTF-8 puede funcionar sólo para strings ASCII" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "no fue posible asignar memoria para una concordancia aproximado" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "" + "no fue posible realizar una concordancia no sensible a mayúsculas/minúsculas" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "el argumento debe ser un vector de caracteres de longitud 1" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1414,45 +1414,45 @@ msgstr "" + "el argumento debe ser un vector de caracteres de longitud 1\n" + "todos los elementos serán ignorados, salvo el primero" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "el argumento 'x' debe ser un vector de tipo crudo" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "el argumento 'multiple' debe ser TRUE o FALSE" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "el argumento 'shift' debe ser un entero pequeño" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "el argumento 'x' debe ser un vector entero" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "el argumento 'x' debe ser crudo, entero o lógico" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "el argumento 'type' debe ser una cadena de caracteres" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "el argumento 'x' debe ser un múltiplo de la longitud de %d" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "el argumento 'x' no puede contener NAs" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "el argumento 'x' debe ser un vector entero" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim() requiere un vector de caracteres" + +@@ -5545,7 +5545,7 @@ msgstr "error al escribir una conexión" + msgid "no input is available" + msgstr "no hay disponible mecanismos de historia" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6185,7 +6185,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "subscrito (%d) en [[ ]] fuera de limites" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "tipo de subscrito invalido" + +@@ -6221,19 +6221,19 @@ msgstr "(subscript) subscrito logico muy + msgid "only 0's may be mixed with negative subscripts" + msgstr "solamente 0's pueden ser mezclados con subscritos negativos" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "elemento del vector de caracteres no tiene tipo CHARSXP" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "arreglo (array) sin atributo 'dimnames'" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "subscrito invalido" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "intento de usar un subscrito e un objeto distinto a un vector" + +Binary files R-2.4.0.old/po/fr.gmo and R-2.4.0/po/fr.gmo differ +diff -urp R-2.4.0.old/po/fr.po R-2.4.0/po/fr.po +--- R-2.4.0.old/po/fr.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/fr.po 2006-10-28 14:36:10.000000000 -0500 +@@ -7,7 +7,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R-2.2.1\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2006-04-18 08:23+0100\n" + "Last-Translator: Philippe Grosjean \n" + "Language-Team: French \n" +@@ -84,7 +84,7 @@ msgstr "'names' incorrect dans 'R_unlink + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -129,7 +129,7 @@ msgstr "'names' incorrect dans 'R_unlink + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -480,7 +480,7 @@ msgid "second argument must be a list" + msgstr "le second argument doit être une liste" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "indice hors limites" + +@@ -1176,7 +1176,7 @@ msgstr "la longueur choisie pour le vect + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "l'utilisation de l'environnement NULL n'est plus autorisée" + +@@ -1311,38 +1311,38 @@ msgstr "motif de découpage '%s' incorrec + msgid "the first argument must be a character vector" + msgstr "le premier argument doit être un vecteur de caractères" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "abbreviate utilisé avec des caractères non ASCII" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "les noms ne sont pas des chaînes de caractères" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "valeur incorrecte pour 'allow_'" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "chaîne de charactères multioctets incorrecte %d" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "expression régulière incorrecte dans cet environnement linguistique" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "expression régulière incorrecte '%s'" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" +@@ -1350,78 +1350,78 @@ msgstr "" + "la chaîne de caractères entrée %d est incorrecte dans cet environnement " + "linguistique" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "référence arrière %d incorrecte dans l'expression régulière" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern' est incorrect dans cet environnement linguistique" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacement' est incorrect dans cet environnement linguistique" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "motif de longueur nulle" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "l'argument de tolower() n'est pas une chaîne de caractères" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "spécification de plage décroissante ('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "spécification de plage décroissante ('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "arguments (NA) incorrects." + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "chaîne de charactères multioctets 'old' incorrecte" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "chaîne de charactères multioctets 'new' incorrecte" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old' est plus long que 'new'" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "chaîne de caractères multioctets %d incorrecte en entrée" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + "l'utilisation de agrep() dans un environnement UTF-8 ne peut fonctionner que " + "pour des chaînes ASCII" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "" + "impossible d'allouer de la mémoire pour une correspondance approximative" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "une correspondance indépendante de la casse ne peut être effectuée" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "l'argument doit être un vecteur de caractères de longueur 1" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1429,45 +1429,45 @@ msgstr "" + "l'argument doit être un vecteur de caractères de longueur 1\n" + "tous les éléments sauf le premier sont ignorés" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "l'argument 'x' doit être un vecteur de type raw" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "l'argument 'multiple' doit être TRUE ou FALSE" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "l'argument 'shift' doit être un petit entier" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "l'argument 'x' doit être un vecteur d'entiers" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "l'argument 'x' doit être de type raw, entier ou logique" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "l'argument 'type' doit être une chaîne de caractères" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "l'argument 'x' doit être un multiple de la longueur %d" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "l'argument 'x' ne doit pas contenir de valeurs manquantes (NA)" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "l'argument 'x' doit être un vecteur d'entiers" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim() exige un vecteur de caractères comme argument" + +@@ -5607,7 +5607,7 @@ msgstr "erreur d'écriture vers la connex + msgid "no input is available" + msgstr "pas d'entrée disponible" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6254,7 +6254,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]] indice (%d) en dehors des bornes" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "type d'indice incorrect" + +@@ -6290,19 +6290,19 @@ msgstr "(subscript) indice logique trop + msgid "only 0's may be mixed with negative subscripts" + msgstr "les indices négatifs ne peuvent être mélangés qu'à des 0" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "un élément d'un vecteur de caractères n'a pas le type CHARSXP" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "aucun attribut 'dimnames' pour le tableau" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "indice incorrect" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "indiçage d'un élément non vectoriel" + +Binary files R-2.4.0.old/po/it.gmo and R-2.4.0/po/it.gmo differ +diff -urp R-2.4.0.old/po/it.po R-2.4.0/po/it.po +--- R-2.4.0.old/po/it.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/it.po 2006-10-28 14:36:11.000000000 -0500 +@@ -14,7 +14,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2006-01-16 09:11+0100\n" + "Last-Translator: Daniele Medri \n" + "Language-Team: Italian \n" +@@ -90,7 +90,7 @@ msgstr "'names' non valido in R_unlink" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -135,7 +135,7 @@ msgstr "'names' non valido in R_unlink" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -490,7 +490,7 @@ msgid "second argument must be a list" + msgstr "il secondo argomento deve essere di tipo list" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "indice fuori limite" + +@@ -1176,7 +1176,7 @@ msgstr "dimensione troppo grande per il + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "" + +@@ -1312,114 +1312,114 @@ msgstr "pattern di split '%s' non valido + msgid "the first argument must be a character vector" + msgstr "il primo argomento deve essere una vettore character" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "abbreviazione usata con caratteri non ASCII" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "nomi non di tipo character" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "valore non valido per 'allow_'" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "stringa mulibyte %d non valida" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "l'espressione regolare non è valida in questo locale" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "espressione regolare '%s' non valida" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "stringa di input %d non valida in questo locale" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "riferimento all'indietro %d non valido in questa espressione regolare" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern' non valido per questo locale" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacemente' non valido in questo locale" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "'pattern' di lunghezza zero" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "argomento non character in tolower()" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "specificazione range decrescente ('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "specificazione range decrescente ('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "argomenti non validi (NA)." + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "stringa multibyte non valido in 'old'" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "stringa multibyte 'new' non valida" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old' è più lungo di 'new'" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "stringa input multibyte %d non valida" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + "l'uso di agrep() in un locale UTF-8 può funzionare solo per stringhe ASCII" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "non è possibile allocare memoria per match approssimato" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "" + "non posso eseguire accoppiamenti senza tener conto delle maiuscole/minuscole" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "l'argomento deve essere un vettore character di lunghezza 1" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1427,45 +1427,45 @@ msgstr "" + "l'argomento deve essere un vettore di caratteri di lunghezza 1\n" + "verranno ignorati tutti tranne il primo elemento" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "l'argomento 'x' deve essere un vettore semplice" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "l'argomento 'mutiple' deve essere TRUE o FALSE" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "l'argomento 'shift' deve essere un intero piccolo" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "l'argomento 'x' deve essere un vettore di interi" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "l'argomento 'x' deve essere semplice, intero o booleano" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "l'argomento 'type' deve essere una stringa character" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "l'argomento 'x' deve essere lungo un multiplo di %d" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "l'argomento 'x' non deve contenere NA" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "l'argomento 'x' deve essere un vettore di interi" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strstrim() necessita di un vettore di caratteri" + +@@ -1524,7 +1524,7 @@ msgstr "environment non valido" + + #: src/main/coerce.c:1408 + msgid "argument must have length at least 1" +-msgstr "l'argometno deve avere almeno lunghezza 1" ++msgstr "l'argomento deve avere almeno lunghezza 1" + + #: src/main/coerce.c:1433 + msgid "invalid body for function" +@@ -3774,7 +3774,7 @@ msgstr "l'argumento formale \"%s\" è as + #: src/main/match.c:234 src/main/match.c:273 + #, c-format + msgid "argument %d matches multiple formal arguments" +-msgstr "l'argomento %d si associa a più argometni formali" ++msgstr "l'argomento %d si associa a più argomenti formali" + + #: src/main/match.c:386 + #, fuzzy, c-format +@@ -5549,7 +5549,7 @@ msgstr "errore di scrittura sulla connes + msgid "no input is available" + msgstr "non esiste un meccanismo di gestione history" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6190,7 +6190,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]] indice (%d) fuori limiti" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "tipo di indice non valido" + +@@ -6226,19 +6226,19 @@ msgstr "(subscript) indice logicol tropp + msgid "only 0's may be mixed with negative subscripts" + msgstr "solo gli 0 si possono usare contemporaneamente con indici negativi" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "il vettore carattere non ha un tipo CHARSXP" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "attributo 'dimnames' mancante per l'array" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "indici non valido" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "indicizzazione su un non vettore" + +Binary files R-2.4.0.old/po/ja.gmo and R-2.4.0/po/ja.gmo differ +diff -urp R-2.4.0.old/po/ja.po R-2.4.0/po/ja.po +--- R-2.4.0.old/po/ja.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/ja.po 2006-10-28 14:36:12.000000000 -0500 +@@ -6,7 +6,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.4.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2006-09-22 19:00+0900\n" + "Last-Translator: Shigeru Mase \n" + "Language-Team: R-core \n" +@@ -85,7 +85,7 @@ msgstr "R_unlink ã® 'names' ãŒä¸æ­£ã + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -130,7 +130,7 @@ msgstr "R_unlink ã® 'names' ãŒä¸æ­£ã + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -474,7 +474,7 @@ msgid "second argument must be a list" + msgstr "二番目ã®å¼•æ•°ã¯ãƒªã‚¹ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "æ·»ãˆå­—ãŒè¨±ã•ã‚Œã‚‹ç¯„囲外ã§ã™" + +@@ -1157,7 +1157,7 @@ msgstr "指定ã•ã‚ŒãŸãƒ™ã‚¯ãƒˆãƒ«ã®ã‚ + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "NULL環境ã®ä½¿ç”¨ã¯å»ƒè¦ç´ ã§ã™" + +@@ -1290,113 +1290,113 @@ msgstr "分割パターン '%s' ãŒä¸æ­ + msgid "the first argument must be a character vector" + msgstr "最åˆã®å¼•æ•°ã¯æ–‡å­—列ベクトルã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "ASCII 文字ã§ãªã„ã‚‚ã®ãŒçœç•¥åã¨ã—ã¦ä½¿ã‚ã‚Œã¾ã—ãŸ" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "åå‰ãŒæ–‡å­—列ã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "'allow_' ã®å€¤ãŒä¸æ­£ã§ã™" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "%d ã¯ä¸æ­£ãªãƒžãƒ«ãƒãƒã‚¤ãƒˆæ–‡å­—ã§ã™" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "ã“ã®ãƒ­ã‚±ãƒ¼ãƒ«ã§ã¯ï¼Œæ­£è¦è¡¨ç¾ã¯ç„¡åŠ¹ã§ã™" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "'%s' ã®æ­£è¦è¡¨ç¾ãŒä¸æ­£ã§ã™" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "入力文字列 %d ã¯ã“ã®ãƒ­ã‚±ãƒ¼ãƒ«ã§ã¯ä¸é©åˆ‡ã§ã™" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "æ­£è¦è¡¨ç¾ã«ãŠã‘る後方å‚ç…§ %d ãŒä¸æ­£ã§ã™" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern' ã¯ç¾åœ¨ã®ãƒ­ã‚±ãƒ¼ãƒ«ã§ã¯ä¸æ­£ã§ã™" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacement' ã¯ç¾åœ¨ã®ãƒ­ã‚±ãƒ¼ãƒ«ã§ã¯ä¸æ­£ã§ã™" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "é•·ã•ã‚¼ãƒ­ã®ãƒ‘ターン" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "tolower 関数ã®å¼•æ•°ãŒæ–‡å­—列ã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "範囲指定を縮å°ã—ã¾ã™ ('%lc-%lc') " + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "範囲指定を縮å°ã—ã¾ã™ ('%c-%c') " + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "引数ãŒä¸æ­£(NA)ã§ã™" + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "'old' ã¯ä¸æ­£ãªãƒžãƒ«ãƒãƒã‚¤ãƒˆæ–‡å­—ã§ã™" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "'new' ã¯ä¸æ­£ãªãƒžãƒ«ãƒãƒã‚¤ãƒˆæ–‡å­—ã§ã™" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old' ㌠'new' より長ã„ã§ã™" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "ä¸æ­£ãªãƒžãƒ«ãƒãƒã‚¤ãƒˆæ–‡å­—列入力 %d ã§ã™" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + "UTF-8 ロケールã«ãŠã‘ã‚‹ agrep 関数ã®ä½¿ç”¨ã¯ ASCII 文字列以外ã§ã¯ä¿è¨¼ã•ã‚Œã¾ã›ã‚“" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "近似マッãƒãƒ³ã‚°ã®ãŸã‚ã®ãƒ¡ãƒ¢ãƒªã‚’割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "大å°æ–‡å­—を無視ã—ãŸãƒžãƒƒãƒãƒ³ã‚°ã‚’è¡Œãªãˆã¾ã›ã‚“ã§ã—ãŸ" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "引数ã¯é•·ã•1ã®æ–‡å­—ベクトルã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1404,45 +1404,45 @@ msgstr "" + "引数ã¯é•·ã•1ã®æ–‡å­—ベクトルã§ã‚ã‚‹ã¹ãã§ã™\n" + "最åˆã®è¦ç´ ä»¥å¤–ã¯ç„¡è¦–ã•ã‚Œã¾ã™" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "引数 'x' 㯠raw ベクトルã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "引数 'multiple' 㯠TRUE ã‹ FALSE ã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "引数 'shift' ã¯å°ã•ãªæ•´æ•°ã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "引数 'x' ã¯æ•´æ•°ãƒ™ã‚¯ãƒˆãƒ«ã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "引数'x'ã¯ï¼Œraw, 整数,論ç†å€¤ã§ãªãã¦ã¯ã„ã‘ã¾ã›ã‚“" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "引数 'type' ã¯æ–‡å­—列ã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "引数 'x' ã¯é•·ã• %d ã®æ•´æ•°å€ã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "引数 'x' ã¯ï¼ŒNA ã‚’å«ã‚“ã§ã¯ã„ã‘ã¾ã›ã‚“" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "引数 'x' ã¯æ•´æ•°ãƒ™ã‚¯ãƒˆãƒ«ã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim 関数ã¯æ–‡å­—ベクトルをè¦æ±‚ã—ã¾ã™" + +@@ -5493,7 +5493,7 @@ msgstr "コãƒã‚¯ã‚·ãƒ§ãƒ³ã¸ã®æ›¸ãè¾ + msgid "no input is available" + msgstr "入力ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6124,7 +6124,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]] ã®æ·»ãˆå­—(%d)ãŒç¯„囲外ã§ã™" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "æ·»ãˆå­—ã®åž‹ãŒä¸æ­£ã§ã™" + +@@ -6160,19 +6160,19 @@ msgstr " (subscript) è«–ç†å€¤æ·»ãˆå­—ã + msgid "only 0's may be mixed with negative subscripts" + msgstr "è² ã®æ·»å­—ã¨æ··åœ¨ã§ãã‚‹ã®ã¯ 0 ã¨ã„ã†æ·»å­—ã ã‘ã§ã™" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "文字列ベクトルè¦ç´ ã¯åž‹ CHARSXP ã‚’æŒã¡ã¾ã›ã‚“" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "é…列㫠'dimnames' 属性ãŒã‚ã‚Šã¾ã›ã‚“" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "æ·»ãˆå­—ãŒä¸æ­£ã§ã™" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "ベクトルã§ãªã„ã‚‚ã®ã¸ã®æ·»ãˆå­—æ“作" + +Binary files R-2.4.0.old/po/ko.gmo and R-2.4.0/po/ko.gmo differ +diff -urp R-2.4.0.old/po/ko.po R-2.4.0/po/ko.po +--- R-2.4.0.old/po/ko.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/ko.po 2006-10-28 14:36:08.000000000 -0500 +@@ -7,7 +7,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.1.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2005-05-31 10:36+0900\n" + "Last-Translator: park ui-il \n" + "Language-Team: South Korea\n" +@@ -85,7 +85,7 @@ msgstr "R_unlinkì˜ 'names'ì´ ë¶€ì ì ˆ + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -130,7 +130,7 @@ msgstr "R_unlinkì˜ 'names'ì´ ë¶€ì ì ˆ + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -482,7 +482,7 @@ msgid "second argument must be a list" + msgstr "ë‘번째 ì¸ìˆ˜ëŠ” 리스트가 ë˜ì–´ì•¼ë§Œ 한다" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "첨ìžê°€ 허용ë˜ëŠ” 범위외입니다" + +@@ -1161,7 +1161,7 @@ msgstr "ì§€ì •ëœ ë²¡í„°ì˜ ì‚¬ì´ì¦ˆê°€ + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "" + +@@ -1297,114 +1297,114 @@ msgstr "분할 패턴 '%s'ê°€ 부ì ì ˆí + msgid "the first argument must be a character vector" + msgstr "ìµœì´ˆì˜ ì¸ìˆ˜ëŠ” 문ìžì—´ 벡터가 아니면 안ë©ë‹ˆë‹¤" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "ASCII문ìžê°€ ì•„ë‹Œê²ƒì— ëŒ€í•´ì„œ ìƒëžµì´ë¦„ì´ ì‚¬ìš©ë˜ì—ˆìŠµë‹ˆë‹¤" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "ì´ë¦„ì€ ë¬¸ìžì—´ì´ 아닙니다" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "'allow_'ì˜ ê°’ì´ ë¶€ì ì ˆí•©ë‹ˆë‹¤" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "%d는 부ì ì ˆí•œ 복수 ë°”ì´íŠ¸ 문ìžìž…니다" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "ì´ licaleì—서는 ì •ê·œ í‘œí˜„ì€ ë¬´íš¨ìž…ë‹ˆë‹¤" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "'%s'ì˜ ì •ê·œ í‘œí˜„ì´ ë¶€ì ì ˆí•©ë‹ˆë‹¤" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "ìž…ë ¥ 문ìžì—´%d는 localeì—ì„œ 부ì ì ˆí•©ë‹ˆë‹¤" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "ì •ê·œ í‘œí˜„ì— ìžˆì–´ì„œ 후방참조 %dê°€ 부ì ì ˆí•©ë‹ˆë‹¤" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern'는 í˜„ìž¬ì˜ localeì—ì„œ 부ì ì ˆí•©ë‹ˆë‹¤" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacement'는 í˜„ìž¬ì˜ localeì—ì„œ 부ì ì ˆí•©ë‹ˆë‹¤" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "zero-lengthì˜ íŒ¨í„´" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "tolower()í•¨ìˆ˜ì˜ ì¸ìˆ˜ê°€ 문ìžì—´ì´ 아닙니다" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "범위 ì§€ì •ì„ ì¶•ì†Œí•©ë‹ˆë‹¤('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "범위 ì§€ì •ì„ ì¶•ì†Œí•©ë‹ˆë‹¤('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "ì¸ìˆ˜ê°€ 부ì ì ˆí•œ(NA)입니다." + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "'old'는 부ì ì ˆí•œ 복수바ì´íŠ¸ 문ìžìž…니다" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "'new'는 부ì ì ˆí•œ 복수바ì´íŠ¸ 문ìžìž…니다" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old'ê°€ 'new'보다 ê¹ë‹ˆë‹¤" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "부ì ì ˆí•œ 복수바ì´íŠ¸ 문ìžì—´ ìž…ë ¥%d입니다" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + "부ì ì ˆí•œ UTF-8 localeì— ìžˆì–´ì„œ agrep()í•¨ìˆ˜ì˜ ì‚¬ìš©ì€ ASCII 문ìžì—´ ì´ì™¸ì—는 ì " + "ìš©ë˜ì§€ 않습니다" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "근사 matchingì„ ìœ„í•œ 메모리를 할당할수 없습니다" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "대소문ìžë¥¼ 무시한 matching를 실행할수 없습니다" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "ì¸ìˆ˜ëŠ” ê¸¸ì´ 1ì˜ ë¬¸ìž ë²¡í„°ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1412,46 +1412,46 @@ msgstr "" + "ì¸ìˆ˜ëŠ” ê¸¸ì´ 1ì˜ ë¬¸ìž ë²¡í„°ì´ì–´ì•¼ë§Œ 합니다\\n\n" + "ìµœì´ˆì˜ ìš”ì†Œ ì´ì™¸ëŠ” 무시ë©ë‹ˆë‹¤" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "ì¸ìˆ˜ 'x'는 raw 벡터ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "ì¸ìˆ˜ 'multiple'는 TRUE ë˜ëŠ” FALSE ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "ì¸ìˆ˜ 'shift'는 ìž‘ì€ ì •ìˆ˜ 벡터ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "ì¸ìˆ˜ 'x'는 정수 벡터ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "ì¸ìˆ˜ 'x'는 raw, 정수, 논리값ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "ì¸ìˆ˜ 'type'는 문ìžì—´ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "ì¸ìˆ˜ 'x'는 ê¸¸ì´ %dì˜ ì •ìˆ˜ë°°ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "ì¸ìˆ˜ 'x'는 NA를 í¬í•¨í•´ì„œëŠ” 안ë©ë‹ˆë‹¤" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + #, fuzzy + msgid "argument 'x' must be an integer vector" + msgstr "ì¸ìˆ˜ 'x'는 정수 벡터ì´ì–´ì•¼ë§Œ 합니다" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim 함수는 ë¬¸ìž ë²¡í„°ë¥¼ 요구합니다" + +@@ -5545,7 +5545,7 @@ msgstr "connectionì—ì˜ ê¸°ìž…í•´ ì—ëŸ + msgid "no input is available" + msgstr "ì´ìš© 할수 있는 히스토리 machanismê°€ 없습니다" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6178,7 +6178,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]]ì˜ ì²¨ìž(%d)ê°€ 범위외입니다" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "첨ìžì˜ 형태가 부ì ì ˆí•©ë‹ˆë‹¤" + +@@ -6214,19 +6214,19 @@ msgstr "(subscript) ë…¼ë¦¬ê°’ì˜ ì²¨ìžê + msgid "only 0's may be mixed with negative subscripts" + msgstr "ë¶€ì˜ ì²¨ìžì™€ 복합할수 ìžˆëŠ”ê²ƒì€ 0 ì´ë¼ê³  하는 첨ìžë§Œìž…니다" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "문ìžì—´ë²¡í„° 요소는 유형 CHARSXP를 가지지 않습니다" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "ë°°ì—´ì— 'dimnames' ì†ì„±ì´ 없습니다" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "첨ìžê°€ 부ì ì ˆí•©ë‹ˆë‹¤" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "벡터가 ì•„ë‹Œê²ƒì— ì²¨ìžì¡°ìž‘" + +Binary files R-2.4.0.old/po/pt_BR.gmo and R-2.4.0/po/pt_BR.gmo differ +diff -urp R-2.4.0.old/po/pt_BR.po R-2.4.0/po/pt_BR.po +--- R-2.4.0.old/po/pt_BR.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/pt_BR.po 2006-10-28 14:36:08.000000000 -0500 +@@ -7,7 +7,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.1.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2006-04-16 19:17-0300\n" + "Last-Translator: Fernando Henrique Ferraz P. da Rosa \n" + "Language-Team: Portuguese \n" +@@ -83,7 +83,7 @@ msgstr "'names' inválidos em 'R_unlink'" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -128,7 +128,7 @@ msgstr "'names' inválidos em 'R_unlink'" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -476,7 +476,7 @@ msgid "second argument must be a list" + msgstr "segundo argumento deve ser uma lista" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "índice fora de limites" + +@@ -1156,7 +1156,7 @@ msgstr "tamanho de vetor especificado é + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "uso do ambiente NULL não é mais permitido " + +@@ -1292,114 +1292,114 @@ msgstr "padrão split inválido '%s'" + msgid "the first argument must be a character vector" + msgstr "primeiro argumento deve ser um vetor de caracteres" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "abbreaviate usado com caracteres não-ASCII" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "nomes de modo não caractere" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "valor de 'allow_' inválido" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "string multibyte inválida %d" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "expressão regular é inválida nesse locale" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "expressão regular inválida '%s'" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "string de entrada %d é inválida nesse locale" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "auto-referência %d inválida na expressão regular" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern' é inválido nesse locale" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacement' é inválido nesse locale" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "padrão de comprimento 0" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "argumento diferente de caractere para tolower()" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "especificação de intervalo decrescente ('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "especificação de intervalo decrescente ('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "argumentos inválidos (NA)" + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "string multibyte inválida 'old'" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "string multibyte inválida 'new'" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old' é maior que 'new'" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "string de entrada multibyte %d inválida" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + "uso de agrep() em um locale UTF-8 pode funcionar somente para strings ASCII" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "não foi possível alocar memória para comparação aproximada" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "" + "não foi possível fazer comparação desconsiderando maíusculas/minúsculas" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "argumento deve ser um vetor de caracteres de comprimento 1" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1407,45 +1407,45 @@ msgstr "" + "argumento deve ser um vetor de caracteres de comprimento 1\n" + "todos menos o primeiro argumento serão ignorados" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "argumento 'x' deve ser um vetor do tipo raw" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "argumento 'multiple' deve ser TRUE ou FALSE" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "argumento 'shift' deve ser um inteiro pequeno" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "argumento 'x' deve ser um vetor inteiro" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "argumento 'x' deve ser raw, inteiro ou lógico" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "argumento 'type' deve ser uma string de caracteres" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "argumento 'x' deve ter comprimento múltiplo de %d" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "argumento 'x' não pode conter NAs" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "argumento 'x' deve ser um vetor inteiro" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim() requer um vetor de caracteres" + +@@ -5523,7 +5523,7 @@ msgstr "erro ao escrever na conexão" + msgid "no input is available" + msgstr "nenhuma entrada disponível" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6163,7 +6163,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "subscrito (%d) em [[ ]] fora de limites" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "tipo de subscrito inválido" + +@@ -6199,19 +6199,19 @@ msgstr "(subscript) subscrito lógico mui + msgid "only 0's may be mixed with negative subscripts" + msgstr "somente 0's podem ser usados junto com subscritos negativos" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "elemento do vetor de caracteres não tem tipo CHARSXP" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "array sem atributo 'dimnames'" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "subscrito inválido" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "tentativa de usar um subscrito em um objeto diferente de vetor" + +Binary files R-2.4.0.old/po/RGui-zh_CN.gmo and R-2.4.0/po/RGui-zh_CN.gmo differ +diff -urp R-2.4.0.old/po/RGui-zh_CN.po R-2.4.0/po/RGui-zh_CN.po +--- R-2.4.0.old/po/RGui-zh_CN.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/RGui-zh_CN.po 2006-10-28 14:36:10.000000000 -0500 +@@ -1,8 +1,8 @@ +-# Chinese translations for R package +-# Copyright (C) 2005 The R Foundation +-# This file is distributed under the same license as the PACKAGE package. +-# é™ˆæ– , 2006. +-# ++# Chinese translations for R package ++# Copyright (C) 2005 The R Foundation ++# This file is distributed under the same license as the PACKAGE package. ++# ³Âì³ , 2006. ++# + msgid "" + msgstr "" + "Project-Id-Version: R 2.1.0\n" +@@ -18,19 +18,19 @@ msgstr "" + + #: console.c:879 console.c:919 + msgid "Not enough memory" +-msgstr "内存ä¸å¤Ÿ" ++msgstr "ÄÚ´æ²»¹»" + + #: console.c:975 console.c:979 + msgid "Insufficient memory: text not copied to the clipboard" +-msgstr "内存ä¸å¤Ÿ: 原文没有å¤åˆ¶åˆ°å‰ªè´´æ¿" ++msgstr "ÄÚ´æ²»¹»: Ô­ÎÄûÓи´ÖƵ½¼ôÌù°å" + + #: console.c:1018 graphapp/clipboard.c:54 graphapp/clipboard.c:80 + msgid "Unable to open the clipboard" +-msgstr "无法打开剪贴æ¿" ++msgstr "ÎÞ·¨´ò¿ª¼ôÌù°å" + + #: console.c:1620 + msgid "Insufficient memory. Please close the console" +-msgstr "内存ä¸å¤Ÿã€‚ 请关闭控制å°" ++msgstr "ÄÚ´æ²»¹»¡£ Çë¹Ø±Õ¿ØÖÆ̨" + + #: console.c:1674 console.c:1727 preferences.c:274 + #, c-format +@@ -38,121 +38,121 @@ msgid "" + "Font %s-%d-%d not found.\n" + "Using system fixed font" + msgstr "" +-"找ä¸åˆ°%s-%d-%d字体。\n" +-"用系统字体" ++"ÕÒ²»µ½%s-%d-%d×ÖÌå¡£\n" ++"ÓÃϵͳ×ÖÌå" + + #: console.c:1829 + msgid "Save selection to" +-msgstr "ä¿å­˜é€‰æ‹©åˆ°" ++msgstr "±£´æÑ¡Ôñµ½" + + #: console.c:1831 + msgid "Save console contents to" +-msgstr "ä¿å­˜æŽ§åˆ¶å°å†…容到" ++msgstr "±£´æ¿ØÖÆ̨ÄÚÈݵ½" + + #: console.c:1929 + msgid "Scrolling.\n" +-msgstr "滚动。\n" ++msgstr "¹ö¶¯¡£\n" + + #: console.c:1930 + msgid " Keyboard: PgUp, PgDown, Ctrl+Arrows, Ctrl+Home, Ctrl+End,\n" +-msgstr " 键盘: PgUp, PgDown, Ctrl+箭头键, Ctrl+Home, Ctrl+End,\n" ++msgstr " ¼üÅÌ: PgUp, PgDown, Ctrl+¼ýÍ·¼ü, Ctrl+Home, Ctrl+End,\n" + + #: console.c:1931 + msgid "" + " Mouse: use the scrollbar(s).\n" + "\n" + msgstr "" +-" é¼ æ ‡: 用滚动æ¡ã€‚\n" ++" Êó±ê: Óùö¶¯Ìõ¡£\n" + "\n" + + #: console.c:1932 + msgid "Editing.\n" +-msgstr "修改。\n" ++msgstr "Ð޸ġ£\n" + + #: console.c:1933 + msgid " Moving the cursor: \n" +-msgstr " 移动鼠标: \n" ++msgstr " Òƶ¯Êó±ê: \n" + + #: console.c:1934 + msgid " Left arrow or Ctrl+B: move backward one character;\n" +-msgstr " 左箭头或Ctrl+B: 左移一字符;\n" ++msgstr " ×ó¼ýÍ·»òCtrl+B: ×óÒÆÒ»×Ö·û;\n" + + #: console.c:1935 + msgid " Right arrow or Ctrl+F: move forward one character;\n" +-msgstr " å³ç®­å¤´æˆ–Ctrl+F: å³ç§»ä¸€å­—符;\n" ++msgstr " ÓÒ¼ýÍ·»òCtrl+F: ÓÒÒÆÒ»×Ö·û;\n" + + #: console.c:1936 + msgid " Home or Ctrl+A: go to beginning of line;\n" +-msgstr " Home或Ctrl+A: 移到行头;\n" ++msgstr " Home»òCtrl+A: ÒƵ½ÐÐÍ·;\n" + + #: console.c:1937 + msgid " End or Ctrl+E: go to end of line;\n" +-msgstr " End或Ctrl+E: 移到行尾;\n" ++msgstr " End»òCtrl+E: ÒƵ½ÐÐβ;\n" + + #: console.c:1938 + msgid " History: Up and Down Arrows, Ctrl+P, Ctrl+N\n" +-msgstr " 历å²: 上,下箭头, Ctrl+P, Ctrl+N\n" ++msgstr " ÀúÊ·: ÉÏ£¬Ï¼ýÍ·, Ctrl+P, Ctrl+N\n" + + #: console.c:1939 + msgid " Deleting:\n" +-msgstr " 删除:\n" ++msgstr " ɾ³ý:\n" + + #: console.c:1940 + msgid " Del or Ctrl+D: delete current character;\n" +-msgstr " Del或Ctrl+D: 删除在目å‰ä½ç½®çš„字符;\n" ++msgstr " Del»òCtrl+D: ɾ³ýÔÚĿǰλÖõÄ×Ö·û;\n" + + #: console.c:1941 + msgid " Backspace: delete preceding character;\n" +-msgstr " Backspace: 删除目å‰ä½ç½®ä¹‹å‰çš„字符;\n" ++msgstr " Backspace: ɾ³ýĿǰλÖÃ֮ǰµÄ×Ö·û;\n" + + #: console.c:1942 + msgid "" + " Ctrl+Del or Ctrl+K: delete text from current character to end of line.\n" +-msgstr " Ctrl+Del或Ctrl+K: 删除目å‰ä½ç½®åˆ°è¡Œå°¾çš„所有文字。\n" ++msgstr " Ctrl+Del»òCtrl+K: ɾ³ýĿǰλÖõ½ÐÐβµÄËùÓÐÎÄ×Ö¡£\n" + + #: console.c:1943 + msgid " Ctrl+U: delete all text from current line.\n" +-msgstr " Ctrl+U: 从目å‰æ‰€åœ¨çš„行开始删除所有的文字。\n" ++msgstr " Ctrl+U: ´ÓÄ¿Ç°ËùÔÚµÄÐпªÊ¼É¾³ýËùÓеÄÎÄ×Ö¡£\n" + + #: console.c:1944 + msgid " Copy and paste.\n" +-msgstr " å¤åˆ¶å’Œç²˜è´´.\n" ++msgstr " ¸´ÖƺÍÕ³Ìù.\n" + + #: console.c:1945 + msgid "" + " Use the mouse (with the left button held down) to mark (select) text.\n" +-msgstr " 用鼠标(æŒç»­æŒ‰ä¸‹å·¦é”®) æ¥é€‰æ‹©æ–‡å­—。\n" ++msgstr " ÓÃÊó±ê(³ÖÐø°´ÏÂ×ó¼ü) À´Ñ¡ÔñÎÄ×Ö¡£\n" + + #: console.c:1946 + msgid "" + " Use Shift+Del (or Ctrl+C) to copy the marked text to the clipboard and\n" +-msgstr " 用Shift+Del(或Ctrl+C) 把选择好的文字å¤åˆ¶åˆ°å‰ªè´´æ¿\n" ++msgstr " ÓÃShift+Del(»òCtrl+C) °ÑÑ¡ÔñºÃµÄÎÄ×Ö¸´ÖƵ½¼ôÌù°å\n" + + #: console.c:1947 + msgid "" + " Shift+Ins (or Ctrl+V or Ctrl+Y) to paste the content of the clipboard " + "(if any) \n" +-msgstr " 用Shift+Ins(或Ctrl+V或Ctrl+Y)æ¥ç²˜è´´å‰ªè´´æ¿çš„内容(如果有的è¯) \n" ++msgstr " ÓÃShift+Ins(»òCtrl+V»òCtrl+Y)À´Õ³Ìù¼ôÌù°åµÄÄÚÈÝ(Èç¹ûÓеĻ°) \n" + + #: console.c:1948 + msgid " to the console, Ctrl+X first copy then paste\n" +-msgstr " 到控制å°, Ctrl+Xå…ˆå¤åˆ¶å†ç²˜è´´\n" ++msgstr " µ½¿ØÖÆ̨, Ctrl+XÏȸ´ÖÆÔÙÕ³Ìù\n" + + #: console.c:1949 + msgid " Misc:\n" +-msgstr " 其他:\n" ++msgstr " ÆäËû:\n" + + #: console.c:1950 + msgid " Ctrl+L: Clear the console.\n" +-msgstr " Ctrl+L: 清除控制å°.\n" ++msgstr " Ctrl+L: Çå³ý¿ØÖÆ̨.\n" + + #: console.c:1951 + msgid " Ctrl+O: Toggle overwrite mode: initially off.\n" +-msgstr " Ctrl+O: 开关é‡å†™çŠ¶æ€: 最åˆæ˜¯å…³æŽ‰çš„。\n" ++msgstr " Ctrl+O: ¿ª¹ØÖØд״̬: ×î³õÊǹصôµÄ¡£\n" + + #: console.c:1952 + msgid " Ctrl+T: Interchange current char with one to the left.\n" +-msgstr " Ctrl+T: 将目å‰æ‰€åœ¨ä½ç½®çš„字符与其左方的字符交æ¢ã€‚\n" ++msgstr " Ctrl+T: ½«Ä¿Ç°ËùÔÚλÖõÄ×Ö·ûÓëÆä×ó·½µÄ×Ö·û½»»»¡£\n" + + #: console.c:1953 + msgid "" +@@ -160,14 +160,14 @@ msgid "" + "Note: Console is updated only when some input is required.\n" + msgstr "" + "\n" +-"注æ„: åªæœ‰åœ¨è¾“入时控制å°æ‰èƒ½è¢«æ›´æ–°ã€‚\n" ++"×¢Òâ: Ö»ÓÐÔÚÊäÈëʱ¿ØÖÆ̨²ÅÄܱ»¸üС£\n" + + #: console.c:1954 + msgid "" + " Use Ctrl+W to toggle this feature off/on.\n" + "\n" + msgstr "" +-" 用Ctrl+Wæ¥å¼€å…³è¿™ä¸€åŠŸèƒ½ã€‚\n" ++" ÓÃCtrl+WÀ´¿ª¹ØÕâÒ»¹¦ÄÜ¡£\n" + "\n" + + #: console.c:1955 +@@ -175,72 +175,72 @@ msgid "" + "Use ESC to stop the interpreter.\n" + "\n" + msgstr "" +-"用ESCæ¥ä¸­æ–­æ³¨é‡Šå™¨ã€‚\n" ++"ÓÃESCÀ´ÖжÏ×¢ÊÍÆ÷¡£\n" + "\n" + + #: console.c:1956 + msgid "Standard Windows hotkeys can be used to switch to the\n" +-msgstr "å¯ä»¥ç”¨Windows的标准热键æ¥è½¬æ¢\n" ++msgstr "¿ÉÒÔÓÃWindowsµÄ±ê×¼ÈȼüÀ´×ª»»\n" + + #: console.c:1957 + msgid "graphics device (Ctrl+Tab or Ctrl+F6 in MDI, Alt+Tab in SDI)" +-msgstr "绘图设备 (MDI用Ctrl+Tab或Ctrl+F6, SDI用Alt+Tab)" ++msgstr "»æͼÉ豸 (MDIÓÃCtrl+Tab»òCtrl+F6, SDIÓÃAlt+Tab)" + + #: dataentry.c:220 + msgid "invalid argument" +-msgstr "å‚æ•°ä¸å¯¹" ++msgstr "²ÎÊý²»¶Ô" + + #: dataentry.c:267 + msgid "invalid type for value" +-msgstr "值的ç§ç±»ä¸å¯¹" ++msgstr "ÖµµÄÖÖÀ಻¶Ô" + + #: dataentry.c:281 + msgid "invalid device" +-msgstr "设备出错" ++msgstr "É豸³ö´í" + + #: dataentry.c:329 + msgid "dataentry: internal memory problem" +-msgstr "dataentry: 内部内存问题" ++msgstr "dataentry: ÄÚ²¿ÄÚ´æÎÊÌâ" + + #: dataentry.c:623 dataentry.c:1117 + msgid "dataentry: internal memory error" +-msgstr "dataentry: 内部内存错误" ++msgstr "dataentry: ÄÚ²¿ÄÚ´æ´íÎó" + + #: dataentry.c:742 dataentry.c:755 + msgid "internal type error in dataentry" +-msgstr "dataentry内部ç§ç±»å‡ºé”™" ++msgstr "dataentryÄÚ²¿ÖÖÀà³ö´í" + + #: dataentry.c:922 + msgid "dataentry: expression too long" +-msgstr "dataentry: 表达å¼å¤ªé•¿" ++msgstr "dataentry: ±í´ïʽ̫³¤" + + #: dataentry.c:1351 + msgid "column names cannot be blank" +-msgstr "列åä¸èƒ½æ˜¯ç©ºç™½çš„" ++msgstr "ÁÐÃû²»ÄÜÊÇ¿Õ°×µÄ" + + #: dataentry.c:1395 + msgid "Variable editor" +-msgstr "å˜é‡ç¼–辑器" ++msgstr "±äÁ¿±à¼­Æ÷" + + #: dataentry.c:1400 + msgid "variable name" +-msgstr "å˜é‡åå­—" ++msgstr "±äÁ¿Ãû×Ö" + + #: dataentry.c:1402 + msgid "type" +-msgstr "ç§ç±»" ++msgstr "ÖÖÀà" + + #: dataentry.c:1506 + msgid "Cell width(s)" +-msgstr "字元格宽" ++msgstr "×ÖÔª¸ñ¿í" + + #: dataentry.c:1511 + msgid "Cell width" +-msgstr "字元格宽" ++msgstr "×ÖÔª¸ñ¿í" + + #: dataentry.c:1514 + msgid "variable" +-msgstr "å˜é‡" ++msgstr "±äÁ¿" + + #: dataentry.c:1553 + msgid "" +@@ -264,282 +264,282 @@ msgid "" + " Right-click menu for copy, paste, autosize currently selected column\n" + "\n" + msgstr "" +-"导航。\n" +-" 键盘: 游标键用æ¥ç§»åŠ¨é€‰æ‹©çš„内容\n" +-"\tTabå³ç§», Shift+Tab左移\n" +-"\tPgDn或Ctrl+F: æ•´å±ä¸‹ç§»\n" +-"\tPgUp或Ctrl+B: æ•´å±ä¸Šç§»\n" +-"\tHome: 移到(1,1)ä½ç½®\n" +-"\tEnd: 显示最åŽä¸€åˆ—的最åŽä¸€è¡Œã€‚\n" +-" é¼ æ ‡: 在字元格里按左键, 用滚动æ¡ã€‚\n" ++"µ¼º½¡£\n" ++" ¼üÅÌ: Óαê¼üÓÃÀ´Òƶ¯Ñ¡ÔñµÄÄÚÈÝ\n" ++"\tTabÓÒÒÆ, Shift+Tab×óÒÆ\n" ++"\tPgDn»òCtrl+F: ÕûÆÁÏÂÒÆ\n" ++"\tPgUp»òCtrl+B: ÕûÆÁÉÏÒÆ\n" ++"\tHome: ÒƵ½(1,1)λÖÃ\n" ++"\tEnd: ÏÔʾ×îºóÒ»ÁеÄ×îºóÒ»ÐС£\n" ++" Êó±ê: ÔÚ×ÖÔª¸ñÀï°´×ó¼ü, Óùö¶¯Ìõ¡£\n" + "\n" +-"编辑。\n" +-" 写入目å‰é€‰æ‹©äº†çš„字元格里\n" +-" 在字元格里åŒç‚¹å‡»æ¥å¯¹åŸŸè¿›è¡Œç¼–辑\n" ++"±à¼­¡£\n" ++" дÈëÄ¿Ç°Ñ¡ÔñÁ˵Ä×ÖÔª¸ñÀï\n" ++" ÔÚ×ÖÔª¸ñÀïË«µã»÷À´¶ÔÓò½øÐб༭\n" + "\n" +-"其他.\n" +-" Ctrl-L刷新å±éšœï¼Œè‡ªåŠ¨è°ƒæ•´åˆ—的大å°\n" +-" Ctrl-Cå¤åˆ¶é€‰æ‹©çš„字元格\n" +-" Ctrl-V贴补到选择了的字元格\n" +-" å³é”®èœå•ç”¨æ¥å¤åˆ¶, 粘贴, 自己调整大å°é€‰æ‹©äº†çš„列\n" ++"ÆäËû.\n" ++" Ctrl-LË¢ÐÂÆÁÕÏ£¬×Ô¶¯µ÷ÕûÁеĴóС\n" ++" Ctrl-C¸´ÖÆÑ¡ÔñµÄ×ÖÔª¸ñ\n" ++" Ctrl-VÌù²¹µ½Ñ¡ÔñÁ˵Ä×ÖÔª¸ñ\n" ++" ÓÒ¼ü²Ëµ¥ÓÃÀ´¸´ÖÆ, Õ³Ìù, ×Ô¼ºµ÷Õû´óСѡÔñÁ˵ÄÁÐ\n" + "\n" + + #: dataentry.c:1559 dataentry.c:1653 editor.c:730 rui.c:1065 + msgid "Help" +-msgstr "帮助" ++msgstr "°ïÖú" + + #: dataentry.c:1561 + msgid "Copy selected cell" +-msgstr "å¤åˆ¶é€‰æ‹©äº†çš„字元格" ++msgstr "¸´ÖÆÑ¡ÔñÁ˵Ä×ÖÔª¸ñ" + + #: dataentry.c:1562 + msgid "Paste to selected cell" +-msgstr "粘贴到选择了的字元格" ++msgstr "Õ³Ìùµ½Ñ¡ÔñÁ˵Ä×ÖÔª¸ñ" + + #: dataentry.c:1563 + msgid "Autosize column" +-msgstr "自动调节列的大å°" ++msgstr "×Ô¶¯µ÷½ÚÁеĴóС" + + #: dataentry.c:1565 pager.c:295 rui.c:785 + #: ../library/grDevices/src/devWindows.c:1595 + msgid "Stay on top" +-msgstr "窗å£ä¿æŒåœ¨æœ€ä¸Šé¢" ++msgstr "´°¿Ú±£³ÖÔÚ×îÉÏÃæ" + + #: dataentry.c:1567 dataentry.c:1645 pager.c:297 pager.c:460 + msgid "Close" +-msgstr "关闭" ++msgstr "¹Ø±Õ" + + #: dataentry.c:1617 + msgid "Data Editor" +-msgstr "æ•°æ®ç¼–辑器" ++msgstr "Êý¾Ý±à¼­Æ÷" + + #: dataentry.c:1643 editor.c:676 pager.c:452 rui.c:1013 + #: ../library/grDevices/src/devWindows.c:1540 + msgid "File" +-msgstr "文件" ++msgstr "Îļþ" + + #: dataentry.c:1647 editor.c:694 pager.c:462 rui.c:1034 + msgid "Edit" +-msgstr "编辑" ++msgstr "±à¼­" + + #: dataentry.c:1648 + msgid "Copy \tCTRL+C" +-msgstr "å¤åˆ¶ \tCTRL+C" ++msgstr "¸´ÖÆ \tCTRL+C" + + #: dataentry.c:1649 + msgid "Paste \tCTRL+V" +-msgstr "粘贴 \tCTRL+V" ++msgstr "Õ³Ìù \tCTRL+V" + + #: dataentry.c:1650 + msgid "Delete\tDEL" +-msgstr "删除\tDEL" ++msgstr "ɾ³ý\tDEL" + + #: dataentry.c:1652 + msgid "Cell widths ..." +-msgstr "字元格宽..." ++msgstr "×ÖÔª¸ñ¿í..." + + #: dataentry.c:1654 + msgid "Data editor" +-msgstr "æ•°æ®ç¼–辑器" ++msgstr "Êý¾Ý±à¼­Æ÷" + + #: editor.c:449 pager.c:172 pager.c:192 + msgid "No RGui console to paste to" +-msgstr "没有å¯ä»¥ç²˜è´´ä¸Šçš„RGui控制å°" ++msgstr "ûÓпÉÒÔÕ³ÌùÉϵÄRGui¿ØÖÆ̨" + + #: editor.c:551 + msgid "R EDITOR\n" +-msgstr "R编辑器\n" ++msgstr "R±à¼­Æ÷\n" + + #: editor.c:553 + msgid "A standard text editor for editing and running R code.\n" +-msgstr "一个用于编辑和执行R程åºçš„标准文本编辑器。\n" ++msgstr "Ò»¸öÓÃÓڱ༭ºÍÖ´ÐÐR³ÌÐòµÄ±ê×¼Îı¾±à¼­Æ÷¡£\n" + + #: editor.c:555 + msgid "RUNNING COMMANDS\n" +-msgstr "执行命令\n" ++msgstr "Ö´ÐÐÃüÁî\n" + + #: editor.c:556 + msgid "To run a line or section of R code, select the code and either\n" +-msgstr "è¦æ‰§è¡Œä¸€è¡Œæˆ–一段R的代ç , 先选择所需è¦çš„代ç ï¼Œç„¶åŽå†\n" ++msgstr "ÒªÖ´ÐÐÒ»ÐлòÒ»¶ÎRµÄ´úÂë, ÏÈÑ¡ÔñËùÐèÒªµÄ´úÂ룬ȻºóÔÙ\n" + + #: editor.c:557 + msgid " Press Ctrl-R\n" +-msgstr " 按Ctrl-R\n" ++msgstr " °´Ctrl-R\n" + + #: editor.c:558 + msgid " Select \"Run line or selection\" from the \"Edit\" menu\n" +-msgstr " 从\"Edit\"èœå•ä¸­é€‰æ‹©\"Run line or selection\"\n" ++msgstr " ´Ó\"Edit\"²Ëµ¥ÖÐÑ¡Ôñ\"Run line or selection\"\n" + + #: editor.c:559 + msgid " Press the \"Run line or selection\" icon on the toolbar\n" +-msgstr " 按工具æ ä¸Šçš„\"Run line or selection\"按钮\n" ++msgstr " °´¹¤¾ßÀ¸ÉϵÄ\"Run line or selection\"°´Å¥\n" + + #: editor.c:560 + msgid "" + "This will copy the selected commands to the console and evaluate them.\n" +-msgstr "这会把选择了的命令å¤åˆ¶åˆ°æŽ§åˆ¶å°æ¥æ‰§è¡Œè¿™äº›å‘½ä»¤ã€‚\n" ++msgstr "Õâ»á°ÑÑ¡ÔñÁ˵ÄÃüÁÖƵ½¿ØÖÆ̨À´Ö´ÐÐÕâЩÃüÁî¡£\n" + + #: editor.c:561 + msgid "" + "If there is no selection, this will just run the current line and advance\n" +-msgstr "如果没有选择的è¯ï¼Œç›®å‰æ‰€åœ¨è¡Œçš„命令会被执行\n" ++msgstr "Èç¹ûûÓÐÑ¡ÔñµÄ»°£¬Ä¿Ç°ËùÔÚÐеÄÃüÁî»á±»Ö´ÐÐ\n" + + #: editor.c:562 + msgid "the cursor by one line.\n" +-msgstr "光标一行。\n" ++msgstr "¹â±êÒ»ÐС£\n" + + #: editor.c:574 editor.c:649 editor.c:710 + msgid "Run line or selection" +-msgstr "执行行或选择项" ++msgstr "Ö´ÐÐÐлòÑ¡ÔñÏî" + + #: editor.c:576 editor.c:695 + msgid "Undo" +-msgstr "å–消" ++msgstr "È¡Ïû" + + #: editor.c:578 editor.c:698 + msgid "Cut" +-msgstr "切割" ++msgstr "Çиî" + + #: editor.c:579 editor.c:700 pager.c:290 pager.c:463 rui.c:775 rui.c:978 + #: rui.c:1035 + msgid "Copy" +-msgstr "å¤åˆ¶" ++msgstr "¸´ÖÆ" + + #: editor.c:580 editor.c:702 rui.c:776 rui.c:982 rui.c:1036 + msgid "Paste" +-msgstr "粘贴" ++msgstr "Õ³Ìù" + + #: editor.c:581 editor.c:704 + msgid "Delete" +-msgstr "删除" ++msgstr "ɾ³ý" + + #: editor.c:583 editor.c:706 pager.c:293 pager.c:469 rui.c:782 rui.c:1040 + msgid "Select all" +-msgstr "选择一切" ++msgstr "Ñ¡ÔñÒ»ÇÐ" + + #: editor.c:641 pager.c:416 rui.c:966 + msgid "Open script" +-msgstr "打开程åºè„šæœ¬" ++msgstr "´ò¿ª³ÌÐò½Å±¾" + + #: editor.c:645 + msgid "Save script" +-msgstr "ä¿å­˜ç¨‹åºè„šæœ¬" ++msgstr "±£´æ³ÌÐò½Å±¾" + + #: editor.c:653 pager.c:436 ../library/grDevices/src/devWindows.c:1508 + msgid "Return focus to Console" +-msgstr "集中焦点到控制å°" ++msgstr "¼¯Öн¹µãµ½¿ØÖÆ̨" + + #: editor.c:656 + msgid "Print script" +-msgstr "打å°ç¨‹åºè„šæœ¬" ++msgstr "´òÓ¡³ÌÐò½Å±¾" + + #: editor.c:658 pager.c:431 rui.c:994 + #: ../library/grDevices/src/devWindows.c:1502 + msgid "Print" +-msgstr "打å°" ++msgstr "´òÓ¡" + + #: editor.c:677 pager.c:453 rui.c:1015 + msgid "New script" +-msgstr "建立新的程åºè„šæœ¬" ++msgstr "½¨Á¢ÐµijÌÐò½Å±¾" + + #: editor.c:679 pager.c:454 rui.c:1016 + msgid "Open script..." +-msgstr "打开程åºè„šæœ¬..." ++msgstr "´ò¿ª³ÌÐò½Å±¾..." + + #: editor.c:681 preferences.c:788 + msgid "Save" +-msgstr "ä¿å­˜" ++msgstr "±£´æ" + + #: editor.c:683 + msgid "Save as..." +-msgstr "ä¿å­˜ä¸º..." ++msgstr "±£´æΪ..." + + #: editor.c:686 pager.c:455 rui.c:1029 + #: ../library/grDevices/src/devWindows.c:1598 + msgid "Print..." +-msgstr "打å°..." ++msgstr "´òÓ¡..." + + #: editor.c:689 + msgid "Close script" +-msgstr "关闭程åºè„šæœ¬" ++msgstr "¹Ø±Õ³ÌÐò½Å±¾" + + #: editor.c:708 rui.c:1041 + msgid "Clear console" +-msgstr "清除控制å°" ++msgstr "Çå³ý¿ØÖÆ̨" + + #: editor.c:712 + msgid "Run all" +-msgstr "执行一切" ++msgstr "Ö´ÐÐÒ»ÇÐ" + + #: editor.c:715 + msgid "Find..." +-msgstr "查找..." ++msgstr "²éÕÒ..." + + #: editor.c:717 + msgid "Replace..." +-msgstr "替æ¢..." ++msgstr "Ìæ»»..." + + #: editor.c:720 rui.c:1045 + msgid "GUI preferences..." +-msgstr "GUI选项..." ++msgstr "GUIÑ¡Ïî..." + + #: editor.c:731 + msgid "Editor" +-msgstr "编辑器" ++msgstr "±à¼­Æ÷" + + #: editor.c:788 + msgid "Maximum number of editors reached" +-msgstr "编辑器数é‡å¤ªå¤š" ++msgstr "±à¼­Æ÷ÊýÁ¿Ì«¶à" + + #: editor.c:793 + msgid "Unable to create editor window" +-msgstr "无法建立编辑器窗å£" ++msgstr "ÎÞ·¨½¨Á¢±à¼­Æ÷´°¿Ú" + + #: editor.c:802 + msgid "Untitled" +-msgstr "未命å" ++msgstr "δÃüÃû" + + #: extra.c:804 preferences.c:790 graphapp/dialogs.c:505 graphapp/dialogs.c:600 + msgid "OK" +-msgstr "确定" ++msgstr "È·¶¨" + + #: extra.c:805 preferences.c:791 graphapp/dialogs.c:479 graphapp/dialogs.c:503 + #: graphapp/dialogs.c:509 graphapp/dialogs.c:584 graphapp/dialogs.c:598 + #: graphapp/dialogs.c:604 + msgid "Cancel" +-msgstr "å–消" ++msgstr "È¡Ïû" + + #: pager.c:78 + msgid "Error opening file" +-msgstr "打开文件时出错" ++msgstr "´ò¿ªÎļþʱ³ö´í" + + #: pager.c:85 + msgid "Insufficient memory to display file in internal pager" +-msgstr "用内部页é¢è°ƒåº¦ç¨‹åºæ¥æ˜¾ç¤ºæ–‡ä»¶æ—¶å†…å­˜ä¸å¤Ÿ" ++msgstr "ÓÃÄÚ²¿Ò³Ãæµ÷¶È³ÌÐòÀ´ÏÔʾÎļþʱÄÚ´æ²»¹»" + + #: pager.c:164 pager.c:176 pager.c:196 rui.c:225 rui.c:252 + msgid "No selection" +-msgstr "没有选择" ++msgstr "ûÓÐÑ¡Ôñ" + + #: pager.c:291 pager.c:421 pager.c:465 + msgid "Paste to console" +-msgstr "粘贴到控制å°" ++msgstr "Õ³Ìùµ½¿ØÖÆ̨" + + #: pager.c:292 pager.c:426 pager.c:467 + msgid "Paste commands to console" +-msgstr "粘贴命令到控制å°" ++msgstr "Õ³ÌùÃüÁîµ½¿ØÖÆ̨" + + #: pager.c:457 rui.c:1030 + msgid "Save to File..." +-msgstr "ä¿å­˜åˆ°æ–‡ä»¶..." ++msgstr "±£´æµ½Îļþ..." + + #: pager.c:472 + msgid "View" +-msgstr "看" ++msgstr "¿´" + + #: pager.c:501 + msgid "Unable to create pager window" +-msgstr "无法建立页é¢è°ƒåº¦ç¨‹åºçª—å£" ++msgstr "ÎÞ·¨½¨Á¢Ò³Ãæµ÷¶È³ÌÐò´°¿Ú" + + #: preferences.c:243 + msgid "" +@@ -548,9 +548,9 @@ msgid "" + "\n" + "Save the preferences and restart Rgui to apply them.\n" + msgstr "" +-"ä¸èƒ½åœ¨æŽ§åˆ¶å°åœ¨è¿è¡Œçš„时候改å˜å…¶æ€§èƒ½\n" ++"²»ÄÜÔÚ¿ØÖÆ̨ÔÚÔËÐеÄʱºò¸Ä±äÆäÐÔÄÜ\n" + "\n" +-"存储设置åŽé‡æ–°å¯åŠ¨Rgui。\n" ++"´æ´¢ÉèÖúóÖØÐÂÆô¶¯Rgui¡£\n" + + #: preferences.c:247 + msgid "" +@@ -559,418 +559,417 @@ msgid "" + "\n" + "Save the preferences and restart Rgui to apply to menus.\n" + msgstr "" +-"èœå•çš„语言ä¸èƒ½æŽ§åˆ¶å°è¿è¡Œçš„时候å˜åŒ–\n" ++"²Ëµ¥µÄÓïÑÔ²»ÄÜ¿ØÖÆ̨ÔËÐеÄʱºò±ä»¯\n" + "\n" +-"在存储设置åŽé‡æ–°å¯åŠ¨Rguiæ‰èƒ½æ”¹å˜èœå•ã€‚\n" ++"ÔÚ´æ´¢ÉèÖúóÖØÐÂÆô¶¯Rgui²ÅÄܸıä²Ëµ¥¡£\n" + + #: preferences.c:316 + msgid "Changes in pager size will not apply to any open pagers" +-msgstr "åªèƒ½æ”¹å˜æ–°çš„呼å«å™¨çš„大å°" ++msgstr "Ö»Äܸıäеĺô½ÐÆ÷µÄ´óС" + + #: preferences.c:322 + msgid "" + "Do not change pager type if any pager is open\n" + "Proceed?" +-msgstr "" +-"如果有正在è¿è¡Œçš„呼å«å™¨çš„è¯ï¼Œè¯·ä¸è¦æ”¹åŠ¨å‘¼å«å™¨çš„ç§ç±»\n" +-"继续å—?" ++msgstr "Èç¹ûÓÐÕýÔÚÔËÐеĺô½ÐÆ÷µÄ»°£¬Çë²»Òª¸Ä¶¯ºô½ÐÆ÷µÄÖÖÀà\n" ++"¼ÌÐøÂð£¿" + + #: preferences.c:349 + msgid "Select directory for file 'Rconsole'" +-msgstr "为文件Rconsole选择目录" ++msgstr "ΪÎļþRconsoleÑ¡ÔñĿ¼" + + #: preferences.c:440 + msgid "Select 'Rconsole' file" +-msgstr "选择'Rconsole'文件" ++msgstr "Ñ¡Ôñ'Rconsole'Îļþ" + + #: preferences.c:635 + #, c-format + msgid "Error at line %d of file %s" +-msgstr "文件%2$s的第%1$d行出错" ++msgstr "Îļþ%2$sµÄµÚ%1$dÐгö´í" + + #: preferences.c:678 + msgid "Rgui Configuration Editor" +-msgstr "Rguié…置编辑器" ++msgstr "RguiÅäÖñ༭Æ÷" + + #: preferences.c:787 + msgid "Apply" +-msgstr "应用" ++msgstr "Ó¦ÓÃ" + + #: preferences.c:789 + msgid "Load" +-msgstr "载入" ++msgstr "ÔØÈë" + + #: rui.c:124 + msgid "Select file to source" +-msgstr "选择è¦è¾“入的程åºæ–‡ä»¶" ++msgstr "Ñ¡ÔñÒªÊäÈëµÄ³ÌÐòÎļþ" + + #: rui.c:145 + msgid "Select image to load" +-msgstr "选择è¦è½½å…¥çš„映åƒ" ++msgstr "Ñ¡ÔñÒªÔØÈëµÄÓ³Ïñ" + + #: rui.c:160 + msgid "Save image in" +-msgstr "ä¿å­˜æ˜ åƒåˆ°" ++msgstr "±£´æÓ³Ïñµ½" + + #: rui.c:175 + msgid "Load history from" +-msgstr "载入历å²äºŽ" ++msgstr "ÔØÈëÀúÊ·ÓÚ" + + #: rui.c:184 + msgid "Save history in" +-msgstr "ä¿å­˜åŽ†å²åˆ°" ++msgstr "±£´æÀúÊ·µ½" + + #: rui.c:234 rui.c:243 + msgid "No text available" +-msgstr "没有文本" ++msgstr "ûÓÐÎı¾" + + #: rui.c:292 + msgid "Name of data frame or matrix" +-msgstr "æ•°æ®æ¡†æˆ–矩阵å" ++msgstr "Êý¾Ý¿ò»ò¾ØÕóÃû" + + #: rui.c:299 + #, c-format + msgid "'%s' cannot be found" +-msgstr "找ä¸åˆ°'%s'" ++msgstr "ÕÒ²»µ½'%s'" + + #: rui.c:365 + msgid "Are you sure?" +-msgstr "你肯定å—?" ++msgstr "Äã¿Ï¶¨Âð?" + + #: rui.c:446 + msgid "Help on" +-msgstr "帮助于" ++msgstr "°ïÖúÓÚ" + + #: rui.c:497 + msgid "Search help" +-msgstr "查找帮助" ++msgstr "²éÕÒ°ïÖú" + + #: rui.c:512 + msgid "Search for words in help list archives and documentation" +-msgstr "æœç´¢é‚®ä»¶åˆ—表档案和文档" ++msgstr "ËÑË÷ÓʼþÁÐ±íµµ°¸ºÍÎĵµ" + + #: rui.c:527 + msgid "Apropos" +-msgstr "关于" ++msgstr "¹ØÓÚ" + + #: rui.c:771 + msgid "Can only drag-and-drop .R, .RData and .rda files" +-msgstr "鼠标拉-放åªé€‚用于.R,.RDataå’Œ.rdaåŽç¼€çš„文件" ++msgstr "Êó±êÀ­-·ÅÖ»ÊÊÓÃÓÚ.R£¬.RDataºÍ.rdaºó׺µÄÎļþ" + + #: rui.c:777 rui.c:1037 + msgid "Paste commands only" +-msgstr "åªèƒ½ç”¨ç²˜è´´å‘½ä»¤" ++msgstr "Ö»ÄÜÓÃÕ³ÌùÃüÁî" + + #: rui.c:778 rui.c:986 + msgid "Copy and paste" +-msgstr "å¤åˆ¶å’Œç²˜è´´" ++msgstr "¸´ÖƺÍÕ³Ìù" + + #: rui.c:780 + msgid "Clear window" +-msgstr "清除窗å£" ++msgstr "Çå³ý´°¿Ú" + + #: rui.c:784 rui.c:1054 + msgid "Buffered output" +-msgstr "缓冲输出" ++msgstr "»º³åÊä³ö" + + #: rui.c:824 + msgid "Packages" +-msgstr "程åºåŒ…" ++msgstr "³ÌÐò°ü" + + #: rui.c:825 + msgid "Load package..." +-msgstr "载入程åºåŒ…..." ++msgstr "ÔØÈë³ÌÐò°ü..." + + #: rui.c:827 + msgid "Set CRAN mirror..." +-msgstr "设定CRANé•œåƒ..." ++msgstr "É趨CRAN¾µÏñ..." + + #: rui.c:829 + msgid "Select repositories..." +-msgstr "选择存放处..." ++msgstr "Ñ¡Ôñ´æ·Å´¦..." + + #: rui.c:831 + msgid "Install package(s)..." +-msgstr "安装程åºåŒ…..." ++msgstr "°²×°³ÌÐò°ü..." + + #: rui.c:833 + msgid "Update packages..." +-msgstr "更新程åºåŒ…..." ++msgstr "¸üгÌÐò°ü..." + + #: rui.c:836 + msgid "Install package(s) from local zip files..." +-msgstr "用本机的zip文件æ¥å®‰è£…程åºåŒ…..." ++msgstr "Óñ¾»úµÄzipÎļþÀ´°²×°³ÌÐò°ü..." + + #: rui.c:864 + msgid "FAQ on R" +-msgstr "关于Rçš„FAQ" ++msgstr "¹ØÓÚRµÄFAQ" + + #: rui.c:866 + msgid "FAQ on R for &Windows" +-msgstr "关于Windows上Rçš„FAQ" ++msgstr "¹ØÓÚWindowsÉÏRµÄFAQ" + + #: rui.c:872 rui.c:875 + msgid "Manuals (in PDF)" +-msgstr "手册(PDF文件)" ++msgstr "ÊÖ²á(PDFÎļþ)" + + #: rui.c:902 + msgid "R functions (text)..." +-msgstr "R函数(文本文件)..." ++msgstr "Rº¯Êý(Îı¾Îļþ)..." + + #: rui.c:904 + msgid "Html help" +-msgstr "Html帮助" ++msgstr "Html°ïÖú" + + #: rui.c:906 + msgid "Search help..." +-msgstr "查找帮助..." ++msgstr "²éÕÒ°ïÖú..." + + #: rui.c:911 + msgid "Apropos..." +-msgstr "关于..." ++msgstr "¹ØÓÚ..." + + #: rui.c:913 + msgid "R Project home page" +-msgstr "R主页" ++msgstr "RÖ÷Ò³" + + #: rui.c:914 + msgid "CRAN home page" +-msgstr "CRAN主页" ++msgstr "CRANÖ÷Ò³" + + #: rui.c:916 + msgid "About" +-msgstr "关于" ++msgstr "¹ØÓÚ" + + #: rui.c:970 + msgid "Load image" +-msgstr "载入映åƒ" ++msgstr "ÔØÈëÓ³Ïñ" + + #: rui.c:974 + msgid "Save image" +-msgstr "ä¿å­˜æ˜ åƒ" ++msgstr "±£´æÓ³Ïñ" + + #: rui.c:990 + msgid "Stop current computation" +-msgstr "中断目å‰çš„计算" ++msgstr "ÖжÏÄ¿Ç°µÄ¼ÆËã" + + #: rui.c:1014 + msgid "Source R code..." +-msgstr "输入R代ç ..." ++msgstr "ÊäÈëR´úÂë..." + + #: rui.c:1017 + msgid "Display file(s)..." +-msgstr "显示文件..." ++msgstr "ÏÔʾÎļþ..." + + #: rui.c:1019 + msgid "Load Workspace..." +-msgstr "载入工作空间..." ++msgstr "ÔØÈ빤×÷¿Õ¼ä..." + + #: rui.c:1020 + msgid "Save Workspace..." +-msgstr "ä¿å­˜å·¥ä½œç©ºé—´..." ++msgstr "±£´æ¹¤×÷¿Õ¼ä..." + + #: rui.c:1022 + msgid "Load History..." +-msgstr "载入历å²..." ++msgstr "ÔØÈëÀúÊ·..." + + #: rui.c:1024 + msgid "Save History..." +-msgstr "ä¿å­˜åŽ†å²..." ++msgstr "±£´æÀúÊ·..." + + #: rui.c:1027 + msgid "Change dir..." +-msgstr "改å˜å½“å‰ç›®å½•..." ++msgstr "¸Ä±äµ±Ç°Ä¿Â¼..." + + #: rui.c:1032 + msgid "Exit" +-msgstr "退出" ++msgstr "Í˳ö" + + #: rui.c:1039 + msgid "Copy and Paste" +-msgstr "å¤åˆ¶å’Œç²˜è´´" ++msgstr "¸´ÖƺÍÕ³Ìù" + + #: rui.c:1043 + msgid "Data editor..." +-msgstr "æ•°æ®ç¼–辑器..." ++msgstr "Êý¾Ý±à¼­Æ÷..." + + #: rui.c:1047 + msgid "Misc" +-msgstr "其他" ++msgstr "ÆäËû" + + #: rui.c:1048 + msgid "Stop current computation \tESC" +-msgstr "中断目å‰çš„计算 \tESC" ++msgstr "ÖжÏÄ¿Ç°µÄ¼ÆËã \tESC" + + #: rui.c:1050 + msgid "Stop all computations" +-msgstr "中断所有计算" ++msgstr "ÖжÏËùÓмÆËã" + + #: rui.c:1052 + msgid "Break to debugger" +-msgstr "æš‚åœè¿›å…¥åˆ°ä¾¦é”™å™¨" ++msgstr "ÔÝÍ£½øÈëµ½Õì´íÆ÷" + + #: rui.c:1056 + msgid "List objects" +-msgstr "列出目标对象" ++msgstr "ÁгöÄ¿±ê¶ÔÏó" + + #: rui.c:1057 + msgid "Remove all objects" +-msgstr "删除所有的目标对象" ++msgstr "ɾ³ýËùÓеÄÄ¿±ê¶ÔÏó" + + #: rui.c:1058 + msgid "List &search path" +-msgstr "列出查找路径" ++msgstr "Áгö²éÕÒ·¾¶" + + #: rui.c:1066 + msgid "Console" +-msgstr "控制å°" ++msgstr "¿ØÖÆ̨" + + #: rui.c:1103 + msgid "Select file" +-msgstr "选择文件" ++msgstr "Ñ¡ÔñÎļþ" + + #: rui.c:1146 + msgid "'mname' is limited to 1000 bytes" +-msgstr "'mname'的长度最多åªèƒ½æœ‰1000个字符" ++msgstr "'mname'µÄ³¤¶È×î¶àÖ»ÄÜÓÐ1000¸ö×Ö·û" + + #: rui.c:1188 + #, c-format + msgid "menu %s does not exist" +-msgstr "没有%s这样的èœå•" ++msgstr "ûÓÐ%sÕâÑùµÄ²Ëµ¥" + + #: rui.c:1242 + msgid "'menu' is limited to 500 bytes" +-msgstr "'menu'的长度最多åªèƒ½æœ‰500个字符" ++msgstr "'menu'µÄ³¤¶È×î¶àÖ»ÄÜÓÐ500¸ö×Ö·û" + + #: rui.c:1252 + msgid "base menu does not exist" +-msgstr "基本èœå•ä¸å­˜åœ¨" ++msgstr "»ù±¾²Ëµ¥²»´æÔÚ" + + #: rui.c:1267 + msgid "failed to allocate menu" +-msgstr "无法é…ç½®èœå•" ++msgstr "ÎÞ·¨ÅäÖò˵¥" + + #: rui.c:1283 rui.c:1404 + msgid "menu + item is limited to 1000 bytes" +-msgstr "èœï£?项目的长度åªèƒ½åœ¨1000个字符内" ++msgstr "²Ëµ¥¼ÓÏîÄ¿µÄ³¤¶ÈÖ»ÄÜÔÚ1000¸ö×Ö·ûÄÚ" + + #: rui.c:1291 rui.c:1373 + msgid "menu does not exist" +-msgstr "没有这一èœå•" ++msgstr "ûÓÐÕâÒ»²Ëµ¥" + + #: rui.c:1309 rui.c:1332 rui.c:1337 + msgid "failed to allocate char storage" +-msgstr "é…置字符储存器失败" ++msgstr "ÅäÖÃ×Ö·û´¢´æÆ÷ʧ°Ü" + + #: rui.c:1345 + msgid "failed to allocate menuitem" +-msgstr "é…ç½®èœå•é¡¹å¤±è´¥" ++msgstr "ÅäÖò˵¥Ïîʧ°Ü" + + #: rui.c:1394 + msgid "menu not found" +-msgstr "找ä¸åˆ°èœå•" ++msgstr "ÕÒ²»µ½²Ëµ¥" + + #: rui.c:1412 + msgid "menu or item does not exist" +-msgstr "èœå•æˆ–者项目ä¸å­˜åœ¨" ++msgstr "²Ëµ¥»òÕßÏîÄ¿²»´æÔÚ" + + #: system.c:400 + msgid "Save workspace image?" +-msgstr "ä¿å­˜å·¥ä½œç©ºé—´æ˜ åƒ?" ++msgstr "±£´æ¹¤×÷¿Õ¼äÓ³Ïñ?" + + #: graphapp/clipboard.c:70 graphapp/clipboard.c:74 + msgid "Insufficient memory: cell not copied to the clipboard" +-msgstr "内存ä¸å¤Ÿ: 字元格没有å¤åˆ¶åˆ°å‰ªè´´æ¿" ++msgstr "ÄÚ´æ²»¹»: ×ÖÔª¸ñûÓи´ÖƵ½¼ôÌù°å" + + #: graphapp/dialogs.c:135 graphapp/dialogs.c:152 graphapp/dialogs.c:169 + msgid "Question" +-msgstr "问题" ++msgstr "ÎÊÌâ" + + #: graphapp/dialogs.c:189 + msgid " Change working directory to:" +-msgstr " 当å‰ç›®å½•æ”¹æˆï¼š" ++msgstr " µ±Ç°Ä¿Â¼¸Ä³É£º" + + #: graphapp/dialogs.c:192 + #, c-format + msgid "Unable to set '%s' as working directory" +-msgstr "无法将'%s'设æˆå½“å‰ç›®å½•" ++msgstr "ÎÞ·¨½«'%s'Éè³Éµ±Ç°Ä¿Â¼" + + #: graphapp/dialogs.c:400 + msgid "Choose a folder" +-msgstr "选一个文件夹" ++msgstr "Ñ¡Ò»¸öÎļþ¼Ð" + + #: graphapp/dialogs.c:492 graphapp/dialogs.c:494 + msgid "Browse" +-msgstr "æµè§ˆ" ++msgstr "ä¯ÀÀ" + + #: graphapp/dialogs.c:592 + msgid "User" +-msgstr "用户" ++msgstr "Óû§" + + #: graphapp/dialogs.c:593 + msgid "Password" +-msgstr "密ç " ++msgstr "ÃÜÂë" + + #: graphapp/dialogs.c:754 graphapp/dialogs.c:760 + #, c-format + msgid "\"%s\" not found" +-msgstr "找ä¸åˆ°\"%s\"" ++msgstr "ÕÒ²»µ½\"%s\"" + + #: graphapp/gmenus.c:48 + msgid "Windows" +-msgstr "窗å£" ++msgstr "´°¿Ú" + + #: graphapp/gmenus.c:49 + msgid "Cascade" +-msgstr "层å " ++msgstr "²ãµþ" + + #: graphapp/gmenus.c:50 + msgid "Tile" +-msgstr "平铺" ++msgstr "ƽÆÌ" + + #: graphapp/gmenus.c:51 + msgid "Arrange Icons" +-msgstr "安排按钮" ++msgstr "°²ÅÅ°´Å¥" + + #: ../library/grDevices/src/devWindows.c:848 + msgid "Png files (*.png)" +-msgstr "Png文件(*.png)" ++msgstr "PngÎļþ(*.png)" + + #: ../library/grDevices/src/devWindows.c:849 + msgid "Portable network graphics file" +-msgstr "Portable network graphics文件" ++msgstr "Portable network graphicsÎļþ" + + #: ../library/grDevices/src/devWindows.c:851 + msgid "Windows bitmap files (*.bmp)" +-msgstr "Windows bitmap文件(*.bmp)" ++msgstr "Windows bitmapÎļþ(*.bmp)" + + #: ../library/grDevices/src/devWindows.c:852 + msgid "Windows bitmap file" +-msgstr "Windows bitmap文件" ++msgstr "Windows bitmapÎļþ" + + #: ../library/grDevices/src/devWindows.c:854 + msgid "Jpeg files (*.jpeg,*jpg)" +-msgstr "Jpeg文件(*.jpeg,*jpg)" ++msgstr "JpegÎļþ(*.jpeg,*jpg)" + + #: ../library/grDevices/src/devWindows.c:855 + msgid "Jpeg file" +-msgstr "Jpeg文件" ++msgstr "JpegÎļþ" + + #: ../library/grDevices/src/devWindows.c:875 + msgid "Postscript files (*.ps)" +-msgstr "Postscript文件(*.ps)" ++msgstr "PostscriptÎļþ(*.ps)" + + #: ../library/grDevices/src/devWindows.c:876 + msgid "Postscript file" +-msgstr "Postscript文件" ++msgstr "PostscriptÎļþ" + + #: ../library/grDevices/src/devWindows.c:887 + msgid "PDF files (*.pdf)" +-msgstr "PDF文件(*.pdf)" ++msgstr "PDFÎļþ(*.pdf)" + + #: ../library/grDevices/src/devWindows.c:888 + msgid "PDF file" +-msgstr "PDF文件" ++msgstr "PDFÎļþ" + + #: ../library/grDevices/src/devWindows.c:899 + msgid "Enhanced metafiles (*.emf)" +@@ -983,53 +982,53 @@ msgstr "Enhanced metafiles" + #: ../library/grDevices/src/devWindows.c:903 + #: ../library/grDevices/src/devWindows.c:2721 + msgid "file path selected is too long: only 512 bytes are allowed" +-msgstr "选择的文件路径太长:最多åªèƒ½æœ‰512字节" ++msgstr "Ñ¡ÔñµÄÎļþ·¾¶Ì«³¤£º×î¶àÖ»ÄÜÓÐ512×Ö½Ú" + + #: ../library/grDevices/src/devWindows.c:1119 + msgid "No plot to replace!" +-msgstr "没有å¯æ›¿æ¢çš„图表!" ++msgstr "ûÓпÉÌæ»»µÄͼ±í!" + + #: ../library/grDevices/src/devWindows.c:1165 + msgid "Variable name" +-msgstr "å˜é‡å" ++msgstr "±äÁ¿Ãû" + + #: ../library/grDevices/src/devWindows.c:1172 + msgid "Variable doesn't exist or doesn't contain any plots!" +-msgstr "å˜é‡ä¸å­˜åœ¨æˆ–ä¸åŒ…å«ä»»ä½•å›¾è¡¨!" ++msgstr "±äÁ¿²»´æÔÚ»ò²»°üº¬ÈκÎͼ±í!" + + #: ../library/grDevices/src/devWindows.c:1188 + msgid "Name of variable to save to" +-msgstr "è¦ä¿å­˜åˆ°çš„å˜é‡å" ++msgstr "Òª±£´æµ½µÄ±äÁ¿Ãû" + + #: ../library/grDevices/src/devWindows.c:1496 + msgid "Copy to the clipboard as a metafile" +-msgstr "作为metafileå¤åˆ¶åˆ°å‰ªè´´æ¿" ++msgstr "×÷Ϊmetafile¸´ÖƵ½¼ôÌù°å" + + #: ../library/grDevices/src/devWindows.c:1514 + #: ../library/grDevices/src/devWindows.c:1525 + msgid "Stop locator" +-msgstr "åœæ­¢å®šä½å™¨" ++msgstr "Í£Ö¹¶¨Î»Æ÷" + + #: ../library/grDevices/src/devWindows.c:1524 + #: ../library/grDevices/src/devWindows.c:1528 + msgid "Stop" +-msgstr "åœæ­¢" ++msgstr "Í£Ö¹" + + #: ../library/grDevices/src/devWindows.c:1530 + msgid "Continue" +-msgstr "继续" ++msgstr "¼ÌÐø" + + #: ../library/grDevices/src/devWindows.c:1534 + msgid "Next" +-msgstr "下一个" ++msgstr "ÏÂÒ»¸ö" + + #: ../library/grDevices/src/devWindows.c:1535 + msgid "Next plot" +-msgstr "下一个图表" ++msgstr "ÏÂÒ»¸öͼ±í" + + #: ../library/grDevices/src/devWindows.c:1541 + msgid "Save as" +-msgstr "ä¿å­˜ä¸º" ++msgstr "±£´æΪ" + + #: ../library/grDevices/src/devWindows.c:1542 + msgid "Metafile..." +@@ -1057,115 +1056,116 @@ msgstr "Jpeg" + + #: ../library/grDevices/src/devWindows.c:1548 + msgid "50% quality..." +-msgstr "50% å°åˆ·è´¨é‡..." ++msgstr "50% Ó¡Ë¢ÖÊÁ¿..." + + #: ../library/grDevices/src/devWindows.c:1549 + msgid "75% quality..." +-msgstr "75% å°åˆ·è´¨é‡..." ++msgstr "75% Ó¡Ë¢ÖÊÁ¿..." + + #: ../library/grDevices/src/devWindows.c:1550 + msgid "100% quality..." +-msgstr "100% å°åˆ·è´¨é‡..." ++msgstr "100% Ó¡Ë¢ÖÊÁ¿..." + + #: ../library/grDevices/src/devWindows.c:1551 + msgid "Copy to the clipboard" +-msgstr "å¤åˆ¶åˆ°å‰ªè´´æ¿" ++msgstr "¸´ÖƵ½¼ôÌù°å" + + #: ../library/grDevices/src/devWindows.c:1552 + msgid "as a Bitmap\tCTRL+C" +-msgstr "为Bitmap\tCTRL+C" ++msgstr "ΪBitmap\tCTRL+C" + + #: ../library/grDevices/src/devWindows.c:1553 + msgid "as a Metafile\tCTRL+W" +-msgstr "为Metafile\tCTRL+W" ++msgstr "ΪMetafile\tCTRL+W" + + #: ../library/grDevices/src/devWindows.c:1556 + msgid "Print...\tCTRL+P" +-msgstr "打å°...\tCTRL+P" ++msgstr "´òÓ¡...\tCTRL+P" + + #: ../library/grDevices/src/devWindows.c:1558 + msgid "close Device" +-msgstr "关闭设备" ++msgstr "¹Ø±ÕÉ豸" + + #: ../library/grDevices/src/devWindows.c:1559 + msgid "History" +-msgstr "历å²" ++msgstr "ÀúÊ·" + + #: ../library/grDevices/src/devWindows.c:1560 + msgid "Recording" +-msgstr "记录" ++msgstr "¼Ç¼" + + #: ../library/grDevices/src/devWindows.c:1563 + msgid "Add\tINS" +-msgstr "加入\tINS" ++msgstr "¼ÓÈë\tINS" + + #: ../library/grDevices/src/devWindows.c:1564 + msgid "Replace" +-msgstr "替æ¢" ++msgstr "Ìæ»»" + + #: ../library/grDevices/src/devWindows.c:1566 + msgid "Previous\tPgUp" +-msgstr "上一个\tPgUp" ++msgstr "ÉÏÒ»¸ö\tPgUp" + + #: ../library/grDevices/src/devWindows.c:1567 + msgid "Next\tPgDown" +-msgstr "下一个\tPgDown" ++msgstr "ÏÂÒ»¸ö\tPgDown" + + #: ../library/grDevices/src/devWindows.c:1569 + msgid "Save to variable..." +-msgstr "ä¿å­˜åˆ°å˜é‡..." ++msgstr "±£´æµ½±äÁ¿..." + + #: ../library/grDevices/src/devWindows.c:1570 + msgid "Get from variable..." +-msgstr "å–于å˜é‡..." ++msgstr "È¡ÓÚ±äÁ¿..." + + #: ../library/grDevices/src/devWindows.c:1572 + msgid "Clear history" +-msgstr "清除历å²" ++msgstr "Çå³ýÀúÊ·" + + #: ../library/grDevices/src/devWindows.c:1573 + msgid "Resize" +-msgstr "é‡è®¾å¤§å°" ++msgstr "ÖØÉè´óС" + + #: ../library/grDevices/src/devWindows.c:1574 + msgid "R mode" +-msgstr "R模å¼" ++msgstr "Rģʽ" + + #: ../library/grDevices/src/devWindows.c:1576 + msgid "Fit to window" +-msgstr "å˜ä¸ºä¸Žçª—å£åŒæ ·å¤§å°" ++msgstr "±äΪÓë´°¿ÚͬÑù´óС" + + #: ../library/grDevices/src/devWindows.c:1578 + msgid "Fixed size" +-msgstr "固定的大å°" ++msgstr "¹Ì¶¨µÄ´óС" + + #: ../library/grDevices/src/devWindows.c:1585 + msgid "Copy as metafile" +-msgstr "å¤åˆ¶æˆmetafile" ++msgstr "¸´ÖƳÉmetafile" + + #: ../library/grDevices/src/devWindows.c:1587 + msgid "Copy as bitmap" +-msgstr "å¤åˆ¶æˆbitmap" ++msgstr "¸´ÖƳÉbitmap" + + #: ../library/grDevices/src/devWindows.c:1590 + msgid "Save as metafile..." +-msgstr "ä¿å­˜æˆmetafile..." ++msgstr "±£´æ³Émetafile..." + + #: ../library/grDevices/src/devWindows.c:1592 + msgid "Save as postscript..." +-msgstr "ä¿å­˜æˆpostscript..." ++msgstr "±£´æ³Épostscript..." + + #: ../library/grDevices/src/devWindows.c:2456 + msgid "Locator is active" +-msgstr "定ä½å™¨å¾…用" ++msgstr "¶¨Î»Æ÷´ýÓÃ" + + #: ../library/grDevices/src/devWindows.c:3032 + msgid "Waiting to confirm page change..." +-msgstr "等待页é¢æ”¹å˜çš„确认..." ++msgstr "µÈ´ýÒ³Ãæ¸Ä±äµÄÈ·ÈÏ..." + + #: ../library/grDevices/src/devWindows.c:3044 + msgid "Click or hit ENTER for next page" +-msgstr "按ENTERæ¥çœ‹ä¸‹ä¸€é¡µ" ++msgstr "°´ENTERÀ´¿´ÏÂÒ»Ò³" + + #~ msgid "Select working directory" +-#~ msgstr "选择当å‰ç›®å½•" ++#~ msgstr "Ñ¡Ôñµ±Ç°Ä¿Â¼" ++ +diff -urp R-2.4.0.old/po/R.pot R-2.4.0/po/R.pot +--- R-2.4.0.old/po/R.pot 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/R.pot 2006-10-28 14:36:11.000000000 -0500 +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" +@@ -83,7 +83,7 @@ msgstr "" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -128,7 +128,7 @@ msgstr "" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -472,7 +472,7 @@ msgid "second argument must be a list" + msgstr "" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "" + +@@ -1134,7 +1134,7 @@ msgstr "" + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "" + +@@ -1267,156 +1267,156 @@ msgstr "" + msgid "the first argument must be a character vector" + msgstr "" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "" + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" + msgstr "" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "" + +@@ -5407,7 +5407,7 @@ msgstr "" + msgid "no input is available" + msgstr "" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6017,7 +6017,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "" + +@@ -6053,19 +6053,19 @@ msgstr "" + msgid "only 0's may be mixed with negative subscripts" + msgstr "" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "" + +Binary files R-2.4.0.old/po/ru.gmo and R-2.4.0/po/ru.gmo differ +diff -urp R-2.4.0.old/po/ru.po R-2.4.0/po/ru.po +--- R-2.4.0.old/po/ru.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/ru.po 2006-10-28 14:36:09.000000000 -0500 +@@ -10,7 +10,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.4.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2006-09-25 03:23-0800\n" + "Last-Translator: Alexey Shipunov \n" + "Language-Team: Russian\n" +@@ -87,7 +87,7 @@ msgstr "ÎÅÐÒÁ×ÉÌØÎÙÅ 'names' × R_unlink" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -132,7 +132,7 @@ msgstr "ÎÅÐÒÁ×ÉÌØÎÙÅ 'names' × R_unlink" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -478,7 +478,7 @@ msgid "second argument must be a list" + msgstr "×ÔÏÒÏÊ ÁÒÇÕÍÅÎÔ ÄÏÌÖÅÎ ÂÙÔØ ÓÐÉÓËÏÍ" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "ÐÏÄÇÒÕÐÐÁ ×ÙÈÏÄÉÔ ÚÁ ÐÒÅÄÅÌÙ" + +@@ -1154,7 +1154,7 @@ msgstr "ÕËÁÚÁÎÎÙÊ ÒÁÚÍÅÒ ×ÅËÔÏÒÁ ÓÌÉÛËÏÍ + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏËÒÕÖÅÎÉÑ NULL ÎÅ ÏÄÏÂÒÑÅÔÓÑ" + +@@ -1287,113 +1287,113 @@ msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÏÂÒÁÚÅà ÒÁÚÄÅÌÅÎÉÑ + msgid "the first argument must be a character vector" + msgstr "ÐÅÒ×ÙÊ ÁÒÇÕÍÅÎÔ ÄÏÌÖÅÎ ÂÙÔØ ÔÅËÓÔÏ×ÙÍ ×ÅËÔÏÒÏÍ" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "'abbreviate' ÉÓÐÏÌØÚÏ×ÁÎÁ Ó ÎÅ-ASCII ÓÉÍ×ÏÌÁÍÉ" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "ÎÅ-ÔÅËÓÔÏ×ÙÅ ÉÍÅÎÁ" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "ÎÅÐÒÁ×ÉÌØÎÏÅ ÚÎÁÞÅÎÉÅ 'allow_'" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "ÎÅÐÒÁ×ÉÌØÎÁÑ ÍÎÏÇÏÂÁÊÔÎÁÑ ÓÔÒÏËÁ %d" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "ÎÅÐÒÁ×ÉÌØÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÄÌÑ ÜÔÏÊ ÌÏËÁÌÉ" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "ÎÅÐÒÁ×ÉÌØÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ '%s'" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "ÎÅÐÒÁ×ÉÌØÎÁÑ ×ÈÏÄÎÁÑ ÓÔÒÏËÁ %d ÄÌÑ ÜÔÏÊ ÌÏËÁÌÉ" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÂÒÁÔÎÁÑ ÓÓÙÌËÁ %d × ÒÅÇÕÌÑÒÎÏÍ ×ÙÒÁÖÅÎÉÉ" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ 'pattern' ÄÌÑ ÜÔÏÊ ÌÏËÁÌÉ" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ 'replacement' ÄÌÑ ÜÔÏÊ ÌÏËÁÌÉ" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "ÎÕÌÅ×ÏÊ ÏÂÒÁÚÅÃ" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "ÎÅ-ÔÅËÓÔÏ×ÙÊ ÁÒÇÕÍÅÎÔ Õ tolower()" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "ÕÍÅÎØÛÁÀÝÅÅÓÑ ÏÐÒÅÄÅÌÅÎÉÅ ÒÁÎÇÁ ('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "ÕÍÅÎØÛÁÀÝÅÅÓÑ ÏÐÒÅÄÅÌÅÎÉÅ ÒÁÎÇÁ ('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "ÎÅÐÒÁ×ÉÌØÎÙÅ (NA) ÁÒÇÕÍÅÎÔÙ." + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÍÎÏÇÏÂÁÊÔÎÁÑ ÓÔÒÏËÁ 'old'" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÍÎÏÇÏÂÁÊÔÎÁÑ ÓÔÒÏËÁ 'new'" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old' ÄÌÉÎÎÅÅ ÞÅÍ 'new'" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "ÎÅÐÒÁ×ÉÌØÎÁÑ ×ÈÏÄÎÁÑ ÍÎÏÇÏÂÁÊÔÎÁÑ ÓÔÒÏËÁ %d" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "" + "ÉÓÐÏÌØÚÏ×ÁÎÉÅ agrep() × ÌÏËÁÌÉ UTF-8 ÂÕÄÅÔ ÒÁÂÏÔÁÔØ ÔÏÌØËÏ ÄÌÑ ÓÔÒÏË ASCII" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "ÎÅ ÍÏÇÕ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÄÌÑ ÐÒÉÂÌÉÚÉÔÅÌØÎÏÇÏ ÐÏÉÓËÁ" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "ÎÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË, ÎÅÞÕ×ÓÔ×ÉÔÅÌØÎÙÊ Ë ÒÅÇÉÓÔÒÕ" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "ÁÒÇÕÍÅÎÔ ÄÏÌÖÅÎ ÂÙÔØ a ÔÅËÓÔÏ×ÙÍ ×ÅËÔÏÒÏÍ ÅÄÉÎÉÞÎÏÊ ÄÌÉÎÙ" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" +@@ -1401,45 +1401,45 @@ msgstr "" + "ÁÒÇÕÍÅÎÔ ÄÏÌÖÅÎ ÂÙÔØ ÔÅËÓÔÏ×ÏÊ ÓÔÒÏËÏÊ ÅÄÉÎÉÞÎÏÊ ÄÌÉÎÙ\n" + "×ÓÅ ÜÌÅÍÅÎÔÙ, ËÒÏÍÅ ÐÅÒ×ÏÇÏ, ÂÕÄÕÔ ÐÒÏÐÕÝÅÎÙ" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "ÁÒÇÕÍÅÎÔ 'x' ÄÏÌÖÅÎ ÂÙÔØ ÐÒÏÓÔÙÍ ×ÅËÔÏÒÏÍ" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "ÁÒÇÕÍÅÎÔ 'multiple' ÄÏÌÖÅÎ ÂÙÔØ TRUE ÉÌÉ FALSE" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "ÁÒÇÕÍÅÎÔ 'shift' ÄÏÌÖÅÎ ÂÙÔØ ÎÅÂÏÌØÛÉÍ ÃÅÌÙÍ ÞÉÓÌÏÍ" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "ÁÒÇÕÍÅÎÔ 'x' ÄÏÌÖÅÎ ÂÙÔØ ÃÅÌÏÞÉÓÌÅÎÎÙÍ ×ÅËÔÏÒÏÍ" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "ÁÒÇÕÍÅÎÔ 'x' ÄÏÌÖÅÎ ÂÙÔØ ÐÒÏÓÔÙÍ, ÃÅÌÏÞÉÓÌÅÎÎÙÍ ÉÌÉ ÌÏÇÉÞÅÓËÉÍ" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "ÁÒÇÕÍÅÎÔ 'ÔÉÐ' ÄÏÌÖÅÎ ÂÙÔØ ÔÅËÓÔÏ×ÏÊ ÓÔÒÏËÏÊ" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "ÁÒÇÕÍÅÎÔ 'x' ÄÏÌÖÅÎ ÂÙÔØ ÐÒÏÉÚ×ÅÄÅÎÉÅÍ ÄÌÉÎÙ %d" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "ÁÒÇÕÍÅÎÔ 'x' ÎÅ ÄÏÌÖÅÎ ÓÏÄÅÒÖÁÔØ NA" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "ÁÒÇÕÍÅÎÔ 'x' ÄÏÌÖÅÎ ÂÙÔØ ÃÅÌÏÞÉÓÌÅÎÎÙÍ ×ÅËÔÏÒÏÍ" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim() ÔÒÅÂÕÅÔ ÔÅËÓÔÏ×ÏÇÏ ×ÅËÔÏÒÁ" + +@@ -5494,7 +5494,7 @@ msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ × ÓÏÅÄÉÎÅÎÉÅ" + msgid "no input is available" + msgstr "××ÏÄ ÎÅÄÏÓÔÕÐÅÎ" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6123,7 +6123,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]] ÉÎÄÅËÓ (%d) ÚÁ ÐÒÅÄÅÌÁÍÉ" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÔÉÐ ÉÎÄÅËÓÁ" + +@@ -6159,19 +6159,19 @@ msgstr "(subscript) ÌÏÇÉÞÅÓËÉÊ ÉÎÄÅËÓ ÓÌ + msgid "only 0's may be mixed with negative subscripts" + msgstr "ÔÏÌØËÏ ÎÕÌÉ ÍÏÇÕÔ ÓÍÅÛÉ×ÁÔØÓÑ Ó ÏÔÒÉÃÁÔÅÌØÎÙÍÉ ÉÎÄÅËÓÁÍÉ" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "ÜÌÅÍÅÎÔ ÔÅËÓÔÏ×ÏÇÏ ×ÅËÔÏÒÁ ÎÅ ÉÍÅÅÔ ÔÉÐÁ 'CHARSXP'" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "Õ ÍÎÏÇÏÍÅÒÎÏÊ ÍÁÔÒÉÃÙ ÎÅÔ ÁÔÒÉÂÕÔÁ 'dimnames'" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÎÄÅËÓ" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "ÉÎÄÅËÓÉÒÏ×ÁÎÉÅ ÎÅ-×ÅËÔÏÒÁ" + +Binary files R-2.4.0.old/po/zh_CN.gmo and R-2.4.0/po/zh_CN.gmo differ +diff -urp R-2.4.0.old/po/zh_CN.po R-2.4.0/po/zh_CN.po +--- R-2.4.0.old/po/zh_CN.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/zh_CN.po 2006-10-28 14:36:12.000000000 -0500 +@@ -7,7 +7,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.1.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2005-05-20 18:26+0800\n" + "Last-Translator: ronggui\n" + "Language-Team: Chinese\n" +@@ -82,7 +82,7 @@ msgstr "'R_unlink'里的'namesä¸å¯¹" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -127,7 +127,7 @@ msgstr "'R_unlink'里的'namesä¸å¯¹" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -471,7 +471,7 @@ msgid "second argument must be a list" + msgstr "第二个å˜å…ƒå¿…需是串列" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "下标出界" + +@@ -1135,7 +1135,7 @@ msgstr "å‘é‡size的设定太大了" + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "NULL环境ä¸å†æœ‰ç”¨" + +@@ -1268,156 +1268,156 @@ msgstr "splitçš„å¼æ ·'%s'ä¸å¯¹" + msgid "the first argument must be a character vector" + msgstr "第一å˜å…ƒå¿…需是字符å‘é‡" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "abbreviateä¸é€‚用于éžASCIIå­—å…ƒ" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "ä¸èƒ½æœ‰éžå­—符åå­—" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "'allow_'值ä¸å¯¹" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "多字节字符串%d有错" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "正规表现ä¸é€‚用于此语言环境" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "正规表现’%s'ä¸å¯¹" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "输入的字符串%dä¸é€‚用于此语言环境" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "正规表现中回转å‚考%d有错" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern'的值在本语言环境下ä¸å¯¹" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacement'的值在本语言环境下ä¸å¯¹" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "å¼æ ·é•¿åº¦ä¸º0" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "éžå­—符å˜å…ƒä¸èƒ½ç”¨äºŽtolower()" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "范围设定是ä¸èƒ½é€’å‡çš„('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "范围设定是ä¸èƒ½é€’å‡çš„('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "(NA)å˜å…ƒä¸å¯¹." + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "多字节字符串'old'有错" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "多字节字符串'new'有错" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old'比'new'è¦é•¿" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "输入的多字节字符串%d有错" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "在UTF-8语言环境下agrep()åªèƒ½å¯¹ASCII字符串适用" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "åšè¿‘似比较时无法分é…足够内存" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "无法进行ä¸åŒºåˆ†å­—体大å°å†™çš„比较" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "å˜å…ƒå¿…需是长度为1的字符å‘é‡" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" + msgstr "å˜å…ƒåº”当是长度为1的字节å‘é‡ï¼Œé™¤ç¬¬ä¸€ä¸ªå•å…ƒå¤–其他所有的å•å…ƒéƒ½ç•¥è¿‡ä¸ç”¨" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "å˜å…ƒ'x'必需是原始å‘é‡" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "å˜å…ƒ'multiple'的值è¦ä¹ˆæ˜¯TRUEè¦ä¹ˆæ˜¯FALSE" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "å˜å…ƒ'shift'必需数值ä¸æ˜¯å¤ªå¤§çš„æ•´æ•°" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "å˜å…ƒ'x'必需是整数å‘é‡" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "å˜å…ƒ'x'必需是原始值, 整数值或逻辑值" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "å˜å…ƒâ€™type’必需是字符串" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "å˜å…ƒ'x'必需是%d值的整å€æ•°" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "å˜å…ƒ'x'ä¸èƒ½å«NA值" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "å˜å…ƒ'x'必需是整数å‘é‡" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim()需è¦å­—符å‘é‡" + +@@ -5417,7 +5417,7 @@ msgstr "链结书写å‘生了错误" + msgid "no input is available" + msgstr "没有输入值" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6039,7 +6039,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]] 下标(%d)在界é™å¤–" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "下标ç§ç±»ä¸å¯¹" + +@@ -6075,19 +6075,19 @@ msgstr "(下标)逻辑下标太长" + msgid "only 0's may be mixed with negative subscripts" + msgstr "åªæœ‰è´Ÿä¸‹æ ‡é‡Œæ‰èƒ½æœ‰0" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "字符å‘é‡å•å…ƒæ²¡æœ‰CHARSXPç§ç±»" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "陈列中没有'dimnames'这一属性" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "下标ä¸å¯¹" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "éžå‘é‡ä¸èƒ½æœ‰ä¸‹æ ‡" + +Binary files R-2.4.0.old/po/zh_TW.gmo and R-2.4.0/po/zh_TW.gmo differ +diff -urp R-2.4.0.old/po/zh_TW.po R-2.4.0/po/zh_TW.po +--- R-2.4.0.old/po/zh_TW.po 2006-09-26 21:05:18.000000000 -0500 ++++ R-2.4.0/po/zh_TW.po 2006-10-28 14:36:12.000000000 -0500 +@@ -8,7 +8,7 @@ msgid "" + msgstr "" + "Project-Id-Version: R 2.3.0\n" + "Report-Msgid-Bugs-To: bugs@R-project.org\n" +-"POT-Creation-Date: 2006-09-26 14:32+0100\n" ++"POT-Creation-Date: 2006-10-24 15:53+0100\n" + "PO-Revision-Date: 2006-04-14 22:49+0800\n" + "Last-Translator: Wei-Lun Chao \n" + "Language-Team: Chinese (traditional) \n" +@@ -84,7 +84,7 @@ msgstr "R_unlink çš„ 'names' 無效" + #: src/gnuwin32/extra.c:758 src/gnuwin32/extra.c:761 src/gnuwin32/extra.c:766 + #: src/main/builtin.c:127 src/main/builtin.c:385 src/main/builtin.c:401 + #: src/main/character.c:116 src/main/character.c:119 src/main/character.c:158 +-#: src/main/character.c:2432 src/main/character.c:2436 ++#: src/main/character.c:2434 src/main/character.c:2438 + #: src/main/connections.c:822 src/main/connections.c:828 + #: src/main/connections.c:831 src/main/connections.c:835 + #: src/main/connections.c:958 src/main/connections.c:964 +@@ -129,7 +129,7 @@ msgstr "R_unlink çš„ 'names' 無效" + #: src/main/print.c:176 src/main/print.c:182 src/main/print.c:204 + #: src/main/print.c:210 src/main/random.c:465 src/main/random.c:469 + #: src/main/random.c:471 src/main/random.c:473 src/main/saveload.c:2076 +-#: src/main/saveload.c:2341 src/main/saveload.c:2390 src/main/seq.c:346 ++#: src/main/saveload.c:2341 src/main/saveload.c:2391 src/main/seq.c:346 + #: src/main/seq.c:350 src/main/seq.c:368 src/main/seq.c:375 + #: src/main/sysutils.c:396 src/main/sysutils.c:398 src/main/sysutils.c:400 + #: src/main/unique.c:576 src/main/util.c:527 src/main/util.c:530 +@@ -476,7 +476,7 @@ msgid "second argument must be a list" + msgstr "第二個引數必須是串列" + + #: src/include/Errormsg.h:42 src/main/eval.c:2715 src/main/subscript.c:228 +-#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:436 ++#: src/main/subscript.c:333 src/main/subscript.c:336 src/main/subscript.c:437 + msgid "subscript out of bounds" + msgstr "下標超出邊界" + +@@ -1142,7 +1142,7 @@ msgstr "指定的å‘é‡å¤§å°å¤ªå¤§" + #: src/main/envir.c:2729 src/main/envir.c:2763 src/main/envir.c:2783 + #: src/main/envir.c:3107 src/main/envir.c:3111 src/main/eval.c:3498 + #: src/main/objects.c:175 src/main/objects.c:181 src/main/saveload.c:2072 +-#: src/main/saveload.c:2338 src/main/saveload.c:2387 src/main/serialize.c:2175 ++#: src/main/saveload.c:2338 src/main/saveload.c:2388 src/main/serialize.c:2175 + msgid "use of NULL environment is defunct" + msgstr "NULL 環境的使用已經廢止" + +@@ -1276,156 +1276,156 @@ msgstr "split çš„å¼æ¨£ '%s' ä¸æ­£ç¢º" + msgid "the first argument must be a character vector" + msgstr "第一引數必須是字元å‘é‡" + +-#: src/main/character.c:725 ++#: src/main/character.c:727 + msgid "abbreviate used with non-ASCII chars" + msgstr "abbreviate ä¸é©ç”¨æ–¼éž ASCII å­—å…ƒ" + +-#: src/main/character.c:743 ++#: src/main/character.c:745 + msgid "non-character names" + msgstr "ä¸èƒ½æœ‰éžå­—å…ƒå稱" + +-#: src/main/character.c:747 ++#: src/main/character.c:749 + msgid "invalid value of 'allow_'" + msgstr "'allow_' 值ä¸æ­£ç¢º" + +-#: src/main/character.c:808 src/main/character.c:1586 ++#: src/main/character.c:810 src/main/character.c:1588 + #, c-format + msgid "invalid multibyte string %d" + msgstr "多ä½å…ƒçµ„字串 %d ä¸æ­£ç¢º" + +-#: src/main/character.c:889 src/main/character.c:1221 +-#: src/main/character.c:1510 src/main/pcre.c:110 src/main/pcre.c:487 ++#: src/main/character.c:891 src/main/character.c:1223 ++#: src/main/character.c:1512 src/main/pcre.c:110 src/main/pcre.c:487 + #: src/main/pcre.c:582 + msgid "regular expression is invalid in this locale" + msgstr "æ­£è¦è¡¨ç¤ºå¼ä¸é©ç”¨æ–¼æ­¤èªžè¨€ç’°å¢ƒ" + +-#: src/main/character.c:911 src/main/character.c:1063 +-#: src/main/character.c:1224 src/main/character.c:1513 src/main/pcre.c:117 ++#: src/main/character.c:913 src/main/character.c:1065 ++#: src/main/character.c:1226 src/main/character.c:1515 src/main/pcre.c:117 + #: src/main/pcre.c:332 src/main/pcre.c:492 src/main/pcre.c:587 + #, c-format + msgid "invalid regular expression '%s'" + msgstr "æ­£è¦è¡¨ç¤ºå¼ã€Œ%sã€ä¸æ­£ç¢º" + +-#: src/main/character.c:921 src/main/character.c:1239 +-#: src/main/character.c:1530 src/main/pcre.c:132 src/main/pcre.c:365 ++#: src/main/character.c:923 src/main/character.c:1241 ++#: src/main/character.c:1532 src/main/pcre.c:132 src/main/pcre.c:365 + #: src/main/pcre.c:507 src/main/pcre.c:610 + #, c-format + msgid "input string %d is invalid in this locale" + msgstr "輸入的字串 %d ä¸é©ç”¨æ–¼æ­¤èªžè¨€ç’°å¢ƒ" + +-#: src/main/character.c:976 src/main/pcre.c:187 ++#: src/main/character.c:978 src/main/pcre.c:187 + #, c-format + msgid "invalid backreference %d in regular expression" + msgstr "æ­£è¦è¡¨ç¤ºå¼ä¸­å‘後åƒè€ƒ %d ä¸æ­£ç¢º" + +-#: src/main/character.c:1058 src/main/pcre.c:319 ++#: src/main/character.c:1060 src/main/pcre.c:319 + msgid "'pattern' is invalid in this locale" + msgstr "'pattern' 的值在本語言環境下ä¸æ­£ç¢º" + +-#: src/main/character.c:1060 src/main/pcre.c:321 ++#: src/main/character.c:1062 src/main/pcre.c:321 + msgid "'replacement' is invalid in this locale" + msgstr "'replacement' 的值在本語言環境下ä¸æ­£ç¢º" + +-#: src/main/character.c:1069 ++#: src/main/character.c:1071 + msgid "zero-length pattern" + msgstr "å¼æ¨£é•·åº¦ç‚ºé›¶" + +-#: src/main/character.c:1561 ++#: src/main/character.c:1563 + msgid "non-character argument to tolower()" + msgstr "éžå­—元引數ä¸èƒ½ç”¨æ–¼ tolower()" + +-#: src/main/character.c:1639 ++#: src/main/character.c:1641 + #, c-format + msgid "decreasing range specification ('%lc-%lc')" + msgstr "正在éžæ¸›ç¯„åœè¨­å®š ('%lc-%lc')" + +-#: src/main/character.c:1725 ++#: src/main/character.c:1727 + #, c-format + msgid "decreasing range specification ('%c-%c')" + msgstr "正在éžæ¸›ç¯„åœè¨­å®š ('%c-%c')" + +-#: src/main/character.c:1802 ++#: src/main/character.c:1804 + msgid "invalid (NA) arguments." + msgstr "(NA) 引數ä¸æ­£ç¢ºã€‚" + +-#: src/main/character.c:1824 ++#: src/main/character.c:1826 + msgid "invalid multibyte string 'old'" + msgstr "多ä½å…ƒçµ„字串 'old' ä¸æ­£ç¢º" + +-#: src/main/character.c:1831 ++#: src/main/character.c:1833 + msgid "invalid multibyte string 'new'" + msgstr "多ä½å…ƒçµ„字串 'new' ä¸æ­£ç¢º" + +-#: src/main/character.c:1850 src/main/character.c:1912 ++#: src/main/character.c:1852 src/main/character.c:1914 + msgid "'old' is longer than 'new'" + msgstr "'old' 比 'new' è¦é•·" + +-#: src/main/character.c:1868 ++#: src/main/character.c:1870 + #, c-format + msgid "invalid input multibyte string %d" + msgstr "輸入的多ä½å…ƒçµ„字串 %d ä¸æ­£ç¢º" + +-#: src/main/character.c:2013 ++#: src/main/character.c:2015 + msgid "use of agrep() in a UTF-8 locale may only work for ASCII strings" + msgstr "在 UTF-8 語言環境下 agrep() åªèƒ½é©ç”¨æ–¼ ASCII 字串" + +-#: src/main/character.c:2022 ++#: src/main/character.c:2024 + msgid "could not allocate memory for approximate matching" + msgstr "åšè¿‘似比較時無法指派足夠記憶體" + +-#: src/main/character.c:2046 ++#: src/main/character.c:2048 + msgid "could not perform case insensitive matching" + msgstr "無法進行ä¸å€åˆ†å¤§å°å¯«çš„比較" + +-#: src/main/character.c:2098 src/main/character.c:2333 ++#: src/main/character.c:2100 src/main/character.c:2335 + msgid "argument must be a character vector of length 1" + msgstr "引數必須是長度為 1 çš„å­—å…ƒå‘é‡" + +-#: src/main/character.c:2100 src/main/character.c:2335 ++#: src/main/character.c:2102 src/main/character.c:2337 + msgid "" + "argument should be a character vector of length 1\n" + "all but the first element will be ignored" + msgstr "引數應當是長度為 1 çš„å­—å…ƒå‘é‡ï¼Œé™¤ç¬¬ä¸€å€‹å­—元外其它所有的字元都將忽略" + +-#: src/main/character.c:2116 src/main/character.c:2148 +-#: src/main/character.c:2169 ++#: src/main/character.c:2118 src/main/character.c:2150 ++#: src/main/character.c:2171 + msgid "argument 'x' must be a raw vector" + msgstr "引數 'x' 必須是常數å‘é‡" + +-#: src/main/character.c:2119 src/main/character.c:2385 ++#: src/main/character.c:2121 src/main/character.c:2387 + msgid "argument 'multiple' must be TRUE or FALSE" + msgstr "引數 'multiple' 的值必須是 TRUE 或 FALSE" + +-#: src/main/character.c:2150 ++#: src/main/character.c:2152 + msgid "argument 'shift' must be a small integer" + msgstr "引數 'shift' 必須是å°æ•¸å€¼çš„整數" + +-#: src/main/character.c:2187 ++#: src/main/character.c:2189 + msgid "argument 'x' must be a integer vector" + msgstr "引數 'x' 必須是整數å‘é‡" + +-#: src/main/character.c:2207 ++#: src/main/character.c:2209 + msgid "argument 'x' must be raw, integer or logical" + msgstr "引數 'x' 必須是純é‡å€¼ã€æ•´æ•¸å€¼æˆ–é‚輯值" + +-#: src/main/character.c:2209 ++#: src/main/character.c:2211 + msgid "argument 'type' must be a character string" + msgstr "引數「typeã€å¿…須是字串" + +-#: src/main/character.c:2213 ++#: src/main/character.c:2215 + #, c-format + msgid "argument 'x' must be a multiple of %d long" + msgstr "引數 'x' 必須是 %d 值的整數å€" + +-#: src/main/character.c:2227 src/main/character.c:2242 ++#: src/main/character.c:2229 src/main/character.c:2244 + msgid "argument 'x' must not contain NAs" + msgstr "引數 'x' ä¸èƒ½å« NA 值" + +-#: src/main/character.c:2382 ++#: src/main/character.c:2384 + msgid "argument 'x' must be an integer vector" + msgstr "引數 'x' 必須是整數å‘é‡" + +-#: src/main/character.c:2427 ++#: src/main/character.c:2429 + msgid "strtrim() requires a character vector" + msgstr "strtrim() 需è¦å­—å…ƒå‘é‡" + +@@ -5442,7 +5442,7 @@ msgstr "連çµå¯«å…¥ç™¼ç”Ÿäº†éŒ¯èª¤" + msgid "no input is available" + msgstr "沒有å¯ç”¨çš„輸入" + +-#: src/main/saveload.c:2365 ++#: src/main/saveload.c:2366 + msgid "" + "the input does not start with a magic number compatible with loading from a " + "connection" +@@ -6073,7 +6073,7 @@ msgid "[[ ]] subscript (%d) out of bound + msgstr "[[ ]] 下標 (%d) 在界é™å¤–" + + #: src/main/subassign.c:1769 src/main/subscript.c:111 src/main/subscript.c:188 +-#: src/main/subscript.c:588 src/main/subset.c:923 ++#: src/main/subscript.c:589 src/main/subset.c:923 + msgid "invalid subscript type" + msgstr "下標類型ä¸æ­£ç¢º" + +@@ -6109,19 +6109,19 @@ msgstr "(下標) é‚輯下標太長" + msgid "only 0's may be mixed with negative subscripts" + msgstr "åªæœ‰è² æ•¸ä¸‹æ¨™ä¸­æ‰èƒ½æœ‰ 0" + +-#: src/main/subscript.c:410 ++#: src/main/subscript.c:411 + msgid "character vector element does not have type CHARSXP" + msgstr "å­—å…ƒå‘é‡å…ƒç´ æ²’有 CHARSXP é¡žåž‹" + +-#: src/main/subscript.c:487 ++#: src/main/subscript.c:488 + msgid "no 'dimnames' attribute for array" + msgstr "陣列中沒有 'dimnames' 此一屬性" + +-#: src/main/subscript.c:494 ++#: src/main/subscript.c:495 + msgid "invalid subscript" + msgstr "下標ä¸æ­£ç¢º" + +-#: src/main/subscript.c:527 ++#: src/main/subscript.c:528 + msgid "subscripting on non-vector" + msgstr "éžå‘é‡ä¸èƒ½æœ‰ä¸‹æ¨™" + +diff -urp R-2.4.0.old/share/make/tests.mk R-2.4.0/share/make/tests.mk +--- R-2.4.0.old/share/make/tests.mk 2006-04-09 17:20:04.000000000 -0500 ++++ R-2.4.0/share/make/tests.mk 2006-10-03 19:41:11.000000000 -0500 +@@ -1,6 +1,6 @@ + ## ${R_HOME}/share/make/tests.mk + +-include $(R_HOME)/etc/Makeconf ++include $(R_HOME)/etc${R_ARCH}/Makeconf + + makevars = + srcdir = . +diff -urp R-2.4.0.old/src/appl/lowess.c R-2.4.0/src/appl/lowess.c +--- R-2.4.0.old/src/appl/lowess.c 2006-04-09 17:19:58.000000000 -0500 ++++ R-2.4.0/src/appl/lowess.c 2006-10-28 14:35:58.000000000 -0500 +@@ -1,7 +1,7 @@ + /* + * R : A Computer Langage for Statistical Data Analysis + * Copyright (C) 1996 Robert Gentleman and Ross Ihaka +- * Copyright (C) 1999-2002 Robert Gentleman, Ross Ihaka and the ++ * Copyright (C) 1999-2006 Robert Gentleman, Ross Ihaka and the + * R Development Core Team + * + * This program is free software; you can redistribute it and/or modify +@@ -132,7 +132,7 @@ void clowess(double *x, double *y, int n + { + int i, iter, j, last, m1, m2, nleft, nright, ns; + Rboolean ok; +- double alpha, c1, c9, cmad, cut, d1, d2, denom, r; ++ double alpha, c1, c9, cmad, cut, d1, d2, denom, r, sc; + + if (n < 2) { + ys[0] = y[0]; return; +@@ -223,9 +223,14 @@ void clowess(double *x, double *y, int n + break; + } + /* residuals */ +- for(i=0; i < n; i++) ++ for(i = 0; i < n; i++) + res[i] = y[i+1] - ys[i+1]; + ++ /* overall scale estimate */ ++ sc = 0.; ++ for(i = 0; i < n; i++) sc += fabs(res[i]); ++ sc /= n; ++ + /* compute robustness weights */ + /* except last time */ + +@@ -234,7 +239,7 @@ void clowess(double *x, double *y, int n + /* Note: The following code, biweight_{6 MAD|Ri|} + is also used in stl(), loess and several other places. + --> should provide API here (MM) */ +- for(i=0 ; i= 5.1.7 is now required to build the installer. ++ ++Reverted 2.4.0 change that required case-sensitive specification of ++commands to R CMD. ++ ++The Simplified Chinese messages were in the wrong format, causing ++R to crash on startup. (PR#9277) ++ ++The pointsize of fonts in the windows() graphics device may now be set to ++any positive integer. ++ ++Building customized installers failed because the startup options ++weren't being handled properly. ++ ++If Rconsole settings were such that R could not start properly, it ++crashed. It now suggests starting with the --vanilla option, which now ++does not load Rconsole. Additionally, an option --no-Rconsole has ++been added for completeness and debugging. ++ ++ ++ + R 2.4.0 + ======= + +@@ -15,7 +39,7 @@ file and (for future sessions) from the + + The installer can set defaults for MDI/SDI display, help style, and + use of the --internet2 startup option. Custom builds of R can change +-these defaults. ++these defaults. The standard build now defaults to CHM help. + + If CHM help is selected, but is not present (e.g. a package was cross- + compiled on Unix), the help system defaults to text help. +diff -urp R-2.4.0.old/src/gnuwin32/fixed/bin/INSTALL R-2.4.0/src/gnuwin32/fixed/bin/INSTALL +--- R-2.4.0.old/src/gnuwin32/fixed/bin/INSTALL 2006-09-04 09:41:36.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/fixed/bin/INSTALL 2006-10-28 14:35:59.000000000 -0500 +@@ -26,7 +26,7 @@ use R::Dcf; + use R::Utils; + + +-my $revision = ' $Rev: 37712 $ '; ++my $revision = ' $Rev: 39671 $ '; + my $version; + my $name; + $revision =~ / ([\d\.]*) /; +@@ -250,7 +250,11 @@ foreach $pkg (@ARGV){ + if (open pkgdescin, "< $pkg/$ppkg/DESCRIPTION.in") { + ## the Unix version of INSTALL does discard blank lines, + ## although ?read.dcf does not allow them. +- while() { print pkgdesc $_ if $_ =~ /\S/; } ++ while() { ++ ## this is to cope with possibly missing final NL ++ chomp; ++ print pkgdesc "$_\n" if $_ =~ /\S/; ++ } + close pkgdescin; + } else { + print "no DESCRIPTION.in found for package $ppkg\n"; +Only in R-2.4.0.old/src/gnuwin32/fixed: dobundle.pl +diff -urp R-2.4.0.old/src/gnuwin32/front-ends/rcmdfn.c R-2.4.0/src/gnuwin32/front-ends/rcmdfn.c +--- R-2.4.0.old/src/gnuwin32/front-ends/rcmdfn.c 2006-09-07 21:05:22.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/front-ends/rcmdfn.c 2006-10-28 14:35:59.000000000 -0500 +@@ -291,20 +291,6 @@ int rcmdfn (int cmdarg, int argc, char * + } else if (!strcmp(".bat", p + strlen(p) - 4)) strcpy(cmd, ""); + else if (!strcmp(".exe", p + strlen(p) - 4)) strcpy(cmd, ""); + else { +- WIN32_FIND_DATA find_data; +- HANDLE fh; +- char tmp[MAX_PATH]; +- strcpy(tmp, RHome); strcat(tmp, "/bin/"); strcat(tmp, p); +- fh = FindFirstFile(tmp, &find_data); +- if (fh == INVALID_HANDLE_VALUE) { +- fprintf(stderr, "no Perl script '%s'\n", p); +- return(28); +- } +- if(strcmp(p, find_data.cFileName)) { +- fprintf(stderr, "no Perl script '%s'\n", p); +- return(28); +- } +- FindClose(fh); + strcpy(cmd, "perl "); + strcat(cmd, RHome); strcat(cmd, "/bin/"); + } +diff -urp R-2.4.0.old/src/gnuwin32/front-ends/rgui.c R-2.4.0/src/gnuwin32/front-ends/rgui.c +--- R-2.4.0.old/src/gnuwin32/front-ends/rgui.c 2006-09-04 09:41:35.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/front-ends/rgui.c 2006-10-29 10:45:44.000000000 -0600 +@@ -29,6 +29,7 @@ extern void cmdlineoptions(int, char **) + extern int setupui(void); + extern void Rf_mainloop(void); + __declspec(dllimport) extern UImode CharacterMode; ++extern void GA_exitapp(void); + + extern char *getDLLVersion(); + +@@ -48,7 +49,11 @@ int AppMain (int argc, char **argv) + exit(1); + } + cmdlineoptions(argc, argv); +- setupui(); ++ if (!setupui()) { ++ MessageBox(0, "Error setting up console. Try --vanilla option.", ++ "Terminating", MB_TASKMODAL | MB_ICONSTOP | MB_OK); ++ GA_exitapp(); ++ } + Rf_mainloop(); + /* NOTREACHED */ + return 0; +diff -urp R-2.4.0.old/src/gnuwin32/installer/JRins.pl R-2.4.0/src/gnuwin32/installer/JRins.pl +--- R-2.4.0.old/src/gnuwin32/installer/JRins.pl 2006-09-21 21:05:08.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/installer/JRins.pl 2006-10-03 19:41:11.000000000 -0500 +@@ -78,6 +78,7 @@ Name: br; MessagesFile: "compiler:Langua + Name: ca; MessagesFile: "compiler:Languages\\Catalan.isl" + Name: cz; MessagesFile: "compiler:Languages\\Czech.isl" + Name: dk; MessagesFile: "compiler:Languages\\Danish.isl" ++Name: es; MessagesFile: "compiler:Languages\\Spanish.isl" + Name: nl; MessagesFile: "compiler:Languages\\Dutch.isl" + Name: fr; MessagesFile: "compiler:Languages\\French.isl" + Name: fi; MessagesFile: "compiler:Languages\\Finnish.isl" +@@ -93,7 +94,6 @@ Name: chs; MessagesFile: "ChineseSimp.is + Name: cht; MessagesFile: "ChineseTrad.isl" + Name: ja; MessagesFile: "Japanese.isl" + Name: ko; MessagesFile: "Korean.isl" +-Name: es; MessagesFile: "SpanishStd.isl" + + #include "CustomMsg.txt" + +diff -urp R-2.4.0.old/src/gnuwin32/installer/Makefile R-2.4.0/src/gnuwin32/installer/Makefile +--- R-2.4.0.old/src/gnuwin32/installer/Makefile 2006-09-04 09:41:38.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/installer/Makefile 2006-10-28 14:35:59.000000000 -0500 +@@ -79,12 +79,11 @@ endif + # + # files to make source packages + $(MKDIR) -p $(RPREFIX)/share \ +- $(RPREFIX)/src/library $(RPREFIX)/src/gnuwin32/fixed ++ $(RPREFIX)/src/library $(RPREFIX)/src/gnuwin32 + $(CP) $(R_HOME)/doc/html/logo.jpg $(RPREFIX)/doc/html + $(CP) $(R_HOME)/doc/KEYWORDS* $(RPREFIX)/doc + $(CP) -p $(foreach i,$(GW32_FILES),../$i) $(RPREFIX)/src/gnuwin32 + $(SED) -e s/@RVER@/$(RVER)/g ../Makefile.packages > $(RPREFIX)/src/gnuwin32/Makefile +- $(CP) ../fixed/dobundle.pl $(RPREFIX)/src/gnuwin32/fixed + $(CP) -pr ../help ../check $(RPREFIX)/src/gnuwin32 + $(RM) $(RPREFIX)/src/gnuwin32/help/*.c \ + $(RPREFIX)/src/gnuwin32/help/MkChmDll +@@ -155,5 +154,5 @@ myR: + @(cd $(IMAGEDIR); echo "tools:::.installMD5sums(\".\")" | \ + R_DEFAULT_PACKAGES=NULL LC_COLLATE=C R_OSTYPE=windows \ + bin/Rterm.exe --vanilla --slave) +- perl JRins.pl $(RPREFIX) $(IMAGEDIR) ++ perl JRins.pl $(RPREFIX) $(IMAGEDIR) $(MDISDI) $(HelpStyle) $(Internet) + "$(ISDIR)/iscc" R.iss > myR.log +Only in R-2.4.0.old/src/gnuwin32/installer: SpanishStd.isl +diff -urp R-2.4.0.old/src/gnuwin32/Makefile R-2.4.0/src/gnuwin32/Makefile +--- R-2.4.0.old/src/gnuwin32/Makefile 2006-09-06 21:05:05.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/Makefile 2006-10-28 14:36:00.000000000 -0500 +@@ -421,9 +421,10 @@ distclean: clean clean-recommended + $(RM) ../../doc/html/search/index.txt ../../doc/html/index.html \ + ../../doc/html/packages.html ../../doc/html/rwin.html \ + ../../doc/html/rw-FAQ.html ../../doc/html/search/SearchEngine.html +- $(RM) ../../etc/Rconsole ../../etc/Rdevga ../../etc/Rprofile.site \ +- ../../etc/rgb.txt ../../share/make/wintests.mk \ +- ../include/Platform.h ../../tests/*.Rout ../../tests/*.Rout.fail ++ $(RM) ../../etc/Makeconf ../../etc/Rconsole ../../etc/Rdevga \ ++ ../../etc/Rprofile.site ../../etc/rgb.txt \ ++ ../../share/make/wintests.mk \ ++ ../../tests/*.Rout ../../tests/*.Rout.fail + $(MAKE) -C fixed distclean + $(MAKE) -C ../include -f Makefile.win distclean + -$(MAKE) -C installer distclean +diff -urp R-2.4.0.old/src/gnuwin32/preferences.c R-2.4.0/src/gnuwin32/preferences.c +--- R-2.4.0.old/src/gnuwin32/preferences.c 2006-09-16 21:05:15.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/preferences.c 2006-10-29 10:45:44.000000000 -0600 +@@ -785,8 +785,8 @@ static void showDialog(Gui gui) + setlistitem(highlightcol, rgbtonum(gui->hlt)); + + bApply = newbutton(G_("Apply"), rect(50, 410, 70, 25), apply); +- bSave = newbutton(G_("Save"), rect(130, 410, 70, 25), save); +- bLoad = newbutton(G_("Load"), rect(210, 410, 70, 25), load); ++ bSave = newbutton(G_("Save..."), rect(130, 410, 70, 25), save); ++ bLoad = newbutton(G_("Load..."), rect(210, 410, 70, 25), load); + bOK = newbutton(G_("OK"), rect(350, 410, 70, 25), ok); + bCancel = newbutton(G_("Cancel"), rect(430, 410, 70, 25), cancel); + show(wconfig); +diff -urp R-2.4.0.old/src/gnuwin32/rui.c R-2.4.0/src/gnuwin32/rui.c +--- R-2.4.0.old/src/gnuwin32/rui.c 2006-09-21 21:05:08.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/rui.c 2006-10-29 10:45:44.000000000 -0600 +@@ -54,6 +54,7 @@ console RConsole = NULL; + #ifdef USE_MDI + int RguiMDI = RW_MDI | RW_TOOLBAR | RW_STATUSBAR; + int MDIset = 0; ++int R_LoadRconsole = 1; + window RFrame; + rect MDIsize; + #endif +@@ -664,25 +665,25 @@ void readconsolecfg() + + struct structGUI gui; + +- gui.crows = 32; +- gui.ccols = 90; ++ gui.crows = 25; ++ gui.ccols = 80; + gui.cx = gui.cy = 0; + gui.grx = Rwin_graphicsx; + gui.gry = Rwin_graphicsy; + gui.bg = White; +- gui.fg = Black; ++ gui.fg = DarkBlue; + gui.user = gaRed; + gui.hlt = DarkRed; + gui.prows = 25; + gui.pcols = 80; + gui.pagerMultiple = 0; +- gui.cbb = 64*1024; +- gui.cbl = 8*1024; ++ gui.cbb = 65000; ++ gui.cbl = 8000; + gui.setWidthOnResize = 1; +- strcpy(gui.font, "FixedFont"); ++ strcpy(gui.font, "Courier New"); + strcpy(gui.style, "normal"); +- gui.tt_font = 0; +- gui.pointsize = 12; ++ gui.tt_font = 1; ++ gui.pointsize = 10; + strcpy(gui.language, ""); + gui.buffered = 1; + +@@ -693,13 +694,15 @@ void readconsolecfg() + + gui.MDIsize = rect(0, 0, 0, 0); + #endif +- sprintf(optf, "%s/Rconsole", getenv("R_USER")); +- if (!loadRconsole(&gui, optf)) { +- sprintf(optf, "%s/etc/Rconsole", getenv("R_HOME")); ++ if (R_LoadRconsole) { ++ sprintf(optf, "%s/Rconsole", getenv("R_USER")); + if (!loadRconsole(&gui, optf)) { +- app_cleanup(); +- RConsole = NULL; +- exit(10); ++ sprintf(optf, "%s/etc/Rconsole", getenv("R_HOME")); ++ if (!loadRconsole(&gui, optf)) { ++ app_cleanup(); ++ RConsole = NULL; ++ exit(10); ++ } + } + } + if (gui.tt_font) { +diff -urp R-2.4.0.old/src/gnuwin32/rui.h R-2.4.0/src/gnuwin32/rui.h +--- R-2.4.0.old/src/gnuwin32/rui.h 2006-09-04 21:05:03.000000000 -0500 ++++ R-2.4.0/src/gnuwin32/rui.h 2006-10-29 10:45:44.000000000 -0600 +@@ -24,6 +24,7 @@ + #define RW_LARGEICONS 0x1000 + + extern int MDIset; ++extern int R_LoadRconsole; + + #include + #include +diff -urp R-2.4.0.old/src/include/Makefile.win R-2.4.0/src/include/Makefile.win +--- R-2.4.0.old/src/include/Makefile.win 2006-09-04 09:40:59.000000000 -0500 ++++ R-2.4.0/src/include/Makefile.win 2006-10-28 14:35:50.000000000 -0500 +@@ -78,7 +78,8 @@ Rmath.h: Rmath.h0 + + ## If we do not have svn, get the old file from SVN-REVISION.bak (if poss). + ## This needs to be copy-on-change. +-## We don't get the date from svn info as it is not in GMT. ++## The date from svn info is not in GMT, but we have decided to live ++## with that as they changed the format in svn 1.4.x + ## USE_SVNVERSION does not work if there is no 'svnversion' + FORCE: + $(R_HOME)/SVN-REVISION: FORCE +@@ -95,9 +96,10 @@ else + rm svn-tmp; \ + fi + endif +- @if test -f svn-tmp && test -f "../../.svn/entries" ; then \ +- cdate=`grep committed-date "../../.svn/entries" | sed -n 1p | sed -e 's/^ *committed-date=\"//' -e 's/T.*//'` ; \ +- echo "Last Changed Date: $${cdate}" >> svn-tmp ; \ ++ @if test -f svn-tmp ; then \ ++ (cd ../..; LC_ALL=C TZ=GMT svn info || echo "Last Changed Date: unknown") 2> /dev/null \ ++ | sed -n '/^Last Changed Date:/p' | sed 's/[0-9][0-9]:.*//' \ ++ >> svn-tmp ; \ + else \ + rm -f svn-tmp ; \ + fi +@@ -108,7 +110,7 @@ endif + else \ + cp -p $(R_HOME)/SVN-REVISION.bak $@ 2> /dev/null || \ + (echo "Revision: 00000" > $@; \ +- echo "Last Changed Date: 2005-00-00" >> $@) ; \ ++ echo "Last Changed Date: 2006-00-00" >> $@) ; \ + fi + @rm -f svn-tmp $(R_HOME)/SVN-REVISION.bak + +diff -urp R-2.4.0.old/src/library/base/man/abbreviate.Rd R-2.4.0/src/library/base/man/abbreviate.Rd +--- R-2.4.0.old/src/library/base/man/abbreviate.Rd 2006-09-04 09:41:21.000000000 -0500 ++++ R-2.4.0/src/library/base/man/abbreviate.Rd 2006-10-28 14:35:55.000000000 -0500 +@@ -35,6 +35,9 @@ abbreviate(names.arg, minlength = 4, use + + If \code{use.classes} is \code{FALSE} then the only distinction is to + be between letters and space. This has NOT been implemented. ++ ++ There is a limit on 8191 bytes on the elements of \code{names.arg} ++ (after possible coercion). + } + \value{ + A character vector containing abbreviations for the strings in its +diff -urp R-2.4.0.old/src/library/base/man/connections.Rd R-2.4.0/src/library/base/man/connections.Rd +--- R-2.4.0.old/src/library/base/man/connections.Rd 2006-09-17 21:05:04.000000000 -0500 ++++ R-2.4.0/src/library/base/man/connections.Rd 2006-11-01 19:41:41.000000000 -0600 +@@ -2,6 +2,7 @@ + \alias{connections} + \alias{connection} + \alias{file} ++\alias{clipboard} + \alias{pipe} + \alias{fifo} + \alias{gzfile} +@@ -254,12 +255,13 @@ isIncomplete(con) + in modes \code{"r"} and \code{"w"} only. + #endif + #ifdef unix +- in mode \code{"r"} only. It reads the X11 primary selection, which +- can also be specified as \code{"X11_primary"} and the secondary ++ in mode \code{"r"} only. It reads the X11 primary selection (see ++ \url{http://standards.freedesktop.org/clipboards-spec/clipboards-latest.txt}), ++ which can also be specified as \code{"X11_primary"} and the secondary + selection as \code{"X11_secondary"}. + #endif + +- When the clipboard is opened for reading, the contents are immediately ++ When a clipboard is opened for reading, the contents are immediately + copied to internal storage in the connection. + + #ifdef windows +diff -urp R-2.4.0.old/src/library/base/man/grep.Rd R-2.4.0/src/library/base/man/grep.Rd +--- R-2.4.0.old/src/library/base/man/grep.Rd 2006-09-24 21:05:08.000000000 -0500 ++++ R-2.4.0/src/library/base/man/grep.Rd 2006-10-28 14:35:55.000000000 -0500 +@@ -54,11 +54,12 @@ gregexpr(pattern, text, extended = TRUE, + \item{useBytes}{logical. If \code{TRUE} the matching is done + byte-by-byte rather than character-by-character. See Details.} + \item{replacement}{a replacement for matched pattern in \code{sub} and +- \code{gsub}. Coerced to character if possible. This can include +- backreferences \code{"\\1"} to \code{"\\9"} to parenthesized +- subexpressions of \code{pattern}. For \code{perl = TRUE} only, it +- can also contain \code{"\\U"} or \code{"\\L"} to convert the rest of +- the replacement to upper or lower case. ++ \code{gsub}. Coerced to character if possible. For \code{fixed = ++ FALSE} this can include backreferences \code{"\\1"} to ++ \code{"\\9"} to parenthesized subexpressions of \code{pattern}. For ++ \code{perl = TRUE} only, it can also contain \code{"\\U"} or ++ \code{"\\L"} to convert the rest of the replacement to upper or ++ lower case. + } + } + \details{ +diff -urp R-2.4.0.old/src/library/base/man/groupGeneric.Rd R-2.4.0/src/library/base/man/groupGeneric.Rd +--- R-2.4.0.old/src/library/base/man/groupGeneric.Rd 2006-09-04 09:41:20.000000000 -0500 ++++ R-2.4.0/src/library/base/man/groupGeneric.Rd 2006-10-28 14:35:55.000000000 -0500 +@@ -7,8 +7,6 @@ + \alias{Ops.data.frame} + \alias{Summary} + \alias{Summary.data.frame} +-\alias{Arith} +-\alias{Compare} + \alias{Complex} + \alias{group generic} % used in class.Rd + \concept{group generic} +@@ -120,7 +118,7 @@ Summary(\dots, na.rm = FALSE) + } + This group dispatches on the first argument supplied. + +- \item Group \code{Complex}: ++ \item Group \code{"Complex"}: + \itemize{ + \item \code{Arg}, \code{Conj}, \code{Im}, \code{Mod}, \code{Re} + % do_cmathfuns() [complex.c:267]: if(DispatchGroup("Complex",...)) +diff -urp R-2.4.0.old/src/library/base/man/merge.Rd R-2.4.0/src/library/base/man/merge.Rd +--- R-2.4.0.old/src/library/base/man/merge.Rd 2006-09-27 21:05:07.000000000 -0500 ++++ R-2.4.0/src/library/base/man/merge.Rd 2006-10-28 14:35:55.000000000 -0500 +@@ -18,8 +18,7 @@ merge(x, y, \dots) + sort = TRUE, suffixes = c(".x",".y"), \dots) + } + \arguments{ +- \item{x, y}{data frames, or objects to be coerced to one. Neither is +- currently allowed to have zero rows.} ++ \item{x, y}{data frames, or objects to be coerced to one.} + \item{by, by.x, by.y}{specifications of the common columns. See Details.} + \item{all}{logical; \code{all = L} is shorthand for \code{all.x = L} and + \code{all.y = L}.} +diff -urp R-2.4.0.old/src/library/base/man/ns-internal.Rd R-2.4.0/src/library/base/man/ns-internal.Rd +--- R-2.4.0.old/src/library/base/man/ns-internal.Rd 2006-09-07 21:05:19.000000000 -0500 ++++ R-2.4.0/src/library/base/man/ns-internal.Rd 2006-10-28 14:35:55.000000000 -0500 +@@ -27,7 +27,7 @@ importIntoEnv(impenv, impnames, expenv, + isBaseNamespace(ns) + namespaceExport(ns, vars) + namespaceImport(self, \dots) +-namespaceImportFrom(self, ns, vars, generics) ++namespaceImportFrom(self, ns, vars, generics, packages) + namespaceImportClasses(self, ns, vars) + namespaceImportMethods(self, ns, vars) + packageHasNamespace(package, package.lib) +@@ -49,6 +49,7 @@ setNamespaceInfo(ns, which, val) + \item{generics}{optional character vector.} + \item{self}{name space environment.} + \item{package}{string naming the package/name space to load.} ++ \item{packages}{vector of package names parallel to \code{generics}.} + \item{package.lib}{character vector specifying library.} + \item{mustExist}{logical.} + \item{genname}{character.} +diff -urp R-2.4.0.old/src/library/base/man/parse.Rd R-2.4.0/src/library/base/man/parse.Rd +--- R-2.4.0.old/src/library/base/man/parse.Rd 2006-09-04 09:41:20.000000000 -0500 ++++ R-2.4.0/src/library/base/man/parse.Rd 2006-10-28 14:35:55.000000000 -0500 +@@ -36,7 +36,8 @@ parse(file = "", n = NULL, text = NULL, + that is missing the final EOL marker. + + See \code{\link{source}} for the limits on the size of functions +- that can be parsed (by default). ++ that can be parsed (by default). There is also a limit of 8192 bytes ++ on the size of strings which can be parsed. + + When input is taken from the console, \code{n = NULL} is equivalent to + \code{n = 1}, and \code{n < 0} will read until an EOF character is read. +diff -urp R-2.4.0.old/src/library/base/man/regex.Rd R-2.4.0/src/library/base/man/regex.Rd +--- R-2.4.0.old/src/library/base/man/regex.Rd 2006-09-24 21:05:08.000000000 -0500 ++++ R-2.4.0/src/library/base/man/regex.Rd 2006-10-30 10:45:47.000000000 -0600 +@@ -56,7 +56,7 @@ + + The precise way character ranges are interpreted depends on the values + of \code{perl} and \code{ignore.case}. For basic and extended regular +- expressions the the collation order is taken from the OS's ++ expressions the collation order is taken from the OS's + implementation of the setting of the locale category + \code{LC_COLLATE}, so \code{[W-Z]} may include \code{x} and if it + does may or may not include \code{w}. (In most English locales the +diff -urp R-2.4.0.old/src/library/base/man/Rhome.Rd R-2.4.0/src/library/base/man/Rhome.Rd +--- R-2.4.0.old/src/library/base/man/Rhome.Rd 2006-04-09 17:19:27.000000000 -0500 ++++ R-2.4.0/src/library/base/man/Rhome.Rd 2006-10-28 14:35:54.000000000 -0500 +@@ -1,8 +1,9 @@ + \name{R.home} + \alias{R.home} ++\alias{R_HOME} + \title{Return the R Home Directory} + \description{ +- Return the \R home directory. ++ Return the \R home directory. + } + \usage{ + R.home(component="home") +@@ -13,8 +14,19 @@ R.home(component="home") + \code{"etc"} and \code{"share"} giving the paths to the + corresponding parts of an \R installation.} + } ++\details{ ++ The \R home directory is the top-level directory of the \R ++ installation being run. ++ ++ The \R home directory is often referred to as \code{R_HOME}, ++ and is the value of an environment variable of that name in an \R ++ session. ++#ifdef unix ++ It can be found outside an \R session by \code{R \link{RHOME}}. ++#endif ++} + \value{ +- A character string giving the current \R home directory or path to a ++ A character string giving the \R home directory or path to a + particular component. Normally the components are all subdirectories + of the \R home directory, but this may not be the case in a Unix-like + installation. +diff -urp R-2.4.0.old/src/library/base/man/row.names.Rd R-2.4.0/src/library/base/man/row.names.Rd +--- R-2.4.0.old/src/library/base/man/row.names.Rd 2006-09-04 09:41:20.000000000 -0500 ++++ R-2.4.0/src/library/base/man/row.names.Rd 2006-10-28 14:35:55.000000000 -0500 +@@ -34,10 +34,10 @@ row.names(x) <- value + Prior to \R 2.4.0, row names were character. As from \R 2.4.0, they + are allowed to be integer or character, but for backwards + compatibility \code{row.names} will always return a character vector. +- (Use \code{attr(x, "row.names")} if you need the internal value.) ++ (Use \code{attr(x, "row.names")} if you need the actual value.) + + Using \code{NULL} for the value resets the row names to +- \code{seq(len=nrow(x))}. ++ \code{seq_len(nrow(x))}. + } + \value{ + \code{row.names} returns a character vector. +@@ -49,9 +49,9 @@ row.names(x) <- value + it has a method that calls \code{rownames} for an array argument. + + Row names of the form \code{1:n} for \code{n > 2} are stored +- internally in a compact form, which might be seen by calling +- \code{\link{attributes}} but never via \code{row.names} or +- \code{attr(x, "row.names")}. ++ internally in a compact form, which might be seen from C code or by ++ deparsing but never via \code{row.names} or ++ \code{\link{attr}(x, "row.names")}. + } + \references{ + Chambers, J. M. (1992) +diff -urp R-2.4.0.old/src/library/base/man/source.Rd R-2.4.0/src/library/base/man/source.Rd +--- R-2.4.0.old/src/library/base/man/source.Rd 2006-09-04 09:41:21.000000000 -0500 ++++ R-2.4.0/src/library/base/man/source.Rd 2006-10-28 14:35:55.000000000 -0500 +@@ -49,7 +49,7 @@ source(file, local = FALSE, echo = verbo + + If \code{\link{options}}("keep.source") is true (the default), the + source of functions is kept so they can be listed exactly as input. +- This imposes a limit of 128K chars on the function size and a nesting ++ This imposes a limit of 128K bytes on the function size and a nesting + limit of 265. Use \code{option(keep.source = FALSE)} when these + limits might take effect: if exceeded they generate an error. + +@@ -61,7 +61,8 @@ source(file, local = FALSE, echo = verbo + trial encoding. + + Unlike input from a console, lines in the file or on a connection can +- contain an unlimited number of characters. ++ contain an unlimited number of characters. However, there is a limit ++ of 8192 bytes on the size of character strings. + } + \references{ + Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) +diff -urp R-2.4.0.old/src/library/base/man/Startup.Rd R-2.4.0/src/library/base/man/Startup.Rd +--- R-2.4.0.old/src/library/base/man/Startup.Rd 2006-09-04 09:41:20.000000000 -0500 ++++ R-2.4.0/src/library/base/man/Startup.Rd 2006-10-29 10:45:43.000000000 -0600 +@@ -77,6 +77,10 @@ + The command-line flag \option{--vanilla} implies + \option{--no-site-file}, \option{--no-init-file}, + \option{--no-restore} and \option{--no-environ}. ++#ifdef windows ++ In Windows, it also implies \option{--no-Rconsole}, which ++ prevents loading the \code{\link{Rconsole}} file. ++#endif + } + \details{ + Note that there are two sorts of files used in startup: +diff -urp R-2.4.0.old/src/library/base/man/strsplit.Rd R-2.4.0/src/library/base/man/strsplit.Rd +--- R-2.4.0.old/src/library/base/man/strsplit.Rd 2006-09-07 21:05:19.000000000 -0500 ++++ R-2.4.0/src/library/base/man/strsplit.Rd 2006-10-30 10:45:47.000000000 -0600 +@@ -52,7 +52,7 @@ strsplit(x, split, extended = TRUE, fixe + character} (almost always a Unicode point). + + +- A missing value of \code{split} does not split the the corresponding ++ A missing value of \code{split} does not split the corresponding + element(s) of \code{x} at all. + + The algorithm applied to each input string is +diff -urp R-2.4.0.old/src/library/base/man/unlist.Rd R-2.4.0/src/library/base/man/unlist.Rd +--- R-2.4.0.old/src/library/base/man/unlist.Rd 2006-09-04 09:41:20.000000000 -0500 ++++ R-2.4.0/src/library/base/man/unlist.Rd 2006-10-31 10:45:45.000000000 -0600 +@@ -20,7 +20,7 @@ unlist(x, recursive = TRUE, use.names = + specific classes of objects, see \link{InternalMethods}. + + If \code{x} has length zero the result is \code{NULL}. +- ++ + If \code{recursive = FALSE}, the function will not recurse beyond the + first level items in \code{x}. + +@@ -40,7 +40,7 @@ unlist(x, recursive = TRUE, use.names = + + Where possible the list elements are coerced to a common mode during + the unlisting, and so the result often ends up as a character +- vector. Vectors will be corced to the highest type of the components ++ vector. Vectors will be coerced to the highest type of the components + in the hierarchy NULL < raw < logical < integer < real < complex < character + < list < expression: pairlists are treated as lists. + +@@ -54,7 +54,7 @@ unlist(x, recursive = TRUE, use.names = + \value{ + \code{NULL} or an expression or a vector of an appropriate mode to + hold the list components. +- ++ + The output type is determined from the highest type + of the components in the hierarchy raw < logical < integer < real < + complex < character < list < expression, after coercion of pairlists +diff -urp R-2.4.0.old/src/library/base/R/merge.R R-2.4.0/src/library/base/R/merge.R +--- R-2.4.0.old/src/library/base/R/merge.R 2006-09-04 09:41:13.000000000 -0500 ++++ R-2.4.0/src/library/base/R/merge.R 2006-10-28 14:35:54.000000000 -0500 +@@ -28,7 +28,6 @@ merge.data.frame <- + } + + nx <- nrow(x <- as.data.frame(x)); ny <- nrow(y <- as.data.frame(y)) +- if (nx == 0 || ny == 0) stop("no rows to match") + by.x <- fix.by(by.x, x) + by.y <- fix.by(by.y, y) + if((l.b <- length(by.x)) != length(by.y)) +@@ -44,7 +43,7 @@ merge.data.frame <- + cnm <- nm.y %in% nm + names(y)[cnm] <- paste(nm.y[cnm], suffixes[2], sep="") + } +- ij <- expand.grid(1:nx, 1:ny) ++ ij <- expand.grid(seq_len(nx), seq_len(ny)) + res <- cbind(x[ij[,1], , drop = FALSE], y[ij[,2], , drop = FALSE]) + } + else { +@@ -56,8 +55,8 @@ merge.data.frame <- + y <- cbind(Row.names = I(row.names(y)), y) + by.y <- by.y + 1 + } +- row.names(x) <- 1:nx +- row.names(y) <- 1:ny ++ row.names(x) <- seq_len(nx) ++ row.names(y) <- seq_len(ny) + ## create keys from 'by' columns: + if(l.b == 1) { # (be faster) + bx <- x[, by.x]; if(is.factor(bx)) bx <- as.character(bx) +@@ -68,17 +67,18 @@ merge.data.frame <- + bx <- x[, by.x, drop=FALSE]; by <- y[, by.y, drop=FALSE] + names(bx) <- names(by) <- paste("V", 1:ncol(bx), sep="") + bz <- do.call("paste", c(rbind(bx, by), sep = "\r")) +- bx <- bz[1:nx] +- by <- bz[nx + (1:ny)] ++ bx <- bz[seq_len(nx)] ++ by <- bz[nx + seq_len(ny)] + } + comm <- match(bx, by, 0) + bxy <- bx[comm > 0] # the keys which are in both + xinds <- match(bx, bxy, 0) + yinds <- match(by, bxy, 0) +- ## R-only solution {when !all.x && !all.y} : +- ## o <- outer(xinds, yinds, function(x, y) (x > 0) & x==y) +- ## m <- list(xi = row(o)[o], yi = col(o)[o]) +- m <- .Internal(merge(xinds, yinds, all.x, all.y)) ++ if(nx > 0 && ny > 0) ++ m <- .Internal(merge(xinds, yinds, all.x, all.y)) ++ else ++ m <- list(xi=integer(0), yi=integer(0), ++ x.alone=seq_len(nx), y.alone=seq_len(ny)) + nm <- nm.x <- names(x)[-by.x] + nm.by <- names(x)[by.x] + nm.y <- names(y)[-by.y] +diff -urp R-2.4.0.old/src/library/base/R/namespace.R R-2.4.0/src/library/base/R/namespace.R +--- R-2.4.0.old/src/library/base/R/namespace.R 2006-09-22 21:05:06.000000000 -0500 ++++ R-2.4.0/src/library/base/R/namespace.R 2006-10-28 14:35:54.000000000 -0500 +@@ -657,7 +657,7 @@ namespaceImport <- function(self, ...) { + namespaceImportFrom(self, asNamespace(ns)) + } + +-namespaceImportFrom <- function(self, ns, vars, generics) { ++namespaceImportFrom <- function(self, ns, vars, generics, packages) { + addImports <- function(ns, from, what) { + imp <- structure(list(what), names = getNamespaceName(from)) + imports <- getNamespaceImports(ns) +@@ -726,7 +726,8 @@ namespaceImportFrom <- function(self, ns + delete <- c(delete, ii) + if(!missing(generics)) { + genName <- generics[[i]] +- fdef <- methods:::getGeneric(genName, where = impenv) ++ fdef <- methods:::getGeneric(genName, ++ where = impenv, package = packages[[i]]) + if(is.null(fdef)) + warning(gettextf( + "Found methods to import for function \"%s\" but not the generic itself", +@@ -784,7 +785,7 @@ namespaceImportMethods <- function(self, + methods:::is(get(g, envir = ns), "genericFunction")) + allVars <- c(allVars, g) + } +- namespaceImportFrom(self, asNamespace(ns), allVars, allFuns) ++ namespaceImportFrom(self, asNamespace(ns), allVars, allFuns, packages) + } + + importIntoEnv <- function(impenv, impnames, expenv, expnames) { +diff -urp R-2.4.0.old/src/library/base/R/stop.R R-2.4.0/src/library/base/R/stop.R +--- R-2.4.0.old/src/library/base/R/stop.R 2006-09-04 09:41:13.000000000 -0500 ++++ R-2.4.0/src/library/base/R/stop.R 2006-10-28 14:35:54.000000000 -0500 +@@ -45,7 +45,7 @@ warning <- function(..., call. = TRUE, i + call = conditionCall(cond) + withRestarts({ + .Internal(.signalCondition(cond, message, call)) +- .Internal(.dfltStop(message, call)) ++ .Internal(.dfltWarn(message, call)) + }, muffleWarning = function() NULL) #**** allow simpler form?? + invisible(message) + } +diff -urp R-2.4.0.old/src/library/graphics/man/plotdefault.Rd R-2.4.0/src/library/graphics/man/plotdefault.Rd +--- R-2.4.0.old/src/library/graphics/man/plotdefault.Rd 2006-05-23 21:05:04.000000000 -0500 ++++ R-2.4.0/src/library/graphics/man/plotdefault.Rd 2006-10-28 14:35:51.000000000 -0500 +@@ -24,7 +24,7 @@ + \code{"s"} and \code{"S"} for stair steps and + \code{"h"} for histogram-like vertical lines. Finally, + \code{"n"} does not produce any points or lines.} +- \item{xlim}{the x limits (x1,x2) of the plot. Note that \code{x1 > x2} ++ \item{xlim}{the x limits (x1, x2) of the plot. Note that \code{x1 > x2} + is allowed and leads to a \dQuote{reversed axis}.} + \item{ylim}{the y limits of the plot.} + \item{log}{a character string which contains \code{"x"} if the x axis +diff -urp R-2.4.0.old/src/library/graphics/man/plot.window.Rd R-2.4.0/src/library/graphics/man/plot.window.Rd +--- R-2.4.0.old/src/library/graphics/man/plot.window.Rd 2006-09-04 09:41:01.000000000 -0500 ++++ R-2.4.0/src/library/graphics/man/plot.window.Rd 2006-10-28 14:35:51.000000000 -0500 +@@ -12,8 +12,8 @@ + plot.window(xlim, ylim, log = "", asp = NA, \dots) + } + \arguments{ +- \item{xlim, ylim}{numeric of length 2, giving the x and y coordinates +- ranges.} ++ \item{xlim, ylim}{numeric vectors of length 2, giving the x and y ++ coordinates ranges.} + \item{log}{character; indicating which axes should be in log scale.} + \item{asp}{numeric, giving the \bold{asp}ect ratio y/x.} + \item{\dots}{further graphical parameters as in \code{\link{par}}. +@@ -30,6 +30,9 @@ plot.window(xlim, ylim, log = "", asp = + \code{asp > 1} can be used to produce more accurate maps when using + latitude and longitude. + ++ To reverse an axis, use \code{xlim} or \code{ylim} of the form ++ \code{c(hi, lo)}. ++ + The function attempts to produce a plausible set of scales if one or + both of \code{xlim} and \code{ylim} is of length one or the two values + given are identical, but it is better to avoid that case. +diff -urp R-2.4.0.old/src/library/graphics/man/stripchart.Rd R-2.4.0/src/library/graphics/man/stripchart.Rd +--- R-2.4.0.old/src/library/graphics/man/stripchart.Rd 2006-09-12 21:05:02.000000000 -0500 ++++ R-2.4.0/src/library/graphics/man/stripchart.Rd 2006-10-30 10:45:46.000000000 -0600 +@@ -18,7 +18,7 @@ stripchart(x, method = "overplot", jitte + can be specified as a single numeric vector, or as list of numeric + vectors, each corresponding to a component plot. Alternatively a + symbolic specification of the form \code{x ~ g} can be given, +- indicating the the observations in the vector \code{x} are to be ++ indicating the observations in the vector \code{x} are to be + grouped according to the levels of the factor \code{g}. \code{NA}s + are allowed in the data.} + \item{method}{the method to be used to separate coincident points. +diff -urp R-2.4.0.old/src/library/graphics/man/symbols.Rd R-2.4.0/src/library/graphics/man/symbols.Rd +--- R-2.4.0.old/src/library/graphics/man/symbols.Rd 2006-09-04 09:41:01.000000000 -0500 ++++ R-2.4.0/src/library/graphics/man/symbols.Rd 2006-10-30 10:45:46.000000000 -0600 +@@ -72,7 +72,7 @@ symbols(x, y = NULL, circles, squares, r + to zero. + + Argument \code{inches} controls the sizes of the symbols. If +- \code{TRUE} (the default), the the symbols are scaled so that the ++ \code{TRUE} (the default), the symbols are scaled so that the + largest dimension of any symbol is one inch. If a positive number is + given the symbols are scaled to make largest dimension this size in + inches (so \code{TRUE} and \code{1} are equivalent). If \code{inches} +diff -urp R-2.4.0.old/src/library/graphics/R/datetime.R R-2.4.0/src/library/graphics/R/datetime.R +--- R-2.4.0.old/src/library/graphics/R/datetime.R 2006-09-04 09:41:00.000000000 -0500 ++++ R-2.4.0/src/library/graphics/R/datetime.R 2006-10-28 14:35:50.000000000 -0500 +@@ -23,13 +23,13 @@ axis.POSIXct <- function(side, x, at, fo + if(missing(format)) format <- "%a" + } else { # days, up to a couple of months + sc <- 60*60*24 +- if(missing(format)) format <- "%b %d" + } + if(d < 60*60*24*50) { + zz <- pretty(z/sc) + z <- zz*sc + class(z) <- c("POSIXt", "POSIXct") + if(sc == 60*60*24) z <- as.POSIXct(round(z, "days")) ++ if(missing(format)) format <- "%b %d" + } else if(d < 1.1*60*60*24*365) { # months + class(z) <- c("POSIXt", "POSIXct") + zz <- as.POSIXlt(z) +diff -urp R-2.4.0.old/src/library/graphics/R/dotchart.R R-2.4.0/src/library/graphics/R/dotchart.R +--- R-2.4.0.old/src/library/graphics/R/dotchart.R 2006-09-12 21:05:02.000000000 -0500 ++++ R-2.4.0/src/library/graphics/R/dotchart.R 2006-10-28 14:35:50.000000000 -0500 +@@ -5,7 +5,9 @@ function(x, labels = NULL, groups = NULL + xlim = range(x[is.finite(x)]), + main = NULL, xlab = NULL, ylab = NULL, ...) + { +- opar <- par("mai", "cex", "yaxs") ++ ## opar <- par(no.readonly=TRUE) ## slightly more efficient: ++ opar <- par("cex", "yaxs", "mai", ## needed too: ++ "mar", "usr", "xaxp", "yaxp") + on.exit(par(opar)) + par(cex = cex, yaxs = "i") + +diff -urp R-2.4.0.old/src/library/graphics/R/mosaicplot.R R-2.4.0/src/library/graphics/R/mosaicplot.R +--- R-2.4.0.old/src/library/graphics/R/mosaicplot.R 2006-09-04 09:41:00.000000000 -0500 ++++ R-2.4.0/src/library/graphics/R/mosaicplot.R 2006-10-28 14:35:51.000000000 -0500 +@@ -12,6 +12,9 @@ mosaicplot <- function(x, ...) UseMethod + ### Changes by W. Fischer and U. Ligges: + ## - Deparsing x in for main title. New arguments: sub, las, cex.axis + ## - made to work by BDR ++### Changes by John W. Emerson (JWE): ++## - Fixed xlab and ylab to reflect changes in variables and/or ++## orientation (e.g. use of sort and dir options). + + mosaicplot.default <- + function(x, main = deparse(substitute(x)), sub = NULL, xlab = NULL, +@@ -215,11 +218,13 @@ function(x, main = deparse(substitute(x) + as.numeric(cut(residuals, breaks))) + } + +- ## The next four may all be NULL: +- label <- dimnames(x) +- nam.dn <- names(label) +- if(is.null(xlab)) xlab <- nam.dn[1] +- if(is.null(ylab)) ylab <- nam.dn[2] ++ ############################################################## ++ ## The next four may all be NULL: ### MOVED by JWE to below. ++ ## label <- dimnames(x) ++ ## nam.dn <- names(label) ++ ## if(is.null(xlab)) xlab <- nam.dn[1] ++ ## if(is.null(ylab)) ylab <- nam.dn[2] ++ ############################################################## + + ## Initialize spacing. + if(is.null(off)) +@@ -242,6 +247,24 @@ function(x, main = deparse(substitute(x) + label <- label[sort] + } + ++ ## ################################################################# ++ ## MOVED and modified by JWE, from above, 10/16/2006 to fix dir= and ++ ## sort= bug with respect to xlab= and ylab= options. ++ ++ ## The next four may all be NULL: ++ label <- dimnames(x) ++ nam.dn <- names(label) ++ ## Here, we need to identify the first "h" and first "v" splits, and ++ ## use their names for xlab= and ylab=, if they are NULL. ++ ++ if(is.null(xlab) && any(dir == "v")) ++ xlab <- nam.dn[min(which(dir == "v"))] ++ if(is.null(ylab) && any(dir == "h")) ++ ylab <- nam.dn[min(which(dir == "h"))] ++ ++ ## END MODIFICATIONS by JWE ++ ## ################################################################# ++ + ncolors <- length(tabulate(Ind[,dimd])) + if(!extended && ((is.null(color) || length(color) != ncolors))) { + color <- +@@ -370,3 +393,5 @@ function(formula, data = NULL, ..., + mosaicplot(table(mf), main = main, ...) + } + } ++ ++ +diff -urp R-2.4.0.old/src/library/graphics/R/rect.R R-2.4.0/src/library/graphics/R/rect.R +--- R-2.4.0.old/src/library/graphics/R/rect.R 2006-04-09 17:19:00.000000000 -0500 ++++ R-2.4.0/src/library/graphics/R/rect.R 2006-10-28 14:35:50.000000000 -0500 +@@ -5,7 +5,7 @@ rect <- + if (is.numeric(density) && all(is.na(density) | density < 0)) + density <- NULL + if (!is.null(density) && !is.null(angle)) { +- if (is.logical(border)) { ++ if (is.logical(border) && !is.na(border)) { + if (border) border <- col + else border <- NA + } +diff -urp R-2.4.0.old/src/library/grDevices/man/palettes.Rd R-2.4.0/src/library/grDevices/man/palettes.Rd +--- R-2.4.0.old/src/library/grDevices/man/palettes.Rd 2006-04-09 17:19:30.000000000 -0500 ++++ R-2.4.0/src/library/grDevices/man/palettes.Rd 2006-10-28 14:35:56.000000000 -0500 +@@ -9,11 +9,12 @@ + Create a vector of \code{n} \dQuote{contiguous} colors. + } + \usage{ +-rainbow(n, s = 1, v = 1, start = 0, end = max(1,n - 1)/n, gamma = 1) +-heat.colors(n) +-terrain.colors(n) +-topo.colors(n) +-cm.colors(n) ++rainbow(n, s = 1, v = 1, start = 0, end = max(1,n - 1)/n, ++ gamma = 1, alpha = 1) ++heat.colors(n, alpha = 1) ++terrain.colors(n, alpha = 1) ++topo.colors(n, alpha = 1) ++cm.colors(n, alpha = 1) + } + \arguments{ + \item{n}{the number of colors (\eqn{\ge 1}{>= 1}) to be in the +@@ -25,6 +26,8 @@ cm.colors(n) + \item{end}{the (corrected) hue in [0,1] at which the rainbow ends.} + \item{gamma}{the gamma correction, see argument \code{gamma} in + \code{\link{hsv}}.} ++ \item{alpha}{the alpha transparency, a number in [0,1], see argument ++ \code{alpha} in \code{\link{hsv}}.} + } + \details{ + Conceptually, all of these functions actually use (parts of) a line +diff -urp R-2.4.0.old/src/library/grDevices/man/windows/windows.Rd R-2.4.0/src/library/grDevices/man/windows/windows.Rd +--- R-2.4.0.old/src/library/grDevices/man/windows/windows.Rd 2006-04-09 17:19:30.000000000 -0500 ++++ R-2.4.0/src/library/grDevices/man/windows/windows.Rd 2006-10-28 14:35:56.000000000 -0500 +@@ -34,8 +34,9 @@ win.print(width = 7, height = 7, pointsi + \arguments{ + \item{width, height}{the (nominal) width and height of the canvas of + the plotting window in inches.} +- \item{pointsize}{the default pointsize of plotted text. The allowed +- range is \code{[6, 48]}: values outside that range are reset to 12.} ++ \item{pointsize}{the default pointsize of plotted text. Values are ++ rounded to the nearest integer: values less than or equal to zero ++ are reset to 12.} + \item{record}{logical: sets the initial state of the flag for + recording plots.} + \item{rescale}{controls the action for resizing plots.} +diff -urp R-2.4.0.old/src/library/grDevices/R/colorstuff.R R-2.4.0/src/library/grDevices/R/colorstuff.R +--- R-2.4.0.old/src/library/grDevices/R/colorstuff.R 2006-09-04 09:41:22.000000000 -0500 ++++ R-2.4.0/src/library/grDevices/R/colorstuff.R 2006-10-28 14:35:55.000000000 -0500 +@@ -7,19 +7,17 @@ col2rgb <- function(col, alpha=FALSE) { + result + } + ++## FIXME: gray() should also allow alpha; ditto for gray.colors() below + gray <- function(level) .Internal(gray(level)) + grey <- gray + + rgb <- function(red, green, blue, alpha, names = NULL, maxColorValue = 1) + { +- if (missing(alpha)) { +- alphaspec <- FALSE +- alpha <- maxColorValue +- } else { +- alphaspec <- TRUE +- } ++ alphaspec <- !missing(alpha) ++ if(!alphaspec) ++ alpha <- maxColorValue + ## in the first case, (r,g,b) are (coerced to) integer, otherwise +- ## double. ++ ## double : + if(maxColorValue == 255) + result <- .Internal(rgb256(red, green, blue, alpha, names)) + else +@@ -30,14 +28,9 @@ rgb <- function(red, green, blue, alpha, + else result + } + +-hsv <- function(h=1, s=1, v=1, gamma=1, alpha) ++hsv <- function(h=1, s=1, v=1, gamma = 1, alpha = 1) + { +- if (missing(alpha)) { +- alphaspec <- FALSE +- alpha <- 1 +- } else { +- alphaspec <- TRUE +- } ++ alphaspec <- !missing(alpha) + result <- .Internal(hsv(h, s, v, gamma, alpha)) + ## If alpha not specified only return #RRGGBB + if (!alphaspec) +@@ -46,14 +39,9 @@ hsv <- function(h=1, s=1, v=1, gamma=1, + } + + hcl <- +-function (h = 0, c = 35, l = 85, alpha, fixup = TRUE) ++function (h = 0, c = 35, l = 85, alpha = 1, fixup = TRUE) + { +- if (missing(alpha)) { +- alphaspec <- FALSE +- alpha <- 1 +- } else { +- alphaspec <- TRUE +- } ++ alphaspec <- !missing(alpha) + result <- .Internal(hcl(h, c, l, alpha, fixup)) + if (!alphaspec) + structure(substr(result, 1, 7), names=names(result)) +@@ -90,30 +78,30 @@ palette <- function(value) + ## A quick little ''rainbow'' function -- improved by MM + ## doc in ../man/palettes.Rd + rainbow <- +- function (n, s = 1, v = 1, start = 0, end = max(1,n - 1)/n, gamma = 1) ++ function (n, s = 1, v = 1, start = 0, end = max(1,n - 1)/n, gamma = 1, alpha = 1) + { + if ((n <- as.integer(n[1])) > 0) { + if(start == end || any(c(start,end) < 0)|| any(c(start,end) > 1)) + stop("'start' and 'end' must be distinct and in [0, 1].") + hsv(h = seq.int(start, ifelse(start > end, 1, 0) + end, length= n) %% 1, +- s, v, gamma) ++ s, v, gamma, alpha) + } else character(0) + } + +-topo.colors <- function (n) ++topo.colors <- function (n, alpha = 1) + { + if ((n <- as.integer(n[1])) > 0) { + j <- n %/% 3 + k <- n %/% 3 + i <- n - j - k +- c(if(i > 0) hsv(h= seq.int(from = 43/60, to = 31/60, length = i)), +- if(j > 0) hsv(h= seq.int(from = 23/60, to = 11/60, length = j)), +- if(k > 0) hsv(h= seq.int(from = 10/60, to = 6/60, length = k), +- s= seq.int(from = 1, to = 0.3, length = k), v = 1)) ++ c(if(i > 0) hsv(h= seq.int(from= 43/60, to= 31/60, length = i), alpha=alpha), ++ if(j > 0) hsv(h= seq.int(from= 23/60, to= 11/60, length = j), alpha=alpha), ++ if(k > 0) hsv(h= seq.int(from= 10/60, to= 6/60, length = k), alpha=alpha, ++ s= seq.int(from= 1, to= 0.3, length = k), v = 1)) + } else character(0) + } + +-terrain.colors <- function (n) ++terrain.colors <- function (n, alpha = 1) + { + if ((n <- as.integer(n[1])) > 0) { + k <- n%/%2 +@@ -122,26 +110,26 @@ terrain.colors <- function (n) + v <- c(0.65, 0.9, 0.95) + c(hsv(h = seq.int(h[1], h[2], length = k), + s = seq.int(s[1], s[2], length = k), +- v = seq.int(v[1], v[2], length = k)), ++ v = seq.int(v[1], v[2], length = k), alpha = alpha), + hsv(h = seq.int(h[2], h[3], length = n - k + 1)[-1], + s = seq.int(s[2], s[3], length = n - k + 1)[-1], +- v = seq.int(v[2], v[3], length = n - k + 1)[-1])) ++ v = seq.int(v[2], v[3], length = n - k + 1)[-1], alpha = alpha)) + } else character(0) + } + +-heat.colors <- function (n) ++heat.colors <- function (n, alpha = 1) + { + if ((n <- as.integer(n[1])) > 0) { + j <- n %/% 4 + i <- n - j +- c(rainbow(i, start = 0, end = 1/6), ++ c(rainbow(i, start = 0, end = 1/6, alpha = alpha), + if (j > 0) + hsv(h = 1/6, s = seq.int(from= 1-1/(2*j), to= 1/(2*j), length = j), +- v = 1)) ++ v = 1, alpha = alpha)) + } else character(0) + } + +-cm.colors <- function (n) ++cm.colors <- function (n, alpha = 1) + { + if ((n <- as.integer(n[1])) > 0) { + even.n <- n %% 2 == 0 +@@ -149,13 +137,15 @@ cm.colors <- function (n) + l1 <- k + 1 - even.n + l2 <- n - k + even.n + c(if(l1 > 0) +- hsv(h = 6/12, s= seq.int(.5, ifelse(even.n,.5/k,0), length = l1), v = 1), ++ hsv(h = 6/12, s = seq.int(.5, ifelse(even.n,.5/k,0), length = l1), ++ v = 1, alpha = alpha), + if(l2 > 1) +- hsv(h = 10/12, s= seq.int(0, 0.5, length = l2)[-1], v = 1)) ++ hsv(h = 10/12, s = seq.int(0, 0.5, length = l2)[-1], ++ v = 1, alpha = alpha)) + } else character(0) + } + +-gray.colors <- ++gray.colors <- ## FIXME: add 'alpha = 1' + function(n, start = 0.3, end = 0.9, gamma = 2.2) + gray(seq.int(from = start^gamma, to = end^gamma, length = n)^(1/gamma)) + grey.colors <- gray.colors +diff -urp R-2.4.0.old/src/library/grDevices/src/devWindows.c R-2.4.0/src/library/grDevices/src/devWindows.c +--- R-2.4.0.old/src/library/grDevices/src/devWindows.c 2006-09-04 09:41:23.000000000 -0500 ++++ R-2.4.0/src/library/grDevices/src/devWindows.c 2006-10-28 14:35:56.000000000 -0500 +@@ -578,8 +578,7 @@ static char* translateFontFamily(char* f + /* 0 = plain text, 1 = bold */ + /* 2 = oblique, 3 = bold-oblique */ + +-#define SMALLEST 2 +-#define LARGEST 100 ++#define SMALLEST 1 + + static void SetFont(char *family, int face, int size, double rot, + NewDevDesc *dd) +@@ -590,7 +589,6 @@ static void SetFont(char *family, int fa + if (face < 1 || face > fontnum) + face = 1; + if (size < SMALLEST) size = SMALLEST; +- if (size > LARGEST) size = LARGEST; + if (!xd->usefixed && + (size != xd->fontsize || face != xd->fontface || + rot != xd->fontangle || strcmp(family, xd->fontfamily))) { +@@ -2564,9 +2562,8 @@ Rboolean GADeviceDriver(NewDevDesc *dd, + /* Font will load at first use */ + + ps = pointsize; +- if (ps < 6 || ps > 48) ++ if (ps < 1) + ps = 12; +- ps = 2 * (ps / 2); + xd->fontface = -1; + xd->fontsize = -1; + xd->basefontsize = ps ; +Binary files R-2.4.0.old/src/library/grid/inst/doc/displaylist.pdf and R-2.4.0/src/library/grid/inst/doc/displaylist.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/frame.pdf and R-2.4.0/src/library/grid/inst/doc/frame.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/grid.pdf and R-2.4.0/src/library/grid/inst/doc/grid.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/grobs.pdf and R-2.4.0/src/library/grid/inst/doc/grobs.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/interactive.pdf and R-2.4.0/src/library/grid/inst/doc/interactive.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/locndimn.pdf and R-2.4.0/src/library/grid/inst/doc/locndimn.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/moveline.pdf and R-2.4.0/src/library/grid/inst/doc/moveline.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/nonfinite.pdf and R-2.4.0/src/library/grid/inst/doc/nonfinite.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/plotexample.pdf and R-2.4.0/src/library/grid/inst/doc/plotexample.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/rotated.pdf and R-2.4.0/src/library/grid/inst/doc/rotated.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/saveload.pdf and R-2.4.0/src/library/grid/inst/doc/saveload.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/sharing.pdf and R-2.4.0/src/library/grid/inst/doc/sharing.pdf differ +Binary files R-2.4.0.old/src/library/grid/inst/doc/viewports.pdf and R-2.4.0/src/library/grid/inst/doc/viewports.pdf differ +diff -urp R-2.4.0.old/src/library/grid/man/viewport.Rd R-2.4.0/src/library/grid/man/viewport.Rd +--- R-2.4.0.old/src/library/grid/man/viewport.Rd 2006-04-09 17:19:12.000000000 -0500 ++++ R-2.4.0/src/library/grid/man/viewport.Rd 2006-10-28 14:35:53.000000000 -0500 +@@ -5,7 +5,7 @@ + \alias{vpTree} + \title{Create a Grid Viewport} + \description{ +- These functions create viewports, which describe a rectangular regions ++ These functions create viewports, which describe rectangular regions + on a graphics device and define a number of coordinate systems within + those regions. + } +diff -urp R-2.4.0.old/src/library/methods/man/MethodSupport.Rd R-2.4.0/src/library/methods/man/MethodSupport.Rd +--- R-2.4.0.old/src/library/methods/man/MethodSupport.Rd 2006-04-09 17:19:10.000000000 -0500 ++++ R-2.4.0/src/library/methods/man/MethodSupport.Rd 2006-11-02 19:41:45.000000000 -0600 +@@ -11,7 +11,7 @@ + \usage{ + getMethodsForDispatch(f, fdef) + +-cacheMethod(f, sig, def, args, fdef) ++cacheMethod(f, sig, def, args, fdef, inherited = FALSE) + + resetGeneric(f, fdef, mlist, where, deflt) + } +@@ -29,7 +29,8 @@ resetGeneric(f, fdef, mlist, where, defl + \item{\code{cacheMethod}:}{ + Store the definition for this function and signature in the method + metadata for the function. Used to store extensions of coerce +- methods found through inheritance. ++ methods found through inheritance, and to cache methods with ++ \code{\link{callNextMethod}} information. + + No persistent effect, since the method metadata is session-scope + only. +diff -urp R-2.4.0.old/src/library/methods/man/seemsS4Object.Rd R-2.4.0/src/library/methods/man/seemsS4Object.Rd +--- R-2.4.0.old/src/library/methods/man/seemsS4Object.Rd 2006-09-04 09:41:08.000000000 -0500 ++++ R-2.4.0/src/library/methods/man/seemsS4Object.Rd 2006-11-02 19:41:45.000000000 -0600 +@@ -2,8 +2,8 @@ + \alias{seemsS4Object} + \title{Heuristic test for an object from an S4 class} + \description{ +- Returns \code{TRUE} if \code{object} seems to have been generated from +- a formally defined (\dQuote{S4}) class. ++ Returns \code{TRUE} if \code{object} has been generated from ++ a formally defined (\dQuote{S4}) class. DEPRECATED: use isS4(object) instead. + } + \usage{ + seemsS4Object(object) +@@ -13,9 +13,13 @@ seemsS4Object(object) + } + \details{ + The \code{\link{class}} of the object is examined for the \code{"package"} +- attribute included when objects are generated from an S4 class. ++ attribute included when objects are generated from an S4 class. The ++ test in this function has been superseded by an internal bit set ++ when S4 objects are generated. + +- This test can be fooled in at least two ways: ++ The \code{seemsS4Object} function is deprecated and will be removed. ++ ++ The test can be fooled in at least two ways: + \enumerate{ + \item It will give \code{TRUE} incorrectly if someone puts a + \code{"package"} string attribute on the class of an S3 object. +diff -urp R-2.4.0.old/src/library/methods/R/as.R R-2.4.0/src/library/methods/R/as.R +--- R-2.4.0.old/src/library/methods/R/as.R 2006-09-09 21:05:02.000000000 -0500 ++++ R-2.4.0/src/library/methods/R/as.R 2006-11-02 19:41:45.000000000 -0600 +@@ -25,6 +25,7 @@ as <- + fdef = coerceFun, mlist = coerceMethods) + if(is.null(asMethod)) { + canCache <- TRUE ++ inherited <- FALSE + if(is(object, Class)) { + ClassDef <- getClassDef(Class, where) + ## use the ext information, computed or supplied +@@ -47,13 +48,17 @@ as <- + } + ## if none of these applies, look for an inherited method + ## but only on the from argument +- if(is.null(asMethod)) ++ if(is.null(asMethod)) { + asMethod <- selectMethod("coerce", sig, TRUE, + c(from = TRUE, to = FALSE), +- fdef = coerceFun, mlist = coerceMethods) ++ fdef = coerceFun, mlist = ++ coerceMethods) ++ inherited <- TRUE ++ } + ## cache in the coerce function's environment + if(canCache && !is.null(asMethod)) { +- cacheMethod("coerce", sig, asMethod, fdef = coerceFun) ++ cacheMethod("coerce", sig, asMethod, fdef = coerceFun, ++ inherited = inherited) + } + } + } +@@ -129,32 +134,36 @@ as <- + coerceMethods <- getMethodsForDispatch("coerce<-", coerceFun) + asMethod <- .quickCoerceSelect(thisClass, Class, coerceFun, coerceMethods) + if(is.null(asMethod)) { +- sig <- c(from=thisClass, to = Class) +- canCache <- TRUE +- asMethod <- selectMethod("coerce<-", sig, TRUE, FALSE, #optional, no inheritance +- fdef = coerceFun, mlist = coerceMethods) +- if(is.null(asMethod)) { +- if(is(object, Class)) { +- asMethod <- possibleExtends(thisClass, Class) +- if(identical(asMethod, TRUE)) {# trivial, probably identical classes +- class(value) <- class(object) +- return(value) +- } +- else { +- test <- asMethod@test +- asMethod <- asMethod@replace +- canCache <- (!is(test, "function")) || identical(body(test), TRUE) +- if(canCache) { ##the replace code is a bare function +- asMethod <- .asCoerceMethod(asMethod, sig, TRUE) ++ sig <- c(from=thisClass, to = Class) ++ canCache <- TRUE ++ inherited <- FALSE ++ asMethod <- selectMethod("coerce<-", sig, TRUE, FALSE, #optional, no inheritance ++ fdef = coerceFun, mlist = coerceMethods) ++ if(is.null(asMethod)) { ++ if(is(object, Class)) { ++ asMethod <- possibleExtends(thisClass, Class) ++ if(identical(asMethod, TRUE)) {# trivial, probably identical classes ++ class(value) <- class(object) ++ return(value) + } +- } +- } +- else +- asMethod <- selectMethod("coerce<-", sig, TRUE, c(from = TRUE, to = FALSE)) +- } ++ else { ++ test <- asMethod@test ++ asMethod <- asMethod@replace ++ canCache <- (!is(test, "function")) || identical(body(test), TRUE) ++ if(canCache) { ##the replace code is a bare function ++ asMethod <- .asCoerceMethod(asMethod, sig, TRUE) ++ } ++ } ++ } ++ else { # search for inherited method ++ asMethod <- selectMethod("coerce<-", sig, TRUE, c(from = TRUE, to = FALSE)) ++ inherited <- TRUE ++ } ++ } + ## cache for next call + if(canCache && !is.null(asMethod)) +- cacheMethod("coerce<-", sig, asMethod, fdef = coerceFun) ++ cacheMethod("coerce<-", sig, asMethod, fdef = coerceFun, ++ inherited = inherited) + } + if(is.null(asMethod)) + stop(gettextf("no method or default for as() replacement of \"%s\" with Class=\"%s\"", thisClass, Class), domain = NA) +diff -urp R-2.4.0.old/src/library/methods/R/is.R R-2.4.0/src/library/methods/R/is.R +--- R-2.4.0.old/src/library/methods/R/is.R 2006-09-17 21:05:04.000000000 -0500 ++++ R-2.4.0/src/library/methods/R/is.R 2006-10-28 14:35:53.000000000 -0500 +@@ -116,33 +116,25 @@ setIs <- + obj <- extensionObject + ## revise the superclass/subclass info in the stored class definition + .validExtends(class1, class2, classDef, classDef2, obj@simple) +- if(!classDef@sealed) { +- where1 <- findClass(class1, where)[[1]] +- if(!bindingIsLocked(m1, where1)) { +- ## the direct contains information +- elNamed(classDef@contains, class2) <- obj +- if(doComplete) +- classDef@contains <- completeExtends(classDef, class2, obj, where = where) +- assignClassDef(class1, classDef, where1) +- } +- } +- if(!classDef2@sealed) { +- where2 <- findClass(classDef2) +- if(length(where2) > 0) { +- where2 <- where2[[1]] +- if(!bindingIsLocked(m2, where2)) { +- elNamed(classDef2@subclasses, class1) <- obj +- if(doComplete) +- classDef2@subclasses <- completeSubclasses(classDef2, class1, obj, where) +- assignClassDef(class2, classDef2, where2) +- } +- .removePreviousCoerce(class1, class2, where, prevIs) +- } +- else +- stop(gettextf("Unable to find package environment for class \"%s\" to revise subclass information", class2)) ++ where2 <- findClass(classDef2) ++ if(length(where2) > 0) { ++ where2 <- where2[[1]] ++ elNamed(classDef2@subclasses, class1) <- obj ++ if(doComplete) ++ classDef2@subclasses <- completeSubclasses(classDef2, class1, obj, where) ++ assignClassDef(class2, classDef2, where2, TRUE) ++ .removePreviousCoerce(class1, class2, where, prevIs) + } ++ else ++ stop(gettextf("Unable to find package environment for class \"%s\" to revise subclass information", class2)) ++ where1 <- findClass(class1, where)[[1]] ++ ## the direct contains information ++ elNamed(classDef@contains, class2) <- obj ++ if(doComplete) ++ classDef@contains <- completeExtends(classDef, class2, obj, where = where) ++ assignClassDef(class1, classDef, where1, TRUE) + invisible(classDef) +-} ++ } + + .validExtends <- function(class1, class2, classDef1, classDef2, slotTests) { + .msg <- function(class1, class2) gettextf("class \"%s\" cannot extend class \"%s\"", class1, class2) +diff -urp R-2.4.0.old/src/library/methods/R/Methods.R R-2.4.0/src/library/methods/R/Methods.R +--- R-2.4.0.old/src/library/methods/R/Methods.R 2006-09-17 21:05:04.000000000 -0500 ++++ R-2.4.0/src/library/methods/R/Methods.R 2006-11-02 19:41:45.000000000 -0600 +@@ -81,6 +81,16 @@ setGeneric <- + } + if(doUncache) + .uncacheGeneric(name, oldDef) ++ groups = fdef@group ++ for(group in groups) { # add as member of group generic(s) if not there ++ gdef <- getGeneric(group) ++ if(is(gdef, "groupGenericFunction") && ++ is.na(match(fdef@generic, as.character(gdef@groupMembers)))) { ++ gwhere <- .genEnv(group, where) ++ gdef@groupMembers <- c(gdef@groupMembers, list(fdef@generic)) ++ assign(group, gdef, gwhere) ++ } ++ } + assign(name, fdef, where) + .cacheGeneric(name, fdef) + if(!.UsingMethodsTables() && +@@ -265,10 +275,18 @@ getMethodsForDispatch <- function(f, fde + cacheMethod <- + ## cache the given definition in the method metadata for f + ## Support function: DON'T USE DIRECTLY (does no checking) +- function(f, sig, def, args = names(sig), fdef) { ++ function(f, sig, def, args = names(sig), fdef, inherited = FALSE) { + ev <- environment(fdef) +- if(.UsingMethodsTables()) +- .cacheMethodInTable(fdef, sig, def, .getMethodsTable(fdef, ev)) ++ if(.UsingMethodsTables()) { ++ .cacheMethodInTable(fdef, sig, def, ++ .getMethodsTable(fdef, ev, inherited = inherited)) ++ ## if this is not an inherited method, update the inherited table as well ++ ## TODO: in this case, should uncache inherited methods, though the callin ++ ## function will normally have done this. ++ if(!inherited) ++ .cacheMethodInTable(fdef, sig, def, ++ .getMethodsTable(fdef, ev, inherited = TRUE)) ++ } + else { + methods <- get(".Methods", envir = ev) + methods <- insertMethod(methods, sig, args, def, TRUE) +@@ -280,6 +298,9 @@ cacheMethod <- + } + } + ++.removeCachedMethod <- function(f, sig, fdef = getGeneric(f)) ++ cacheMethod(f, sig, NULL, names(sig), fdef) ++ + + setMethod <- + ## Define a method for the specified combination of generic function and signature. +diff -urp R-2.4.0.old/src/library/methods/R/methodsTable.R R-2.4.0/src/library/methods/R/methodsTable.R +--- R-2.4.0.old/src/library/methods/R/methodsTable.R 2006-09-13 21:05:02.000000000 -0500 ++++ R-2.4.0/src/library/methods/R/methodsTable.R 2006-11-02 19:41:45.000000000 -0600 +@@ -1,5 +1,3 @@ +-options(error=traceback, warn = 1) +- + ### merge version called from namespace imports code. Hope to avoid using generic + .mergeMethodsTable2 <- function(table, newtable, envir, metaname) { + old <- objects(table, all=TRUE) +@@ -138,7 +136,7 @@ options(error=traceback, warn = 1) + ## also Called from cacheMethod (from as(), + ## as<-()) + fenv <- environment(fdef) +- if(!exists(".AllMTable", envir = fenv, inherits = TRUE)) ++ if(!exists(".AllMTable", envir = fenv, inherits = FALSE)) + .setupMethodsTables(fdef) + sig <- .matchSigLength(sig, fdef, fenv, TRUE) + label <- .sigLabel(sig) +@@ -407,15 +405,31 @@ options(error=traceback, warn = 1) + mlist <- generic@default + else + mlist <- get(".Methods", envir = env, inherits = FALSE) +- if(initialize || !exists(".SigLength", envir = env, inherits = FALSE)) +- assign(".SigLength", 1, envir = env) +- ## check that groups of generics agree on .SigLength; otherwise +- ## labels won't match ++ if(initialize || !exists(".SigLength", envir = env, inherits = FALSE)) { ++ nsig <- 1 ++ ## check that groups of generics agree on .SigLength; otherwise ++ ## labels won't match ++ for(gp in generic@group) { ++ gpDef <- getGeneric(gp) ++ if(is(gpDef, "genericFunction")) { ++ .getMethodsTable(gpDef) # force initialization ++ nsig <- max(nsig, get(".SigLength", envir = environment(gpDef))) ++ } ++ } ++ assign(".SigLength", nsig, envir = env) ++ } + argSyms <- lapply(generic@signature, as.name) + assign(".SigArgs", argSyms, envir = env) + mtable <- .mlistAddToTable(generic, mlist) + assign(".MTable", mtable, envir = env) + .resetInheritedMethods(env, mtable) ++ if(is(generic, "groupGenericFunction")) { ++ for(gp in generic@groupMembers) { ++ gpDef <- getGeneric(gp) ++ if(is(gpDef, "genericFunction")) ++ .getMethodsTable(gpDef) # force initialization w. group methods ++ } ++ } + } + + .updateMethodsInTable <- function(generic, where, attach) { +diff -urp R-2.4.0.old/src/library/methods/R/NextMethod.R R-2.4.0/src/library/methods/R/NextMethod.R +--- R-2.4.0.old/src/library/methods/R/NextMethod.R 2006-09-17 21:05:04.000000000 -0500 ++++ R-2.4.0/src/library/methods/R/NextMethod.R 2006-11-02 19:41:45.000000000 -0600 +@@ -96,7 +96,7 @@ callNextMethod <- function(...) { + method <- addNextMethod(method, f, envir=methodEnv) + ## cache the method with the nextMethod included, + ## so later calls will load this information. +- cacheMethod(f, method@target, method, fdef = getGeneric(f)) ++ cacheMethod(f, method@target, method, fdef = getGeneric(f), inherited = TRUE) + } + nextMethod <- method@nextMethod + assign(".nextMethod", nextMethod, envir = callEnv) +diff -urp R-2.4.0.old/src/library/methods/R/RClassUtils.R R-2.4.0/src/library/methods/R/RClassUtils.R +--- R-2.4.0.old/src/library/methods/R/RClassUtils.R 2006-09-17 21:05:04.000000000 -0500 ++++ R-2.4.0/src/library/methods/R/RClassUtils.R 2006-10-28 14:35:53.000000000 -0500 +@@ -412,7 +412,7 @@ isVirtualClass <- + + assignClassDef <- + ## assign the definition of the class to the specially named object +- function(Class, def, where = .GlobalEnv) { ++ function(Class, def, where = .GlobalEnv, force = FALSE) { + if(!is(def,"classRepresentation")) + stop(gettextf("trying to assign an object of class \"%s\" as the definition of class \"%s\": must supply a \"classRepresentation\" object", + class(def), Class), domain = NA) +@@ -420,8 +420,18 @@ assignClassDef <- + if(!.identC(Class, clName)) + stop(gettextf("assigning as \"%s\" a class representation with internal name \"%s\"", + Class, def@className), domain = NA) ++ where <- as.environment(where) ++ mname <- classMetaName(Class) ++ if(exists(mname, envir = where, inherits = FALSE) && bindingIsLocked(mname, where)) { ++ if(force) ++ .assignOverBinding(mname, def, where, FALSE) ++ else ++ stop(gettextf("Class \"%s\" has a locked definition in package \"%s\"", ++ Class, getPackageName(where))) ++ } ++ else ++ assign(mname, def, where) + .cacheClass(clName, def) +- assign(classMetaName(Class), def, where) + } + + +@@ -1445,13 +1455,13 @@ substituteFunctionArgs <- function(def, + + ## bootstrap version: all classes and methods must be in the version of the methods + ## package being built in the toplevel environment: MUST avoid require("methods") ! +-.requirePackage <- function(package) ++.requirePackage <- function(package, mustFind = TRUE) + topenv(parent.frame()) + + .PackageEnvironments <- new.env(hash=TRUE) # caching for required packages + + ## real version of .requirePackage +-..requirePackage <- function(package) { ++..requirePackage <- function(package, mustFind = TRUE) { + value <- package + if(is.character(package)) { + if(package %in% loadedNamespaces()) +@@ -1473,9 +1483,13 @@ substituteFunctionArgs <- function(def, + if(exists(".packageName", topEnv, inherits=TRUE) && + .identC(package, get(".packageName", topEnv))) + return(topEnv) # kludge for source'ing package code +- if(!require(package, character.only = TRUE)) +- stop(gettextf("unable to find required package \"%s\"", package), +- domain = NA) ++ if(!require(package, character.only = TRUE)) { ++ if(mustFind) ++ stop(gettextf("unable to find required package \"%s\"", package), ++ domain = NA) ++ else ++ return(NULL) ++ } + value <- .asEnvironmentPackage(package) + assign(package, value, envir = .PackageEnvironments) + value +@@ -1662,3 +1676,27 @@ substituteFunctionArgs <- function(def, + } + } + ++.removeSubClass <- function(class, subclass, where) { ++ mname <- classMetaName(class) ++ where <- as.environment(where) ++ if(exists(mname, envir = where, inherits = FALSE)) { ++ cdef <- get(mname, envir = where) ++ subclasses <- cdef@subclasses ++ ii <- match(subclass, names(subclasses), 0) ++ ## the subclass may not be there, e.g., if an error occured in ++ ## setClass, or (in 2.4.0) if class is sealed ++ if(ii > 0) { ++ cdef@subclasses <- subclasses[-ii] ++ assign(mname, cdef, envir = where) ++ } ++ sig <- signature(from=subclass, to=class) ++ if(existsMethod("coerce", sig)) ++ .removeCachedMethod("coerce", sig) ++ if(existsMethod("coerce<-", sig)) ++ .removeCachedMethod("coerce<-", sig) ++ .uncacheClass(class, cdef) ++ } ++ else ++ warning(gettextf("No class \"%s\" found as expected in removing subclass \"%s\"", ++ class, subclass)) ++} +diff -urp R-2.4.0.old/src/library/methods/R/RMethodUtils.R R-2.4.0/src/library/methods/R/RMethodUtils.R +--- R-2.4.0.old/src/library/methods/R/RMethodUtils.R 2006-09-17 21:05:04.000000000 -0500 ++++ R-2.4.0/src/library/methods/R/RMethodUtils.R 2006-10-28 14:35:53.000000000 -0500 +@@ -392,6 +392,7 @@ rematchDefinition <- function(definition + newCall <- as.call(newCall) + newBody <- substitute({.local <- DEF; NEWCALL}, + list(DEF = definition, NEWCALL = newCall)) ++ generic <- .copyMethodDefaults(generic, definition) + body(generic, envir = environment(definition)) <- newBody + generic + } +@@ -464,6 +465,12 @@ getGeneric <- + .cacheGeneric(f, value) + } + } ++ if(is.null(value) && nchar(package)>0 && !identical(package, "base")) { ++ env <- .requirePackage(package, FALSE) ++ if(is.environment(env)) ++ value <- .Call("R_getGeneric", f, FALSE, env, package, ++ PACKAGE = "methods") ++ } + value + } + +@@ -1375,3 +1382,25 @@ deletePrimMethods <- function(f, env) { + + .primname <- function(object) + .Call("R_get_primname", object, PACKAGE = "base") ++ ++.copyMethodDefaults <- function(generic, method) { ++ emptyDefault <- function(value) missing(value) || (is.name(value) && (nchar(as.character(value))>0)) ++ fg <- formals(generic) ++ mg <- formals(method) ++ mgn <- names(mg) ++ changed <- FALSE ++ for(what in names(fg)) { ++ i <- match(what, mgn, 0) ++ if(i> 0) { ++ deflt <- mg[[i]] ++ if(!(emptyDefault(deflt) || identical(deflt, fg[[what]]))) { ++ fg[[what]] <- deflt ++ changed <- TRUE ++ } ++ } ++ } ++ if(changed) ++ formals(generic) <- fg ++ generic ++} ++ +diff -urp R-2.4.0.old/src/library/methods/R/SClasses.R R-2.4.0/src/library/methods/R/SClasses.R +--- R-2.4.0.old/src/library/methods/R/SClasses.R 2006-09-17 21:05:04.000000000 -0500 ++++ R-2.4.0/src/library/methods/R/SClasses.R 2006-10-28 14:35:53.000000000 -0500 +@@ -309,6 +309,19 @@ removeClass <- function(Class, where = + "\") has defined subclasses that should also be removed: (", + paste(as.character(subclasses[found]), collapse = ", "), ")") + } ++ if(length(classDef@contains)>0) { ++ superclasses <- names(classDef@contains) ++ for(what in superclasses) { ++ superWhere <- findClass(what, classWhere) ++ if(length(superWhere)>0) { ++ superWhere <- superWhere[[1]] ++ .removeSubClass(what, Class, superWhere) ++ } ++ else ++ warning(gettextf("Couldn't find superclass \"%s\" to clean up when removing class \"%s\"", ++ what, Class)) ++ } ++ } + .uncacheClass(Class, classDef) + .undefineMethod("initialize", Class, classWhere) + what <- classMetaName(Class) +Only in R-2.4.0/src/library/Recommended: lattice_0.14-12.tar.gz +Only in R-2.4.0.old/src/library/Recommended: lattice_0.14-9.tar.gz +Binary files R-2.4.0.old/src/library/Recommended/lattice.tgz and R-2.4.0/src/library/Recommended/lattice.tgz differ +Only in R-2.4.0.old/src/library/Recommended: mgcv_1.3-19.tar.gz +Only in R-2.4.0/src/library/Recommended: mgcv_1.3-20.tar.gz +Binary files R-2.4.0.old/src/library/Recommended/mgcv.tgz and R-2.4.0/src/library/Recommended/mgcv.tgz differ +diff -urp R-2.4.0.old/src/library/stats/man/lowess.Rd R-2.4.0/src/library/stats/man/lowess.Rd +--- R-2.4.0.old/src/library/stats/man/lowess.Rd 2006-04-09 17:19:48.000000000 -0500 ++++ R-2.4.0/src/library/stats/man/lowess.Rd 2006-10-28 14:35:57.000000000 -0500 +@@ -1,5 +1,10 @@ + \name{lowess} + \title{Scatter Plot Smoothing} ++\description{ ++ This function performs the computations for the ++ \emph{LOWESS} smoother which uses locally-weighted polynomial ++ regression (see the references). ++} + \usage{ + lowess(x, y = NULL, f = 2/3, iter = 3, + delta = 0.01 * diff(range(xy$x[o]))) +@@ -11,20 +16,40 @@ lowess(x, y = NULL, f = 2/3, iter = 3, + \item{f}{the smoother span. This gives the proportion of points in + the plot which influence the smooth at each value. + Larger values give more smoothness.} +- \item{iter}{the number of robustifying iterations which should be ++ \item{iter}{the number of \sQuote{robustifying} iterations which should be + performed. + Using smaller values of \code{iter} will make \code{lowess} run faster.} +- \item{delta}{values of \code{x} which lie within \code{delta} +- of each other are replaced by a single value in the output from +- \code{lowess}. Defaults to 1/100th of the range of \code{x}.} ++ \item{delta}{See Details. Defaults to 1/100th of the range of \code{x}.} + } +-\description{ +- This function performs the computations for the +- \emph{LOWESS} smoother (see the reference below). ++\details{ ++ \code{lowess} is defined by a complex algorithm, the Ratfor original ++ of which (by W. S. Cleveland) can be found in the \R sources as file ++ \file{src/appl/lowess.doc}. Normally a local linear polynomial fit is ++ used, but under some circumstances (see the file) a local constant fit ++ can be used. \sQuote{Local} is defined by the distance to the ++ \code{floor(f*n)}th nearest neighbour, and tricubic weighting is used ++ for \code{x} which fall within the neighbourhood. ++ ++ The initial fit is done using weighted least squares. If ++ \code{iter > 0}, further weighted fits are done using the product of ++ the weights from the proximity of the \code{x} values and case weights ++ derived from the residuals at the previous iteration. Specifically, ++ the case weight is Tukey's biweight, with cutoff 6 times the MAD of the ++ residuals. (The current \R implementation differs from the original ++ in stopping iteration if the MAD is effectively zero since the ++ algorithm is highly unstable in that case.) ++ ++ \code{delta} is used to speed up computation: instead of computing the ++ local polynomial fit at each data point it is not computed for points ++ within \code{delta} of the last computed point, and linear ++ interpolation is used to fill in the fitted values for the skipped ++ points. ++} ++\value{ + \code{lowess} returns a list containing components + \code{x} and \code{y} which give the coordinates of the smooth. +- The smooth should be added to a plot of the original +- points with the function \code{lines}. ++ The smooth can be added to a plot of the original ++ points with the function \code{lines}: see the examples. + } + \references{ + Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) +diff -urp R-2.4.0.old/src/library/stats/man/prcomp.Rd R-2.4.0/src/library/stats/man/prcomp.Rd +--- R-2.4.0.old/src/library/stats/man/prcomp.Rd 2006-05-18 04:13:52.000000000 -0500 ++++ R-2.4.0/src/library/stats/man/prcomp.Rd 2006-10-30 10:45:48.000000000 -0600 +@@ -91,7 +91,7 @@ prcomp(x, \dots) + (centered and possibly scaled) data matrix, not by using + \code{eigen} on the covariance matrix. This + is generally the preferred method for numerical accuracy. The +- \code{print} method for the these objects prints the results in a nice ++ \code{print} method for these objects prints the results in a nice + format and the \code{plot} method produces a scree plot. + + Note that \code{scale = TRUE} cannot be used if there are zero or +diff -urp R-2.4.0.old/src/library/stats/man/princomp.Rd R-2.4.0/src/library/stats/man/princomp.Rd +--- R-2.4.0.old/src/library/stats/man/princomp.Rd 2006-05-18 04:13:52.000000000 -0500 ++++ R-2.4.0/src/library/stats/man/princomp.Rd 2006-10-30 10:45:48.000000000 -0600 +@@ -91,7 +91,7 @@ princomp(x, \dots) + Note that the default calculation uses divisor \code{N} for the + covariance matrix. + +- The \code{\link{print}} method for the these objects prints the ++ The \code{\link{print}} method for these objects prints the + results in a nice format and the \code{\link{plot}} method produces + a scree plot (\code{\link{screeplot}}). There is also a + \code{\link{biplot}} method. +diff -urp R-2.4.0.old/src/library/stats/man/ts.Rd R-2.4.0/src/library/stats/man/ts.Rd +--- R-2.4.0.old/src/library/stats/man/ts.Rd 2006-09-04 09:41:28.000000000 -0500 ++++ R-2.4.0/src/library/stats/man/ts.Rd 2006-10-28 14:35:57.000000000 -0500 +@@ -53,7 +53,7 @@ is.ts(x) + attributes) which represent data which has been sampled at equispaced + points in time. In the matrix case, each column of the matrix + \code{data} is assumed to contain a single (univariate) time series. +- Time series must have an least one observation, and although they need ++ Time series must have at least one observation, and although they need + not be numeric there is very limited support for non-numeric series. + + Class \code{"ts"} has a number of methods. In particular arithmetic +diff -urp R-2.4.0.old/src/library/stats/R/add.R R-2.4.0/src/library/stats/R/add.R +--- R-2.4.0.old/src/library/stats/R/add.R 2006-09-06 21:05:05.000000000 -0500 ++++ R-2.4.0/src/library/stats/R/add.R 2006-10-28 14:35:56.000000000 -0500 +@@ -112,7 +112,8 @@ add1.lm <- function(object, scope, scale + z <- if(iswt) lm.wfit(X, y, wt, offset=offset) + else lm.fit(X, y, offset=offset) + dfs[1] <- z$rank +- RSS[1] <- deviance.lm(z) ++ class(z) <- "lm" # needed as deviance.lm calls generic residuals() ++ RSS[1] <- deviance(z) + ## workaround for PR#7842. terms.formula may have flipped interactions + sTerms <- sapply(strsplit(Terms, ":", fixed=TRUE), + function(x) paste(sort(x), collapse=":")) +@@ -122,8 +123,9 @@ add1.lm <- function(object, scope, scale + X <- x[, usex|ousex, drop = FALSE] + z <- if(iswt) lm.wfit(X, y, wt, offset=offset) + else lm.fit(X, y, offset=offset) ++ class(z) <- "lm" # needed as deviance.lm calls generic residuals() + dfs[tt] <- z$rank +- RSS[tt] <- deviance.lm(z) ++ RSS[tt] <- deviance(z) + } + if(scale > 0) aic <- RSS/scale - n + k*dfs + else aic <- n * log(RSS/n) + k*dfs +diff -urp R-2.4.0.old/src/library/stats4/R/mle.R R-2.4.0/src/library/stats4/R/mle.R +--- R-2.4.0.old/src/library/stats4/R/mle.R 2006-04-09 17:19:08.000000000 -0500 ++++ R-2.4.0/src/library/stats4/R/mle.R 2006-10-28 14:35:52.000000000 -0500 +@@ -33,6 +33,7 @@ mle <- function(minuslogl, start=formals + if (any(is.na(oo))) + stop("some named arguments in 'start' are not arguments to the supplied log-likelihood") + start <- start[order(oo)] ++ nm <- names(start) ## reordered names needed + f <- function(p){ + l <- as.list(p) + names(l) <- nm +diff -urp R-2.4.0.old/src/library/tcltk/man/tcltk-package.Rd R-2.4.0/src/library/tcltk/man/tcltk-package.Rd +--- R-2.4.0.old/src/library/tcltk/man/tcltk-package.Rd 2006-04-09 17:19:08.000000000 -0500 ++++ R-2.4.0/src/library/tcltk/man/tcltk-package.Rd 2006-10-28 14:35:52.000000000 -0500 +@@ -16,7 +16,7 @@ and references in those files for more. + + The Tcl/Tk documentation is in + #ifdef windows +-\code{R_HOME/Tcl/doc}. ++\file{\link{R_HOME}/Tcl/doc}. + #endif + #ifdef unix + the system man pages. +@@ -27,7 +27,7 @@ For a complete list of functions, use \c + #ifdef unix + Note that Tk will not be initialized if there is no \code{DISPLAY} + variable set, but Tcl can still be used. This is most useful to allow +-the loading of a package which depends on \pkg{TclTk} in a session that ++the loading of a package which depends on \pkg{tcltk} in a session that + does not actually use it (e.g. during installation). + #endif + } +diff -urp R-2.4.0.old/src/library/utils/man/unix/RHOME.Rd R-2.4.0/src/library/utils/man/unix/RHOME.Rd +--- R-2.4.0.old/src/library/utils/man/unix/RHOME.Rd 2006-04-09 17:19:06.000000000 -0500 ++++ R-2.4.0/src/library/utils/man/unix/RHOME.Rd 2006-10-28 14:35:52.000000000 -0500 +@@ -1,6 +1,5 @@ + \name{RHOME} + \alias{RHOME} +-\alias{R_HOME} + \title{R Home Directory} + \description{ + Returns the location of the \R home directory, which is the root of +diff -urp R-2.4.0.old/src/library/utils/man/windows/clipboard.Rd R-2.4.0/src/library/utils/man/windows/clipboard.Rd +--- R-2.4.0.old/src/library/utils/man/windows/clipboard.Rd 2006-04-09 17:19:05.000000000 -0500 ++++ R-2.4.0/src/library/utils/man/windows/clipboard.Rd 2006-11-01 19:41:41.000000000 -0600 +@@ -2,6 +2,7 @@ + \alias{getClipboardFormats} + \alias{readClipboard} + \alias{writeClipboard} ++\alias{clipboard} + \title{Read/Write to/from the Windows Clipboard} + \description{ + Transfer text between a character vector and the Windows clipboard. +@@ -18,8 +19,10 @@ writeClipboard(str, format = 1) + } + \value{ + For \code{getClipboardFormats}, an integer vector of available formats. ++ + For \code{readClipboard}, a character vector by default, a raw vector if \code{raw} is + \code{TRUE}, or \code{NULL}, if the format is unavailable. ++ + For \code{writeClipboard} an invisible logical indicating success or failure. + } + \details{ +diff -urp R-2.4.0.old/src/library/utils/R/question.R R-2.4.0/src/library/utils/R/question.R +--- R-2.4.0.old/src/library/utils/R/question.R 2006-04-09 17:19:05.000000000 -0500 ++++ R-2.4.0/src/library/utils/R/question.R 2006-10-28 14:35:51.000000000 -0500 +@@ -79,12 +79,10 @@ topicName <- function(type, topic) + stop(gettextf("error in trying to evaluate the expression for argument '%s' (%s)", + arg, deparse(argExpr)), + domain = NA) +- methods::"elNamed<-"(sigClasses, arg, +- class(argVal)) ++ sigClasses[[arg]] <- class(argVal) + } + else +- methods::"elNamed<-"(sigClasses, arg, +- as.character(argExpr)) ++ sigClasses[[arg]] <- as.character(argExpr) + } + } + method <- methods::selectMethod(f, sigClasses, optional=TRUE, +diff -urp R-2.4.0.old/src/library/utils/R/str.R R-2.4.0/src/library/utils/R/str.R +--- R-2.4.0.old/src/library/utils/R/str.R 2006-09-18 21:05:14.000000000 -0500 ++++ R-2.4.0/src/library/utils/R/str.R 2006-11-03 19:41:46.000000000 -0600 +@@ -103,14 +103,11 @@ str.default <- + mod <- ""; char.like <- FALSE + if(give.attr) a <- attributes(object)#-- save for later... + +- if(is.function(object)) { +- cat(if(is.null(ao <- args(object))) deparse(object) +- else { dp <- deparse(ao); paste(dp[-length(dp)], collapse="\n") },"\n") +- } else if (is.null(object)) ++ if (is.null(object)) + cat(" NULL\n") + else if(S4) { + a <- sapply(methods::.slotNames(object), methods::slot, +- object=object, simplify = FALSE) ++ object=object, simplify = FALSE) + cat("Formal class", " '", paste(cl, collapse = "', '"), + "' [package \"", attr(cl,"package"), "\"] with ", + length(a)," slots\n", sep="") +@@ -120,7 +117,10 @@ str.default <- + nchar.max = nchar.max, give.attr = give.attr, width=width) + return(invisible()) + } +- else if(is.list(object)) { ++ else if(is.function(object)) { ++ cat(if(is.null(ao <- args(object))) deparse(object) ++ else { dp <- deparse(ao); paste(dp[-length(dp)], collapse="\n") },"\n") ++ } else if(is.list(object)) { + i.pl <- is.pairlist(object) + is.d.f <- is.data.frame(object) + ##?if(is.d.f) std.attr <- c(std.attr, "class", if(is.d.f) "row.names") +diff -urp R-2.4.0.old/src/main/character.c R-2.4.0/src/main/character.c +--- R-2.4.0.old/src/main/character.c 2006-09-04 09:41:33.000000000 -0500 ++++ R-2.4.0/src/main/character.c 2006-10-28 14:35:58.000000000 -0500 +@@ -718,6 +718,8 @@ SEXP attribute_hidden do_abbrev(SEXP cal + SET_STRING_ELT(ans, i, NA_STRING); + else { + warn = warn | !utf8strIsASCII(CHAR(STRING_ELT(x, i))); ++ if(strlen(CHAR(STRING_ELT(x, i))) >= MAXELTSIZE) ++ errorcall(call, "element %d is too long", i+1); + SET_STRING_ELT(ans, i, + stripchars(STRING_ELT(x, i), minlen)); + } +diff -urp R-2.4.0.old/src/main/CommandLineArgs.c R-2.4.0/src/main/CommandLineArgs.c +--- R-2.4.0.old/src/main/CommandLineArgs.c 2006-09-04 09:41:33.000000000 -0500 ++++ R-2.4.0/src/main/CommandLineArgs.c 2006-10-29 10:45:43.000000000 -0600 +@@ -85,6 +85,10 @@ do_commandArgs(SEXP call, SEXP op, SEXP + return vals; + } + ++#ifdef Win32 ++extern int R_LoadRconsole; ++#endif ++ + void + R_common_command_line(int *pac, char **argv, Rstart Rp) + { +@@ -141,6 +145,9 @@ R_common_command_line(int *pac, char **a + Rp->LoadInitFile = FALSE; /* --no-init-file */ + R_RestoreHistory = 0; /* --no-restore-history */ + Rp->NoRenviron = TRUE; ++#ifdef Win32 ++ R_LoadRconsole = 0; ++#endif + } + else if (!strcmp(*av, "--no-environ")) { + Rp->NoRenviron = TRUE; +@@ -174,6 +181,11 @@ R_common_command_line(int *pac, char **a + R_StdinEnc[30] = '\0'; + } + } ++#ifdef Win32 ++ else if (!strcmp(*av, "--no-Rconsole")) { ++ R_LoadRconsole = 0; ++ } ++#endif + else if (!strcmp(*av, "-save") || + !strcmp(*av, "-nosave") || + !strcmp(*av, "-restore") || +diff -urp R-2.4.0.old/src/main/connections.c R-2.4.0/src/main/connections.c +--- R-2.4.0.old/src/main/connections.c 2006-09-13 21:05:06.000000000 -0500 ++++ R-2.4.0/src/main/connections.c 2006-10-28 14:35:57.000000000 -0500 +@@ -1177,7 +1177,7 @@ SEXP attribute_hidden do_gzfile(SEXP cal + PROTECT(ans = allocVector(INTSXP, 1)); + INTEGER(ans)[0] = ncon; + PROTECT(class = allocVector(STRSXP, 2)); +- SET_STRING_ELT(class, 0, mkChar("file")); ++ SET_STRING_ELT(class, 0, mkChar("gzfile")); + SET_STRING_ELT(class, 1, mkChar("connection")); + classgets(ans, class); + UNPROTECT(2); +diff -urp R-2.4.0.old/src/main/deparse.c R-2.4.0/src/main/deparse.c +--- R-2.4.0.old/src/main/deparse.c 2006-09-11 21:05:02.000000000 -0500 ++++ R-2.4.0/src/main/deparse.c 2006-11-03 19:41:47.000000000 -0600 +@@ -245,6 +245,7 @@ static SEXP deparse1WithCutoff(SEXP call + if (abbrev) { + char data[14]; + strncpy(data, CHAR(STRING_ELT(svec, 0)), 10); ++ data[10] = '\0'; + if (strlen(CHAR(STRING_ELT(svec, 0))) > 10) strcat(data, "..."); + svec = mkString(data); + } else if(R_BrowseLines > 0 && +diff -urp R-2.4.0.old/src/main/plot3d.c R-2.4.0/src/main/plot3d.c +--- R-2.4.0.old/src/main/plot3d.c 2006-09-07 21:05:22.000000000 -0500 ++++ R-2.4.0/src/main/plot3d.c 2006-10-28 14:35:58.000000000 -0500 +@@ -1475,6 +1475,7 @@ SEXP attribute_hidden do_contour(SEXP ca + warning(_("all z values are equal")); + else + warning(_("all z values are NA")); ++ UNPROTECT(4); + return R_NilValue; + } + +diff -urp R-2.4.0.old/src/main/saveload.c R-2.4.0/src/main/saveload.c +--- R-2.4.0.old/src/main/saveload.c 2006-09-25 21:05:07.000000000 -0500 ++++ R-2.4.0/src/main/saveload.c 2006-10-28 14:35:58.000000000 -0500 +@@ -2358,6 +2358,7 @@ SEXP attribute_hidden do_loadFromConn2(S + PROTECT(res = RestoreToEnv(R_Unserialize(&in), aenv)); + if (wasopen) { + endcontext(&cntxt); ++ } else { + con->close(con); + } + UNPROTECT(1); +diff -urp R-2.4.0.old/src/main/subscript.c R-2.4.0/src/main/subscript.c +--- R-2.4.0.old/src/main/subscript.c 2006-09-04 09:41:33.000000000 -0500 ++++ R-2.4.0/src/main/subscript.c 2006-10-28 14:35:58.000000000 -0500 +@@ -369,7 +369,8 @@ static SEXP stringSubscript(SEXP s, int + int i, j, nnames, sub, extra; + int canstretch = *stretch; + #ifdef USE_HASHING +- Rboolean usehashing = in && (ns * nx > 1000); ++ /* product may overflow, so check factors as well. */ ++ Rboolean usehashing = in && ( (ns > 1000 && nx) || (nx > 1000 && ns) || (ns * nx > 1000) ); + #else + Rboolean usehashing = FALSE; + #endif +diff -urp R-2.4.0.old/src/main/sysutils.c R-2.4.0/src/main/sysutils.c +--- R-2.4.0.old/src/main/sysutils.c 2006-09-07 21:05:22.000000000 -0500 ++++ R-2.4.0/src/main/sysutils.c 2006-10-31 19:41:45.000000000 -0600 +@@ -170,6 +170,7 @@ FILE *R_popen(char *command, char *type) + #ifdef __APPLE_CC__ + /* Luke recommends this to fix PR#1140 */ + sigset_t ss; ++ sigemptyset(&ss); + sigaddset(&ss, SIGPROF); + sigprocmask(SIG_BLOCK, &ss, NULL); + fp = popen(command, type); +@@ -187,6 +188,7 @@ int R_system(char *command) + #ifdef __APPLE_CC__ + /* Luke recommends this to fix PR#1140 */ + sigset_t ss; ++ sigemptyset(&ss); + sigaddset(&ss, SIGPROF); + sigprocmask(SIG_BLOCK, &ss, NULL); + #ifdef HAVE_AQUA +diff -urp R-2.4.0.old/src/modules/X11/dataentry.c R-2.4.0/src/modules/X11/dataentry.c +--- R-2.4.0.old/src/modules/X11/dataentry.c 2006-09-04 09:41:34.000000000 -0500 ++++ R-2.4.0/src/modules/X11/dataentry.c 2006-10-28 14:35:58.000000000 -0500 +@@ -1046,7 +1046,7 @@ static void printstring(char *ibuf, int + for(j=0;*(wcspc+j)!=L'\0';j++)wcs[j]=*(wcspc+j); + wcs[j]=L'\0'; + w_p=wcs; +- cnt=wcsrtombs(s,(const wchar_t **)&w_p,sizeof(wcs),NULL); ++ cnt=wcsrtombs(s,(const wchar_t **)&w_p,sizeof(s)-1,NULL); + s[cnt]='\0'; + if (textwidth(s, strlen(s)) < (bw - text_offset)) break; + *(++wcspc) = L'<'; +@@ -1056,7 +1056,7 @@ static void printstring(char *ibuf, int + for(j=0;*(wcspc+j)!=L'\0';j++)wcs[j]=*(wcspc+j); + wcs[j]=L'\0'; + w_p=wcs; +- cnt=wcsrtombs(s,(const wchar_t **)&w_p,sizeof(wcs),NULL); ++ cnt=wcsrtombs(s,(const wchar_t **)&w_p,sizeof(s)-1,NULL); + s[cnt]='\0'; + if (textwidth(s, strlen(s)) < (bw - text_offset)) break; + *(wcspbuf + i - 2) = L'>'; +@@ -1066,7 +1066,7 @@ static void printstring(char *ibuf, int + for(j=0;*(wcspc+j)!=L'\0';j++) wcs[j]=*(wcspc+j); + wcs[j]=L'\0'; + w_p=wcs; +- cnt=wcsrtombs(s,(const wchar_t **)&w_p,sizeof(wcs),NULL); ++ cnt=wcsrtombs(s,(const wchar_t **)&w_p,sizeof(s)-1,NULL); + + drawtext(x_pos + text_offset, y_pos + box_h - text_offset, s, cnt); + +@@ -2398,6 +2398,7 @@ static int last_wchar_bytes(char *str) + int cnt; + char last_mbs[8]; + char *mbs; ++ size_t bytes; + + mbs = (str == NULL) ? buf : str; + +@@ -2411,8 +2412,8 @@ static int last_wchar_bytes(char *str) + if(wcs[0] == L'\0') return 0; + + memset(last_mbs, 0, sizeof(last_mbs)); +- wcrtomb(last_mbs, wcs[cnt-1], &mb_st); +- return(strlen(last_mbs)); ++ bytes=wcrtomb(last_mbs, wcs[cnt-1], &mb_st); /* -Wall */ ++ return(bytes); + #else + return(1); + #endif +diff -urp R-2.4.0.old/src/modules/X11/rotated.c R-2.4.0/src/modules/X11/rotated.c +--- R-2.4.0.old/src/modules/X11/rotated.c 2006-04-09 17:19:54.000000000 -0500 ++++ R-2.4.0/src/modules/X11/rotated.c 2006-10-28 14:35:58.000000000 -0500 +@@ -2285,7 +2285,8 @@ static RotatedTextItem + /* where abouts does text actually lie in rotated image? */ + /* check angle within 0.5 degrees (0.008 radians) */ + if(fabs((double)angle)<0.008 || fabs((double)angle-M_PI/2)<0.008 || +- fabs((double)angle-M_PI)<0.008 || fabs((double)angle-3*M_PI/2)<0.008) { ++ fabs((double)angle-M_PI)<0.008 || fabs((double)angle-3*M_PI/2)<0.008 || ++ fabs((double)angle-2*M_PI)<0.008) { + xl=0; + xr=(double)item->cols_out; + xinc=0; +diff -urp R-2.4.0.old/src/scripts/texi2dvi R-2.4.0/src/scripts/texi2dvi +--- R-2.4.0.old/src/scripts/texi2dvi 2006-05-18 04:13:54.000000000 -0500 ++++ R-2.4.0/src/scripts/texi2dvi 2006-10-03 07:18:04.000000000 -0500 +@@ -27,7 +27,7 @@ + # the `--debug' option when making a bug report. + + # This string is expanded by rcs automatically when this file is checked out. +-rcs_revision='$Revision: 1.1 $' ++rcs_revision='$Revision: 1.1 $' + rcs_version=`set - $rcs_revision; echo $2` + program=`echo $0 | sed -e 's!.*/!!'` + version="texi2dvi (GNU Texinfo 4.8) $rcs_version +diff -urp R-2.4.0.old/SVN-REVISION R-2.4.0/SVN-REVISION +--- R-2.4.0.old/SVN-REVISION 2006-10-03 05:02:46.000000000 -0500 ++++ R-2.4.0/SVN-REVISION 2006-11-03 19:54:14.000000000 -0600 +@@ -1,2 +1,2 @@ +-Revision: 39566 +-Last Changed Date: 2006-10-03 ++Revision: 39789 ++Last Changed Date: 2006-11-03 +diff -urp R-2.4.0.old/tests/no-segfault.Rin R-2.4.0/tests/no-segfault.Rin +--- R-2.4.0.old/tests/no-segfault.Rin 2006-05-18 04:38:21.000000000 -0500 ++++ R-2.4.0/tests/no-segfault.Rin 2006-10-28 14:36:01.000000000 -0500 +@@ -41,7 +41,7 @@ dev.int <- c("X11", "x11", "pdf", "posts + misc.2 <- c("help.start", "browseEnv", + "gctorture", "q", "quit", "restart", "try", + "read.fwf", "source",## << MM thinks "FIXME" +- "data.entry", "dataentry", "de", apropos("^de\."), ++ "data.entry", "dataentry", "de", apropos("^de\\."), + "chooseCRANmirror", "setRepositories", "select.list") + if(.Platform$OS.type == "windows") { + dev.int <- c(dev.int, "bmp", "windows", "win.graph", "win.print", +diff -urp R-2.4.0.old/tests/reg-plot.ps.save R-2.4.0/tests/reg-plot.ps.save +--- R-2.4.0.old/tests/reg-plot.ps.save 2006-04-09 17:20:05.000000000 -0500 ++++ R-2.4.0/tests/reg-plot.ps.save 2006-10-28 14:36:01.000000000 -0500 +@@ -768,31 +768,31 @@ o + ep + %%Page: 4 4 + bp +-77.04 91.44 793.65 518.24 cl ++106.56 128.16 778.53 488.72 cl + 18.00 18.00 823.89 577.28 cl + /ps 18 def /Font1 findfont 18 s + 0 0 0 rgb +-111.19 100.22 (50-54) 0 0 0 t +-111.19 115.46 (55-59) 0 0 0 t +-111.19 130.71 (60-64) 0 0 0 t +-111.19 145.95 (65-69) 0 0 0 t +-111.19 161.19 (70-74) 0 0 0 t +-111.19 206.92 (50-54) 0 0 0 t +-111.19 222.16 (55-59) 0 0 0 t +-111.19 237.40 (60-64) 0 0 0 t +-111.19 252.65 (65-69) 0 0 0 t +-111.19 267.89 (70-74) 0 0 0 t +-111.19 313.62 (50-54) 0 0 0 t +-111.19 328.86 (55-59) 0 0 0 t +-111.19 344.10 (60-64) 0 0 0 t +-111.19 359.35 (65-69) 0 0 0 t +-111.19 374.59 (70-74) 0 0 0 t +-111.19 420.32 (50-54) 0 0 0 t +-111.19 435.56 (55-59) 0 0 0 t +-111.19 450.80 (60-64) 0 0 0 t +-111.19 466.05 (65-69) 0 0 0 t +-111.19 481.29 (70-74) 0 0 0 t +-168.93 91.44 793.65 518.24 cl ++126.31 134.57 (50-54) 0 0 0 t ++126.31 147.45 (55-59) 0 0 0 t ++126.31 160.33 (60-64) 0 0 0 t ++126.31 173.21 (65-69) 0 0 0 t ++126.31 186.08 (70-74) 0 0 0 t ++126.31 224.71 (50-54) 0 0 0 t ++126.31 237.59 (55-59) 0 0 0 t ++126.31 250.47 (60-64) 0 0 0 t ++126.31 263.34 (65-69) 0 0 0 t ++126.31 276.22 (70-74) 0 0 0 t ++126.31 314.85 (50-54) 0 0 0 t ++126.31 327.73 (55-59) 0 0 0 t ++126.31 340.61 (60-64) 0 0 0 t ++126.31 353.48 (65-69) 0 0 0 t ++126.31 366.36 (70-74) 0 0 0 t ++126.31 404.99 (50-54) 0 0 0 t ++126.31 417.87 (55-59) 0 0 0 t ++126.31 430.75 (60-64) 0 0 0 t ++126.31 443.62 (65-69) 0 0 0 t ++126.31 456.50 (70-74) 0 0 0 t ++184.05 128.16 778.53 488.72 cl + 0.7451 0.7451 0.7451 rgb + 0.75 setlinewidth + [ 0.00 4.00] 0 setdash +@@ -800,170 +800,170 @@ bp + 1 setlinejoin + 10.00 setmiterlimit + np +-168.93 106.68 m +-624.72 0 l ++184.05 141.04 m ++594.48 0 l + o + np +-168.93 121.93 m +-624.72 0 l ++184.05 153.91 m ++594.48 0 l + o + np +-168.93 137.17 m +-624.72 0 l ++184.05 166.79 m ++594.48 0 l + o + np +-168.93 152.41 m +-624.72 0 l ++184.05 179.67 m ++594.48 0 l + o + np +-168.93 167.65 m +-624.72 0 l ++184.05 192.54 m ++594.48 0 l + o + np +-168.93 213.38 m +-624.72 0 l ++184.05 231.18 m ++594.48 0 l + o + np +-168.93 228.62 m +-624.72 0 l ++184.05 244.05 m ++594.48 0 l + o + np +-168.93 243.87 m +-624.72 0 l ++184.05 256.93 m ++594.48 0 l + o + np +-168.93 259.11 m +-624.72 0 l ++184.05 269.81 m ++594.48 0 l + o + np +-168.93 274.35 m +-624.72 0 l ++184.05 282.68 m ++594.48 0 l + o + np +-168.93 320.08 m +-624.72 0 l ++184.05 321.31 m ++594.48 0 l + o + np +-168.93 335.32 m +-624.72 0 l ++184.05 334.19 m ++594.48 0 l + o + np +-168.93 350.57 m +-624.72 0 l ++184.05 347.07 m ++594.48 0 l + o + np +-168.93 365.81 m +-624.72 0 l ++184.05 359.95 m ++594.48 0 l + o + np +-168.93 381.05 m +-624.72 0 l ++184.05 372.82 m ++594.48 0 l + o + np +-168.93 426.78 m +-624.72 0 l ++184.05 411.45 m ++594.48 0 l + o + np +-168.93 442.02 m +-624.72 0 l ++184.05 424.33 m ++594.48 0 l + o + np +-168.93 457.26 m +-624.72 0 l ++184.05 437.21 m ++594.48 0 l + o + np +-168.93 472.51 m +-624.72 0 l ++184.05 450.08 m ++594.48 0 l + o + np +-168.93 487.75 m +-624.72 0 l ++184.05 462.96 m ++594.48 0 l + o + 0 0 0 rgb + 0.75 setlinewidth + [] 0 setdash +-192.07 106.68 4.05 c p1 +-240.04 121.93 4.05 c p1 +-292.63 137.17 4.05 c p1 +-438.39 152.41 4.05 c p1 +-575.85 167.65 4.05 c p1 +-256.65 213.38 4.05 c p1 +-338.75 228.62 4.05 c p1 +-455.92 243.87 4.05 c p1 +-618.29 259.11 4.05 c p1 +-770.51 274.35 4.05 c p1 +-194.84 320.08 4.05 c p1 +-222.51 335.32 4.05 c p1 +-301.85 350.57 4.05 c p1 +-399.64 365.81 4.05 c p1 +-615.52 381.05 4.05 c p1 +-222.51 426.78 4.05 c p1 +-281.56 442.02 4.05 c p1 +-362.74 457.26 4.05 c p1 +-492.82 472.51 4.05 c p1 +-723.46 487.75 4.05 c p1 ++206.07 141.04 4.05 c p1 ++251.72 153.91 4.05 c p1 ++301.76 166.79 4.05 c p1 ++440.47 179.67 4.05 c p1 ++571.27 192.54 4.05 c p1 ++267.52 231.18 4.05 c p1 ++345.65 244.05 4.05 c p1 ++457.15 256.93 4.05 c p1 ++611.66 269.81 4.05 c p1 ++756.51 282.68 4.05 c p1 ++208.70 321.31 4.05 c p1 ++235.04 334.19 4.05 c p1 ++310.54 347.07 4.05 c p1 ++403.60 359.95 4.05 c p1 ++609.02 372.82 4.05 c p1 ++235.04 411.45 4.05 c p1 ++291.22 424.33 4.05 c p1 ++368.48 437.21 4.05 c p1 ++492.26 450.08 4.05 c p1 ++711.74 462.96 4.05 c p1 + 18.00 18.00 823.89 577.28 cl + /ps 18 def /Font1 findfont 18 s + 0 0 0 rgb +-48.24 496.53 (Rural Male) 0 0 0 t +-48.24 389.83 (Rural Female) 0 0 0 t +-48.24 283.13 (Urban Male) 0 0 0 t +-48.24 176.43 (Urban Female) 0 0 0 t ++63.36 469.38 (Rural Male) 0 0 0 t ++63.36 379.24 (Rural Female) 0 0 0 t ++63.36 289.10 (Urban Male) 0 0 0 t ++63.36 198.96 (Urban Female) 0 0 0 t + 0.75 setlinewidth + [] 0 setdash + 1 setlinecap + 1 setlinejoin + 10.00 setmiterlimit + np +-206.83 91.44 m +-553.53 0 l ++220.11 128.16 m ++526.75 0 l + o + np +-206.83 91.44 m ++220.11 128.16 m + 0 -10.80 l + o + np +-299.08 91.44 m ++307.90 128.16 m + 0 -10.80 l + o + np +-391.34 91.44 m ++395.69 128.16 m + 0 -10.80 l + o + np +-483.60 91.44 m ++483.48 128.16 m + 0 -10.80 l + o + np +-575.85 91.44 m ++571.27 128.16 m + 0 -10.80 l + o + np +-668.11 91.44 m ++659.06 128.16 m + 0 -10.80 l + o + np +-760.36 91.44 m ++746.86 128.16 m + 0 -10.80 l + o +-206.83 52.56 (10) .5 0 0 t +-299.08 52.56 (20) .5 0 0 t +-391.34 52.56 (30) .5 0 0 t +-483.60 52.56 (40) .5 0 0 t +-575.85 52.56 (50) .5 0 0 t +-668.11 52.56 (60) .5 0 0 t +-760.36 52.56 (70) .5 0 0 t +-np +-168.93 91.44 m +-624.72 0 l +-0 426.80 l +--624.72 0 l +-0 -426.80 l ++220.11 89.28 (10) .5 0 0 t ++307.90 89.28 (20) .5 0 0 t ++395.69 89.28 (30) .5 0 0 t ++483.48 89.28 (40) .5 0 0 t ++571.27 89.28 (50) .5 0 0 t ++659.06 89.28 (60) .5 0 0 t ++746.86 89.28 (70) .5 0 0 t ++np ++184.05 128.16 m ++594.48 0 l ++0 360.56 l ++-594.48 0 l ++0 -360.56 l + o + 18.00 18.00 823.89 577.28 cl + /ps 22 def /Font2 findfont 22 s + 0 0 0 rgb +-481.29 539.86 (Death Rates in Virginia - 1940) .5 0 0 t ++481.29 525.10 (Death Rates in Virginia - 1940) .5 0 0 t + ep + %%Page: 5 5 + bp +@@ -3771,8 +3771,8 @@ np + 0 -7.20 l + o + /ps 12 def /Font1 findfont 12 s +-78.70 65.52 (1 e-11) .5 0 0 t +-222.02 65.52 (1 e+53) .5 0 0 t ++78.70 65.52 (1e-11) .5 0 0 t ++222.02 65.52 (1e+53) .5 0 0 t + 365.35 65.52 (1e+117) .5 0 0 t + 508.68 65.52 (1e+181) .5 0 0 t + 652.00 65.52 (1e+245) .5 0 0 t +@@ -3800,8 +3800,8 @@ np + 77.04 436.50 m + -7.20 0 l + o +-59.76 92.27 (1 e-10) .5 0 90 t +-59.76 178.32 (1 e+49) .5 0 90 t ++59.76 92.27 (1e-10) .5 0 90 t ++59.76 178.32 (1e+49) .5 0 90 t + 59.76 264.38 (1e+108) .5 0 90 t + 59.76 350.44 (1e+167) .5 0 90 t + 59.76 436.50 (1e+226) .5 0 90 t +diff -urp R-2.4.0.old/tests/reg-tests-1.R R-2.4.0/tests/reg-tests-1.R +--- R-2.4.0.old/tests/reg-tests-1.R 2006-09-25 21:05:07.000000000 -0500 ++++ R-2.4.0/tests/reg-tests-1.R 2006-10-28 14:36:01.000000000 -0500 +@@ -4494,3 +4494,20 @@ test <- 1:10 + try(test[2:4] <- ls) # fails + stopifnot(!exists("*tmp*", where=1)) + ## was true < 2.4.0 ++ ++ ++## merge on zero-row data frames ++L3 <- LETTERS[1:3] ++d <- data.frame(cbind(x=1, y=1), fac=sample(L3, 1, repl=TRUE)) ++e <- d[-1,] ++merge(d, e, by.x = "x", by.y = "x", all.x = TRUE) ++## ++ ++ ++## PR#9313 ++library(stats4) ++g <- function(x, y) -cos(x) + abs(y) ++fit1 <- mle(g, start = list(x = 0, y = 7)) ++fit2 <- mle(g, start = list(y = 7, x = 0)) ++stopifnot(all.equal(coef(fit1), coef(fit2))) ++## Found different solutions in 2.4.0, as names were not remapped in fit2 +diff -urp R-2.4.0.old/tests/reg-tests-2.R R-2.4.0/tests/reg-tests-2.R +--- R-2.4.0.old/tests/reg-tests-2.R 2006-09-22 21:05:09.000000000 -0500 ++++ R-2.4.0/tests/reg-tests-2.R 2006-10-28 14:36:01.000000000 -0500 +@@ -1988,3 +1988,15 @@ format(matrix(1:16, 4), big.mark = ",") + + + ### end of tests added in 2.4.0 ### ++ ++ ++## Platform-specific behaviour in lowess reported to R-help ++## 2006-10-12 by Frank Harrell ++x <- c(0,7,8,14,15,120,242) ++y <- c(122,128,130,158,110,110,92) ++lowess(x, y, iter=0) ++lowess(x, y) ++## MAD of iterated residuals was zero, and result depended on the platform. ++ ++ ++### end of tests added in 2.4.1 ### +diff -urp R-2.4.0.old/tests/reg-tests-2.Rout.save R-2.4.0/tests/reg-tests-2.Rout.save +--- R-2.4.0.old/tests/reg-tests-2.Rout.save 2006-09-25 21:05:07.000000000 -0500 ++++ R-2.4.0/tests/reg-tests-2.Rout.save 2006-10-28 14:36:01.000000000 -0500 +@@ -1,6 +1,6 @@ + +-R version 2.4.0 beta (2005-09-25 r39509) +-Copyright (C) The R Foundation for Statistical Computing ++R version 2.5.0 Under development (unstable) (2006-10-15 r39637) ++Copyright (C) 2006 The R Foundation for Statistical Computing + ISBN 3-900051-07-0 + + R is free software and comes with ABSOLUTELY NO WARRANTY. +@@ -5572,3 +5572,27 @@ Residual standard error: 1.735 on 44 deg + > + > ### end of tests added in 2.4.0 ### + > ++> ++> ## Platform-specific behaviour in lowess reported to R-help ++> ## 2006-10-12 by Frank Harrell ++> x <- c(0,7,8,14,15,120,242) ++> y <- c(122,128,130,158,110,110,92) ++> lowess(x, y, iter=0) ++$x ++[1] 0 7 8 14 15 120 242 ++ ++$y ++[1] 121.95735 128.00000 131.06649 136.93673 126.76467 109.99903 92.00003 ++ ++> lowess(x, y) ++$x ++[1] 0 7 8 14 15 120 242 ++ ++$y ++[1] 122 128 128 158 110 110 92 ++ ++> ## MAD of iterated residuals was zero, and result depended on the platform. ++> ++> ++> ### end of tests added in 2.4.1 ### ++> +diff -urp R-2.4.0.old/VERSION R-2.4.0/VERSION +--- R-2.4.0.old/VERSION 2006-10-03 05:00:12.000000000 -0500 ++++ R-2.4.0/VERSION 2006-10-03 07:19:25.000000000 -0500 +@@ -1 +1 @@ +-2.4.0 ++2.4.0 Patched