Juri Linkov [Tue, 30 Mar 2010 16:38:45 +0000 (19:38 +0300)]
* replace.el (occur-accumulate-lines): Move occur-engine related
functions `occur-accumulate-lines' and `occur-engine-add-prefix'
to be located after `occur-engine'.
Juri Linkov [Tue, 30 Mar 2010 16:03:08 +0000 (19:03 +0300)]
Make occur handle multi-line matches cleanly with context.
http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01280.html
* replace.el (occur-accumulate-lines): Add optional arg `pt'.
(occur-engine): Add local variables `ret', `prev-after-lines',
`prev-lines'. Use more arguments for `occur-context-lines'.
Set first elem of its returned list to `data', and the second elem
to `prev-after-lines'. Don't print the separator line.
In the end, print remaining context after-lines.
(occur-context-lines): Add new arguments `begpt', `endpt',
`lines', `prev-lines', `prev-after-lines'. Rewrite to combine
after-lines of the previous match with before-lines of the
current match and not overlap them. Return a list with two
values: the output line and the list of context after-lines.
* search.texi (Other Repeating Search): Remove line that `occur'
can not handle multiline matches.
* occur-testsuite.el (occur-tests): Add tests for context lines.
Eli Zaretskii [Tue, 30 Mar 2010 10:59:26 +0000 (13:59 +0300)]
Improve documentation of "C-x 8 RET".
mule.texi (Input Methods): Mention "C-x 8 RET" and add a
cross-reference to "Inserting Text".
basic.texi (Inserting Text): Add an index entry for "C-x 8 RET".
Mention completion provided by `ucs-insert'.
Eli Zaretskii [Tue, 30 Mar 2010 09:13:07 +0000 (05:13 -0400)]
Initial support for bidirectional editing.
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.
Katsumi Yamaoka [Tue, 30 Mar 2010 04:44:38 +0000 (04:44 +0000)]
2010-03-30 Martin Stjernholm <mast@lysator.liu.se>
* mm-decode.el (mm-add-meta-html-tag): Added option to override the
charset.
* gnus-art.el (gnus-article-browse-html-parts): Force the correct
charset into the <meta> tag when the article is encoded to utf-8.
Katsumi Yamaoka [Tue, 30 Mar 2010 04:03:00 +0000 (04:03 +0000)]
2010-03-30 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-article-browse-delete-temp-files): Delete
directories as well.
(gnus-article-browse-html-parts): Work for images that do not specify
file names; delete temp directory when quitting; insert header at the
right place; use file: scheme for image files.
2010-03-30 Eric Schulte <schulte.eric@gmail.com>
* gnus-art.el (gnus-article-browse-html-save-cid-image): New function.
(gnus-article-browse-html-parts): Use it to make temporary cid image
files in addition to html file so that browser may display them.
* nsfns.m (x_implicitly_set_name): If frame-title-format is t, use
filename for the title.
(ns_set_doc_edited): Do nothing if the selected window is a
minibuffer window.
* nsterm.h: Add prototypes for ns_set_name_as_filename and
ns_set_doc_edited.
Chong Yidong [Mon, 29 Mar 2010 23:18:48 +0000 (19:18 -0400)]
* subr.el: Extend progress reporters to perform "spinning".
(progress-reporter-update, progress-reporter-do-update): Handle
non-numeric value arguments.
(progress-reporter--pulse-characters): New var.
Stefan Monnier [Mon, 29 Mar 2010 15:23:01 +0000 (11:23 -0400)]
Make tmm-menubar work for the Buffers menu again.
* tmm.el (tmm-prompt): Also handle keymap entries in the form of
vectors rather than cons cells, as used in menu-bar-update-buffers.
Eli Zaretskii [Mon, 29 Mar 2010 12:26:24 +0000 (08:26 -0400)]
Support MS-Windows build and reversed rows in GUI frames; add initial docs.
doc/emacs/mule.texi (International): Mention support of
bidirectional editing.
(Bidirectional Editing): New section.
etc/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.
lisp/files.el: Make bidi-display-reordering safe variable for
boolean values.
src/xdisp (append_glyph): If the glyph row is reversed, prepend the
glyph rather than appending it.
src/makefile.w32-in (OBJ1): Add $(BLD)/bidi.$(O).
($(BLD)/bidi.$(O)): New target.
Katsumi Yamaoka [Sun, 28 Mar 2010 23:55:59 +0000 (23:55 +0000)]
2010-03-27 Teodor Zlatanov <tzz@lifelogs.com>
* auth.texi (Secret Service API): Add TODO node.
(Help for users): Explain the new source options for `auth-sources'.
Katsumi Yamaoka [Sun, 28 Mar 2010 23:52:01 +0000 (23:52 +0000)]
2010-03-27 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el (auth-sources): Change default to be simpler. Explain
about Secret Service API sources. Improve Customize options.
(auth-source-pick): Change to accept any number of search parameters.
Implement fallbacks iteratively, not recursively. Add scoring on the
second pass and sort by score. Call Secret Service API when needed.
(auth-source-user-or-password): Use it. Call Secret Service API
directly when needed to get the user name and the password.
Eli Zaretskii [Sun, 28 Mar 2010 15:18:10 +0000 (11:18 -0400)]
Fix glyph_row reversed_p flag in empty lines between paragraphs.
bidi.c (bidi_get_next_char_visually): Improve commentary.
dispextern.h (PRODUCE_GLYPHS): Set the reversed_p flag in the
iterator's glyph_row here.
xdisp.c (handle_invisible_prop, set_iterator_to_next)
(next_element_from_buffer): Don't set the reversed_p flag in the
iterator's glyph_row here.
Chong Yidong [Sun, 28 Mar 2010 03:41:34 +0000 (23:41 -0400)]
Document Message mode as the default mail mode.
* sending.texi (Sending Mail): Document the fact that Message mode is
now the default mail mode.
(Mail Format, Mail Headers): Document mail-from-style changes.
(Mail Commands): Rename from Mail mode. Document Message mode.
(Mail Misc): Rename from Mail mode Misc.
(Mail Sending, Header Editing, Mail Misc): Switch to Message mode
command names and update keybindings.
(Header Editing): Document message-tab. De-document
mail-self-blind, mail-default-reply-to, and mail-archive-file-name in
favor of mail-default-headers. Ad index entries for user-full-name and
user-mail-address.
(Citing Mail): Update changes in Message mode behavior. Document
mail-yank-prefix.
(Mail Signature): New node, moved from Mail Misc.
(Mail Aliases): Mail abbrevs are the default with Message mode.
(Mail Methods): Note that Message mode is now the default.
Chong Yidong [Sat, 27 Mar 2010 17:53:35 +0000 (13:53 -0400)]
Fix mail-default-headers handling in Message mode.
* gnus/message.el (message-default-mail-headers):
(message-default-headers): Carry the value mail-default-headers over
into message-default-mail-headers, rather than message-default-headers.
Eli Zaretskii [Sat, 27 Mar 2010 12:01:22 +0000 (15:01 +0300)]
Enclose the argument of "-l" in quotes.
makefile.w32-in ($(TIT), $(MISC_DIC), leim-list.el): Enclose the
argument of "-l" in $(ARGQUOTE), in case it includes blanks or
other special characters.
Chong Yidong [Thu, 25 Mar 2010 22:57:13 +0000 (18:57 -0400)]
Document VC changes: vc-log-show-limit and vc-print-root-log.
* maintaining.texi (VC With A Merging VCS): C-x v v now creates a
repository if there is none.
(VC Change Log): Rename from VC Status. Document vc-log-show-limit and
vc-print-root-log.
(Old Revisions): Copyedits.
Stefan Monnier [Thu, 25 Mar 2010 00:06:08 +0000 (20:06 -0400)]
Add "union tags" in mpc.el.
* mpc.el: Remove backward compatibility code.
(mpc-browser-tags): Change default.
(mpc--find-memoize-union-tags): New var.
(mpc-cmd-flush, mpc-cmd-special-tag-p): New fun.
(mpc-cmd-find): Handle the case where the playlist does not exist.
Handle union-tags.
(mpc-cmd-list): Use mpc-cmd-special-tag-p. Handle union-tags.
(mpc-cmd-add): Use mpc-cmd-flush.
(mpc-tagbrowser-tag-name): New fun.
(mpc-tagbrowser-buf): Use it.
(mpc-songs-refresh): Use cond. Move to point-min as a fallback.
Stefan Monnier [Wed, 24 Mar 2010 23:56:43 +0000 (19:56 -0400)]
Misc cleanup.
* progmodes/make-mode.el (makefile-bsdmake-rule-action-regex):
Use replace-regexp-in-string.
(makefile-mode-abbrev-table): Merge defvar and define-abbrev-table.
(makefile-imake-mode-syntax-table): Move init into defvar.
(makefile-mode): Use define-derived-mode.
Ted Zlatanov [Wed, 24 Mar 2010 09:30:28 +0000 (04:30 -0500)]
Add a list of HTTP status code symbols and their text, mapped by number.
* url-http.el (url-http-codes): New variable to hold a mapping of
HTTP status codes' numbers, their symbolic name, and their text.
(url-http-parse-headers): Use it, leaving the original numeric
code in a comment.
Sam Steingold [Tue, 23 Mar 2010 18:22:46 +0000 (14:22 -0400)]
Fix bug#5620: recalculate all markers on compilation buffer
modifications, not on file modifications.
(buffer-modtime): New buffer-local variable:
the buffer modification time, for buffers not associated with files.
(compilation-mode): Create it.
(compilation-filter): Update it.
(compilation-next-error-function): Use it instead of
`visited-file-modtime' for timestamp.