Find a file
Eli Zaretskii 283ccc1841 Implement GUI display of R2L lines, fix TTY display of R2L lines.
xdisp.c [HAVE_WINDOW_SYSTEM]: Add prototype for
 append_stretch_glyph.
 (set_cursor_from_row) <cursor_x>: Remove unused variable.  Fix
 off-by-one error in computing x at end of text in the row.
 (append_stretch_glyph): In reversed row, prepend the glyph rather
 than append it.  Set resolved_level and bidi_type of the glyph.
 (extend_face_to_end_of_line): If the row is reversed, prepend a
 stretch glyph whose width is such that the rightmost glyph will be
 drawn at the right margin of the window.  Fix off-by-one error on
 TTY frames in testing whether a line needs face extension.  Fix
 face extension at ZV.  If this is the last glyph row, use
 DEFAULT_FACE_ID, to avoid painting the rest of the window with the
 region face.
 (set_cursor_from_row, display_line): Use
 MATRIX_ROW_CONTINUATION_LINE_P instead of testing value of
 row->continuation_lines_width.
 (next_element_from_buffer): Don't call bidi_paragraph_init if we
 are at ZV.  Fixes a crash when reseated to ZV by
 try_window_reusing_current_matrix.
 (display_and_set_cursor, erase_phys_cursor): Handle negative HPOS,
 which happens with R2L glyph rows.  Fixes a crash when inserting a
 character at end of an R2L line.
 (set_cursor_from_row): Don't be fooled by truncated rows: don't
 treat them as having zero-width characters.  Improve comments.
 Don't reverse pos_before and pos_after for reversed glyph rows.
 Set cursor.x to negative value when the cursor might be on the
 left fringe.
 (IT_OVERFLOW_NEWLINE_INTO_FRINGE): For R2L lines, consider the
 left fringe, not the right one.
 (notice_overwritten_cursor, draw_phys_cursor_glyph)
 (erase_phys_cursor): For reversed cursor_row, support cursor on
 the left fringe.
 fringe.c (update_window_fringes): For R2L rows, swap the bitmaps
 of continuation indicators on the fringes.
 (draw_fringe_bitmap): For reversed glyph rows, allow cursor on the
 left fringe.
 w32term.c (w32_draw_window_cursor): For reversed glyph rows,
 draw cursor on the left fringe.
 xterm.c (x_draw_window_cursor): For reversed glyph rows, draw
 cursor on the left fringe.
 dispnew.c (update_text_area): Handle reversed desired rows when
 the cursor is on the left fringe.
 (set_window_cursor_after_update): Limit cursor's hpos by -1 from
 below, not by 0, for when the cursor is on the left fringe.

 xdisp.c (unproduce_glyphs): New function.
 (display_line): Use it when produced glyphs are discarded from R2L
 glyph rows.
 (append_composite_glyph): In R2L rows, prepend the glyph rather
 than appending it.
  term.c (append_composite_glyph): In R2L rows, prepend the glyph
 rather than append it.  Set up the resolved_level and bidi_type
 attributes of the appended glyph.
 (produce_special_glyphs): Mirror the backslash continuation
 character in R2L lines.
