aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2011-10-18 21:26:54 +0200
committerJoakim Verona2011-10-18 21:26:54 +0200
commit6e73a2ebf04ca9bcc95add447b30baed417849b4 (patch)
tree6cfc05e10644f2a6353305f523db5b014e7c492b
parent3bb66ec6110273ae61230da585ca090650140dca (diff)
parent0ffe10653bb4366a03ce79fde9847ae810bc78d4 (diff)
downloademacs-6e73a2ebf04ca9bcc95add447b30baed417849b4.tar.gz
emacs-6e73a2ebf04ca9bcc95add447b30baed417849b4.zip
upstream
-rw-r--r--ChangeLog8
-rw-r--r--admin/notes/changelogs4
-rw-r--r--admin/notes/copyright5
-rw-r--r--configure.in4
-rw-r--r--doc/emacs/ChangeLog22
-rw-r--r--doc/emacs/basic.texi2
-rw-r--r--doc/emacs/display.texi493
-rw-r--r--doc/emacs/emacs.texi2
-rw-r--r--doc/emacs/frames.texi9
-rw-r--r--doc/emacs/macos.texi12
-rw-r--r--doc/emacs/maintaining.texi9
-rw-r--r--doc/lispref/ChangeLog4
-rw-r--r--doc/lispref/display.texi94
-rw-r--r--doc/lispref/elisp.texi3
-rw-r--r--doc/lispref/vol1.texi3
-rw-r--r--doc/lispref/vol2.texi3
-rw-r--r--etc/NEWS17
-rw-r--r--etc/themes/deeper-blue-theme.el2
-rw-r--r--etc/themes/dichromacy-theme.el2
-rw-r--r--etc/themes/misterioso-theme.el2
-rw-r--r--etc/themes/tango-dark-theme.el2
-rw-r--r--etc/themes/tango-theme.el2
-rw-r--r--etc/themes/wheatgrass-theme.el2
-rw-r--r--etc/themes/whiteboard-theme.el2
-rw-r--r--etc/themes/wombat-theme.el2
-rw-r--r--lisp/ChangeLog40
-rw-r--r--lisp/ChangeLog.152
-rw-r--r--lisp/facemenu.el11
-rw-r--r--lisp/faces.el4
-rw-r--r--lisp/font-lock.el8
-rw-r--r--lisp/gnus/ChangeLog37
-rw-r--r--lisp/gnus/gnus-registry.el33
-rw-r--r--lisp/gnus/gnus-util.el8
-rw-r--r--lisp/gnus/nnir.el8
-rw-r--r--lisp/gnus/nnmairix.el7
-rw-r--r--lisp/gnus/nnregistry.el7
-rw-r--r--lisp/international/mule.el4
-rw-r--r--lisp/net/tramp.el2
-rw-r--r--lisp/vc/log-edit.el2
-rw-r--r--lisp/vc/vc.el2
-rwxr-xr-xmake-dist5
-rw-r--r--nextstep/ChangeLog6
-rw-r--r--nextstep/Cocoa/Emacs.xcodeproj/project.pbxproj798
-rw-r--r--src/ChangeLog19
-rw-r--r--src/bidi.c59
45 files changed, 613 insertions, 1159 deletions
diff --git a/ChangeLog b/ChangeLog
index adb2ed2c921..6147b1131fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
12011-10-18 Jan Djärv <jan.h.d@swipnet.se>
2
3 * configure.in (GLIB_REQUIRED, GTK_REQUIRED): Set to 2.10 (Bug#9786).
4
52011-10-18 Chong Yidong <cyd@gnu.org>
6
7 * make-dist: Remove Cocoa/Emacs.xcodeproj from distribution.
8
12011-10-13 Glenn Morris <rgm@gnu.org> 92011-10-13 Glenn Morris <rgm@gnu.org>
2 10
3 * configure.in: Also look for tputs in libcurses. (Bug#9736) 11 * configure.in: Also look for tputs in libcurses. (Bug#9736)
diff --git a/admin/notes/changelogs b/admin/notes/changelogs
index 2c3749244fb..2e954570ce8 100644
--- a/admin/notes/changelogs
+++ b/admin/notes/changelogs
@@ -1,3 +1,7 @@
1If installing changes written by someone else, make the ChangeLog
2entry in their name, not yours.
3
4
1http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html 5http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html
2 There is no need to make change log entries for files such as NEWS, 6 There is no need to make change log entries for files such as NEWS,
3 MAINTAINERS, and FOR-RELEASE. 7 MAINTAINERS, and FOR-RELEASE.
diff --git a/admin/notes/copyright b/admin/notes/copyright
index f4d22f9b270..0ad99900779 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -24,9 +24,8 @@ the file.
24 24
252. When installing code written by someone else, the ChangeLog entry 252. When installing code written by someone else, the ChangeLog entry
26should be in the name of the author of the code, not the person who 26should be in the name of the author of the code, not the person who
27installs it. I think it is helpful to put the author (if not yourself) 27installs it. Also use bzr commit's "--author" option.
28in the commit log as well (you can also use bzr commit's "--author" 28Do not install any of your own changes in the same commit.
29option); and to not install any of your own changes in the same commit.
30 29
313. With images, add the legal info to a README file in the directory 303. With images, add the legal info to a README file in the directory
32containing the image. 31containing the image.
diff --git a/configure.in b/configure.in
index c9ad44c769e..bcd2d674863 100644
--- a/configure.in
+++ b/configure.in
@@ -1927,8 +1927,8 @@ fi
1927if test "$pkg_check_gtk" != "yes"; then 1927if test "$pkg_check_gtk" != "yes"; then
1928 HAVE_GTK=no 1928 HAVE_GTK=no
1929if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then 1929if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
1930 GLIB_REQUIRED=2.6 1930 GLIB_REQUIRED=2.10
1931 GTK_REQUIRED=2.6 1931 GTK_REQUIRED=2.10
1932 GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" 1932 GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
1933 1933
1934 dnl Checks for libraries. 1934 dnl Checks for libraries.
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index a39b703b4dd..15b84c27075 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,25 @@
12011-10-18 Glenn Morris <rgm@gnu.org>
2
3 * maintaining.texi (Registering): Remove vc-initial-comment. (Bug#9745)
4
52011-10-18 Chong Yidong <cyd@gnu.org>
6
7 * display.texi (Faces): Simplify discussion. Move documentation
8 of list-faces-display here, from Standard Faces node. Note
9 special role of `default' background.
10 (Standard Faces): Note special role of `default' background. Note
11 that region face may be taken fom GTK. Add xref to Text Display.
12 (Text Scale): Rename from "Temporary Face Changes". Callers
13 changed. Don't bother documenting variable-pitch-mode.
14 (Font Lock): Copyedits. Remove font-lock-maximum-size.
15 (Useless Whitespace): Simplify description of
16 delete-trailing-whitespace. Note active region case.
17 (Text Display): Fix description of escape-glyph face assignment.
18 Remove unibye mode discussion. Update some parts for Unicode.
19 Move glyphless chars documentation to Lisp manual.
20
21 * frames.texi (Tooltips): Document x-gtk-use-system-tooltips.
22
12011-10-15 Chong Yidong <cyd@stupidchicken.com> 232011-10-15 Chong Yidong <cyd@stupidchicken.com>
2 24
3 * display.texi (Scrolling): Tweak explanation of scroll direction. 25 * display.texi (Scrolling): Tweak explanation of scroll direction.
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index e4e7dadd548..714e03720bc 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -109,7 +109,7 @@ command provides completion (@pxref{Completion}). If you enter a
109code-point, it should be a hexadecimal number (which is the convention 109code-point, it should be a hexadecimal number (which is the convention
110for Unicode). The command then inserts the corresponding character 110for Unicode). The command then inserts the corresponding character
111into the buffer. For example, both of the following insert the 111into the buffer. For example, both of the following insert the
112infinity sign (Unicode code-point @code{#x221E}): 112infinity sign (Unicode code-point @code{U+221E}):
113 113
114@example 114@example
115@kbd{C-x 8 @key{RET} infinity @key{RET}} 115@kbd{C-x 8 @key{RET} infinity @key{RET}}
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index d2f49c62e4a..68b2209ffba 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -21,7 +21,7 @@ the text is displayed.
21* Follow Mode:: Follow mode lets two windows scroll as one. 21* Follow Mode:: Follow mode lets two windows scroll as one.
22* Faces:: How to change the display style using faces. 22* Faces:: How to change the display style using faces.
23* Standard Faces:: Emacs' predefined faces. 23* Standard Faces:: Emacs' predefined faces.
24* Temporary Face Changes:: Commands to temporarily modify the default text face 24* Text Scale:: Increasing or decreasing text size in a buffer.
25* Font Lock:: Minor mode for syntactic highlighting using faces. 25* Font Lock:: Minor mode for syntactic highlighting using faces.
26* Highlight Interactively:: Tell Emacs what text to highlight. 26* Highlight Interactively:: Tell Emacs what text to highlight.
27* Fringes:: Enabling or disabling window fringes. 27* Fringes:: Enabling or disabling window fringes.
@@ -55,7 +55,7 @@ direction that the window moves relative to the text; this terminology
55was taken up by Emacs before the modern meaning of ``scrolling up'' 55was taken up by Emacs before the modern meaning of ``scrolling up''
56and ``scrolling down'' became widely adopted. Hence the strange 56and ``scrolling down'' became widely adopted. Hence the strange
57result that @key{PageDown} scrolls ``up'' in the Emacs sense. In this 57result that @key{PageDown} scrolls ``up'' in the Emacs sense. In this
58manual, we refer to scrolling ``foward'' and ``backward'' where 58manual, we refer to scrolling ``forward'' and ``backward'' where
59possible, in order to minimize confusion. 59possible, in order to minimize confusion.
60 60
61 The portion of a buffer displayed in a window always contains point. 61 The portion of a buffer displayed in a window always contains point.
@@ -439,76 +439,69 @@ one large window.
439@section Faces: Controlling Text Display Style 439@section Faces: Controlling Text Display Style
440@cindex faces 440@cindex faces
441 441
442 Emacs can display text in several different styles, which are called 442 Emacs can display text in several different styles, called
443@dfn{faces}. Each face can specify various @dfn{face attributes}, 443@dfn{faces}. Each face can specify various @dfn{face attributes},
444such as the font, height, weight and slant, the foreground and 444such as the font, height, weight, slant, foreground and background
445background color, and underlining or overlining. A face does not have 445color, and underlining or overlining. Most major modes assign faces
446to specify all of these attributes; often it inherits most of them 446to the text automatically, via Font Lock mode. @xref{Font Lock}, for
447from another face. 447more information about how these faces are assigned.
448 448
449 On a text-only terminal, not all face attributes are meaningful. 449@findex list-faces-display
450Some text-only terminals support inverse video, bold, and underline 450 To see what faces are currently defined, and what they look like,
451attributes; some support colors. Text-only terminals generally do not 451type @kbd{M-x list-faces-display}. With a prefix argument, this
452support changing the height, width or font. 452prompts for a regular expression, and displays only faces with names
453 453matching that regular expression (@pxref{Regexps}).
454 Most major modes assign faces to the text automatically through the 454
455work of Font Lock mode. @xref{Font Lock}, for more information about 455 It's possible for a given face to look different in different
456Font Lock mode and syntactic highlighting. You can print the current 456frames. For instance, some text-only terminals do not support all
457buffer with the highlighting that appears on your screen using the 457face attributes, particularly font, height, and width, and some
458command @code{ps-print-buffer-with-faces}. @xref{PostScript}. 458support a limited range of colors. The @code{list-faces-display}
459 459command shows the appearance for the selected frame.
460 Enriched mode, the mode for editing formatted text, provides
461commands and menus for specifying faces for text in the buffer.
462@xref{Format Faces}.
463 460
464@cindex face colors, setting 461@cindex face colors, setting
465 To alter the appearance of a face, use the customization buffer. 462@cindex background color
466@xref{Face Customization}. You can also use X resources to specify 463@cindex default face
467attributes of any particular face (@pxref{Resources}). When 464 You can customize a face to alter its appearance, and save those
468displaying a character, any attribute that isn't specified by its face 465changes for future Emacs sessions. @xref{Face Customization}. A face
469is taken from the @code{default} face, whose attributes reflect the 466does not have to specify every single attribute; often it inherits
470default settings of the frame itself. 467most attributes from another face. Any ultimately unspecified
468attribute is taken from a face named @code{default}, whose attributes
469are all specified. The @code{default} face is the default for
470displaying text, and its background color is also used as the frame's
471background color.
472
473 You can also use X resources to specify attributes of any particular
474face. @xref{Resources}.
471 475
472@findex set-face-foreground 476@findex set-face-foreground
473@findex set-face-background 477@findex set-face-background
474 You can also change the foreground and background colors of a 478 You can also change the foreground and background colors of a face
475specific face with @kbd{M-x set-face-foreground} and @kbd{M-x 479with @kbd{M-x set-face-foreground} and @kbd{M-x set-face-background}.
476set-face-background}. These commands prompt in the minibuffer for a 480These commands prompt in the minibuffer for a face name and a color
477face name and a color name, with completion, and then set that face to 481name, with completion, and then set that face to use the specified
478use the specified color. @xref{Face Customization}, for information 482color (@pxref{Face Customization}, for information about color names).
479about color names. These commands affect the face colors on all 483They affect the face colors on all frames, but their effects do not
480frames, both existing and those to be created in the future. These 484persist for future Emacs sessions, unlike using the customization
481changes do not, however, persist for future Emacs sessions; to make 485buffer or X resources. You can also use frame parameters to set
482lasting changes, use the customization buffer (@pxref{Face 486foreground and background colors for a specific frame; see @ref{Frame
483Customization}). 487Parameters}.
484 488
485 You can also set foreground and background colors for the current 489 Emacs can display variable-width fonts, but some Emacs commands,
486frame only; see @ref{Frame Parameters}. 490particularly indentation commands, do not account for variable
487 491character display widths. Therefore, we recommend not using
488 Emacs can display variable-width fonts, but some of the Emacs 492variable-width fonts for most faces, particularly those assigned by
489commands that calculate width and indentation do not know how to 493Font Lock mode.
490calculate variable widths. This can sometimes lead to incorrect
491results when you use variable-width fonts. In particular, indentation
492commands can give inconsistent results, so we recommend you avoid
493variable-width fonts, especially for editing program source code.
494 494
495@node Standard Faces 495@node Standard Faces
496@section Standard Faces 496@section Standard Faces
497 497
498@findex list-faces-display
499 To see what faces are currently defined, and what they look like,
500type @kbd{M-x list-faces-display}. It's possible for a given face to
501look different in different frames; this command shows the appearance
502in the frame in which you type it. With a prefix argument, this
503prompts for a regular expression, and displays only faces with names
504matching that regular expression.
505
506 Here are the standard faces for specifying text appearance. You can 498 Here are the standard faces for specifying text appearance. You can
507apply them to specific text when you want the effects they produce. 499apply them to specific text when you want the effects they produce.
508 500
509@table @code 501@table @code
510@item default 502@item default
511This face is used for ordinary text that doesn't specify any face. 503This face is used for ordinary text that doesn't specify any face.
504Its background color is used as the frame's background color.
512@item bold 505@item bold
513This face uses a bold variant of the default font. 506This face uses a bold variant of the default font.
514@item italic 507@item italic
@@ -535,37 +528,38 @@ their own faces for this purpose.)
535 528
536@table @code 529@table @code
537@item highlight 530@item highlight
538This face is used for highlighting portions of text, in various modes. 531This face is used for text highlighting in various contexts, such as
539For example, mouse-sensitive text is highlighted using this face. 532when the mouse cursor is moved over a hyperlink.
540@item isearch 533@item isearch
541This face is used for highlighting the current Isearch match 534This face is used to highlight the current Isearch match
542(@pxref{Incremental Search}). 535(@pxref{Incremental Search}).
543@item query-replace 536@item query-replace
544This face is used for highlighting the current Query Replace match 537This face is used to highlight the current Query Replace match
545(@pxref{Replace}). 538(@pxref{Replace}).
546@item lazy-highlight 539@item lazy-highlight
547This face is used for lazy highlighting of Isearch and Query Replace 540This face is used to highlight ``lazy matches'' for Isearch and Query
548matches other than the current one. 541Replace (matches other than the current one).
549@item region 542@item region
550This face is used for displaying a selected region (@pxref{Mark}). 543This face is used for displaying an active region (@pxref{Mark}).
544When Emacs is built with GTK support, its colors are taken from the
545current GTK theme.
551@item secondary-selection 546@item secondary-selection
552This face is used for displaying a secondary X selection (@pxref{Secondary 547This face is used for displaying a secondary X selection (@pxref{Secondary
553Selection}). 548Selection}).
554@item trailing-whitespace 549@item trailing-whitespace
555The face for highlighting excess spaces and tabs at the end of a line 550The face for highlighting excess spaces and tabs at the end of a line
556when @code{show-trailing-whitespace} is non-@code{nil}; see 551when @code{show-trailing-whitespace} is non-@code{nil} (@pxref{Useless
557@ref{Useless Whitespace}. 552Whitespace}).
558@item nobreak-space
559The face for displaying the character ``nobreak space.''
560@item escape-glyph 553@item escape-glyph
561The face for highlighting the @samp{\} or @samp{^} that indicates 554The face for displaying control characters and escape sequences
562a control character. It's also used when @samp{\} indicates a 555(@pxref{Text Display}).
563nobreak space or nobreak (soft) hyphen. 556@item nobreak-space
557The face for displaying ``non-breaking'' space characters (@pxref{Text
558Display}).
564@end table 559@end table
565 560
566 These faces control the appearance of parts of the Emacs frame. 561 The following faces control the appearance of parts of the Emacs
567They exist as faces to provide a consistent way to customize the 562frame:
568appearance of these parts of the frame.
569 563
570@table @code 564@table @code
571@item mode-line 565@item mode-line
@@ -588,11 +582,8 @@ at the top of a window just as the mode line appears at the bottom.
588Most windows do not have a header line---only some special modes, such 582Most windows do not have a header line---only some special modes, such
589Info mode, create one. 583Info mode, create one.
590@item vertical-border 584@item vertical-border
591This face is used for the vertical divider between windows. 585This face is used for the vertical divider between windows on
592By default this face inherits from the @code{mode-line-inactive} face 586text-only terminals.
593on character terminals. On graphical displays the foreground color of
594this face is used for the vertical line between windows without
595scrollbars.
596@item minibuffer-prompt 587@item minibuffer-prompt
597@cindex @code{minibuffer-prompt} face 588@cindex @code{minibuffer-prompt} face
598@vindex minibuffer-prompt-properties 589@vindex minibuffer-prompt-properties
@@ -607,35 +598,37 @@ The face for the fringes to the left and right of windows on graphic
607displays. (The fringes are the narrow portions of the Emacs frame 598displays. (The fringes are the narrow portions of the Emacs frame
608between the text area and the window's right and left borders.) 599between the text area and the window's right and left borders.)
609@xref{Fringes}. 600@xref{Fringes}.
610@item scroll-bar
611This face determines the visual appearance of the scroll bar.
612@xref{Scroll Bars}.
613@item border
614This face determines the color of the frame border.
615@item cursor 601@item cursor
616This face determines the color of the cursor. 602This face determines the color of the text cursor.
603@item tooltip
604This face is used for tooltip text. By default, if Emacs is built
605with GTK support, tooltips are drawn via GTK and this face has no
606effect. @xref{Tooltips}.
617@item mouse 607@item mouse
618This face determines the color of the mouse pointer. 608This face determines the color of the mouse pointer.
609@end table
610
611 The following faces likewise control the appearance of parts of the
612Emacs frame, but only on text-only terminals, or when Emacs is built
613on X with no toolkit support. (For all other cases, the appearance of
614the respective frame elements is determined by system-wide settings.)
615
616@table @code
617@item scroll-bar
618This face determines the visual appearance of the scroll bar.
619@xref{Scroll Bars}.
619@item tool-bar 620@item tool-bar
620This face determines the color of tool bar icons. @xref{Tool Bars}. 621This face determines the color of tool bar icons. @xref{Tool Bars}.
621@item tooltip
622This face is used for tooltips. @xref{Tooltips}.
623@item menu 622@item menu
624@cindex menu bar appearance 623@cindex menu bar appearance
625@cindex @code{menu} face, no effect if customized 624@cindex @code{menu} face, no effect if customized
626@cindex customization of @code{menu} face 625@cindex customization of @code{menu} face
627This face determines the colors and font of Emacs's menus. @xref{Menu 626This face determines the colors and font of Emacs's menus. @xref{Menu
628Bars}. This has no effect in Emacs built with GTK and in the 627Bars}.
629MS-Windows/Mac ports; you need to use system-wide styles and options
630to change the appearance of GTK, Windows, or Mac menus. Setting the
631font of LessTif/Motif menus is currently not supported; attempts to
632set the font are ignored in this case.
633@end table 628@end table
634 629
635@node Temporary Face Changes 630@node Text Scale
636@section Temporary Face Changes 631@section Text Scale
637
638The following commands change the default face within a buffer.
639 632
640@cindex adjust buffer face height 633@cindex adjust buffer face height
641@findex text-scale-adjust 634@findex text-scale-adjust
@@ -652,9 +645,11 @@ determine which action to take.
652 645
653 The final key of these commands may be repeated without the leading 646 The final key of these commands may be repeated without the leading
654@kbd{C-x}. For instance, @kbd{C-x C-= C-= C-=} increases the face 647@kbd{C-x}. For instance, @kbd{C-x C-= C-= C-=} increases the face
655height by three steps. Each step scales the height of the default 648height by three steps. Each step scales the text height by a factor
656face by the value of the variable @code{text-scale-mode-step}. As a 649of 1.2; to change this factor, customize the variable
657special case, an argument of 0 removes any scaling currently active. 650@code{text-scale-mode-step}. As an exception, a numeric argument of 0
651to the @code{text-scale-adjust} command restores the default height,
652similar to typing @kbd{C-x C-0}.
658 653
659@cindex increase buffer face height 654@cindex increase buffer face height
660@findex text-scale-increase 655@findex text-scale-increase
@@ -668,21 +663,14 @@ You may find it convenient to bind to these commands, rather than
668 663
669@cindex set buffer face height 664@cindex set buffer face height
670@findex text-scale-set 665@findex text-scale-set
671The command @code{text-scale-set} sets the height of the default face 666 The command @code{text-scale-set} scales the height of the default
672in the current buffer to an absolute level specified by its prefix 667face in the current buffer to an absolute level specified by its
673argument. 668prefix argument.
674 669
675@findex text-scale-mode 670@findex text-scale-mode
676 The above commands automatically enable or disable the minor mode 671 The above commands automatically enable the minor mode
677@code{text-scale-mode}, depending on whether the current font scaling 672@code{text-scale-mode} if the current font scaling is other than 1,
678is other than 1 or not. 673and disable it otherwise.
679
680@cindex variable pitch mode
681@findex variable-pitch-mode
682 To temporarily change the face in the current buffer to a
683variable-pitch (``proportional'') font, use the command @kbd{M-x
684variable-pitch-mode} to enable or disable the Variable Pitch minor
685mode.
686 674
687@node Font Lock 675@node Font Lock
688@section Font Lock mode 676@section Font Lock mode
@@ -691,41 +679,36 @@ mode.
691@cindex syntax highlighting and coloring 679@cindex syntax highlighting and coloring
692 680
693 Font Lock mode is a minor mode, always local to a particular buffer, 681 Font Lock mode is a minor mode, always local to a particular buffer,
694which highlights (or ``fontifies'') the buffer contents according to 682which assigns faces to (or @dfn{fontifies}) the text in the buffer.
695the syntax of the text you are editing. It can recognize comments and 683Each buffer's major mode tells Font Lock mode which text to fontify;
696strings in most programming languages; in several languages, it can 684for instance, programming language modes fontify syntactically
697also recognize and properly highlight various other important 685relevant constructs like comments, strings, and function names.
698constructs, such as names of functions being defined or reserved
699keywords. Some special modes, such as Occur mode and Info mode, have
700completely specialized ways of assigning fonts for Font Lock mode.
701 686
702@findex font-lock-mode 687@findex font-lock-mode
703 Font Lock mode is turned on by default in all modes which support it. 688 Font Lock mode is enabled by default. To toggle it in the current
704You can toggle font-lock for each buffer with the command @kbd{M-x 689buffer, type @kbd{M-x font-lock-mode}. A positive numeric argument
705font-lock-mode}. Using a positive argument unconditionally turns Font 690unconditionally enables Font Lock mode, and a negative or zero
706Lock mode on, and a negative or zero argument turns it off. 691argument disables it.
707 692
708@findex global-font-lock-mode 693@findex global-font-lock-mode
709@vindex global-font-lock-mode 694@vindex global-font-lock-mode
710 If you do not wish Font Lock mode to be turned on by default, 695 To toggle Font Lock mode in all buffers, type @kbd{M-x
711customize the variable @code{global-font-lock-mode} using the Customize 696global-font-lock-mode}. To impose this setting for future Emacs
712interface (@pxref{Easy Customization}), or use the function 697sessions, customize the variable @code{global-font-lock-mode}
713@code{global-font-lock-mode} in your @file{.emacs} file, like this: 698(@pxref{Easy Customization}), or add the following line to your init
699file:
714 700
715@example 701@example
716(global-font-lock-mode 0) 702(global-font-lock-mode 0)
717@end example 703@end example
718 704
719@noindent
720This variable, like all the variables that control Font Lock mode,
721take effect whenever fontification is done; that is, potentially at
722any time.
723
724@findex turn-on-font-lock 705@findex turn-on-font-lock
725 If you have disabled Global Font Lock mode, you can still enable Font 706@noindent
707If you have disabled Global Font Lock mode, you can still enable Font
726Lock for specific major modes by adding the function 708Lock for specific major modes by adding the function
727@code{turn-on-font-lock} to the mode hooks (@pxref{Hooks}). For 709@code{turn-on-font-lock} to the mode hooks (@pxref{Hooks}). For
728example, to enable Font Lock mode for editing C files, you can do this: 710example, to enable Font Lock mode for editing C files, you can do
711this:
729 712
730@example 713@example
731(add-hook 'c-mode-hook 'turn-on-font-lock) 714(add-hook 'c-mode-hook 'turn-on-font-lock)
@@ -739,27 +722,19 @@ use that customization buffer to customize the appearance of these
739faces. @xref{Face Customization}. 722faces. @xref{Face Customization}.
740 723
741@vindex font-lock-maximum-decoration 724@vindex font-lock-maximum-decoration
742 The variable @code{font-lock-maximum-decoration} specifies the 725 You can customize the variable @code{font-lock-maximum-decoration}
743preferred level of fontification, for modes that provide multiple 726to alter the amount of fontification applied by Font Lock mode, for
744levels. Level 1 is the least amount of fontification; some modes 727major modes that support this feature. The value should be a number
745support levels as high as 3. The normal default is ``as high as 728(with 1 representing a minimal amount of fontification; some modes
746possible.'' You can specify an integer, which applies to all modes, or 729support levels as high as 3); or @code{t}, meaning ``as high as
747you can specify different numbers for particular major modes; for 730possible'' (the default). You can also specify different numbers for
748example, to use level 1 for C/C++ modes, and the default level 731particular major modes; for example, to use level 1 for C/C++ modes,
749otherwise, use this: 732and the default level otherwise, use the value
750 733
751@example 734@example
752(setq font-lock-maximum-decoration 735'((c-mode . 1) (c++-mode . 1)))
753 '((c-mode . 1) (c++-mode . 1)))
754@end example 736@end example
755 737
756@vindex font-lock-maximum-size
757 Fontification can be too slow for large buffers, so you can suppress
758it for buffers above a certain size. The variable
759@code{font-lock-maximum-size} specifies a buffer size, beyond which
760buffer fontification is suppressed.
761
762@c @w is used below to prevent a bad page-break.
763@vindex font-lock-beginning-of-syntax-function 738@vindex font-lock-beginning-of-syntax-function
764@cindex incorrect fontification 739@cindex incorrect fontification
765@cindex parenthesis in column zero and fontification 740@cindex parenthesis in column zero and fontification
@@ -768,11 +743,10 @@ buffer fontification is suppressed.
768relies on analysis of the syntactic structure of the buffer text. For 743relies on analysis of the syntactic structure of the buffer text. For
769the sake of speed, some modes, including Lisp mode, rely on a special 744the sake of speed, some modes, including Lisp mode, rely on a special
770convention: an open-parenthesis or open-brace in the leftmost column 745convention: an open-parenthesis or open-brace in the leftmost column
771always defines the @w{beginning} of a defun, and is thus always 746always defines the beginning of a defun, and is thus always outside
772outside any string or comment. (@xref{Left Margin Paren}.) If you 747any string or comment. Therefore, you should avoid placing a an
773don't follow this convention, Font Lock mode can misfontify the text 748open-parenthesis or open-brace in the leftmost column, if it is inside
774that follows an open-parenthesis or open-brace in the leftmost column 749a string or comment. @xref{Left Margin Paren}, for details.
775that is inside a string or comment.
776 750
777@cindex slow display during scrolling 751@cindex slow display during scrolling
778 The variable @code{font-lock-beginning-of-syntax-function}, which is 752 The variable @code{font-lock-beginning-of-syntax-function}, which is
@@ -788,11 +762,11 @@ considerably slow down redisplay while scrolling, particularly if you
788are close to the end of a large buffer. 762are close to the end of a large buffer.
789 763
790@findex font-lock-add-keywords 764@findex font-lock-add-keywords
791 Font Lock highlighting patterns already exist for many modes, but you 765 Font Lock highlighting patterns already exist for most modes, but
792may want to fontify additional patterns. You can use the function 766you may want to fontify additional patterns. You can use the function
793@code{font-lock-add-keywords}, to add your own highlighting patterns for 767@code{font-lock-add-keywords}, to add your own highlighting patterns
794a particular mode. For example, to highlight @samp{FIXME:} words in C 768for a particular mode. For example, to highlight @samp{FIXME:} words
795comments, use this: 769in C comments, use this:
796 770
797@example 771@example
798(add-hook 'c-mode-hook 772(add-hook 'c-mode-hook
@@ -803,19 +777,20 @@ comments, use this:
803@end example 777@end example
804 778
805@findex font-lock-remove-keywords 779@findex font-lock-remove-keywords
806 To remove keywords from the font-lock highlighting patterns, use the 780@noindent
781To remove keywords from the font-lock highlighting patterns, use the
807function @code{font-lock-remove-keywords}. @xref{Search-based 782function @code{font-lock-remove-keywords}. @xref{Search-based
808Fontification,,, elisp, The Emacs Lisp Reference Manual}. 783Fontification,,, elisp, The Emacs Lisp Reference Manual}.
809 784
810@cindex just-in-time (JIT) font-lock 785@cindex just-in-time (JIT) font-lock
811@cindex background syntax highlighting 786@cindex background syntax highlighting
812 Fontifying large buffers can take a long time. To avoid large 787 Fontifying large buffers can take a long time. To avoid large
813delays when a file is visited, Emacs fontifies only the visible 788delays when a file is visited, Emacs initially fontifies only the
814portion of a buffer. As you scroll through the buffer, each portion 789visible portion of a buffer. As you scroll through the buffer, each
815that becomes visible is fontified as soon as it is displayed; this 790portion that becomes visible is fontified as soon as it is displayed;
816type of Font Lock is called @dfn{Just-In-Time} (or @dfn{JIT}) Lock. 791this type of Font Lock is called @dfn{Just-In-Time} (or @dfn{JIT})
817You can control how JIT Lock behaves, including telling it to perform 792Lock. You can control how JIT Lock behaves, including telling it to
818fontification while idle, by customizing variables in the 793perform fontification while idle, by customizing variables in the
819customization group @samp{jit-lock}. @xref{Specific Customization}. 794customization group @samp{jit-lock}. @xref{Specific Customization}.
820 795
821@node Highlight Interactively 796@node Highlight Interactively
@@ -826,7 +801,7 @@ customization group @samp{jit-lock}. @xref{Specific Customization}.
826 801
827@findex highlight-changes-mode 802@findex highlight-changes-mode
828Highlight Changes mode is a minor mode that @dfn{highlights} the parts 803Highlight Changes mode is a minor mode that @dfn{highlights} the parts
829of the buffer were changed most recently, by giving that text a 804of the buffer that were changed most recently, by giving that text a
830different face. To enable or disable Highlight Changes mode, use 805different face. To enable or disable Highlight Changes mode, use
831@kbd{M-x highlight-changes-mode}. 806@kbd{M-x highlight-changes-mode}.
832 807
@@ -931,21 +906,23 @@ mode's symbol is a member of the list @code{hi-lock-exclude-modes}.
931display symbols that provide information about the text in the window. 906display symbols that provide information about the text in the window.
932 907
933 The most common use of the fringes is to indicate a continuation 908 The most common use of the fringes is to indicate a continuation
934line, when one line of text is split into multiple lines on the 909line (@pxref{Continuation Lines}). When one line of text is split
935screen. The left fringe shows a curving arrow for each screen line 910into multiple screen lines, the left fringe shows a curving arrow for
936except the first, indicating that ``this is not the real beginning.'' 911each screen line except the first, indicating that ``this is not the
937The right fringe shows a curving arrow for each screen line except the 912real beginning.'' The right fringe shows a curving arrow for each
938last, indicating that ``this is not the real end.'' If the line's 913screen line except the last, indicating that ``this is not the real
939direction is right-to-left (@pxref{Bidirectional Editing}), the 914end.'' If the line's direction is right-to-left (@pxref{Bidirectional
940meaning of the curving arrows in the left and right fringes are 915Editing}), the meanings of the curving arrows in the fringes are
941swapped. 916swapped.
942 917
943 The fringes indicate line truncation with short horizontal arrows 918 The fringes indicate line truncation with short horizontal arrows
944meaning ``there's more text on this line which is scrolled 919meaning ``there's more text on this line which is scrolled
945horizontally out of view;'' clicking the mouse on one of the arrows 920horizontally out of view.'' Clicking the mouse on one of the arrows
946scrolls the display horizontally in the direction of the arrow. The 921scrolls the display horizontally in the direction of the arrow.
947fringes can also indicate other things, such as empty lines, or where a 922
948program you are debugging is executing (@pxref{Debuggers}). 923 The fringes can also indicate other things, such as buffer
924boundaries (@pxref{Displaying Boundaries}), and where a program you
925are debugging is executing (@pxref{Debuggers}).
949 926
950@findex set-fringe-style 927@findex set-fringe-style
951@findex fringe-mode 928@findex fringe-mode
@@ -958,10 +935,10 @@ for the selected frame, use @kbd{M-x set-fringe-style}.
958 935
959@vindex indicate-buffer-boundaries 936@vindex indicate-buffer-boundaries
960 On a graphical display, Emacs can indicate the buffer boundaries in 937 On a graphical display, Emacs can indicate the buffer boundaries in
961the fringes. It indicates the first line and the last line with 938the fringes. If you enable this feature, the first line and the last
962angle images in the fringes. This can be combined with up and down 939line are marked with angle images in the fringes. This can be
963arrow images which say whether it is possible to scroll the window up 940combined with up and down arrow images which say whether it is
964and down. 941possible to scroll the window.
965 942
966 The buffer-local variable @code{indicate-buffer-boundaries} controls 943 The buffer-local variable @code{indicate-buffer-boundaries} controls
967how the buffer boundaries and window scrolling is indicated in the 944how the buffer boundaries and window scrolling is indicated in the
@@ -1006,25 +983,22 @@ the location of point is enough to show you that the spaces are
1006present. 983present.
1007 984
1008@findex delete-trailing-whitespace 985@findex delete-trailing-whitespace
1009 Type @kbd{M-x delete-trailing-whitespace @key{RET}} to delete all 986 Type @kbd{M-x delete-trailing-whitespace} to delete all trailing
1010trailing whitespace within the buffer's accessible portion 987whitespace within the buffer. If the region is active, it deletes all
1011(@pxref{Narrowing}). This command does not remove newline characters. 988trailing whitespace in the region instead.
1012 989
1013@vindex indicate-empty-lines 990@vindex indicate-empty-lines
1014@cindex unused lines 991@cindex unused lines
1015@cindex fringes, and unused line indication 992@cindex fringes, and unused line indication
1016 Emacs can indicate unused lines at the end of the window with a 993 On graphical displays, Emacs can indicate unused lines at the end of
1017small image in the left fringe (@pxref{Fringes}). The image appears 994the window with a small image in the left fringe (@pxref{Fringes}).
1018for window lines that do not correspond to any buffer text. Blank 995The image appears for window lines that do not correspond to any
1019lines at the end of the buffer then stand out because they do not have 996buffer text. Blank lines at the end of the buffer then stand out
1020this image in the fringe. 997because they do not have this image in the fringe. To enable this
1021 998feature, set the buffer-local variable @code{indicate-empty-lines} to
1022 To enable this feature, set the buffer-local variable 999a non-@code{nil} value. You can enable or disable this feature for
1023@code{indicate-empty-lines} to a non-@code{nil} value. You can enable 1000all new buffers by setting the default value of this variable,
1024or disable this feature for all new buffers by setting the default 1001e.g.@:@code{(setq-default indicate-empty-lines t)}.
1025value of this variable, e.g.@: @code{(setq-default
1026indicate-empty-lines t)};. (This feature currently doesn't work on
1027text-only terminals.)
1028 1002
1029@node Selective Display 1003@node Selective Display
1030@section Selective Display 1004@section Selective Display
@@ -1178,11 +1152,10 @@ percentage of the total charge.
1178@cindex mode line, 3D appearance 1152@cindex mode line, 3D appearance
1179@cindex attributes of mode line, changing 1153@cindex attributes of mode line, changing
1180@cindex non-integral number of lines in a window 1154@cindex non-integral number of lines in a window
1181 By default, the mode line is drawn on graphics displays with 1155 On a graphical display, the mode line is drawn as a 3D box. If you
11823D-style highlighting, like that of a button when it is not being 1156don't like this effect, you can disable it by customizing the
1183pressed. If you don't like this effect, you can disable the 3D 1157@code{mode-line} face and setting its @code{box} attribute to
1184highlighting of the mode line, by customizing the attributes of the 1158@code{nil}. @xref{Face Customization}.
1185@code{mode-line} face. @xref{Face Customization}.
1186 1159
1187@cindex non-selected windows, mode line appearance 1160@cindex non-selected windows, mode line appearance
1188 By default, the mode line of nonselected windows is displayed in a 1161 By default, the mode line of nonselected windows is displayed in a
@@ -1210,51 +1183,45 @@ formats by setting each of the variables @code{eol-mnemonic-unix},
1210@node Text Display 1183@node Text Display
1211@section How Text Is Displayed 1184@section How Text Is Displayed
1212@cindex characters (in text) 1185@cindex characters (in text)
1186@cindex printing character
1213 1187
1214 @acronym{ASCII} printing characters (octal codes 040 through 0176) in Emacs 1188 Most characters are @dfn{printing characters}: when they appear in a
1215buffers are displayed with their graphics, as are non-@acronym{ASCII} multibyte 1189buffer, they are displayed literally on the screen. Printing
1216printing characters (octal codes above 0400). 1190characters include @acronym{ASCII} numbers, letters, and punctuation
1191characters, as well as many non-@acronym{ASCII} characters.
1217 1192
1218@vindex tab-width 1193@vindex tab-width
1219 Some @acronym{ASCII} control characters are displayed in special 1194@cindex control character
1220ways. The newline character (octal code 012) is displayed by starting 1195 The @acronym{ASCII} character set contains non-printing @dfn{control
1221a new line. The tab character (octal code 011) is displayed by moving 1196characters}. Two of these are displayed specially: the newline
1222to the next tab stop column (normally every 8 columns). The number of 1197character (Unicode code point @code{U+000A}) is displayed by starting
1223spaces per tab is controlled by the variable @code{tab-width}, which 1198a new line, while the tab character (@code{U+0009}) is displayed as a
1224must have an integer value between 1 and 1000, inclusive, and is made 1199space that extends to the next tab stop column (normally every 8
1225buffer-local by changing it. Note that how the tab character in the buffer 1200columns). The number of spaces per tab is controlled by the
1226is displayed has nothing to do with the definition of @key{TAB} as a 1201buffer-local variable @code{tab-width}, which must have an integer
1227command. 1202value between 1 and 1000, inclusive. Note that how the tab character
1228 1203in the buffer is displayed has nothing to do with the definition of
1229 Other @acronym{ASCII} control characters are normally displayed as a caret 1204@key{TAB} as a command.
1230(@samp{^}) followed by the non-control version of the character; thus, 1205
1231control-A is displayed as @samp{^A}. The caret appears in face 1206 Other @acronym{ASCII} control characters are displayed as a caret
1232@code{escape-glyph}. 1207(@samp{^}) followed by the non-control version of the character, with
1233 1208the @code{escape-glyph} face. For instance, the @samp{control-A}
1234 Non-@acronym{ASCII} characters 0200 through 0237 (octal) are 1209character, @code{U+0001}, is displayed as @samp{^A}.
1235displayed with octal escape sequences; thus, character code 0230
1236(octal) is displayed as @samp{\230}. The backslash appears in face
1237@code{escape-glyph}.
1238 1210
1239@vindex ctl-arrow 1211@vindex ctl-arrow
1240 If the variable @code{ctl-arrow} is @code{nil}, control characters in 1212 The non-@acronym{ASCII}, non-printing characters @code{U+0080}
1241the buffer are displayed with octal escape sequences, except for newline 1213(octal 200) through @code{U+009F} (octal 237) are displayed as octal
1242and tab. Altering the value of @code{ctl-arrow} makes it local to the 1214escape sequences, with the @code{escape-glyph} face. For instance,
1243current buffer; until that time, the default value is in effect. The 1215character code @code{U+0098} (octal 230) is displayed as @samp{\230}.
1244default is initially @code{t}. 1216If you change the buffer-local variable @code{ctl-arrow} to
1245 1217@code{nil}, @acronym{ASCII} control characters are also displayed as
1246 The display of character codes 0240 through 0377 (octal) may be 1218octal escape sequences instead of caret escape sequences.
1247either as escape sequences or as graphics. They do not normally occur
1248in multibyte buffers, but if they do, they are displayed as Latin-1
1249graphics. In unibyte mode, if you enable European display they are
1250displayed using their graphics (assuming your terminal supports them),
1251otherwise as escape sequences. @xref{Unibyte Mode}.
1252 1219
1253@vindex nobreak-char-display 1220@vindex nobreak-char-display
1254@cindex no-break space, display 1221@cindex non-breaking space, display
1255@cindex no-break hyphen, display 1222@cindex non-breaking hyphen, display
1256@cindex soft hyphen, display 1223@cindex soft hyphen, display
1257 Some character sets define ``no-break'' versions of the space and 1224 There are two special ``non-breaking'' versions of the space and
1258hyphen characters, which are used where a line should not be broken. 1225hyphen characters, which are used where a line should not be broken.
1259Emacs normally displays these characters with special faces 1226Emacs normally displays these characters with special faces
1260(respectively, @code{nobreak-space} and @code{escape-glyph}) to 1227(respectively, @code{nobreak-space} and @code{escape-glyph}) to
@@ -1269,45 +1236,13 @@ elisp, The Emacs Lisp Reference Manual}.
1269 1236
1270@cindex glyphless characters 1237@cindex glyphless characters
1271@cindex characters with no font glyphs 1238@cindex characters with no font glyphs
1272 On graphics displays, some characters could have no glyphs in any of 1239 On graphical displays, some characters may have no glyphs in any of
1273the fonts available to Emacs. On text terminals, some characters 1240the fonts available to Emacs. These @dfn{glyphless characters} are
1274could be impossible to encode with the terminal coding system 1241normally displayed as boxes containing the hexadecimal character code.
1275(@pxref{Terminal Coding}). Emacs can display such @dfn{glyphless} 1242You can control the display method by customizing the variable
1276characters using one of the following methods: 1243@code{glyphless-char-display-control}. @xref{Glyphless Chars,,
1277 1244Glyphless Character Display, elisp, The Emacs Lisp Reference Manual},
1278@table @code 1245for details.
1279@item zero-width
1280Don't display the character.
1281
1282@item thin-space
1283Display a thin space, 1-pixel wide on graphics displays or 1-character
1284wide on text terminals.
1285
1286@item empty-box
1287Display an empty box.
1288
1289@item acronym
1290Display the acronym of the character's name (such as @sc{zwnj} or
1291@sc{rlm}) in a box.
1292
1293@item hex-code
1294Display the Unicode codepoint of the character in hexadecimal
1295notation, in a box.
1296@end table
1297
1298@noindent
1299@cindex @code{glyphless-char} face
1300With the exception of @code{zero-width}, all other methods draw these
1301characters in a special face @code{glyphless-char}, which you can
1302customize.
1303
1304@vindex glyphless-char-display-control
1305@vindex char-acronym-table
1306To control what glyphless characters are displayed using which method,
1307customize the variable @code{glyphless-char-display-control}; see its
1308doc string for the details. For even finer control, set the elements
1309of 2 char-tables: @code{glyphless-char-display} and
1310@code{char-acronym-table}.
1311 1246
1312@node Cursor Display 1247@node Cursor Display
1313@section Displaying the Cursor 1248@section Displaying the Cursor
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 8a15c783fc0..44f1aed134e 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -350,7 +350,7 @@ Controlling the Display
350* Follow Mode:: Follow mode lets two windows scroll as one. 350* Follow Mode:: Follow mode lets two windows scroll as one.
351* Faces:: How to change the display style using faces. 351* Faces:: How to change the display style using faces.
352* Standard Faces:: Emacs' predefined faces. 352* Standard Faces:: Emacs' predefined faces.
353* Temporary Face Changes:: Commands to temporarily modify the default text face 353* Text Scale:: Increasing or decreasing text size in a buffer.
354* Font Lock:: Minor mode for syntactic highlighting using faces. 354* Font Lock:: Minor mode for syntactic highlighting using faces.
355* Highlight Interactively:: Tell Emacs what text to highlight. 355* Highlight Interactively:: Tell Emacs what text to highlight.
356* Fringes:: Enabling or disabling window fringes. 356* Fringes:: Enabling or disabling window fringes.
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 14fdb3121a4..4c239d364f0 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -299,7 +299,7 @@ you can access them without having to display the menu bar.
299 299
300@item S-Mouse-1 300@item S-Mouse-1
301This menu is for changing the default face within the window's buffer. 301This menu is for changing the default face within the window's buffer.
302@xref{Temporary Face Changes}. 302@xref{Text Scale}.
303@end table 303@end table
304 304
305@node Mode Line Mouse 305@node Mode Line Mouse
@@ -1185,6 +1185,13 @@ options for displaying tooltips, use @kbd{M-x customize-group
1185@key{RET} tooltip @key{RET}}. @xref{X Resources}, for information on 1185@key{RET} tooltip @key{RET}}. @xref{X Resources}, for information on
1186customizing the windows that display tooltips. 1186customizing the windows that display tooltips.
1187 1187
1188@vindex x-gtk-use-system-tooltips
1189 If Emacs is built with GTK support, it displays tooltips via GTK,
1190using the default appearance of GTK tooltips. To disable this, change
1191the variable @code{x-gtk-use-system-tooltips} to @code{nil}. If you
1192do this, or if Emacs is built without GTK support, the @code{tooltip}
1193face specifies most attributes of the tooltip text.
1194
1188@node Mouse Avoidance 1195@node Mouse Avoidance
1189@section Mouse Avoidance 1196@section Mouse Avoidance
1190@cindex avoiding mouse in the way of your typing 1197@cindex avoiding mouse in the way of your typing
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index 85d92c9fcd7..f4a5a2858cf 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -54,12 +54,12 @@ to change the foreground color of the face at that position (if the
54instead). To discard the settings, create a new frame and close the 54instead). To discard the settings, create a new frame and close the
55altered one. 55altered one.
56 56
57 @key{S-Mouse-1} (i.e., clicking the left mouse button 57 @key{S-Mouse-1} (i.e., clicking the left mouse button while holding
58while holding down the @key{Shift} key) adjusts the region to the 58down the @key{Shift} key) adjusts the region to the click position,
59click position, just like @key{Mouse-3} (@code{mouse-save-then-kill}); 59just like @key{Mouse-3} (@code{mouse-save-then-kill}); it does not pop
60it does not pop up a menu for changing the default face, as 60up a menu for changing the default face, as @key{S-Mouse-1} normally
61@key{S-Mouse-1} normally does (@pxref{Temporary Face Changes}). This 61does (@pxref{Text Scale}). This change makes Emacs behave more like
62change makes Emacs behave more like other Mac / GNUstep applications. 62other Mac / GNUstep applications.
63 63
64 When you open or save files using the menus, or using the 64 When you open or save files using the menus, or using the
65@key{Cmd-o} and @key{Cmd-S} bindings, Emacs uses graphical file 65@key{Cmd-o} and @key{Cmd-S} bindings, Emacs uses graphical file
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index dafc9327c74..354812edc1f 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -898,10 +898,11 @@ You can specify a different default by setting the variable
898numeric argument; then it reads the initial revision ID for this 898numeric argument; then it reads the initial revision ID for this
899particular file using the minibuffer. 899particular file using the minibuffer.
900 900
901@vindex vc-initial-comment 901@c See http://debbugs.gnu.org/9745
902 If @code{vc-initial-comment} is non-@code{nil}, @kbd{C-x v i} reads an 902@c @vindex vc-initial-comment
903initial comment to describe the purpose of this source file. Reading 903@c If @code{vc-initial-comment} is non-@code{nil}, @kbd{C-x v i} reads an
904the initial comment works like reading a log entry (@pxref{Log Buffer}). 904@c initial comment to describe the purpose of this source file. Reading
905@c the initial comment works like reading a log entry (@pxref{Log Buffer}).
905 906
906@node VC Change Log 907@node VC Change Log
907@subsubsection VC Change Log 908@subsubsection VC Change Log
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 345e69e6989..490280dae29 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,7 @@
12011-10-18 Chong Yidong <cyd@gnu.org>
2
3 * display.texi (Glyphless Chars): New node.
4
12011-10-13 Chong Yidong <cyd@stupidchicken.com> 52011-10-13 Chong Yidong <cyd@stupidchicken.com>
2 6
3 * text.texi (Yanking): Document yank-excluded-properties. 7 * text.texi (Yanking): Document yank-excluded-properties.
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 18cb93557e9..034d92f78c3 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -36,6 +36,7 @@ that Emacs presents to the user.
36* Window Systems:: Which window system is being used. 36* Window Systems:: Which window system is being used.
37* Bidirectional Display:: Display of bidirectional scripts, such as 37* Bidirectional Display:: Display of bidirectional scripts, such as
38 Arabic and Farsi. 38 Arabic and Farsi.
39* Glyphless Chars:: How glyphless characters are drawn.
39@end menu 40@end menu
40 41
41@node Refresh Screen 42@node Refresh Screen
@@ -6242,3 +6243,96 @@ affect all Emacs frames and windows.
6242appropriate mirrored character in the reordered text. Lisp programs 6243appropriate mirrored character in the reordered text. Lisp programs
6243can affect the mirrored display by changing this property. Again, any 6244can affect the mirrored display by changing this property. Again, any
6244such changes affect all of Emacs display. 6245such changes affect all of Emacs display.
6246
6247@node Glyphless Chars
6248@section Glyphless Character Display
6249@cindex glyphless characters
6250
6251 @dfn{Glyphless characters} are not displayed in the usual way when
6252they appear in a buffer, but in some special way (e.g. as a box
6253containing a hexadecimal code). These include characters that cannot
6254be displayed with any available font (on a graphical display), or that
6255cannot be encoded by the terminal's coding system (on a text-only
6256terminal). Specific characters can also be defined to be glyphless.
6257
6258@defvar glyphless-char-display
6259The value of this variable is a char-table that defines glyphless
6260characters and how they are displayed. If an entry is @code{nil}, the
6261corresponding character is displayed in its usual way. Otherwise, an
6262entry should be one of the following display methods:
6263
6264@table @asis
6265@item @code{zero-width}
6266Don't display the character.
6267
6268@item @code{thin-space}
6269Display a thin space, 1-pixel wide on graphical displays, or
62701-character wide on text-only terminals.
6271
6272@item @code{empty-box}
6273Display an empty box.
6274
6275@item @code{hex-code}
6276Display a box containing the Unicode codepoint of the character, in
6277hexadecimal notation.
6278
6279@item an @acronym{ASCII} string
6280Display a box containing that string.
6281@end table
6282
6283@noindent
6284Except for @code{zero-width}, these methods display using the
6285@code{glyphless-char} face.
6286
6287An entry can also be a cons cell @code{(@var{graphical}
6288. @var{text})}, where @var{graphical} and @var{text} are the display
6289methods on graphical displays and text-only terminals respectively.
6290
6291The char-table has one extra slot, which determines how to display any
6292character that cannot be displayed with any available font, or cannot
6293be encoded by the terminal's coding system. Its value should be one
6294of the above display methods, except @code{zero-width} or a cons cell.
6295@end defvar
6296
6297@defopt glyphless-char-display-control
6298This user option provides a convenient way to set
6299@code{glyphless-char-display} for groups of similar characters. It
6300takes effect via a custom @code{:set} function (@pxref{Variable
6301Definitions}), which update @code{glyphless-char-display}.
6302
6303Its value should be an alist of elements @code{(@var{group}
6304. @var{method})}, where @var{group} is a symbol specifying a group of
6305characters, and @var{method} is a symbol specifying how to display
6306them.
6307
6308@var{group} should be one of the following:
6309
6310@table @code
6311@item c0-control
6312@acronym{ASCII} control characters @code{U+0000} to @code{U+001F},
6313excluding the newline and tab characters (normally displayed as escape
6314sequences like @samp{^A}; @pxref{Text Display,, How Text Is Displayed,
6315emacs, The GNU Emacs Manual}).
6316
6317@item c1-control
6318Non-@acronym{ASCII}, non-printing characters @code{U+0080} to
6319@code{U+009F} (normally displayed as octal escape sequences like
6320@samp{\230}).
6321
6322@item format-control
6323Characters of Unicode General Category `Cf', such as @samp{U+200E}
6324(Left-to-Right Mark), but excluding characters that have graphic
6325images, such as @samp{U+00AD} (Soft Hyphen).
6326
6327@item no-font
6328Characters for there is no suitable font, or which cannot be encoded
6329by the terminal's coding system.
6330@end table
6331
6332@c FIXME: this can also be `acronym', but that's not currently
6333@c completely implemented; it applies only to the format-control
6334@c group, and only works if the acronym is in `char-acronym-table'.
6335The @var{method} symbol should be one of @code{zero-width},
6336@code{thin-space}, @code{empty-box}, or @code{hex-code}. These have
6337the same meanings as in @code{glyphless-char-display}, above.
6338@end defopt
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 8350c9b7080..cefa917a4e1 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -1278,6 +1278,9 @@ Emacs Display
1278* Display Tables:: How to specify other conventions. 1278* Display Tables:: How to specify other conventions.
1279* Beeping:: Audible signal to the user. 1279* Beeping:: Audible signal to the user.
1280* Window Systems:: Which window system is being used. 1280* Window Systems:: Which window system is being used.
1281* Bidirectional Display:: Display of bidirectional scripts, such as
1282 Arabic and Farsi.
1283* Glyphless Chars:: How glyphless characters are drawn.
1281 1284
1282The Echo Area 1285The Echo Area
1283 1286
diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi
index 0fa23d6412c..914ba5b1fd8 100644
--- a/doc/lispref/vol1.texi
+++ b/doc/lispref/vol1.texi
@@ -1299,6 +1299,9 @@ Emacs Display
1299* Display Tables:: How to specify other conventions. 1299* Display Tables:: How to specify other conventions.
1300* Beeping:: Audible signal to the user. 1300* Beeping:: Audible signal to the user.
1301* Window Systems:: Which window system is being used. 1301* Window Systems:: Which window system is being used.
1302* Bidirectional Display:: Display of bidirectional scripts, such as
1303 Arabic and Farsi.
1304* Glyphless Chars:: How glyphless characters are drawn.
1302 1305
1303The Echo Area 1306The Echo Area
1304 1307
diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi
index 2469a742900..1f84b267c9b 100644
--- a/doc/lispref/vol2.texi
+++ b/doc/lispref/vol2.texi
@@ -1298,6 +1298,9 @@ Emacs Display
1298* Display Tables:: How to specify other conventions. 1298* Display Tables:: How to specify other conventions.
1299* Beeping:: Audible signal to the user. 1299* Beeping:: Audible signal to the user.
1300* Window Systems:: Which window system is being used. 1300* Window Systems:: Which window system is being used.
1301* Bidirectional Display:: Display of bidirectional scripts, such as
1302 Arabic and Farsi.
1303* Glyphless Chars:: How glyphless characters are drawn.
1301 1304
1302The Echo Area 1305The Echo Area
1303 1306
diff --git a/etc/NEWS b/etc/NEWS
index d8d0741f928..330ada4bf73 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -51,6 +51,8 @@ This is not a new feature; only the configure flag is new.
51--- 51---
52** There is a new configure option --with-wide-int. 52** There is a new configure option --with-wide-int.
53With it, Emacs integers typically have 62 bits, even on 32-bit machines. 53With it, Emacs integers typically have 62 bits, even on 32-bit machines.
54On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB
55to about 2 GiB.
54 56
55--- 57---
56** New translation of the Emacs Tutorial in Hebrew is available. 58** New translation of the Emacs Tutorial in Hebrew is available.
@@ -236,10 +238,10 @@ is taken from the desktop settings.
236The frame-parameter tool-bar-position controls this. It takes the values 238The frame-parameter tool-bar-position controls this. It takes the values
237top, left, right or bottom. The Options => Show/Hide menu has entries 239top, left, right or bottom. The Options => Show/Hide menu has entries
238for this. 240for this.
239 241+++
240*** The colors for selected text (the region face) are taken from the GTK 242*** The colors for selected text (the `region' face) are taken from
241theme when Emacs is built with GTK. 243the GTK theme when Emacs is built with GTK.
242 244+++
243*** Emacs uses GTK tooltips by default if built with GTK. You can turn that 245*** Emacs uses GTK tooltips by default if built with GTK. You can turn that
244off by customizing x-gtk-use-system-tooltips. 246off by customizing x-gtk-use-system-tooltips.
245 247
@@ -844,6 +846,10 @@ binding `log-view-expanded-log-entry-function' to a suitable function.
844*** New command `vc-ediff' allows visual comparison of two revisions 846*** New command `vc-ediff' allows visual comparison of two revisions
845of a file similar to `vc-diff', but using ediff backend. 847of a file similar to `vc-diff', but using ediff backend.
846 848
849+++
850*** The option vc-initial-comment was removed in Emacs 23.2, but
851this was not advertised at the time.
852
847** FIXME: xdg-open for browse-url and reportbug, 2010/08. 853** FIXME: xdg-open for browse-url and reportbug, 2010/08.
848 854
849** Obsolete modes 855** Obsolete modes
@@ -1146,6 +1152,7 @@ combined with minibuffer-local-must-match-map.
1146*** New variable `completing-read-function' allows overriding the 1152*** New variable `completing-read-function' allows overriding the
1147behavior of `completing-read'. 1153behavior of `completing-read'.
1148 1154
1155+++
1149** `glyphless-char-display' can now distinguish between graphical and 1156** `glyphless-char-display' can now distinguish between graphical and
1150text terminal display, via a char-table entry that is a cons cell. 1157text terminal display, via a char-table entry that is a cons cell.
1151 1158
@@ -1311,6 +1318,8 @@ Use `filter-buffer-substring-functions' instead.
1311*** `byte-compile-disable-print-circle' is obsolete. 1318*** `byte-compile-disable-print-circle' is obsolete.
1312 1319
1313*** `deferred-action-list' and `deferred-action-function' are obsolete. 1320*** `deferred-action-list' and `deferred-action-function' are obsolete.
1321+++
1322*** `font-lock-maximum-size' is obsolete.
1314 1323
1315 1324
1316* Changes in Emacs 24.1 on non-free operating systems 1325* Changes in Emacs 24.1 on non-free operating systems
diff --git a/etc/themes/deeper-blue-theme.el b/etc/themes/deeper-blue-theme.el
index 5c93e84d078..0fbd9496969 100644
--- a/etc/themes/deeper-blue-theme.el
+++ b/etc/themes/deeper-blue-theme.el
@@ -37,7 +37,7 @@
37 `(compilation-line-number ((,class (:foreground "LightGreen")))) 37 `(compilation-line-number ((,class (:foreground "LightGreen"))))
38 `(cperl-array-face ((,class (:foreground "yellow2")))) 38 `(cperl-array-face ((,class (:foreground "yellow2"))))
39 `(cperl-hash-face ((,class (:foreground "coral1")))) 39 `(cperl-hash-face ((,class (:foreground "coral1"))))
40 `(cursor ((,class (:background "green" :foreground "black")))) 40 `(cursor ((,class (:background "green"))))
41 `(default ((,class (:background "#181a26" :foreground "gray80")))) 41 `(default ((,class (:background "#181a26" :foreground "gray80"))))
42 `(diff-added ((,class (nil)))) 42 `(diff-added ((,class (nil))))
43 `(diff-changed ((,class (nil)))) 43 `(diff-changed ((,class (nil))))
diff --git a/etc/themes/dichromacy-theme.el b/etc/themes/dichromacy-theme.el
index 3c260118b26..80215e564f5 100644
--- a/etc/themes/dichromacy-theme.el
+++ b/etc/themes/dichromacy-theme.el
@@ -42,7 +42,7 @@ Ansi-Color faces are included.")
42 (custom-theme-set-faces 42 (custom-theme-set-faces
43 'dichromacy 43 'dichromacy
44 `(default ((,class (:foreground "black" :background "white")))) 44 `(default ((,class (:foreground "black" :background "white"))))
45 `(cursor ((,class (:foreground "white" :background "black")))) 45 `(cursor ((,class (:background "black"))))
46 ;; Highlighting faces 46 ;; Highlighting faces
47 `(fringe ((,class (:background "#f7f7f7")))) 47 `(fringe ((,class (:background "#f7f7f7"))))
48 `(highlight ((,class (:foreground ,blue :background "#e5e5e5")))) 48 `(highlight ((,class (:foreground ,blue :background "#e5e5e5"))))
diff --git a/etc/themes/misterioso-theme.el b/etc/themes/misterioso-theme.el
index ab4b2bc6191..6e38a43a4f0 100644
--- a/etc/themes/misterioso-theme.el
+++ b/etc/themes/misterioso-theme.el
@@ -33,7 +33,7 @@
33 (:background "#2d3743" :foreground "#e1e1e0")) 33 (:background "#2d3743" :foreground "#e1e1e0"))
34 (,class 34 (,class
35 (:background "#3a3a3a" :foreground "#e1e1e0")))) 35 (:background "#3a3a3a" :foreground "#e1e1e0"))))
36 `(cursor ((,class (:background "#415160" :foreground "#415160")))) 36 `(cursor ((,class (:background "#415160"))))
37 ;; Highlighting faces 37 ;; Highlighting faces
38 `(fringe ((,class (:background "#2e3748")))) 38 `(fringe ((,class (:background "#2e3748"))))
39 `(highlight ((,class (:background "#338f86" :foreground "#e1e1e0")))) 39 `(highlight ((,class (:background "#338f86" :foreground "#e1e1e0"))))
diff --git a/etc/themes/tango-dark-theme.el b/etc/themes/tango-dark-theme.el
index 8f91d35e6a1..ae45966b347 100644
--- a/etc/themes/tango-dark-theme.el
+++ b/etc/themes/tango-dark-theme.el
@@ -56,7 +56,7 @@ Semantic, and Ansi-Color faces are included.")
56 (:foreground ,alum-1 :background "#222")) 56 (:foreground ,alum-1 :background "#222"))
57 (,class 57 (,class
58 (:foreground ,alum-1 :background "black")))) 58 (:foreground ,alum-1 :background "black"))))
59 `(cursor ((,class (:foreground ,alum-6 :background ,butter-1)))) 59 `(cursor ((,class (:background ,butter-1))))
60 ;; Highlighting faces 60 ;; Highlighting faces
61 `(fringe ((,class (:background ,alum-7)))) 61 `(fringe ((,class (:background ,alum-7))))
62 `(highlight ((,class (:foreground ,alum-6 :background ,butter-2)))) 62 `(highlight ((,class (:foreground ,alum-6 :background ,butter-2))))
diff --git a/etc/themes/tango-theme.el b/etc/themes/tango-theme.el
index f504d764277..b46bd677f21 100644
--- a/etc/themes/tango-theme.el
+++ b/etc/themes/tango-theme.el
@@ -49,7 +49,7 @@ Semantic, and Ansi-Color faces are included.")
49 (custom-theme-set-faces 49 (custom-theme-set-faces
50 'tango 50 'tango
51 `(default ((,class (:foreground ,alum-6 :background ,alum-1)))) 51 `(default ((,class (:foreground ,alum-6 :background ,alum-1))))
52 `(cursor ((,class (:foreground ,alum-1 :background ,blue-3)))) 52 `(cursor ((,class (:background ,blue-3))))
53 ;; Highlighting faces 53 ;; Highlighting faces
54 `(fringe ((,class (:background ,alum-2)))) 54 `(fringe ((,class (:background ,alum-2))))
55 `(highlight ((,class (:background ,alum-3)))) 55 `(highlight ((,class (:background ,alum-3))))
diff --git a/etc/themes/wheatgrass-theme.el b/etc/themes/wheatgrass-theme.el
index 63ebc247b9d..50db2661a99 100644
--- a/etc/themes/wheatgrass-theme.el
+++ b/etc/themes/wheatgrass-theme.el
@@ -29,7 +29,7 @@ of green, brown, and blue.")
29 (custom-theme-set-faces 29 (custom-theme-set-faces
30 'wheatgrass 30 'wheatgrass
31 `(default ((,class (:foreground "wheat" :background "black")))) 31 `(default ((,class (:foreground "wheat" :background "black"))))
32 `(cursor ((,class (:foreground "black" :background "thistle")))) 32 `(cursor ((,class (:background "thistle"))))
33 `(error ((,class (:foreground "salmon1")))) 33 `(error ((,class (:foreground "salmon1"))))
34 `(warning ((,class (:foreground "orange")))) 34 `(warning ((,class (:foreground "orange"))))
35 `(success ((,class (:foreground "yellow green")))) 35 `(success ((,class (:foreground "yellow green"))))
diff --git a/etc/themes/whiteboard-theme.el b/etc/themes/whiteboard-theme.el
index e0fa7ff7ff7..e5c808df68d 100644
--- a/etc/themes/whiteboard-theme.el
+++ b/etc/themes/whiteboard-theme.el
@@ -38,7 +38,7 @@
38 `(cperl-array-face ((,class (:foreground "SlateBlue3")))) 38 `(cperl-array-face ((,class (:foreground "SlateBlue3"))))
39 `(cperl-hash-face ((,class (:foreground "turquoise3")))) 39 `(cperl-hash-face ((,class (:foreground "turquoise3"))))
40 `(cperl-nonoverridable-face ((,class (:foreground "orchid3")))) 40 `(cperl-nonoverridable-face ((,class (:foreground "orchid3"))))
41 `(cursor ((,class (:background "Green4" :foreground "gainsboro")))) 41 `(cursor ((,class (:background "Green4"))))
42 `(default ((,class (:background "whitesmoke" :foreground "black")))) 42 `(default ((,class (:background "whitesmoke" :foreground "black"))))
43 `(dired-marked ((,class (:background "dodgerblue3" :foreground "white")))) 43 `(dired-marked ((,class (:background "dodgerblue3" :foreground "white"))))
44 `(flymake-errline ((,class (:background nil :underline "red")))) 44 `(flymake-errline ((,class (:background nil :underline "red"))))
diff --git a/etc/themes/wombat-theme.el b/etc/themes/wombat-theme.el
index 2aa64f894bf..6691b4a4016 100644
--- a/etc/themes/wombat-theme.el
+++ b/etc/themes/wombat-theme.el
@@ -31,7 +31,7 @@ are included.")
31 (custom-theme-set-faces 31 (custom-theme-set-faces
32 'wombat 32 'wombat
33 `(default ((,class (:background "#242424" :foreground "#f6f3e8")))) 33 `(default ((,class (:background "#242424" :foreground "#f6f3e8"))))
34 `(cursor ((,class (:background "#656565" :foreground "#f6f3e8")))) 34 `(cursor ((,class (:background "#656565"))))
35 ;; Highlighting faces 35 ;; Highlighting faces
36 `(fringe ((,class (:background "#303030")))) 36 `(fringe ((,class (:background "#303030"))))
37 `(highlight ((,class (:background "#454545" :foreground "#ffffff" 37 `(highlight ((,class (:background "#454545" :foreground "#ffffff"
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 471b1219c19..e058f387a93 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,4 +1,38 @@
12011-10-17 Ryan Barrett <emacs@ryanb.org> (tiny change) 12011-10-18 Juanma Barranquero <lekktu@gmail.com>
2
3 * facemenu.el (list-colors-duplicates): On Windows, detect more
4 duplicates by assuming that only colors matching "^System" are
5 special "system colors". (Bug#9722)
6
72011-10-18 Stefan Monnier <monnier@iro.umontreal.ca>
8
9 * vc/log-edit.el (log-edit): Add "Author:" header to encourage people
10 to distinguish the author from the committer.
11
122011-10-18 Michael Albinus <michael.albinus@gmx.de>
13
14 * net/tramp.el (tramp-file-name-handler): Load Tramp packages silently.
15
162011-10-18 Jirka Kosek <jirka@kosek.cz> (tiny change)
17
18 * international/mule.el (sgml-html-meta-auto-coding-function):
19 Add support for detecting encoding in HTML5 specified only as
20 <meta charset="UTF-8">. Implementation just makes http-equiv and
21 content-type parts from HTML4 encoding string optional. (Bug#9716)
22
232011-10-18 Glenn Morris <rgm@gnu.org>
24
25 * vc/vc.el (vc-initial-comment): Mark as obsolete. (Bug#9745)
26
272011-10-18 Chong Yidong <cyd@gnu.org>
28
29 * faces.el (cursor): Doc fix.
30
312011-10-17 Chong Yidong <cyd@gnu.org>
32
33 * font-lock.el (font-lock-maximum-size): Mark as obsolete.
34
352011-10-17 Ryan Barrett <emacs@ryanb.org> (tiny change)
2 36
3 * dirtrack.el (dirtrack): Support shell buffers with path 37 * dirtrack.el (dirtrack): Support shell buffers with path
4 prefixes, e.g. tramp-based remote shells. (Bug#9647) 38 prefixes, e.g. tramp-based remote shells. (Bug#9647)
@@ -437,8 +471,8 @@
437 471
438 * net/newst-reader.el (newsticker-html-renderer) 472 * net/newst-reader.el (newsticker-html-renderer)
439 (newsticker-show-news): Automatically 473 (newsticker-show-news): Automatically
440 load html rendering package if newsticker-html-renderer is 474 load html rendering package if newsticker-html-renderer is set.
441 set. Fixes "Warning: defvar ignored because w3m-fill-column is 475 Fixes "Warning: defvar ignored because w3m-fill-column is
442 let-bound" and the error "Symbol's value as variable is void: 476 let-bound" and the error "Symbol's value as variable is void:
443 w3m-fill-column". 477 w3m-fill-column".
444 478
diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15
index 2acf847cddc..9cb24baeb1f 100644
--- a/lisp/ChangeLog.15
+++ b/lisp/ChangeLog.15
@@ -22676,7 +22676,7 @@
22676 (vc-next-action, vc-transfer-file, vc-rename-file): Also pass the 22676 (vc-next-action, vc-transfer-file, vc-rename-file): Also pass the
22677 backend when calling vc-mode-line. 22677 backend when calling vc-mode-line.
22678 (vc-register): Do not create a closure for calling the vc register 22678 (vc-register): Do not create a closure for calling the vc register
22679 function, call it directly. 22679 function, call it directly. No longer obey vc-initial-comment.
22680 22680
226812009-06-23 Dan Nicolaescu <dann@ics.uci.edu> 226812009-06-23 Dan Nicolaescu <dann@ics.uci.edu>
22682 22682
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index a18b892efe8..54b17d58f33 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -639,8 +639,15 @@ a list of colors that the current display can handle."
639 (l list)) 639 (l list))
640 (while (cdr l) 640 (while (cdr l)
641 (if (and (facemenu-color-equal (car (car l)) (car (car (cdr l)))) 641 (if (and (facemenu-color-equal (car (car l)) (car (car (cdr l))))
642 (not (if (fboundp 'w32-default-color-map) 642 ;; On MS-Windows, there are logical colors that might have
643 (not (assoc (car (car l)) (w32-default-color-map)))))) 643 ;; the same value but different names and meanings. For
644 ;; example, `SystemMenuText' (the color w32 uses for the
645 ;; text in menu entries) and `SystemWindowText' (the default
646 ;; color w32 uses for the text in windows and dialogs) may
647 ;; be the same display color and be adjacent in the list.
648 ;; This makes them different to any other color. Bug#9722
649 (not (and (eq system-type 'windows-nt)
650 (string-match-p "^System" (car (car l))))))
644 (progn 651 (progn
645 (setcdr (car l) (cons (car (car (cdr l))) (cdr (car l)))) 652 (setcdr (car l) (cons (car (car (cdr l))) (cdr (car l))))
646 (setcdr l (cdr (cdr l)))) 653 (setcdr l (cdr (cdr l))))
diff --git a/lisp/faces.el b/lisp/faces.el
index d5f0ef90ee0..45173eb35da 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -2366,6 +2366,10 @@ used to display the prompt text."
2366 '((((background light)) :background "black") 2366 '((((background light)) :background "black")
2367 (((background dark)) :background "white")) 2367 (((background dark)) :background "white"))
2368 "Basic face for the cursor color under X. 2368 "Basic face for the cursor color under X.
2369Currently, only the `:background' attribute is meaningful; all
2370other attributes are ignored. The cursor foreground color is
2371taken from the background color of the underlying text.
2372
2369Note: Other faces cannot inherit from the cursor face." 2373Note: Other faces cannot inherit from the cursor face."
2370 :version "21.1" 2374 :version "21.1"
2371 :group 'cursor 2375 :group 'cursor
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index c37a9ae916e..2f4b7413dcc 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -228,8 +228,11 @@
228;; User variables. 228;; User variables.
229 229
230(defcustom font-lock-maximum-size 256000 230(defcustom font-lock-maximum-size 256000
231 "Maximum size of a buffer for buffer fontification. 231 "Maximum buffer size for unsupported buffer fontification.
232Only buffers less than this can be fontified when Font Lock mode is turned on. 232When `font-lock-support-mode' is nil, only buffers smaller than
233this are fontified. This variable has no effect if a Font Lock
234support mode (usually `jit-lock-mode') is enabled.
235
233If nil, means size is irrelevant. 236If nil, means size is irrelevant.
234If a list, each element should be a cons pair of the form (MAJOR-MODE . SIZE), 237If a list, each element should be a cons pair of the form (MAJOR-MODE . SIZE),
235where MAJOR-MODE is a symbol or t (meaning the default). For example: 238where MAJOR-MODE is a symbol or t (meaning the default). For example:
@@ -248,6 +251,7 @@ for buffers in Rmail mode, and size is irrelevant otherwise."
248 (const :tag "none" nil) 251 (const :tag "none" nil)
249 (integer :tag "size"))))) 252 (integer :tag "size")))))
250 :group 'font-lock) 253 :group 'font-lock)
254(make-obsolete-variable 'font-lock-maximum-size nil "24.1")
251 255
252(defcustom font-lock-maximum-decoration t 256(defcustom font-lock-maximum-decoration t
253 "Maximum decoration level for fontification. 257 "Maximum decoration level for fontification.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index cc2568a3647..b7f41e22e50 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,9 +1,42 @@
12011-10-18 Teodor Zlatanov <tzz@lifelogs.com>
2
3 * gnus-util.el (gnus-bound-and-true-p): Macro for XEmacs compatibility.
4 * nnir.el (nnir-mode): Use it.
5 * nnmairix.el (nnmairix-determine-original-group-from-registry):
6 Use it.
7
8 * nnir.el (gnus-registry-enabled): Defvar to keep the compiler happy.
9 * nnmairix.el (gnus-registry-enabled): Ditto.
10
112011-10-17 Teodor Zlatanov <tzz@lifelogs.com>
12
13 * gnus-registry.el (gnus-registry-enabled): Add new variable.
14 (gnus-registry-install-shortcuts): Set `gnus-registry-install' to 'ask
15 only while we need to find out if it should be t or nil.
16 (gnus-registry-initialize): Don't set `gnus-registry-install' to t.
17 (gnus-registry-install-hooks): Set `gnus-registry-enabled' to t when
18 the registry is installed. Set it to nil when it's unloaded.
19 (gnus-registry-install-p): Provide user guidance for the initial value
20 of `gnus-registry-install' when it's 'ask, otherwise return its value.
21 * nnregistry.el (nnregistry-open-server, nnregistry-server-opened):
22 Use `gnus-registry-enabled' instead of `gnus-registry-install'.
23 * nnmairix.el (nnmairix-determine-original-group-from-registry):
24 Use `gnus-registry-enabled' instead of `gnus-registry-install'.
25 * nnir.el (nnir-mode): Use `gnus-registry-enabled' instead of
26 `gnus-registry-install'.
27 From Dave Abrahams <dave@boostpro.com>.
28
12011-10-17 Daiki Ueno <ueno@unixuser.org> 292011-10-17 Daiki Ueno <ueno@unixuser.org>
2 30
31 * mml2015.el (mml2015-epg-find-usable-key): Add comment about the
32 previous change.
33 * mml1991.el (mml1991-epg-find-usable-key): Skip the whole key if the
34 primary key is marked as disabled.
35
362011-10-17 Christian von Roques <roques@mti.ag> (tiny change)
37
3 * mml2015.el (mml2015-epg-find-usable-key): Skip the whole key if the 38 * mml2015.el (mml2015-epg-find-usable-key): Skip the whole key if the
4 primary key is marked as disabled. 39 primary key is marked as disabled.
5 * mml1991.el (mml1991-epg-find-usable-key): Ditto.
6 Thanks to Christian von Roques <roques@mti.ag>.
7 40
82011-10-11 Andreas Schwab <schwab@linux-m68k.org> 412011-10-11 Andreas Schwab <schwab@linux-m68k.org>
9 42
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index f8ff52f128f..652e816e56a 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -164,6 +164,8 @@ nnmairix groups are specifically excluded because they are ephemeral."
164 (const :tag "Always Install" t) 164 (const :tag "Always Install" t)
165 (const :tag "Ask Me" ask))) 165 (const :tag "Ask Me" ask)))
166 166
167(defvar gnus-registry-enabled)
168
167(defvar gnus-summary-misc-menu) ;; Avoid byte compiler warning. 169(defvar gnus-summary-misc-menu) ;; Avoid byte compiler warning.
168 170
169(defvar gnus-registry-misc-menus nil) ; ugly way to keep the menus 171(defvar gnus-registry-misc-menus nil) ; ugly way to keep the menus
@@ -873,8 +875,9 @@ Uses `gnus-registry-marks' to find what shortcuts to install."
873 875
874 ;; if this is called and the user doesn't want the 876 ;; if this is called and the user doesn't want the
875 ;; registry enabled, we'll ask anyhow 877 ;; registry enabled, we'll ask anyhow
876 (when (eq gnus-registry-install nil) 878 (unless gnus-registry-install
877 (setq gnus-registry-install 'ask)) 879 (let ((gnus-registry-install 'ask))
880 (gnus-registry-install-p)))
878 881
879 ;; now the user is asked if gnus-registry-install is 'ask 882 ;; now the user is asked if gnus-registry-install is 'ask
880 (when (gnus-registry-install-p) 883 (when (gnus-registry-install-p)
@@ -1151,7 +1154,6 @@ only the last one's marks are returned."
1151"Initialize the Gnus registry." 1154"Initialize the Gnus registry."
1152 (interactive) 1155 (interactive)
1153 (gnus-message 5 "Initializing the registry") 1156 (gnus-message 5 "Initializing the registry")
1154 (setq gnus-registry-install t) ; in case it was 'ask or nil
1155 (gnus-registry-install-hooks) 1157 (gnus-registry-install-hooks)
1156 (gnus-registry-install-shortcuts) 1158 (gnus-registry-install-shortcuts)
1157 (gnus-registry-read)) 1159 (gnus-registry-read))
@@ -1160,6 +1162,7 @@ only the last one's marks are returned."
1160(defun gnus-registry-install-hooks () 1162(defun gnus-registry-install-hooks ()
1161 "Install the registry hooks." 1163 "Install the registry hooks."
1162 (interactive) 1164 (interactive)
1165 (setq gnus-registry-enabled t)
1163 (add-hook 'gnus-summary-article-move-hook 'gnus-registry-action) 1166 (add-hook 'gnus-summary-article-move-hook 'gnus-registry-action)
1164 (add-hook 'gnus-summary-article-delete-hook 'gnus-registry-action) 1167 (add-hook 'gnus-summary-article-delete-hook 'gnus-registry-action)
1165 (add-hook 'gnus-summary-article-expire-hook 'gnus-registry-action) 1168 (add-hook 'gnus-summary-article-expire-hook 'gnus-registry-action)
@@ -1181,23 +1184,25 @@ only the last one's marks are returned."
1181 (remove-hook 'gnus-save-newsrc-hook 'gnus-registry-save) 1184 (remove-hook 'gnus-save-newsrc-hook 'gnus-registry-save)
1182 (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read) 1185 (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read)
1183 1186
1184 (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)) 1187 (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)
1188 (setq gnus-registry-enabled nil))
1185 1189
1186(add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook) 1190(add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook)
1187 1191
1188(defun gnus-registry-install-p () 1192(defun gnus-registry-install-p ()
1193 "If the registry is not already enabled, and `gnus-registry-install' is t,
1194the registry is enabled. If `gnus-registry-install' is `ask',
1195the user is asked first. Returns non-nil iff the registry is enabled."
1189 (interactive) 1196 (interactive)
1190 (when (eq gnus-registry-install 'ask) 1197 (unless gnus-registry-enabled
1191 (setq gnus-registry-install 1198 (when (if (eq gnus-registry-install 'ask)
1192 (gnus-y-or-n-p 1199 (gnus-y-or-n-p
1193 (concat "Enable the Gnus registry? " 1200 (concat "Enable the Gnus registry? "
1194 "See the variable `gnus-registry-install' " 1201 "See the variable `gnus-registry-install' "
1195 "to get rid of this query permanently. "))) 1202 "to get rid of this query permanently. "))
1196 (when gnus-registry-install 1203 gnus-registry-install)
1197 ;; we just set gnus-registry-install to t, so initialize the registry!
1198 (gnus-registry-initialize))) 1204 (gnus-registry-initialize)))
1199;;; we could call it here: (customize-variable 'gnus-registry-install) 1205 gnus-registry-enabled)
1200 gnus-registry-install)
1201 1206
1202;; TODO: a few things 1207;; TODO: a few things
1203 1208
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index e9d6ba423fd..9c5e6e8312b 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1986,6 +1986,14 @@ definitions to shadow the loaded ones for use in file byte-compilation."
1986 (gnus-macroexpand-all expanded environment))) 1986 (gnus-macroexpand-all expanded environment)))
1987 form)))) 1987 form))))
1988 1988
1989(eval-when-compile
1990 ;; This is unnecessary in the compiled version as it is a macro.
1991 (if (fboundp 'bound-and-true-p)
1992 (defalias 'gnus-bound-and-true-p 'bound-and-true-p)
1993 (defmacro gnus-bound-and-true-p (var)
1994 "Return the value of symbol VAR if it is bound, else nil."
1995 `(and (boundp (quote ,var)) ,var))))
1996
1989(provide 'gnus-util) 1997(provide 'gnus-util)
1990 1998
1991;;; gnus-util.el ends here 1999;;; gnus-util.el ends here
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 0be6a17d50e..2d3c05864e8 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -290,9 +290,10 @@ is `(valuefunc member)'."
290 (autoload 'nnimap-command "nnimap") 290 (autoload 'nnimap-command "nnimap")
291 (autoload 'nnimap-possibly-change-group "nnimap") 291 (autoload 'nnimap-possibly-change-group "nnimap")
292 (autoload 'nnimap-make-thread-query "nnimap") 292 (autoload 'nnimap-make-thread-query "nnimap")
293 (autoload 'gnus-registry-action "gnus-registry") 293 (autoload 'gnus-registry-action "gnus-registry"))
294 (defvar gnus-registry-install))
295 294
295;; Suppress byte-compiler warning `reference to free variable'
296(defvar gnus-registry-enabled)
296 297
297(nnoo-declare nnir) 298(nnoo-declare nnir)
298(nnoo-define-basics nnir) 299(nnoo-define-basics nnir)
@@ -1741,8 +1742,7 @@ environment unless `not-global' is non-nil."
1741 (when (eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnir) 1742 (when (eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnir)
1742 (setq gnus-summary-line-format 1743 (setq gnus-summary-line-format
1743 (or nnir-summary-line-format gnus-summary-line-format)) 1744 (or nnir-summary-line-format gnus-summary-line-format))
1744 (when (and (boundp 'gnus-registry-install) 1745 (when (gnus-bound-and-true-p gnus-registry-enabled)
1745 (eq gnus-registry-install t))
1746 (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t) 1746 (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t)
1747 (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t) 1747 (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t)
1748 (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t) 1748 (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t)
diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el
index 3d1ac02b6aa..1bf28c5d32f 100644
--- a/lisp/gnus/nnmairix.el
+++ b/lisp/gnus/nnmairix.el
@@ -603,9 +603,11 @@ Other back ends might or might not work.")
603 nil)) 603 nil))
604 604
605;; Silence byte-compiler. 605;; Silence byte-compiler.
606(defvar gnus-registry-install)
607(autoload 'gnus-registry-get-id-key "gnus-registry") 606(autoload 'gnus-registry-get-id-key "gnus-registry")
608 607
608;; Suppress byte-compiler warning `reference to free variable'
609(defvar gnus-registry-enabled)
610
609(deffoo nnmairix-request-set-mark (group actions &optional server) 611(deffoo nnmairix-request-set-mark (group actions &optional server)
610 (when server 612 (when server
611 (nnmairix-open-server server)) 613 (nnmairix-open-server server))
@@ -1636,8 +1638,7 @@ search in raw mode."
1636 1638
1637(defun nnmairix-determine-original-group-from-registry (mid) 1639(defun nnmairix-determine-original-group-from-registry (mid)
1638 "Try to determinale original group for message-id MID from the registry." 1640 "Try to determinale original group for message-id MID from the registry."
1639 (when (and (boundp 'gnus-registry-install) 1641 (when (gnus-bound-and-true-p gnus-registry-enabled)
1640 gnus-registry-install)
1641 (unless (string-match "^<" mid) 1642 (unless (string-match "^<" mid)
1642 (set mid (concat "<" mid))) 1643 (set mid (concat "<" mid)))
1643 (unless (string-match ">$" mid) 1644 (unless (string-match ">$" mid)
diff --git a/lisp/gnus/nnregistry.el b/lisp/gnus/nnregistry.el
index 359050c356c..75a640a428a 100644
--- a/lisp/gnus/nnregistry.el
+++ b/lisp/gnus/nnregistry.el
@@ -36,8 +36,11 @@
36 36
37(nnoo-declare nnregistry) 37(nnoo-declare nnregistry)
38 38
39;; Suppress byte-compiler warning `reference to free variable'
40(defvar gnus-registry-enabled)
41
39(deffoo nnregistry-server-opened (server) 42(deffoo nnregistry-server-opened (server)
40 (eq gnus-registry-install t)) 43 gnus-registry-enabled)
41 44
42(deffoo nnregistry-close-server (server) 45(deffoo nnregistry-close-server (server)
43 t) 46 t)
@@ -46,7 +49,7 @@
46 nil) 49 nil)
47 50
48(deffoo nnregistry-open-server (server &optional defs) 51(deffoo nnregistry-open-server (server &optional defs)
49 (eq gnus-registry-install t)) 52 gnus-registry-enabled)
50 53
51(defvar nnregistry-within-nnregistry nil) 54(defvar nnregistry-within-nnregistry nil)
52 55
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 4a387a233a0..cac37b3b8c5 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -2403,8 +2403,8 @@ This function is intended to be added to `auto-coding-functions'."
2403 ;; (allowing for whitespace at bob). Note: 'DOCTYPE NETSCAPE' is 2403 ;; (allowing for whitespace at bob). Note: 'DOCTYPE NETSCAPE' is
2404 ;; useful for Mozilla bookmark files. 2404 ;; useful for Mozilla bookmark files.
2405 (when (and (re-search-forward "\\`[[:space:]\n]*\\(<!doctype[[:space:]\n]+\\(html\\|netscape\\)\\|<html\\)" size t) 2405 (when (and (re-search-forward "\\`[[:space:]\n]*\\(<!doctype[[:space:]\n]+\\(html\\|netscape\\)\\|<html\\)" size t)
2406 (re-search-forward "<meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']text/\\sw+;\\s-*charset=\\(.+?\\)[\"']" size t)) 2406 (re-search-forward "<meta\\s-+\\(http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']text/\\sw+;\\s-*\\)?charset=[\"']?\\(.+?\\)[\"'\\s-/>]" size t))
2407 (let* ((match (match-string 1)) 2407 (let* ((match (match-string 2))
2408 (sym (intern (downcase match)))) 2408 (sym (intern (downcase match))))
2409 (if (coding-system-p sym) 2409 (if (coding-system-p sym)
2410 sym 2410 sym
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index adc66f6766c..cc4fda32dff 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1886,7 +1886,7 @@ Falls back to normal file name handler if no Tramp file name handler exists."
1886 (when (and (listp sf) (eq (car sf) 'autoload)) 1886 (when (and (listp sf) (eq (car sf) 'autoload))
1887 (let ((default-directory 1887 (let ((default-directory
1888 (tramp-compat-temporary-file-directory))) 1888 (tramp-compat-temporary-file-directory)))
1889 (load (cadr sf) 'noerror))) 1889 (load (cadr sf) 'noerror 'nomessage)))
1890 (apply foreign operation args)) 1890 (apply foreign operation args))
1891 1891
1892 ;; Trace that somebody has interrupted the operation. 1892 ;; Trace that somebody has interrupted the operation.
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index b3f5cfb78f7..ebbe318fc15 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -386,7 +386,7 @@ uses the current buffer."
386 (setq setup (not setup))) 386 (setq setup (not setup)))
387 (when setup 387 (when setup
388 (erase-buffer) 388 (erase-buffer)
389 (insert "Summary: ") 389 (insert "Summary: \nAuthor: ")
390 (save-excursion (insert "\n\n"))) 390 (save-excursion (insert "\n\n")))
391 (if mode 391 (if mode
392 (funcall mode) 392 (funcall mode)
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 62536fd94be..cdc4f155083 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -675,6 +675,8 @@
675 :type 'boolean 675 :type 'boolean
676 :group 'vc) 676 :group 'vc)
677 677
678(make-obsolete-variable 'vc-initial-comment "it has no effect." "23.2")
679
678(defcustom vc-default-init-revision "1.1" 680(defcustom vc-default-init-revision "1.1"
679 "A string used as the default revision number when a new file is registered. 681 "A string used as the default revision number when a new file is registered.
680This can be overridden by giving a prefix argument to \\[vc-register]. This 682This can be overridden by giving a prefix argument to \\[vc-register]. This
diff --git a/make-dist b/make-dist
index 2dbb35cdc5b..a428686cc84 100755
--- a/make-dist
+++ b/make-dist
@@ -302,7 +302,6 @@ for subdir in site-lisp \
302 nextstep/Cocoa/Emacs.base/Contents \ 302 nextstep/Cocoa/Emacs.base/Contents \
303 nextstep/Cocoa/Emacs.base/Contents/Resources \ 303 nextstep/Cocoa/Emacs.base/Contents/Resources \
304 nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj \ 304 nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj \
305 nextstep/Cocoa/Emacs.xcodeproj \
306 nextstep/GNUstep \ 305 nextstep/GNUstep \
307 nextstep/GNUstep/Emacs.base \ 306 nextstep/GNUstep/Emacs.base \
308 nextstep/GNUstep/Emacs.base/Resources 307 nextstep/GNUstep/Emacs.base/Resources
@@ -438,10 +437,6 @@ echo "Making links to \`nextstep/Cocoa/Emacs.base/Contents/Resources/English.lpr
438(cd nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj 437(cd nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj
439 ln InfoPlist.strings ../../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj) 438 ln InfoPlist.strings ../../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj)
440 439
441echo "Making links to \`nextstep/Cocoa/Emacs.xcodeproj'"
442(cd nextstep/Cocoa/Emacs.xcodeproj
443 ln project.pbxproj ../../../${tempdir}/nextstep/Cocoa/Emacs.xcodeproj)
444
445echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources'" 440echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources'"
446(cd nextstep/GNUstep/Emacs.base/Resources 441(cd nextstep/GNUstep/Emacs.base/Resources
447 ln Emacs.desktop Info-gnustep.plist README emacs.tiff ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources ) 442 ln Emacs.desktop Info-gnustep.plist README emacs.tiff ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources )
diff --git a/nextstep/ChangeLog b/nextstep/ChangeLog
index 263bd923f0f..9fcad781339 100644
--- a/nextstep/ChangeLog
+++ b/nextstep/ChangeLog
@@ -1,3 +1,9 @@
12011-10-18 Jan Djärv <jan.h.d@swipnet.se>
2
3 * Cocoa/Emacs.xcodeproj:
4 * Cocoa/Emacs.xcodeproj/project.pbxproj:
5 Removed.
6
12011-03-07 Chong Yidong <cyd@stupidchicken.com> 72011-03-07 Chong Yidong <cyd@stupidchicken.com>
2 8
3 * Version 23.3 released. 9 * Version 23.3 released.
diff --git a/nextstep/Cocoa/Emacs.xcodeproj/project.pbxproj b/nextstep/Cocoa/Emacs.xcodeproj/project.pbxproj
deleted file mode 100644
index fe5acce2c3c..00000000000
--- a/nextstep/Cocoa/Emacs.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,798 +0,0 @@
1// !$*UTF8*$!
2{
3 archiveVersion = 1;
4 classes = {
5 };
6 objectVersion = 42;
7 objects = {
8
9/* Begin PBXBuildFile section */
10 3C3AF9CA0FC10CDF001240E9 /* menu.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C3AF9C90FC10CDF001240E9 /* menu.c */; };
11 3C3AF9D50FC10D85001240E9 /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C3AF9D40FC10D85001240E9 /* libncurses.dylib */; };
12 3CED87390FC0F581005ACB89 /* alloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC50902EA8200B2EF7E /* alloc.c */; };
13 3CED873A0FC0F581005ACB89 /* atimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDCD0902EA8200B2EF7E /* atimer.c */; };
14 3CED873B0FC0F581005ACB89 /* buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED8B0902EA8200B2EF7E /* buffer.c */; };
15 3CED873C0FC0F581005ACB89 /* bytecode.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC60902EA8200B2EF7E /* bytecode.c */; };
16 3CED873D0FC0F581005ACB89 /* callint.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB40902EA8200B2EF7E /* callint.c */; };
17 3CED873E0FC0F581005ACB89 /* callproc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC70902EA8200B2EF7E /* callproc.c */; };
18 3CED873F0FC0F581005ACB89 /* casefiddle.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC90902EA8200B2EF7E /* casefiddle.c */; };
19 3CED87400FC0F581005ACB89 /* casetab.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC10902EA8200B2EF7E /* casetab.c */; };
20 3CED87410FC0F581005ACB89 /* category.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED7B0902EA8200B2EF7E /* category.c */; };
21 3CED87420FC0F581005ACB89 /* ccl.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB60902EA8200B2EF7E /* ccl.c */; };
22 3CED87430FC0F581005ACB89 /* character.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED8C0902EA8200B2EF7E /* character.c */; };
23 3CED87440FC0F581005ACB89 /* charset.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC40902EA8200B2EF7E /* charset.c */; };
24 3CED87450FC0F581005ACB89 /* chartab.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDCC0902EA8200B2EF7E /* chartab.c */; };
25 3CED87460FC0F581005ACB89 /* cm.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC80902EA8200B2EF7E /* cm.c */; };
26 3CED87470FC0F581005ACB89 /* cmds.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED7A0902EA8200B2EF7E /* cmds.c */; };
27 3CED87480FC0F581005ACB89 /* coding.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED7C0902EA8200B2EF7E /* coding.c */; };
28 3CED87490FC0F581005ACB89 /* composite.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC20902EA8200B2EF7E /* composite.c */; };
29 3CED874A0FC0F581005ACB89 /* data.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB30902EA8200B2EF7E /* data.c */; };
30 3CED874B0FC0F581005ACB89 /* dired.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB20902EA8200B2EF7E /* dired.c */; };
31 3CED874C0FC0F581005ACB89 /* dispnew.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC30902EA8200B2EF7E /* dispnew.c */; };
32 3CED874D0FC0F581005ACB89 /* doc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB10902EA8200B2EF7E /* doc.c */; };
33 3CED874E0FC0F581005ACB89 /* doprnt.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB00902EA8200B2EF7E /* doprnt.c */; };
34 3CED874F0FC0F581005ACB89 /* editfns.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBE0902EA8200B2EF7E /* editfns.c */; };
35 3CED87500FC0F581005ACB89 /* emacs.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBD0902EA8200B2EF7E /* emacs.c */; };
36 3CED87510FC0F581005ACB89 /* eval.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC00902EA8200B2EF7E /* eval.c */; };
37 3CED87520FC0F581005ACB89 /* fileio.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBF0902EA8200B2EF7E /* fileio.c */; };
38 3CED87530FC0F581005ACB89 /* filelock.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBC0902EA8200B2EF7E /* filelock.c */; };
39 3CED87540FC0F581005ACB89 /* filemode.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBB0902EA8200B2EF7E /* filemode.c */; };
40 3CED87550FC0F581005ACB89 /* floatfns.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB90902EA8200B2EF7E /* floatfns.c */; };
41 3CED87560FC0F581005ACB89 /* fns.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB80902EA8200B2EF7E /* fns.c */; };
42 3CED87570FC0F581005ACB89 /* font.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C4D6D660DE50D2300B20D4E /* font.c */; };
43 3CED87580FC0F581005ACB89 /* fontset.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB70902EA8200B2EF7E /* fontset.c */; };
44 3CED87590FC0F581005ACB89 /* frame.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDCB0902EA8200B2EF7E /* frame.c */; };
45 3CED875A0FC0F581005ACB89 /* fringe.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDCA0902EA8200B2EF7E /* fringe.c */; };
46 3CED875B0FC0F581005ACB89 /* image.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED780902EA8200B2EF7E /* image.c */; };
47 3CED875C0FC0F581005ACB89 /* indent.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED770902EA8200B2EF7E /* indent.c */; };
48 3CED875D0FC0F581005ACB89 /* insdel.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED760902EA8200B2EF7E /* insdel.c */; };
49 3CED875E0FC0F581005ACB89 /* intervals.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED750902EA8200B2EF7E /* intervals.c */; };
50 3CED875F0FC0F581005ACB89 /* keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED740902EA8200B2EF7E /* keyboard.c */; };
51 3CED87600FC0F581005ACB89 /* keymap.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED730902EA8100B2EF7E /* keymap.c */; };
52 3CED87610FC0F581005ACB89 /* lastfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED720902EA8100B2EF7E /* lastfile.c */; };
53 3CED87620FC0F581005ACB89 /* lread.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED710902EA8100B2EF7E /* lread.c */; };
54 3CED87630FC0F581005ACB89 /* macros.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED6D0902EA8100B2EF7E /* macros.c */; };
55 3CED87640FC0F581005ACB89 /* marker.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED690902EA8100B2EF7E /* marker.c */; };
56 3CED87650FC0F581005ACB89 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED680902EA8100B2EF7E /* md5.c */; };
57 3CED87660FC0F581005ACB89 /* minibuf.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED670902EA8100B2EF7E /* minibuf.c */; };
58 3CED87670FC0F581005ACB89 /* nsfns.m in Sources */ = {isa = PBXBuildFile; fileRef = 090AF67E00C61DCD7F000001 /* nsfns.m */; };
59 3CED87680FC0F581005ACB89 /* nsfont.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C4D6D710DE50D5D00B20D4E /* nsfont.m */; };
60 3CED87690FC0F581005ACB89 /* nsimage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C15C1A70902D97100A8542F /* nsimage.m */; };
61 3CED876A0FC0F581005ACB89 /* nsmenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 090AF68000C61DCD7F000001 /* nsmenu.m */; };
62 3CED876B0FC0F581005ACB89 /* nsselect.m in Sources */ = {isa = PBXBuildFile; fileRef = 090AF68100C61DCD7F000001 /* nsselect.m */; };
63 3CED876C0FC0F581005ACB89 /* nsterm.m in Sources */ = {isa = PBXBuildFile; fileRef = 090AF68300C61DCD7F000001 /* nsterm.m */; };
64 3CED876D0FC0F581005ACB89 /* pre-crt0.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED640902EA8100B2EF7E /* pre-crt0.c */; };
65 3CED876E0FC0F581005ACB89 /* print.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED620902EA8100B2EF7E /* print.c */; };
66 3CED876F0FC0F581005ACB89 /* process.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED610902EA8100B2EF7E /* process.c */; };
67 3CED87700FC0F581005ACB89 /* regex.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5F0902EA8100B2EF7E /* regex.c */; };
68 3CED87710FC0F581005ACB89 /* region-cache.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5E0902EA8100B2EF7E /* region-cache.c */; };
69 3CED87720FC0F581005ACB89 /* scroll.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5D0902EA8100B2EF7E /* scroll.c */; };
70 3CED87730FC0F581005ACB89 /* search.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5C0902EA8100B2EF7E /* search.c */; };
71 3CED87740FC0F581005ACB89 /* sound.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5A0902EA8100B2EF7E /* sound.c */; };
72 3CED87750FC0F581005ACB89 /* strftime.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED590902EA8100B2EF7E /* strftime.c */; };
73 3CED87760FC0F581005ACB89 /* syntax.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED570902EA8100B2EF7E /* syntax.c */; };
74 3CED87770FC0F581005ACB89 /* sysdep.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED560902EA8100B2EF7E /* sysdep.c */; };
75 3CED87780FC0F581005ACB89 /* term.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED550902EA8100B2EF7E /* term.c */; };
76 3CED877A0FC0F581005ACB89 /* terminal.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C4D6D690DE50D2300B20D4E /* terminal.c */; };
77 3CED877B0FC0F581005ACB89 /* terminfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED950902EA8200B2EF7E /* terminfo.c */; };
78 3CED877C0FC0F581005ACB89 /* textprop.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED940902EA8200B2EF7E /* textprop.c */; };
79 3CED877E0FC0F581005ACB89 /* undo.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED920902EA8200B2EF7E /* undo.c */; };
80 3CED877F0FC0F581005ACB89 /* unexmacosx.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED830902EA8200B2EF7E /* unexmacosx.c */; };
81 3CED87800FC0F581005ACB89 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED9E0902EA8200B2EF7E /* window.c */; };
82 3CED87810FC0F581005ACB89 /* xdisp.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED9D0902EA8200B2EF7E /* xdisp.c */; };
83 3CED87820FC0F581005ACB89 /* xfaces.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED9C0902EA8200B2EF7E /* xfaces.c */; };
84 3CED88190FC0F5B3005ACB89 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CFDFC3A08E79A6800B05918 /* AppKit.framework */; };
85/* End PBXBuildFile section */
86
87/* Begin PBXContainerItemProxy section */
88 3CED88220FC0FE5C005ACB89 /* PBXContainerItemProxy */ = {
89 isa = PBXContainerItemProxy;
90 containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
91 proxyType = 1;
92 remoteGlobalIDString = 3CED87320FC0F557005ACB89;
93 remoteInfo = temacs;
94 };
95/* End PBXContainerItemProxy section */
96
97/* Begin PBXFileReference section */
98 090AF67E00C61DCD7F000001 /* nsfns.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsfns.m; path = ../../src/nsfns.m; sourceTree = "<group>"; };
99 090AF68000C61DCD7F000001 /* nsmenu.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsmenu.m; path = ../../src/nsmenu.m; sourceTree = "<group>"; };
100 090AF68100C61DCD7F000001 /* nsselect.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsselect.m; path = ../../src/nsselect.m; sourceTree = "<group>"; };
101 090AF68300C61DCD7F000001 /* nsterm.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsterm.m; path = ../../src/nsterm.m; sourceTree = "<group>"; };
102 3C15C02F0902D89500A8542F /* termhooks.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = termhooks.h; path = ../../src/termhooks.h; sourceTree = "<group>"; };
103 3C15C0300902D89500A8542F /* termchar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = termchar.h; path = ../../src/termchar.h; sourceTree = "<group>"; };
104 3C15C0330902D89500A8542F /* syswait.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = syswait.h; path = ../../src/syswait.h; sourceTree = "<group>"; };
105 3C15C0340902D89500A8542F /* systty.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = systty.h; path = ../../src/systty.h; sourceTree = "<group>"; };
106 3C15C0350902D89500A8542F /* systime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = systime.h; path = ../../src/systime.h; sourceTree = "<group>"; };
107 3C15C0360902D89500A8542F /* syssignal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = syssignal.h; path = ../../src/syssignal.h; sourceTree = "<group>"; };
108 3C15C0370902D89500A8542F /* sysselect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sysselect.h; path = ../../src/sysselect.h; sourceTree = "<group>"; };
109 3C15C0390902D89500A8542F /* syntax.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = syntax.h; path = ../../src/syntax.h; sourceTree = "<group>"; };
110 3C15C0410902D89500A8542F /* region-cache.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "region-cache.h"; path = "../../src/region-cache.h"; sourceTree = "<group>"; };
111 3C15C0430902D89500A8542F /* regex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = regex.h; path = ../../src/regex.h; sourceTree = "<group>"; };
112 3C15C0460902D89500A8542F /* puresize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = puresize.h; path = ../../src/puresize.h; sourceTree = "<group>"; };
113 3C15C0470902D89500A8542F /* process.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = process.h; path = ../../src/process.h; sourceTree = "<group>"; };
114 3C15C04C0902D89500A8542F /* point.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = point.h; path = ../../src/point.h; sourceTree = "<group>"; };
115 3C15C04F0902D89500A8542F /* nsgui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = nsgui.h; path = ../../src/nsgui.h; sourceTree = "<group>"; };
116 3C15C0500902D89500A8542F /* ndir.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ndir.h; path = ../../src/ndir.h; sourceTree = "<group>"; };
117 3C15C0550902D89500A8542F /* mem-limits.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "mem-limits.h"; path = "../../src/mem-limits.h"; sourceTree = "<group>"; };
118 3C15C0560902D89500A8542F /* md5.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = md5.h; path = ../../src/md5.h; sourceTree = "<group>"; };
119 3C15C05D0902D89500A8542F /* macros.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macros.h; path = ../../src/macros.h; sourceTree = "<group>"; };
120 3C15C0660902D89500A8542F /* keymap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = keymap.h; path = ../../src/keymap.h; sourceTree = "<group>"; };
121 3C15C0680902D89500A8542F /* keyboard.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = keyboard.h; path = ../../src/keyboard.h; sourceTree = "<group>"; };
122 3C15C06B0902D89500A8542F /* intervals.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = intervals.h; path = ../../src/intervals.h; sourceTree = "<group>"; };
123 3C15C06E0902D89500A8542F /* indent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = indent.h; path = ../../src/indent.h; sourceTree = "<group>"; };
124 3C15C0760902D89500A8542F /* category.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = category.h; path = ../../src/category.h; sourceTree = "<group>"; };
125 3C15C0770902D89500A8542F /* coding.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = coding.h; path = ../../src/coding.h; sourceTree = "<group>"; };
126 3C15C0780902D89500A8542F /* buffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = buffer.h; path = ../../src/buffer.h; sourceTree = "<group>"; };
127 3C15C0890902D89500A8542F /* cm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cm.h; path = ../../src/cm.h; sourceTree = "<group>"; };
128 3C15C0950902D89500A8542F /* termopts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = termopts.h; path = ../../src/termopts.h; sourceTree = "<group>"; };
129 3C15C0A00902D89500A8542F /* window.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = window.h; path = ../../src/window.h; sourceTree = "<group>"; };
130 3C15C0B80902D89500A8542F /* getpagesize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = getpagesize.h; path = ../../src/getpagesize.h; sourceTree = "<group>"; };
131 3C15C0BF0902D89500A8542F /* disptab.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = disptab.h; path = ../../src/disptab.h; sourceTree = "<group>"; };
132 3C15C0C20902D89500A8542F /* epaths.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = epaths.h; path = ../../src/epaths.h; sourceTree = "<group>"; };
133 3C15C0C50902D89500A8542F /* ccl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ccl.h; path = ../../src/ccl.h; sourceTree = "<group>"; };
134 3C15C0C70902D89500A8542F /* composite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = composite.h; path = ../../src/composite.h; sourceTree = "<group>"; };
135 3C15C0C80902D89500A8542F /* charset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = charset.h; path = ../../src/charset.h; sourceTree = "<group>"; };
136 3C15C0C90902D89500A8542F /* fontset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = fontset.h; path = ../../src/fontset.h; sourceTree = "<group>"; };
137 3C15C0D70902D89500A8542F /* commands.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = commands.h; path = ../../src/commands.h; sourceTree = "<group>"; };
138 3C15C0D90902D89500A8542F /* dispextern.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = dispextern.h; path = ../../src/dispextern.h; sourceTree = "<group>"; };
139 3C15C0DE0902D89500A8542F /* character.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = character.h; path = ../../src/character.h; sourceTree = "<group>"; };
140 3C15C0E40902D89500A8542F /* frame.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = frame.h; path = ../../src/frame.h; sourceTree = "<group>"; };
141 3C15C0E60902D89500A8542F /* atimer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = atimer.h; path = ../../src/atimer.h; sourceTree = "<group>"; };
142 3C15C0E70902D89500A8542F /* blockinput.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = blockinput.h; path = ../../src/blockinput.h; sourceTree = "<group>"; };
143 3C15C1A70902D97100A8542F /* nsimage.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsimage.m; path = ../../src/nsimage.m; sourceTree = "<group>"; };
144 3C3AF9C90FC10CDF001240E9 /* menu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = menu.c; path = ../../src/menu.c; sourceTree = SOURCE_ROOT; };
145 3C3AF9D40FC10D85001240E9 /* libncurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.dylib; path = /usr/lib/libncurses.dylib; sourceTree = "<absolute>"; };
146 3C4D6D660DE50D2300B20D4E /* font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = font.c; path = ../../src/font.c; sourceTree = SOURCE_ROOT; };
147 3C4D6D670DE50D2300B20D4E /* font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = font.h; path = ../../src/font.h; sourceTree = SOURCE_ROOT; };
148 3C4D6D690DE50D2300B20D4E /* terminal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = terminal.c; path = ../../src/terminal.c; sourceTree = SOURCE_ROOT; };
149 3C4D6D710DE50D5D00B20D4E /* nsfont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = nsfont.m; path = ../../src/nsfont.m; sourceTree = SOURCE_ROOT; };
150 3C7F3C3A07EB3B05003C8A4D /* nsterm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = nsterm.h; path = ../../src/nsterm.h; sourceTree = "<group>"; };
151 3CB8E29D0E2CE73A003F3104 /* Emacs.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = Emacs.icns; path = Emacs.base/Contents/Resources/Emacs.icns; sourceTree = "<group>"; };
152 3CB8E29F0E2CE7F5003F3104 /* Credits.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = Credits.html; path = Emacs.base/Contents/Resources/Credits.html; sourceTree = "<group>"; };
153 3CB8E2A60E2CE856003F3104 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = InfoPlist.strings; sourceTree = "<group>"; };
154 3CC5434C07E2315800C271A9 /* Emacs.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Emacs.app; sourceTree = BUILT_PRODUCTS_DIR; };
155 3CDCED330902E99700B2EF7E /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../../src/config.h; sourceTree = "<group>"; };
156 3CDCED550902EA8100B2EF7E /* term.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = term.c; path = ../../src/term.c; sourceTree = "<group>"; };
157 3CDCED560902EA8100B2EF7E /* sysdep.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sysdep.c; path = ../../src/sysdep.c; sourceTree = "<group>"; };
158 3CDCED570902EA8100B2EF7E /* syntax.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = syntax.c; path = ../../src/syntax.c; sourceTree = "<group>"; };
159 3CDCED590902EA8100B2EF7E /* strftime.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = strftime.c; path = ../../src/strftime.c; sourceTree = "<group>"; };
160 3CDCED5A0902EA8100B2EF7E /* sound.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sound.c; path = ../../src/sound.c; sourceTree = "<group>"; };
161 3CDCED5C0902EA8100B2EF7E /* search.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = search.c; path = ../../src/search.c; sourceTree = "<group>"; };
162 3CDCED5D0902EA8100B2EF7E /* scroll.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = scroll.c; path = ../../src/scroll.c; sourceTree = "<group>"; };
163 3CDCED5E0902EA8100B2EF7E /* region-cache.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = "region-cache.c"; path = "../../src/region-cache.c"; sourceTree = "<group>"; };
164 3CDCED5F0902EA8100B2EF7E /* regex.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = regex.c; path = ../../src/regex.c; sourceTree = "<group>"; };
165 3CDCED610902EA8100B2EF7E /* process.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = process.c; path = ../../src/process.c; sourceTree = "<group>"; };
166 3CDCED620902EA8100B2EF7E /* print.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = print.c; path = ../../src/print.c; sourceTree = "<group>"; };
167 3CDCED640902EA8100B2EF7E /* pre-crt0.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = "pre-crt0.c"; path = "../../src/pre-crt0.c"; sourceTree = "<group>"; };
168 3CDCED670902EA8100B2EF7E /* minibuf.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = minibuf.c; path = ../../src/minibuf.c; sourceTree = "<group>"; };
169 3CDCED680902EA8100B2EF7E /* md5.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../../src/md5.c; sourceTree = "<group>"; };
170 3CDCED690902EA8100B2EF7E /* marker.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = marker.c; path = ../../src/marker.c; sourceTree = "<group>"; };
171 3CDCED6D0902EA8100B2EF7E /* macros.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = macros.c; path = ../../src/macros.c; sourceTree = "<group>"; };
172 3CDCED710902EA8100B2EF7E /* lread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lread.c; path = ../../src/lread.c; sourceTree = "<group>"; };
173 3CDCED720902EA8100B2EF7E /* lastfile.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lastfile.c; path = ../../src/lastfile.c; sourceTree = "<group>"; };
174 3CDCED730902EA8100B2EF7E /* keymap.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = keymap.c; path = ../../src/keymap.c; sourceTree = "<group>"; };
175 3CDCED740902EA8200B2EF7E /* keyboard.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = keyboard.c; path = ../../src/keyboard.c; sourceTree = "<group>"; };
176 3CDCED750902EA8200B2EF7E /* intervals.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = intervals.c; path = ../../src/intervals.c; sourceTree = "<group>"; };
177 3CDCED760902EA8200B2EF7E /* insdel.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = insdel.c; path = ../../src/insdel.c; sourceTree = "<group>"; };
178 3CDCED770902EA8200B2EF7E /* indent.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = indent.c; path = ../../src/indent.c; sourceTree = "<group>"; };
179 3CDCED780902EA8200B2EF7E /* image.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = image.c; path = ../../src/image.c; sourceTree = "<group>"; };
180 3CDCED7A0902EA8200B2EF7E /* cmds.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cmds.c; path = ../../src/cmds.c; sourceTree = "<group>"; };
181 3CDCED7B0902EA8200B2EF7E /* category.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = category.c; path = ../../src/category.c; sourceTree = "<group>"; };
182 3CDCED7C0902EA8200B2EF7E /* coding.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = coding.c; path = ../../src/coding.c; sourceTree = "<group>"; };
183 3CDCED830902EA8200B2EF7E /* unexmacosx.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = unexmacosx.c; path = ../../src/unexmacosx.c; sourceTree = "<group>"; };
184 3CDCED8B0902EA8200B2EF7E /* buffer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = buffer.c; path = ../../src/buffer.c; sourceTree = "<group>"; };
185 3CDCED8C0902EA8200B2EF7E /* character.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = character.c; path = ../../src/character.c; sourceTree = "<group>"; };
186 3CDCED920902EA8200B2EF7E /* undo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = undo.c; path = ../../src/undo.c; sourceTree = "<group>"; };
187 3CDCED940902EA8200B2EF7E /* textprop.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = textprop.c; path = ../../src/textprop.c; sourceTree = "<group>"; };
188 3CDCED950902EA8200B2EF7E /* terminfo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = terminfo.c; path = ../../src/terminfo.c; sourceTree = "<group>"; };
189 3CDCED9C0902EA8200B2EF7E /* xfaces.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = xfaces.c; path = ../../src/xfaces.c; sourceTree = "<group>"; };
190 3CDCED9D0902EA8200B2EF7E /* xdisp.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = xdisp.c; path = ../../src/xdisp.c; sourceTree = "<group>"; };
191 3CDCED9E0902EA8200B2EF7E /* window.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = window.c; path = ../../src/window.c; sourceTree = "<group>"; };
192 3CDCEDB00902EA8200B2EF7E /* doprnt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = doprnt.c; path = ../../src/doprnt.c; sourceTree = "<group>"; };
193 3CDCEDB10902EA8200B2EF7E /* doc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = doc.c; path = ../../src/doc.c; sourceTree = "<group>"; };
194 3CDCEDB20902EA8200B2EF7E /* dired.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dired.c; path = ../../src/dired.c; sourceTree = "<group>"; };
195 3CDCEDB30902EA8200B2EF7E /* data.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = data.c; path = ../../src/data.c; sourceTree = "<group>"; };
196 3CDCEDB40902EA8200B2EF7E /* callint.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = callint.c; path = ../../src/callint.c; sourceTree = "<group>"; };
197 3CDCEDB60902EA8200B2EF7E /* ccl.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ccl.c; path = ../../src/ccl.c; sourceTree = "<group>"; };
198 3CDCEDB70902EA8200B2EF7E /* fontset.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fontset.c; path = ../../src/fontset.c; sourceTree = "<group>"; };
199 3CDCEDB80902EA8200B2EF7E /* fns.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fns.c; path = ../../src/fns.c; sourceTree = "<group>"; };
200 3CDCEDB90902EA8200B2EF7E /* floatfns.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = floatfns.c; path = ../../src/floatfns.c; sourceTree = "<group>"; };
201 3CDCEDBB0902EA8200B2EF7E /* filemode.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = filemode.c; path = ../../src/filemode.c; sourceTree = "<group>"; };
202 3CDCEDBC0902EA8200B2EF7E /* filelock.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = filelock.c; path = ../../src/filelock.c; sourceTree = "<group>"; };
203 3CDCEDBD0902EA8200B2EF7E /* emacs.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = emacs.c; path = ../../src/emacs.c; sourceTree = "<group>"; };
204 3CDCEDBE0902EA8200B2EF7E /* editfns.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = editfns.c; path = ../../src/editfns.c; sourceTree = "<group>"; };
205 3CDCEDBF0902EA8200B2EF7E /* fileio.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fileio.c; path = ../../src/fileio.c; sourceTree = "<group>"; };
206 3CDCEDC00902EA8200B2EF7E /* eval.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = eval.c; path = ../../src/eval.c; sourceTree = "<group>"; };
207 3CDCEDC10902EA8200B2EF7E /* casetab.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = casetab.c; path = ../../src/casetab.c; sourceTree = "<group>"; };
208 3CDCEDC20902EA8200B2EF7E /* composite.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = composite.c; path = ../../src/composite.c; sourceTree = "<group>"; };
209 3CDCEDC30902EA8200B2EF7E /* dispnew.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dispnew.c; path = ../../src/dispnew.c; sourceTree = "<group>"; };
210 3CDCEDC40902EA8200B2EF7E /* charset.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = charset.c; path = ../../src/charset.c; sourceTree = "<group>"; };
211 3CDCEDC50902EA8200B2EF7E /* alloc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = alloc.c; path = ../../src/alloc.c; sourceTree = "<group>"; };
212 3CDCEDC60902EA8200B2EF7E /* bytecode.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = bytecode.c; path = ../../src/bytecode.c; sourceTree = "<group>"; };
213 3CDCEDC70902EA8200B2EF7E /* callproc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = callproc.c; path = ../../src/callproc.c; sourceTree = "<group>"; };
214 3CDCEDC80902EA8200B2EF7E /* cm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cm.c; path = ../../src/cm.c; sourceTree = "<group>"; };
215 3CDCEDC90902EA8200B2EF7E /* casefiddle.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = casefiddle.c; path = ../../src/casefiddle.c; sourceTree = "<group>"; };
216 3CDCEDCA0902EA8200B2EF7E /* fringe.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fringe.c; path = ../../src/fringe.c; sourceTree = "<group>"; };
217 3CDCEDCB0902EA8200B2EF7E /* frame.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = frame.c; path = ../../src/frame.c; sourceTree = "<group>"; };
218 3CDCEDCC0902EA8200B2EF7E /* chartab.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = chartab.c; path = ../../src/chartab.c; sourceTree = "<group>"; };
219 3CDCEDCD0902EA8200B2EF7E /* atimer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = atimer.c; path = ../../src/atimer.c; sourceTree = "<group>"; };
220 3CED87260FBE696B005ACB89 /* lisp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lisp.h; path = ../../src/lisp.h; sourceTree = SOURCE_ROOT; };
221 3CED87280FBE6993005ACB89 /* menu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = menu.h; path = ../../src/menu.h; sourceTree = SOURCE_ROOT; };
222 3CED87330FC0F557005ACB89 /* temacs */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = temacs; sourceTree = BUILT_PRODUCTS_DIR; };
223 3CFDFC3A08E79A6800B05918 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
224/* End PBXFileReference section */
225
226/* Begin PBXFrameworksBuildPhase section */
227 3CED87310FC0F557005ACB89 /* Frameworks */ = {
228 isa = PBXFrameworksBuildPhase;
229 buildActionMask = 2147483647;
230 files = (
231 3CED88190FC0F5B3005ACB89 /* AppKit.framework in Frameworks */,
232 3C3AF9D50FC10D85001240E9 /* libncurses.dylib in Frameworks */,
233 );
234 runOnlyForDeploymentPostprocessing = 0;
235 };
236/* End PBXFrameworksBuildPhase section */
237
238/* Begin PBXGroup section */
239 19C28FACFE9D520D11CA2CBB /* Products */ = {
240 isa = PBXGroup;
241 children = (
242 3CC5434C07E2315800C271A9 /* Emacs.app */,
243 3CED87330FC0F557005ACB89 /* temacs */,
244 );
245 name = Products;
246 sourceTree = "<group>";
247 };
248 289FC26B00C69A287F000001 /* NeXTstep */ = {
249 isa = PBXGroup;
250 children = (
251 3C4D6D710DE50D5D00B20D4E /* nsfont.m */,
252 3C15C1A70902D97100A8542F /* nsimage.m */,
253 3C15C04F0902D89500A8542F /* nsgui.h */,
254 3C7F3C3A07EB3B05003C8A4D /* nsterm.h */,
255 090AF67E00C61DCD7F000001 /* nsfns.m */,
256 090AF68000C61DCD7F000001 /* nsmenu.m */,
257 090AF68100C61DCD7F000001 /* nsselect.m */,
258 090AF68300C61DCD7F000001 /* nsterm.m */,
259 );
260 name = NeXTstep;
261 sourceTree = "<group>";
262 };
263 29B97314FDCFA39411CA2CEA /* Emacs */ = {
264 isa = PBXGroup;
265 children = (
266 289FC26B00C69A287F000001 /* NeXTstep */,
267 3C15C23E0902E6B000A8542F /* emacs-hdr */,
268 3CDCED4D0902EA6800B2EF7E /* emacs-src */,
269 29B97317FDCFA39411CA2CEA /* Resources */,
270 29B97323FDCFA39411CA2CEA /* Frameworks */,
271 19C28FACFE9D520D11CA2CBB /* Products */,
272 );
273 name = Emacs;
274 sourceTree = "<group>";
275 };
276 29B97317FDCFA39411CA2CEA /* Resources */ = {
277 isa = PBXGroup;
278 children = (
279 3CB8E2A40E2CE856003F3104 /* English.lproj */,
280 3CB8E29F0E2CE7F5003F3104 /* Credits.html */,
281 739637F200C4DF3C7F000001 /* Images */,
282 );
283 name = Resources;
284 sourceTree = "<group>";
285 };
286 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
287 isa = PBXGroup;
288 children = (
289 3C3AF9D40FC10D85001240E9 /* libncurses.dylib */,
290 3CFDFC3A08E79A6800B05918 /* AppKit.framework */,
291 );
292 name = Frameworks;
293 sourceTree = "<group>";
294 };
295 3C15C23E0902E6B000A8542F /* emacs-hdr */ = {
296 isa = PBXGroup;
297 children = (
298 3CED87280FBE6993005ACB89 /* menu.h */,
299 3CED87260FBE696B005ACB89 /* lisp.h */,
300 3C4D6D670DE50D2300B20D4E /* font.h */,
301 3C15C0E60902D89500A8542F /* atimer.h */,
302 3C15C0E70902D89500A8542F /* blockinput.h */,
303 3C15C0780902D89500A8542F /* buffer.h */,
304 3C15C0760902D89500A8542F /* category.h */,
305 3C15C0C50902D89500A8542F /* ccl.h */,
306 3C15C0DE0902D89500A8542F /* character.h */,
307 3C15C0C80902D89500A8542F /* charset.h */,
308 3C15C0890902D89500A8542F /* cm.h */,
309 3CDCED330902E99700B2EF7E /* config.h */,
310 3C15C0770902D89500A8542F /* coding.h */,
311 3C15C0D70902D89500A8542F /* commands.h */,
312 3C15C0C70902D89500A8542F /* composite.h */,
313 3C15C0D90902D89500A8542F /* dispextern.h */,
314 3C15C0BF0902D89500A8542F /* disptab.h */,
315 3C15C0C20902D89500A8542F /* epaths.h */,
316 3C15C0C90902D89500A8542F /* fontset.h */,
317 3C15C0E40902D89500A8542F /* frame.h */,
318 3C15C0B80902D89500A8542F /* getpagesize.h */,
319 3C15C06E0902D89500A8542F /* indent.h */,
320 3C15C06B0902D89500A8542F /* intervals.h */,
321 3C15C0660902D89500A8542F /* keymap.h */,
322 3C15C0680902D89500A8542F /* keyboard.h */,
323 3C15C05D0902D89500A8542F /* macros.h */,
324 3C15C0560902D89500A8542F /* md5.h */,
325 3C15C0550902D89500A8542F /* mem-limits.h */,
326 3C15C0500902D89500A8542F /* ndir.h */,
327 3C15C04C0902D89500A8542F /* point.h */,
328 3C15C0470902D89500A8542F /* process.h */,
329 3C15C0460902D89500A8542F /* puresize.h */,
330 3C15C0430902D89500A8542F /* regex.h */,
331 3C15C0410902D89500A8542F /* region-cache.h */,
332 3C15C0390902D89500A8542F /* syntax.h */,
333 3C15C0370902D89500A8542F /* sysselect.h */,
334 3C15C0330902D89500A8542F /* syswait.h */,
335 3C15C0360902D89500A8542F /* syssignal.h */,
336 3C15C0350902D89500A8542F /* systime.h */,
337 3C15C0340902D89500A8542F /* systty.h */,
338 3C15C0300902D89500A8542F /* termchar.h */,
339 3C15C02F0902D89500A8542F /* termhooks.h */,
340 3C15C0950902D89500A8542F /* termopts.h */,
341 3C15C0A00902D89500A8542F /* window.h */,
342 );
343 name = "emacs-hdr";
344 sourceTree = "<group>";
345 };
346 3CB8E2A40E2CE856003F3104 /* English.lproj */ = {
347 isa = PBXGroup;
348 children = (
349 3CB8E2A50E2CE856003F3104 /* InfoPlist.strings */,
350 );
351 name = English.lproj;
352 path = Emacs.base/Contents/Resources/English.lproj;
353 sourceTree = "<group>";
354 };
355 3CDCED4D0902EA6800B2EF7E /* emacs-src */ = {
356 isa = PBXGroup;
357 children = (
358 3C3AF9C90FC10CDF001240E9 /* menu.c */,
359 3C4D6D660DE50D2300B20D4E /* font.c */,
360 3C4D6D690DE50D2300B20D4E /* terminal.c */,
361 3CDCED550902EA8100B2EF7E /* term.c */,
362 3CDCED560902EA8100B2EF7E /* sysdep.c */,
363 3CDCED570902EA8100B2EF7E /* syntax.c */,
364 3CDCED590902EA8100B2EF7E /* strftime.c */,
365 3CDCED5A0902EA8100B2EF7E /* sound.c */,
366 3CDCED5C0902EA8100B2EF7E /* search.c */,
367 3CDCED5D0902EA8100B2EF7E /* scroll.c */,
368 3CDCED5E0902EA8100B2EF7E /* region-cache.c */,
369 3CDCED5F0902EA8100B2EF7E /* regex.c */,
370 3CDCED610902EA8100B2EF7E /* process.c */,
371 3CDCED620902EA8100B2EF7E /* print.c */,
372 3CDCED640902EA8100B2EF7E /* pre-crt0.c */,
373 3CDCED670902EA8100B2EF7E /* minibuf.c */,
374 3CDCED680902EA8100B2EF7E /* md5.c */,
375 3CDCED690902EA8100B2EF7E /* marker.c */,
376 3CDCED6D0902EA8100B2EF7E /* macros.c */,
377 3CDCED710902EA8100B2EF7E /* lread.c */,
378 3CDCED720902EA8100B2EF7E /* lastfile.c */,
379 3CDCED730902EA8100B2EF7E /* keymap.c */,
380 3CDCED740902EA8200B2EF7E /* keyboard.c */,
381 3CDCED750902EA8200B2EF7E /* intervals.c */,
382 3CDCED760902EA8200B2EF7E /* insdel.c */,
383 3CDCED770902EA8200B2EF7E /* indent.c */,
384 3CDCED780902EA8200B2EF7E /* image.c */,
385 3CDCED7A0902EA8200B2EF7E /* cmds.c */,
386 3CDCED7B0902EA8200B2EF7E /* category.c */,
387 3CDCED7C0902EA8200B2EF7E /* coding.c */,
388 3CDCED830902EA8200B2EF7E /* unexmacosx.c */,
389 3CDCED8B0902EA8200B2EF7E /* buffer.c */,
390 3CDCED8C0902EA8200B2EF7E /* character.c */,
391 3CDCED920902EA8200B2EF7E /* undo.c */,
392 3CDCED940902EA8200B2EF7E /* textprop.c */,
393 3CDCED950902EA8200B2EF7E /* terminfo.c */,
394 3CDCED9C0902EA8200B2EF7E /* xfaces.c */,
395 3CDCED9D0902EA8200B2EF7E /* xdisp.c */,
396 3CDCED9E0902EA8200B2EF7E /* window.c */,
397 3CDCEDB00902EA8200B2EF7E /* doprnt.c */,
398 3CDCEDB10902EA8200B2EF7E /* doc.c */,
399 3CDCEDB20902EA8200B2EF7E /* dired.c */,
400 3CDCEDB30902EA8200B2EF7E /* data.c */,
401 3CDCEDB40902EA8200B2EF7E /* callint.c */,
402 3CDCEDB60902EA8200B2EF7E /* ccl.c */,
403 3CDCEDB70902EA8200B2EF7E /* fontset.c */,
404 3CDCEDB80902EA8200B2EF7E /* fns.c */,
405 3CDCEDB90902EA8200B2EF7E /* floatfns.c */,
406 3CDCEDBB0902EA8200B2EF7E /* filemode.c */,
407 3CDCEDBC0902EA8200B2EF7E /* filelock.c */,
408 3CDCEDBD0902EA8200B2EF7E /* emacs.c */,
409 3CDCEDBE0902EA8200B2EF7E /* editfns.c */,
410 3CDCEDBF0902EA8200B2EF7E /* fileio.c */,
411 3CDCEDC00902EA8200B2EF7E /* eval.c */,
412 3CDCEDC10902EA8200B2EF7E /* casetab.c */,
413 3CDCEDC20902EA8200B2EF7E /* composite.c */,
414 3CDCEDC30902EA8200B2EF7E /* dispnew.c */,
415 3CDCEDC40902EA8200B2EF7E /* charset.c */,
416 3CDCEDC50902EA8200B2EF7E /* alloc.c */,
417 3CDCEDC60902EA8200B2EF7E /* bytecode.c */,
418 3CDCEDC70902EA8200B2EF7E /* callproc.c */,
419 3CDCEDC80902EA8200B2EF7E /* cm.c */,
420 3CDCEDC90902EA8200B2EF7E /* casefiddle.c */,
421 3CDCEDCA0902EA8200B2EF7E /* fringe.c */,
422 3CDCEDCB0902EA8200B2EF7E /* frame.c */,
423 3CDCEDCC0902EA8200B2EF7E /* chartab.c */,
424 3CDCEDCD0902EA8200B2EF7E /* atimer.c */,
425 );
426 name = "emacs-src";
427 sourceTree = "<group>";
428 };
429 739637F200C4DF3C7F000001 /* Images */ = {
430 isa = PBXGroup;
431 children = (
432 3CB8E29D0E2CE73A003F3104 /* Emacs.icns */,
433 );
434 name = Images;
435 sourceTree = "<group>";
436 };
437/* End PBXGroup section */
438
439/* Begin PBXNativeTarget section */
440 3CC542FE07E2315800C271A9 /* Emacs */ = {
441 isa = PBXNativeTarget;
442 buildConfigurationList = 3CA115970C825A540007AFC2 /* Build configuration list for PBXNativeTarget "Emacs" */;
443 buildPhases = (
444 3CED88240FC0FE7C005ACB89 /* ShellScript */,
445 3CED883D0FC0FF6E005ACB89 /* ShellScript */,
446 );
447 buildRules = (
448 );
449 dependencies = (
450 3CED88230FC0FE5C005ACB89 /* PBXTargetDependency */,
451 );
452 name = Emacs;
453 productInstallPath = "$(HOME)/Applications";
454 productName = Emacs;
455 productReference = 3CC5434C07E2315800C271A9 /* Emacs.app */;
456 productType = "com.apple.product-type.application";
457 };
458 3CED87320FC0F557005ACB89 /* temacs */ = {
459 isa = PBXNativeTarget;
460 buildConfigurationList = 3CED87350FC0F576005ACB89 /* Build configuration list for PBXNativeTarget "temacs" */;
461 buildPhases = (
462 3CED87300FC0F557005ACB89 /* Sources */,
463 3CED87310FC0F557005ACB89 /* Frameworks */,
464 3CED88460FC100EC005ACB89 /* ShellScript */,
465 );
466 buildRules = (
467 );
468 dependencies = (
469 );
470 name = temacs;
471 productName = "emacs-bin";
472 productReference = 3CED87330FC0F557005ACB89 /* temacs */;
473 productType = "com.apple.product-type.tool";
474 };
475/* End PBXNativeTarget section */
476
477/* Begin PBXProject section */
478 29B97313FDCFA39411CA2CEA /* Project object */ = {
479 isa = PBXProject;
480 buildConfigurationList = 3CA1159B0C825A540007AFC2 /* Build configuration list for PBXProject "Emacs" */;
481 hasScannedForEncodings = 1;
482 mainGroup = 29B97314FDCFA39411CA2CEA /* Emacs */;
483 projectDirPath = "";
484 projectRoot = ../..;
485 targets = (
486 3CC542FE07E2315800C271A9 /* Emacs */,
487 3CED87320FC0F557005ACB89 /* temacs */,
488 );
489 };
490/* End PBXProject section */
491
492/* Begin PBXShellScriptBuildPhase section */
493 3CED88240FC0FE7C005ACB89 /* ShellScript */ = {
494 isa = PBXShellScriptBuildPhase;
495 buildActionMask = 2147483647;
496 files = (
497 );
498 inputPaths = (
499 );
500 outputPaths = (
501 );
502 runOnlyForDeploymentPostprocessing = 0;
503 shellPath = /bin/sh;
504 shellScript = "# This script sets up the Emacs.app bundle by copying from Cocoa/Emacs.base,\n# and copying the binary emacs. It runs the ns-app target in src/Makefile.\n# This depends on emacs target, so temacs resulting from previous step is\n# dumped into emacs.\n\ncd ../../src\n\nmake ns-app\n";
505 };
506 3CED883D0FC0FF6E005ACB89 /* ShellScript */ = {
507 isa = PBXShellScriptBuildPhase;
508 buildActionMask = 12;
509 files = (
510 );
511 inputPaths = (
512 );
513 outputPaths = (
514 );
515 runOnlyForDeploymentPostprocessing = 0;
516 shellPath = /bin/sh;
517 shellScript = "# This script copies the lisp and other files into the bundle\n# (if self-contained configuration was selected at configure time),\n# or the install location (otherwise).\n\n# Xcode was supposed to make this check based on input/output files,\n# but it didn't work for some reason, so run every time and do it ourselves.\nif [ -x ../Emacs.app/Contents/Resources/lisp ]; then\n\texit\nfi\n\ncd ../..\nmake install\nln -sf $BUILD_ROOT/../../Emacs.app $BUILT_PRODUCTS_DIR/Emacs.app\n";
518 };
519 3CED88460FC100EC005ACB89 /* ShellScript */ = {
520 isa = PBXShellScriptBuildPhase;
521 buildActionMask = 2147483647;
522 files = (
523 );
524 inputPaths = (
525 "$(BUILT_PRODUCTS_DIR)/temacs",
526 );
527 outputPaths = (
528 ../../src/temacs,
529 );
530 runOnlyForDeploymentPostprocessing = 0;
531 shellPath = /bin/sh;
532 shellScript = "# Move the build results to emacs src dir so scripts in Emacs target invoking\n# make operations can use them.\n# *.o files included because make-docfile uses object files for some reason\n\ncp -f ${OBJECT_FILE_DIR_normal}/${NATIVE_ARCH_ACTUAL}/*.o ../../src\ncp -f ${BUILT_PRODUCTS_DIR}/temacs ../../src";
533 };
534/* End PBXShellScriptBuildPhase section */
535
536/* Begin PBXSourcesBuildPhase section */
537 3CED87300FC0F557005ACB89 /* Sources */ = {
538 isa = PBXSourcesBuildPhase;
539 buildActionMask = 2147483647;
540 files = (
541 3CED876D0FC0F581005ACB89 /* pre-crt0.c in Sources */,
542 3CED87390FC0F581005ACB89 /* alloc.c in Sources */,
543 3CED873A0FC0F581005ACB89 /* atimer.c in Sources */,
544 3CED873B0FC0F581005ACB89 /* buffer.c in Sources */,
545 3CED873C0FC0F581005ACB89 /* bytecode.c in Sources */,
546 3CED873D0FC0F581005ACB89 /* callint.c in Sources */,
547 3CED873E0FC0F581005ACB89 /* callproc.c in Sources */,
548 3CED873F0FC0F581005ACB89 /* casefiddle.c in Sources */,
549 3CED87400FC0F581005ACB89 /* casetab.c in Sources */,
550 3CED87410FC0F581005ACB89 /* category.c in Sources */,
551 3CED87420FC0F581005ACB89 /* ccl.c in Sources */,
552 3CED87430FC0F581005ACB89 /* character.c in Sources */,
553 3CED87440FC0F581005ACB89 /* charset.c in Sources */,
554 3CED87450FC0F581005ACB89 /* chartab.c in Sources */,
555 3CED87460FC0F581005ACB89 /* cm.c in Sources */,
556 3CED87470FC0F581005ACB89 /* cmds.c in Sources */,
557 3CED87480FC0F581005ACB89 /* coding.c in Sources */,
558 3CED87490FC0F581005ACB89 /* composite.c in Sources */,
559 3CED874A0FC0F581005ACB89 /* data.c in Sources */,
560 3CED874B0FC0F581005ACB89 /* dired.c in Sources */,
561 3CED874C0FC0F581005ACB89 /* dispnew.c in Sources */,
562 3CED874D0FC0F581005ACB89 /* doc.c in Sources */,
563 3CED874E0FC0F581005ACB89 /* doprnt.c in Sources */,
564 3CED874F0FC0F581005ACB89 /* editfns.c in Sources */,
565 3CED87500FC0F581005ACB89 /* emacs.c in Sources */,
566 3CED87510FC0F581005ACB89 /* eval.c in Sources */,
567 3CED87520FC0F581005ACB89 /* fileio.c in Sources */,
568 3CED87530FC0F581005ACB89 /* filelock.c in Sources */,
569 3CED87540FC0F581005ACB89 /* filemode.c in Sources */,
570 3CED87550FC0F581005ACB89 /* floatfns.c in Sources */,
571 3CED87560FC0F581005ACB89 /* fns.c in Sources */,
572 3CED87570FC0F581005ACB89 /* font.c in Sources */,
573 3CED87580FC0F581005ACB89 /* fontset.c in Sources */,
574 3CED87590FC0F581005ACB89 /* frame.c in Sources */,
575 3CED875A0FC0F581005ACB89 /* fringe.c in Sources */,
576 3CED875B0FC0F581005ACB89 /* image.c in Sources */,
577 3CED875C0FC0F581005ACB89 /* indent.c in Sources */,
578 3CED875D0FC0F581005ACB89 /* insdel.c in Sources */,
579 3CED875E0FC0F581005ACB89 /* intervals.c in Sources */,
580 3CED875F0FC0F581005ACB89 /* keyboard.c in Sources */,
581 3CED87600FC0F581005ACB89 /* keymap.c in Sources */,
582 3CED87620FC0F581005ACB89 /* lread.c in Sources */,
583 3CED87630FC0F581005ACB89 /* macros.c in Sources */,
584 3CED87640FC0F581005ACB89 /* marker.c in Sources */,
585 3CED87650FC0F581005ACB89 /* md5.c in Sources */,
586 3C3AF9CA0FC10CDF001240E9 /* menu.c in Sources */,
587 3CED87660FC0F581005ACB89 /* minibuf.c in Sources */,
588 3CED87670FC0F581005ACB89 /* nsfns.m in Sources */,
589 3CED87680FC0F581005ACB89 /* nsfont.m in Sources */,
590 3CED87690FC0F581005ACB89 /* nsimage.m in Sources */,
591 3CED876A0FC0F581005ACB89 /* nsmenu.m in Sources */,
592 3CED876B0FC0F581005ACB89 /* nsselect.m in Sources */,
593 3CED876C0FC0F581005ACB89 /* nsterm.m in Sources */,
594 3CED876E0FC0F581005ACB89 /* print.c in Sources */,
595 3CED876F0FC0F581005ACB89 /* process.c in Sources */,
596 3CED87700FC0F581005ACB89 /* regex.c in Sources */,
597 3CED87710FC0F581005ACB89 /* region-cache.c in Sources */,
598 3CED87720FC0F581005ACB89 /* scroll.c in Sources */,
599 3CED87730FC0F581005ACB89 /* search.c in Sources */,
600 3CED87740FC0F581005ACB89 /* sound.c in Sources */,
601 3CED87750FC0F581005ACB89 /* strftime.c in Sources */,
602 3CED87760FC0F581005ACB89 /* syntax.c in Sources */,
603 3CED87770FC0F581005ACB89 /* sysdep.c in Sources */,
604 3CED87780FC0F581005ACB89 /* term.c in Sources */,
605 3CED877A0FC0F581005ACB89 /* terminal.c in Sources */,
606 3CED877B0FC0F581005ACB89 /* terminfo.c in Sources */,
607 3CED877C0FC0F581005ACB89 /* textprop.c in Sources */,
608 3CED877E0FC0F581005ACB89 /* undo.c in Sources */,
609 3CED877F0FC0F581005ACB89 /* unexmacosx.c in Sources */,
610 3CED87800FC0F581005ACB89 /* window.c in Sources */,
611 3CED87810FC0F581005ACB89 /* xdisp.c in Sources */,
612 3CED87820FC0F581005ACB89 /* xfaces.c in Sources */,
613 3CED87610FC0F581005ACB89 /* lastfile.c in Sources */,
614 );
615 runOnlyForDeploymentPostprocessing = 0;
616 };
617/* End PBXSourcesBuildPhase section */
618
619/* Begin PBXTargetDependency section */
620 3CED88230FC0FE5C005ACB89 /* PBXTargetDependency */ = {
621 isa = PBXTargetDependency;
622 target = 3CED87320FC0F557005ACB89 /* temacs */;
623 targetProxy = 3CED88220FC0FE5C005ACB89 /* PBXContainerItemProxy */;
624 };
625/* End PBXTargetDependency section */
626
627/* Begin PBXVariantGroup section */
628 3CB8E2A50E2CE856003F3104 /* InfoPlist.strings */ = {
629 isa = PBXVariantGroup;
630 children = (
631 3CB8E2A60E2CE856003F3104 /* English */,
632 );
633 name = InfoPlist.strings;
634 sourceTree = "<group>";
635 };
636/* End PBXVariantGroup section */
637
638/* Begin XCBuildConfiguration section */
639 3CA115980C825A540007AFC2 /* Development */ = {
640 isa = XCBuildConfiguration;
641 buildSettings = {
642 PRODUCT_NAME = Emacs;
643 WRAPPER_EXTENSION = app;
644 };
645 name = Development;
646 };
647 3CA115990C825A540007AFC2 /* Deployment */ = {
648 isa = XCBuildConfiguration;
649 buildSettings = {
650 PRODUCT_NAME = Emacs;
651 WRAPPER_EXTENSION = app;
652 };
653 name = Deployment;
654 };
655 3CA1159A0C825A540007AFC2 /* Default */ = {
656 isa = XCBuildConfiguration;
657 buildSettings = {
658 PRODUCT_NAME = Emacs;
659 WRAPPER_EXTENSION = app;
660 };
661 name = Default;
662 };
663 3CA1159C0C825A540007AFC2 /* Development */ = {
664 isa = XCBuildConfiguration;
665 buildSettings = {
666 MACOSX_DEPLOYMENT_TARGET = "";
667 SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
668 };
669 name = Development;
670 };
671 3CA1159D0C825A540007AFC2 /* Deployment */ = {
672 isa = XCBuildConfiguration;
673 buildSettings = {
674 MACOSX_DEPLOYMENT_TARGET = "";
675 SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
676 };
677 name = Deployment;
678 };
679 3CA1159E0C825A540007AFC2 /* Default */ = {
680 isa = XCBuildConfiguration;
681 buildSettings = {
682 MACOSX_DEPLOYMENT_TARGET = "";
683 SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
684 };
685 name = Default;
686 };
687 3CED87360FC0F576005ACB89 /* Development */ = {
688 isa = XCBuildConfiguration;
689 buildSettings = {
690 COPY_PHASE_STRIP = NO;
691 GCC_DYNAMIC_NO_PIC = NO;
692 GCC_ENABLE_FIX_AND_CONTINUE = NO;
693 GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
694 GCC_MODEL_TUNING = G5;
695 GCC_OPTIMIZATION_LEVEL = 0;
696 GCC_PREPROCESSOR_DEFINITIONS = (
697 emacs,
698 temacs,
699 HAVE_CONFIG_H,
700 );
701 OTHER_LDFLAGS = (
702 "-Xlinker",
703 "-headerpad",
704 "-Xlinker",
705 6C8,
706 );
707 PREBINDING = NO;
708 PRODUCT_NAME = temacs;
709 WARNING_CFLAGS = "-Wno-pointer-sign";
710 ZERO_LINK = NO;
711 };
712 name = Development;
713 };
714 3CED87370FC0F576005ACB89 /* Deployment */ = {
715 isa = XCBuildConfiguration;
716 buildSettings = {
717 COPY_PHASE_STRIP = YES;
718 GCC_ENABLE_FIX_AND_CONTINUE = NO;
719 GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
720 GCC_MODEL_TUNING = G5;
721 GCC_PREPROCESSOR_DEFINITIONS = (
722 emacs,
723 temacs,
724 HAVE_CONFIG_H,
725 );
726 OTHER_LDFLAGS = (
727 "-Xlinker",
728 "-headerpad",
729 "-Xlinker",
730 6C8,
731 );
732 PREBINDING = NO;
733 PRODUCT_NAME = temacs;
734 WARNING_CFLAGS = "-Wno-pointer-sign";
735 ZERO_LINK = NO;
736 };
737 name = Deployment;
738 };
739 3CED87380FC0F576005ACB89 /* Default */ = {
740 isa = XCBuildConfiguration;
741 buildSettings = {
742 GCC_ENABLE_FIX_AND_CONTINUE = YES;
743 GCC_MODEL_TUNING = G5;
744 GCC_PREPROCESSOR_DEFINITIONS = (
745 emacs,
746 temacs,
747 HAVE_CONFIG_H,
748 );
749 OTHER_LDFLAGS = (
750 "-Xlinker",
751 "-headerpad",
752 "-Xlinker",
753 6C8,
754 );
755 PREBINDING = NO;
756 PRODUCT_NAME = temacs;
757 WARNING_CFLAGS = "-Wno-pointer-sign";
758 ZERO_LINK = YES;
759 };
760 name = Default;
761 };
762/* End XCBuildConfiguration section */
763
764/* Begin XCConfigurationList section */
765 3CA115970C825A540007AFC2 /* Build configuration list for PBXNativeTarget "Emacs" */ = {
766 isa = XCConfigurationList;
767 buildConfigurations = (
768 3CA115980C825A540007AFC2 /* Development */,
769 3CA115990C825A540007AFC2 /* Deployment */,
770 3CA1159A0C825A540007AFC2 /* Default */,
771 );
772 defaultConfigurationIsVisible = 0;
773 defaultConfigurationName = Default;
774 };
775 3CA1159B0C825A540007AFC2 /* Build configuration list for PBXProject "Emacs" */ = {
776 isa = XCConfigurationList;
777 buildConfigurations = (
778 3CA1159C0C825A540007AFC2 /* Development */,
779 3CA1159D0C825A540007AFC2 /* Deployment */,
780 3CA1159E0C825A540007AFC2 /* Default */,
781 );
782 defaultConfigurationIsVisible = 0;
783 defaultConfigurationName = Default;
784 };
785 3CED87350FC0F576005ACB89 /* Build configuration list for PBXNativeTarget "temacs" */ = {
786 isa = XCConfigurationList;
787 buildConfigurations = (
788 3CED87360FC0F576005ACB89 /* Development */,
789 3CED87370FC0F576005ACB89 /* Deployment */,
790 3CED87380FC0F576005ACB89 /* Default */,
791 );
792 defaultConfigurationIsVisible = 0;
793 defaultConfigurationName = Default;
794 };
795/* End XCConfigurationList section */
796 };
797 rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
798}
diff --git a/src/ChangeLog b/src/ChangeLog
index 07b0418b399..d21e6383764 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,22 @@
12011-10-18 Eli Zaretskii <eliz@gnu.org>
2
3 Fix part 3 of bug#9771.
4 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
5 (bidi_resolve_neutral): Don't enter the expensive loop looking for
6 non-neutral characters if the current character is a paragraph
7 separator (a.k.a. Newline). This avoids running the same
8 expensive loop twice, once when we consume the preceding newline
9 and the other time when the line actually needs to be displayed.
10 Avoid the loop when we see neutrals on the base embedding level
11 following a character whose directionality is the same as the
12 paragraph's. This avoids running the expensive loop when a line
13 ends in a long sequence of neutrals, like control characters.
14 Add assertion against STRONG_AL type. Slightly rearrange code
15 that determines the type of a neutral given the first non-neutral
16 that follows it.
17 (bidi_level_of_next_char): Set next_en_pos to zero when
18 invalidating its info.
19
12011-10-17 Eli Zaretskii <eliz@gnu.org> 202011-10-17 Eli Zaretskii <eliz@gnu.org>
2 21
3 * xdisp.c (push_display_prop): Determine whether to record string 22 * xdisp.c (push_display_prop): Determine whether to record string
diff --git a/src/bidi.c b/src/bidi.c
index f06c146ca84..29e3c817318 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -846,7 +846,9 @@ bidi_line_init (struct bidi_it *bidi_it)
846 bidi_it->level_stack[0].override = NEUTRAL_DIR; /* X1 */ 846 bidi_it->level_stack[0].override = NEUTRAL_DIR; /* X1 */
847 bidi_it->invalid_levels = 0; 847 bidi_it->invalid_levels = 0;
848 bidi_it->invalid_rl_levels = -1; 848 bidi_it->invalid_rl_levels = -1;
849 bidi_it->next_en_pos = -1; 849 /* Setting this to zero will force its recomputation the first time
850 we need it for W5. */
851 bidi_it->next_en_pos = 0;
850 bidi_it->next_for_ws.type = UNKNOWN_BT; 852 bidi_it->next_for_ws.type = UNKNOWN_BT;
851 bidi_set_sor_type (bidi_it, 853 bidi_set_sor_type (bidi_it,
852 (bidi_it->paragraph_dir == R2L ? 1 : 0), 854 (bidi_it->paragraph_dir == R2L ? 1 : 0),
@@ -1732,7 +1734,7 @@ bidi_resolve_weak (struct bidi_it *bidi_it)
1732 if (bidi_it->prev.type_after_w1 == WEAK_EN /* ET/BN w/EN before it */ 1734 if (bidi_it->prev.type_after_w1 == WEAK_EN /* ET/BN w/EN before it */
1733 || bidi_it->next_en_pos > bidi_it->charpos) 1735 || bidi_it->next_en_pos > bidi_it->charpos)
1734 type = WEAK_EN; 1736 type = WEAK_EN;
1735 else /* W5: ET/BN with EN after it. */ 1737 else if (bidi_it->next_en_pos >=0) /* W5: ET/BN with EN after it. */
1736 { 1738 {
1737 EMACS_INT en_pos = bidi_it->charpos + bidi_it->nchars; 1739 EMACS_INT en_pos = bidi_it->charpos + bidi_it->nchars;
1738 const unsigned char *s = (STRINGP (bidi_it->string.lstring) 1740 const unsigned char *s = (STRINGP (bidi_it->string.lstring)
@@ -1775,6 +1777,11 @@ bidi_resolve_weak (struct bidi_it *bidi_it)
1775 else if (type == WEAK_BN) 1777 else if (type == WEAK_BN)
1776 type = NEUTRAL_ON; /* W6/Retaining */ 1778 type = NEUTRAL_ON; /* W6/Retaining */
1777 } 1779 }
1780 else if (type_of_next == NEUTRAL_B)
1781 /* Record the fact that there are no more ENs from
1782 here to the end of paragraph, to avoid entering the
1783 loop above ever again in this paragraph. */
1784 bidi_it->next_en_pos = -1;
1778 } 1785 }
1779 } 1786 }
1780 } 1787 }
@@ -1843,13 +1850,45 @@ bidi_resolve_neutral (struct bidi_it *bidi_it)
1843 || type == NEUTRAL_ON)) 1850 || type == NEUTRAL_ON))
1844 abort (); 1851 abort ();
1845 1852
1846 if (bidi_get_category (type) == NEUTRAL 1853 if ((type != NEUTRAL_B /* Don't risk entering the long loop below if
1854 we are already at paragraph end. */
1855 && bidi_get_category (type) == NEUTRAL)
1847 || (type == WEAK_BN && prev_level == current_level)) 1856 || (type == WEAK_BN && prev_level == current_level))
1848 { 1857 {
1849 if (bidi_it->next_for_neutral.type != UNKNOWN_BT) 1858 if (bidi_it->next_for_neutral.type != UNKNOWN_BT)
1850 type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, 1859 type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type,
1851 bidi_it->next_for_neutral.type, 1860 bidi_it->next_for_neutral.type,
1852 current_level); 1861 current_level);
1862 /* The next two "else if" clauses are shortcuts for the
1863 important special case when we have a long sequence of
1864 neutral or WEAK_BN characters, such as whitespace or nulls or
1865 other control characters, on the base embedding level of the
1866 paragraph, and that sequence goes all the way to the end of
1867 the paragraph and follows a character whose resolved
1868 directionality is identical to the base embedding level.
1869 (This is what happens in a buffer with plain L2R text that
1870 happens to include long sequences of control characters.) By
1871 virtue of N1, the result of examining this long sequence will
1872 always be either STRONG_L or STRONG_R, depending on the base
1873 embedding level. So we use this fact directly instead of
1874 entering the expensive loop in the "else" clause. */
1875 else if (current_level == 0
1876 && bidi_it->prev_for_neutral.type == STRONG_L
1877 && !bidi_explicit_dir_char (bidi_it->ch))
1878 type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type,
1879 STRONG_L, current_level);
1880 else if (/* current level is 1 */
1881 current_level == 1
1882 /* base embedding level is also 1 */
1883 && bidi_it->level_stack[0].level == 1
1884 /* previous character is one of those considered R for
1885 the purposes of W5 */
1886 && (bidi_it->prev_for_neutral.type == STRONG_R
1887 || bidi_it->prev_for_neutral.type == WEAK_EN
1888 || bidi_it->prev_for_neutral.type == WEAK_AN)
1889 && !bidi_explicit_dir_char (bidi_it->ch))
1890 type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type,
1891 STRONG_R, current_level);
1853 else 1892 else
1854 { 1893 {
1855 /* Arrrgh!! The UAX#9 algorithm is too deeply entrenched in 1894 /* Arrrgh!! The UAX#9 algorithm is too deeply entrenched in
@@ -1900,6 +1939,9 @@ bidi_resolve_neutral (struct bidi_it *bidi_it)
1900 case STRONG_L: 1939 case STRONG_L:
1901 case STRONG_R: 1940 case STRONG_R:
1902 case STRONG_AL: 1941 case STRONG_AL:
1942 /* Actually, STRONG_AL cannot happen here, because
1943 bidi_resolve_weak converts it to STRONG_R, per W3. */
1944 xassert (type != STRONG_AL);
1903 next_type = type; 1945 next_type = type;
1904 break; 1946 break;
1905 case WEAK_EN: 1947 case WEAK_EN:
@@ -1907,7 +1949,6 @@ bidi_resolve_neutral (struct bidi_it *bidi_it)
1907 /* N1: ``European and Arabic numbers are treated as 1949 /* N1: ``European and Arabic numbers are treated as
1908 though they were R.'' */ 1950 though they were R.'' */
1909 next_type = STRONG_R; 1951 next_type = STRONG_R;
1910 saved_it.next_for_neutral.type = STRONG_R;
1911 break; 1952 break;
1912 case WEAK_BN: 1953 case WEAK_BN:
1913 if (!bidi_explicit_dir_char (bidi_it->ch)) 1954 if (!bidi_explicit_dir_char (bidi_it->ch))
@@ -1920,11 +1961,7 @@ bidi_resolve_neutral (struct bidi_it *bidi_it)
1920 member. */ 1961 member. */
1921 if (saved_it.type != WEAK_BN 1962 if (saved_it.type != WEAK_BN
1922 || bidi_get_category (bidi_it->prev.type_after_w1) == NEUTRAL) 1963 || bidi_get_category (bidi_it->prev.type_after_w1) == NEUTRAL)
1923 { 1964 next_type = bidi_it->prev_for_neutral.type;
1924 next_type = bidi_it->prev_for_neutral.type;
1925 saved_it.next_for_neutral.type = next_type;
1926 bidi_check_type (next_type);
1927 }
1928 else 1965 else
1929 { 1966 {
1930 /* This is a BN which does not adjoin neutrals. 1967 /* This is a BN which does not adjoin neutrals.
@@ -1938,7 +1975,9 @@ bidi_resolve_neutral (struct bidi_it *bidi_it)
1938 } 1975 }
1939 type = bidi_resolve_neutral_1 (saved_it.prev_for_neutral.type, 1976 type = bidi_resolve_neutral_1 (saved_it.prev_for_neutral.type,
1940 next_type, current_level); 1977 next_type, current_level);
1978 saved_it.next_for_neutral.type = next_type;
1941 saved_it.type = type; 1979 saved_it.type = type;
1980 bidi_check_type (next_type);
1942 bidi_check_type (type); 1981 bidi_check_type (type);
1943 bidi_copy_it (bidi_it, &saved_it); 1982 bidi_copy_it (bidi_it, &saved_it);
1944 } 1983 }
@@ -2014,7 +2053,7 @@ bidi_level_of_next_char (struct bidi_it *bidi_it)
2014 bidi_it->next_for_neutral.type = UNKNOWN_BT; 2053 bidi_it->next_for_neutral.type = UNKNOWN_BT;
2015 if (bidi_it->next_en_pos >= 0 2054 if (bidi_it->next_en_pos >= 0
2016 && bidi_it->charpos >= bidi_it->next_en_pos) 2055 && bidi_it->charpos >= bidi_it->next_en_pos)
2017 bidi_it->next_en_pos = -1; 2056 bidi_it->next_en_pos = 0;
2018 if (bidi_it->next_for_ws.type != UNKNOWN_BT 2057 if (bidi_it->next_for_ws.type != UNKNOWN_BT
2019 && bidi_it->charpos >= bidi_it->next_for_ws.charpos) 2058 && bidi_it->charpos >= bidi_it->next_for_ws.charpos)
2020 bidi_it->next_for_ws.type = UNKNOWN_BT; 2059 bidi_it->next_for_ws.type = UNKNOWN_BT;