Makefile.in (obj): Include bidi.o.
(bidi.o): New target.
makefile.w32-in (OBJ1): Add $(BLD)/bidi.$(O).
($(BLD)/bidi.$(O)): New target.
bidi.c: New file.
buffer.h (struct buffer): New members bidi_display_reordering
and bidi_paragraph_direction.
buffer.c (init_buffer_once): Initialize bidi_display_reordering
and bidi_paragraph_direction.
(syms_of_buffer): Declare Lisp variables bidi-display-reordering
and bidi-paragraph-direction.
(Fbuffer_swap_text): Swap the values of
bidi_display_reordering and bidi_paragraph_direction.
dispextern.h (BIDI_MAXLEVEL, BIDI_AT_BASE_LEVEL): New macros.
(bidi_type_t, bidi_dir_t): New types.
(bidi_saved_info, bidi_stack, bidi_it): New structures.
(struct it): New members bidi_p, bidi_it, paragraph_embedding,
prev_stop, base_level_stop, and eol_pos.
(bidi_init_it, bidi_get_next_char_visually): New prototypes.
(IT_STACK_SIZE): Enlarge to 5.
(struct glyph_row): New member reversed_p.
<string_buffer_position>: Update prototype.
(PRODUCE_GLYPHS): Set the reversed_p flag in the iterator's
glyph_row if bidi_it.paragraph_dir == R2L.
(struct glyph): New members resolved_level and bidi_type.
dispnew.c (direct_output_forward_char): Give up if we need bidi
processing or buffer's direction is right-to-left.
(prepare_desired_row): Preserve the reversed_p flag.
(row_equal_p): Compare the reversed_p attributes as well.
xdisp.c (init_iterator): Initialize it->bidi_p. Call
bidi_init_it and set it->paragraph_embedding from the current
buffer's value of bidi_paragraph_direction.
(reseat_1): Initialize bidi_it.first_elt.
(set_iterator_to_next, next_element_from_buffer): Use the value of
paragraph_embedding to determine the paragraph direction.
(set_iterator_to_next): Under bidi reordering, call
bidi_get_next_char_visually. Call bidi_paragraph_init if the
new_paragraph flag is set in the bidi iterator.
(next_element_from_buffer): If bidi_it.first_elt is set,
initialize paragraph direction and find the first character to
display in the visual order. If reseated to a middle of a line,
prime the bidi iterator starting at the line's beginning. Handle
the situation where we overstepped stop_charpos due to
non-linearity of the bidi iteration. Likewise for when we back up
beyond the previous stop_charpos. When moving across stop_charpos,
record it in prev_stop.
(display_line): Set row->end and it->start for the next row to the
next character in logical order. Always extend reversed_p rows to
the end of line, even if they end at ZV. Copy the reversed_p flag
to the next glyph row. Keep calling set_cursor_from_row for
bidi-reordered rows even if we already have a possible candidate
for cursor position. Set row_end after all the row's glyphs have
been produced, by looping over the glyphs. Record the position
after EOL in it->eol_pos, and use it to set end_pos of the last
row produced for a continued line.
<Qright_to_left, Qleft_to_right>: New variables.
(syms_of_xdisp): Initialize and staticpro them.
(string_buffer_position_lim): New function.
(string_buffer_position): Most of code moved to
string_buffer_position_lim. Last argument and return value are
now EMACS_INT; all callers changed.
(set_cursor_from_row): Rewritten to support bidirectional text and
reversed glyph rows.
(text_outside_line_unchanged_p, try_window_id): Disable
optimizations if we are reordering bidirectional text and the
paragraph direction can be affected by the change.
(append_glyph, append_composite_glyph)
(produce_image_glyph, append_stretch_glyph): Set the
resolved_level and bidi_type members of each glyph.
(append_glyph): If the glyph row is reversed, prepend the glyph
rather than appending it.
(handle_stop_backwards): New function.
(reseat_1, pop_it, push_it): Set prev_stop and base_level_stop.
(reseat): call handle_stop_backwards to recompute prev_stop and
base_level_stop for the new position.
(handle_invisible_prop): Under bidi iteration, skip invisible text
using bidi_get_next_char_visually. If we are `reseat'ed, init the
paragraph direction. Update IT->prev_stop after skipping
invisible text.
(move_it_in_display_line_to): New variables prev_method
and prev_pos. Compare for strict equality in
BUFFER_POS_REACHED_P.
(try_cursor_movement): Examine all the candidate rows that occlude
point, to return the best match. If rows are bidi-reordered
and point moved backwards, back up to the row that is not a
continuation line, and start looking for a suitable row from
there.
term.c (append_glyph): Reverse glyphs by pre-pending them,
rather than appending, if the glyph_row's reversed_p flag is set.
Set the resolved_level and bidi_type members of each glyph.
.gdbinit (pbiditype): New command.
(pgx): Use it to display bidi level and type of the glyph.
(pitx): Display some bidi information about the iterator.
(prowlims, pmtxrows): New commands.
files.el: Make bidi-display-reordering safe variable for boolean
values.
mule.texi (International): Mention support of bidirectional editing.
(Bidirectional Editing): New section.
HELLO: Reorder Arabic and Hebrew into logical order, and
insert RLM before the opening paren, to make the display more
reasonable. Add setting for bidi-display-reordering in the local
variables section.
NEWS: Mention initial support for bidirectional editing.
=====================
2010-03-22 Teodor Zlatanov <tzz@lifelogs.com>
* gnus/gnus-setup.ast: Add finish links to the top nodes.
* gnus/news-server.ast: Add some trivial validation.
* refcards/Makefile: For cs- and sk-, use pdfcsplain if available.
(pl-refcard.pdf): Let presence of pdfmex be another test for the
required TeX files. Pass explicit output-format to tex command.
(orgcard.pdf): Use ps2pdf, since pdftex tends to produce a
portrait layout rather than the desired landscape.
* etc/images/custom/down-pushed.xpm, etc/images/custom/down.xpm:
* etc/images/custom/right-pushed.xpm:
* etc/images/custom/right-pushed.xpm: Increase height by four
pixels, to improve text alignment.
See http://lists.gnu.org/archive/html/emacs-devel/2009-12/msg00758.html
* emacs.c (REPORT_EMACS_BUG_PRETEST_ADDRESS): Set it to
bug-gnu-emacs rather than emacs-pretest-bug.
* mail/emacsbug.el (report-emacs-bug-pretest-address): Set
it to bug-gnu-emacs rather than emacs-pretest-bug.
* CONTRIBUTE, NEWS: Use bug-gnu-emacs rather than emacs-pretest-bug
for bug reports for development versions.
* trouble.texi (Checklist): Use bug-gnu-emacs rather than
emacs-pretest-bug for bug reports for development versions.
* emacs-pretesters, make-announcement: Use bug-gnu-emacs rather
than emacs-pretest-bug for bug reports for development versions.
* INSTALL.BZR, README: Use bug-gnu-emacs rather than emacs-pretest-bug
for bug reports for development versions.
* xterm.h (struct x_display_info): Add atoms and Window for xsettings.
* xterm.c (handle_one_xevent): Call xft_settings_event for
ClientMessage, PropertyNotify and DestroyNotify.
(x_term_init): If we have XFT, get DPI from Xft.dpi.
Call xsettings_initialize.
* xftfont.c (xftfont_fix_match): New function.
(xftfont_open): Call XftDefaultSubstitute before XftFontMatch.
Call xftfont_fix_match after XftFontMatch.
* xfont.c (xfont_driver): Initialize all members.
* xfns.c (x_default_font_parameter): Try font from Ffont_get_system_font.
Do not get font from x_default_parameter if we got one from
Ffont_get_system_font.
(Fx_select_font): Get the defaut font name from :name of FRAME_FONT (f).
* w32font.c (w32font_driver): Initialize all members.
* termhooks.h (enum event_kind): CONFIG_CHANGED_EVENT is new.
* lisp.h: Declare syms_of_xsettings.
* keyboard.c (kbd_buffer_get_event, make_lispy_event): Handle
CONFIG_CHANGED_EVENT.
* ftfont.c (ftfont_filter_properties): New function.
* frame.c (x_set_font): Remove unused variable lval.
* font.h (struct font_driver): filter_properties is new.
* font.c (font_put_extra): Don't return if val is nil, it means
boolean option is off.
(font_parse_fcname): Collect all extra properties in extra_props
and call filter_properties for all drivers with extra_props and
font as parameter.
(font_open_entity): Do not use cache, it does not pick up new fontconfig
settings like hinting.
(font_load_for_lface): If spec had a name in it, store it in entity.
* emacs.c (main): Call syms_of_xsettings
* config.in: HAVE_GCONF is new.
* Makefile.in (GCONF_CFLAGS, GCONF_LIBS): New variables for HAVE_GCONF.
xsettings.o is new.
* menu-bar.el: Put "Use system font" in Option-menu.
* loadup.el: If feature system-font-setting or font-render-setting is
there, load font-setting.
* Makefile.in (ELCFILES): font-settings.el is new.
* font-setting.el: New file.
* NEWS: Mention dynamic font changes (font-use-system-font).
* configure.in: New option: --with(out)-gconf.
Set HAVE_GCONF if we find gconf.
* org.texi: Removed @Ie, @ie, @Eg, @eg macros.
2009-11-13 James TD Smith <ahktenzero@mohorovi.cc>
* org.texi (Column attributes): Add the new age summary operators.
Also, mention the fact you can only use one summary operator per
property.
2009-11-13 John Wiegley <johnw@newartisans.com>
* org.texi (Tracking your habits): Added a new section in the
manual about how to track habits.
(Resolving idle time): Added a section on how idle and
dangling clocks are resolved.
2009-11-13 Carsten Dominik <carsten.dominik@gmail.com>
* org.texi (Agenda commands): Document the new `i' command.
(Inserting deadline/schedule): Document logging changes
of scheduling and deadline times stamps.
(In-buffer settings): Document the in-buffer keywords for logging
changes of scheduling and deadline times stamps.
(Structure editing, Plain lists): Document indentation
cycling in empty entries with TAB.
(Archiving): Document the default archiving command.
(Moving subtrees): Document the new keys for archiving.
(Internal archiving): Fix incorrect key.
(Agenda commands): Document the TODO set switching commands.
(Agenda commands): Document the new archiving keys.
(Clocking work time): Better description on how to save
and restore a clock.
(Resolving idle time): Mention the x11idle program to get true
idleness also under X11.
(Resolving idle time): Use @kbd instead of @key for normal
letters, because this is how he rest of the manual does this.
(Pushing to MobileOrg): Mention that `org-directory'
should be set.
(Agenda commands): Document that SPC is a filter for
any tag.
(Search view): Renamed from "Keyword search".
(Capure): New chapter.
(Markup): New chapter.
(Links in HTML export, Images in HTML export): Extend
the section titles.
(Images in HTML export): Document the align option.
(Text areas in HTML export): Extend the section title.
(Images in LaTeX export): Explain image placement in LaTeX.
* org.texi (Pushing to MobileOrg): Document `org-mobile-files'.
(Processing LaTeX fragments): Document that the size of images can be
changes using the variable `org-format-latex-options'.
(The date/time prompt, Timestamps): Be more accurate over ISO format
dates and times.
(Visibility cycling): Document showeverything keyword.
(In-buffer settings): Document showeverything keyword.
(Setting up the staging area): Fix the example.
(MobileOrg): New section.
(Agenda commands, Exporting Agenda Views): Document exporting the
agenda view to Org files.
(help-default-arg-highlight): Remove.
(help-highlight-arg): New function.
(help-do-arg-highlight): Use it.
Suggested by Drew Adams <drew.adams@oracle.com>. (Bug#4510, bug#4520)
* NEWS: Mention new variable `help-downcase-arguments'
and new default for arguments in *Help* buffers.
* etc/NEWS: Mention new behavior of -Q and new variable `inhibit-x-resources'.
* lisp/startup.el (emacs-quick-startup): Remove variable and all uses.
(command-line): Set `inhibit-x-resources' instead.
(command-line-1): Use `inhibit-x-resources' instead.
* src/emacs.c (inhibit_x_resources): New variable.
(main) [HAVE_NS]: Don't process --quick command line option.
(syms_of_emacs) <inhibit-x-resources>: DEFVAR_BOOL it.
* src/lisp.h (inhibit_x_resources): Declare it extern.
* src/w32reg.c (x_get_string_resource):
* src/xrdb.c (x_get_string_resource): Obey inhibit_x_resources.
* org.texi (Effort estimates): Document new effort setting commands.
(Agenda commands): Document the new keys fro agenda time motion.
Document entry text mode. Improve documentation of the keys to include
inactive time stamps into the agenda view.
(Feedback): Document the new bug report command.
(Structure editing): Added an index entry for the sorting of subtrees.
Remove version numbers that don't mean much and are infrequently updated.
Instead, just use Emacs version and date.
Use FSF URL rather than postal address.
dashes inside command names, not spaces; spaces before <Return>.
(Summary): Describe the new behavior of C-l.
(Basic Cursor Control): Don't say that files "ought" to end in newlines.
Try to distinguish scroll bar from fringes.
You can also scroll with a wheel mouse.
(If Emacs Stops Responding): Rename from "When Emacs is hung".
(Inserting And Deleting): Continuation marks appear in the fringe.
Clarify that deletion can be undone. Mention cut and paste, and the Glossary.
(Files, Mode Line): Update mode-line format.
(Extending The Command Set): Downplay C-z, since using Emacs on a
text-only terminal is less common these days.
(Searching): Incremental searching is no longer atypical.
Downplay flow control issues, remove reference to deleted FAQ node.
(Multiple Windows): Mention frames.
(Multiple Frames): New section.
(Getting More Help): Downplay C-h having a different binding.
Don't say help is "on-line", since the meaning has changed.
(More Features): Replace "on-line". Use C-h rather than F10 h.
Say a little more about completion.
(Conclusion): Don't mention C-z again here.
* frame.c: Qmaximized is new.
(x_set_frame_parameters): Do not handle fullscreen specially.
Only set width and height if explicitly set.
(x_set_fullscreen): Handle Qmaximized.
(x_set_font, x_figure_window_size): Do not handle fullscreen specially.
(syms_of_frame): Initialize Qmaximized.
* frame.h (fullscreen_type): Add FULLSCREEN_MAXIMIZED. Declare
Qfullwidth, Qfullheight, Qfullboth, Qmaximized.
* xterm.c (handle_one_xevent): Remove call to x_check_fullscreen
for Expose event. Add call to x_check_fullscreen for MapNotify event.
Remove all code w.r.t. fullscreen from ConfigureNotify event. Do not
set gravity to NorthWestGravity when USE_GTK.
(set_wm_state): New function.
(do_ewmh_fullscreen): Use set_wm_state. Also handle FULLSCREEN_MAXIMIZED.
(x_handle_net_wm_state): Handle FULLSCREEN_MAXIMIZED.
(x_check_fullscreen): Simplify so we only handle EMWH type of fullscreen
or the case when no window manager is running. That means remove calls
to x_real_positions and x_fullscreen_adjust.
* gtkutil.c (flush_and_sync, x_wm_size_hint_off): Remove.
(xg_frame_set_char_size): Remove calls to x_wm_size_hint_off and
flush_and_sync.
(xg_height_changed): New function.
(xg_create_frame_widgets): Remove call to gtk_widget_set_size_request
and gtk_window_set_policy. Set frame gravity after parsing the geometry
string.
(xg_update_frame_menubar, free_frame_menubar)
(xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
(update_frame_tool_bar, free_frame_tool_bar): Call xg_height_changed.
Remove calls to xg_frame_set_char_size.
* startup.el (command-line-x-option-alist): Add -mm and --maximized.
* NEWS: Mention maximized.
* frames.texi (Size Parameters): Mention maximized for fullscreen.
* xresources.texi (Table of Resources): Mention maximized for
fullscreen.
* cmdargs.texi (Window Size X): -mm/--maximized is new.
* org.texi (References): Add information about remote references.
(Built-in table editor): Document `C-c RET' in tables.
(Math symbols, Quoting LaTeX code): Mention that simple
LaTeX macros survive LaTeX export.
(Images in LaTeX export): Show how to create a reference to a
figure.
(Sectioning structure): Document that the LaTeX class can be
specified in a property.
(Text areas in HTML export): New section.
(External links): Add examples for text search and ID links.
(Built-in table editor): Remove the descriptio of `C-c
C-q', it not longer works.
(Literal examples): Document that a space must follow
the colon in short examples.
(Relative timer): Document `org-timer-stop'.
(Footnotes): New section.
(Footnote markup): Shorten section and refer to new Footnote
section.
(Literal examples): Add documentation for line
numbering in and references to code examples.
(CSS support): Fix the description of default CSS styles.
(Capturing column view): Document
"file:path/to/file.org" as an allowed value for the ID property of
a dynamic block copying column view.
* org.texi (Activation, Exporting, ASCII export, HTML export)
(HTML Export commands, LaTeX/PDF export commands): Improve
documentation about transient-mark-mode.
(References): DOcuemtn the use of special names like $LR1 to reference
to fields in the last table row.
* org.texi (Using the mapping API): Fix bug in mapping example.
(Publishing options): Make the list of properties complete again, in
correspondence to the variable `org-export-plist-vars'.
(Property searches): Document new special values for time comparisons.
(Tag inheritance): Refine the description of tag inheritance.
(Project alist): Add info about the publishing sequence of components.
(Effort estimates): Document the new relativer timer.
* org.texi (Clocking work time): Document the :formula property of
clock tables.
(Structure editing, Refiling notes): Document refiling regions.
(Agenda commands): Document the double-prefix version
of the `l' command in the agenda.
(Handling links): Explain the effect of a double prefix
arg to `C-c C-o'.
(TODO basics): Add documentation for tag triggers.
(Conventions): New section.
(Structure editing): Document C-RET, the prefix arg to the cut/cpy
commands, and the new bindings for refiling.
(Sparse trees): Document the new special command for sparse trees.
(References): Be more clear about the counting of hilines.
(Handling links): Document M-p/n for accessing links.
(Fast access to TODO states): New section.
(Per file keywords): New section.
(Property inheritance): New section.
(Column attributes): New summary types.
(Capturing Column View): New section.
(The date/time prompt): Cover the new features in the date/time
prompt. Compactify the table of keys for the calendar remote
control.
(Clocking work time): Document the new :scope parameter.
(Remember): Promoted to chapter.
(Quoted examples): New section.
(Enhancing text): New verbatim environments.
three slots under C-x r. See this message and its thread for details:
http://lists.gnu.org/archive/html/emacs-devel/2007-07/msg00705.html.
* lisp/bookmark.el: Revert 2007-07-13T18:16:17Z!kfogel@red-bean.com.
* etc/NEWS: Revert 2007-07-13T23:20:21Z!kfogel@red-bean.com, which
documented bookmark keybinding changes that were later reverted.
* man/ChangeLog: Remove ChangeLog entry for accidentally uncommitted
changes to regs.texi that would have documented the keybinding
change reverted above.
Werner Lemberg <wl at gnu.org>
* emacs.1: Completely revised. Fix many typographical glitches.
Updated to handle current state of options and resources.
* viper.el (viper-describe-key-ad, viper-describe-key-briefly-ad):
different advices for Emacs and XEmacs. Compile them conditionally.
(viper-version): belated version change.
I have updated the version of ERC to 5.2, since it fixes a bug with C-c
C-SPC being bound globally by default. For the full list of changes in
this version, see etc/ERC-NEWS.
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-687
Creator: Michael Olson <mwolson@gnu.org>