2010-04-20 16:31:28 +03:00
admin Merge from emacs-23 2010-04-19 11:07:52 -04:00
doc Merge from emacs-23 2010-04-19 11:07:52 -04:00
etc Merge from emacs-23 2010-04-19 11:07:52 -04:00
info Remove the Arch metafiles. 2010-04-12 23:06:50 -04:00
leim Merge from emacs-23 2010-04-19 11:07:52 -04:00
lib-src Merge from emacs-23 2010-04-19 11:07:52 -04:00
lisp (completion-styles-alist): Fix up last merge and document `substring'. 2010-04-19 14:33:11 -04:00
lwlib Set _NET_WM_WINDOW_TYPE in menus. Looks bad with compiz otherwise. 2010-04-17 20:18:12 +02:00
m4 Update copyright for years from Emacs 21 to present (mainly adding 2007-01-16 02:38:27 +00:00
msdos Merge from emacs-23 2010-04-02 21:54:24 -04:00
nextstep Bump version to 23.1.95. 2010-04-02 20:42:10 -04:00
nt Remove the Arch metafiles. 2010-04-12 23:06:50 -04:00
oldXMenu Use autoconf, not cpp for some variables. 2010-04-11 13:17:24 -07:00
src Implement GUI display of R2L lines, fix TTY display of R2L lines. 2010-04-20 16:31:28 +03:00
test Merge from emacs-23 branch 2010-03-30 22:37:57 -04:00
.dir-locals.el * .dir-locals.el (c-mode): Turn on whitespace-mode for diff-mode. 2010-03-19 02:46:08 -07:00
.gitignore Ignore all backup files. 2009-08-28 09:50:05 +00:00
autogen.sh * INSTALL.BZR: Rename from INSTALL.CVS, edit to talk about Bazaar. 2009-12-27 17:26:27 -05:00
BUGS * BUGS: Use new binding of view-emacs-problems. 2009-05-05 01:23:41 +00:00
ChangeLog Merge from emacs-23 2010-04-02 21:54:24 -04:00
config.bat Fix the MSDOS build as fallout from the latest Makefile.in changes. 2010-03-27 13:49:18 +03:00
config.guess * config.guess, config.sub: Updated from master source. 2009-10-14 06:10:19 +00:00
config.sub * config.guess, config.sub: Updated from master source. 2009-10-14 06:10:19 +00:00
configure Bump version to 23.1.95. 2010-04-02 20:42:10 -04:00
configure.in Bump version to 23.1.95. 2010-04-02 20:42:10 -04:00
COPYING Change to GPLv3. 2007-07-25 07:00:38 +00:00
INSTALL Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
install-sh
INSTALL.BZR INSTALL.BZR: Minor edit. 2010-02-17 22:02:35 -08:00
make-dist Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
Makefile.in Close bug#5720. 2010-03-17 22:17:11 -07:00
mkinstalldirs Sync to latest version from automake. 2007-05-25 02:11:41 +00:00
move-if-change
README Bump version to 23.1.95. 2010-04-02 20:42:10 -04:00
update-subdirs Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
vpath.sed

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
  2010  Free Software Foundation, Inc.
See the end of the file for license conditions.


This directory tree holds version 24.0.50 of GNU Emacs, the extensible,
customizable, self-documenting real-time display editor.

The file INSTALL in this directory says how to build and install GNU
Emacs on various systems, once you have unpacked or checked out the
entire Emacs file tree.

See the file etc/NEWS for information on new features and other
user-visible changes in recent versions of Emacs.

The file etc/PROBLEMS contains information on many common problems that
occur in building, installing and running Emacs.

You may encounter bugs in this release.  If you do, please report
them; your bug reports are valuable contributions to the FSF, since
they allow us to notice and fix problems on machines we don't have, or
in code we don't use often.  Please send bug reports to the mailing
list bug-gnu-emacs@gnu.org.  If possible, use M-x report-emacs-bug.

See the "Bugs" section of the Emacs manual for more information on how
to report bugs.  (The file `BUGS' in this directory explains how you
can find and read that section using the Info files that come with
Emacs.)  See `etc/MAILINGLISTS' for more information on mailing lists
relating to GNU packages.

The `etc' subdirectory contains several other files, named in capital
letters, which you might consider looking at when installing GNU
Emacs.

The file `configure' is a shell script to acclimate Emacs to the
oddities of your processor and operating system.  It creates the file
`Makefile' (a script for the `make' program), which automates the
process of building and installing Emacs.  See INSTALL for more
detailed information.

The file `configure.in' is the input used by the autoconf program to
construct the `configure' script.  Since Emacs has some configuration
requirements that autoconf can't meet directly, and for historical
reasons, `configure.in' uses an unholy marriage of custom-baked
configuration code and autoconf macros.  If you want to rebuild
`configure' from `configure.in', you will need to install a recent
version of autoconf and GNU m4.

The file `Makefile.in' is a template used by `configure' to create
`Makefile'.

The file `make-dist' is a shell script to build a distribution tar
file from the current Emacs tree, containing only those files
appropriate for distribution.  If you make extensive changes to Emacs,
this script will help you distribute your version to others.

There are several subdirectories:

`src'       holds the C code for Emacs (the Emacs Lisp interpreter and
            its primitives, the redisplay code, and some basic editing
            functions).
`lisp'      holds the Emacs Lisp code for Emacs (most everything else).
`leim'      holds the library of Emacs input methods, Lisp code and
            auxiliary data files required to type international characters
            which can't be directly produced by your keyboard.
`lib-src'   holds the source code for some utility programs for use by or
            with Emacs, like movemail and etags.
`etc'       holds miscellaneous architecture-independent data files
            Emacs uses, like the tutorial text and the Zippy the Pinhead
            quote database.  The contents of the `lisp', `leim', `info',
            `man', `lispref', and `lispintro' subdirectories are
            architecture-independent too.
`info'      holds the Info documentation tree for Emacs.
`doc/emacs' holds the source code for the Emacs Manual.  If you modify the
            manual sources, you will need the `makeinfo' program to produce
            an updated manual.  `makeinfo' is part of the GNU Texinfo
            package; you need version 4.6 or later of Texinfo.
`doc/lispref'   holds the source code for the Emacs Lisp reference manual.
`doc/lispintro' holds the source code for the Introduction to Programming
                in Emacs Lisp manual.
`msdos'     holds configuration files for compiling Emacs under MSDOG.
`nextstep'  holds instructions and some other files for compiling the
            Nextstep port of Emacs, for GNUstep and Mac OS X Cocoa.
`nt'        holds various command files and documentation files that pertain
            to building and running Emacs on Windows 9X/ME/NT/2000/XP.
`test'      holds tests for various aspects of Emacs's functionality.

   Building Emacs on non-Posix platforms requires to install tools
that aren't part of the standard distribution of the OS.  The
platform-specific README files and installation instructions should
list the required tools.


This file is part of GNU Emacs.

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 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
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.  If not, see <http://www.gnu.org/licenses/>.