]> code.delx.au - gnu-emacs/blobdiff - src/intervals.c
Update copyright year to 2016
[gnu-emacs] / src / intervals.c
index 78e0f50f6fe315559ec6c27340e09ea64a6da880..29cc403933ca3e4edf1cab4e200b318c7aeefdde 100644 (file)
@@ -1,5 +1,5 @@
 /* Code for doing intervals.
-   Copyright (C) 1993-1995, 1997-1998, 2001-2015 Free Software
+   Copyright (C) 1993-1995, 1997-1998, 2001-2016 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -43,10 +43,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <intprops.h>
 #include "lisp.h"
 #include "intervals.h"
-#include "character.h"
 #include "buffer.h"
 #include "puresize.h"
-#include "keyboard.h"
 #include "keymap.h"
 
 /* Test for membership, allowing for t (actually any non-cons) to mean the
@@ -91,11 +89,9 @@ create_root_interval (Lisp_Object parent)
 {
   INTERVAL new;
 
-  CHECK_IMPURE (parent);
-
   new = make_interval ();
 
-  if (BUFFERP (parent))
+  if (! STRINGP (parent))
     {
       new->total_length = (BUF_Z (XBUFFER (parent))
                           - BUF_BEG (XBUFFER (parent)));
@@ -103,15 +99,16 @@ create_root_interval (Lisp_Object parent)
       set_buffer_intervals (XBUFFER (parent), new);
       new->position = BEG;
     }
-  else if (STRINGP (parent))
+  else
     {
+      CHECK_IMPURE (parent, XSTRING (parent));
       new->total_length = SCHARS (parent);
       eassert (TOTAL_LENGTH (new) >= 0);
       set_string_intervals (parent, new);
       new->position = 0;
     }
   eassert (LENGTH (new) > 0);
-  
+
   set_interval_object (new, parent);
 
   return new;