]> code.delx.au - gnu-emacs/blobdiff - src/editfns.c
(Fchar_charset): New optional arg restriction.
[gnu-emacs] / src / editfns.c
index 0ab1630df3c8b8c63337c26831b082ed502e4a9c..2d45dba8fce7ff58f5c0ac9ac90daa9cf214b445 100644 (file)
@@ -1,14 +1,14 @@
 /* Lisp functions pertaining to editing.
    Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996,
                  1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-                 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+                 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,9 +16,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
@@ -69,6 +67,10 @@ Boston, MA 02110-1301, USA.  */
 #define NULL 0
 #endif
 
+#ifndef USER_FULL_NAME
+#define USER_FULL_NAME pw->pw_gecos
+#endif
+
 #ifndef USE_CRT_DLL
 extern char **environ;
 #endif
@@ -482,7 +484,7 @@ get_pos_property (position, prop, object)
            }
        }
 
-      { /* Now check the text-properties.  */
+      { /* Now check the text properties.  */
        int stickiness = text_property_stickiness (prop, position, object);
        if (stickiness > 0)
          return Fget_text_property (position, prop, object);
@@ -658,7 +660,7 @@ If POS is nil, the value of point is used for POS.  */)
 }
 
 DEFUN ("field-string-no-properties", Ffield_string_no_properties, Sfield_string_no_properties, 0, 1, 0,
-       doc: /* Return the contents of the field around POS, without text-properties.
+       doc: /* Return the contents of the field around POS, without text properties.
 A field is a region of text with the same `field' property.
 If POS is nil, the value of point is used for POS.  */)
      (pos)
@@ -1487,7 +1489,7 @@ on systems that do not provide resolution finer than a second.  */)
                make_number ((secs >> 0)  & 0xffff),
                make_number (usecs));
 #else /* ! HAVE_GETRUSAGE  */
-#if WINDOWSNT
+#ifdef WINDOWSNT
   return w32_get_internal_run_time ();
 #else /* ! WINDOWSNT  */
   return Fcurrent_time ();
@@ -2040,8 +2042,7 @@ If TZ is t, use Universal Time.  */)
     }
 
   set_time_zone_rule (tzstring);
-  if (environbuf)
-    free (environbuf);
+  free (environbuf);
   environbuf = environ;
 
   return Qnil;
@@ -3050,7 +3051,7 @@ It returns the number of characters changed.  */)
              if (string_multibyte)
                {
                  str = tt + string_char_to_byte (table, oc);
-                 nc = STRING_CHAR_AND_LENGTH (str, MAX_MULTIBYTE_LENGTH, 
+                 nc = STRING_CHAR_AND_LENGTH (str, MAX_MULTIBYTE_LENGTH,
                                               str_len);
                }
              else
@@ -4185,8 +4186,10 @@ Case is ignored if `case-fold-search' is non-nil in the current buffer.  */)
      register Lisp_Object c1, c2;
 {
   int i1, i2;
-  CHECK_NUMBER (c1);
-  CHECK_NUMBER (c2);
+  /* Check they're chars, not just integers, otherwise we could get array
+     bounds violations in DOWNCASE.  */
+  CHECK_CHARACTER (c1);
+  CHECK_CHARACTER (c2);
 
   if (XINT (c1) == XINT (c2))
     return Qt;