Now on revision 106870. ------------------------------------------------------------ revno: 106870 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-01-15 10:01:24 +0800 message: * etc/tutorials/TUTORIAL: Fix typo. diff: === modified file 'etc/tutorials/TUTORIAL' --- etc/tutorials/TUTORIAL 2012-01-14 11:27:16 +0000 +++ etc/tutorials/TUTORIAL 2012-01-15 02:01:24 +0000 @@ -296,7 +296,7 @@ Newline character, type (this is the key on the keyboard which is sometimes labeled "Enter"). -To delete the character immediately before the current cursor +To delete the character immediately before the current cursor position, type . This is the key on the keyboard usually labeled "Backspace"--the same one you normally use, outside Emacs, to delete the last character typed. ------------------------------------------------------------ revno: 106869 fixes bug(s): http://debbugs.gnu.org/9087 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-01-14 22:15:01 +0200 message: Fix bug #9087 with crashes on MS-Windows under throw-on-input. src/w32fns.c (signal_user_input): Don't do a QUIT, to avoid thrashing the stack of the thread. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-01-12 21:33:25 +0000 +++ src/ChangeLog 2012-01-14 20:15:01 +0000 @@ -1,3 +1,8 @@ +2012-01-14 Eli Zaretskii + + * w32fns.c (signal_user_input): Don't do a QUIT, to avoid + thrashing the stack of the thread. (Bug#9087) + 2012-01-12 Paul Eggert * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses. === modified file 'src/w32fns.c' --- src/w32fns.c 2012-01-05 09:46:05 +0000 +++ src/w32fns.c 2012-01-14 20:15:01 +0000 @@ -2479,6 +2479,10 @@ if (!NILP (Vthrow_on_input)) { Vquit_flag = Vthrow_on_input; + /* Doing a QUIT from this thread is a bad idea, since this + unwinds the stack of the Lisp thread, and the Windows runtime + rightfully barfs. Disabled. */ +#if 0 /* If we're inside a function that wants immediate quits, do it now. */ if (immediate_quit && NILP (Vinhibit_quit)) @@ -2486,6 +2490,7 @@ immediate_quit = 0; QUIT; } +#endif } } ------------------------------------------------------------ revno: 106868 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-01-14 20:16:28 +0200 message: Allow visiting Info files with no "Up" pointer, such as DIR files. lisp/info.el (Info-toc-build): If the Info file has no "Up" pointer, don't pass the (nil) value of `upnode' to string-match. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-01-14 16:09:55 +0000 +++ lisp/ChangeLog 2012-01-14 18:16:28 +0000 @@ -1,3 +1,8 @@ +2012-01-14 Eli Zaretskii + + * info.el (Info-toc-build): If the Info file has no "Up" pointer, + don't pass the (nil) value of `upnode' to string-match. + 2012-01-14 Chong Yidong * startup.el (command-line): Fix X resource class for cursorColor. === modified file 'lisp/info.el' --- lisp/info.el 2012-01-06 08:10:22 +0000 +++ lisp/info.el 2012-01-14 18:16:28 +0000 @@ -2251,7 +2251,7 @@ (match-string-no-properties 1))) (section "Top") menu-items) - (when (string-match "(" upnode) (setq upnode nil)) + (when (and upnode (string-match "(" upnode)) (setq upnode nil)) (when (and (not (Info-index-node nodename file)) (re-search-forward "^\\* Menu:" bound t)) (forward-line 1) ------------------------------------------------------------ revno: 106867 [merge] committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-01-14 20:06:16 +0200 message: Ensure PATH_DUMPLOADSEARCH will have correct value in MSDOS builds. msdos/sed4.inp (PATH_DUMPLOADSEARCH): Edit to "../lisp", for when the default in src/epaths.in will change, maybe. diff: === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2012-01-05 09:46:05 +0000 +++ msdos/ChangeLog 2012-01-14 18:02:59 +0000 @@ -1,3 +1,8 @@ +2012-01-14 Eli Zaretskii + + * sed4.inp (PATH_DUMPLOADSEARCH): Edit to "../lisp", for when the + default in src/epaths.in will change, maybe. + 2011-10-31 Eli Zaretskii * sed3v2.inp (insrcdir): Comment out definition. === modified file 'msdos/sed4.inp' --- msdos/sed4.inp 2012-01-05 09:46:05 +0000 +++ msdos/sed4.inp 2012-01-14 18:02:59 +0000 @@ -16,6 +16,7 @@ # # ---------------------------------------------------------------------- /^#define *PATH_LOADSEARCH/s/".*"/rootrelativepath ("lisp")/ +/^#define *PATH_DUMPLOADSEARCH/s/".*"/"..\/lisp"/ /^#define *PATH_DATA/s/".*"/rootrelativepath ("etc")/ /^#define *PATH_DOC/s/".*"/rootrelativepath ("etc")/ /^#define *PATH_INFO/s/".*"/rootrelativepath ("info")/ ------------------------------------------------------------ revno: 106866 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-01-15 00:09:55 +0800 message: * startup.el (command-line): Fix values recognized by cursorBlink resource. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-01-14 13:52:14 +0000 +++ lisp/ChangeLog 2012-01-14 16:09:55 +0000 @@ -1,6 +1,7 @@ 2012-01-14 Chong Yidong * startup.el (command-line): Fix X resource class for cursorColor. + Fix values recognized by the cursorBlink resource. 2012-01-14 Paul Eggert === modified file 'lisp/startup.el' --- lisp/startup.el 2012-01-14 13:52:14 +0000 +++ lisp/startup.el 2012-01-14 16:09:55 +0000 @@ -929,7 +929,7 @@ emacs-basic-display (and (memq window-system '(x w32 ns)) (not (member (x-get-resource "cursorBlink" "CursorBlink") - '("off" "false"))))) + '("no" "off" "false" "0"))))) (setq no-blinking-cursor t)) ;; Re-evaluate predefined variables whose initial value depends on ------------------------------------------------------------ revno: 106865 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-01-14 21:52:14 +0800 message: * startup.el (command-line): Fix X resource class for cursorColor. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-01-14 07:09:15 +0000 +++ lisp/ChangeLog 2012-01-14 13:52:14 +0000 @@ -1,3 +1,7 @@ +2012-01-14 Chong Yidong + + * startup.el (command-line): Fix X resource class for cursorColor. + 2012-01-14 Paul Eggert * epg.el (epg--make-temp-file): Avoid permission race condition === modified file 'lisp/startup.el' --- lisp/startup.el 2012-01-05 09:46:05 +0000 +++ lisp/startup.el 2012-01-14 13:52:14 +0000 @@ -910,7 +910,7 @@ (setq no-blinking-cursor t))) ;; If the cursorColor X resource exists, alter the `cursor' face ;; spec, but mark it as changed outside of Customize. - (let ((color (x-get-resource "cursorColor" "CursorColor"))) + (let ((color (x-get-resource "cursorColor" "Foreground"))) (when color (put 'cursor 'theme-face `((changed ((t :background ,color))))) ------------------------------------------------------------ revno: 106864 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-01-14 13:27:16 +0200 message: etc/tutorials/TUTORIAL: Fix a typo. diff: === modified file 'etc/tutorials/TUTORIAL' --- etc/tutorials/TUTORIAL 2012-01-10 08:27:22 +0000 +++ etc/tutorials/TUTORIAL 2012-01-14 11:27:16 +0000 @@ -839,8 +839,8 @@ occurrence exists, Emacs beeps and tells you the search is currently "failing". C-g would also terminate the search. -If you are in the middle of an incremental search and type , this -the search "retreats" to an earlier location. If you type just +If you are in the middle of an incremental search and type , the +search "retreats" to an earlier location. If you type just after you had typed C-s to advance to the next occurrence of a search string, the moves the cursor back to an earlier occurrence. If there are no earlier occurrences, the erases the last character ------------------------------------------------------------ revno: 106863 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2012-01-14 13:23:45 +0200 message: Update the Hebrew tutorial. etc/tutorials/TUTORIAL.he: Update to follow changes to TUTORIAL in revision 106831. admin/FOR-RELEASE (Check the Emacs Tutorial): Mark TUTORIAL.he as updated and checked. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2012-01-05 09:46:05 +0000 +++ admin/ChangeLog 2012-01-14 11:23:45 +0000 @@ -1,3 +1,8 @@ +2012-01-14 Eli Zaretskii + + * FOR-RELEASE (Check the Emacs Tutorial): Mark TUTORIAL.he as + updated and checked. + 2011-11-26 Andreas Schwab * grammars/bovine-grammar.el (bovine--grammar-newstyle-unquote): === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-01-14 09:17:25 +0000 +++ admin/FOR-RELEASE 2012-01-14 11:23:45 +0000 @@ -107,7 +107,7 @@ TUTORIAL.eo TUTORIAL.es TUTORIAL.fr -TUTORIAL.he +TUTORIAL.he eliz TUTORIAL.it TUTORIAL.ja TUTORIAL.ko === modified file 'etc/ChangeLog' --- etc/ChangeLog 2012-01-10 08:27:22 +0000 +++ etc/ChangeLog 2012-01-14 11:23:45 +0000 @@ -1,3 +1,8 @@ +2012-01-14 Eli Zaretskii + + * tutorials/TUTORIAL.he: Update to follow changes to TUTORIAL in + revision 106831. + 2012-01-10 Chong Yidong * tutorials/TUTORIAL: Don't give instructions for old-style X === modified file 'etc/tutorials/TUTORIAL.he' --- etc/tutorials/TUTORIAL.he 2012-01-05 09:46:05 +0000 +++ etc/tutorials/TUTORIAL.he 2012-01-14 11:23:45 +0000 @@ -198,19 +198,9 @@ כתוצאה, התצוגה היתה צריכה לזוז ב־8 שורות. אם ברצונכם לגלול בחזרה, אפשר להשיג זאת ע"י מתן ארגומנט ל־M-v. -אם הפעלתם את Emacs על־גבי מערכת חלונאית כגון X או MS-Windows, אתם +אם הפעלתם את Emacs על־גבי תצוגה גרפית כגון X או MS-Windows, אתם צריכים לראות פס צר וגבוה, ששמו פס גלילה (scroll bar) בצידו של החלון -של Emacs. (שימו לב שבשני צידי החלון קיימים פסים נוספים. אלה נקראים -"השוליים" -- "fringes" -- ומשמשים להצגת סימני המשך שורה וסימונים -אחרים. פס הגלילה, לעומתם, מופיע רק בצד אחד והוא הכי קרוב לקצה החלון -בצד ההוא.) - ->> נסו עתה להקליק בכפתור האמצעי של העכבר בחלק העליון של האזור המודגש - של פס הגלילה. פעולה זו אמורה לגלול את הטקסט בשיעור שתלוי במקום בו - הקלקתם. - ->> נסו לגרור את העכבר מעלה ומטה, תוך כדי לחיצה על הכפתור האמצעי. - כתוצאה, Emacs יגלול את הטקסט מעלה ומטה בהתאם לתנועת העכבר. +של Emacs. ניתן לגלול את הטקסט ע"י הקלקת עכבר בתוך פס הגלילה. אם העכבר שלכם מצויד בגלגל, תוכלו להשתמש גם בו לגלילת הטקסט. @@ -255,9 +245,9 @@ מבטלת את שאר החלונות. >> הניעו את הסמן לתוך שורה זו והקישו C-u 0 C-l. ->> עתה הקישו CONTROL-h k CONTROL-f. +>> עתה הקישו C-h k C-f. שימו לב כיצד החלון הנוכחי מצטמצם ומופיע חלון חדש שבו מוצג - התיעוד של הפקודה CONTROL-f. + התיעוד של הפקודה C-f. >> הקישו C-x 1 ושימו לב שהחלון עם ההסבר על C-f נעלם. @@ -271,40 +261,37 @@ -------------- אם ברצונכם להכניס טקסט, פשוט הקישו על המקשים המתאימים. תוים רגילים, -כגון A, א, 7, * וכד' מתפרשים ע"י Emacs כטקסט ומיד מתווספים לטקסט -הקיים. הקישו (מקש חזרת גרר) כדי להכניס את תו השורה החדשה +כגון A, א, 7, * וכד' מיד מתווספים לטקסט הקיים. הקישו (מקש +חזרת גרר שלעתים נהוג לקרוא לו "Enter") כדי להכניס את תו השורה החדשה (Newline). -למחיקת התו האחרון שהקשתם הקישו . המקש שאנו קוראים לו -יכול להתקרא בשמות שונים -- "Delete", "DEL" או "Backspace". בדרך כלל -זהו מקש גדול ובולט שנמצא לא הרחק ממקש , והוא משמש אתכם למחיקת -התו אחרון גם בתוכניות אחרות, לא רק ב־Emacs. - -אם קיים במקלדת שלכם מקש גדול שעליו רשום , אז זהון המקש אשר -ישמש כ־. גם אם יהיה מקש אחר המסומן ב־"Delete" במקום אחרת זה -אינו ה־ שלכם. - -באופן כללי יותר, מוחק את התו שקודם למיקום הסמן. +למחיקת התו האחרון שהקשתם הקישו . בדרך כלל זהו מקש שמסומן +ב־"Backspace", והוא משמש אתכם למחיקת התו אחרון גם בתוכניות אחרות, לא +רק ב־Emacs. + +יתכן שבמקלדת שלכם קיים מקש שעליו רשום , אך זה אינו המקש שאנו +קוראים לו . >> הקישו עתה מספר תוים, ואחר־כך מחקו אותם ע"י הקשות אחדות - על . אל תחששו לשנות את הקובץ הזה -- העותק המקורי + על . אל תחששו לשנות את הקובץ הזה -- העותק המקורי של השיעור יישאר ללא שינוי. אתם עובדים על העותק האישי שלכם. כאשר שורה של טקסט נעשית ארוכה משורה אחת של תצוגה, חלק מהטקסט ממשיך -בשורת תצוגה נוספת, היא "שורת ההמשך". תו לוכסן ("/") בסוף השורה (או -חץ עקלקל קטן באזור השוליים -- "fringe") מסמל שלשורה יש שורת המשך. +בשורת תצוגה נוספת, היא "שורת ההמשך". על תצוגה גרפית יופיע חץ עקלקל קטן +באזור השוליים -- "fringe" שמסמל כי לשורה יש שורת המשך, ואילו על תצוגה +טקסטואלית יופיע תו לוכסן ("/") לאותה תכלית בסוף השורה. >> הקישו טקסט עד שתגיעו לקצה השורה, ואז תמשיכו להקיש עוד טקסט. כתוצאה, תראו שמופיעה שורת המשך. ->> עתה הקישו על־מנת למחוק טקסט עד שהשורה תיעשה קצרה מספיק +>> עתה הקישו על־מנת למחוק טקסט עד שהשורה תיעשה קצרה מספיק ותתאים לשורה בודדת על־גבי התצוגה. שורת ההמשך תיעלם. ניתן למחוק את תו ה־Newline כמו כל תו אחר. מחיקת ה־Newline בין שתי שורות תמזג את השורות לשורה אחת. אם השורה המשולבת תהיה ארוכה מרוחב התצוגה, היא תוצג עם שורת המשך. ->> הניעו את הסמן לתחילת השורה והקישו . כתוצאה, השורה תתמזג +>> הניעו את הסמן לתחילת השורה והקישו . כתוצאה, השורה תתמזג אם קודמתה. >> עתה הקישו כדי להחזיר את ה־Newline שמחקתם. @@ -317,24 +304,24 @@ ובכן, למדתם את האופן הבסיסי ביותר להדפיס משהו ב־Emacs ולתקן שגיאות. אפשר למחוק גם מלים ואף שורות שלמות. להלן סיכום פקודות המחיקה: - ‏ מחק תו שלפני הסמן + ‏ מחק תו שלפני הסמן ‏C-d מחק תו מתחת או אחרי הסמן - ‏‪M-‬ גזור מילה שלפני הסמן + ‏‪M-‬ גזור מילה שלפני הסמן ‏M-d גזור מילה שאחרי הסמן ‏C-k גזור טקסט מהסמן ועד סוף השורה ‏M-k גזור טקסט עד סוף המשפט הנוכחי. -שימו לב שהיחס בין ו־C-d לעומת M-‎ ו־M-d ממשיכים את -ההקבלה שבין C-f ו־M-f (אמנם איננו תו בקרה, בוא נזניח את -הנקודה הזו לעת־עתה). C-k ו־M-k דומים ל־C-e ו־M-e, אם נקביל שורות -למשפטים. +שימו לב שהיחס בין ו־C-d לעומת M-‎ ו־M-d ממשיכים את ההקבלה +שבין C-f ו־M-f (אמנם איננו תו בקרה, אבל בוא נזניח את הנקודה הזו +לעת־עתה). C-k ו־M-k דומים ל־C-e ו־M-e, אם נקביל שורות למשפטים. בנוסף, קיימת שיטה אחידה שמאפשרת לגזור קטע כלשהו של טקסט. לשם כך, תגיעו -לקצה האחד של חלק הטקסט והקישו C-@‎ או C-‎ (אחד מבין שני אלו). -( הוא מקש הרווח.) עתה הניעו את הסמן לקצה השני של חלק הטקסט והקישו -C-w. כתוצאה, כל הטקסט בין שני המקומות הללו ייגזר. +לקצה האחד של חלק הטקסט והקישו C-‎. ( הוא מקש הרווח.) עתה +הניעו את הסמן לקצה השני של חלק הטקסט אשר ברצונכם לגזור. תוך כדי תנועת +הסמן Emacs צובע את הטקסט בין הסמן לבין המקום בו הקשתם C-‎. לבסוף, +הקישו C-w. כתוצאה, כל הטקסט בין שני המקומות הללו ייגזר. >> הניעו את הסמן אל האות ב בתחילת הפיסקה הקודמת. >> הקישו C-‎. ‏Emacs צריך להציג הודעה האומרת "Mark set" בתחתית @@ -348,7 +335,7 @@ הטקסט הגזור נקרא "הדבקה" ("yanking"). באופן כללי, פקודות אשר עלולות להעלים כמויות גדולות של טקסט תמיד גוזרות את הטקסט (כך שניתן יהיה בקלות לשחזרו) בעוד הפקודות שמורידות תו בודד או שורות ריקות ותוי רווח -- -מוחקות (כך שלא ניתן להדביק את הטקסט שנמחק). כך, ו־C-d מוחקים +מוחקות (כך שלא ניתן להדביק את הטקסט שנמחק). כך, ו־C-d מוחקים כאשר מפעילים אותם ללא ארגומנט, אבל גוזרים כאשר מפעילים אותם עם ארגומנט. >> הניעו את הסמן לתחילת שורה שאינה ריקה. אחר־כך הקישו C-k כדי לגזור @@ -406,23 +393,22 @@ -------------- אם שיניתם את הטקסט ואז החלטתם שהשינוי היה טעות, תוכלו לבטל את השינוי -בעזרת פקודת הביטול, C-x u. +בעזרת פקודת הביטול, ‪C-/‬. -בדרך כלל, C-x u מבטל את השינויים שבוצעו ע"י פקודה אחת. הפעלה חוזרת של -C-x u ברצף מבטלת שינויים של פקודות קודמות, אחת אחרי השניה. +בדרך כלל,‪C-/‬ מבטל את השינויים שבוצעו ע"י פקודה אחת. הפעלה חוזרת של +‪C-/‬ ברצף מבטלת שינויים של פקודות קודמות, אחת אחרי השניה. שני יוצאים מהכלל הזה: פקודות שאינן משנות טקסט (למשל פקודות הנעת הסמן ופקודות גלילה) אינן נספרות ותוים שמכניסים את עצמם מקובצים בקבוצות של -עד 20, כדי להקטין את מספר הפעמים שיש להקיש C-x u כדי לבטל הכנסת טקסט. - ->> גזרו שורה זו עם C-k, אחר־כך הקישו C-x u והיא תופיע שוב. - -‏C-_‎ הינה דרך חלופית להפעיל את פקודת הביטול. היא פועלת בדיוק כמו C-x u, -אבל קלה יותר להקשה מספר פעמים בזו אחר זו. החסרון של C-_‎ הוא שבכמה -מקלדות לא ברור מאליו כיצד להקיש זאת. זו הסיבה לקיומו של C-x u. במקלדות -אחדות ניתן להקיש C-_‎ ע"י החזקת CONTROL והקשת לוכסן /. - -ארגומנט נומרי ל־C-_‎ או ל־C-x u משמש כמספר החזרות על הפקודה. +עד 20, כדי להקטין את מספר הפעמים שיש להקיש ‪C-/‬ כדי לבטל הכנסת טקסט. + +>> גזרו שורה זו עם C-k, אחר־כך הקישו ‪C-/‬ והיא תופיע שוב. + +‏C-_‎ הינה דרך חלופית להפעיל את פקודת הביטול. היא פועלת בדיוק כמו ‪C-/‬. +במקלדות אחדות הקשה על ‪C-/‬ שולחת ל־Emacs את התו C-_‎. חלופה נוספת היא +C-x u, אם־כי היא פחות נוחה להקשה מספר פעמים בזו אחר זו. + +ארגומנט נומרי ל־‪C-/‬ או ל־C-_‎ או ל־C-x u משמש כמספר החזרות על הפקודה. ניתן לבטל מחיקה של טקסט בדיוק כמו שניתן לבטל גזירה. ההבדלים בין מחיקה וגזירה משפיעים על יכולתכם להדביק את הטקסט הגזור עם C-y; הם אינם חשובים @@ -442,15 +428,15 @@ שלם במערכת שלא כרצונכם. אפילו אם אתם שומרים את הקובץ, Emacs משאיר את התוכן המקורי בשם שונה למקרה שמאוחר יותר תחליטו שהשינויים נעשו בטעות. -אם תביטו בחלק התחתון של התצוגה, תראו שם שורה בולטת שמתחילה ומסתיימת -במקפים וליד הקצה השמאלי שלה כתוב "TUTORIAL.he". חלק זה של התצוגה בדרך -כלל מציג את שם הקובץ אותו אתם פוקדים. כרגע אתם פוקדים קובץ בשם -"TUTORIAL.he" שהוא עותק הטיוטה האישי שלכם של שיעור השימוש ב־Emacs. -פתיחת קובץ כלשהו ב־Emacs תציג את שמו של הקובץ במקום זה. +אם תביטו בחלק התחתון של התצוגה, תראו שם שורה בולטת שמתחילה במקפים וליד +הקצה השמאלי שלה כתוב "TUTORIAL.he". חלק זה של התצוגה בדרך כלל מציג את +שם הקובץ אותו אתם פוקדים. כרגע אתם פוקדים קובץ בשם "TUTORIAL.he" שהוא +עותק הטיוטה האישי שלכם של שיעור השימוש ב־Emacs. פתיחת קובץ כלשהו +ב־Emacs תציג את שמו של הקובץ במקום זה. היבט אחד מיוחד של פתיחת קובץ הוא שיש לציין את שם הקובץ אשר ברצונכם -לפתוח. אנו אומרים שהפקודה "קוראת ארגומנט מהמסוף" (במקרה זה הארגומנט -הוא שם הקובץ). אחרי שתקישו את הפקודה +לפתוח. אנו אומרים שהפקודה "קוראת ארגומנט" (במקרה זה הארגומנט הוא שם +הקובץ). אחרי שתקישו את הפקודה ‏C-x C-f פתח קובץ @@ -465,12 +451,11 @@ >> הקישו C-x C-f ואחר־כך הקישו C-g. זה מבטל את המיני־חוצץ וגם מבטל את הפקודה C-x C-f שהשתמשה במיני־חוצץ. התוצאה היא שאף קובץ לא נפתח. -משסיימתם להקיש את שם הקובץ, הקישו לסיים את הקלט. או־אז תיגש -C-x C-f לעבודה ותמצא ותפתח את הקובץ שבחרתם. המיני־חוצץ נעלם כאשר -פקודת ה־C-x C-f תסיים את עבודתה. - -זמן קצר אחר־כך תוכן הקובץ יופיע על־גבי התצוגה ותוכלו לבצע בו שינויים. -כשתחליטו לשמור את השינויים, הקישו את הפקודה הבאה: +משסיימתם להקיש את שם הקובץ, הקישו לסיים את הקלט. או־אז +המיני־חוצץ נעלם והפקודה C-x C-f תיגש לעבודה ותמצא ותפתח את הקובץ +שבחרתם. כאשר פקודת ה־C-x C-f תסיים את עבודתה, תוכן הקובץ יופיע על־גבי +התצוגה ותוכלו לבצע בו שינויים. כשתחליטו לשמור את השינויים, הקישו את +הפקודה הבאה: ‏C-x C-s שמור את הקובץ @@ -482,8 +467,9 @@ לשמור לעתים מזומנות על־מנת להימנע מלאבד יותר מדי מהעבודה שלכם אם המחשב ייפול (ראה להלן פיסקה על שמירה אוטומטית). ->> הקישו C-x C-s כדי לשמור את העותק שלכם של השיעור. - כתוצאה, תופיע ההודעה "Wrote ... TUTORIAL.he" בתחתית התצוגה. +>> הקישו C-x C-s TUTORIAL.he ותסיימו בהקשת . כתוצאה, שיעור זה + יישמר בקובץ בשם TUTORIAL.he ובתחתית התצוגה תופיע ההודעה + "Wrote ...TUTORIAL.he". ניתן לפתוח קובץ קיים על־מנת לצפות בו או לערוך אותו. ניתן גם לפתוח קובץ שאינו קיים. זו הדרך ליצור קבצים חדשים בעזרת Emacs: פתחו את הקובץ @@ -498,10 +484,6 @@ אם תפתחו קובץ נוסף עם C-x C-f, הקובץ הראשון עדיין נשאר פתוח ב־Emacs. תוכלו לחזור אליו ע"י C-x C-f. כך תוכלו לפתוח מספר רב של קבצים. ->> ניצור עתה קובץ בשם "foo" ע"י הקשת C-x C-f foo ‎. - אחר־כך הכניסו קצת טקסט, ערכו אותו ולבסוף שמרו בקובץ "foo" - ע"י C-x C-s. עתה חזרו לשיעור בעזרת C-x C-f TUTORIAL.he ‎. - ‏Emacs מחזיק כל קובץ בתוך יישות בשם "חוצץ" ("buffer"). פתיחת קובץ יוצרת חוצץ חדש בתוך Emacs. כדי לראות את רשימת החוצצים הקיימים בתוך Emacs, הקישו @@ -522,17 +504,19 @@ ע"י C-x C-f שיפקוד את הקובץ בשנית. אבל קיימת דרך פשוטה יותר: שימוש בפקודה C-x b. פקודה זו תחייב אותכם להקיש את שם החוצץ. ->> הקישו C-x b foo ‎ כדי לחזור לחוצץ "foo" אשר מחזיק טקסט של - הקובץ "foo". אחר־כך הקישו C-x b TUTORIAL.he ‎ כדי לשוב - לשיעור זה. +>> ניצור עתה קובץ בשם "foo" ע"י הקשת C-x C-f foo ‎. + עתה חזרו לשיעור זה בעזרת C-x b TUTORIAL.he ‎. ברוב המקרים שם החוצץ זהה לשם הקובץ (ללא שם התיקיה שלו). אבל אין זה -תמיד כך. רשימת החוצצים שנוצרת ע"י C-x C-b תמיד תציג את שמות כל החוצצים -הקיימים ב־Emacs. +תמיד כך. רשימת החוצצים שנוצרת ע"י C-x C-b תציג הן את שם החוצץ והן את +שם הקובץ עבור כל החוצצים הקיימים ב־Emacs. כל טקסט שמוצג בחלון של Emacs הינו תמיד חלק של חוצץ כלשהו. קיימים -חוצצים שאינם קשורים לשום קובץ. לדוגמא, החוצץ בשם "*Buffer List*" אינו -מציג שום קובץ. זהו חוצץ המחזיק את רשימת החוצצים שנוצר ע"י C-x C-b. +חוצצים שאינם קשורים לשום קובץ. לדוגמא, החוצץ בשם "*Buffer List*" +המחזיק את רשימת החוצצים שנוצרה ע"י C-x C-b אינו מציג שום קובץ. גם +לחוצץ הנוכחי ששמו TUTORIAL.he לא היה קובץ עד שהקשתם על C-x C-s כדי +לשמור אותו בקובץ. + חוצץ בשם "*Messages*" אף הוא אינו קשור לשום קובץ; הוא מחזיק את ההודעות שהופיעו בשורה התחתונה במהלך עבודתכם בתוך Emacs. @@ -573,11 +557,11 @@ מ־Emacs -- ‏C-x C-c. (כשאתם מפעילים C-x C-c, אל תדאגו לשינויים שטרם נשמרו; C-x C-c מציע לשמור כל קובץ ששיניתם לפני שהוא מסיים את Emacs.) -אם אתם משתמשים בצג גרפי אשר תומך במספר תוכניות במקביל, אינכם זקוקים -לפקודה מיוחדת כדי לעבור מ־Emacs לתוכנית אחרת. אפשר לעשות זאת בעזרת -העכבר או פקודות של מנהל החלונות. אולם, כאשר אתם משתמשים בתצוגה -טקסטואלית שמסוגלת להציג רק תוכנית אחת בו־זמנית, תצטרכו "להשעות" -("suspend") את Emacs על־מנת לעבור לתוכנית אחרת. +אם אתם משתמשים בצג גרפי, אינכם זקוקים לפקודה מיוחדת כדי לעבור מ־Emacs +לתוכנית אחרת. אפשר לעשות זאת בעזרת העכבר או פקודות של מנהל החלונות. +אולם, כאשר אתם משתמשים בתצוגה טקסטואלית שמסוגלת להציג רק תוכנית אחת +בו־זמנית, תצטרכו "להשעות" ("suspend") את Emacs על־מנת לעבור לתוכנית +אחרת. הפקודה C-z יוצאת מ־Emacs *באופן זמני* -- כך שתוכלו לשוב אליו מאוחר יותר ולהמשיך מאותה נקודה. כאשר Emacs רץ על תצוגת טקסט, C-z "משעה" את @@ -587,8 +571,7 @@ הרגע הנכון להשתמש ב־C-x C-c הוא כאשר אתם עומדים להתנתק (log out). כמו־כן, תצטרכו להשתמש בו כדי לצאת מ־Emacs שהופעל ע"י תוכניות אחרות -כגון קריאת דואר אלקטרוני -- תוכניות אלו לא תמיד יודעות להסתדר עם -השעיית Emacs. +כגון קריאת דואר אלקטרוני. קיימות פקודות C-x רבות מאד. להלן רשימת אלו שכבר למדתם: @@ -607,7 +590,7 @@ אחרי שתקישו M-x, ‏Emacs מציג M-x בתחתית התצוגה ומחכה שתקישו את שם הפקודה, במקרה זה "replace-string". מספיק שתקישו "repl s‎" ו־Emacs ישלים את השם המלא. ( הוא מקש Tab, בדרך כלל תמצאו אותו מעל מקש -ה־CapsLock או Shift, ליד הקצה השמאלי של המקלדת.) סיימו את שם הפקודה +ה־CapsLock או Shift, ליד הקצה השמאלי של המקלדת.) סיימו את הזנת הפקודה ע"י הקשת . הפקודה להחלפת מחרוזת זקוקה לשני ארגומנטים -- המחרוזת שתוחלף וזו שתחליף @@ -651,15 +634,15 @@ השורה שמעל אזור תצוגת הד נקראת "שורת הסטטוס" (mode line). שורה זו מציגה משהו כמו: - -U:**- TUTORIAL.he 63% L651 (Fundamental)----------------------- + U:**- TUTORIAL.he 63% L651 (Fundamental) שורה זו מציגה מידע חשוב לגבי מצבו של Emacs ולגבי הטקסט שנמצא בעריכה. אתם כבר יודעים מהי משמעותו של שם הקובץ -- זהו הקובץ שפתחתם. NN%‎ מציין -את מיקומכם הנוכחי בתוך הטקסט, לאמור כי NN אחוזים מהטקסט קודמים לטקסט -המוצג כרגע בחלון. אם המוצג בחלון כולל את תחילת הטקסט, תראו שם "Top" -במקום "0% ". אם המוצג בחלון כולל את סוף הטקסט, תראו שם "Bot" ‏(bottom). -אם הטקסט כל־כך קצר שכולו מוצג בחלון, שורת הסטטוס תציג "All". +את מיקומכם הנוכחי בתוך הטקסט, לאמור כי NN אחוזים מתכולת החוצץ קודמים +לטקסט המוצג כרגע בחלון. אם המוצג בחלון כולל את תחילת הטקסט, תראו שם +"Top" במקום "0% ". אם המוצג בחלון כולל את סוף הטקסט, תראו שם "Bot" +‏(bottom). אם הטקסט כל־כך קצר שכולו מוצג בחלון, שורת הסטטוס תציג "All". האות L והמספר שאחריה מציינים את המיקום הנוכחי בדרך אחרת: הם מראים את מספר השורה שבה נמצא הסמן. @@ -698,7 +681,7 @@ לצפיה בתיעוד של האופן הראשי הנוכחי יש להקיש C-h m. ->> השתמשו ב־C-u C-v פעם אחת או יותר כדי להביא שורה זו לראשית התצוגה. +>> הקישו C-l C-l כדי להביא שורה זו לראשית התצוגה. >> עתה הקישו C-h m כדי לראות במה Text mode שונה מה־Fundamental mode. >> לבסוף, הקישו C-x 1 כדי לסלק את התיעוד מהתצוגה. @@ -740,9 +723,9 @@ * חיפוש ------- -‏Emacs יכול לחפש מחרוזות (רצף של תווים או מילים) קדימה או אחורה בתוך -הטקסט. חיפוש של מחרוזת הוא סוג של פקודה להנעת הסמן: הוא ממקם את הסמן -היכן שנמצאה המחרוזת הבאה. +‏Emacs יכול לחפש מחרוזות (רצף של תווים) קדימה או אחורה בתוך הטקסט. +חיפוש של מחרוזת הוא סוג של פקודה להנעת הסמן: הוא ממקם את הסמן היכן +שנמצאה המחרוזת הבאה. החיפוש של Emacs הינו "מצטבר" ("incremental"). פירוש הדבר הוא שהחיפוש מתבצע במקביל להקשתכם את המחרוזת אותה ברצונכם למצוא. @@ -759,7 +742,7 @@ "סמן", עם הפסקה אחרי כל אות, ושימו לב להתנהגות הסמן. זה עתה מצאתם את המילה "סמן" פעם אחת. >> הקישו C-s שוב, כדי למצוא את "סמן" במקומות נוספים בטקסט. ->> הקישו שלוש פעמים ושימו לב לתנועת הסמן בכל הקשה. +>> הקישו שלוש פעמים ושימו לב לתנועת הסמן בכל הקשה. >> הקישו לסיום החיפוש. האם שמתם לב למה שקרה? במהלך "חיפוש מצטבר" Emacs מנסה למצוא את המקום @@ -768,16 +751,13 @@ ומודיע שהחיפוש נכנס למצב של "כשלון" ("failing"). הקשה על C-g גם היא מסיימת את החיפוש. -(הערה: במערכות אחדות הקשה על C-s מקפיעה את תצוגת המסך, כך שלא תראו -יותר שום פלט של Emacs. משמעות הדבר שתכונת מערכת ההפעלה ששמה "flow -control" מופעלת ע"י C-s ואינה מעבירה את C-s ל־Emacs. לביטול הקפאת -התצוגה במערכות אלו יש להקיש C-q.) - -אם במהלך החיפוש תקישו על , תראו שהתו האחרון של המחרוזת -המבוקשת נמחק והחיפוש חוזר למקום הקודם בו נמצאה המחרוזת ללא התו האחרון. -למשל, נניח שהקשתם "ס" על־מנת למצוא את המקום הבא בו מופיעה האות "ס". אם -עכשיו תקישו "מ", הסמן יזוז למקום בו נמצא "סמ". עתה הקישו . -ה־"מ" נמחק מהמחרוזת והסמן חוזר למקום בו הוא מצא את "ס" לראשונה. +אם במהלך החיפוש תקישו על , החיפוש "נסוג" למצב קודם. אם הקשתם + מיד אחרי C-s, הקשת מחזירה את הסמן למקום הקודם בו נמצאה +המחרוזת. אם אין מקומות קודמים בהם מופיעה המחרוזת, הקשת מוחקת את +התו האחרון של המחרוזת המבוקשת. למשל, נניח שהקשתם "ס" על־מנת למצוא את +המקום הבא בו מופיעה האות "ס". אם עכשיו תקישו "מ", הסמן יזוז למקום בו +נמצא "סמ". עתה הקישו . ה־"מ" נמחק מהמחרוזת והסמן חוזר למקום בו +הוא מצא את "ס" לראשונה. אם במהלך החיפוש תפעילו פקודה כלשהי ע"י הקשה על מקש תוך לחיצה על CONTROL או META, החיפוש יסתיים. (כמה תווים יוצאים מכלל זה -- אלו תווים @@ -796,10 +776,10 @@ שתוכניות אחרות מכנות "חלון". תבניות מתוארות בפסקה הבאה. תוכלו למצוא את רשימת המונחים של Emacs בפרק "Glossary" של מדריך משתמש.) ->> הביאו סמן לשורה זו והקישו C-u 0 C-l ‏(CONTROL-L ולא CONTROL-1). +>> הביאו סמן לשורה זו והקישו C-l C-l ‏(CONTROL-L ולא CONTROL-1). >> עתה הקישו C-x 2 וכתוצאה מכך החלון יתחלק לשניים. כל אחד משני החלונות - מציג את השיעור הזה. הסמן נשאר בחלון העליוןץ + מציג את השיעור הזה. הסמן נשאר בחלון העליון. >> הקישו C-M-v כדי לגלול את החלון התחתון. (אם במקלדת שלכם אין מקש META אמיתי, הקישו ‎ C-v כתחליף.) @@ -812,19 +792,19 @@ >> הקישו C-x o שוב לחזור לחלון העליון. הסמן בחלון העליון יישאר במקום בו הוא היה לפני־כן. -תוכלו להמשיך להשתמש ב־C-x o כדי לדלג בין שני החלונות. לכל חלון מיקום -סמן משלו, אבל רק חלון אחד מציג את הסמן בכל רגע. כל פקודות העריכה -הרגילות פועלות על החלון שבו מוצג הסמן. אנו קוראים לחלון זה "החלון -הנבחר". +תוכלו להמשיך להשתמש ב־C-x o כדי לדלג בין החלונות. "החלון הנבחר", אותו +חלון בו הנכם עורכים טקסט, מזוהה ע"י סמן בולט שמהבהב בזמן שאינכם +מקלידים. לכל החלונות האחרים מיקום סמן משלהם; אם הפעלתם את Emacs על צג +גרפי, מיקום הסמן בחלונות האחרים מוצג כתיבה ריקה שאינה מהבהבת. הפקודה C-M-v נוחה מאד כאשר הינכם עורכים טקסט בחלון אחד ומשתמשים בחלון -אחר לייחוס. תוכלו בכל עת לשמור על הסמן בחלון בו אתם עורכים טקסט -ולהתקדם בחלון השני בעזרת C-M-v. +אחר לייחוס. תוכלו להתקדם בחלון השני בעזרת C-M-v מבלי לעזוב את החלון +הנבחר. ‏C-M-v היא דוגמא אחת של פקודת CONTROL-META. אם במקלדת שלכם קיים מקש -META אמיתי, תוכלו להקיש את הפקודה ע"י לחיצה והחזקה של מקשי CONTROL -ו־META גם יחד ואז להקיש v. הסדר שבו תלחצו על CONTROL ו־META אינו משנה -כי שני המקשים הללו פועלים ע"י שינוי התו המוקש יחד איתם. +META (או Alt) אמיתי, תוכלו להקיש את הפקודה ע"י לחיצה והחזקה של מקשי +CONTROL ו־META גם יחד ואז להקיש v. הסדר שבו תלחצו על CONTROL ו־META +אינו משנה כי שני המקשים הללו פועלים ע"י שינוי התו המוקש יחד איתם. אם אין במקלדת מקש META אמיתי ואתם משתמשים ב־ כתחליף, הסדר כן משנה: חייבים להקיש ורק לאחר מכן CONTROL-v, וזאת משום @@ -853,9 +833,10 @@ * תבניות מרובות --------------- -‏Emacs מסוגל לפתוח מספר "תבניות" ("frames") בתנאי שאינכם משתמשים בצג -שמסוגל להציג רק טקסט. תבנית כוללת קבוצת חלונות, תפריט, פסי גלילה, אזור -תצוגת הד וכו'. (תוכניות אחרות נוהגות לקרוא לזה "חלון".) +‏Emacs מסוגל לפתוח מספר "תבניות" ("frames"). תבנית כוללת קבוצת חלונות, +תפריט, פסי גלילה, אזור תצוגת הד וכו'. על צג גרפי מה שאנו קוראים +"תבנית" נקרא בדרך־כלל "חלון". ניתן להציג תבניות אחדות על אותו צג גרפי +בו־זמנית על צג טקסטואלי אפשר להציג רק תבנית אחת בכל עת. >> הקישו M-x make-frame ‎. כתוצאה, תבנית חדשה תופיע על המסך. @@ -866,10 +847,10 @@ >> הקישו M-x delete-frame ‎. התבנית שבה הקשתם את הפקודה תיסגר ותיעלם מהמסך. -כמו־כן, ניתן לסגור תבנית בדרך הרגילה הנתמכת ע"י מנהל החלונות של המערכת -שלכם (בדרך־כלל, ע"י הקלקה על הכפתור המסומן ב־"X" בפינה עליונה של -התבנית.) שום מידע אינו הולך לעיבוד כאשר סוגרים תבנית (או חלון). המידע -הזה פשוט יורד מהתצוגה, אבל ניתן לאחזרו מאוחר יותר. +כמו־כן, ניתן לסגור תבנית בדרך הרגילה הנתמכת ע"י התצוגה הגרפית של +המערכת שלכם (בדרך־כלל, ע"י הקלקה על הכפתור המסומן ב־"X" בפינה עליונה +של התבנית.) שום מידע אינו הולך לעיבוד כאשר סוגרים תבנית (או חלון). +המידע הזה פשוט יורד מהתצוגה, אבל ניתן לאחזרו מאוחר יותר. * רמות עריכה רקורסיביות @@ -983,7 +964,7 @@ ושמות קבצים. תכונת ההשלמה מתוארת במלואה במדריך למשתמש Emacs בצומת (node) בשם "Completion". -‏Dired מאפשר להציג רשימת קבצים בתיקיה (וכאפציה גם בתת-תיקיות שלה), לנוע +‏Dired מאפשר להציג רשימת קבצים בתיקיה (וכאפציה גם בתת־תיקיות שלה), לנוע בתוך הרשימה הזו, לפתוח קבצים, לשנות את שמותיהם, למחוק אותם ולבצע עליהם עוד פעולות רבות. Dired מתואר במלואו במדריך למשתמש בצומת בשם "Dired". ------------------------------------------------------------ revno: 106862 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-01-14 17:17:25 +0800 message: Update Emacs Invocation chapter of Emacs manual. * doc/emacs/cmdargs.texi (Action Arguments): No need to mention EMACSLOADPATH. (General Variables): Add xref to Lisp Libraries. (Initial Options): Copyedits. (Resume Arguments): Node deleted; emacs.bash/csh are obsolete. (Environment): Clarify what getenv does. (General Variables): Clarify EMACSPATH etc. Emacs does not assume light backgrounds on xterms. (Misc Variables): TEMP and TMP are not Windows-specific. (Display X): Copyedits. (Colors X): -bd does nothing for GTK. (Icons X): Gnome 3 doesn't use taskbars. * doc/emacs/misc.texi (Shell): Document exec-path here. * doc/emacs/rmail.texi (Movemail): Add xref for exec-path. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-01-10 08:27:22 +0000 +++ admin/FOR-RELEASE 2012-01-14 09:17:25 +0000 @@ -133,7 +133,7 @@ building.texi cyd calendar.texi cal-xtra.texi -cmdargs.texi +cmdargs.texi cyd commands.texi cyd custom.texi cyd dired.texi cyd === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-01-13 02:32:07 +0000 +++ doc/emacs/ChangeLog 2012-01-14 09:17:25 +0000 @@ -1,3 +1,22 @@ +2012-01-14 Chong Yidong + + * cmdargs.texi (Action Arguments): No need to mention + EMACSLOADPATH. + (General Variables): Add xref to Lisp Libraries. + (Initial Options): Copyedits. + (Resume Arguments): Node deleted; emacs.bash/csh are obsolete. + (Environment): Clarify what getenv does. + (General Variables): Clarify EMACSPATH etc. Emacs does not assume + light backgrounds on xterms. + (Misc Variables): TEMP and TMP are not Windows-specific. + (Display X): Copyedits. + (Colors X): -bd does nothing for GTK. + (Icons X): Gnome 3 doesn't use taskbars. + + * misc.texi (Shell): Document exec-path here. + + * rmail.texi (Movemail): Add xref for exec-path. + 2012-01-13 Glenn Morris * dired.texi (Dired and Find): Clarify find-ls-options. === modified file 'doc/emacs/cmdargs.texi' --- doc/emacs/cmdargs.texi 2012-01-06 10:17:23 +0000 +++ doc/emacs/cmdargs.texi 2012-01-14 09:17:25 +0000 @@ -65,7 +65,6 @@ and call functions. * Initial Options:: Arguments that take effect while starting Emacs. * Command Example:: Examples of using command line arguments. -* Resume Arguments:: Specifying arguments when you resume a running Emacs. * Environment:: Environment variables that Emacs uses. * Display X:: Changing the default display and using remote login. * Font X:: Choosing a font for text, under X. @@ -124,10 +123,9 @@ @opindex --load @cindex loading Lisp libraries, command-line argument Load a Lisp library named @var{file} with the function @code{load}. -@xref{Lisp Libraries}. If @var{file} is not an absolute file name, -the library can be found either in the current directory, or in the -Emacs library search path as specified with @env{EMACSLOADPATH} -(@pxref{General Variables}). +If @var{file} is not an absolute file name, Emacs first looks for it +in the current directory, then in the directories listed in +@code{load-path} (@pxref{Lisp Libraries}). @strong{Warning:} If previous command-line arguments have visited files, the current directory is the directory of the last file @@ -186,11 +184,11 @@ sections. Some initial options affect the loading of the initialization file. -The normal actions of Emacs are to first load @file{site-start.el} if -it exists, then your own initialization file @file{~/.emacs} if it -exists, and finally @file{default.el} if it exists. @xref{Init File}. -Certain options prevent loading of some of these files or substitute -other files for them. +Normally, Emacs first loads @file{site-start.el} if it exists, then +your own initialization file if it exists, and finally the default +initialization file @file{default.el} if it exists (@pxref{Init +File}). Certain options prevent loading of some of these files or +substitute other files for them. @table @samp @item -chdir @var{directory} @@ -207,8 +205,8 @@ @itemx --terminal=@var{device} @opindex --terminal @cindex device for Emacs terminal I/O -Use @var{device} as the device for terminal input and output. -@samp{--terminal} implies @samp{--no-window-system}. +Use @var{device} as the device for terminal input and output. This +option implies @samp{--no-window-system}. @item -d @var{display} @opindex -d @@ -252,7 +250,7 @@ @samp{--batch} implies @samp{-q} (do not load an initialization file), but @file{site-start.el} is loaded nonetheless. It also causes Emacs to exit after processing all the command options. In addition, it -disables auto-saving except in buffers for which it has been +disables auto-saving except in buffers for which auto-saving is explicitly requested. @item --script @var{file} @@ -270,8 +268,8 @@ @noindent which will invoke Emacs with @samp{--script} and supply the name of -the script file as @var{file}. Emacs Lisp then treats @samp{#!} as a -comment delimiter. +the script file as @var{file}. Emacs Lisp then treats the @samp{#!} +on this first line as a comment delimiter. @item -q @opindex -q @@ -280,11 +278,10 @@ @cindex bypassing init and @file{default.el} file @cindex init file, not loading @cindex @file{default.el} file, not loading -Do not load your Emacs initialization file, and do not load the file -@file{default.el} either (@pxref{Init File}). Regardless of this -switch, @file{site-start.el} is still loaded. When Emacs is invoked -like this, the Customize facility does not allow options to be saved -(@pxref{Easy Customization}). +Do not load any initialization file (@pxref{Init File}). When Emacs +is invoked with this option, the Customize facility does not allow +options to be saved (@pxref{Easy Customization}). This option does +not disable loading @file{site-start.el}. @item --no-site-file @opindex --no-site-file @@ -371,45 +368,6 @@ @file{log}, because Emacs will not assume that it has a display terminal to work with. -@node Resume Arguments -@appendixsec Resuming Emacs with Arguments - - You can specify action arguments for Emacs when you resume it after -a suspension. To prepare for this, put the following code in your -@file{.emacs} file (@pxref{Hooks}): - -@c `resume-suspend-hook' is correct. It is the name of a function. -@example -(add-hook 'suspend-hook 'resume-suspend-hook) -(add-hook 'suspend-resume-hook 'resume-process-args) -@end example - - As further preparation, you must execute the shell script -@file{emacs.csh} (if you use csh as your shell) or @file{emacs.bash} -(if you use bash as your shell). These scripts define an alias named -@code{edit}, which will resume Emacs giving it new command line -arguments such as files to visit. The scripts are found in the -@file{etc} subdirectory of the Emacs distribution. - - Only action arguments work properly when you resume Emacs. Initial -arguments are not recognized---it's too late to execute them anyway. - - Note that resuming Emacs (with or without arguments) must be done from -within the shell that is the parent of the Emacs job. This is why -@code{edit} is an alias rather than a program or a shell script. It is -not possible to implement a resumption command that could be run from -other subjobs of the shell; there is no way to define a command that could -be made the value of @env{EDITOR}, for example. Therefore, this feature -does not take the place of the Emacs Server feature (@pxref{Emacs -Server}). - - The aliases use the Emacs Server feature if you appear to have a -server Emacs running. However, they cannot determine this with complete -accuracy. They may think that a server is still running when in -actuality you have killed that Emacs, because the file -@file{/tmp/esrv@dots{}} still exists. If this happens, find that -file and delete it. - @node Environment @appendixsec Environment Variables @cindex environment variables @@ -424,19 +382,19 @@ environment automatically from their parent process. This means you can set up an environment variable in your login shell, and all the programs you run (including Emacs) will automatically see it. -Subprocesses of Emacs (such as shells, compilers, and version-control -software) inherit the environment from Emacs, too. +Subprocesses of Emacs (such as shells, compilers, and version control +programs) inherit the environment from Emacs, too. @findex setenv @findex getenv @vindex initial-environment - Inside Emacs, the command @kbd{M-x getenv} gets the value of an -environment variable. @kbd{M-x setenv} sets a variable in the Emacs -environment, and @kbd{C-u M-x setenv} removes a variable. -(Environment variable substitutions with @samp{$} work in the value -just as in file names; see @ref{File Names with $}.) The variable -@code{initial-environment} stores the initial environment inherited by -Emacs. + Inside Emacs, the command @kbd{M-x getenv} reads the name of an +environment variable, and prints its value in the echo area. @kbd{M-x +setenv} sets a variable in the Emacs environment, and @kbd{C-u M-x +setenv} removes a variable. (Environment variable substitutions with +@samp{$} work in the value just as in file names; see @ref{File Names +with $}.) The variable @code{initial-environment} stores the initial +environment inherited by Emacs. The way to set environment variables outside of Emacs depends on the operating system, and especially the shell that you are using. For @@ -483,22 +441,25 @@ Directory for the documentation string file, which is used to initialize the Lisp variable @code{doc-directory}. @item EMACSLOADPATH -A colon-separated list of directories@footnote{ -Here and below, whenever we say ``colon-separated list of directories,'' -it pertains to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, -the directories are separated by semi-colons instead, since DOS/Windows -file names might include a colon after a drive letter.} -to search for Emacs Lisp files---used to initialize @code{load-path}. +A colon-separated list of directories@footnote{ Here and below, +whenever we say ``colon-separated list of directories,'' it pertains +to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the +directories are separated by semi-colons instead, since DOS/Windows +file names might include a colon after a drive letter.} to search for +Emacs Lisp files. If set, it overrides the usual initial value of the +@code{load-path} variable (@pxref{Lisp Libraries}). @item EMACSPATH -A colon-separated list of directories to search for executable -files---used to initialize @code{exec-path}. +A colon-separated list of directories to search for executable files. +If set, Emacs uses this in addition to @env{PATH} (see below) when +initializing the variable @code{exec-path} (@pxref{Shell}). @item EMAIL @vindex user-mail-address@r{, initialization} Your email address; used to initialize the Lisp variable -@code{user-mail-address}, which the Emacs mail interface puts into -the @samp{From} header of outgoing messages (@pxref{Mail Headers}). +@code{user-mail-address}, which the Emacs mail interface puts into the +@samp{From} header of outgoing messages (@pxref{Mail Headers}). @item ESHELL -Used for shell-mode to override the @env{SHELL} environment variable. +Used for shell-mode to override the @env{SHELL} environment variable +(@pxref{Interactive Shell}). @item HISTFILE The name of the file that shell commands are saved in between logins. This variable defaults to @file{~/.bash_history} if you use Bash, to @@ -554,23 +515,28 @@ The user's login name. See also @env{USER}. @item MAIL The name of your system mail inbox. +@ifnottex @item MH -Name of setup file for the mh system. (The default is @file{~/.mh_profile}.) +Name of setup file for the mh system. @xref{Top,,MH-E,mh-e, The Emacs +Interface to MH}. +@end ifnottex @item NAME -Your real-world name. +Your real-world name. This is used to initialize the variable +@code{user-full-name} (@pxref{Mail Headers}). @item NNTPSERVER The name of the news server. Used by the mh and Gnus packages. @item ORGANIZATION The name of the organization to which you belong. Used for setting the `Organization:' header in your posts from the Gnus package. @item PATH -A colon-separated list of directories in which executables reside. This -is used to initialize the Emacs Lisp variable @code{exec-path}. +A colon-separated list of directories containing executable files. +This is used to initialize the variable @code{exec-path} +(@pxref{Shell}). @item PWD If set, this should be the default directory when Emacs was started. @item REPLYTO If set, this specifies an initial value for the variable -@code{mail-default-reply-to}. @xref{Mail Headers}. +@code{mail-default-reply-to} (@pxref{Mail Headers}). @item SAVEDIR The name of a directory in which news articles are saved by default. Used by the Gnus package. @@ -578,23 +544,29 @@ The name of an interpreter used to parse and execute programs run from inside Emacs. @item SMTPSERVER -The name of the outgoing mail server. Used by the SMTP library -(@pxref{Top,,,smtpmail,Sending mail via SMTP}). +The name of the outgoing mail server. This is used to initialize the +variable @code{smtpmail-smtp-server} (@pxref{Mail Sending}). @cindex background mode, on @command{xterm} @item TERM The type of the terminal that Emacs is using. This variable must be set unless Emacs is run in batch mode. On MS-DOS, it defaults to @samp{internal}, which specifies a built-in terminal emulation that -handles the machine's own display. If the value of @env{TERM} indicates -that Emacs runs in non-windowed mode from @command{xterm} or a similar -terminal emulator, the background mode defaults to @samp{light}, and -Emacs will choose colors that are appropriate for a light background. +handles the machine's own display. @item TERMCAP The name of the termcap library file describing how to program the -terminal specified by the @env{TERM} variable. This defaults to +terminal specified by @env{TERM}. This defaults to @file{/etc/termcap}. @item TMPDIR -Used by the Emerge package as a prefix for temporary files. +@itemx TMP +@itemx TEMP +These environment variables are used to initialize the variable +@code{temporary-file-directory}, which specifies a directory in which +to put temporary files (@pxref{Backup}). Emacs tries to use +@env{TMPDIR} first; if that is unset, it tries @env{TMP}, then +@env{TEMP}, and finally @file{/tmp}. But on MS-Windows and MS-DOS, +Emacs tries @env{TEMP}, then @env{TMPDIR}, then @env{TMP}, and finally +@file{c:/temp}. + @item TZ This specifies the current time zone and possibly also daylight saving time information. On MS-DOS, if @env{TZ} is not set in the @@ -624,11 +596,6 @@ On MS-DOS, this variable defaults to the value of the @env{USER} variable. -@item TEMP -@itemx TMP -On MS-DOS and MS-Windows, these specify the name of the directory for -storing temporary files in. - @item EMACSTEST On MS-DOS, this specifies a file to use to log the operation of the internal terminal emulator. This feature is useful for submitting bug @@ -710,27 +677,21 @@ @cindex display name (X Window System) @cindex @env{DISPLAY} environment variable - The environment variable @env{DISPLAY} tells all X clients, including -Emacs, where to display their windows. Its value is set by default -in ordinary circumstances, when you start an X server and run jobs -locally. Occasionally you may need to specify the display yourself; for -example, if you do a remote login and want to run a client program -remotely, displaying on your local screen. - - With Emacs, the main reason people change the default display is to -let them log into another system, run Emacs on that system, but have the -window displayed at their local terminal. You might need to log in -to another system because the files you want to edit are there, or -because the Emacs executable file you want to run is there. + The environment variable @env{DISPLAY} tells all X clients, +including Emacs, where to display their windows. Its value is set by +default in ordinary circumstances, when you start an X server and run +jobs locally. You can specify the display yourself; one reason to do +this is if you want to log into another system and run Emacs there, +and have the window displayed at your local terminal. @env{DISPLAY} has the syntax @samp{@var{host}:@var{display}.@var{screen}}, where @var{host} is the host name of the X Window System server machine, @var{display} is an arbitrarily-assigned number that distinguishes your server (X terminal) from other servers on the same machine, and @var{screen} is -a rarely-used field that allows an X server to control multiple -terminal screens. The period and the @var{screen} field are optional. -If included, @var{screen} is usually zero. +a field that allows an X server to control multiple terminal screens. +The period and the @var{screen} field are optional. If included, +@var{screen} is usually zero. For example, if your host is named @samp{glasperle} and your server is the first (or perhaps the only) server listed in the configuration, your @@ -744,9 +705,9 @@ emacs --display=glasperle:0 & @end smallexample - You can inhibit the direct use of the window system and GUI with the -@samp{-nw} option. It tells Emacs to display using ordinary @acronym{ASCII} on -its controlling terminal. This is also an initial option. + You can inhibit the use of the X window system with the @samp{-nw} +option. Then Emacs uses its controlling text terminal for display. +@xref{Initial Options}. Sometimes, security arrangements prevent a program on a remote system from displaying on your local system. In this case, trying to run Emacs @@ -778,17 +739,17 @@ Use @var{font} as the default font. @end table -When passing a font specification to Emacs on the command line, you -may need to ``quote'' it, by enclosing it in quotation marks, if it -contains characters that the shell treats specially (e.g.@: spaces). -For example: +When passing a font name to Emacs on the command line, you may need to +``quote'' it, by enclosing it in quotation marks, if it contains +characters that the shell treats specially (e.g.@: spaces). For +example: @smallexample emacs -fn "DejaVu Sans Mono-12" @end smallexample -@xref{Fonts}, for other ways to specify the default font and font name -formats. +@xref{Fonts}, for details about font names and other ways to specify +the default font. @node Colors X @appendixsec Window Color Options @@ -819,7 +780,8 @@ @itemx --border-color=@var{color} @opindex --border-color @cindex border color, command-line argument -Specify the color of the border of the X window. +Specify the color of the border of the X window. This has no effect +if Emacs is compiled with GTK+ support. @item -cr @var{color} @opindex -cr @itemx --cursor-color=@var{color} @@ -844,11 +806,10 @@ @opindex --color @cindex standard colors on a character terminal @cindex override character terminal color support -For a character terminal only, specify the mode of color support. -This option is intended for overriding the number of supported colors -that the character terminal advertises in its @code{termcap} or -@code{terminfo} database. The parameter @var{mode} can be one of the -following: +Set the @dfn{color support mode} when Emacs is run on a text terminal. +This option overrides the number of supported colors that the +character terminal advertises in its @code{termcap} or @code{terminfo} +database. The parameter @var{mode} can be one of the following: @table @samp @item never @itemx no @@ -1090,7 +1051,7 @@ @itemx --no-bitmap-icon @opindex --no-bitmap-icon @cindex Emacs icon, a gnu -Do not display the Emacs icon. +Disable the use of the Emacs icon. @end table Most window managers allow you to ``iconify'' (or ``minimize'') an @@ -1102,10 +1063,11 @@ it. By default, Emacs uses an icon containing the Emacs logo. On -desktop environments such as Gnome, this icon is also displayed on the -``taskbar''. The @samp{-nbi} or @samp{--no-bitmap-icon} option tells -Emacs to let the window manager choose what sort of icon to -use---usually just a small rectangle containing the frame's title. +desktop environments such as Gnome, this icon is also displayed in +other contexts, e.g.@: when switching into an Emacs frame. The +@samp{-nbi} or @samp{--no-bitmap-icon} option tells Emacs to let the +window manager choose what sort of icon to use---usually just a small +rectangle containing the frame's title. @node Misc X @appendixsec Other Display Options === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2012-01-07 03:15:48 +0000 +++ doc/emacs/emacs.texi 2012-01-14 09:17:25 +0000 @@ -1104,7 +1104,6 @@ and call functions. * Initial Options:: Arguments that take effect while starting Emacs. * Command Example:: Examples of using command line arguments. -* Resume Arguments:: Specifying arguments when you resume a running Emacs. * Environment:: Environment variables that Emacs uses. * Display X:: Changing the default display and using remote login. * Font X:: Choosing a font for text, under X. === modified file 'doc/emacs/files.texi' --- doc/emacs/files.texi 2012-01-07 08:55:43 +0000 +++ doc/emacs/files.texi 2012-01-14 09:17:25 +0000 @@ -1871,10 +1871,9 @@ subdirectories to the file name cache, using @command{locate} to find them all. @item M-x file-cache-add-directory-list @key{RET} @var{variable} @key{RET} -Add each file name in each directory listed in @var{variable} -to the file name cache. @var{variable} should be a Lisp variable -such as @code{load-path} or @code{exec-path}, whose value is a list -of directory names. +Add each file name in each directory listed in @var{variable} to the +file name cache. @var{variable} should be a Lisp variable whose value +is a list of directory names, like @code{load-path}. @item M-x file-cache-clear-cache @key{RET} Clear the cache; that is, remove all file names from it. @end table === modified file 'doc/emacs/misc.texi' --- doc/emacs/misc.texi 2012-01-05 09:46:05 +0000 +++ doc/emacs/misc.texi 2012-01-14 09:17:25 +0000 @@ -465,6 +465,15 @@ available. @end table +@vindex exec-path + Whenever you specify a relative file name for an executable program +(either in the @var{cmd} argument to one of the above commands, or in +other contexts), Emacs searches for the program in the directories +specified by the variable @code{exec-path}. The value of this +variable must be a list of directory names; the default value is +initialized from the environment variable @env{PATH} when Emacs is +started (@pxref{General Variables}). + @kbd{M-x eshell} invokes a shell implemented entirely in Emacs. It is documented in its own manual. @ifnottex @@ -551,11 +560,8 @@ The above commands use the shell specified by the variable @code{shell-file-name}. Its default value is determined by the @env{SHELL} environment variable when Emacs is started. If the file -name is relative, Emacs searches the directories in the list -@code{exec-path}; this list is initialized based on the environment -variable @env{PATH} when Emacs is started. Your init file can -override either or both of these default initializations (@pxref{Init -File}). +name is relative, Emacs searches the directories listed in +@code{exec-path} (@pxref{Shell}). To specify a coding system for @kbd{M-!} or @kbd{M-|}, use the command @kbd{C-x @key{RET} c} immediately beforehand. @xref{Communication Coding}. === modified file 'doc/emacs/rmail.texi' --- doc/emacs/rmail.texi 2012-01-05 09:46:05 +0000 +++ doc/emacs/rmail.texi 2012-01-14 09:17:25 +0000 @@ -1428,8 +1428,8 @@ @code{movemail} to use. If that is a string, it specifies the absolute file name of the @code{movemail} executable. If it is @code{nil}, Rmail searches for @code{movemail} in the directories -listed in @code{rmail-movemail-search-path} and @code{exec-path}, then -in @code{exec-directory}. +listed in @code{rmail-movemail-search-path}, then in @code{exec-path} +(@pxref{Shell}), then in @code{exec-directory}. @node Remote Mailboxes @section Retrieving Mail from Remote Mailboxes === modified file 'etc/tutorials/TUTORIAL.translators' --- etc/tutorials/TUTORIAL.translators 2011-01-15 23:16:57 +0000 +++ etc/tutorials/TUTORIAL.translators 2012-01-14 09:17:25 +0000 @@ -12,8 +12,7 @@ * TUTORIAL.cs: Author: Milan Zamazal Pavel Janík -Maintainer: Milan Zamazal - Pavel Janík +Maintainer: Maintainer needed. * TUTORIAL.de: Author: Werner Lemberg @@ -73,7 +72,7 @@ * TUTORIAL.sk: Author: Miroslav Vaško Pavel Janík -Maintainer: Pavel Janík +Maintainer: Maintainer needed. * TUTORIAL.sl: Author: Primož Peterlin ------------------------------------------------------------ revno: 106861 fixes bug(s): http://debbugs.gnu.org/10403 author: Paul Eggert committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-01-14 15:09:15 +0800 message: Fix race condition in epg.el compat code. * lisp/epg.el (epg--make-temp-file): Avoid permission race condition when running on old Emacs versions. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-01-14 02:07:49 +0000 +++ lisp/ChangeLog 2012-01-14 07:09:15 +0000 @@ -1,3 +1,8 @@ +2012-01-14 Paul Eggert + + * epg.el (epg--make-temp-file): Avoid permission race condition + when running on old Emacs versions (bug#10403). + 2012-01-14 Glenn Morris * dired.el (dired-get-filename): Fix 'verbatim case of previous change. === modified file 'lisp/epg.el' --- lisp/epg.el 2012-01-07 19:58:55 +0000 +++ lisp/epg.el 2012-01-14 07:09:15 +0000 @@ -1951,7 +1951,8 @@ of PREFIX, and expanding against `temporary-file-directory' if necessary), is guaranteed to point to a newly created empty file. You can then use `write-region' to write new data into the file." - (let (tempdir tempfile) + (let ((orig-modes (default-file-modes)) + tempdir tempfile) (setq prefix (expand-file-name prefix (if (featurep 'xemacs) (temp-directory) @@ -1959,6 +1960,7 @@ (unwind-protect (let (file) ;; First, create a temporary directory. + (set-default-file-modes #o700) (while (condition-case () (progn (setq tempdir (make-temp-name @@ -1969,14 +1971,12 @@ (make-directory tempdir)) ;; let's try again. (file-already-exists t))) - (set-file-modes tempdir 448) ;; Second, create a temporary file in the tempdir. ;; There *is* a race condition between `make-temp-name' ;; and `write-region', but we don't care it since we are ;; in a private directory now. (setq tempfile (make-temp-name (concat tempdir "/EMU"))) (write-region "" nil tempfile nil 'silent) - (set-file-modes tempfile 384) ;; Finally, make a hard-link from the tempfile. (while (condition-case () (progn @@ -1986,6 +1986,7 @@ ;; let's try again. (file-already-exists t))) file) + (set-default-file-modes orig-modes) ;; Cleanup the tempfile. (and tempfile (file-exists-p tempfile) ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.