help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

search-forward in emacs23 lisp


From: rasmith
Subject: search-forward in emacs23 lisp
Date: Sat, 27 Mar 2010 15:31:48 -0500 (CDT)

The behavior of the search-forward function in emacs-lisp has changed
in emacs23 in a way that breaks some scripts I use, in particular
cgreek-tlg.el from Naoto Takahashi's cgreek package.  This package
includes facilities for reading files in the Thesaurus Linguae Graecae
(TLG) containing both Greek texts and data about those texts, each in
a format unique to the TLG.  Parsing those files requires reading them
into a buffer literally and searching for strings terminated by \xff
(byte 255).  Under emacs22, this only required 
    (search-forward (char-to-string ?\xff))
However, under emacs23, char-to-string with an 8-bit argument (128
through 255) now returns a two-byte string (\x00\xff).  So, these
searches fail.  I tried changing to unibyte-string.  In fact, 
    (unibyte-string ?\377) 
does return a string containing just one byte (255), as I've verified
with what-cursor-position.  However, 
    (search-forward (unibyte-string ?\377)) 
doesn't match an occurrence of 255.  Instead, it matches on the two-byte
string \231\277 (\x99bf).  That two-byte sequence doesn't appear to me
to be a possible Unicode character (I thought the utf-8 representation
of 255 would be \0xc1\0x3f).  Perhaps this is something peculiar to
utf-8-emacs? 

If I move to the buffer that contains the data to be parsed (which has
its multibyte flag set to nil), then 
(search-forward (unibyte-string ?\377)) behaves as above.  However, in
that same buffer, a keyboard isearch-forward for \377 finds a \377
with no problem.  

So, what I need to know is: is there a way to make search-forward find
a single 8-bit byte between 128 and 255?


Robin Smith
Department of Philosophy           rasmith@tamu.edu
Texas A&M University               http://aristotle.tamu.edu/~rasmith/
4237 TAMU                          Voice +1 979 845 5679
College Station, TX 77843-4237     FAX +1 979 845 0458




reply via email to

[Prev in Thread] Current Thread [Next in Thread]