diff options
| author | Miles Bader | 2006-10-15 02:54:13 +0000 |
|---|---|---|
| committer | Miles Bader | 2006-10-15 02:54:13 +0000 |
| commit | bb9c4b4f8b3dcd1b5fc96d2d0275cc532832fbd6 (patch) | |
| tree | 8c4ae9640abcb8f33326e96e661f711417e5307c | |
| parent | 5be4d5336db8be316100a5b80ee8c5e428438b9e (diff) | |
| parent | 92edaeeda5c362acf2c7e7f72b3666ab7673699a (diff) | |
| download | emacs-bb9c4b4f8b3dcd1b5fc96d2d0275cc532832fbd6.tar.gz emacs-bb9c4b4f8b3dcd1b5fc96d2d0275cc532832fbd6.zip | |
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 460-475)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 145-152)
- Merge from emacs--devo--0
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-118
96 files changed, 5532 insertions, 2678 deletions
| @@ -112,13 +112,13 @@ Andreas Leue: changed artist.el | |||
| 112 | Andreas Luik: changed xfns.c xterm.c | 112 | Andreas Luik: changed xfns.c xterm.c |
| 113 | 113 | ||
| 114 | Andreas Schwab: changed Makefile.in files.el lisp.h xdisp.c alloc.c | 114 | Andreas Schwab: changed Makefile.in files.el lisp.h xdisp.c alloc.c |
| 115 | configure.in fns.c coding.c dired.el editfns.c info.el print.c eval.c | 115 | configure.in fns.c print.c coding.c dired.el editfns.c info.el eval.c |
| 116 | fileio.c simple.el buffer.c minibuf.c xterm.c emacs.c keyboard.c | 116 | fileio.c simple.el buffer.c minibuf.c xterm.c emacs.c keyboard.c |
| 117 | process.c and 443 other files | 117 | process.c and 444 other files |
| 118 | 118 | ||
| 119 | Andreas Seltenreich: changed nnweb.el gnus-art.el gnus-ml.el gnus-srvr.el | 119 | Andreas Seltenreich: changed nnweb.el gnus-art.el gnus-ml.el gnus-srvr.el |
| 120 | gnus-start.el gnus-util.el gnus.el gnus.texi mm-url.el url-cookie.el | 120 | gnus-start.el gnus-util.el gnus.el gnus.texi mm-url.el nnslashdot.el |
| 121 | url-http.el | 121 | url-cookie.el url-http.el |
| 122 | 122 | ||
| 123 | Andrew Choi: wrote mac-win.el | 123 | Andrew Choi: wrote mac-win.el |
| 124 | and changed macterm.c mac.c macfns.c INSTALL macmenu.c darwin.h macterm.h | 124 | and changed macterm.c mac.c macfns.c INSTALL macmenu.c darwin.h macterm.h |
| @@ -236,6 +236,8 @@ and changed isearch.el sendmail.el | |||
| 236 | 236 | ||
| 237 | Bob Halley: changed esh-io.el | 237 | Bob Halley: changed esh-io.el |
| 238 | 238 | ||
| 239 | Bob Rogers: changed ffap.el | ||
| 240 | |||
| 239 | Bob Weiner: changed info.el quail.el | 241 | Bob Weiner: changed info.el quail.el |
| 240 | 242 | ||
| 241 | Boris Goldowsky: wrote avoid.el descr-text.el enriched.el facemenu.el | 243 | Boris Goldowsky: wrote avoid.el descr-text.el enriched.el facemenu.el |
| @@ -309,17 +311,18 @@ Charlie Martin: wrote autoinsert.el | |||
| 309 | Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el | 311 | Cheng Gao: changed MORE.STUFF flymake.el tips.texi url-dired.el |
| 310 | url-file.el url-handlers.el url-http.el url-nfs.el | 312 | url-file.el url-handlers.el url-http.el url-nfs.el |
| 311 | 313 | ||
| 312 | Chong Yidong: changed cus-edit.el custom.el display.texi longlines.el | 314 | Chong Yidong: changed cus-edit.el custom.el simple.el display.texi |
| 313 | files.el simple.el text.texi custom.texi files.texi cus-theme.el | 315 | longlines.el files.el text.texi custom.texi files.texi wid-edit.el |
| 314 | info.el keyboard.c wid-edit.el xterm.c frames.texi image-mode.el | 316 | cus-theme.el info.el keyboard.c xterm.c compile.el frames.texi |
| 315 | misc.texi mouse.el sendmail.el xfns.c anti.texi and 152 other files | 317 | image-mode.el keymaps.texi misc.texi mouse.el sendmail.el |
| 318 | and 156 other files | ||
| 316 | 319 | ||
| 317 | Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c | 320 | Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c |
| 318 | hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el | 321 | hp9000s300.h keyboard.c process.c texinfmt.el emacsclient.c sort.el |
| 319 | syntax.c texnfo-upd.el x11fns.c xfns.c dired.el fileio.c hp9000s800.h | 322 | syntax.c texnfo-upd.el x11fns.c xfns.c dired.el fileio.c hp9000s800.h |
| 320 | indent.c info.el man.el and 17 other files | 323 | indent.c info.el man.el and 17 other files |
| 321 | 324 | ||
| 322 | Chris Moore: changed wdired.el | 325 | Chris Moore: changed dired.el wdired.el |
| 323 | 326 | ||
| 324 | Chris Prince: changed w32term.c | 327 | Chris Prince: changed w32term.c |
| 325 | 328 | ||
| @@ -430,7 +433,7 @@ Dave Love: wrote autoarg.el autoconf.el benchmark.el cfengine.el | |||
| 430 | welsh.el | 433 | welsh.el |
| 431 | and changed configure.in Makefile.in help.el fortran.el browse-url.el | 434 | and changed configure.in Makefile.in help.el fortran.el browse-url.el |
| 432 | mule-cmds.el simple.el xterm.c cus-edit.el files.el info.el mule.el | 435 | mule-cmds.el simple.el xterm.c cus-edit.el files.el info.el mule.el |
| 433 | wid-edit.el vc.el fns.c rfc2047.el bindings.el cus-start.el buffer.c | 436 | wid-edit.el fns.c vc.el rfc2047.el bindings.el cus-start.el buffer.c |
| 434 | byte-opt.el bytecomp.el and 729 other files | 437 | byte-opt.el bytecomp.el and 729 other files |
| 435 | 438 | ||
| 436 | Dave Pearson: wrote 5x5.el quickurl.el | 439 | Dave Pearson: wrote 5x5.el quickurl.el |
| @@ -475,10 +478,9 @@ David J. Mackenzie: changed configure.in etags.c fakemail.c movemail.c | |||
| 475 | etags-vmslib.c fortran.el hexl.c isearch.el and 12 other files | 478 | etags-vmslib.c fortran.el hexl.c isearch.el and 12 other files |
| 476 | 479 | ||
| 477 | David Kastrup: changed greek.el replace.el search.c ange-ftp.el faq.texi | 480 | David Kastrup: changed greek.el replace.el search.c ange-ftp.el faq.texi |
| 478 | calc.el meta-mode.el process.c search.texi DEBUG MAILINGLISTS | 481 | help.el mouse.el Makefile.in calc.el desktop.el keymaps.texi |
| 479 | Makefile.in autoload.el browse-url.el buffer.c building.texi | 482 | meta-mode.el process.c search.texi DEBUG MAILINGLISTS autoload.el |
| 480 | calc-alg.el configure.in cus-theme.el desktop.el dispnew.c | 483 | browse-url.el buffer.c building.texi calc-alg.el and 30 other files |
| 481 | and 21 other files | ||
| 482 | 484 | ||
| 483 | David K,Ae(Bgedal: wrote tempo.el | 485 | David K,Ae(Bgedal: wrote tempo.el |
| 484 | and changed sendmail.el xmenu.c | 486 | and changed sendmail.el xmenu.c |
| @@ -535,6 +537,8 @@ Deepak Goel: changed README ada-mode.el ada-xref.el appt.el apropos.el | |||
| 535 | 537 | ||
| 536 | Denis Howe: wrote browse-url.el | 538 | Denis Howe: wrote browse-url.el |
| 537 | 539 | ||
| 540 | Denis St,A|(Bnkel: changed ibuf-ext.el | ||
| 541 | |||
| 538 | Derek Atkins: changed pgg-pgp.el | 542 | Derek Atkins: changed pgg-pgp.el |
| 539 | 543 | ||
| 540 | Derek L. Davies: changed gud.el | 544 | Derek L. Davies: changed gud.el |
| @@ -607,7 +611,7 @@ Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el | |||
| 607 | and changed msdos.c Makefile.in files.el makefile.w32-in info.el fileio.c | 611 | and changed msdos.c Makefile.in files.el makefile.w32-in info.el fileio.c |
| 608 | startup.el mainmake.v2 config.bat menu-bar.el pc-win.el simple.el | 612 | startup.el mainmake.v2 config.bat menu-bar.el pc-win.el simple.el |
| 609 | internal.el msdos.h xfaces.c frame.c rmail.el dosfns.c faces.el | 613 | internal.el msdos.h xfaces.c frame.c rmail.el dosfns.c faces.el |
| 610 | frame.el emacs.c and 514 other files | 614 | frame.el emacs.c and 517 other files |
| 611 | 615 | ||
| 612 | Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el | 616 | Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el |
| 613 | sh-script.el text.texi | 617 | sh-script.el text.texi |
| @@ -802,7 +806,7 @@ Glenn Morris: changed f90.el diary-lib.el calendar.el fortran.el | |||
| 802 | calendar.texi appt.el sh-script.el timeclock.el cal-menu.el | 806 | calendar.texi appt.el sh-script.el timeclock.el cal-menu.el |
| 803 | cal-hebrew.el cal-islam.el files.el holidays.el programs.texi | 807 | cal-hebrew.el cal-islam.el files.el holidays.el programs.texi |
| 804 | scroll-all.el startup.el cal-coptic.el cal-julian.el cal-move.el | 808 | scroll-all.el startup.el cal-coptic.el cal-julian.el cal-move.el |
| 805 | cal-tex.el cal-x.el and 36 other files | 809 | cal-tex.el cal-x.el and 37 other files |
| 806 | 810 | ||
| 807 | Glynn Clements: wrote gamegrid.el snake.el tetris.el | 811 | Glynn Clements: wrote gamegrid.el snake.el tetris.el |
| 808 | 812 | ||
| @@ -966,9 +970,9 @@ and changed bytecode.c mail-extr.el subr.el | |||
| 966 | 970 | ||
| 967 | Jan Dj,Ad(Brv: wrote dnd.el x-dnd.el | 971 | Jan Dj,Ad(Brv: wrote dnd.el x-dnd.el |
| 968 | and changed gtkutil.c xterm.c xfns.c xmenu.c xterm.h gtkutil.h | 972 | and changed gtkutil.c xterm.c xfns.c xmenu.c xterm.h gtkutil.h |
| 969 | configure.in keyboard.c Makefile.in config.in configure frames.texi | 973 | configure.in keyboard.c Makefile.in config.in frames.texi configure |
| 970 | emacs.c x-win.el xselect.c alloc.c xlwmenu.c startup.el xdisp.c | 974 | x-win.el emacs.c xselect.c alloc.c xlwmenu.c startup.el xdisp.c |
| 971 | xresources.texi fileio.c and 171 other files | 975 | xresources.texi cus-start.el and 172 other files |
| 972 | 976 | ||
| 973 | Jan Nieuwenhuizen: changed info.el TUTORIAL.nl emacs.c emacsclient.c | 977 | Jan Nieuwenhuizen: changed info.el TUTORIAL.nl emacs.c emacsclient.c |
| 974 | gnus-start.el gud.el nnmh.el server.el startup.el | 978 | gnus-start.el gud.el nnmh.el server.el startup.el |
| @@ -990,13 +994,13 @@ Jason Rumney: wrote w32-vars.el | |||
| 990 | and changed w32fns.c w32term.c w32menu.c w32-win.el w32term.h | 994 | and changed w32fns.c w32term.c w32menu.c w32-win.el w32term.h |
| 991 | makefile.w32-in w32.c w32bdf.c w32-fns.el w32select.c w32console.c | 995 | makefile.w32-in w32.c w32bdf.c w32-fns.el w32select.c w32console.c |
| 992 | w32gui.h w32proc.c keyboard.c mule-cmds.el emacs.c fileio.c w32bdf.h | 996 | w32gui.h w32proc.c keyboard.c mule-cmds.el emacs.c fileio.c w32bdf.h |
| 993 | w32inevt.c config.nt configure.bat and 78 other files | 997 | w32inevt.c config.nt configure.bat and 79 other files |
| 994 | 998 | ||
| 995 | Jay Belanger: changed calc.texi calc.el calc-ext.el calc-embed.el | 999 | Jay Belanger: changed calc.texi calc.el calc-ext.el calc-embed.el |
| 996 | calc-aent.el calc-prog.el calc-arith.el calc-help.el calc-lang.el | 1000 | calc-aent.el calc-prog.el calc-arith.el calc-help.el calc-lang.el |
| 997 | calcalg2.el calc-graph.el calc-store.el calc-units.el calc-misc.el | 1001 | calcalg2.el COPYING calc-graph.el calc-store.el calc-units.el |
| 998 | calc-yank.el calc-alg.el calc-poly.el calccomp.el calc-mode.el | 1002 | calc-misc.el calc-yank.el calc-alg.el calc-poly.el calccomp.el |
| 999 | calc-rewr.el calc-sel.el and 26 other files | 1003 | calc-mode.el calc-rewr.el and 34 other files |
| 1000 | 1004 | ||
| 1001 | Jay K. Adams: wrote jka-cmpr-hook.el jka-compr.el | 1005 | Jay K. Adams: wrote jka-cmpr-hook.el jka-compr.el |
| 1002 | 1006 | ||
| @@ -1006,6 +1010,8 @@ Jean-Philippe Theberge: wrote thumbs.el | |||
| 1006 | 1010 | ||
| 1007 | Jeff Dwork: changed ehelp.el facemenu.el | 1011 | Jeff Dwork: changed ehelp.el facemenu.el |
| 1008 | 1012 | ||
| 1013 | Jeff Miller: changed appt.el | ||
| 1014 | |||
| 1009 | Jeff Morgenthaler: changed flow-ctrl.el vt200.el vt201.el vt220.el | 1015 | Jeff Morgenthaler: changed flow-ctrl.el vt200.el vt201.el vt220.el |
| 1010 | vt240.el | 1016 | vt240.el |
| 1011 | 1017 | ||
| @@ -1101,10 +1107,10 @@ Joel Ray Holveck: changed gnus-sum.el info.el | |||
| 1101 | Joev Dubach: changed nntp.el | 1107 | Joev Dubach: changed nntp.el |
| 1102 | 1108 | ||
| 1103 | Johan Bockg,Ae(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el | 1109 | Johan Bockg,Ae(Brd: changed erc.el erc-backend.el cl-macs.el erc-match.el |
| 1104 | erc-nickserv.el erc-ring.el erc-speak.el erc-track.el align.el | 1110 | erc-nickserv.el erc-ring.el erc-speak.el erc-track.el simple.el |
| 1105 | calendar.el cl.texi custom.el dired-aux.el display.texi erc-bbdb.el | 1111 | align.el calendar.el cl.texi custom.el dired-aux.el display.texi |
| 1106 | erc-button.el erc-compat.el erc-dcc.el erc-list.el erc-log.el | 1112 | erc-bbdb.el erc-button.el erc-compat.el erc-dcc.el erc-list.el |
| 1107 | erc-nicklist.el and 9 other files | 1113 | erc-log.el and 10 other files |
| 1108 | 1114 | ||
| 1109 | Johan Vromans: wrote forms-d2.el forms.el iso-acc.el | 1115 | Johan Vromans: wrote forms-d2.el forms.el iso-acc.el |
| 1110 | and changed complete.el | 1116 | and changed complete.el |
| @@ -1203,7 +1209,7 @@ and changed files.el perl-mode.el | |||
| 1203 | Juanma Barranquero: changed makefile.w32-in help-fns.el subr.el faces.el | 1209 | Juanma Barranquero: changed makefile.w32-in help-fns.el subr.el faces.el |
| 1204 | files.el w32fns.c cperl-mode.el replace.el simple.el eval.c | 1210 | files.el w32fns.c cperl-mode.el replace.el simple.el eval.c |
| 1205 | sh-script.el vhdl-mode.el comint.el org.el xdisp.c allout.el bs.el | 1211 | sh-script.el vhdl-mode.el comint.el org.el xdisp.c allout.el bs.el |
| 1206 | desktop.el idlwave.el keyboard.c process.c and 549 other files | 1212 | desktop.el idlwave.el keyboard.c process.c and 550 other files |
| 1207 | 1213 | ||
| 1208 | Juergen Hoetzel: changed url-handlers.el | 1214 | Juergen Hoetzel: changed url-handlers.el |
| 1209 | 1215 | ||
| @@ -1217,8 +1223,8 @@ Jure Cuhalev: changed ispell.el | |||
| 1217 | 1223 | ||
| 1218 | Juri Linkov: changed info.el simple.el isearch.el replace.el compile.el | 1224 | Juri Linkov: changed info.el simple.el isearch.el replace.el compile.el |
| 1219 | faces.el display.texi grep.el descr-text.el cus-edit.el dired.el | 1225 | faces.el display.texi grep.el descr-text.el cus-edit.el dired.el |
| 1220 | dired-aux.el edebug.el files.el lisp-mode.el lisp.el mule.el | 1226 | dired-aux.el edebug.el files.el lisp-mode.el lisp.el modes.texi mule.el |
| 1221 | compare-w.el desktop.el files.texi font-lock.el and 220 other files | 1227 | compare-w.el desktop.el files.texi and 220 other files |
| 1222 | 1228 | ||
| 1223 | Justin Sheehy: changed gnus-sum.el nntp.el | 1229 | Justin Sheehy: changed gnus-sum.el nntp.el |
| 1224 | 1230 | ||
| @@ -1246,9 +1252,9 @@ Kailash C. Chowksey: changed HELLO Makefile.in ind-util.el kannada.el | |||
| 1246 | 1252 | ||
| 1247 | Karl Berry: changed info.texi emacs.texi elisp.texi emacs-xtra.texi | 1253 | Karl Berry: changed info.texi emacs.texi elisp.texi emacs-xtra.texi |
| 1248 | filelock.c anti.texi building.texi cmdargs.texi copyright.el | 1254 | filelock.c anti.texi building.texi cmdargs.texi copyright.el |
| 1249 | customize.texi dired.c faq.texi gnu.texi help.texi macos.texi | 1255 | custom.texi customize.texi dired.c display.texi faq.texi frames.texi |
| 1250 | minibuf.texi msdog.texi mule.texi sending.texi texinfo.el texinfo.tex | 1256 | gnu.texi help.texi macos.texi minibuf.texi msdog.texi mule.texi |
| 1251 | and 64 other files | 1257 | and 65 other files |
| 1252 | 1258 | ||
| 1253 | Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el | 1259 | Karl Chen: changed files.el align.el cc-vars.el gnus-art.el help-mode.el |
| 1254 | jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el | 1260 | jka-cmpr-hook.el make-mode.el perl-mode.el python.el tex-mode.el |
| @@ -1278,7 +1284,7 @@ Katsuhiro Hermit Endo: changed gnus-spec.el | |||
| 1278 | Katsumi Yamaoka: wrote canlock.el | 1284 | Katsumi Yamaoka: wrote canlock.el |
| 1279 | and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el | 1285 | and changed gnus-art.el message.el gnus-sum.el gnus.texi mm-decode.el |
| 1280 | mm-view.el gnus-util.el gnus-msg.el gnus.el mm-util.el lpath.el | 1286 | mm-view.el gnus-util.el gnus-msg.el gnus.el mm-util.el lpath.el |
| 1281 | gnus-start.el gnus-group.el mm-uu.el rfc2047.el dgnushack.el | 1287 | gnus-start.el rfc2047.el gnus-group.el mm-uu.el dgnushack.el |
| 1282 | gnus-agent.el nntp.el mml.el nnrss.el nnheader.el and 71 other files | 1288 | gnus-agent.el nntp.el mml.el nnrss.el nnheader.el and 71 other files |
| 1283 | 1289 | ||
| 1284 | Kaveh R. Ghazi: changed delta88k.h xterm.c | 1290 | Kaveh R. Ghazi: changed delta88k.h xterm.c |
| @@ -1316,7 +1322,7 @@ Ken Stevens: wrote ispell.el | |||
| 1316 | Kenichi Handa: wrote cyrillic.el isearch-x.el py-punct.el pypunct-b5.el | 1322 | Kenichi Handa: wrote cyrillic.el isearch-x.el py-punct.el pypunct-b5.el |
| 1317 | quail.el thai-word.el | 1323 | quail.el thai-word.el |
| 1318 | and changed coding.c mule-cmds.el mule.el charset.c fileio.c xterm.c | 1324 | and changed coding.c mule-cmds.el mule.el charset.c fileio.c xterm.c |
| 1319 | fns.c ccl.c mule-conf.el Makefile.in fontset.c charset.h coding.h | 1325 | fns.c ccl.c Makefile.in mule-conf.el fontset.c charset.h coding.h |
| 1320 | fontset.el mule-diag.el xdisp.c editfns.c process.c insdel.c | 1326 | fontset.el mule-diag.el xdisp.c editfns.c process.c insdel.c |
| 1321 | japanese.el characters.el and 277 other files | 1327 | japanese.el characters.el and 277 other files |
| 1322 | 1328 | ||
| @@ -1361,10 +1367,10 @@ and changed info-look.el info.el gnus-art.el gnus-sum.el mailcap.el | |||
| 1361 | 1367 | ||
| 1362 | Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el | 1368 | Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el |
| 1363 | ido.el keypad.el kmacro.el | 1369 | ido.el keypad.el kmacro.el |
| 1364 | and changed xdisp.c dispextern.h simple.el xterm.c window.c keyboard.c | 1370 | and changed xdisp.c dispextern.h simple.el window.c xterm.c keyboard.c |
| 1365 | process.c w32term.c lisp.h subr.el dispnew.c fringe.c macterm.c | 1371 | process.c w32term.c dispnew.c subr.el lisp.h fringe.c macterm.c |
| 1366 | display.texi alloc.c fns.c xfaces.c xfns.c xterm.h .gdbinit buffer.c | 1372 | display.texi fns.c alloc.c xfaces.c xfns.c xterm.h keymap.c .gdbinit |
| 1367 | and 235 other files | 1373 | and 238 other files |
| 1368 | 1374 | ||
| 1369 | Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el | 1375 | Kim-Minh Kaplan: changed gnus-picon.el gnus-sum.el gnus-start.el |
| 1370 | gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el | 1376 | gnus-win.el gnus-xmas.el gnus.texi message.el nndraft.el nnml.el |
| @@ -1486,7 +1492,7 @@ and changed emacsclient.c emacsserver.c etags.c lisp.h movemail.c | |||
| 1486 | 1492 | ||
| 1487 | Maciek Pasternacki: changed nnrss.el | 1493 | Maciek Pasternacki: changed nnrss.el |
| 1488 | 1494 | ||
| 1489 | Magnus Henoch: changed ispell.el | 1495 | Magnus Henoch: changed ispell.el rcirc.el |
| 1490 | 1496 | ||
| 1491 | Manuel Serrano: wrote flyspell.el | 1497 | Manuel Serrano: wrote flyspell.el |
| 1492 | 1498 | ||
| @@ -1584,10 +1590,10 @@ Martin Lorentzon: changed vc.el vc-cvs.el vc-hooks.el vc-rcs.el | |||
| 1584 | 1590 | ||
| 1585 | Martin Neitzel: changed sc.el | 1591 | Martin Neitzel: changed sc.el |
| 1586 | 1592 | ||
| 1587 | Martin Rudalics: changed cus-edit.el wid-edit.el font-lock.el insdel.c | 1593 | Martin Rudalics: changed cus-edit.el wid-edit.el cus-start.el files.el |
| 1588 | syntax.c buffer.c buffer.h casefiddle.c cus-start.el custom.el | 1594 | font-lock.el insdel.c syntax.c buffer.c buffer.h casefiddle.c custom.el |
| 1589 | editfns.c fileio.c files.el find-func.el hideif.el info.el jit-lock.el | 1595 | dispextern.h editfns.c eldoc.el fileio.c find-func.el hideif.el info.el |
| 1590 | lisp-mode.el lisp.h midnight.el mouse.el and 5 other files | 1596 | jit-lock.el lisp-mode.el lisp.h and 13 other files |
| 1591 | 1597 | ||
| 1592 | Martin Stjernholm: wrote cc-bytecomp.el | 1598 | Martin Stjernholm: wrote cc-bytecomp.el |
| 1593 | and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el | 1599 | and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el |
| @@ -1604,8 +1610,8 @@ and changed gnuspost.el | |||
| 1604 | 1610 | ||
| 1605 | Masatake Yamato: wrote cc-subword.el ld-script.el | 1611 | Masatake Yamato: wrote cc-subword.el ld-script.el |
| 1606 | and changed etags.el asm-mode.el xdisp.c bindings.el hexl.el man.el | 1612 | and changed etags.el asm-mode.el xdisp.c bindings.el hexl.el man.el |
| 1607 | simple.el wid-edit.el compile.el faces.el pcvs.el register.el | 1613 | simple.el wid-edit.el add-log.el compile.el faces.el pcvs.el |
| 1608 | ruler-mode.el add-log.el buffer.c cus-face.el dired-x.el display.texi | 1614 | register.el ruler-mode.el buffer.c cus-face.el dired-x.el display.texi |
| 1609 | etags.c font-lock.el gdb-ui.el and 57 other files | 1615 | etags.c font-lock.el gdb-ui.el and 57 other files |
| 1610 | 1616 | ||
| 1611 | Masayuki Ataka: changed texinfmt.el texinfo.el characters.el make-mode.el | 1617 | Masayuki Ataka: changed texinfmt.el texinfo.el characters.el make-mode.el |
| @@ -1691,7 +1697,7 @@ Michael Olson: changed erc.el erc-backend.el Makefile erc.texi | |||
| 1691 | erc-stamp.el erc-log.el erc-autoaway.el erc-identd.el erc-track.el | 1697 | erc-stamp.el erc-log.el erc-autoaway.el erc-identd.el erc-track.el |
| 1692 | erc-match.el erc-dcc.el erc-notify.el erc-goodies.el erc-ibuffer.el | 1698 | erc-match.el erc-dcc.el erc-notify.el erc-goodies.el erc-ibuffer.el |
| 1693 | erc-list.el erc-pcomplete.el erc-spelling.el erc-bbdb.el erc-compat.el | 1699 | erc-list.el erc-pcomplete.el erc-spelling.el erc-bbdb.el erc-compat.el |
| 1694 | erc-nicklist.el erc-*.el and 41 other files | 1700 | erc-nicklist.el and 42 other files |
| 1695 | 1701 | ||
| 1696 | Michael Piotrowski: changed ps-print.el | 1702 | Michael Piotrowski: changed ps-print.el |
| 1697 | 1703 | ||
| @@ -1713,14 +1719,17 @@ Michael Sperber [Mr. Preprocessor]: changed aix3-1.h aix4-2.h | |||
| 1713 | 1719 | ||
| 1714 | Michael Staats: wrote pc-select.el | 1720 | Michael Staats: wrote pc-select.el |
| 1715 | 1721 | ||
| 1716 | Michael Welsh Duggan: changed lisp.h w32term.c buffer.c gnus-spec.el | 1722 | Michael Welsh Duggan: changed lisp.h sh-script.el w32term.c buffer.c |
| 1717 | keyboard.c nnmail.el termhooks.h url-http.el w32-win.el w32fns.c | 1723 | gnus-spec.el keyboard.c nnmail.el termhooks.h url-http.el w32-win.el |
| 1718 | w32menu.c w32term.h xdisp.c xterm.c | 1724 | w32fns.c w32menu.c w32term.h xdisp.c xterm.c |
| 1719 | 1725 | ||
| 1720 | Michal Jankowski: changed insdel.c keyboard.c | 1726 | Michal Jankowski: changed insdel.c keyboard.c |
| 1721 | 1727 | ||
| 1722 | Micha,Ak(Bl Cadilhac: changed ispell.el dispnew.c make-mode.el pong.el | 1728 | Michal Nazarewicz: changed ispell.el |
| 1723 | print.c process.c startup.el | 1729 | |
| 1730 | Micha,Ak(Bl Cadilhac: changed ispell.el cus-edit.el dispnew.c ido.el info.el | ||
| 1731 | life.el lpr.el make-mode.el pong.el print.c process.c startup.el | ||
| 1732 | uni-input.el | ||
| 1724 | 1733 | ||
| 1725 | Michelangelo Grigni: wrote ffap.el | 1734 | Michelangelo Grigni: wrote ffap.el |
| 1726 | and changed gnus-score.el | 1735 | and changed gnus-score.el |
| @@ -1750,8 +1759,8 @@ Mikio Nakajima: changed ring.el viper-util.el | |||
| 1750 | Milan Zamazal: wrote czech.el glasses.el tildify.el | 1759 | Milan Zamazal: wrote czech.el glasses.el tildify.el |
| 1751 | and changed slovak.el abbrev.el compile.el filecache.el files.el | 1760 | and changed slovak.el abbrev.el compile.el filecache.el files.el |
| 1752 | 1761 | ||
| 1753 | Miles Bader: wrote button.el image-file.el macroexp.el mb-depth.el | 1762 | Miles Bader: wrote button.el image-file.el macroexp.el minibuf-eldef.el |
| 1754 | minibuf-eldef.el rfn-eshadow.el | 1763 | rfn-eshadow.el |
| 1755 | and changed comint.el faces.el simple.el editfns.c xfaces.c info.el | 1764 | and changed comint.el faces.el simple.el editfns.c xfaces.c info.el |
| 1756 | xdisp.c minibuf.c wid-edit.el xterm.c subr.el window.el cus-edit.el | 1765 | xdisp.c minibuf.c wid-edit.el xterm.c subr.el window.el cus-edit.el |
| 1757 | diff-mode.el dispextern.h xfns.c help.el lisp.h quick-install-emacs | 1766 | diff-mode.el dispextern.h xfns.c help.el lisp.h quick-install-emacs |
| @@ -1760,7 +1769,7 @@ and changed comint.el faces.el simple.el editfns.c xfaces.c info.el | |||
| 1760 | Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el | 1769 | Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el |
| 1761 | mule-conf.el mule.el pop3.el | 1770 | mule-conf.el mule.el pop3.el |
| 1762 | 1771 | ||
| 1763 | Miyoshi Masanori: changed mouse.el xdisp.c | 1772 | Miyoshi Masanori: changed mouse.el smtpmail.el xdisp.c |
| 1764 | 1773 | ||
| 1765 | Morioka Tomohiko: changed rmail.el rmailout.el rmailsum.el fns.c | 1774 | Morioka Tomohiko: changed rmail.el rmailout.el rmailsum.el fns.c |
| 1766 | message.el nnheader.el nnmail.el rmailkwd.el smiley.el | 1775 | message.el nnheader.el nnmail.el rmailkwd.el smiley.el |
| @@ -1858,6 +1867,8 @@ Olivier Lecarme: changed make-mode.el ange-ftp.el apropos.el bibtex.el | |||
| 1858 | 1867 | ||
| 1859 | Olli Savia: changed etags.c syssignal.h | 1868 | Olli Savia: changed etags.c syssignal.h |
| 1860 | 1869 | ||
| 1870 | Osamu Yamane: changed smtpmail.el | ||
| 1871 | |||
| 1861 | Oscar Figueiredo: wrote eudc-bob.el eudc-export.el eudc-hotlist.el | 1872 | Oscar Figueiredo: wrote eudc-bob.el eudc-export.el eudc-hotlist.el |
| 1862 | eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el ldap.el | 1873 | eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el ldap.el |
| 1863 | and changed ph.el | 1874 | and changed ph.el |
| @@ -1879,7 +1890,7 @@ Paul Eggert: wrote cal-dst.el rcs2log vcdiff | |||
| 1879 | and changed editfns.c vc.el Makefile.in configure.in vc-hooks.el data.c | 1890 | and changed editfns.c vc.el Makefile.in configure.in vc-hooks.el data.c |
| 1880 | emacs.c gnus.el calendar.el config.in floatfns.c process.c sysdep.c | 1891 | emacs.c gnus.el calendar.el config.in floatfns.c process.c sysdep.c |
| 1881 | dired.el xterm.c callproc.c fileio.c filelock.c lread.c print.c | 1892 | dired.el xterm.c callproc.c fileio.c filelock.c lread.c print.c |
| 1882 | rmail.el and 287 other files | 1893 | rmail.el and 290 other files |
| 1883 | 1894 | ||
| 1884 | Paul Fisher: changed fns.c | 1895 | Paul Fisher: changed fns.c |
| 1885 | 1896 | ||
| @@ -2030,9 +2041,9 @@ and changed gnus-art.el gnus-msg.el gnus.texi message.el nnmail.el | |||
| 2030 | Reiner Steib: wrote gmm-utils.el | 2041 | Reiner Steib: wrote gmm-utils.el |
| 2031 | and changed gnus-art.el message.el gnus.texi gnus-sum.el gnus.el | 2042 | and changed gnus-art.el message.el gnus.texi gnus-sum.el gnus.el |
| 2032 | gnus-group.el mml.el gnus-faq.texi gnus-score.el gnus-start.el | 2043 | gnus-group.el mml.el gnus-faq.texi gnus-score.el gnus-start.el |
| 2033 | gnus-util.el gnus-msg.el message.texi gnus-agent.el files.el mm-util.el | 2044 | gnus-util.el gnus-msg.el message.texi gnus-agent.el mm-util.el files.el |
| 2034 | spam-report.el nnweb.el spam.el deuglify.el mm-decode.el | 2045 | spam-report.el nnweb.el spam.el deuglify.el mm-decode.el |
| 2035 | and 156 other files | 2046 | and 161 other files |
| 2036 | 2047 | ||
| 2037 | Remek Trzaska: changed gnus-ems.el | 2048 | Remek Trzaska: changed gnus-ems.el |
| 2038 | 2049 | ||
| @@ -2060,8 +2071,8 @@ Richard M. Stallman: wrote [The original GNU emacs and numerous files] | |||
| 2060 | easymenu.el font-lock.el image-mode.el menu-bar.el paren.el | 2071 | easymenu.el font-lock.el image-mode.el menu-bar.el paren.el |
| 2061 | and changed keyboard.c files.el simple.el xterm.c xdisp.c rmail.el | 2072 | and changed keyboard.c files.el simple.el xterm.c xdisp.c rmail.el |
| 2062 | fileio.c process.c sysdep.c xfns.c buffer.c Makefile.in window.c | 2073 | fileio.c process.c sysdep.c xfns.c buffer.c Makefile.in window.c |
| 2063 | configure.in subr.el editfns.c emacs.c sendmail.el startup.el info.el | 2074 | configure.in subr.el startup.el emacs.c editfns.c sendmail.el info.el |
| 2064 | dispnew.c and 1331 other files | 2075 | dispnew.c and 1334 other files |
| 2065 | 2076 | ||
| 2066 | Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el env.c | 2077 | Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el env.c |
| 2067 | rfc822.el terminal.el yow.el | 2078 | rfc822.el terminal.el yow.el |
| @@ -2126,7 +2137,7 @@ Romain Francoise: changed faq.texi dired-x.el ibuf-ext.el compile.el | |||
| 2126 | message.el puresize.h replace.el files.texi gnus-fun.el gnus.texi | 2137 | message.el puresize.h replace.el files.texi gnus-fun.el gnus.texi |
| 2127 | help-fns.el make-dist rcirc.el subr.el Makefile.in antlr-mode.el | 2138 | help-fns.el make-dist rcirc.el subr.el Makefile.in antlr-mode.el |
| 2128 | bookmark.el buffer.c comint.el diary-lib.el dired.el | 2139 | bookmark.el buffer.c comint.el diary-lib.el dired.el |
| 2129 | and 119 other files | 2140 | and 121 other files |
| 2130 | 2141 | ||
| 2131 | Roman Belenov: changed which-func.el | 2142 | Roman Belenov: changed which-func.el |
| 2132 | 2143 | ||
| @@ -2174,8 +2185,8 @@ Satyaki Das: wrote mh-acros.el mh-gnus.el mh-junk.el mh-search.el | |||
| 2174 | and changed mh-e.el mh-utils.el mh-seq.el mh-index.el mh-comp.el | 2185 | and changed mh-e.el mh-utils.el mh-seq.el mh-index.el mh-comp.el |
| 2175 | mh-mime.el mh-customize.el mh-loaddefs.el mh-funcs.el Makefile | 2186 | mh-mime.el mh-customize.el mh-loaddefs.el mh-funcs.el Makefile |
| 2176 | mh-alias.el mh-pick.el mh-unit.el mh-init.el mh-identity.el mh-make.el | 2187 | mh-alias.el mh-pick.el mh-unit.el mh-init.el mh-identity.el mh-make.el |
| 2177 | mh-xemacs-toolbar.el mh-xemacs-compat.el mh-inc.el highlight.xpm | 2188 | mh-xemacs-toolbar.el mh-xemacs-compat.el pgg-gpg.el mh-inc.el |
| 2178 | mh-func.el and 7 other files | 2189 | highlight.xpm and 7 other files |
| 2179 | 2190 | ||
| 2180 | Schlumberger Technology Corporation: changed gud.el | 2191 | Schlumberger Technology Corporation: changed gud.el |
| 2181 | 2192 | ||
| @@ -2224,8 +2235,8 @@ Simon Josefsson: wrote dig.el dns-mode.el flow-fill.el fringe.el imap.el | |||
| 2224 | mml-sec.el mml-smime.el nnfolder.el nnimap.el nnml.el rfc2104.el | 2235 | mml-sec.el mml-smime.el nnfolder.el nnimap.el nnml.el rfc2104.el |
| 2225 | sieve-manage.el sieve-mode.el sieve.el smime.el starttls.el tls.el | 2236 | sieve-manage.el sieve-mode.el sieve.el smime.el starttls.el tls.el |
| 2226 | url-imap.el | 2237 | url-imap.el |
| 2227 | and changed message.el gnus-sum.el gnus-art.el smtpmail.el pgg-gpg.el | 2238 | and changed message.el gnus-sum.el gnus-art.el smtpmail.el pgg.el |
| 2228 | pgg.el gnus-agent.el mml2015.el mml.el mm-decode.el mml1991.el | 2239 | pgg-gpg.el gnus-agent.el mml2015.el mml.el mm-decode.el mml1991.el |
| 2229 | gnus-group.el gnus-msg.el gnus.el pgg-pgp5.el gnus-cache.el | 2240 | gnus-group.el gnus-msg.el gnus.el pgg-pgp5.el gnus-cache.el |
| 2230 | gnus-sieve.el browse-url.el gnus-int.el mail-source.el pgg-parse.el | 2241 | gnus-sieve.el browse-url.el gnus-int.el mail-source.el pgg-parse.el |
| 2231 | and 91 other files | 2242 | and 91 other files |
| @@ -2242,7 +2253,8 @@ and changed comint.el font-lock.el shell.el rmail.el fortran.el | |||
| 2242 | 2253 | ||
| 2243 | Skip Collins: changed w32fns.c w32term.c w32term.h | 2254 | Skip Collins: changed w32fns.c w32term.c w32term.h |
| 2244 | 2255 | ||
| 2245 | Slawomir Nowaczyk: changed TUTORIAL.pl emacs.py flyspell.el ls-lisp.el | 2256 | Slawomir Nowaczyk: changed python.el TUTORIAL.pl emacs.py flyspell.el |
| 2257 | ls-lisp.el | ||
| 2246 | 2258 | ||
| 2247 | Spencer Thomas: changed dabbrev.el emacsclient.c emacsserver.c gnus.texi | 2259 | Spencer Thomas: changed dabbrev.el emacsclient.c emacsserver.c gnus.texi |
| 2248 | server.el tcp.c unexec.c | 2260 | server.el tcp.c unexec.c |
| @@ -2253,15 +2265,17 @@ Stefan Monnier: wrote bibtex.el cvs-status.el diff-mode.el log-edit.el | |||
| 2253 | log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el | 2265 | log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el |
| 2254 | reveal.el smerge-mode.el | 2266 | reveal.el smerge-mode.el |
| 2255 | and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h | 2267 | and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h |
| 2256 | keyboard.c tex-mode.el fill.el keymap.c alloc.c compile.el | 2268 | keyboard.c keymap.c tex-mode.el fill.el alloc.c compile.el files.el |
| 2257 | easy-mmode.el files.el simple.el info.el regex.c syntax.c vc-hooks.el | 2269 | regex.c easy-mmode.el simple.el info.el syntax.c xdisp.c vc-hooks.el |
| 2258 | xdisp.c sh-script.el and 509 other files | 2270 | sh-script.el and 511 other files |
| 2259 | 2271 | ||
| 2260 | Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi | 2272 | Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi |
| 2261 | ediff-mult.el | 2273 | ediff-mult.el |
| 2262 | 2274 | ||
| 2263 | Stephen A. Wood: changed fortran.el | 2275 | Stephen A. Wood: changed fortran.el |
| 2264 | 2276 | ||
| 2277 | Stephen Berman: changed allout.el | ||
| 2278 | |||
| 2265 | Stephen Eglen: wrote iswitchb.el mspools.el | 2279 | Stephen Eglen: wrote iswitchb.el mspools.el |
| 2266 | and changed diary-lib.el locate.el octave-inf.el replace.el hexl.el | 2280 | and changed diary-lib.el locate.el octave-inf.el replace.el hexl.el |
| 2267 | info-look.el sendmail.el spell.el uce.el MORE.STUFF add-log.el | 2281 | info-look.el sendmail.el spell.el uce.el MORE.STUFF add-log.el |
| @@ -2269,8 +2283,9 @@ and changed diary-lib.el locate.el octave-inf.el replace.el hexl.el | |||
| 2269 | bib-mode.el bruce.el c-mode.el ccl.el and 71 other files | 2283 | bib-mode.el bruce.el c-mode.el ccl.el and 71 other files |
| 2270 | 2284 | ||
| 2271 | Stephen Gildea: wrote mh-funcs.el mh-pick.el refcard.tex | 2285 | Stephen Gildea: wrote mh-funcs.el mh-pick.el refcard.tex |
| 2272 | and changed time-stamp.el mh-e.el mh-utils.el mh-comp.el mh-customize.el | 2286 | and changed time-stamp.el mh-e.el mh-comp.el mh-utils.el mh-customize.el |
| 2273 | fileio.c files.el fortran.el mh-e.texi mh-mime.el mwheel.el tex-mode.el | 2287 | fileio.c files.el fortran.el mh-e.texi mh-junk.el mh-mime.el mwheel.el |
| 2288 | tex-mode.el | ||
| 2274 | 2289 | ||
| 2275 | Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el | 2290 | Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el |
| 2276 | 2291 | ||
| @@ -2396,7 +2411,7 @@ Tim Van Holder: changed Makefile.in compile.el configure.in which-func.el | |||
| 2396 | 2411 | ||
| 2397 | Tobias C. Rittweiler: changed font-lock.el | 2412 | Tobias C. Rittweiler: changed font-lock.el |
| 2398 | 2413 | ||
| 2399 | Toby Allsopp: changed eudc.el | 2414 | Toby Allsopp: changed ldap.el eudc.el |
| 2400 | 2415 | ||
| 2401 | Toby Speight: changed window.el | 2416 | Toby Speight: changed window.el |
| 2402 | 2417 | ||
| @@ -2527,7 +2542,7 @@ and changed latin-pre.el pl-refcard.ps pl-refcard.tex refcard-pl.ps | |||
| 2527 | 2542 | ||
| 2528 | Wolfgang Glas: changed unexsgi.c | 2543 | Wolfgang Glas: changed unexsgi.c |
| 2529 | 2544 | ||
| 2530 | Wolfgang Jenkner: changed pcvs.el | 2545 | Wolfgang Jenkner: changed conf-mode.el pcvs.el |
| 2531 | 2546 | ||
| 2532 | Wolfgang Rupprecht: wrote float-sup.el floatfns.c sup-mouse.el | 2547 | Wolfgang Rupprecht: wrote float-sup.el floatfns.c sup-mouse.el |
| 2533 | and changed process.c alloc.c callint.c config.h.in config.in | 2548 | and changed process.c alloc.c callint.c config.h.in config.in |
| @@ -2544,10 +2559,10 @@ Xavier Maillard: changed gnus-faq.texi gnus-score.el | |||
| 2544 | 2559 | ||
| 2545 | Yagi Tatsuya: changed gnus-art.el gnus-start.el | 2560 | Yagi Tatsuya: changed gnus-art.el gnus-start.el |
| 2546 | 2561 | ||
| 2547 | Yamamoto Mitsuharu: changed macterm.c mac-win.el macfns.c mac.c macterm.h | 2562 | Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h |
| 2548 | macgui.h image.c macmenu.c macselect.c keyboard.c makefile.MPW xdisp.c | 2563 | macgui.h image.c macmenu.c macselect.c keyboard.c makefile.MPW xdisp.c |
| 2549 | emacs.c macos.texi xfaces.c Makefile.in config.h darwin.h dispextern.h | 2564 | emacs.c config.h macos.texi xfaces.c Makefile.in darwin.h dispextern.h |
| 2550 | w32term.c Info.plist and 61 other files | 2565 | w32term.c INSTALL and 66 other files |
| 2551 | 2566 | ||
| 2552 | Yann Dirson: changed imenu.el | 2567 | Yann Dirson: changed imenu.el |
| 2553 | 2568 | ||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2006-10-03 Kim F. Storm <storm@cua.dk> | ||
| 2 | |||
| 3 | * AUTHORS: Regenerate. | ||
| 4 | |||
| 1 | 2006-09-30 Eli Zaretskii <eliz@gnu.org> | 5 | 2006-09-30 Eli Zaretskii <eliz@gnu.org> |
| 2 | 6 | ||
| 3 | * configure: Regenerated. | 7 | * configure: Regenerated. |
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 90e05a557a8..aef0773b89d 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -2,12 +2,13 @@ Tasks needed before the next release. | |||
| 2 | 2 | ||
| 3 | * TO BE DONE SHORTLY BEFORE RELEASE | 3 | * TO BE DONE SHORTLY BEFORE RELEASE |
| 4 | 4 | ||
| 5 | ** Update release dates of manuals. | ||
| 6 | |||
| 7 | ** Check for widow and orphan lines in manuals; | 5 | ** Check for widow and orphan lines in manuals; |
| 8 | make sure all the pages really look ok in the manual as formatted. | 6 | make sure all the pages really look ok in the manual as formatted. |
| 9 | 7 | ||
| 8 | ** Check for text in manuals that assumes current version is 21. | ||
| 9 | |||
| 10 | ** Update AUTHORS. | 10 | ** Update AUTHORS. |
| 11 | [Done 2006-10-03] | ||
| 11 | 12 | ||
| 12 | ** Regenerate the postscript files of the reference cards in etc. | 13 | ** Regenerate the postscript files of the reference cards in etc. |
| 13 | 14 | ||
| @@ -34,22 +35,16 @@ These don't need to be fixed to start pretest, but we call the | |||
| 34 | attention of Windows users to fixing them. | 35 | attention of Windows users to fixing them. |
| 35 | 36 | ||
| 36 | ** Drew Adams 12 Aug bug rpt: overlay display artifact: trace left behind | 37 | ** Drew Adams 12 Aug bug rpt: overlay display artifact: trace left behind |
| 37 | Windows only bug. | 38 | Windows only bug. Bug appears only when Cleartype enabled, probably related |
| 39 | to the hack introduced on 2005-07-01 to fix some other Cleartype problem. | ||
| 38 | 40 | ||
| 39 | ** henman@it.to-be.co.jp 09 Aug 2006: ispell.el problem on Cygwin. | 41 | ** henman@it.to-be.co.jp 09 Aug 2006: ispell.el problem on Cygwin. |
| 40 | (Did we decide that is unreproducible?) | 42 | (Did we decide that is unreproducible?) |
| 41 | 43 | ||
| 42 | ** kitty@dre.vanderbilt.edu Sep 20 says make-frame ignores left and top. | ||
| 43 | |||
| 44 | * BUGS | 44 | * BUGS |
| 45 | 45 | ||
| 46 | ** Enrico Schwass, Sep 13 help-gnu-emacs: display japanese outputdoesnt work quite right | 46 | ** hashiz@tomba.meridiani.jp, Oct 6: bootstrap failure on FreeBSD 6.2 |
| 47 | 47 | Can't be reproduced on GNU/Linux. | |
| 48 | ** XIM hotkey doesn't work in Emacs with gnome-settings-demon. | ||
| 49 | |||
| 50 | ** jpff@codemist.co.uk, Sep 29: rmail g gets Wrong type argument error. | ||
| 51 | |||
| 52 | ** M.P.Hodges@rl.ac.uk Sep 30: list-processes and process sentinels not run. | ||
| 53 | 48 | ||
| 54 | * DOCUMENTATION | 49 | * DOCUMENTATION |
| 55 | 50 | ||
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 0fcba5b40c8..9b15f8d39b3 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt | |||
| @@ -62,8 +62,11 @@ For each step, check for possible errors. | |||
| 62 | echo directory: emacs/pretest > FILE.directive (for a pretest) | 62 | echo directory: emacs/pretest > FILE.directive (for a pretest) |
| 63 | echo directory: emacs > FILE.directive (for a release) | 63 | echo directory: emacs > FILE.directive (for a release) |
| 64 | gpg --clearsign FILE.directive | 64 | gpg --clearsign FILE.directive |
| 65 | Upload by anonymous ftp to ftp://ftp-upload.gnu.org/incoming/ftp/ | 65 | Upload by anonymous ftp to ftp://ftp-upload.gnu.org/ the files FILE, |
| 66 | the files FILE, FILE.sig, FILE.directive.asc | 66 | FILE.sig, FILE.directive.asc. |
| 67 | For a release, place the files in the /incoming/ftp directory. | ||
| 68 | For a pretest, place the files in /incoming/alpha instead, so that | ||
| 69 | they appear on ftp://alpha.gnu.org/. | ||
| 67 | 70 | ||
| 68 | 13. After five minutes, verify that the files are visible at | 71 | 13. After five minutes, verify that the files are visible at |
| 69 | ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at | 72 | ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at |
diff --git a/etc/ChangeLog b/etc/ChangeLog index f5b800b325a..5f14cbd728f 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,16 @@ | |||
| 1 | 2006-10-09 David Kastrup <dak@gnu.org> | ||
| 2 | |||
| 3 | * DEVEL.HUMOR: Add the topic line for last entry since that was | ||
| 4 | what the joke was about. | ||
| 5 | |||
| 6 | 2006-10-07 Ognyan Kulev <ogi@fmi.uni-sofia.bg> | ||
| 7 | |||
| 8 | * TUTORIAL.bg: Synchronize with TUTORIAL. | ||
| 9 | |||
| 10 | 2006-10-06 Juanma Barranquero <lekktu@gmail.com> | ||
| 11 | |||
| 12 | * DEVEL.HUMOR: New file. | ||
| 13 | |||
| 1 | 2006-09-30 Chong Yidong <cyd@stupidchicken.com> | 14 | 2006-09-30 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 15 | ||
| 3 | * PROBLEMS: Document Emacs/XIM/gnome-settings-terminal clash. | 16 | * PROBLEMS: Document Emacs/XIM/gnome-settings-terminal clash. |
| @@ -26,7 +39,7 @@ | |||
| 26 | 39 | ||
| 27 | 2006-09-15 David Kastrup <dak@gnu.org> | 40 | 2006-09-15 David Kastrup <dak@gnu.org> |
| 28 | 41 | ||
| 29 | * NEWS: explain new behavior and arguments of `key-binding' and | 42 | * NEWS: Explain new behavior and arguments of `key-binding' and |
| 30 | `command-remapping'. | 43 | `command-remapping'. |
| 31 | 44 | ||
| 32 | 2006-09-11 Paul Eggert <eggert@cs.ucla.edu> | 45 | 2006-09-11 Paul Eggert <eggert@cs.ucla.edu> |
| @@ -216,8 +229,7 @@ | |||
| 216 | 229 | ||
| 217 | 2006-06-19 Carsten Dominik <dominik@science.uva.nl> | 230 | 2006-06-19 Carsten Dominik <dominik@science.uva.nl> |
| 218 | 231 | ||
| 219 | * orgcard.tex (section{Clocking Time}): Add new clocking | 232 | * orgcard.tex (section{Clocking Time}): Add new clocking commands. |
| 220 | commands. | ||
| 221 | (section{Structure Editing}): Add global archiving command. | 233 | (section{Structure Editing}): Add global archiving command. |
| 222 | 234 | ||
| 223 | 2006-06-14 Thien-Thi Nguyen <ttn@gnu.org> | 235 | 2006-06-14 Thien-Thi Nguyen <ttn@gnu.org> |
| @@ -304,8 +316,7 @@ | |||
| 304 | 316 | ||
| 305 | 2006-05-24 Carsten Dominik <dominik@science.uva.nl> | 317 | 2006-05-24 Carsten Dominik <dominik@science.uva.nl> |
| 306 | 318 | ||
| 307 | * orgcard.tex: (section{Motion}): Added the item navigation | 319 | * orgcard.tex (section{Motion}): Added the item navigation commands. |
| 308 | commands. | ||
| 309 | (section{Publishing}): New section. | 320 | (section{Publishing}): New section. |
| 310 | (section{Links}): Documented elisp and shell links. | 321 | (section{Links}): Documented elisp and shell links. |
| 311 | 322 | ||
| @@ -317,8 +328,7 @@ | |||
| 317 | 328 | ||
| 318 | * pl-refcard.tex (Local variables): Add compile-command. | 329 | * pl-refcard.tex (Local variables): Add compile-command. |
| 319 | 330 | ||
| 320 | * ru-refcard.tex (Local variables): Add compile-command and | 331 | * ru-refcard.tex (Local variables): Add compile-command and coding. |
| 321 | coding. | ||
| 322 | 332 | ||
| 323 | * pt-br-refcard.tex: Don't \input psfig. | 333 | * pt-br-refcard.tex: Don't \input psfig. |
| 324 | 334 | ||
| @@ -332,7 +342,7 @@ | |||
| 332 | * pl-refcard.tex (section{Info}): Ditto. Translation suggested by | 342 | * pl-refcard.tex (section{Info}): Ditto. Translation suggested by |
| 333 | Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se>. | 343 | Slawomir Nowaczyk <slawomir.nowaczyk.847@student.lu.se>. |
| 334 | 344 | ||
| 335 | * cs-refcard.tex (section{Info}): Use `s' instead of `M-s'. Entry | 345 | * cs-refcard.tex (section{Info}): Use `s' instead of `M-s'. Entry |
| 336 | for `i' is not translated yet. | 346 | for `i' is not translated yet. |
| 337 | 347 | ||
| 338 | * pt-br-refcard.tex (section{Info}): Ditto. | 348 | * pt-br-refcard.tex (section{Info}): Ditto. |
| @@ -413,7 +423,7 @@ | |||
| 413 | 423 | ||
| 414 | 2006-04-11 Carsten Dominik <dominik@science.uva.nl> | 424 | 2006-04-11 Carsten Dominik <dominik@science.uva.nl> |
| 415 | 425 | ||
| 416 | * orgcard.tex: (section{Tables}): Document column narrowing. | 426 | * orgcard.tex (section{Tables}): Document column narrowing. |
| 417 | (section{Links}): Document bracket links. | 427 | (section{Links}): Document bracket links. |
| 418 | 428 | ||
| 419 | 2006-04-11 Kenichi Handa <handa@m17n.org> | 429 | 2006-04-11 Kenichi Handa <handa@m17n.org> |
| @@ -442,11 +452,11 @@ | |||
| 442 | New bitmaps for new images. | 452 | New bitmaps for new images. |
| 443 | 453 | ||
| 444 | * images/refresh.xpm, images/sort-ascending.xpm, | 454 | * images/refresh.xpm, images/sort-ascending.xpm, |
| 445 | * images/sort-descending.xpm: Update with GTK 2.x images. Note | 455 | * images/sort-descending.xpm: Update with GTK 2.x images. Note |
| 446 | that the default GTK icons are not overridden by the GNOME theme | 456 | that the default GTK icons are not overridden by the GNOME theme |
| 447 | due to a bug which was fixed in GNOME 2.15. Once GNOME 2.16 is in | 457 | due to a bug which was fixed in GNOME 2.15. Once GNOME 2.16 is in |
| 448 | wide circulation, then the GTK icons should be replaced with the | 458 | wide circulation, then the GTK icons should be replaced with the |
| 449 | equivalent GNOME icons. Until then, we should be consistent with | 459 | equivalent GNOME icons. Until then, we should be consistent with |
| 450 | GTK first, then GNOME. | 460 | GTK first, then GNOME. |
| 451 | 461 | ||
| 452 | * images/mail/repack.xpm, images/mail/reply-from.xpm: | 462 | * images/mail/repack.xpm, images/mail/reply-from.xpm: |
| @@ -504,9 +514,9 @@ | |||
| 504 | 514 | ||
| 505 | 2006-03-11 Bill Wohler <wohler@newt.com> | 515 | 2006-03-11 Bill Wohler <wohler@newt.com> |
| 506 | 516 | ||
| 507 | * NEWS: Document `image-load-path-for-library'. Note that all | 517 | * NEWS: Document `image-load-path-for-library'. Note that all |
| 508 | images have been moved from lisp into etc/images in `find-image' | 518 | images have been moved from lisp into etc/images in `find-image' |
| 509 | item. Fix typo in `copy-tree'. | 519 | item. Fix typo in `copy-tree'. |
| 510 | 520 | ||
| 511 | 2006-03-09 Reiner Steib <Reiner.Steib@gmx.de> | 521 | 2006-03-09 Reiner Steib <Reiner.Steib@gmx.de> |
| 512 | 522 | ||
| @@ -528,7 +538,7 @@ | |||
| 528 | 538 | ||
| 529 | 2006-02-22 Carsten Dominik <dominik@science.uva.nl> | 539 | 2006-02-22 Carsten Dominik <dominik@science.uva.nl> |
| 530 | 540 | ||
| 531 | * orgcard.tex: (section{Links}): Rewritten to cover the modified | 541 | * orgcard.tex (section{Links}): Rewritten to cover the modified |
| 532 | link system. | 542 | link system. |
| 533 | 543 | ||
| 534 | 2006-02-18 Bill Wohler <wohler@newt.com> | 544 | 2006-02-18 Bill Wohler <wohler@newt.com> |
| @@ -602,11 +612,11 @@ | |||
| 602 | 612 | ||
| 603 | 2006-01-23 Michael Albinus <michael.albinus@gmx.de> | 613 | 2006-01-23 Michael Albinus <michael.albinus@gmx.de> |
| 604 | 614 | ||
| 605 | * NEWS: tramp can be removed by M-x tramp-unload-tramp. | 615 | * NEWS: Tramp can be removed by M-x tramp-unload-tramp. |
| 606 | 616 | ||
| 607 | 2006-01-15 Dan Nicolaescu <dann@ics.uci.edu> | 617 | 2006-01-15 Dan Nicolaescu <dann@ics.uci.edu> |
| 608 | 618 | ||
| 609 | * e/eterm-color.ti: Re-enable the ri entry. Add kich1. | 619 | * e/eterm-color.ti: Re-enable the ri entry. Add kich1. |
| 610 | 620 | ||
| 611 | 2006-01-13 Richard M. Stallman <rms@gnu.org> | 621 | 2006-01-13 Richard M. Stallman <rms@gnu.org> |
| 612 | 622 | ||
| @@ -711,7 +721,7 @@ | |||
| 711 | 2005-10-27 Dan Nicolaescu <dann@ics.uci.edu> | 721 | 2005-10-27 Dan Nicolaescu <dann@ics.uci.edu> |
| 712 | 722 | ||
| 713 | * e/eterm-color.ti (el1): Undo 2005-10-23 change. | 723 | * e/eterm-color.ti (el1): Undo 2005-10-23 change. |
| 714 | Add some comments on how to update this file. Add ri | 724 | Add some comments on how to update this file. Add ri |
| 715 | capability that has long been supported by term.el. | 725 | capability that has long been supported by term.el. |
| 716 | 726 | ||
| 717 | 2005-10-25 Nick Roberts <nickrob@snap.net.nz> | 727 | 2005-10-25 Nick Roberts <nickrob@snap.net.nz> |
| @@ -738,7 +748,7 @@ | |||
| 738 | 748 | ||
| 739 | 2005-10-17 Bill Wohler <wohler@newt.com> | 749 | 2005-10-17 Bill Wohler <wohler@newt.com> |
| 740 | 750 | ||
| 741 | Moved all remaining images from lisp/toolbar to etc/images. The | 751 | Moved all remaining images from lisp/toolbar to etc/images. The |
| 742 | low resolution images were placed in their own directory (low-color). | 752 | low resolution images were placed in their own directory (low-color). |
| 743 | 753 | ||
| 744 | * images/attach.*, images/cancel.*, images/close.*: | 754 | * images/attach.*, images/cancel.*, images/close.*: |
| @@ -885,7 +895,7 @@ | |||
| 885 | 895 | ||
| 886 | * GNUS-NEWS: Fix IDNA notes. | 896 | * GNUS-NEWS: Fix IDNA notes. |
| 887 | 897 | ||
| 888 | 2005-09-27 Jay Belanger <belanger@truman.edu> | 898 | 2005-09-27 Jay Belanger <belanger@truman.edu> |
| 889 | 899 | ||
| 890 | * calccard.tex: Update `versionnumber', remove `versiondate'. | 900 | * calccard.tex: Update `versionnumber', remove `versiondate'. |
| 891 | (Error Recovery): Refer to "initial state" rather than "default state". | 901 | (Error Recovery): Refer to "initial state" rather than "default state". |
| @@ -1292,7 +1302,7 @@ | |||
| 1292 | 1302 | ||
| 1293 | 2004-09-26 Dan Nicolaescu <dann@ics.uci.edu> | 1303 | 2004-09-26 Dan Nicolaescu <dann@ics.uci.edu> |
| 1294 | 1304 | ||
| 1295 | * e/eterm.ti: Comment out smcup, rmcup. Add kbs, kdch1, rc, sc. | 1305 | * e/eterm.ti: Comment out smcup, rmcup. Add kbs, kdch1, rc, sc. |
| 1296 | Reformat. | 1306 | Reformat. |
| 1297 | * e/eterm: Regenerate. | 1307 | * e/eterm: Regenerate. |
| 1298 | 1308 | ||
| @@ -1403,7 +1413,7 @@ | |||
| 1403 | 1413 | ||
| 1404 | 2004-06-10 Lars Hansen <larsh@math.ku.dk> | 1414 | 2004-06-10 Lars Hansen <larsh@math.ku.dk> |
| 1405 | 1415 | ||
| 1406 | * NEWS: Describe dired-omit-mode. Describe desktop package changes. | 1416 | * NEWS: Describe dired-omit-mode. Describe desktop package changes. |
| 1407 | 1417 | ||
| 1408 | 2004-05-29 Steven Tamm <steventamm@mac.com> | 1418 | 2004-05-29 Steven Tamm <steventamm@mac.com> |
| 1409 | 1419 | ||
| @@ -1426,7 +1436,7 @@ | |||
| 1426 | 1436 | ||
| 1427 | 2004-04-13 Marcelo Toledo <marcelo@gnu.org> | 1437 | 2004-04-13 Marcelo Toledo <marcelo@gnu.org> |
| 1428 | 1438 | ||
| 1429 | * TUTORIAL.pt_BR: initial check-in. | 1439 | * TUTORIAL.pt_BR: Initial check-in. |
| 1430 | 1440 | ||
| 1431 | 2004-05-06 Dave Love <fx@gnu.org> | 1441 | 2004-05-06 Dave Love <fx@gnu.org> |
| 1432 | 1442 | ||
| @@ -1790,7 +1800,7 @@ | |||
| 1790 | 1800 | ||
| 1791 | 2001-08-05 Pavel Jan,Am(Bk <Pavel@Janik.cz> | 1801 | 2001-08-05 Pavel Jan,Am(Bk <Pavel@Janik.cz> |
| 1792 | 1802 | ||
| 1793 | * TUTORIAL.cs, TUTORIAL.sk, cs-refcard.tex, sk-refcard.tex: e-mail | 1803 | * TUTORIAL.cs, TUTORIAL.sk, cs-refcard.tex, sk-refcard.tex: E-mail |
| 1794 | address of Milan Zamazal changed. | 1804 | address of Milan Zamazal changed. |
| 1795 | 1805 | ||
| 1796 | 2001-08-04 Pavel Jan,Am(Bk <Pavel@Janik.cz> | 1806 | 2001-08-04 Pavel Jan,Am(Bk <Pavel@Janik.cz> |
| @@ -1904,7 +1914,7 @@ | |||
| 1904 | 2001-01-08 Kevin Gallagher <kevingal@onramp.net> | 1914 | 2001-01-08 Kevin Gallagher <kevingal@onramp.net> |
| 1905 | 1915 | ||
| 1906 | * edt-user.doc: Updated to reflect EDT Emulation version 4.0 | 1916 | * edt-user.doc: Updated to reflect EDT Emulation version 4.0 |
| 1907 | enhancements. | 1917 | enhancements. |
| 1908 | 1918 | ||
| 1909 | 2000-12-29 Gerd Moellmann <gerd@gnu.org> | 1919 | 2000-12-29 Gerd Moellmann <gerd@gnu.org> |
| 1910 | 1920 | ||
| @@ -2229,7 +2239,7 @@ | |||
| 2229 | 2239 | ||
| 2230 | 1995-06-28 Eric S. Raymond <esr@spiff.gnu.ai.mit.edu> | 2240 | 1995-06-28 Eric S. Raymond <esr@spiff.gnu.ai.mit.edu> |
| 2231 | 2241 | ||
| 2232 | * termcap.dat, termcap.ucb: deleted and replaced. | 2242 | * termcap.dat, termcap.ucb: Deleted and replaced. |
| 2233 | 2243 | ||
| 2234 | * termcap: New termcap file from the ncurses project; bigger, | 2244 | * termcap: New termcap file from the ncurses project; bigger, |
| 2235 | better, brighter, does away with waxy yellow buildup. Email | 2245 | better, brighter, does away with waxy yellow buildup. Email |
| @@ -2322,7 +2332,7 @@ | |||
| 2322 | 2332 | ||
| 2323 | 1993-06-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) | 2333 | 1993-06-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) |
| 2324 | 2334 | ||
| 2325 | Bring mumbleclean targets into conformance with GNU coding standards. | 2335 | Bring mumbleclean targets into conformance with GNU coding standards. |
| 2326 | * Makefile (distclean): Don't remove backup and autosave files. | 2336 | * Makefile (distclean): Don't remove backup and autosave files. |
| 2327 | These are easy to get rid of in other ways, and a pain to lose. | 2337 | These are easy to get rid of in other ways, and a pain to lose. |
| 2328 | (mostlyclean, realclean): New targets. | 2338 | (mostlyclean, realclean): New targets. |
| @@ -2345,7 +2355,7 @@ | |||
| 2345 | 2355 | ||
| 2346 | 1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) | 2356 | 1993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) |
| 2347 | 2357 | ||
| 2348 | * Version 19.7 released. | 2358 | * Version 19.7 released. |
| 2349 | 2359 | ||
| 2350 | 1993-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) | 2360 | 1993-05-19 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) |
| 2351 | 2361 | ||
| @@ -2366,7 +2376,7 @@ | |||
| 2366 | out of date. This file referenced LNEWS when it should have | 2376 | out of date. This file referenced LNEWS when it should have |
| 2367 | said news.texi; fixed. | 2377 | said news.texi; fixed. |
| 2368 | 2378 | ||
| 2369 | news.texi: invocation-name now exists. | 2379 | * news.texi: invocation-name now exists. |
| 2370 | 2380 | ||
| 2371 | 1993-03-27 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) | 2381 | 1993-03-27 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) |
| 2372 | 2382 | ||
| @@ -2386,7 +2396,7 @@ | |||
| 2386 | 2396 | ||
| 2387 | 1993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) | 2397 | 1993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) |
| 2388 | 2398 | ||
| 2389 | * MACHINES: Deleted some VMS caveats. If the src and lisp | 2399 | * MACHINES: Deleted some VMS caveats. If the src and lisp |
| 2390 | ChangeLogs are correct, dired and mail and process control are now | 2400 | ChangeLogs are correct, dired and mail and process control are now |
| 2391 | fully supported. | 2401 | fully supported. |
| 2392 | 2402 | ||
| @@ -2408,7 +2418,7 @@ | |||
| 2408 | I nuked it. Let the file mod date serve. Merged in APOLLO and | 2418 | I nuked it. Let the file mod date serve. Merged in APOLLO and |
| 2409 | SUNBUG files. Changed references to 18.* to past tense. | 2419 | SUNBUG files. Changed references to 18.* to past tense. |
| 2410 | 2420 | ||
| 2411 | * emacs.names: merged into JOKES. I faked a mail header from the | 2421 | * emacs.names: Merged into JOKES. I faked a mail header from the |
| 2412 | Unknown User to delimit the first (unheaded) bit. | 2422 | Unknown User to delimit the first (unheaded) bit. |
| 2413 | 2423 | ||
| 2414 | * Makefile (relock, unlock): New productions. | 2424 | * Makefile (relock, unlock): New productions. |
| @@ -2420,30 +2430,30 @@ | |||
| 2420 | the Emacs distribution, I have the following changes in the etc | 2430 | the Emacs distribution, I have the following changes in the etc |
| 2421 | directory: | 2431 | directory: |
| 2422 | 2432 | ||
| 2423 | * CHARACTERS: merged into TO-DO file under the heading "Long Range:" | 2433 | * CHARACTERS: Merged into TO-DO file under the heading "Long Range:" |
| 2424 | 2434 | ||
| 2425 | * DIFF, CCADIFF and GOSDIFF: merged into a new outline file titled | 2435 | * DIFF, CCADIFF, GOSDIFF: Merged into a new outline file titled |
| 2426 | OTHER.EMACSES. The present names don't really convey anything. | 2436 | OTHER.EMACSES. The present names don't really convey anything. |
| 2427 | Various key bindings and feature descriptions have been updated. | 2437 | Various key bindings and feature descriptions have been updated. |
| 2428 | 2438 | ||
| 2429 | * NICKLES.WORTH. Nuked. This is copyrighted material that could land | 2439 | * NICKLES.WORTH: Nuked. This is copyrighted material that could land |
| 2430 | FSF in hot water. | 2440 | FSF in hot water. |
| 2431 | 2441 | ||
| 2432 | * INTERVAL.IDEAS: Nuked. RMS's thinking, and indeed the | 2442 | * INTERVAL.IDEAS: Nuked. RMS's thinking, and indeed the |
| 2433 | implementation of intervals, have progressed way beyond this. | 2443 | implementation of intervals, have progressed way beyond this. |
| 2434 | 2444 | ||
| 2435 | * RCP: Nuked. It no longer said anything but "Ooops, sorry!" | 2445 | * RCP: Nuked. It no longer said anything but "Ooops, sorry!" |
| 2436 | 2446 | ||
| 2437 | * ED.WORSHIP, GNU.JOKES: merged into a mailbox called JOKES. | 2447 | * ED.WORSHIP, GNU.JOKES: Merged into a mailbox called JOKES. |
| 2438 | Future jokes can accumulate there. | 2448 | Future jokes can accumulate there. |
| 2439 | 2449 | ||
| 2440 | * DISTRIB: the actual domestic order form is now ORDERS.USA. | 2450 | * DISTRIB: The actual domestic order form is now ORDERS.USA. |
| 2441 | The DISTRIB text now mentions 19. | 2451 | The DISTRIB text now mentions 19. |
| 2442 | 2452 | ||
| 2443 | * ORDERS.USA: created. This is just the order form. DISTRIB | 2453 | * ORDERS.USA: Created. This is just the order form. DISTRIB |
| 2444 | has a pointer to it at the beginning. | 2454 | has a pointer to it at the beginning. |
| 2445 | 2455 | ||
| 2446 | * EUROPE: renamed to ORDERS.EUROPE. DISTRIB now has a pointer | 2456 | * EUROPE: Renamed to ORDERS.EUROPE. DISTRIB now has a pointer |
| 2447 | to it at the beginning. | 2457 | to it at the beginning. |
| 2448 | 2458 | ||
| 2449 | * OOOONEWS, OOOONEWS: Nuked. It's version 19 --- nobody needs the | 2459 | * OOOONEWS, OOOONEWS: Nuked. It's version 19 --- nobody needs the |
| @@ -2455,7 +2465,7 @@ | |||
| 2455 | 2465 | ||
| 2456 | 1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) | 2466 | 1993-03-17 Eric S. Raymond (eric@mole.gnu.ai.mit.edu) |
| 2457 | 2467 | ||
| 2458 | * XENIX: nuked (moved to =XENIX). The hackery it describes is | 2468 | * XENIX: Nuked (moved to =XENIX). The hackery it describes is |
| 2459 | no longer necessary in the presence of 19's function-key-map | 2469 | no longer necessary in the presence of 19's function-key-map |
| 2460 | feature; I've added an explanation to the beginning of the file. | 2470 | feature; I've added an explanation to the beginning of the file. |
| 2461 | 2471 | ||
| @@ -2560,7 +2570,7 @@ | |||
| 2560 | 2570 | ||
| 2561 | 1992-03-31 Jim Blandy (jimb@pogo.cs.oberlin.edu) | 2571 | 1992-03-31 Jim Blandy (jimb@pogo.cs.oberlin.edu) |
| 2562 | 2572 | ||
| 2563 | * lib-src/Makefile, etc/MACHINES, etc/NEWS: Changed references to | 2573 | * lib-src/Makefile, etc/MACHINES, etc/NEWS: Changed references to |
| 2564 | `config.emacs' to `configure'. | 2574 | `config.emacs' to `configure'. |
| 2565 | 2575 | ||
| 2566 | * lib-src/Makefile: Adjusted for renaming of share-lib to etc. | 2576 | * lib-src/Makefile: Adjusted for renaming of share-lib to etc. |
| @@ -2656,7 +2666,7 @@ | |||
| 2656 | * etags.c (C_entries): Process token before handling end of line. | 2666 | * etags.c (C_entries): Process token before handling end of line. |
| 2657 | When inner loops reach end of line, just back up. | 2667 | When inner loops reach end of line, just back up. |
| 2658 | Let the real end of line processing happen in just one place. | 2668 | Let the real end of line processing happen in just one place. |
| 2659 | (consider_token): Likewise. | 2669 | (consider_token): Likewise. |
| 2660 | 2670 | ||
| 2661 | 1991-04-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu) | 2671 | 1991-04-11 Jim Blandy (jimb@geech.gnu.ai.mit.edu) |
| 2662 | 2672 | ||
| @@ -2727,7 +2737,7 @@ | |||
| 2727 | 2737 | ||
| 2728 | 1990-08-30 David Lawrence (tale@pogo.ai.mit.edu) | 2738 | 1990-08-30 David Lawrence (tale@pogo.ai.mit.edu) |
| 2729 | 2739 | ||
| 2730 | * emacs.1: Add break before -nw option. | 2740 | * emacs.1: Add break before -nw option. |
| 2731 | 2741 | ||
| 2732 | 1990-08-19 David J. MacKenzie (djm@apple-gunkies) | 2742 | 1990-08-19 David J. MacKenzie (djm@apple-gunkies) |
| 2733 | 2743 | ||
| @@ -2769,7 +2779,7 @@ | |||
| 2769 | 2779 | ||
| 2770 | 1990-03-14 Joseph Arceneaux (jla@churchy.ai.mit.edu) | 2780 | 1990-03-14 Joseph Arceneaux (jla@churchy.ai.mit.edu) |
| 2771 | 2781 | ||
| 2772 | * etags.c (getit): Recognize '$' as beginning identifiers. | 2782 | * etags.c (getit): Recognize '$' as beginning identifiers. |
| 2773 | 2783 | ||
| 2774 | 1990-02-22 David Lawrence (tale@pogo.ai.mit.edu) | 2784 | 1990-02-22 David Lawrence (tale@pogo.ai.mit.edu) |
| 2775 | 2785 | ||
| @@ -2891,15 +2901,15 @@ | |||
| 2891 | 2901 | ||
| 2892 | 1989-04-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu) | 2902 | 1989-04-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu) |
| 2893 | 2903 | ||
| 2894 | * loadst.c: on bsd4.3, use gettimeofday instead of CPUSTATES. | 2904 | * loadst.c: On bsd4.3, use gettimeofday instead of CPUSTATES. |
| 2895 | 2905 | ||
| 2896 | 1989-03-15 Jeff Peck (rms@sugar-bombs.ai.mit.edu) | 2906 | 1989-03-15 Jeff Peck (rms@sugar-bombs.ai.mit.edu) |
| 2897 | 2907 | ||
| 2898 | * emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=. | 2908 | * emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=. |
| 2899 | 2909 | ||
| 2900 | * emacsstool.1: update to document environment variables. | 2910 | * emacsstool.1: Update to document environment variables. |
| 2901 | 2911 | ||
| 2902 | 1989-02-21 Mosur Mohan (email@notavailable) | 2912 | 1989-02-21 Mosur Mohan (email@notavailable) |
| 2903 | 2913 | ||
| 2904 | * etags.c (PAS_funcs): New function. | 2914 | * etags.c (PAS_funcs): New function. |
| 2905 | 2915 | ||
| @@ -2913,7 +2923,7 @@ | |||
| 2913 | 2923 | ||
| 2914 | 1989-02-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu) | 2924 | 1989-02-15 Richard Stallman (rms@sugar-bombs.ai.mit.edu) |
| 2915 | 2925 | ||
| 2916 | * etags.c: Prolog support from Sunichirou Sugou | 2926 | * etags.c: Prolog support from Sunichirou Sugou. |
| 2917 | 2927 | ||
| 2918 | 1989-02-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) | 2928 | 1989-02-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) |
| 2919 | 2929 | ||
| @@ -2926,7 +2936,7 @@ | |||
| 2926 | 1989-01-19 Sam Kendall (email@notavailable) | 2936 | 1989-01-19 Sam Kendall (email@notavailable) |
| 2927 | 2937 | ||
| 2928 | * etags.c: Greatly rewritten for C++ support and for multiple tags | 2938 | * etags.c: Greatly rewritten for C++ support and for multiple tags |
| 2929 | per line. | 2939 | per line. |
| 2930 | 2940 | ||
| 2931 | 1989-01-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) | 2941 | 1989-01-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) |
| 2932 | 2942 | ||
| @@ -2936,8 +2946,8 @@ | |||
| 2936 | 2946 | ||
| 2937 | 1988-12-31 Richard Mlynarik (mly@rice-chex.ai.mit.edu) | 2947 | 1988-12-31 Richard Mlynarik (mly@rice-chex.ai.mit.edu) |
| 2938 | 2948 | ||
| 2939 | * env.c: Add decl for my-index | 2949 | * env.c: Add decl for my-index. |
| 2940 | * etags.c (file-entries): .oak => scheme | 2950 | * etags.c (file-entries): .oak => scheme |
| 2941 | 2951 | ||
| 2942 | 1988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu) | 2952 | 1988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu) |
| 2943 | 2953 | ||
| @@ -2981,8 +2991,8 @@ | |||
| 2981 | 2991 | ||
| 2982 | 1988-11-29 Richard Mlynarik (mly@pickled-brain.ai.mit.edu) | 2992 | 1988-11-29 Richard Mlynarik (mly@pickled-brain.ai.mit.edu) |
| 2983 | 2993 | ||
| 2984 | * movemail.c: Better error message when can't create tempname. | 2994 | * movemail.c: Better error message when can't create tempname. |
| 2985 | This file needs a great deal of extra error-checking and lucid reporting... | 2995 | This file needs a great deal of extra error-checking and lucid reporting... |
| 2986 | 2996 | ||
| 2987 | 1988-11-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu) | 2997 | 1988-11-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu) |
| 2988 | 2998 | ||
| @@ -3000,7 +3010,7 @@ | |||
| 3000 | 3010 | ||
| 3001 | 1988-09-24 Richard Stallman (rms@gluteus.ai.mit.edu) | 3011 | 1988-09-24 Richard Stallman (rms@gluteus.ai.mit.edu) |
| 3002 | 3012 | ||
| 3003 | * etags.c (main): default setting of eflag was backwards. | 3013 | * etags.c (main): Default setting of eflag was backwards. |
| 3004 | 3014 | ||
| 3005 | 1988-09-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu) | 3015 | 1988-09-23 Richard Stallman (rms@sugar-bombs.ai.mit.edu) |
| 3006 | 3016 | ||
| @@ -3065,8 +3075,8 @@ | |||
| 3065 | 3075 | ||
| 3066 | 1988-05-13 Chris Hanson (cph@kleph) | 3076 | 1988-05-13 Chris Hanson (cph@kleph) |
| 3067 | 3077 | ||
| 3068 | * emacsclient.c: Delete references to unused variable `out'. This | 3078 | * emacsclient.c: Delete references to unused variable `out'. |
| 3069 | caused a bus error when used under hp-ux. | 3079 | This caused a bus error when used under hp-ux. |
| 3070 | 3080 | ||
| 3071 | 1988-05-06 Richard Stallman (rms@frosted-flakes.ai.mit.edu) | 3081 | 1988-05-06 Richard Stallman (rms@frosted-flakes.ai.mit.edu) |
| 3072 | 3082 | ||
| @@ -3083,7 +3093,7 @@ | |||
| 3083 | 1988-04-28 Richard Stallman (rms@frosted-flakes.ai.mit.edu) | 3093 | 1988-04-28 Richard Stallman (rms@frosted-flakes.ai.mit.edu) |
| 3084 | 3094 | ||
| 3085 | * movemail.c: #undef close, since config can #define it on V.3. | 3095 | * movemail.c: #undef close, since config can #define it on V.3. |
| 3086 | * emacsclient.c, fakemail.c, loadst.c, server.c: likewise. | 3096 | * emacsclient.c, fakemail.c, loadst.c, server.c: Likewise. |
| 3087 | 3097 | ||
| 3088 | 1988-04-26 Richard Stallman (rms@lucky-charms.ai.mit.edu) | 3098 | 1988-04-26 Richard Stallman (rms@lucky-charms.ai.mit.edu) |
| 3089 | 3099 | ||
| @@ -3094,9 +3104,9 @@ | |||
| 3094 | 3104 | ||
| 3095 | 1988-03-20 Richard M. Stallman (rms@wilson) | 3105 | 1988-03-20 Richard M. Stallman (rms@wilson) |
| 3096 | 3106 | ||
| 3097 | * server.c [not BSD and not HAVE_SYSVIPC]: fix error message. | 3107 | * server.c [not BSD and not HAVE_SYSVIPC]: Fix error message. |
| 3098 | 3108 | ||
| 3099 | * loadst.c (main) [XENIX]: use /usr/spool/mail, not /usr/mail. | 3109 | * loadst.c (main) [XENIX]: Use /usr/spool/mail, not /usr/mail. |
| 3100 | 3110 | ||
| 3101 | ;; Local Variables: | 3111 | ;; Local Variables: |
| 3102 | ;; coding: iso-2022-7bit | 3112 | ;; coding: iso-2022-7bit |
diff --git a/etc/DEVEL.HUMOR b/etc/DEVEL.HUMOR new file mode 100644 index 00000000000..94d86407dd4 --- /dev/null +++ b/etc/DEVEL.HUMOR | |||
| @@ -0,0 +1,138 @@ | |||
| 1 | ---------------- -*- mode: text; coding: utf-8; fill-column: 70 -*- -- | ||
| 2 | -- -- | ||
| 3 | -- Humor (sometimes unintended) on the Emacs developer's list -- | ||
| 4 | -- -- | ||
| 5 | ---------------------------------------------------------------------- | ||
| 6 | |||
| 7 | "Is it legal for a `struct interval' to have a total_length field of | ||
| 8 | zero?" | ||
| 9 | "We can't be arrested for it as far as I know, but it is definitely | ||
| 10 | invalid for an interval to have zero length." | ||
| 11 | -- Miles Bader and RMS | ||
| 12 | |||
| 13 | ---------------------------------------------------------------------- | ||
| 14 | |||
| 15 | Re: lost argument and doc string | ||
| 16 | |||
| 17 | I remember when I lost an argument. Boy did that hurt! ;-). | ||
| 18 | -- RMS | ||
| 19 | |||
| 20 | ---------------------------------------------------------------------- | ||
| 21 | |||
| 22 | "'Cowardly' is not an adverb, although it looks like one. It is an | ||
| 23 | adjective. It makes a statement about general temperament, rather | ||
| 24 | than a specific occasion. I don't think Emacs has a general | ||
| 25 | temperament." | ||
| 26 | "Mine does." | ||
| 27 | -- RMS and Eli Zaretskii | ||
| 28 | |||
| 29 | ---------------------------------------------------------------------- | ||
| 30 | |||
| 31 | "In order to bring the user's attention to the minibuffer when an | ||
| 32 | item such as 'Edit -> Search' is activated from the menu, I was just | ||
| 33 | thinking that we could draw a big rectangle around the minibuffer, | ||
| 34 | blinking (or zooming in-and-out) until some input is typed in." | ||
| 35 | "How about dancing elephants?" | ||
| 36 | "They don't fit in my office." | ||
| 37 | "Well once the elephants are done, your office will be much... | ||
| 38 | bigger." | ||
| 39 | -- Stefan Monnier, Miles Bader and Kai Grossjohann | ||
| 40 | |||
| 41 | ---------------------------------------------------------------------- | ||
| 42 | |||
| 43 | I remember these versions as yard-rocks (is that between inch-pebbles | ||
| 44 | and mile-stones?). | ||
| 45 | -- Kai Grossjohann | ||
| 46 | |||
| 47 | ---------------------------------------------------------------------- | ||
| 48 | |||
| 49 | "I think it depends on video drivers. I cannot reproduce it on my | ||
| 50 | home PC, but I can at work." | ||
| 51 | "Can you try to find a workaround at work? (I guess you don't need | ||
| 52 | a homearound at home. ;-)" | ||
| 53 | -- Jason Rumney and RMS | ||
| 54 | |||
| 55 | ---------------------------------------------------------------------- | ||
| 56 | |||
| 57 | By the way, I also really really hate this unibyte/multibyte problem. | ||
| 58 | Sometimes I think I should have opposed to the introduction of such a | ||
| 59 | concept more strongly. | ||
| 60 | |||
| 61 | imagine there's no unibyte | ||
| 62 | it's easy if you try | ||
| 63 | no bytes below us | ||
| 64 | above us only chars | ||
| 65 | imagine all the people living in multibyte | ||
| 66 | |||
| 67 | -- Kenichi Handa | ||
| 68 | |||
| 69 | ---------------------------------------------------------------------- | ||
| 70 | |||
| 71 | I try to uphold the ideals that I was taught to value as an American, | ||
| 72 | but every year I get less and less help from the United States. | ||
| 73 | -- RMS | ||
| 74 | |||
| 75 | ---------------------------------------------------------------------- | ||
| 76 | |||
| 77 | "If the terminfo entry is most likely wrong, and we know it, then it | ||
| 78 | doesn't make sense to follow it." | ||
| 79 | "Nevertheless, until now, we always did." | ||
| 80 | "So.... should we not fix old bugs?" | ||
| 81 | "Why fix an old bug if you can write three new ones in the same | ||
| 82 | time?" | ||
| 83 | -- Miles Bader, Eli Zaretskii and David Kastrup | ||
| 84 | |||
| 85 | ---------------------------------------------------------------------- | ||
| 86 | |||
| 87 | [...] As is well known, people who speak American English tend to | ||
| 88 | be more resource-conscious and try to avoid wasting precious bits | ||
| 89 | transferring those redundant "u"s. | ||
| 90 | Think of the number of occurrences of "color" and "behavior" in the | ||
| 91 | Emacs tarball, multiply that by the number of times it'll be | ||
| 92 | downloaded, stored on hard disks, archived, ...that's a substantial | ||
| 93 | saving. | ||
| 94 | -- Stefan Monnier | ||
| 95 | |||
| 96 | ---------------------------------------------------------------------- | ||
| 97 | |||
| 98 | Re: Parent of a derived mode's keymap. | ||
| 99 | |||
| 100 | "I can't decide whether the title of this thread is more fitting for | ||
| 101 | a blues song or a pulp fiction booklet. It certainly projects drama." | ||
| 102 | "Hey, it says derived, not deprived." | ||
| 103 | "Actually, for some keymaps 'depraved' would fit better." | ||
| 104 | "I knew it! You're one of them vi lovers! There is nothing wrong | ||
| 105 | with Emacs using escape, meta, alt, control, and shift!" | ||
| 106 | -- David Kastrup and Lute Kamstra | ||
| 107 | |||
| 108 | ---------------------------------------------------------------------- | ||
| 109 | |||
| 110 | "Aren't user-defined constants useful in other languages?" | ||
| 111 | "The only user-defined constant is ignorance. (With programmers, | ||
| 112 | this is a variable concept ;-)" | ||
| 113 | -- Juanma Barranquero and Thien-Thi Nguyen | ||
| 114 | |||
| 115 | ---------------------------------------------------------------------- | ||
| 116 | |||
| 117 | "Uh, 'archaic' and 'alive' is not a contradiction." | ||
| 118 | "Yes it is. 'Archaic' does not mean 'old' or 'early'. It means | ||
| 119 | 'obsolete'." | ||
| 120 | "'He arche' in Greek means 'the beginning'. John 1 starts off with | ||
| 121 | 'En arche en ho Logos': in the beginning, there was the word. Now of | ||
| 122 | course we all know that Emacs was there before Word, but this might | ||
| 123 | have escaped John's notice." | ||
| 124 | -- David Kastrup and RMS | ||
| 125 | |||
| 126 | ---------------------------------------------------------------------- | ||
| 127 | |||
| 128 | Re: patch for woman (woman-topic-at-point) | ||
| 129 | |||
| 130 | "Sorry for the long message. I wanted to make the problem clear | ||
| 131 | also for people not familiar with `woman'." | ||
| 132 | "Most hackers, I take? | ||
| 133 | For a moment there I thought you had a patch that you could put on | ||
| 134 | a woman, and it would make her come right to the topic at point | ||
| 135 | without attempting any course of action that requires an advance | ||
| 136 | course in divination. | ||
| 137 | There'd be quite a sensational market for that, you know." | ||
| 138 | -- Emilio Lopes and David Kastrup | ||
| @@ -983,6 +983,12 @@ Such individual settings are now preserved when windows are split | |||
| 983 | horizontally or vertically, a saved window configuration is restored, | 983 | horizontally or vertically, a saved window configuration is restored, |
| 984 | or when the frame is resized. | 984 | or when the frame is resized. |
| 985 | 985 | ||
| 986 | +++ | ||
| 987 | *** The %c and %l constructs are now ignored in frame-title-format. | ||
| 988 | Due to technical limitations in how Emacs interacts with windowing | ||
| 989 | systems, these constructs often failed to render properly, and could | ||
| 990 | even cause Emacs to crash. | ||
| 991 | |||
| 986 | ** Cursor display changes: | 992 | ** Cursor display changes: |
| 987 | 993 | ||
| 988 | +++ | 994 | +++ |
diff --git a/etc/TUTORIAL.bg b/etc/TUTORIAL.bg index 9cb97696772..bf6f0af8bd5 100644 --- a/etc/TUTORIAL.bg +++ b/etc/TUTORIAL.bg | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | Âúâåäåíèå â Emacs. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà. | 1 | Âúâåäåíèåòî íà Åìàêñ. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà. |
| 2 | 2 | ||
| 3 | Êîìàíäèòå íà Emacs íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà | 3 | Êîìàíäèòå íà Åìàêñ íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà |
| 4 | îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè | 4 | îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè |
| 5 | ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå | 5 | ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå |
| 6 | ñëåäíèòå ñúêðàùåíèÿ: | 6 | ñëåäíèòå ñúêðàùåíèÿ: |
| @@ -14,7 +14,7 @@ ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå | |||
| 14 | êëàâèøà ESC è ñëåä òîâà âúâåäåòå <çíàê>. Íèå | 14 | êëàâèøà ESC è ñëåä òîâà âúâåäåòå <çíàê>. Íèå |
| 15 | çàïèñâàìå <ESC>, çà äà îòáåëåæèì êëàâèøà ESC. | 15 | çàïèñâàìå <ESC>, çà äà îòáåëåæèì êëàâèøà ESC. |
| 16 | 16 | ||
| 17 | Âàæíà áåëåæêà: â êðàÿ íà Emacs ñåñèÿòà âúâåäåòå äâàòà çíàêà C-x C-c. | 17 | Âàæíà áåëåæêà: â êðàÿ íà Åìàêñ ñåñèÿòà âúâåäåòå äâàòà çíàêà C-x C-c. |
| 18 | Çíàöèòå ">>" îòëÿâî âè äàâàò óêàçàíèå äà èçïúëíèòå êîìàíäà. Íàïðèìåð: | 18 | Çíàöèòå ">>" îòëÿâî âè äàâàò óêàçàíèå äà èçïúëíèòå êîìàíäà. Íàïðèìåð: |
| 19 | <<Blank lines inserted here by startup of help-with-tutorial>> | 19 | <<Blank lines inserted here by startup of help-with-tutorial>> |
| 20 | >> Ñåãà âúâåäåòå C-v (Ïîêàæè ñëåäâàùèÿ åêðàí), çà äà ñå ïðèäâèæèòå êúì | 20 | >> Ñåãà âúâåäåòå C-v (Ïîêàæè ñëåäâàùèÿ åêðàí), çà äà ñå ïðèäâèæèòå êúì |
| @@ -92,7 +92,7 @@ Next (ñëåäâàù), B çà Backward (íàçàä) è F çà Forward (íàïðåä). Âèå ùå | |||
| 92 | 92 | ||
| 93 | Âñåêè ðåä îò òåêñò çàâúðøâà ñúñ çíàê çà íîâ ðåä, êîéòî ñëóæè çà | 93 | Âñåêè ðåä îò òåêñò çàâúðøâà ñúñ çíàê çà íîâ ðåä, êîéòî ñëóæè çà |
| 94 | îòäåëÿíåòî íà ðåäà îò ñëåäâàùèÿ ðåä. Ïîñëåäíèÿò ðåä âúâ âàøèÿ ôàéë | 94 | îòäåëÿíåòî íà ðåäà îò ñëåäâàùèÿ ðåä. Ïîñëåäíèÿò ðåä âúâ âàøèÿ ôàéë |
| 95 | òðÿáâà äà èìà çíàê çà íîâ ðåä â êðàÿ (íî Emacs íå èçèñêâà òàêúâ, | 95 | òðÿáâà äà èìà çíàê çà íîâ ðåä â êðàÿ (íî Åìàêñ íå èçèñêâà òàêúâ, |
| 96 | êîãàòî ïðî÷èòà ôàéëà). | 96 | êîãàòî ïðî÷èòà ôàéëà). |
| 97 | 97 | ||
| 98 | >> Îïèòàéòå C-b â íà÷àëîòî íà ðåä. Òîâà òðÿáâà äà âè ïðèäâèæè â êðàÿ | 98 | >> Îïèòàéòå C-b â íà÷àëîòî íà ðåä. Òîâà òðÿáâà äà âè ïðèäâèæè â êðàÿ |
| @@ -108,7 +108,7 @@ C-f ìîæå äà ïðèäâèæâà ïðåç çíàê çà íîâ ðåä òî÷íî êàêòî C-b. | |||
| 108 | 108 | ||
| 109 | Êîãàòî ñå ïðèäâèæâàòå ñëåä ãîðíèÿ èëè äîëíèÿ êðàé íà åêðàíà, òåêñòúò | 109 | Êîãàòî ñå ïðèäâèæâàòå ñëåä ãîðíèÿ èëè äîëíèÿ êðàé íà åêðàíà, òåêñòúò |
| 110 | îòâúä êðàÿ ñå èçìåñòâà êúì åêðàíà. Òîâà ñå íàðè÷à "ñêðîëèðàíå". Òî | 110 | îòâúä êðàÿ ñå èçìåñòâà êúì åêðàíà. Òîâà ñå íàðè÷à "ñêðîëèðàíå". Òî |
| 111 | ïîçâîëÿâà íà Emacs äà ïðèäâèæâà êóðñîðà êúì çàäàäåíîòî ìÿñòî â òåêñòà, | 111 | ïîçâîëÿâà íà Åìàêñ äà ïðèäâèæâà êóðñîðà êúì çàäàäåíîòî ìÿñòî â òåêñòà, |
| 112 | áåç äà ãî èçêàðâà èçâúí åêðàíà. | 112 | áåç äà ãî èçêàðâà èçâúí åêðàíà. |
| 113 | 113 | ||
| 114 | >> Îïèòàéòå ñå äà ïðèäâèæèòå êóðñîðà ñëåä äîëíèÿ êðàé íà åêðàíà ñ C-n | 114 | >> Îïèòàéòå ñå äà ïðèäâèæèòå êóðñîðà ñëåä äîëíèÿ êðàé íà åêðàíà ñ C-n |
| @@ -191,7 +191,7 @@ Shift áèõòå âúâåëè M-çàïåòàÿ. | |||
| 191 | Âèå ìîæåòå ñúùî äà ñå ïðèäâèæâàòå ñ êëàâèøèòå-ñòðåëêè, àêî âàøèÿò | 191 | Âèå ìîæåòå ñúùî äà ñå ïðèäâèæâàòå ñ êëàâèøèòå-ñòðåëêè, àêî âàøèÿò |
| 192 | òåðìèíàë èìà òàêèâà. Íèå ïðåïîðú÷âàìå äà íàó÷èòå C-b, C-f, C-n è C-p | 192 | òåðìèíàë èìà òàêèâà. Íèå ïðåïîðú÷âàìå äà íàó÷èòå C-b, C-f, C-n è C-p |
| 193 | ïî òðè ïðè÷èíè. Ïúðâî, òå ðàáîòÿò íà âñè÷êè âèäîâå òåðìèíàëè. Âòîðî, | 193 | ïî òðè ïðè÷èíè. Ïúðâî, òå ðàáîòÿò íà âñè÷êè âèäîâå òåðìèíàëè. Âòîðî, |
| 194 | âåäíúæ ñëåä êàòî äîáèåòå ïðàêòèêà â èçïîëçâàíåòî íà Emacs, ùå | 194 | âåäíúæ ñëåä êàòî äîáèåòå ïðàêòèêà â èçïîëçâàíåòî íà Åìàêñ, ùå |
| 195 | îòêðèåòå, ÷å âúâåæäàíåòî íà òåçè Control-çíàöè å ïî-áúðçî îò | 195 | îòêðèåòå, ÷å âúâåæäàíåòî íà òåçè Control-çíàöè å ïî-áúðçî îò |
| 196 | âúâåæäàíåòî íà êëàâèøèòå ñòðåëêè, çàùîòî íå òðÿáâà äà ïðåìåñòâàòå | 196 | âúâåæäàíåòî íà êëàâèøèòå ñòðåëêè, çàùîòî íå òðÿáâà äà ïðåìåñòâàòå |
| 197 | ðúêàòà ñè äàëå÷ îò îáëàñòòà íà êëàâèøèòå ñ áóêâè. Òðåòî, âåäíúæ ñëåä | 197 | ðúêàòà ñè äàëå÷ îò îáëàñòòà íà êëàâèøèòå ñ áóêâè. Òðåòî, âåäíúæ ñëåä |
| @@ -199,7 +199,7 @@ Shift áèõòå âúâåëè M-çàïåòàÿ. | |||
| 199 | ìîæåòå ñúùî òàêà ëåñíî äà íàó÷èòå ïî-íàïðåäíàëèòå êîìàíäè çà äâèæåíèå | 199 | ìîæåòå ñúùî òàêà ëåñíî äà íàó÷èòå ïî-íàïðåäíàëèòå êîìàíäè çà äâèæåíèå |
| 200 | íà êóðñîðà. | 200 | íà êóðñîðà. |
| 201 | 201 | ||
| 202 | Ïîâå÷åòî Emacs êîìàíäè ïðèåìàò ÷èñëîâ àðãóìåíò; çà ïîâå÷åòî îò òÿõ òîé | 202 | Ïîâå÷åòî Åìàêñ êîìàíäè ïðèåìàò ÷èñëîâ àðãóìåíò; çà ïîâå÷åòî îò òÿõ òîé |
| 203 | ñëóæè êàòî áðîÿ÷ íà ïîâòîðåíèÿ. Íà÷èíúò, ïî êîéòî äàâàòå ÷èñëîâ | 203 | ñëóæè êàòî áðîÿ÷ íà ïîâòîðåíèÿ. Íà÷èíúò, ïî êîéòî äàâàòå ÷èñëîâ |
| 204 | áðîÿ÷, å ñ âúâåæäàíå íà C-u, ïîñëåäâàíî îò âúâåæäàíå íà öèôðèòå, è | 204 | áðîÿ÷, å ñ âúâåæäàíå íà C-u, ïîñëåäâàíî îò âúâåæäàíå íà öèôðèòå, è |
| 205 | âñè÷êî òîâà ïðåäè âúâåæäàíå íà ñàìàòà êîìàíäà. Àêî èìàòå êëàâèø META | 205 | âñè÷êî òîâà ïðåäè âúâåæäàíå íà ñàìàòà êîìàíäà. Àêî èìàòå êëàâèø META |
| @@ -231,7 +231,7 @@ C-v è M-v ñà äðóã âèä èçêëþ÷åíèå. Êîãàòî èì å äàäåí àðãóìåíò, òå | |||
| 231 | 231 | ||
| 232 | Àêî èçïîëçâàòå ãðàôè÷åí èíòåðôåéñ, êàòî X11 èëè MS-Windows, áè | 232 | Àêî èçïîëçâàòå ãðàôè÷åí èíòåðôåéñ, êàòî X11 èëè MS-Windows, áè |
| 233 | òðÿáâàëî äà èìà òúíêà ïðàâîúãúëíà îáëàñò, íàðå÷åíà ïëúçãà÷ (scroll | 233 | òðÿáâàëî äà èìà òúíêà ïðàâîúãúëíà îáëàñò, íàðå÷åíà ïëúçãà÷ (scroll |
| 234 | bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Emacs. Âèå ìîæåòå äà ñêðîëèðàòå | 234 | bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå |
| 235 | òåêñòà, ùðàêàéêè ñ ìèøêàòà â ïëúçãà÷à. | 235 | òåêñòà, ùðàêàéêè ñ ìèøêàòà â ïëúçãà÷à. |
| 236 | 236 | ||
| 237 | >> Îïèòàéòå äà íàòèñíåòå ñðåäíèÿ áóòîí íà âúðõà íà îñâåòåíàòà îáëàñò | 237 | >> Îïèòàéòå äà íàòèñíåòå ñðåäíèÿ áóòîí íà âúðõà íà îñâåòåíàòà îáëàñò |
| @@ -243,10 +243,10 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Emacs. Âèå ìîæåòå äà ñêðîëèðàòå | |||
| 243 | íàãîðå è íàäîëó, êàòî äâèæèòå ìèøêàòà. | 243 | íàãîðå è íàäîëó, êàòî äâèæèòå ìèøêàòà. |
| 244 | 244 | ||
| 245 | 245 | ||
| 246 | * ÊÎÃÀÒÎ EMACS Å ÁËÎÊÈÐÀË | 246 | * ÊÎÃÀÒÎ ÅÌÀÊÑ Å ÁËÎÊÈÐÀË |
| 247 | ------------------------- | 247 | ------------------------- |
| 248 | 248 | ||
| 249 | Àêî Emacs ñïðå äà îòãîâàðÿ íà âàøèòå êîìàíäè, âèå ìîæåòå äà ãî ñïðåòå | 249 | Àêî Åìàêñ ñïðå äà îòãîâàðÿ íà âàøèòå êîìàíäè, âèå ìîæåòå äà ãî ñïðåòå |
| 250 | áåçîïàñíî, êàòî âúâåäåòå C-g. Ìîæå äà èçïîëçâàòå C-g, çà äà ñïðåòå | 250 | áåçîïàñíî, êàòî âúâåäåòå C-g. Ìîæå äà èçïîëçâàòå C-g, çà äà ñïðåòå |
| 251 | êîìàíäà, êîÿòî ñå èçïúëíÿâà òâúðäå äúëãî. | 251 | êîìàíäà, êîÿòî ñå èçïúëíÿâà òâúðäå äúëãî. |
| 252 | 252 | ||
| @@ -263,15 +263,15 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Emacs. Âèå ìîæåòå äà ñêðîëèðàòå | |||
| 263 | * ÇÀÁÐÀÍÅÍÈ ÊÎÌÀÍÄÈ | 263 | * ÇÀÁÐÀÍÅÍÈ ÊÎÌÀÍÄÈ |
| 264 | ------------------- | 264 | ------------------- |
| 265 | 265 | ||
| 266 | Íÿêîè êîìàíäè íà Emacs ñà "çàáðàíåíè", òàêà ÷å íà÷èíàåùèòå ïîòðåáèòåëè | 266 | Íÿêîè êîìàíäè íà Åìàêñ ñà "çàáðàíåíè", òàêà ÷å íà÷èíàåùèòå ïîòðåáèòåëè |
| 267 | äà íå ìîãàò äà ãè óïîòðåáÿò ïî ïîãðåøêà. | 267 | äà íå ìîãàò äà ãè óïîòðåáÿò ïî ïîãðåøêà. |
| 268 | 268 | ||
| 269 | Àêî âúâåäåòå íÿêîÿ îò çàáðàíåíèòå êîìàíäè, Emacs èçâåæäà ñúîáùåíèå, | 269 | Àêî âúâåäåòå íÿêîÿ îò çàáðàíåíèòå êîìàíäè, Åìàêñ èçâåæäà ñúîáùåíèå, |
| 270 | êàçâàéêè êàêâà å áèëà êîìàíäàòà è ïèòàéêè âè äàëè èñêàòå äà ïðîäúëæèòå | 270 | êàçâàéêè êàêâà å áèëà êîìàíäàòà è ïèòàéêè âè äàëè èñêàòå äà ïðîäúëæèòå |
| 271 | íàïðåä è äà èçïúëíèòå êîìàíäàòà. | 271 | íàïðåä è äà èçïúëíèòå êîìàíäàòà. |
| 272 | 272 | ||
| 273 | Àêî íàèñòèíà èñêàòå äà èçïðîáâàòå êîìàíäàòà, âúâåäåòå <SPC> (êëàâèøà | 273 | Àêî íàèñòèíà èñêàòå äà èçïðîáâàòå êîìàíäàòà, âúâåäåòå êëàâèøà èíòåðâàë |
| 274 | èíòåðâàë) â îòãîâîð íà âúïðîñà. Îáèêíîâåíî àêî íå èñêàòå äà èçïúëíèòå | 274 | â îòãîâîð íà âúïðîñà. Îáèêíîâåíî àêî íå èñêàòå äà èçïúëíèòå |
| 275 | çàáðàíåíàòà êîìàíäà, îòãîâàðÿòå íà âúïðîñà ñ "n". | 275 | çàáðàíåíàòà êîìàíäà, îòãîâàðÿòå íà âúïðîñà ñ "n". |
| 276 | 276 | ||
| 277 | >> Âúâåäåòå C-x C-l (êîÿòî å çàáðàíåíà êîìàíäà), è ñëåä òîâà âúâåäåòå | 277 | >> Âúâåäåòå C-x C-l (êîÿòî å çàáðàíåíà êîìàíäà), è ñëåä òîâà âúâåäåòå |
| @@ -281,7 +281,7 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Emacs. Âèå ìîæåòå äà ñêðîëèðàòå | |||
| 281 | * ÏÐÎÇÎÐÖÈ | 281 | * ÏÐÎÇÎÐÖÈ |
| 282 | ---------- | 282 | ---------- |
| 283 | 283 | ||
| 284 | Emacs ìîæå äà óïðàâëÿâà íÿêîëêî ïðîçîðåöà, âñåêè èçâåæäàéêè ñâîé | 284 | Åìàêñ ìîæå äà óïðàâëÿâà íÿêîëêî ïðîçîðåöà, âñåêè èçâåæäàéêè ñâîé |
| 285 | ñîáñòâåí òåêñò. Íèå ùå îáÿñíèì ïî-êúñíî êàê äà èçïîëçâàòå íÿêîëêî | 285 | ñîáñòâåí òåêñò. Íèå ùå îáÿñíèì ïî-êúñíî êàê äà èçïîëçâàòå íÿêîëêî |
| 286 | ïðîçîðåöà. Òî÷íî ñåãà íèå èñêàìå äà îáÿñíèì êàê äà ñå îòúðâåòå îò | 286 | ïðîçîðåöà. Òî÷íî ñåãà íèå èñêàìå äà îáÿñíèì êàê äà ñå îòúðâåòå îò |
| 287 | äîïúëíèòåëíè ïðîçîðöè è äà ñå âúðíåòå êúì îñíîâíîòî ðåäàêòèðàíå ñ åäèí | 287 | äîïúëíèòåëíè ïðîçîðöè è äà ñå âúðíåòå êúì îñíîâíîòî ðåäàêòèðàíå ñ åäèí |
| @@ -311,13 +311,13 @@ Emacs ìîæå äà óïðàâëÿâà íÿêîëêî ïðîçîðåöà, âñåêè èçâåæäàéêè ñâîé | |||
| 311 | ---------------------- | 311 | ---------------------- |
| 312 | 312 | ||
| 313 | Àêî èñêàòå äà âìúêíåòå òåêñò, ïðîñòî ãî âúâåäåòå. Çíàöèòå, êîèòî | 313 | Àêî èñêàòå äà âìúêíåòå òåêñò, ïðîñòî ãî âúâåäåòå. Çíàöèòå, êîèòî |
| 314 | ìîãàò äà ñå âèæäàò, êàòî À, 7, * è ò.í., ñå âúçïðèåìàò îò Emacs êàòî | 314 | ìîãàò äà ñå âèæäàò, êàòî À, 7, * è ò.í., ñå âúçïðèåìàò îò Åìàêñ êàòî |
| 315 | òåêñò è ñå âìúêâàò âåäíàãà. Âúâåäåòå <Return> (êëàâèøúò çà âðúùàíå â | 315 | òåêñò è ñå âìúêâàò âåäíàãà. Âúâåäåòå <Return> (êëàâèøúò çà âðúùàíå â |
| 316 | íà÷àëîòî íà ðåäà), çà äà âìúêíåòå çíàê çà íîâ ðåä. | 316 | íà÷àëîòî íà ðåäà), çà äà âìúêíåòå çíàê çà íîâ ðåä. |
| 317 | 317 | ||
| 318 | Ìîæå äà èçòðèåòå ïîñëåäíèÿ çíàê, êîéòî ñòå âúâåëè, ñ âúâåæäàíå íà | 318 | Ìîæå äà èçòðèåòå ïîñëåäíèÿ çíàê, êîéòî ñòå âúâåëè, ñ âúâåæäàíå íà |
| 319 | <Delback>. <Delback> å êëàâèø îò êëàâèàòóðàòà -- ñúùèÿò, êîéòî | 319 | <Delback>. <Delback> å êëàâèø îò êëàâèàòóðàòà -- ñúùèÿò, êîéòî |
| 320 | îáèêíîâåíî èçïîëçâàòå èçâúí Emacs, çà äà èçòðèåòå ïîñëåäíèÿ âúâåäåí îò | 320 | îáèêíîâåíî èçïîëçâàòå èçâúí Åìàêñ, çà äà èçòðèåòå ïîñëåäíèÿ âúâåäåí îò |
| 321 | âàñ çíàê. Îáèêíîâåíî å ãîëÿì êëàâèø, íà íÿêîëêî ðåäà ðàçñòîÿíèå îò | 321 | âàñ çíàê. Îáèêíîâåíî å ãîëÿì êëàâèø, íà íÿêîëêî ðåäà ðàçñòîÿíèå îò |
| 322 | êëàâèøà <Return>, è îáèêíîâåíî å îòáåëÿçàí ñ "Delete", "Del" èëè | 322 | êëàâèøà <Return>, è îáèêíîâåíî å îòáåëÿçàí ñ "Delete", "Del" èëè |
| 323 | "Backspace". | 323 | "Backspace". |
| @@ -357,24 +357,24 @@ Emacs ìîæå äà óïðàâëÿâà íÿêîëêî ïðîçîðåöà, âñåêè èçâåæäàéêè ñâîé | |||
| 357 | >> Âúâåäåòå <Return>, çà äà âìúêíåòå íàíîâî çíàêà çà íîâ ðåä, êîéòî | 357 | >> Âúâåäåòå <Return>, çà äà âìúêíåòå íàíîâî çíàêà çà íîâ ðåä, êîéòî |
| 358 | èçòðèõòå. | 358 | èçòðèõòå. |
| 359 | 359 | ||
| 360 | Çàïîìíåòå, ÷å íà ïîâå÷åòî êîìàíäè íà Emacs ìîæå äà áúäå çàäàäåí áðîÿ÷ | 360 | Çàïîìíåòå, ÷å íà ïîâå÷åòî êîìàíäè íà Åìàêñ ìîæå äà áúäå çàäàäåí áðîÿ÷ |
| 361 | íà ïîâòîðåíèÿòà; òîâà âêëþ÷âà âìúêâàíåòî íà òåêñòîâè çíàöè. | 361 | íà ïîâòîðåíèÿòà; òîâà âêëþ÷âà âìúêâàíåòî íà òåêñòîâè çíàöè. |
| 362 | Ïîâòàðÿíåòî íà òåêñòîâ çíàê ãî âìúêâà íÿêîëêî ïúòè. | 362 | Ïîâòàðÿíåòî íà òåêñòîâ çíàê ãî âìúêâà íÿêîëêî ïúòè. |
| 363 | 363 | ||
| 364 | >> Îïèòàéòå òîâà ñåãà -- âúâåäåòå C-u 8 *, çà äà âìúêíåòå ********. | 364 | >> Îïèòàéòå òîâà ñåãà -- âúâåäåòå C-u 8 *, çà äà âìúêíåòå ********. |
| 365 | 365 | ||
| 366 | Ñåãà âèå ñòå íàó÷èëè íàé-îñíîâíèòå íà÷èíè çà âúâåæäàíå íà íåùî â Emacs | 366 | Ñåãà âèå ñòå íàó÷èëè íàé-îñíîâíèòå íà÷èíè çà âúâåæäàíå íà íåùî â Åìàêñ |
| 367 | è ïîïðàâÿíå íà ãðåøêè. Ìîæåòå ñúùî òàêà äà èçòðèâàòå äóìè èëè ðåäîâå. | 367 | è ïîïðàâÿíå íà ãðåøêè. Ìîæåòå ñúùî òàêà äà èçòðèâàòå äóìè èëè ðåäîâå. |
| 368 | Åòî îáîáùåíèå íà èçòðèâàùèòå äåéñòâèÿ: | 368 | Åòî îáîáùåíèå íà èçòðèâàùèòå äåéñòâèÿ: |
| 369 | 369 | ||
| 370 | <Delback> Èçòðèâàíå íà çíàêà òî÷íî ïðåäè êóðñîðà | 370 | <Delback> èçòðèâàíå íà çíàêà òî÷íî ïðåäè êóðñîðà |
| 371 | C-d Èçòðèâàíå íà çíàêà òî÷íî ñëåä êóðñîðà | 371 | C-d èçòðèâàíå íà çíàêà òî÷íî ñëåä êóðñîðà |
| 372 | 372 | ||
| 373 | M-<Delback> Èçòðèâàíå íà äóìàòà íåïîñðåäñòâåíî ïðåäè êóðñîðà | 373 | M-<Delback> èçòðèâàíå íà äóìàòà íåïîñðåäñòâåíî ïðåäè êóðñîðà |
| 374 | M-d Èçòðèâàíå íà äóìàòà ñëåä êóðñîðà | 374 | M-d èçòðèâàíå íà äóìàòà ñëåä êóðñîðà |
| 375 | 375 | ||
| 376 | C-k Èçòðèâàíå îò ìÿñòîòî íà êóðñîðà äî êðàÿ íà ðåäà | 376 | C-k èçòðèâàíå îò ìÿñòîòî íà êóðñîðà äî êðàÿ íà ðåäà |
| 377 | M-k Èçòðèâàíå äî êðàÿ íà òåêóùîòî èçðå÷åíèå | 377 | M-k èçòðèâàíå äî êðàÿ íà òåêóùîòî èçðå÷åíèå |
| 378 | 378 | ||
| 379 | Çàáåëåæåòå, ÷å <Delback> è C-d, ñðàâíåíè ñ M-<Delback> è M-d, | 379 | Çàáåëåæåòå, ÷å <Delback> è C-d, ñðàâíåíè ñ M-<Delback> è M-d, |
| 380 | ðàçøèðÿâàò ïîäîáèåòî, çàïî÷íàòî îò C-f è M-f (äîáðå, <Delback> íå å | 380 | ðàçøèðÿâàò ïîäîáèåòî, çàïî÷íàòî îò C-f è M-f (äîáðå, <Delback> íå å |
| @@ -384,12 +384,12 @@ M-k ñà ïîäîáíè íà C-e è M-e â ñìèñúë, ÷å åäíèòå ñà çà ðåäîâå, à | |||
| 384 | 384 | ||
| 385 | Ìîæåòå ñúùî äà ïðåìàõíåòå âñÿêà ÷àñò îò áóôåðà ñ åäèí óíèâåðñàëåí | 385 | Ìîæåòå ñúùî äà ïðåìàõíåòå âñÿêà ÷àñò îò áóôåðà ñ åäèí óíèâåðñàëåí |
| 386 | íà÷èí. Ïðèäâèæåòå ñå äî åäèíèÿ êðàé íà ÷àñòòà è âúâåäåòå C-@ èëè | 386 | íà÷èí. Ïðèäâèæåòå ñå äî åäèíèÿ êðàé íà ÷àñòòà è âúâåäåòå C-@ èëè |
| 387 | C-<SPC> (êîåòî è äà å îò äâåòå). (<SPC> å êëàâèøúò èíòåðâàë.) | 387 | C-èíòåðâàë (êîåòî è äà å îò äâåòå). Ïðèäâèæåòå ñå äî äðóãèÿ êðàé íà |
| 388 | Ïðèäâèæåòå ñå äî äðóãèÿ êðàé íà ÷àñòòà è âúâåäåòå C-w. Òîâà ùå èçðåæå | 388 | ÷àñòòà è âúâåäåòå C-w. Òîâà ùå èçðåæå öåëèÿ òåêñò ìåæäó òåçè äâà |
| 389 | öåëèÿ òåêñò ìåæäó òåçè äâà êðàÿ. | 389 | êðàÿ. |
| 390 | 390 | ||
| 391 | >> Ïðèäâèæåòå êóðñîðà äî çíàêà "Ì" â íà÷àëîòî íà ïðåäèøíèÿ àáçàö. | 391 | >> Ïðèäâèæåòå êóðñîðà äî çíàêà "Ì" â íà÷àëîòî íà ïðåäèøíèÿ àáçàö. |
| 392 | >> Âúâåäåòå C-<SPC>. Emacs òðÿáâà äà èçâåäå ñúîáùåíèå "Mark set" â | 392 | >> Âúâåäåòå C-èíòåðâàë. Åìàêñ òðÿáâà äà èçâåäå ñúîáùåíèå "Mark set" â |
| 393 | äîëíèÿ êðàé íà åêðàíà. | 393 | äîëíèÿ êðàé íà åêðàíà. |
| 394 | >> Ïðèäâèæåòå êóðñîðà äî áóêâàòà "ð" â "êðàé" íà âòîðèÿ ðåä îò àáçàöà. | 394 | >> Ïðèäâèæåòå êóðñîðà äî áóêâàòà "ð" â "êðàé" íà âòîðèÿ ðåä îò àáçàöà. |
| 395 | >> Âúâåäåòå C-w. Òîâà ùå èçðåæå òåêñòà, çàïî÷âàù îò "Ì" è çàâúðøâàù | 395 | >> Âúâåäåòå C-w. Òîâà ùå èçðåæå òåêñòà, çàïî÷âàù îò "Ì" è çàâúðøâàù |
| @@ -419,9 +419,9 @@ C-k îáðàáîòâà ÷èñëîâèòå àðãóìåíòè ïî ñïåöèàëåí íà÷èí: ïðåìàõâàò ñå | |||
| 419 | Âðúùàíåòî îáðàòíî íà òåêñò ñå íàðè÷à "âìúêâàíå". (Ìèñëåòå çà íåãî | 419 | Âðúùàíåòî îáðàòíî íà òåêñò ñå íàðè÷à "âìúêâàíå". (Ìèñëåòå çà íåãî |
| 420 | êàòî çà èçâàæäàíå îáðàòíî, èëè äðúïâàíå îáðàòíî, íà òåêñò, êîéòî å áèë | 420 | êàòî çà èçâàæäàíå îáðàòíî, èëè äðúïâàíå îáðàòíî, íà òåêñò, êîéòî å áèë |
| 421 | èçðÿçàí.) Ìîæåòå äà âìúêâàòå èçðÿçàíèÿ òåêñò èëè íà ñúùîòî ìÿñòî, | 421 | èçðÿçàí.) Ìîæåòå äà âìúêâàòå èçðÿçàíèÿ òåêñò èëè íà ñúùîòî ìÿñòî, |
| 422 | îòêúäåòî å áèë ïðåìàõíàò, èëè íà äðóãî ìÿñòî â ðåäàêòèðàíèÿ òåêñò, | 422 | îòêúäåòî å áèë ïðåìàõíàò, èëè íà äðóãî ìÿñòî â áóôåðà, äàæå è â |
| 423 | äàæå è â ðàçëè÷åí ôàéë. Ìîæåòå äà âìúêâàòå åäèí è ñúù òåêñò íÿêîëêî | 423 | ðàçëè÷åí ôàéë. Ìîæåòå äà âìúêâàòå åäèí è ñúù òåêñò íÿêîëêî ïúòè; òîâà |
| 424 | ïúòè; òîâà ïðàâè íÿêîëêî êîïèÿ îò íåãî. | 424 | ïðàâè íÿêîëêî êîïèÿ îò íåãî. |
| 425 | 425 | ||
| 426 | Êîìàíäàòà çà âìúêâàíå å C-y. Òÿ âìúêâà íàíîâî ïîñëåäíèÿ èçðÿçàí òåêñò | 426 | Êîìàíäàòà çà âìúêâàíå å C-y. Òÿ âìúêâà íàíîâî ïîñëåäíèÿ èçðÿçàí òåêñò |
| 427 | â òåêóùîòî ìÿñòî íà êóðñîðà. | 427 | â òåêóùîòî ìÿñòî íà êóðñîðà. |
| @@ -500,25 +500,25 @@ C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå. | |||
| 500 | --------- | 500 | --------- |
| 501 | 501 | ||
| 502 | Çà äà íàïðàâèòå òåêñòà, êîéòî ðåäàêòèðàòå, ïîñòîÿíåí, òðÿáâà äà ãî | 502 | Çà äà íàïðàâèòå òåêñòà, êîéòî ðåäàêòèðàòå, ïîñòîÿíåí, òðÿáâà äà ãî |
| 503 | ñëîæèòå âúâ ôàéë.  ïðîòèâåí ñëó÷àé òîé ùå èç÷åçíå, êîãàòî Emacs | 503 | ñëîæèòå âúâ ôàéë.  ïðîòèâåí ñëó÷àé òîé ùå èç÷åçíå, êîãàòî Åìàêñ |
| 504 | ïðèêëþ÷è. Çà äà ñëîæèòå âàøèÿ òåêñò âúâ ôàéë, òðÿáâà äà "íàìåðèòå" | 504 | ïðèêëþ÷è. Çà äà ñëîæèòå âàøèÿ òåêñò âúâ ôàéë, òðÿáâà äà "íàìåðèòå" |
| 505 | ôàéëà ïðåäè äà âúâåæäàòå òåêñò. (Òîâà ñúùî ñå íàðè÷à "ïîñåùàâàíå" íà | 505 | ôàéëà ïðåäè äà âúâåæäàòå òåêñò. (Òîâà ñúùî ñå íàðè÷à "ïîñåùàâàíå" íà |
| 506 | ôàéëà.) | 506 | ôàéëà.) |
| 507 | 507 | ||
| 508 | Íàìèðàíå íà ôàéë îçíà÷àâà, ÷å âèæäàòå ñúäúðæàíèåòî ìó â Emacs.  | 508 | Íàìèðàíå íà ôàéë îçíà÷àâà, ÷å âèæäàòå ñúäúðæàíèåòî ìó â Åìàêñ.  |
| 509 | ìíîãî ñëó÷àè òîâà å êàòî äà ðåäàêòèðàòå ñàìèÿ ôàéë. Îáà÷å ïðîìåíèòå, | 509 | ìíîãî ñëó÷àè òîâà å êàòî äà ðåäàêòèðàòå ñàìèÿ ôàéë. Îáà÷å ïðîìåíèòå, |
| 510 | êîèòî ïðàâèòå, èçïîëçâàéêè Emacs, íå îñòàâàò ïîñòîÿííè, äîêàòî íå | 510 | êîèòî ïðàâèòå, èçïîëçâàéêè Åìàêñ, íå îñòàâàò ïîñòîÿííè, äîêàòî íå |
| 511 | "çàïèøåòå" ôàéëà. Òîâà å òàêà, çà äà ñå ïðåäîòâðàòè îñòàâÿíåòî íà | 511 | "çàïèøåòå" ôàéëà. Òîâà å òàêà, çà äà ñå ïðåäîòâðàòè îñòàâÿíåòî íà |
| 512 | ïîëóïðîìåíåí ôàéë â ñèñòåìàòà, êîãàòî íå èñêàòå òîâà. Äîðè êîãàòî | 512 | ïîëóïðîìåíåí ôàéë â ñèñòåìàòà, êîãàòî íå èñêàòå òîâà. Äîðè êîãàòî |
| 513 | çàïèñâàòå, Emacs îñòàâÿ íà÷àëíèÿ ôàéë ïîä ïðîìåíåíî èìå, â ñëó÷àé, ÷å | 513 | çàïèñâàòå, Åìàêñ îñòàâÿ íà÷àëíèÿ ôàéë ïîä ïðîìåíåíî èìå, â ñëó÷àé, ÷å |
| 514 | ïî-êúñíî ðåøèòå, ÷å âàøèòå ïðîìåíè ñà áèëè ãðåøêà. | 514 | ïî-êúñíî ðåøèòå, ÷å âàøèòå ïðîìåíè ñà áèëè ãðåøêà. |
| 515 | 515 | ||
| 516 | Àêî ïîãëåäíåòå â äúíîòî íà åêðàíà, ùå âèäèòå ðåä, êîéòî çàïî÷âà è | 516 | Àêî ïîãëåäíåòå â äúíîòî íà åêðàíà, ùå âèäèòå ðåä, êîéòî çàïî÷âà è |
| 517 | çàâúðøâà ñ òèðåòà è çàïî÷âà ñ "-R:-- TUTORIAL.bg" èëè íåùî ïîäîáíî. | 517 | çàâúðøâà ñ òèðåòà è çàïî÷âà ñ "-b:-- TUTORIAL.bg" èëè íåùî ïîäîáíî. |
| 518 | Òàçè ÷àñò îò åêðàíà ïîêàçâà èìåòî íà ôàéëà, êîéòî ñòå ïîñåòèëè. Òî÷íî | 518 | Òàçè ÷àñò îò åêðàíà ïîêàçâà èìåòî íà ôàéëà, êîéòî ñòå ïîñåòèëè. Òî÷íî |
| 519 | ñåãà âèå ñòå ïîñåòèëè ôàéë, íàðå÷åí "TUTORIAL.bg", êîéòî å âàøåòî | 519 | ñåãà âèå ñòå ïîñåòèëè ôàéë, íàðå÷åí "TUTORIAL.bg", êîéòî å âàøåòî |
| 520 | ëè÷íî êîïèå-÷åðíîâà íà Emacs âúâåäåíèåòî. Êîãàòî íàìåðèòå ôàéë â | 520 | ëè÷íî êîïèå-÷åðíîâà íà Åìàêñ âúâåäåíèåòî. Êîãàòî íàìåðèòå ôàéë â |
| 521 | Emacs, èìåòî íà òîçè ôàéë ùå ñå ïîÿâè íà ñúùîòî ìÿñòî. | 521 | Åìàêñ, èìåòî íà òîçè ôàéë ùå ñå ïîÿâè íà ñúùîòî ìÿñòî. |
| 522 | 522 | ||
| 523 | Îñîáåíîñò íà êîìàíäàòà çà íàìèðàíå íà ôàéë å, ÷å òðÿáâà äà êàæåòå | 523 | Îñîáåíîñò íà êîìàíäàòà çà íàìèðàíå íà ôàéë å, ÷å òðÿáâà äà êàæåòå |
| 524 | èìåòî íà ôàéëà, êîéòî èñêàòå. Íèå ãî íàðè÷àìå "÷åòåíå íà àðãóìåíò îò | 524 | èìåòî íà ôàéëà, êîéòî èñêàòå. Íèå ãî íàðè÷àìå "÷åòåíå íà àðãóìåíò îò |
| @@ -527,10 +527,10 @@ Emacs, èìåòî íà òîçè ôàéë ùå ñå ïîÿâè íà ñúùîòî ìÿñòî. | |||
| 527 | 527 | ||
| 528 | C-x C-f Íàìèðàíå íà ôàéë | 528 | C-x C-f Íàìèðàíå íà ôàéë |
| 529 | 529 | ||
| 530 | Emacs âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî | 530 | Åìàêñ âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî |
| 531 | íàïèøåòå, ñå ïîÿâÿâà â äúíîòî íà åêðàíà. Ðåäúò â äúíîòî íà åêðàíà ñå | 531 | íàïèøåòå, ñå ïîÿâÿâà â äúíîòî íà åêðàíà. Ðåäúò â äúíîòî íà åêðàíà ñå |
| 532 | íàðè÷à ìèíèáóôåð, êîãàòî ñå èçïîëçâà çà òîçè âèä âõîä. Ìîæåòå äà | 532 | íàðè÷à ìèíèáóôåð, êîãàòî ñå èçïîëçâà çà òîçè âèä âõîä. Ìîæåòå äà |
| 533 | èçïîëçâàòå îáèêíîâåíèòå êîìàíäè çà ðåäàêòèðàíå íà Emacs, çà äà | 533 | èçïîëçâàòå îáèêíîâåíèòå êîìàíäè çà ðåäàêòèðàíå íà Åìàêñ, çà äà |
| 534 | ðåäàêòèðàòå èìåòî íà ôàéëà. | 534 | ðåäàêòèðàòå èìåòî íà ôàéëà. |
| 535 | 535 | ||
| 536 | Êîãàòî âúâåæäàòå èìåòî íà ôàéëà (èëè êàêúâòî è äà å âõîä â | 536 | Êîãàòî âúâåæäàòå èìåòî íà ôàéëà (èëè êàêúâòî è äà å âõîä â |
| @@ -551,12 +551,12 @@ Emacs âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî | |||
| 551 | 551 | ||
| 552 | C-x C-s Çàïàçâàíå íà ôàéëà | 552 | C-x C-s Çàïàçâàíå íà ôàéëà |
| 553 | 553 | ||
| 554 | Òîâà êîïèðà òåêñòà îò Emacs âúâ ôàéëà. Ïúðâèÿ ïúò, êîãàòî òîâà ñå | 554 | Òîâà êîïèðà òåêñòà îò Åìàêñ âúâ ôàéëà. Ïúðâèÿ ïúò, êîãàòî òîâà ñå |
| 555 | íàïðàâè, Emacs ïðåèìåíóâà íà÷àëíèÿ ôàéë ñ íîâî èìå, òàêà ÷å òîé äà íå | 555 | íàïðàâè, Åìàêñ ïðåèìåíóâà íà÷àëíèÿ ôàéë ñ íîâî èìå, òàêà ÷å òîé äà íå |
| 556 | ñå èçãóáè. Íîâîòî èìå ñå ïîñòðîÿâà ñ äîáàâÿíå íà "~" â êðàÿ íà èìåòî | 556 | ñå èçãóáè. Íîâîòî èìå ñå ïîñòðîÿâà ñ äîáàâÿíå íà "~" â êðàÿ íà èìåòî |
| 557 | íà íà÷àëíèÿ ôàéë. | 557 | íà íà÷àëíèÿ ôàéë. |
| 558 | 558 | ||
| 559 | Êîãàòî çàïàçâàíåòî å ñâúðøèëî, Emacs èçâåæäà èìåòî íà ôàéëà, êîéòî å | 559 | Êîãàòî çàïàçâàíåòî å ñâúðøèëî, Åìàêñ èçâåæäà èìåòî íà ôàéëà, êîéòî å |
| 560 | áèë çàïèñàí. Òðÿáâà äà çàïèñâàòå äîñòàòú÷íî ÷åñòî, òàêà ÷å äà íå | 560 | áèë çàïèñàí. Òðÿáâà äà çàïèñâàòå äîñòàòú÷íî ÷åñòî, òàêà ÷å äà íå |
| 561 | èçãóáèòå ìíîãî ðàáîòà, àêî ñèñòåìàòà ñå ñðèíå ïî íÿêàêâà ïðè÷èíà. | 561 | èçãóáèòå ìíîãî ðàáîòà, àêî ñèñòåìàòà ñå ñðèíå ïî íÿêàêâà ïðè÷èíà. |
| 562 | 562 | ||
| @@ -564,19 +564,19 @@ Emacs âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî | |||
| 564 | Òîâà òðÿáâà äà èçâåäå "Wrote ...TUTORIAL.bg" â äúíîòî íà åêðàíà. | 564 | Òîâà òðÿáâà äà èçâåäå "Wrote ...TUTORIAL.bg" â äúíîòî íà åêðàíà. |
| 565 | 565 | ||
| 566 | ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-x C-s ùå çàìðúçè åêðàíà è | 566 | ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-x C-s ùå çàìðúçè åêðàíà è |
| 567 | âèå íÿìà äà âèæäàòå ïîâå÷å èçõîä îò Emacs. Òîâà ïîêàçâà, ÷å åäíà | 567 | âèå íÿìà äà âèæäàòå ïîâå÷å èçõîä îò Åìàêñ. Òîâà ïîêàçâà, ÷å åäíà |
| 568 | "ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðè÷àíà "óïðàâëåíèå íà ïîòîêà" | 568 | "ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðè÷àíà "óïðàâëåíèå íà ïîòîêà" |
| 569 | (flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà êúì Emacs. Çà äà | 569 | (flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà êúì Åìàêñ. Çà äà |
| 570 | ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî | 570 | ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî |
| 571 | âêëþ÷âàíå íà ïîñòúïêîâî òúðñåíå" (Spontaneous Entry to Incremental | 571 | âêëþ÷âàíå íà ïîñòúïêîâî òúðñåíå" (Spontaneous Entry to Incremental |
| 572 | Search) â ðúêîâîäñòâîòî íà Emacs çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè | 572 | Search) â ðúêîâîäñòâîòî íà Åìàêñ çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè |
| 573 | "ñïîñîáíîñò". | 573 | "ñïîñîáíîñò". |
| 574 | 574 | ||
| 575 | Ìîæå äà íàìåðèòå ñúùåñòâóâàù ôàéë, äà ãî ðàçãëåäàòå è äà ãî | 575 | Ìîæå äà íàìåðèòå ñúùåñòâóâàù ôàéë, äà ãî ðàçãëåäàòå è äà ãî |
| 576 | ðåäàêòèðàòå. Ìîæåòå ñúùî äà íàìåðèòå ôàéë, êîéòî íå ñúùåñòâóâà. Òîâà | 576 | ðåäàêòèðàòå. Ìîæåòå ñúùî äà íàìåðèòå ôàéë, êîéòî íå ñúùåñòâóâà. Òîâà |
| 577 | å íà÷èíúò çà ñúçäàâàíå íà íîâè ôàéëîâå â Emacs: íàìèðàòå ôàéëà, êîéòî | 577 | å íà÷èíúò çà ñúçäàâàíå íà íîâè ôàéëîâå â Åìàêñ: íàìèðàòå ôàéëà, êîéòî |
| 578 | ùå áúäå â íà÷àëîòî ïðàçåí, è òîãàâà çàïî÷âàòå âìúêâàíåòî íà òåêñòà çà | 578 | ùå áúäå â íà÷àëîòî ïðàçåí, è òîãàâà çàïî÷âàòå âìúêâàíåòî íà òåêñòà çà |
| 579 | ôàéëà. Êîãàòî ãîâîðèòå çà "çàïèñâàíå" íà ôàéë, Emacs âñúùíîñò ùå | 579 | ôàéëà. Êîãàòî ãîâîðèòå çà "çàïèñâàíå" íà ôàéë, Åìàêñ âñúùíîñò ùå |
| 580 | ñúçäàäå ôàéëà ñ òåêñòà, êîéòî ñòå âúâåëè. Îòòàì íàòàòúê ìîæå äà | 580 | ñúçäàäå ôàéëà ñ òåêñòà, êîéòî ñòå âúâåëè. Îòòàì íàòàòúê ìîæå äà |
| 581 | ñ÷èòàòå, ÷å ðåäàêòèðàòå âå÷å ñúùåñòâóâàù ôàéë. | 581 | ñ÷èòàòå, ÷å ðåäàêòèðàòå âå÷å ñúùåñòâóâàù ôàéë. |
| 582 | 582 | ||
| @@ -584,9 +584,9 @@ Search) â ðúêîâîäñòâîòî íà Emacs çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè | |||
| 584 | * ÁÓÔÅÐÈ | 584 | * ÁÓÔÅÐÈ |
| 585 | -------- | 585 | -------- |
| 586 | 586 | ||
| 587 | Àêî íàìåðèòå âòîðè ôàéë ñ C-x C-f, ïúðâèÿò ôàéë îñòàâà â Emacs. | 587 | Àêî íàìåðèòå âòîðè ôàéë ñ C-x C-f, ïúðâèÿò ôàéë îñòàâà â Åìàêñ. |
| 588 | Ìîæåòå äà ïðåâêëþ÷èòå îáðàòíî êúì íåãî, êàòî ãî íàìåðèòå ïàê ñ C-x | 588 | Ìîæåòå äà ïðåâêëþ÷èòå îáðàòíî êúì íåãî, êàòî ãî íàìåðèòå ïàê ñ C-x |
| 589 | C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Emacs. | 589 | C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Åìàêñ. |
| 590 | 590 | ||
| 591 | >> Ñúçäàéòå ôàéë ñ èìå "foo", âúâåæäàéêè C-x C-f foo <Return>. | 591 | >> Ñúçäàéòå ôàéë ñ èìå "foo", âúâåæäàéêè C-x C-f foo <Return>. |
| 592 | Âìúêíåòå ìàëêî òåêñò, ðåäàêòèðàéòå ãî è çàïàçåòå "foo" ñ âúâåæäàíå | 592 | Âìúêíåòå ìàëêî òåêñò, ðåäàêòèðàéòå ãî è çàïàçåòå "foo" ñ âúâåæäàíå |
| @@ -594,16 +594,16 @@ C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Emacs. | |||
| 594 | Íàêðàÿ âúâåäåòå C-x C-f TUTORIAL.bg <Return>, çà äà ñå âúðíåòå | 594 | Íàêðàÿ âúâåäåòå C-x C-f TUTORIAL.bg <Return>, çà äà ñå âúðíåòå |
| 595 | îáðàòíî âúâ âúâåäåíèåòî. | 595 | îáðàòíî âúâ âúâåäåíèåòî. |
| 596 | 596 | ||
| 597 | Emacs çàïàçâà òåêñòà íà âñåêè ôàéë â îáåêò, íàðè÷àí "áóôåð". | 597 | Åìàêñ çàïàçâà òåêñòà íà âñåêè ôàéë â îáåêò, íàðè÷àí "áóôåð". |
| 598 | Íàìèðàíåòî íà ôàéë ïðàâè íîâ áóôåð â Emacs. Çà äà âèäèòå ñïèñúê íà | 598 | Íàìèðàíåòî íà ôàéë ïðàâè íîâ áóôåð â Åìàêñ. Çà äà âèäèòå ñïèñúê íà |
| 599 | áóôåðèòå, êîèòî â ìîìåíòà ñúùåñòâóâàò âúâ âàøèÿ Emacs, âúâåäåòå | 599 | áóôåðèòå, êîèòî â ìîìåíòà ñúùåñòâóâàò âúâ âàøèÿ Åìàêñ, âúâåäåòå |
| 600 | 600 | ||
| 601 | C-x C-b Ïîêàçâàíå íà áóôåðèòå | 601 | C-x C-b Ïîêàçâàíå íà áóôåðèòå |
| 602 | 602 | ||
| 603 | >> Îïèòàéòå C-x C-b ñåãà. | 603 | >> Îïèòàéòå C-x C-b ñåãà. |
| 604 | 604 | ||
| 605 | Âèæòå êàê âñåêè áóôåð èìà èìå, à ïîíÿêîãà è èìå íà ôàéë çà ôàéëà, | 605 | Âèæòå êàê âñåêè áóôåð èìà èìå, à ïîíÿêîãà è èìå íà ôàéë çà ôàéëà, |
| 606 | ÷èåòî ñúäúðæàíèå äúðæè. ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Emacs ïðîçîðåö, | 606 | ÷èåòî ñúäúðæàíèå äúðæè. ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Åìàêñ ïðîçîðåö, |
| 607 | å âèíàãè ÷àñò îò íÿêàêúâ áóôåð. | 607 | å âèíàãè ÷àñò îò íÿêàêúâ áóôåð. |
| 608 | 608 | ||
| 609 | >> Âúâåäåòå C-x 1, çà äà ìàõíåòå ñïèñúêà ñ áóôåðèòå. | 609 | >> Âúâåäåòå C-x 1, çà äà ìàõíåòå ñïèñúêà ñ áóôåðèòå. |
| @@ -625,13 +625,13 @@ Emacs çàïàçâà òåêñòà íà âñåêè ôàéë â îáåêò, íàðè÷àí "áóôåð". | |||
| 625 | Ñïèñúêúò ñ áóôåðèòå, êîéòî ïðàâèòå ñ C-x C-b, âèíàãè âè ïîêàçâà èìåòî | 625 | Ñïèñúêúò ñ áóôåðèòå, êîéòî ïðàâèòå ñ C-x C-b, âèíàãè âè ïîêàçâà èìåòî |
| 626 | íà âñåêè áóôåð. | 626 | íà âñåêè áóôåð. |
| 627 | 627 | ||
| 628 | ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Emacs ïðîçîðåö, å âèíàãè ÷àñò îò íÿêàêúâ | 628 | ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Åìàêñ ïðîçîðåö, å âèíàãè ÷àñò îò íÿêàêúâ |
| 629 | áóôåð. Íÿêîè áóôåðè íå ñúîòâåòñòâàò íà ôàéëîâå. Íàïðèìåð áóôåðúò, | 629 | áóôåð. Íÿêîè áóôåðè íå ñúîòâåòñòâàò íà ôàéëîâå. Íàïðèìåð áóôåðúò, |
| 630 | èìåíóâàí "*Buffer List*", íå ñúîòâåòñòâà íà ôàéë. Òîâà å áóôåðúò, | 630 | èìåíóâàí "*Buffer List*", íå ñúîòâåòñòâà íà ôàéë. Òîâà å áóôåðúò, |
| 631 | êîéòî ñúäúðæà ñïèñúêà ñ áóôåðèòå, êîèòî ñòå íàïðàâèëè ñ C-x C-b. | 631 | êîéòî ñúäúðæà ñïèñúêà ñ áóôåðèòå, êîèòî ñòå íàïðàâèëè ñ C-x C-b. |
| 632 | Áóôåðúò, èìåíóâàí "*Messages*", ñúùî íå ñúîòâåòñòâà íà ôàéë; òîé | 632 | Áóôåðúò, èìåíóâàí "*Messages*", ñúùî íå ñúîòâåòñòâà íà ôàéë; òîé |
| 633 | ñúäúðæà ñúîáùåíèÿòà, êîèòî ñå ïîÿâÿâàò â äúíîòî íà åêðàíà ïî âðåìå íà | 633 | ñúäúðæà ñúîáùåíèÿòà, êîèòî ñå ïîÿâÿâàò â äúíîòî íà åêðàíà ïî âðåìå íà |
| 634 | Emacs ñåñèÿòà. | 634 | Åìàêñ ñåñèÿòà. |
| 635 | 635 | ||
| 636 | >> Âúâåäåòå C-x b *Messages* <Return>, çà äà âèäèòå áóôåðà ñúñ | 636 | >> Âúâåäåòå C-x b *Messages* <Return>, çà äà âèäèòå áóôåðà ñúñ |
| 637 | ñúîáùåíèÿòà. Ñëåä òîâà âúâåäåòå C-x C-b TUTORIAL <Return>, çà äà | 637 | ñúîáùåíèÿòà. Ñëåä òîâà âúâåäåòå C-x C-b TUTORIAL <Return>, çà äà |
| @@ -639,7 +639,7 @@ Emacs ñåñèÿòà. | |||
| 639 | 639 | ||
| 640 | Àêî íàïðàâèòå ïðîìåíè â òåêñòà íà åäèí ôàéë è òîãàâà íàìåðèòå äðóã | 640 | Àêî íàïðàâèòå ïðîìåíè â òåêñòà íà åäèí ôàéë è òîãàâà íàìåðèòå äðóã |
| 641 | ôàéë, òîâà íÿìà äà çàïèøå ïúðâèÿ ôàéë. Íåãîâèòå ïðîìåíè îñòàâàò âúòðå | 641 | ôàéë, òîâà íÿìà äà çàïèøå ïúðâèÿ ôàéë. Íåãîâèòå ïðîìåíè îñòàâàò âúòðå |
| 642 | â Emacs, â áóôåðà íà ôàéëà. Ñúçäàâàíåòî èëè ðåäàêòèðàíåòî íà áóôåðà | 642 | â Åìàêñ, â áóôåðà íà ôàéëà. Ñúçäàâàíåòî èëè ðåäàêòèðàíåòî íà áóôåðà |
| 643 | íà âòîðèÿ ôàéë íÿìà åôåêò âúðõó áóôåðà íà ïúðâèÿ ôàéë. Òîâà å ìíîãî | 643 | íà âòîðèÿ ôàéë íÿìà åôåêò âúðõó áóôåðà íà ïúðâèÿ ôàéë. Òîâà å ìíîãî |
| 644 | ïîëåçíî, íî ñúùî îçíà÷àâà, ÷å ñå íóæäàåòå îò óäîáåí íà÷èí äà çàïàçèòå | 644 | ïîëåçíî, íî ñúùî îçíà÷àâà, ÷å ñå íóæäàåòå îò óäîáåí íà÷èí äà çàïàçèòå |
| 645 | áóôåðà íà ïúðâèÿ ôàéë. Ùå å íåóäîáíî äà ïðåâêëþ÷èòå îáðàòíî ñ C-x | 645 | áóôåðà íà ïúðâèÿ ôàéë. Ùå å íåóäîáíî äà ïðåâêëþ÷èòå îáðàòíî ñ C-x |
| @@ -658,8 +658,8 @@ C-x s ïèòà çà âñåêè áóôåð, êîéòî ñúäúðæà ïðîìåíè, êîèòî íå ñòå | |||
| 658 | * ÐÀÇØÈÐßÂÀÍÅ ÍÀ ÍÀÁÎÐÀ ÊÎÌÀÍÄÈ | 658 | * ÐÀÇØÈÐßÂÀÍÅ ÍÀ ÍÀÁÎÐÀ ÊÎÌÀÍÄÈ |
| 659 | ------------------------------- | 659 | ------------------------------- |
| 660 | 660 | ||
| 661 | Èìà ìíîãî, ìíîãî ïîâå÷å êîìàíäè íà Emacs, îòêîëêîòî ìîãàò äà ñå ñëîæàò | 661 | Èìà ìíîãî, ìíîãî ïîâå÷å êîìàíäè íà Åìàêñ, îòêîëêîòî ìîãàò äà ñå ñëîæàò |
| 662 | íà âñè÷êè êîíòðîëíè è ìåòà çíàöè. Emacs çàîáèêàëÿ òîâà ñ X (eXtended) | 662 | íà âñè÷êè êîíòðîëíè è ìåòà çíàöè. Åìàêñ çàîáèêàëÿ òîâà ñ X (eXtended) |
| 663 | êîìàíäàòà. Òîâà ñòàâà ïî äâà íà÷èíà: | 663 | êîìàíäàòà. Òîâà ñòàâà ïî äâà íà÷èíà: |
| 664 | 664 | ||
| 665 | C-x Çíàêîâî ðàçøèðÿâàíå. Ïîñëåäâàíî îò åäèí çíàê. | 665 | C-x Çíàêîâî ðàçøèðÿâàíå. Ïîñëåäâàíî îò åäèí çíàê. |
| @@ -667,49 +667,49 @@ C-x s ïèòà çà âñåêè áóôåð, êîéòî ñúäúðæà ïðîìåíè, êîèòî íå ñòå | |||
| 667 | èìå. | 667 | èìå. |
| 668 | 668 | ||
| 669 | Òåçè êîìàíäè ñà îáùî âçåòî ïîëåçíè, íî ïî-ìàëêî, îòêîëêîòî êîìàíäèòå, | 669 | Òåçè êîìàíäè ñà îáùî âçåòî ïîëåçíè, íî ïî-ìàëêî, îòêîëêîòî êîìàíäèòå, |
| 670 | êîèòî äîñåãà ñòå íàó÷èëè. Âå÷å âèäÿõòå íÿêîëêî îò òÿõ: íàïðèìåð | 670 | êîèòî äîñåãà ñòå íàó÷èëè. Âå÷å âèäÿõòå äâå îò òÿõ: êîìàíäèòå âúðõó |
| 671 | êîìàíäèòå âúðõó ôàéëîâå C-x C-f çà íàìèðàíå (Find) è C-x C-s çà | 671 | ôàéëîâå C-x C-f çà íàìèðàíå (Find) è C-x C-s çà çàïàçâàíå (Save). |
| 672 | çàïàçâàíå (Save). Äðóã ïðèìåð å êîìàíäàòà çà êðàé íà Emacs ñåñèÿòà -- | 672 | Äðóã ïðèìåð å êîìàíäàòà çà êðàé íà Åìàêñ ñåñèÿòà -- òîâà å êîìàíäàòà |
| 673 | òîâà å êîìàíäàòà C-x C-c. (Íå ñå áåçïîêîéòå, ÷å ìîæå äà èçãóáèòå | 673 | C-x C-c. (Íå ñå áåçïîêîéòå, ÷å ìîæå äà èçãóáèòå âñè÷êè ïðîìåíè, êîèòî |
| 674 | âñè÷êè ïðîìåíè, êîèòî ñòå íàïðàâèëè; C-x C-c ïðåäëàãà äà çàïàçè âñåêè | 674 | ñòå íàïðàâèëè; C-x C-c ïðåäëàãà äà çàïàçè âñåêè ïðîìåíåí ôàéë, ïðåäè |
| 675 | ïðîìåíåí ôàéë, ïðåäè äà ïðåìàõíå Emacs.) | 675 | äà ïðåìàõíå Åìàêñ.) |
| 676 | 676 | ||
| 677 | C-z å êîìàíäàòà çà èçëèçàíå îò Emacs *âðåìåííî* -- òàêà ÷å äà ìîæåòå | 677 | C-z å êîìàíäàòà çà èçëèçàíå îò Åìàêñ *âðåìåííî* -- òàêà ÷å äà ìîæåòå |
| 678 | äà ñå âúðíåòå êúì ñúùàòà Emacs ñåñèÿ ïî-êúñíî. | 678 | äà ñå âúðíåòå êúì ñúùàòà Åìàêñ ñåñèÿ ïî-êúñíî. |
| 679 | 679 | ||
| 680 | Íà ñèñòåìè, êîèòî ïîçâîëÿâàò òîâà, C-z "èçîñòàâÿ" (suspend) Emacs, | 680 | Íà ñèñòåìè, êîèòî ïîçâîëÿâàò òîâà, C-z "èçîñòàâÿ" (suspend) Åìàêñ, |
| 681 | ò.å. âðúùà êúì îáâèâêàòà, íî íå ðàçðóøàâà Emacs.  ïîâå÷åòî îáâèâêè | 681 | ò.å. âðúùà êúì îáâèâêàòà, íî íå ðàçðóøàâà Åìàêñ.  ïîâå÷åòî îáâèâêè |
| 682 | ìîæåòå äà ïðîäúëæèòå Emacs ñåñèÿòà ñ êîìàíäàòà "fg" èëè ñ "%emacs". | 682 | ìîæåòå äà ïðîäúëæèòå Åìàêñ ñåñèÿòà ñ êîìàíäàòà "fg" èëè ñ "%emacs". |
| 683 | 683 | ||
| 684 | Íà ñèñòåìè, êîèòî íå ïîçâîëÿâàò èçîñòàâÿíå, C-z ñúçäàâà íîâà | 684 | Íà ñèñòåìè, êîèòî íå ïîçâîëÿâàò èçîñòàâÿíå, C-z ñúçäàâà íîâà |
| 685 | ïîäîáâèâêà, êîÿòî âúðâè ïîä Emacs, çà äà âè äàäå øàíñ äà ñòàðòèðàòå | 685 | ïîäîáâèâêà, êîÿòî âúðâè ïîä Åìàêñ, çà äà âè äàäå øàíñ äà ñòàðòèðàòå |
| 686 | äðóãè ïðîãðàìè è äà ñå âúðíåòå êúì Emacs ñëåä òîâà; òîâà íå å èñòèíñêî | 686 | äðóãè ïðîãðàìè è äà ñå âúðíåòå êúì Åìàêñ ñëåä òîâà; òîâà íå å èñòèíñêî |
| 687 | "èçëèçàíå" îò Emacs.  òîçè ñëó÷àé êîìàíäàòà íà îáâèâêàòà "exit" å | 687 | "èçëèçàíå" îò Åìàêñ.  òîçè ñëó÷àé êîìàíäàòà íà îáâèâêàòà "exit" å |
| 688 | îáèêíîâåíèÿò íà÷èí äà ñå âúðíåòå îáðàòíî êúì Emacs îò ïîäîáâèâêàòà. | 688 | îáèêíîâåíèÿò íà÷èí äà ñå âúðíåòå îáðàòíî êúì Åìàêñ îò ïîäîáâèâêàòà. |
| 689 | 689 | ||
| 690 | Ìîìåíòúò äà èçïîëçâàòå C-x C-c å, êîãàòî èñêàòå äà èçëåçåòå îò | 690 | Ìîìåíòúò äà èçïîëçâàòå C-x C-c å, êîãàòî èñêàòå äà èçëåçåòå îò |
| 691 | ñèñòåìàòà. Òîâà å è ïðàâèëíàòà êîìàíäà çà èçëèçàíå, êîãàòî Emacs å | 691 | ñèñòåìàòà. Òîâà å è ïðàâèëíàòà êîìàíäà çà èçëèçàíå, êîãàòî Åìàêñ å |
| 692 | èçâèêàí îò ïîùåíñêà ïðîãðàìà èëè äðóãè ñòðàíè÷íè ïðîãðàìè, òúé êàòî òå | 692 | èçâèêàí îò ïîùåíñêà ïðîãðàìà èëè äðóãè ñòðàíè÷íè ïðîãðàìè, òúé êàòî òå |
| 693 | ìîæå è äà íå çíàÿò êàê äà ñå ñïðàâÿò ñ èçîñòàâÿíåòî íà Emacs. Ïðè | 693 | ìîæå è äà íå çíàÿò êàê äà ñå ñïðàâÿò ñ èçîñòàâÿíåòî íà Åìàêñ. Ïðè |
| 694 | îáèêíîâåíè îáñòîÿòåëñòâà, îáà÷å, àêî íå ñòå òðúãíàëè äà èçëèçàòå îò | 694 | îáèêíîâåíè îáñòîÿòåëñòâà, îáà÷å, àêî íå ñòå òðúãíàëè äà èçëèçàòå îò |
| 695 | ñèñòåìàòà, ïî-äîáðå å äà èçîñòàâèòå Emacs ñ C-z, âìåñòî äà èçëèçàòå îò | 695 | ñèñòåìàòà, ïî-äîáðå å äà èçîñòàâèòå Åìàêñ ñ C-z, âìåñòî äà èçëèçàòå îò |
| 696 | Emacs. | 696 | Åìàêñ. |
| 697 | 697 | ||
| 698 | Èìà ìíîãî êîìàíäè C-x. Åòî ñïèñúê íà òåçè, êîèòî ñòå íàó÷èëè: | 698 | Èìà ìíîãî êîìàíäè C-x. Åòî ñïèñúê íà òåçè, êîèòî ñòå íàó÷èëè: |
| 699 | 699 | ||
| 700 | C-x C-f Íàìèðàíå íà ôàéë | 700 | C-x C-f Íàìèðàíå íà ôàéë. |
| 701 | C-x C-s Çàïàçâàíå íà ôàéë | 701 | C-x C-s Çàïàçâàíå íà ôàéë. |
| 702 | C-x C-b Ñïèñúê íà áóôåðèòå | 702 | C-x C-b Ñïèñúê íà áóôåðèòå. |
| 703 | C-x C-c Èçëèçàíå îò Emacs | 703 | C-x C-c Èçëèçàíå îò Åìàêñ. |
| 704 | C-x 1 Èçòðèâàíå íà âñè÷êè ïðîçîðöè, îñâåí åäèí | 704 | C-x 1 Èçòðèâàíå íà âñè÷êè ïðîçîðöè îñâåí åäèí. |
| 705 | C-x u Îòìÿíà | 705 | C-x u Îòìÿíà. |
| 706 | 706 | ||
| 707 | Èìåíóâàíèòå ðàçøèðåíè êîìàíäè ñà êîìàíäè, êîèòî ñå èçïîëçâàò äàæå îùå | 707 | Èìåíóâàíèòå ðàçøèðåíè êîìàíäè ñà êîìàíäè, êîèòî ñå èçïîëçâàò äàæå îùå |
| 708 | ïî-ðÿäêî, èëè êîìàíäè, êîèòî ñå èçïîëçâàò ñàìî â îïðåäåëåíè ðåæèìè. | 708 | ïî-ðÿäêî, èëè êîìàíäè, êîèòî ñå èçïîëçâàò ñàìî â îïðåäåëåíè ðåæèìè. |
| 709 | Ïðèìåð å êîìàíäàòà replace-string, êîÿòî çàìåíÿ ãëîáàëíî åäèí íèç ñ | 709 | Ïðèìåð å êîìàíäàòà replace-string, êîÿòî çàìåíÿ ãëîáàëíî åäèí íèç ñ |
| 710 | äðóã. Êîãàòî âúâåäåòå M-x, Emacs âè ïîäñêàçâà â äúíîòî íà åêðàíà ñ | 710 | äðóã. Êîãàòî âúâåäåòå M-x, Åìàêñ âè ïîäñêàçâà â äúíîòî íà åêðàíà ñ |
| 711 | M-x è âèå òðÿáâà äà âúâåäåòå èìåòî íà êîìàíäàòà, â òîçè ñëó÷àé | 711 | M-x è âèå òðÿáâà äà âúâåäåòå èìåòî íà êîìàíäàòà, â òîçè ñëó÷àé |
| 712 | "replace-string". Ïðîñòî âúâåäåòå "repl s<TAB>" è Emacs ùå çàâúðøè | 712 | "replace-string". Ïðîñòî âúâåäåòå "repl s<TAB>" è Åìàêñ ùå çàâúðøè |
| 713 | èìåòî. (<TAB> å êëàâèøúò Tab, îáèêíîâåíî íàìèðàù ñå íàä êëàâèøà | 713 | èìåòî. (<TAB> å êëàâèøúò Tab, îáèêíîâåíî íàìèðàù ñå íàä êëàâèøà |
| 714 | CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.) | 714 | CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.) |
| 715 | Çàâúðøåòå èìåòî íà êîìàíäàòà ñ <Return>. | 715 | Çàâúðøåòå èìåòî íà êîìàíäàòà ñ <Return>. |
| @@ -733,11 +733,11 @@ CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.) | |||
| 733 | 733 | ||
| 734 | Êîãàòî ñòå íàïðàâèëè ïðîìåíè âúâ ôàéë, íî îùå íå ñòå ãî çàïàçèëè, òå | 734 | Êîãàòî ñòå íàïðàâèëè ïðîìåíè âúâ ôàéë, íî îùå íå ñòå ãî çàïàçèëè, òå |
| 735 | ìîãàò äà áúäàò çàãóáåíè, àêî êîìïþòúðúò âíåçàïíî ñå èçêëþ÷è. Çà äà âè | 735 | ìîãàò äà áúäàò çàãóáåíè, àêî êîìïþòúðúò âíåçàïíî ñå èçêëþ÷è. Çà äà âè |
| 736 | ïðåäïàçè îò òàêèâà ñèòóàöèè, Emacs ïåðèîäè÷íî çàïàçâà "àâòîìàòè÷íî | 736 | ïðåäïàçè îò òàêèâà ñèòóàöèè, Åìàêñ ïåðèîäè÷íî çàïàçâà "àâòîìàòè÷íî |
| 737 | çàïàçâàí" ôàéë çà âñåêè ôàéë, êîéòî ðåäàêòèðàòå. Èìåòî íà àâòîìàòè÷íî | 737 | çàïàçâàí" ôàéë çà âñåêè ôàéë, êîéòî ðåäàêòèðàòå. Èìåòî íà àâòîìàòè÷íî |
| 738 | çàïàçâàíèÿ ôàéë èìà # â íà÷àëîòî è â êðàÿ; íàïðèìåð, àêî âàøèÿò ôàéë å | 738 | çàïàçâàíèÿ ôàéë èìà # â íà÷àëîòî è â êðàÿ; íàïðèìåð, àêî âàøèÿò ôàéë å |
| 739 | ñ èìå "hello.c", èìåòî íà íåãîâèÿ àâòîìàòè÷íî çàïàçâàí ôàéë ùå áúäå | 739 | ñ èìå "hello.c", èìåòî íà íåãîâèÿ àâòîìàòè÷íî çàïàçâàí ôàéë ùå áúäå |
| 740 | "#hello.c#". Êîãàòî çàïàçâàòå ôàéë ïî îáèêíîâåíèÿ íà÷èí, Emacs | 740 | "#hello.c#". Êîãàòî çàïàçâàòå ôàéë ïî îáèêíîâåíèÿ íà÷èí, Åìàêñ |
| 741 | èçòðèâà íåãîâèÿ àâòîìàòè÷íî çàïèñâàí ôàéë. | 741 | èçòðèâà íåãîâèÿ àâòîìàòè÷íî çàïèñâàí ôàéë. |
| 742 | 742 | ||
| 743 | Àêî êîìïþòúðúò çàâèñíå, ìîæå äà âúçñòàíîâèòå âàøàòà àâòîìàòè÷íî | 743 | Àêî êîìïþòúðúò çàâèñíå, ìîæå äà âúçñòàíîâèòå âàøàòà àâòîìàòè÷íî |
| @@ -751,7 +751,7 @@ M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå, | |||
| 751 | * ÅÕÎ ÎÁËÀÑÒÒÀ | 751 | * ÅÕÎ ÎÁËÀÑÒÒÀ |
| 752 | -------------- | 752 | -------------- |
| 753 | 753 | ||
| 754 | Àêî Emacs âèäè, ÷å âúâåæäàòå ìíîãîçíàêîâè êîìàíäè áàâíî, ùå âè ãè | 754 | Àêî Åìàêñ âèäè, ÷å âúâåæäàòå ìíîãîçíàêîâè êîìàíäè áàâíî, ùå âè ãè |
| 755 | ïîêàæå â äúíîòî íà åêðàíà, â îáëàñò, íàðè÷àíà "åõî îáëàñò". Åõî | 755 | ïîêàæå â äúíîòî íà åêðàíà, â îáëàñò, íàðè÷àíà "åõî îáëàñò". Åõî |
| 756 | îáëàñòòà îáõâàùà ïîñëåäíèÿ ðåä îò åêðàíà. | 756 | îáëàñòòà îáõâàùà ïîñëåäíèÿ ðåä îò åêðàíà. |
| 757 | 757 | ||
| @@ -762,18 +762,18 @@ M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå, | |||
| 762 | Ðåäúò òî÷íî íàä åõî îáëàñòòà ñå íàðè÷à "ðåä íà ðåæèìà" (mode line). | 762 | Ðåäúò òî÷íî íàä åõî îáëàñòòà ñå íàðè÷à "ðåä íà ðåæèìà" (mode line). |
| 763 | Òîé ïîêàçâà íåùî êàòî: | 763 | Òîé ïîêàçâà íåùî êàòî: |
| 764 | 764 | ||
| 765 | -D:** TUTORIAL.bg 63% L749 (Fundamental)--------------------- | 765 | -b:** TUTORIAL.bg (Fundamental)--L670--58%---------------- |
| 766 | 766 | ||
| 767 | Òîçè ðåä äàâà ïîëåçíà èíôîðìàöèÿ çà ñúñòîÿíèåòî íà Emacs è òåêñòà, | 767 | Òîçè ðåä äàâà ïîëåçíà èíôîðìàöèÿ çà ñúñòîÿíèåòî íà Åìàêñ è òåêñòà, |
| 768 | êîéòî ðåäàêòèðàòå. | 768 | êîéòî ðåäàêòèðàòå. |
| 769 | 769 | ||
| 770 | Âå÷å çíàåòå êàêâî îçíà÷àâà èìåòî íà ôàéëà -- òîâà å ôàéëúò, êîéòî ñòå | 770 | Âå÷å çíàåòå êàêâî îçíà÷àâà èìåòî íà ôàéëà -- òîâà å ôàéëúò, êîéòî ñòå |
| 771 | íàìåðèëè. NN% ïîêàçâà âàøàòà òåêóùà ïîçèöèÿ â òåêñòà; òîâà îçíà÷àâà, | 771 | íàìåðèëè. -NN%-- ïîêàçâà âàøàòà òåêóùà ïîçèöèÿ â òåêñòà; òîâà |
| 772 | ÷å NN ïðîöåíòà îò òåêñòà å íàä âúðõà íà åêðàíà. Àêî íà÷àëîòî íà ôàéëà | 772 | îçíà÷àâà, ÷å NN ïðîöåíòà îò òåêñòà å íàä âúðõà íà åêðàíà. Àêî |
| 773 | å íà åêðàíà, ùå ñå ïîêàçâà --Top-- (âðúõ) âìåñòî --00%--. Àêî êðàÿò | 773 | íà÷àëîòî íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Top-- (âðúõ) âìåñòî |
| 774 | íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Bot-- (äúíî). Àêî ãëåäàòå | 774 | --00%--. Àêî êðàÿ íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Bot-- (äúíî). |
| 775 | òåêñò, êîéòî å òîëêîâà ìàëúê, ÷å ñå ïîêàçâà èçöÿëî íà åêðàíà, ðåäúò íà | 775 | Àêî ãëåäàòå òåêñò, êîéòî å òîëêîâà ìàëúê, ÷å ñå ïîêàçâà èçöÿëî íà |
| 776 | ðåæèìà ùå èçâåäå --All--. | 776 | åêðàíà, ðåäúò íà ðåæèìà ùå èçâåäå --All--. |
| 777 | 777 | ||
| 778 | Çíàêúò L è öèôðèòå ïîêàçâàò ìÿñòîòî ïî äðóã íà÷èí: òîâà å íîìåðúò íà | 778 | Çíàêúò L è öèôðèòå ïîêàçâàò ìÿñòîòî ïî äðóã íà÷èí: òîâà å íîìåðúò íà |
| 779 | òåêóùèÿ ðåä íà òî÷êàòà. | 779 | òåêóùèÿ ðåä íà òî÷êàòà. |
| @@ -787,7 +787,7 @@ M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå, | |||
| 787 | Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà | 787 | Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà |
| 788 | "ãëàâåí ðåæèì" (major mode). | 788 | "ãëàâåí ðåæèì" (major mode). |
| 789 | 789 | ||
| 790 | Emacs èìà ìíîãî ãëàâíè ðåæèìè. Íÿêîè îò òÿõ ñà ïðåäâèäåíè çà | 790 | Åìàêñ èìà ìíîãî ãëàâíè ðåæèìè. Íÿêîè îò òÿõ ñà ïðåäâèäåíè çà |
| 791 | ðåäàêòèðàíå íà ðàçëè÷íè åçèöè è/èëè âèäîâå òåêñò, êàòî íàïðèìåð ðåæèì | 791 | ðåäàêòèðàíå íà ðàçëè÷íè åçèöè è/èëè âèäîâå òåêñò, êàòî íàïðèìåð ðåæèì |
| 792 | Ëèñï, ðåæèì Òåêñò è äðóãè. Âúâ âñåêè åäèí ìîìåíò îò âðåìå òî÷íî åäèí | 792 | Ëèñï, ðåæèì Òåêñò è äðóãè. Âúâ âñåêè åäèí ìîìåíò îò âðåìå òî÷íî åäèí |
| 793 | ãëàâåí ðåæèì å àêòèâåí è íåãîâîòî èìå ìîæå âèíàãè äà áúäå íàìåðåíî â | 793 | ãëàâåí ðåæèì å àêòèâåí è íåãîâîòî èìå ìîæå âèíàãè äà áúäå íàìåðåíî â |
| @@ -806,7 +806,7 @@ Emacs èìà ìíîãî ãëàâíè ðåæèìè. Íÿêîè îò òÿõ ñà ïðåäâèäåíè çà | |||
| 806 | 806 | ||
| 807 | >> Âúâåäåòå M-x text mode<Return>. | 807 | >> Âúâåäåòå M-x text mode<Return>. |
| 808 | 808 | ||
| 809 | Íå ñå áåçïîêîéòå, íèêîÿ îò Emacs êîìàíäèòå, êîèòî ñòå íàó÷èëè, íÿìà äà | 809 | Íå ñå áåçïîêîéòå, íèêîÿ îò Åìàêñ êîìàíäèòå, êîèòî ñòå íàó÷èëè, íÿìà äà |
| 810 | ñå ïðîìåíè ïî íÿêàêúâ ñúùåñòâåí íà÷èí. Íî ìîæå äà çàáåëåæèòå, ÷å M-f | 810 | ñå ïðîìåíè ïî íÿêàêúâ ñúùåñòâåí íà÷èí. Íî ìîæå äà çàáåëåæèòå, ÷å M-f |
| 811 | è M-b ñåãà âúçïðèåìàò àïîñòðîôèòå (') êàòî ÷àñò îò äóìèòå. Ïðåäè | 811 | è M-b ñåãà âúçïðèåìàò àïîñòðîôèòå (') êàòî ÷àñò îò äóìèòå. Ïðåäè |
| 812 | òîâà, â îñíîâíèÿ ðåæèì (Fundamental), M-f è M-b ñå âúçïðèåìàõà êàòî | 812 | òîâà, â îñíîâíèÿ ðåæèì (Fundamental), M-f è M-b ñå âúçïðèåìàõà êàòî |
| @@ -835,7 +835,7 @@ m. | |||
| 835 | 835 | ||
| 836 | Åäèí ãëàâåí ðåæèì, êîéòî å ìíîãî ïîëåçåí, îñîáåíî çà ðåäàêòèðàíå íà | 836 | Åäèí ãëàâåí ðåæèì, êîéòî å ìíîãî ïîëåçåí, îñîáåíî çà ðåäàêòèðàíå íà |
| 837 | òåêñò íà åñòåñòâåí åçèê, å ðåæèìúò íà àâòîìàòè÷íî çàïúëâàíå (Auto Fill | 837 | òåêñò íà åñòåñòâåí åçèê, å ðåæèìúò íà àâòîìàòè÷íî çàïúëâàíå (Auto Fill |
| 838 | mode). Êîãàòî òîçè ðåæèì å âêëþ÷åí, Emacs àâòîìàòè÷íî ðàçäåëÿ ðåäà | 838 | mode). Êîãàòî òîçè ðåæèì å âêëþ÷åí, Åìàêñ àâòîìàòè÷íî ðàçäåëÿ ðåäà |
| 839 | ïðè ìÿñòîòî ìåæäó äóìèòå, êîãàòî âìúêâàòå òåêñò è íàïðàâèòå ðåä, êîéòî | 839 | ïðè ìÿñòîòî ìåæäó äóìèòå, êîãàòî âìúêâàòå òåêñò è íàïðàâèòå ðåä, êîéòî |
| 840 | å òâúðäå äúëúã. | 840 | å òâúðäå äúëúã. |
| 841 | 841 | ||
| @@ -855,7 +855,7 @@ auto fill mode<Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî | |||
| 855 | àðãóìåíò íà êîìàíäàòà. | 855 | àðãóìåíò íà êîìàíäàòà. |
| 856 | 856 | ||
| 857 | >> Âúâåäåòå C-x f ñ àðãóìåíò 20. (C-u 2 0 C-x f). | 857 | >> Âúâåäåòå C-x f ñ àðãóìåíò 20. (C-u 2 0 C-x f). |
| 858 | Ñåãà âúâåäåòå íÿêàêúâ òåêñò è âèæòå êàê Emacs çàïúëâà ðåäîâåòå ñ ïî | 858 | Ñåãà âúâåäåòå íÿêàêúâ òåêñò è âèæòå êàê Åìàêñ çàïúëâà ðåäîâåòå ñ ïî |
| 859 | íå ïîâå÷å îò 20 çíàêà. Ïîñëå âúðíåòå îáðàòíî ãðàíèöàòà íà 70, | 859 | íå ïîâå÷å îò 20 çíàêà. Ïîñëå âúðíåòå îáðàòíî ãðàíèöàòà íà 70, |
| 860 | èçïîëçâàéêè C-x f îòíîâî. | 860 | èçïîëçâàéêè C-x f îòíîâî. |
| 861 | 861 | ||
| @@ -870,12 +870,12 @@ auto fill mode<Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî | |||
| 870 | * ÒÚÐÑÅÍÅ | 870 | * ÒÚÐÑÅÍÅ |
| 871 | --------- | 871 | --------- |
| 872 | 872 | ||
| 873 | Emacs ìîæå äà èçâúðøâà òúðñåíèÿ íà íèçîâå (òîâà ñà ïîñëåäîâàòåëíîñòè | 873 | Åìàêñ ìîæå äà èçâúðøâà òúðñåíèÿ íà íèçîâå (òîâà ñà ïîñëåäîâàòåëíîñòè |
| 874 | îò çíàöè èëè äóìè) èëè íàïðåä â òåêñòà, èëè íàçàä â íåãî. Òúðñåíåòî | 874 | îò çíàöè èëè äóìè) èëè íàïðåä â òåêñòà, èëè íàçàä â íåãî. Òúðñåíåòî |
| 875 | íà íèç å ïðèäâèæâàùà êóðñîðà êîìàíäà; òÿ ïðåìåñòâà êóðñîðà íà | 875 | íà íèç å ïðèäâèæâàùà êóðñîðà êîìàíäà; òÿ ïðåìåñòâà êóðñîðà íà |
| 876 | ñëåäâàùîòî ìÿñòî, êúäåòî ñå ñðåùà íèçúò. | 876 | ñëåäâàùîòî ìÿñòî, êúäåòî ñå ñðåùà íèçúò. |
| 877 | 877 | ||
| 878 | Êîìàíäàòà çà òúðñåíå íà Emacs ñå ðàçëè÷àâà îò êîìàíäàòà çà òúðñåíå íà | 878 | Êîìàíäàòà çà òúðñåíå íà Åìàêñ ñå ðàçëè÷àâà îò êîìàíäàòà çà òúðñåíå íà |
| 879 | ïîâå÷åòî ðåäàêòîðè ïî òîâà, ÷å òÿ å "ïîñòúïêîâà". Òîâà îçíà÷àâà, ÷å | 879 | ïîâå÷åòî ðåäàêòîðè ïî òîâà, ÷å òÿ å "ïîñòúïêîâà". Òîâà îçíà÷àâà, ÷å |
| 880 | òúðñåíåòî ñå èçâúðøâà îùå äîêàòî âúâåæäàòå òåêñòà, êîéòî òúðñèòå. | 880 | òúðñåíåòî ñå èçâúðøâà îùå äîêàòî âúâåæäàòå òåêñòà, êîéòî òúðñèòå. |
| 881 | 881 | ||
| @@ -883,7 +883,7 @@ Emacs ìîæå äà èçâúðøâà òúðñåíèÿ íà íèçîâå (òîâà ñà ïîñëåäîâàòåëíîñòè | |||
| 883 | òúðñåíå íàçàä. ÍÎ ÏÎ×ÀÊÀÉÒÅ! Íå ãè ïðîáâàéòå ñåãà. | 883 | òúðñåíå íàçàä. ÍÎ ÏÎ×ÀÊÀÉÒÅ! Íå ãè ïðîáâàéòå ñåãà. |
| 884 | 884 | ||
| 885 | Êîãàòî âúâåäåòå C-s, ùå çàáåëåæèòå, ÷å íèçúò "I-search" ñå ïîÿâÿâà | 885 | Êîãàòî âúâåäåòå C-s, ùå çàáåëåæèòå, ÷å íèçúò "I-search" ñå ïîÿâÿâà |
| 886 | êàòî ïîäñêàçêà â åõî îáëàñòòà. Òîâà âè êàçâà, ÷å Emacs å â òîâà, | 886 | êàòî ïîäñêàçêà â åõî îáëàñòòà. Òîâà âè êàçâà, ÷å Åìàêñ å â òîâà, |
| 887 | êîåòî ñå íàðè÷à ïîñòúïêîâî òúðñåíå, ÷àêàéêè âè äà âúâåæäàòå òåêñòà, | 887 | êîåòî ñå íàðè÷à ïîñòúïêîâî òúðñåíå, ÷àêàéêè âè äà âúâåæäàòå òåêñòà, |
| 888 | êîéòî èñêàòå äà òúðñèòå. <Return> ïðèêëþ÷âà òúðñåíåòî. | 888 | êîéòî èñêàòå äà òúðñèòå. <Return> ïðèêëþ÷âà òúðñåíåòî. |
| 889 | 889 | ||
| @@ -895,19 +895,19 @@ Emacs ìîæå äà èçâúðøâà òúðñåíèÿ íà íèçîâå (òîâà ñà ïîñëåäîâàòåëíîñòè | |||
| 895 | >> Ñåãà âúâåäåòå <Delback> òðè ïúòè è âèæòå êàê ñå ïðèäâèæâà êóðñîðà. | 895 | >> Ñåãà âúâåäåòå <Delback> òðè ïúòè è âèæòå êàê ñå ïðèäâèæâà êóðñîðà. |
| 896 | >> Âúâåäåòå <Return>, çà äà ïðåêðàòèòå òúðñåíåòî. | 896 | >> Âúâåäåòå <Return>, çà äà ïðåêðàòèòå òúðñåíåòî. |
| 897 | 897 | ||
| 898 | Çàáåëÿçàõòå ëè êàêâî ñòàíà? Emacs, êîãàòî òúðñè ïîñòúïêîâî, ñå îïèòâà | 898 | Çàáåëÿçàõòå ëè êàêâî ñòàíà? Åìàêñ, êîãàòî òúðñè ïîñòúïêîâî, ñå îïèòâà |
| 899 | äà íàìåðè ñëåäâàùîòî ñúâïàäåíèå íà íèçà, êîéòî ñå âúâåæäà. Çà äà | 899 | äà íàìåðè ñëåäâàùîòî ñúâïàäåíèå íà íèçà, êîéòî ñå âúâåæäà. Çà äà |
| 900 | îòèäåòå íà ñëåäâàùîòî ñúâïàäåíèå íà "òúðñíå", ïðîñòî îòíîâî âúâåäåòå | 900 | îòèäåòå íà ñëåäâàùîòî ñúâïàäåíèå íà "òúðñíå", ïðîñòî îòíîâî âúâåäåòå |
| 901 | C-s. Àêî íÿìà òàêîâà ñúâïàäåíèå, Emacs áèáèïâà è âè êàçâà, ÷å | 901 | C-s. Àêî íÿìà òàêîâà ñúâïàäåíèå, Åìàêñ áèáèïâà è âè êàçâà, ÷å |
| 902 | òúðñåíåòî å "ïðîâàëåíî" (failing). C-g ñúùî ïðåêðàòÿâà òúðñåíåòî. | 902 | òúðñåíåòî å "ïðîâàëåíî" (failing). C-g ñúùî ïðåêðàòÿâà òúðñåíåòî. |
| 903 | 903 | ||
| 904 | ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-s ùå çàìðàçè åêðàíà è âèå | 904 | ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-s ùå çàìðàçè åêðàíà è âèå |
| 905 | íÿìà äà ìîæå äà âèäèòå ïîâå÷å ðåàêöèÿ îò Emacs. Òîâà ïîêàçâà, ÷å | 905 | íÿìà äà ìîæå äà âèäèòå ïîâå÷å ðåàêöèÿ îò Åìàêñ. Òîâà ïîêàçâà, ÷å |
| 906 | "ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðå÷åíà "óïðàâëåíèå íà ïîòîêà" | 906 | "ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðå÷åíà "óïðàâëåíèå íà ïîòîêà" |
| 907 | (flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà äî Emacs. Çà äà | 907 | (flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà äî Åìàêñ. Çà äà |
| 908 | ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî | 908 | ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî |
| 909 | âêëþ÷âàíå íà ïîñòúïêîâîòî òúðñåíå" (Spontaneous Entry to Incremental | 909 | âêëþ÷âàíå íà ïîñòúïêîâîòî òúðñåíå" (Spontaneous Entry to Incremental |
| 910 | Search) â ðúêîâîäñòâîòî íà Emacs çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè | 910 | Search) â ðúêîâîäñòâîòî íà Åìàêñ çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè |
| 911 | "ñïîñîáíîñò". | 911 | "ñïîñîáíîñò". |
| 912 | 912 | ||
| 913 | Àêî ñòå â ñðåäàòà íà ïîñòúïêîâî òúðñåíå è âúâåäåòå <Delback>, ùå | 913 | Àêî ñòå â ñðåäàòà íà ïîñòúïêîâî òúðñåíå è âúâåäåòå <Delback>, ùå |
| @@ -929,9 +929,9 @@ C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà | |||
| 929 | 929 | ||
| 930 | 930 | ||
| 931 | * ÌÍÎÆÅÑÒÂÎ ÏÐÎÇÎÐÖÈ | 931 | * ÌÍÎÆÅÑÒÂÎ ÏÐÎÇÎÐÖÈ |
| 932 | -------------------- | 932 | ---------------- |
| 933 | 933 | ||
| 934 | Åäíà îò ïðèâëåêàòåëíèòå ñïîñîáíîñòè íà Emacs å òàçè, ÷å ìîæå äà | 934 | Åäíà îò ïðèâëåêàòåëíèòå ñïîñîáíîñòè íà Åìàêñ å òàçè, ÷å ìîæå äà |
| 935 | ãëåäàòå ïîâå÷å îò åäèí ïðîçîðåö íà åêðàíà â äàäåí ìîìåíò îò âðåìå. | 935 | ãëåäàòå ïîâå÷å îò åäèí ïðîçîðåö íà åêðàíà â äàäåí ìîìåíò îò âðåìå. |
| 936 | 936 | ||
| 937 | >> Ïðèäâèæåòå êóðñîðà äî òîçè ðåä è âúâåäåòå C-u 0 C-l (òîâà å | 937 | >> Ïðèäâèæåòå êóðñîðà äî òîçè ðåä è âúâåäåòå C-u 0 C-l (òîâà å |
| @@ -942,7 +942,7 @@ C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà | |||
| 942 | îñòàâà íà ïî-ãîðíèÿ ïðîçîðåö. | 942 | îñòàâà íà ïî-ãîðíèÿ ïðîçîðåö. |
| 943 | 943 | ||
| 944 | >> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå äîëíèÿ ïðîçîðåö. (Àêî íÿìàòå | 944 | >> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå äîëíèÿ ïðîçîðåö. (Àêî íÿìàòå |
| 945 | èñòèíñêè êëàâèø META, âúâåäåòå <ESC> C-v.) | 945 | èñòèíñêè êëàâèø META, âúâåäåòå ESC C-v.) |
| 946 | 946 | ||
| 947 | >> Âúâåäåòå C-x o ("o" îò "other" -- "äðóã"), çà äà ïðèäâèæèòå | 947 | >> Âúâåäåòå C-x o ("o" îò "other" -- "äðóã"), çà äà ïðèäâèæèòå |
| 948 | êóðñîðà â äîëíèÿ ïðîçîðåö. | 948 | êóðñîðà â äîëíèÿ ïðîçîðåö. |
| @@ -971,10 +971,10 @@ C-M-v å ïðèìåð çà çíàê CONTROL-META. Àêî èìàòå èñòèíñêè êëàâèø META, | |||
| 971 | ïúðâè", çàùîòî è äâàòà êëàâèøà äåéñòâàò, ìîäèôèöèðàéêè çíàêà, êîéòî | 971 | ïúðâè", çàùîòî è äâàòà êëàâèøà äåéñòâàò, ìîäèôèöèðàéêè çíàêà, êîéòî |
| 972 | ñòå âúâåëè. | 972 | ñòå âúâåëè. |
| 973 | 973 | ||
| 974 | Àêî íÿìàòå èñòèíñêè êëàâèø META è èçïîëçâàòå <ESC> âìåñòî òîâà, ðåäúò | 974 | Àêî íÿìàòå èñòèíñêè êëàâèø META è èçïîëçâàòå ESC âìåñòî òîâà, ðåäúò |
| 975 | èìà çíà÷åíèå: òðÿáâà äà âúâåæäàòå <ESC>, ïîñëåäâàí îò CONTROL-v, | 975 | èìà çíà÷åíèå: òðÿáâà äà âúâåæäàòå ESC, ïîñëåäâàí îò CONTROL-v, çàùîòî |
| 976 | çàùîòî CONTROL-<ESC> v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî <ESC> å | 976 | CONTROL-ESC v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî ESC å ñîáñòâåí |
| 977 | ñîáñòâåí çíàê, à íå ìîäèôèêàòîð. | 977 | çíàê, à íå ìîäèôèêàòîð. |
| 978 | 978 | ||
| 979 | >> Âúâåäåòå C-x 1 (â ãîðíèÿ ïðîçîðåö), çà äà ìàõíåòå äîëíèÿ ïðîçîðåö. | 979 | >> Âúâåäåòå C-x 1 (â ãîðíèÿ ïðîçîðåö), çà äà ìàõíåòå äîëíèÿ ïðîçîðåö. |
| 980 | 980 | ||
| @@ -1007,13 +1007,13 @@ C-M-v å ïðèìåð çà çíàê CONTROL-META. Àêî èìàòå èñòèíñêè êëàâèø META, | |||
| 1007 | íà ãëàâíèÿ ðåæèì. Íàïðèìåð, ìîæå äà âèäèòå [(Fundamental)] âìåñòî | 1007 | íà ãëàâíèÿ ðåæèì. Íàïðèìåð, ìîæå äà âèäèòå [(Fundamental)] âìåñòî |
| 1008 | (Fundamental). | 1008 | (Fundamental). |
| 1009 | 1009 | ||
| 1010 | Çà äà ñå ìàõíåòå îò âëîæåíîòî íèâî íà ðåäàêòèðàíå, âúâåäåòå <ESC> | 1010 | Çà äà ñå ìàõíåòå îò âëîæåíîòî íèâî íà ðåäàêòèðàíå, âúâåäåòå ESC ESC |
| 1011 | <ESC> <ESC>. Òîâà å îáùà êîìàíäà çà "èçëèçàíå". Ìîæå è äà ÿ | 1011 | ESC. Òîâà å îáùà êîìàíäà çà "èçëèçàíå". Ìîæå è äà ÿ èçïîëçâàòå çà |
| 1012 | èçïîëçâàòå çà ìàõàíå (ñêðèâàíå) íà äîïúëíèòåëíè ïðîçîðöè, êàêòî è çà | 1012 | ìàõàíå (ñêðèâàíå) íà äîïúëíèòåëíè ïðîçîðöè, êàêòî è çà äà ñå ìàõíåòå |
| 1013 | äà ñå ìàõíåòå îò ìèíèáóôåðà. | 1013 | îò ìèíèáóôåðà. |
| 1014 | 1014 | ||
| 1015 | >> Âúâåäåòå M-x, çà äà âëåçåòå â ìèíèáóôåð; òîãàâà âúâåäåòå <ESC> <ESC> | 1015 | >> Âúâåäåòå M-x, çà äà âëåçåòå â ìèíèáóôåð; òîãàâà âúâåäåòå ESC ESC |
| 1016 | <ESC>, çà äà èçëåçåòå. | 1016 | ESC, çà äà èçëåçåòå. |
| 1017 | 1017 | ||
| 1018 | Íå ìîæåòå äà èçïîëçâàòå C-g, çà äà èçëåçåòå îò âëîæåíî íèâî íà | 1018 | Íå ìîæåòå äà èçïîëçâàòå C-g, çà äà èçëåçåòå îò âëîæåíî íèâî íà |
| 1019 | ðåäàêòèðàíå. Òîâà å òàêà, çàùîòî C-g ñå èçïîëçâà çà ïðåêðàòÿâàíå íà | 1019 | ðåäàêòèðàíå. Òîâà å òàêà, çàùîòî C-g ñå èçïîëçâà çà ïðåêðàòÿâàíå íà |
| @@ -1024,16 +1024,16 @@ C-M-v å ïðèìåð çà çíàê CONTROL-META. Àêî èìàòå èñòèíñêè êëàâèø META, | |||
| 1024 | ---------------------------------- | 1024 | ---------------------------------- |
| 1025 | 1025 | ||
| 1026 |  òîâà âúâåäåíèå ñå îïèòàõìå äà îñèãóðèì äîñòàòú÷íî èíôîðìàöèÿ, çà äà | 1026 |  òîâà âúâåäåíèå ñå îïèòàõìå äà îñèãóðèì äîñòàòú÷íî èíôîðìàöèÿ, çà äà |
| 1027 | çàïî÷íåòå äà èçïîëçâàòå Emacs. Èìà òîëêîâà ìíîãî îùå â Emacs, ÷å íå å | 1027 | çàïî÷íåòå äà èçïîëçâàòå Åìàêñ. Èìà òîëêîâà ìíîãî îùå â Åìàêñ, ÷å íå å |
| 1028 | âúçìîæíî òî äà áúäå îáÿñíåíî âñè÷êîòî òóê. Îáà÷å ìîæå äà ïîèñêàòå äà | 1028 | âúçìîæíî òî äà áúäå îáÿñíåíî âñè÷êîòî òóê. Îáà÷å ìîæå äà ïîèñêàòå äà |
| 1029 | íàó÷èòå ïîâå÷å çà Emacs, òúé êàòî òîé ïðèòåæàâà îùå ìíîãî ïîëåçíè | 1029 | íàó÷èòå ïîâå÷å çà Åìàêñ, òúé êàòî òîé ïðèòåæàâà îùå ìíîãî ïîëåçíè |
| 1030 | ñïîñîáíîñòè. Emacs èìà êîìàíäè çà ÷åòåíå íà äîêóìåíòàöèÿòà íà Emacs | 1030 | ñïîñîáíîñòè. Åìàêñ èìà êîìàíäè çà ÷åòåíå íà äîêóìåíòàöèÿòà íà Åìàêñ |
| 1031 | êîìàíäèòå. Òåçè "ïîìîùíè" êîìàíäè âñè÷êè çàïî÷âàò ñúñ çíàêà | 1031 | êîìàíäèòå. Òåçè "ïîìîùíè" êîìàíäè âñè÷êè çàïî÷âàò ñúñ çíàêà |
| 1032 | CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù". | 1032 | CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù". |
| 1033 | 1033 | ||
| 1034 | Çà äà èçïîëçâàòå âúçìîæíîñòèòå íà òàçè ïîìîù, âúâåäåòå çíàêà C-h è | 1034 | Çà äà èçïîëçâàòå âúçìîæíîñòèòå íà òàçè ïîìîù, âúâåäåòå çíàêà C-h è |
| 1035 | ñëåä òîâà çíàêà, êàçâàù êàêúâ âèä ïîìîù èñêàòå. Àêî ÍÀÈÑÒÈÍÀ ñòå ñå | 1035 | ñëåä òîâà çíàêà, êàçâàù êàêúâ âèä ïîìîù èñêàòå. Àêî ÍÀÈÑÒÈÍÀ ñòå ñå |
| 1036 | èçãóáèëè, âúâåäåòå C-h ? è Emacs ùå âè êàæå ñ êàêâî ìîæå äà âè | 1036 | èçãóáèëè, âúâåäåòå C-h ? è Åìàêñ ùå âè êàæå ñ êàêâî ìîæå äà âè |
| 1037 | ïîìîãíå. Àêî ñòå âúâåëè C-h è ðåøèòå, ÷å íå ñå íóæäàåòå îò ïîìîù, | 1037 | ïîìîãíå. Àêî ñòå âúâåëè C-h è ðåøèòå, ÷å íå ñå íóæäàåòå îò ïîìîù, |
| 1038 | ïðîñòî âúâåäåòå C-g, çà äà ÿ ïðåêðàòèòå. | 1038 | ïðîñòî âúâåäåòå C-g, çà äà ÿ ïðåêðàòèòå. |
| 1039 | 1039 | ||
| @@ -1045,7 +1045,7 @@ CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù". | |||
| 1045 | 1045 | ||
| 1046 | Íàé-îñíîâíîòî ïîìîùíî ñðåäñòâî å C-h c. Âúâåäåòå C-h, çíàêà c è | 1046 | Íàé-îñíîâíîòî ïîìîùíî ñðåäñòâî å C-h c. Âúâåäåòå C-h, çíàêà c è |
| 1047 | êîìàíäåí çíàê èëè ïîñëåäîâàòåëíîñò îò çíàöè, îáðàçóâàùè êîìàíäà; | 1047 | êîìàíäåí çíàê èëè ïîñëåäîâàòåëíîñò îò çíàöè, îáðàçóâàùè êîìàíäà; |
| 1048 | òîãàâà Emacs ùå èçâåäå ìíîãî êðàòêî îïèñàíèå íà êîìàíäàòà. | 1048 | òîãàâà Åìàêñ ùå èçâåäå ìíîãî êðàòêî îïèñàíèå íà êîìàíäàòà. |
| 1049 | 1049 | ||
| 1050 | >> Type C-h c C-p. | 1050 | >> Type C-h c C-p. |
| 1051 | 1051 | ||
| @@ -1055,7 +1055,7 @@ CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù". | |||
| 1055 | (C-p èçïúëíÿâà êîìàíäàòà ïðåäèøåí-ðåä) | 1055 | (C-p èçïúëíÿâà êîìàíäàòà ïðåäèøåí-ðåä) |
| 1056 | 1056 | ||
| 1057 | Òîâà âè êàçâà "èìåòî íà ôóíêöèÿòà". Èìåíàòà íà ôóíêöèèòå ñå èçïîëçâàò | 1057 | Òîâà âè êàçâà "èìåòî íà ôóíêöèÿòà". Èìåíàòà íà ôóíêöèèòå ñå èçïîëçâàò |
| 1058 | íàé-âå÷å çà íàñòðîéâàíå è ðàçøèðÿâàíå íà Emacs. Íî òúé êàòî èìåíàòà | 1058 | íàé-âå÷å çà íàñòðîéâàíå è ðàçøèðÿâàíå íà Åìàêñ. Íî òúé êàòî èìåíàòà |
| 1059 | íà ôóíêöèèòå ñà èçáðàíè òàêà, ÷å äà ïîêàçâàò êàêâî ïðàâè êîìàíäàòà, òå | 1059 | íà ôóíêöèèòå ñà èçáðàíè òàêà, ÷å äà ïîêàçâàò êàêâî ïðàâè êîìàíäàòà, òå |
| 1060 | ìîãàò äà ñëóæàò è çà ìíîãî êðàòêà äîêóìåíòàöèÿ -- äîñòàòú÷íà, çà äà âè | 1060 | ìîãàò äà ñëóæàò è çà ìíîãî êðàòêà äîêóìåíòàöèÿ -- äîñòàòú÷íà, çà äà âè |
| 1061 | ïðèïîìíè êîìàíäè, êîèòî âå÷å ñòå ó÷èëè. | 1061 | ïðèïîìíè êîìàíäè, êîèòî âå÷å ñòå ó÷èëè. |
| @@ -1069,7 +1069,7 @@ c. | |||
| 1069 | >> Âúâåäåòå C-h k C-p. | 1069 | >> Âúâåäåòå C-h k C-p. |
| 1070 | 1070 | ||
| 1071 | Òîâà èçâåæäà äîêóìåíòàöèÿòà íà ôóíêöèÿòà, êàêòî è íåéíîòî èìå, â | 1071 | Òîâà èçâåæäà äîêóìåíòàöèÿòà íà ôóíêöèÿòà, êàêòî è íåéíîòî èìå, â |
| 1072 | îòäåëåí Emacs ïðîçîðåö. Êîãàòî ÿ ïðî÷åòåòå, âúâåäåòå C-x 1, çà äà | 1072 | îòäåëåí Åìàêñ ïðîçîðåö. Êîãàòî ÿ ïðî÷åòåòå, âúâåäåòå C-x 1, çà äà |
| 1073 | ìàõíåòå ïîìîùíèÿ òåêñò. Íå å íóæíî äà ïðàâèòå òîâà òî÷íî ñåãà. Ìîæå | 1073 | ìàõíåòå ïîìîùíèÿ òåêñò. Íå å íóæíî äà ïðàâèòå òîâà òî÷íî ñåãà. Ìîæå |
| 1074 | äà ðåäàêòèðàòå, äîêàòî ñå îáðúùàòå êúì ïîìîùíèÿ òåêñò çà ñïðàâêà, è | 1074 | äà ðåäàêòèðàòå, äîêàòî ñå îáðúùàòå êúì ïîìîùíèÿ òåêñò çà ñïðàâêà, è |
| 1075 | ñëåä òîâà äà âúâåäåòå C-x 1. | 1075 | ñëåä òîâà äà âúâåäåòå C-x 1. |
| @@ -1080,14 +1080,14 @@ c. | |||
| 1080 | ôóíêöèÿòà. | 1080 | ôóíêöèÿòà. |
| 1081 | 1081 | ||
| 1082 | >> Îïèòàéòå ñ âúâåæäàíå íà C-h f previous-line<Return>. | 1082 | >> Îïèòàéòå ñ âúâåæäàíå íà C-h f previous-line<Return>. |
| 1083 | Òîâà èçâåæäà öÿëàòà èíôîðìàöèÿ, êîÿòî Emacs çíàå çà ôóíêöèÿòà, | 1083 | Òîâà èçâåæäà öÿëàòà èíôîðìàöèÿ, êîÿòî Åìàêñ çíàå çà ôóíêöèÿòà, |
| 1084 | êîÿòî îñúùåñòâÿâà êîìàíäàòà C-p. | 1084 | êîÿòî îñúùåñòâÿâà êîìàíäàòà C-p. |
| 1085 | 1085 | ||
| 1086 | Ïîäîáíà êîìàíäà, C-h v, èçâåæäà äîêóìåíòàöèÿòà íà ïðîìåíëèâèòå, êîèòî | 1086 | Ïîäîáíà êîìàíäà, C-h v, èçâåæäà äîêóìåíòàöèÿòà íà ïðîìåíëèâèòå, êîèòî |
| 1087 | ìîæå äà ïðîìåíÿòå, çà äà íàñòðîéâàòå ïîâåäåíèåòî íà Emacs. Òðÿáâà äà | 1087 | ìîæå äà ïðîìåíÿòå, çà äà íàñòðîéâàòå ïîâåäåíèåòî íà Åìàêñ. Òðÿáâà äà |
| 1088 | âúâåäåòå èìåòî íà ïðîìåíëèâàòà, êîãàòî Emacs âè ïîäñêàæå òîâà. | 1088 | âúâåäåòå èìåòî íà ïðîìåíëèâàòà, êîãàòî Åìàêñ âè ïîäñêàæå òîâà. |
| 1089 | 1089 | ||
| 1090 | C-h a Êîìàíäà Àïðîïîñ. Âúâåäåòå êëþ÷îâà äóìà è Emacs ùå | 1090 | C-h a Êîìàíäà Àïðîïîñ. Âúâåäåòå êëþ÷îâà äóìà è Åìàêñ ùå |
| 1091 | ïîêàæå ñïèñúê íà âñè÷êè êîìàíäè, ÷èåòî èìå ñúäúðæà | 1091 | ïîêàæå ñïèñúê íà âñè÷êè êîìàíäè, ÷èåòî èìå ñúäúðæà |
| 1092 | òàçè êëþ÷îâà äóìà. Òåçè êîìàíäè ìîãàò âñè÷êè äà áúäàò | 1092 | òàçè êëþ÷îâà äóìà. Òåçè êîìàíäè ìîãàò âñè÷êè äà áúäàò |
| 1093 | èçâèêàíè ÷ðåç META-x. Çà íÿêîè êîìàíäè êîìàíäàòà | 1093 | èçâèêàíè ÷ðåç META-x. Çà íÿêîè êîìàíäè êîìàíäàòà |
| @@ -1110,18 +1110,18 @@ C-f, èçáðîåíè èçìåæäó ñúîòâåòíèòå èìåíà íà êîìàíäè, êàòî find-file. | |||
| 1110 | ñïåöèàëåí áóôåð, íàðè÷àí "*info*", êúäåòî ìîæå äà | 1110 | ñïåöèàëåí áóôåð, íàðè÷àí "*info*", êúäåòî ìîæå äà |
| 1111 | ÷åòåòå ðúêîâîäñòâàòà íà èíñòàëèðàíèòå âúâ âàøàòà | 1111 | ÷åòåòå ðúêîâîäñòâàòà íà èíñòàëèðàíèòå âúâ âàøàòà |
| 1112 | ñèñòåìà ïàêåòè. Âúâåäåòå m emacs <Return>, çà äà | 1112 | ñèñòåìà ïàêåòè. Âúâåäåòå m emacs <Return>, çà äà |
| 1113 | ÷åòåòå ðúêîâîäñòâîòî íà Emacs. Àêî íèêîãà ïðåäè òîâà | 1113 | ÷åòåòå ðúêîâîäñòâîòî íà Åìàêñ. Àêî íèêîãà ïðåäè òîâà |
| 1114 | íå ñòå èçïîëçâàëè Info, âúâåäåòå ? è Emacs ùå âêëþ÷è | 1114 | íå ñòå èçïîëçâàëè Info, âúâåäåòå ? è Åìàêñ ùå âêëþ÷è |
| 1115 | âúâåäåíèå âúâ âúçìîæíîñòèòå íà ðåæèìà Èíôî. Âåäíúæ | 1115 | âúâåäåíèå âúâ âúçìîæíîñòèòå íà ðåæèìà Èíôî. Âåäíúæ |
| 1116 | ñëåä êàòî ñòå ïðåìèíàëè òîâà âúâåäåíèå, òðÿáâà äà ñå | 1116 | ñëåä êàòî ñòå ïðåìèíàëè òîâà âúâåäåíèå, òðÿáâà äà ñå |
| 1117 | êîíñóëòèðàòå ñ Emacs Èíôî ðúêîâîäñòâîòî êàòî âàøà | 1117 | êîíñóëòèðàòå ñ Åìàêñ Èíôî ðúêîâîäñòâîòî êàòî âàøà |
| 1118 | îñíîâíà äîêóìåíòàöèÿ. | 1118 | îñíîâíà äîêóìåíòàöèÿ. |
| 1119 | 1119 | ||
| 1120 | 1120 | ||
| 1121 | * ÎÙÅ ÂÚÇÌÎÆÍÎÑÒÈ | 1121 | * ÎÙÅ ÂÚÇÌÎÆÍÎÑÒÈ |
| 1122 | ----------------- | 1122 | ----------------- |
| 1123 | 1123 | ||
| 1124 | Ìîæå äà íàó÷èòå ïîâå÷å çà Emacs ñ ÷åòåíå íà íåãîâîòî ðúêîâîäñòâî, èëè | 1124 | Ìîæå äà íàó÷èòå ïîâå÷å çà Åìàêñ ñ ÷åòåíå íà íåãîâîòî ðúêîâîäñòâî, èëè |
| 1125 | êàòî êíèãà, èëè â Èíôî (èçïîëçâàéòå ìåíþòî ïîìîù (Help) èëè âúâåäåòå | 1125 | êàòî êíèãà, èëè â Èíôî (èçïîëçâàéòå ìåíþòî ïîìîù (Help) èëè âúâåäåòå |
| 1126 | F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà | 1126 | F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà |
| 1127 | äîâúðøâàíå (completion), êîåòî ñïåñòÿâà ïèñàíå, è dired, êîéòî | 1127 | äîâúðøâàíå (completion), êîåòî ñïåñòÿâà ïèñàíå, è dired, êîéòî |
| @@ -1129,26 +1129,26 @@ F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà | |||
| 1129 | 1129 | ||
| 1130 | Äîâúðøâàíåòî å íà÷èí äà èçáÿãâàòå íåíóæíî ïèñàíå. Íàïðèìåð, àêî | 1130 | Äîâúðøâàíåòî å íà÷èí äà èçáÿãâàòå íåíóæíî ïèñàíå. Íàïðèìåð, àêî |
| 1131 | èñêàòå äà ïðåâêëþ÷èòå êúì áóôåðà *Messages*, ìîæå äà âúâåäåòå C-x b | 1131 | èñêàòå äà ïðåâêëþ÷èòå êúì áóôåðà *Messages*, ìîæå äà âúâåäåòå C-x b |
| 1132 | *M<Tab> è Emacs ùå çàïúëíè îñòàíàëàòà ÷àñò îò èìåòî íà áóôåðà, | 1132 | *M<Tab> è Åìàêñ ùå çàïúëíè îñòàíàëàòà ÷àñò îò èìåòî íà áóôåðà, |
| 1133 | äîêîëêîòî ìîæå äà ñå îïðåäåëè îò òîâà, êîåòî ñòå âúâåëè. Äîâúðøâàíåòî | 1133 | äîêîëêîòî ìîæå äà ñå îïðåäåëè îò òîâà, êîåòî ñòå âúâåëè. Äîâúðøâàíåòî |
| 1134 | å îïèñàíî â Èíôî-ðúêîâîäñòâîòî íà Emacs â ñòðàíèöàòà "Äîâúðøâàíå" | 1134 | å îïèñàíî â Èíôî-ðúêîâîäñòâîòî íà Åìàêñ â ñòðàíèöàòà "Äîâúðøâàíå" |
| 1135 | ("Completion"). | 1135 | ("Completion"). |
| 1136 | 1136 | ||
| 1137 | Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî | 1137 | Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî |
| 1138 | âúçìîæíîñò: íåéíèòå ïîääèðåêòîðèè), äà ñå ïðèäâèæâàòå â òîçè ñïèñúê, | 1138 | âúçìîæíîñò: íåéíèòå ïîääèðåêòîðèè), äà ñå ïðèäâèæâàòå â òîçè ñïèñúê, |
| 1139 | äà ïîñåùàâàòå, ïðåèìåíóâàòå, èçòðèâàòå è èçîáùî äåéñòâàòå âúðõó | 1139 | äà ïîñåùàâàòå, ïðåèìåíóâàòå, èçòðèâàòå è èçîáùî äåéñòâàòå âúðõó |
| 1140 | ôàéëîâåòå. Dired å îïèñàí â Èíôî-ðúêîâîäñòâîòî íà Emacs â ñòðàíèöàòà | 1140 | ôàéëîâåòå. Dired å îïèñàí â Èíôî-ðúêîâîäñòâîòî íà Åìàêñ â ñòðàíèöàòà |
| 1141 | "Dired". | 1141 | "Dired". |
| 1142 | 1142 | ||
| 1143 | Ðúêîâîäñòâîòî íà Emacs îïèñâà îùå ìíîãî äðóãè âúçìîæíîñòè íà | 1143 | Ðúêîâîäñòâîòî íà Åìàêñ îïèñâà îùå ìíîãî äðóãè âúçìîæíîñòè íà |
| 1144 | ðåäàêòîðà. | 1144 | ðåäàêòîðà. |
| 1145 | 1145 | ||
| 1146 | 1146 | ||
| 1147 | * ÇÀÊËÞ×ÅÍÈÅ | 1147 | * ÇÀÊËÞ×ÅÍÈÅ |
| 1148 | ------------ | 1148 | ------------ |
| 1149 | 1149 | ||
| 1150 | Çàïîìíåòå: çà äà èçëåçåòå áåçâúçâðàòíî îò Emacs, èçïîëçâàéòå C-x C-c. | 1150 | Çàïîìíåòå: çà äà èçëåçåòå áåçâúçâðàòíî îò Åìàêñ, èçïîëçâàéòå C-x C-c. |
| 1151 | Çà äà èçëåçåòå âðåìåííî â îáâèâêà, òàêà ÷å äà ñå âúðíåòå â Emacs | 1151 | Çà äà èçëåçåòå âðåìåííî â îáâèâêà, òàêà ÷å äà ñå âúðíåòå â Åìàêñ |
| 1152 | ïî-êúñíî, èçïîëçâàéòå C-z. | 1152 | ïî-êúñíî, èçïîëçâàéòå C-z. |
| 1153 | 1153 | ||
| 1154 | Òîâà âúâåäåíèå å ïðåäâèäåíî äà áúäå ðàçáèðàåìî çà âñè÷êè íîâè | 1154 | Òîâà âúâåäåíèå å ïðåäâèäåíî äà áúäå ðàçáèðàåìî çà âñè÷êè íîâè |
| @@ -1159,10 +1159,10 @@ Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî | |||
| 1159 | * ÊÎÏÈÐÀÍÅ | 1159 | * ÊÎÏÈÐÀÍÅ |
| 1160 | ---------- | 1160 | ---------- |
| 1161 | 1161 | ||
| 1162 | Òîâà âúâåäåíèå ïðîèçëèçà îò äúëãà ïîðåäèöà âúâåäåíèÿ â Emacs, | 1162 | Òîâà âúâåäåíèå ïðîèçëèçà îò äúëãà ïîðåäèöà âúâåäåíèÿ â Åìàêñ, |
| 1163 | çàïî÷âàéêè îò åäíî, íàïèñàíî îò Ñòþúðò Êðàêðàôò çà íà÷àëíèÿ Emacs. | 1163 | çàïî÷âàéêè îò åäíî, íàïèñàíî îò Ñòþúðò Êðàêðàôò çà íà÷àëíèÿ Åìàêñ. |
| 1164 | 1164 | ||
| 1165 | Òàçè âåðñèÿ íà âúâåäåíèåòî, êàêòî è GNU Emacs, å çàùèòåíà ñ àâòîðñêè | 1165 | Òàçè âåðñèÿ íà âúâåäåíèåòî, êàêòî è ÃÍÓ Åìàêñ, å çàùèòåíà ñ àâòîðñêè |
| 1166 | ïðàâà è èäâà ñ ðàçðåøåíèå äà ðàçïðîñòðàíÿâàòå êîïèÿ ïðè ñëåäíèòå | 1166 | ïðàâà è èäâà ñ ðàçðåøåíèå äà ðàçïðîñòðàíÿâàòå êîïèÿ ïðè ñëåäíèòå |
| 1167 | óñëîâèÿ: | 1167 | óñëîâèÿ: |
| 1168 | 1168 | ||
| @@ -1183,8 +1183,8 @@ Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004, | |||
| 1183 | under the above conditions, provided also that they | 1183 | under the above conditions, provided also that they |
| 1184 | carry prominent notices stating who last altered them. | 1184 | carry prominent notices stating who last altered them. |
| 1185 | 1185 | ||
| 1186 | Óñëîâèÿòà çà êîïèðàíå íà ñàìèÿ Emacs ñà ïî-ñëîæíè, íî â ñúùèÿ äóõ. | 1186 | Óñëîâèÿòà çà êîïèðàíå íà ñàìèÿ Åìàêñ ñà ïî-ñëîæíè, íî â ñúùèÿ äóõ. |
| 1187 | Ìîëÿ, ïðî÷åòåòå ôàéëà COPYING è òîãàâà äàâàéòå êîïèÿ íà GNU Emacs íà | 1187 | Ìîëÿ, ïðî÷åòåòå ôàéëà COPYING è òîãàâà äàâàéòå êîïèÿ íà ÃÍÓ Åìàêñ íà |
| 1188 | ñâîè ïðèÿòåëè. Ïîìîãíåòå äà ñïðåì çàòâîðåíîñòòà íà ïðîãðàìèòå | 1188 | ñâîè ïðèÿòåëè. Ïîìîãíåòå äà ñïðåì çàòâîðåíîñòòà íà ïðîãðàìèòå |
| 1189 | ("ïðèòåæàíèåòî"), êàòî èçïîëçâàìå, ïèøåì è ñïîäåëÿìå ñâîáîäåí ñîôòóåð! | 1189 | ("ïðèòåæàíèåòî"), êàòî èçïîëçâàìå, ïèøåì è ñïîäåëÿìå ñâîáîäåí ñîôòóåð! |
| 1190 | 1190 | ||
diff --git a/leim/ChangeLog b/leim/ChangeLog index cae118736e9..7a167953f48 100644 --- a/leim/ChangeLog +++ b/leim/ChangeLog | |||
| @@ -1,3 +1,17 @@ | |||
| 1 | 2006-10-12 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * Makefile.in (install): Be sure to make ${INSTALLDIR} before `cd' | ||
| 4 | to it. | ||
| 5 | |||
| 6 | 2006-10-05 Chong Yidong <cyd@stupidchicken.com> | ||
| 7 | |||
| 8 | * quail/latin-ltx.el: Fix typo in previous change. | ||
| 9 | |||
| 10 | 2006-10-05 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 11 | |||
| 12 | * quail/latin-ltx.el: Remove rules that start with { since they are | ||
| 13 | redundant and hence impact the { key for no good reason. | ||
| 14 | |||
| 1 | 2006-10-02 Kenichi Handa <handa@m17n.org> | 15 | 2006-10-02 Kenichi Handa <handa@m17n.org> |
| 2 | 16 | ||
| 3 | * Makefile.in (install): Fix previous change. | 17 | * Makefile.in (install): Fix previous change. |
diff --git a/leim/Makefile.in b/leim/Makefile.in index 2b6ca8e9c15..1fb6636fbca 100644 --- a/leim/Makefile.in +++ b/leim/Makefile.in | |||
| @@ -216,13 +216,12 @@ leim-list.el: ${SUBDIRS} ${NON-TIT-MISC} changed.tit changed.misc ${srcdir}/leim | |||
| 216 | sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@ | 216 | sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@ |
| 217 | 217 | ||
| 218 | install: all | 218 | install: all |
| 219 | if [ ! -d ${INSTALLDIR} ] ; then \ | ||
| 220 | ${srcdir}/${dot}${dot}/mkinstalldirs ${INSTALLDIR}; \ | ||
| 221 | else true; fi | ||
| 219 | if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then \ | 222 | if [ x`(cd ${INSTALLDIR} && /bin/pwd)` != x`(/bin/pwd)` ] ; then \ |
| 220 | if [ -d ${INSTALLDIR} ] ; then \ | 223 | rm -rf ${INSTALLDIR}/leim-list.el; \ |
| 221 | rm -rf ${INSTALLDIR}/leim-list.el; \ | 224 | rm -rf ${INSTALLDIR}/quail ${INSTALLDIR}/ja-dic ; \ |
| 222 | rm -rf ${INSTALLDIR}/quail ${INSTALLDIR}/ja-dic ; \ | ||
| 223 | else \ | ||
| 224 | ${srcdir}/${dot}${dot}/mkinstalldirs ${INSTALLDIR}; \ | ||
| 225 | fi; \ | ||
| 226 | echo "Copying leim files to ${INSTALLDIR} ..." ; \ | 225 | echo "Copying leim files to ${INSTALLDIR} ..." ; \ |
| 227 | if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \ | 226 | if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \ |
| 228 | tar -chf - leim-list.el quail ja-dic \ | 227 | tar -chf - leim-list.el quail ja-dic \ |
diff --git a/leim/quail/latin-ltx.el b/leim/quail/latin-ltx.el index e0cb38ee562..6efdeccad26 100644 --- a/leim/quail/latin-ltx.el +++ b/leim/quail/latin-ltx.el | |||
| @@ -45,17 +45,17 @@ system, including many technical ones. Examples: | |||
| 45 | 45 | ||
| 46 | (quail-define-rules | 46 | (quail-define-rules |
| 47 | ("!`" ?¡) | 47 | ("!`" ?¡) |
| 48 | ("{\\pounds}" ?£) ("\\pounds" ?£) | 48 | ("\\pounds" ?£) ;; ("{\\pounds}" ?£) |
| 49 | ("{\\S}" ?§) ("\\S" ?§) | 49 | ("\\S" ?§) ;; ("{\\S}" ?§) |
| 50 | ("\\\"{}" ?¨) | 50 | ("\\\"{}" ?¨) |
| 51 | ("{\\copyright}" ?©) ("\\copyright" ?©) | 51 | ("\\copyright" ?©) ;; ("{\\copyright}" ?©) |
| 52 | ("$^a$" ?ª) | 52 | ("$^a$" ?ª) |
| 53 | ("\\={}" ?¯) | 53 | ("\\={}" ?¯) |
| 54 | ("$\\pm$" ?±) ("\\pm" ?±) | 54 | ("$\\pm$" ?±) ("\\pm" ?±) |
| 55 | ("$^2$" ?²) | 55 | ("$^2$" ?²) |
| 56 | ("$^3$" ?³) | 56 | ("$^3$" ?³) |
| 57 | ("\\'{}" ?´) | 57 | ("\\'{}" ?´) |
| 58 | ("{\\P}" ?¶) ("\\P" ?¶) | 58 | ("\\P" ?¶) ;; ("{\\P}" ?¶) |
| 59 | ;; Fixme: Yudit has the equivalent of ("\\cdot" ?â‹…), for U+22C5, DOT | 59 | ;; Fixme: Yudit has the equivalent of ("\\cdot" ?â‹…), for U+22C5, DOT |
| 60 | ;; OPERATOR, whereas · is MIDDLE DOT. JadeTeX translates both to | 60 | ;; OPERATOR, whereas · is MIDDLE DOT. JadeTeX translates both to |
| 61 | ;; \cdot. | 61 | ;; \cdot. |
| @@ -71,8 +71,8 @@ system, including many technical ones. Examples: | |||
| 71 | ("\\~{A}" ?Ã) ("\\~A" ?Ã) | 71 | ("\\~{A}" ?Ã) ("\\~A" ?Ã) |
| 72 | ("\\\"{A}" ?Ä) ("\\\"A" ?Ä) | 72 | ("\\\"{A}" ?Ä) ("\\\"A" ?Ä) |
| 73 | ("\\\k{A}" ?Ä„) | 73 | ("\\\k{A}" ?Ä„) |
| 74 | ("{\\AA}" ?Ã…) ("\\AA" ?Ã…) | 74 | ("\\AA" ?Ã…) ;; ("{\\AA}" ?Ã…) |
| 75 | ("{\\AE}" ?Æ) ("\\AE" ?Æ) | 75 | ("\\AE" ?Æ) ;; ("{\\AE}" ?Æ) |
| 76 | ("\\c{C}" ?Ç) ("\\cC" ?Ç) | 76 | ("\\c{C}" ?Ç) ("\\cC" ?Ç) |
| 77 | ("\\`{E}" ?È) ("\\`E" ?È) | 77 | ("\\`{E}" ?È) ("\\`E" ?È) |
| 78 | ("\\'{E}" ?É) ("\\'E" ?É) | 78 | ("\\'{E}" ?É) ("\\'E" ?É) |
| @@ -93,14 +93,14 @@ system, including many technical ones. Examples: | |||
| 93 | ("\\\"{O}" ?Ö) ("\\\"O" ?Ö) | 93 | ("\\\"{O}" ?Ö) ("\\\"O" ?Ö) |
| 94 | ("\\\k{O}" ?Ǫ) | 94 | ("\\\k{O}" ?Ǫ) |
| 95 | ("$\\times$" ?×) ("\\times" ?×) | 95 | ("$\\times$" ?×) ("\\times" ?×) |
| 96 | ("{\\O}" ?Ø) ("\\O" ?Ø) | 96 | ("\\O" ?Ø) ;; ("{\\O}" ?Ø) |
| 97 | ("\\`{U}" ?Ù) ("\\`U" ?Ù) | 97 | ("\\`{U}" ?Ù) ("\\`U" ?Ù) |
| 98 | ("\\'{U}" ?Ú) ("\\'U" ?Ú) | 98 | ("\\'{U}" ?Ú) ("\\'U" ?Ú) |
| 99 | ("\\^{U}" ?Û) ("\\^U" ?Û) | 99 | ("\\^{U}" ?Û) ("\\^U" ?Û) |
| 100 | ("\\\"{U}" ?Ü) ("\\\"U" ?Ü) | 100 | ("\\\"{U}" ?Ü) ("\\\"U" ?Ü) |
| 101 | ("\\\k{U}" ?Ų) | 101 | ("\\\k{U}" ?Ų) |
| 102 | ("\\'{Y}" ?Ã) ("\\'Y" ?Ã) | 102 | ("\\'{Y}" ?Ã) ("\\'Y" ?Ã) |
| 103 | ("{\\ss}" ?ß) ("\\ss" ?ß) | 103 | ("\\ss" ?ß) ;; ("{\\ss}" ?ß) |
| 104 | 104 | ||
| 105 | ("\\`{a}" ?Ã ) ("\\`a" ?Ã ) | 105 | ("\\`{a}" ?Ã ) ("\\`a" ?Ã ) |
| 106 | ("\\'{a}" ?á) ("\\'a" ?á) | 106 | ("\\'{a}" ?á) ("\\'a" ?á) |
| @@ -108,8 +108,8 @@ system, including many technical ones. Examples: | |||
| 108 | ("\\~{a}" ?ã) ("\\~a" ?ã) | 108 | ("\\~{a}" ?ã) ("\\~a" ?ã) |
| 109 | ("\\\"{a}" ?ä) ("\\\"a" ?ä) | 109 | ("\\\"{a}" ?ä) ("\\\"a" ?ä) |
| 110 | ("\\\k{a}" ?Ä…) | 110 | ("\\\k{a}" ?Ä…) |
| 111 | ("{\\aa}" ?Ã¥) ("\\aa" ?Ã¥) | 111 | ("\\aa" ?Ã¥) ;; ("{\\aa}" ?Ã¥) |
| 112 | ("{\\ae}" ?æ) ("\\ae" ?æ) | 112 | ("\\ae" ?æ) ;; ("{\\ae}" ?æ) |
| 113 | ("\\c{c}" ?ç) ("\\cc" ?ç) | 113 | ("\\c{c}" ?ç) ("\\cc" ?ç) |
| 114 | ("\\`{e}" ?è) ("\\`e" ?è) | 114 | ("\\`{e}" ?è) ("\\`e" ?è) |
| 115 | ("\\'{e}" ?é) ("\\'e" ?é) | 115 | ("\\'{e}" ?é) ("\\'e" ?é) |
| @@ -130,7 +130,7 @@ system, including many technical ones. Examples: | |||
| 130 | ("\\\"{o}" ?ö) ("\\\"o" ?ö) | 130 | ("\\\"{o}" ?ö) ("\\\"o" ?ö) |
| 131 | ("\\\k{o}" ?Ç«) | 131 | ("\\\k{o}" ?Ç«) |
| 132 | ("$\\div$" ?÷) ("\\div" ?÷) | 132 | ("$\\div$" ?÷) ("\\div" ?÷) |
| 133 | ("{\\o}" ?ø) ("\\o" ?ø) | 133 | ("\\o" ?ø) ;; ("{\\o}" ?ø) |
| 134 | ("\\`{u}" ?ù) ("\\`u" ?ù) | 134 | ("\\`{u}" ?ù) ("\\`u" ?ù) |
| 135 | ("\\'{u}" ?ú) ("\\'u" ?ú) | 135 | ("\\'{u}" ?ú) ("\\'u" ?ú) |
| 136 | ("\\^{u}" ?û) ("\\^u" ?û) | 136 | ("\\^{u}" ?û) ("\\^u" ?û) |
| @@ -181,7 +181,7 @@ system, including many technical ones. Examples: | |||
| 181 | ("\\u{\\i}" ?Ä) ("\\ui" ?Ä) | 181 | ("\\u{\\i}" ?Ä) ("\\ui" ?Ä) |
| 182 | 182 | ||
| 183 | ("\\.{I}" ?İ) ("\\.I" ?İ) | 183 | ("\\.{I}" ?İ) ("\\.I" ?İ) |
| 184 | ("{\\i}" ?ı) ("\\i" ?ı) | 184 | ("\\i" ?ı) ;; ("{\\i}" ?ı) |
| 185 | ("\\^{J}" ?Ä´) ("\\^J" ?Ä´) | 185 | ("\\^{J}" ?Ä´) ("\\^J" ?Ä´) |
| 186 | ("\\^{\\j}" ?ĵ) ("\\^j" ?ĵ) | 186 | ("\\^{\\j}" ?ĵ) ("\\^j" ?ĵ) |
| 187 | ("\\c{K}" ?Ķ) ("\\cK" ?Ķ) | 187 | ("\\c{K}" ?Ķ) ("\\cK" ?Ķ) |
| @@ -191,8 +191,8 @@ system, including many technical ones. Examples: | |||
| 191 | ("\\c{L}" ?Ä») ("\\cL" ?Ä») | 191 | ("\\c{L}" ?Ä») ("\\cL" ?Ä») |
| 192 | ("\\c{l}" ?ļ) ("\\cl" ?ļ) | 192 | ("\\c{l}" ?ļ) ("\\cl" ?ļ) |
| 193 | 193 | ||
| 194 | ("{\\L}" ?Å) ("\\L" ?Å) | 194 | ("\\L" ?Å) ;; ("{\\L}" ?Å) |
| 195 | ("{\\l}" ?Å‚) ("\\l" ?Å‚) | 195 | ("\\l" ?Å‚) ;; ("{\\l}" ?Å‚) |
| 196 | ("\\'{N}" ?Ń) ("\\'N" ?Ń) | 196 | ("\\'{N}" ?Ń) ("\\'N" ?Ń) |
| 197 | ("\\'{n}" ?Å„) ("\\'n" ?Å„) | 197 | ("\\'{n}" ?Å„) ("\\'n" ?Å„) |
| 198 | ("\\c{N}" ?Å…) ("\\cN" ?Å…) | 198 | ("\\c{N}" ?Å…) ("\\cN" ?Å…) |
| @@ -206,8 +206,8 @@ system, including many technical ones. Examples: | |||
| 206 | 206 | ||
| 207 | ("\\H{O}" ?Å) ("\\HO" ?Å) | 207 | ("\\H{O}" ?Å) ("\\HO" ?Å) |
| 208 | ("\\U{o}" ?Å‘) ("\\Uo" ?Å‘) | 208 | ("\\U{o}" ?Å‘) ("\\Uo" ?Å‘) |
| 209 | ("{\\OE}" ?Å’) ("\\OE" ?Å’) | 209 | ("\\OE" ?Å’) ;; ("{\\OE}" ?Å’) |
| 210 | ("{\\oe}" ?Å“) ("\\oe" ?Å“) | 210 | ("\\oe" ?Å“) ;; ("{\\oe}" ?Å“) |
| 211 | ("\\'{R}" ?Å”) ("\\'R" ?Å”) | 211 | ("\\'{R}" ?Å”) ("\\'R" ?Å”) |
| 212 | ("\\'{r}" ?Å•) ("\\'r" ?Å•) | 212 | ("\\'{r}" ?Å•) ("\\'r" ?Å•) |
| 213 | ("\\c{R}" ?Å–) ("\\cR" ?Å–) | 213 | ("\\c{R}" ?Å–) ("\\cR" ?Å–) |
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 45fb6d6513e..e78d3fefa48 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2006-10-09 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * makefile.w32-in (../src/config.h): Fix error message. | ||
| 4 | |||
| 1 | 2006-09-30 Eli Zaretskii <eliz@gnu.org> | 5 | 2006-09-30 Eli Zaretskii <eliz@gnu.org> |
| 2 | 6 | ||
| 3 | * .cvsignore: Add blessmail. | 7 | * .cvsignore: Add blessmail. |
| @@ -19,7 +23,7 @@ | |||
| 19 | 23 | ||
| 20 | 2006-08-07 Masatake YAMATO <jet@gyve.org> | 24 | 2006-08-07 Masatake YAMATO <jet@gyve.org> |
| 21 | 25 | ||
| 22 | * etags.c (TEX_mode): Check getc retruns EOF. | 26 | * etags.c (TEX_mode): Check getc returns EOF. |
| 23 | File ended without newline causes infinite loop. | 27 | File ended without newline causes infinite loop. |
| 24 | 28 | ||
| 25 | 2002-07-30 Adrian Aichner <adrian@xemacs.org> (tiny change) | 29 | 2002-07-30 Adrian Aichner <adrian@xemacs.org> (tiny change) |
diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index 564487a5858..5ac6555f46d 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in | |||
| @@ -308,7 +308,7 @@ cleanall: clean | |||
| 308 | # Headers we would preprocess if we could. | 308 | # Headers we would preprocess if we could. |
| 309 | # | 309 | # |
| 310 | ../src/config.h: ../nt/$(CONFIG_H) | 310 | ../src/config.h: ../nt/$(CONFIG_H) |
| 311 | echo config.h has changed. Re-run configure.bat. | 311 | echo $(CONFIG_H) has changed. Re-run configure.bat. |
| 312 | exit -1 | 312 | exit -1 |
| 313 | 313 | ||
| 314 | getopt.h: getopt_.h | 314 | getopt.h: getopt_.h |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 49d677c8cfc..6e15b2e24dc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,538 @@ | |||
| 1 | 2006-10-15 Kim F. Storm <storm@cua.dk> | ||
| 2 | |||
| 3 | * filesets.el (filesets-run-cmd--repl-fn): Use shell-quote-argument. | ||
| 4 | |||
| 5 | 2006-10-14 Lennart Borgman <lennart.borgman.073@student.lu.se> | ||
| 6 | |||
| 7 | * filesets.el (filesets-cmd-shell-command): Quote buffer-file-name | ||
| 8 | to protect whitespace and metacharacters from the shell. | ||
| 9 | |||
| 10 | 2006-10-13 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change) | ||
| 11 | |||
| 12 | * apropos.el (apropos-pattern-quoted): Fix a typo in a doc | ||
| 13 | string. | ||
| 14 | |||
| 15 | 2006-10-13 Eli Zaretskii <eliz@gnu.org> | ||
| 16 | |||
| 17 | * subr.el (start-process-shell-command): Doc fix. | ||
| 18 | |||
| 19 | 2006-10-13 Andrea Russo <rastandy@salug.it> (tiny change) | ||
| 20 | |||
| 21 | * info-look.el <maxima-mode, inferior-maxima-mode>: Allow [0-9] in | ||
| 22 | the regexp for Maxima symbols. | ||
| 23 | |||
| 24 | 2006-10-13 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 25 | |||
| 26 | * vc-hooks.el (vc-ignore-dir-regexp): Make it into a defcustom. | ||
| 27 | (vc-find-root): Don't walk higher up than ~. | ||
| 28 | |||
| 29 | 2006-10-12 Chong Yidong <cyd@stupidchicken.com> | ||
| 30 | |||
| 31 | * international/utf-8.el (utf-translate-cjk-load-tables): | ||
| 32 | Avoid clobbering last-coding-system-used during load. | ||
| 33 | |||
| 34 | 2006-10-12 Carsten Dominik <dominik@science.uva.nl> | ||
| 35 | |||
| 36 | * textmodes/reftex-global.el (reftex-create-tags-file): Quote file | ||
| 37 | arguments. | ||
| 38 | |||
| 39 | 2006-10-12 Richard Stallman <rms@gnu.org> | ||
| 40 | |||
| 41 | * files.el (file-name-history): Add defvar. | ||
| 42 | (save-some-buffers-action-alist): Improve description strings. | ||
| 43 | |||
| 44 | 2006-10-12 Andreas Schwab <schwab@suse.de> | ||
| 45 | |||
| 46 | * files.el (auto-mode-alist): Match change log file name also with | ||
| 47 | a dash before a numeric extension. | ||
| 48 | |||
| 49 | 2006-10-11 Ilya Zakharevich <ilyaz@cpan.org> | ||
| 50 | |||
| 51 | * progmodes/cperl-mode.el: Merge from upstream, upto version 5.22. | ||
| 52 | After 5.0: | ||
| 53 | (cperl-add-tags-recurse-noxs-fullpath): New function (for -batch mode). | ||
| 54 | |||
| 55 | After 5.1: Major edit. Summary of most visible changes: | ||
| 56 | |||
| 57 | - Multiple <<HERE per line allowed. | ||
| 58 | - Handles multiline subroutine declaration headers (with comments). | ||
| 59 | (The exception is `cperl-etags' - but it is not used in the rest | ||
| 60 | of the mode.) | ||
| 61 | - Fontifies multiline my/our declarations (even with comments, | ||
| 62 | and with legacy `font-lock'). | ||
| 63 | - Major speedup of syntaxification, both immediate and postponed | ||
| 64 | (3.5x to 15x [for different CPUs and versions of Emacs] on the | ||
| 65 | huge real-life document I tested). | ||
| 66 | - New bindings, edits to imenu. | ||
| 67 | - "_" is made into word-char during fontification/syntaxification; | ||
| 68 | some attempts to recognize non-word "_" during other operations too. | ||
| 69 | - Detect bug in Emacs with `looking-at' inside `narrow' and bulk out. | ||
| 70 | - autoload some more perldoc-related stuff | ||
| 71 | - New convenience features: ISpell POD/HEREDOCs, narrow-to-HEREDOC. | ||
| 72 | - Attempt to incorporate XEmacs edits which reached me. | ||
| 73 | |||
| 74 | Fine-grained changelog: | ||
| 75 | (cperl-hook-after-change): New configuration variable. | ||
| 76 | (cperl-vc-sccs-header): Likewise. | ||
| 77 | (cperl-vc-sccs-header): Likewise. | ||
| 78 | (cperl-vc-header-alist): Default via two preceding variables. | ||
| 79 | (cperl-invalid-face): Remove double quoting under XEmacs | ||
| 80 | (still needed under 21.2). | ||
| 81 | (cperl-tips): Update URLs for resources. | ||
| 82 | (cperl-problems): Likewise. | ||
| 83 | (cperl-praise): Mention new features. | ||
| 84 | New C-c key bindings: for `cperl-find-bad-style', | ||
| 85 | `cperl-pod-spell', `cperl-here-doc-spell', `cperl-narrow-to-here-doc', | ||
| 86 | `cperl-perdoc', and `cperl-perldoc-at-point'. | ||
| 87 | CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info" | ||
| 88 | moved, new submenu of Tools with Ispell entries and narrowing. | ||
| 89 | (cperl-after-sub-regexp): New defsubst. | ||
| 90 | (cperl-imenu--function-name-regexp-perl): Use `cperl-after-sub-regexp'. | ||
| 91 | Allows heads up to head4. | ||
| 92 | Allow "package;". | ||
| 93 | (defun-prompt-regexp): Use `cperl-after-sub-regexp'. | ||
| 94 | (paren-backwards-message): ??? Something for XEmacs??? | ||
| 95 | (cperl-mode): Never auto-switch abbrev-mode off. | ||
| 96 | Try to allow '_' be non-word char. | ||
| 97 | Do not use `font-lock-unfontify-region-function' on XEmacs. | ||
| 98 | Reset syntax cache on mode start. | ||
| 99 | Support multiline facification (even on legacy `font-lock'). | ||
| 100 | (cperl-facemenu-add-face-function): ??? Some contributed code ??? | ||
| 101 | (cperl-after-change-function): Since `font-lock' and `lazy-lock' | ||
| 102 | refuse to inform us whether the fontification is due to lazy | ||
| 103 | calling or due to edit to a buffer, install our own hook | ||
| 104 | (controlled by `cperl-hook-after-change'). | ||
| 105 | (cperl-electric-pod): =cut may have been recognized as start. | ||
| 106 | (cperl-block-p): Move, updatedfor attributes. | ||
| 107 | (cperl-calculate-indent): Try to allow '_' be non-word char | ||
| 108 | Support subs with attributes. | ||
| 109 | (cperl-where-am-i): Queit (?) a warning. | ||
| 110 | (cperl-cached-syntax-table) New function. | ||
| 111 | (cperl-forward-re): Use `cperl-cached-syntax-table'. | ||
| 112 | (cperl-unwind-to-safe): Recognize `syntax-type' property | ||
| 113 | changing in a middle of line. | ||
| 114 | (cperl-find-sub-attrs): New function. | ||
| 115 | (cperl-find-pods-heres): Allow many <<EOP per line. | ||
| 116 | Allow subs with attributes. | ||
| 117 | Major speedups (3.5x..15x on a real-life test file nph-proxy.pl). | ||
| 118 | Recognize "extproc " (OS/2) case-folded and only at start. | ||
| 119 | /x on s///x with empty replacement was not recognized. | ||
| 120 | Better comments. | ||
| 121 | (cperl-after-block-p): Remarks on diff with `cperl-block-p'. | ||
| 122 | Allow subs with attributes, labels. | ||
| 123 | Do not confuse "else::foo" with "else". | ||
| 124 | Minor optimizations... | ||
| 125 | (cperl-after-expr-p): Try to allow '_' be non-word char. | ||
| 126 | (cperl-fill-paragraph): Try to detect a major bug in Emacs | ||
| 127 | with `looking-at' inside `narrow' and bulk out if found. | ||
| 128 | (cperl-imenu--create-perl-index): Updates for new | ||
| 129 | `cperl-imenu--function-name-regexp-perl'. | ||
| 130 | (cperl-outline-level): Likewise. | ||
| 131 | (cperl-init-faces): Allow multiline subroutine headers | ||
| 132 | and my/our declarations, and ones with comments. | ||
| 133 | Allow subroutine attributes. | ||
| 134 | (cperl-imenu-on-info): Better docstring. | ||
| 135 | (cperl-etags): Rudimentary support for attributes. | ||
| 136 | Support for packages and "package;". | ||
| 137 | (cperl-add-tags-recurse-noxs): Better (?) docstring. | ||
| 138 | (cperl-add-tags-recurse-noxs-fullpath): Likewise. | ||
| 139 | (cperl-tags-hier-init): Misprint for `fboundp' fixed. | ||
| 140 | (cperl-not-bad-style-regexp): Try to allow '_' be non-word char. | ||
| 141 | (cperl-perldoc): Add autoload. | ||
| 142 | (cperl-perldoc-at-point): Likewise. | ||
| 143 | (cperl-here-doc-spell): New function. | ||
| 144 | (cperl-pod-spell): Likewise. | ||
| 145 | (cperl-map-pods-heres): Likewise. | ||
| 146 | (cperl-get-here-doc-region): Likewise. | ||
| 147 | (cperl-font-lock-fontify-region-function): Likewise (backward | ||
| 148 | compatibility for legacy `font-lock'). | ||
| 149 | (cperl-font-lock-unfontify-region-function): Fix style. | ||
| 150 | (cperl-fontify-syntaxically): Recognize and optimize away deferred | ||
| 151 | calls with no-change. Governed by `cperl-hook-after-change'. | ||
| 152 | (cperl-fontify-update): Recognize that syntaxification region | ||
| 153 | can be larger than fontification one. | ||
| 154 | XXXX we leave `cperl-postpone' property, so this is quadratic... | ||
| 155 | (cperl-fontify-update-bad): Temporary placeholder until | ||
| 156 | it is clear how to implement `cperl-fontify-update'. | ||
| 157 | (cperl-time-fontification): New function. | ||
| 158 | (attrib-group): New text attribute. | ||
| 159 | (multiline): New value: `syntax-type' text attribute. | ||
| 160 | |||
| 161 | After 5.2: | ||
| 162 | (cperl-emulate-lazy-lock): New function. | ||
| 163 | (cperl-fontify-syntaxically): Would skip large regions. | ||
| 164 | Add `cperl-time-fontification', `cperl-emulate-lazy-lock' to menu. | ||
| 165 | Some globals were declared, but uninitialized. | ||
| 166 | |||
| 167 | After 5.3, 5.4: | ||
| 168 | (cperl-facemenu-add-face-function): Add docs, fix U<>. | ||
| 169 | Copyright message updated. | ||
| 170 | (cperl-init-faces): Work around a bug in `font-lock'. May slow | ||
| 171 | facification down a bit. | ||
| 172 | Misprint for my|our|local for old `font-lock' | ||
| 173 | "our" was not fontified same as "my|local". | ||
| 174 | Highlight variables after "my" etc even in | ||
| 175 | a middle of an expression. | ||
| 176 | Do not facify multiple variables after my etc | ||
| 177 | unless parentheses are present. | ||
| 178 | |||
| 179 | After 5.5, 5.6 | ||
| 180 | (cperl-fontify-syntaxically): after-change hook could reset. | ||
| 181 | (cperl-syntax-done-to) to a middle of line; unwind to BOL. | ||
| 182 | |||
| 183 | After 5.7: | ||
| 184 | (cperl-init-faces): Allow highlighting of local ($/). | ||
| 185 | (cperl-problems-old-emaxen): New variable (for the use of DOCSTRING). | ||
| 186 | (cperl-problems): Remove fixed problems. | ||
| 187 | (cperl-find-pods-heres): Recognize #-comments in m##x too. | ||
| 188 | Recognize charclasses (unless delimiter is \). | ||
| 189 | (cperl-fontify-syntaxically): Unwinding to safe was done in wrong order. | ||
| 190 | (cperl-regexp-scan): Update docs. | ||
| 191 | (cperl-beautify-regexp-piece): Use information got from regexp scan. | ||
| 192 | |||
| 193 | After 5.8: | ||
| 194 | Major user visible changes: | ||
| 195 | Recognition and fontification of character classes in RExen. | ||
| 196 | Variable indentation of RExen according to groups. | ||
| 197 | |||
| 198 | (cperl-find-pods-heres): Recognize POSIX classes in REx charclasses. | ||
| 199 | Fontify REx charclasses in variable-name face. | ||
| 200 | Fontify POSIX charclasses in "type" face. | ||
| 201 | Fontify unmatched "]" in function-name face. | ||
| 202 | Mark first-char of HERE-doc as `front-sticky'. | ||
| 203 | Reset `front-sticky' property when needed. | ||
| 204 | (cperl-calculate-indent): Indents //x -RExen accordning to parens level. | ||
| 205 | (cperl-to-comment-or-eol): Recognize ends of `syntax-type' constructs. | ||
| 206 | (cperl-backward-to-noncomment): Recognize stringy `syntax-type' | ||
| 207 | constructs. Support `narrow'ed buffers. | ||
| 208 | (cperl-praise): Remove a reservation. | ||
| 209 | (cperl-make-indent): New function. | ||
| 210 | (cperl-indent-for-comment): Use `cperl-make-indent'. | ||
| 211 | (cperl-indent-line): Likewise. | ||
| 212 | (cperl-lineup): Likewise. | ||
| 213 | (cperl-beautify-regexp-piece): Likewise. | ||
| 214 | (cperl-contract-level): Likewise. | ||
| 215 | (cperl-toggle-set-debug-unwind): New function. | ||
| 216 | New menu entry for this. | ||
| 217 | (fill-paragraph-function): Use when `boundp'. | ||
| 218 | (cperl-calculate-indent): Take into account groups when indenting RExen. | ||
| 219 | (cperl-to-comment-or-eol): Recognize # which end a string. | ||
| 220 | (cperl-modify-syntax-type): Make only syntax-table property non-sticky. | ||
| 221 | (cperl-fill-paragraph): Return t: needed for `fill-paragraph-function'. | ||
| 222 | (cperl-fontify-syntaxically): More clear debugging message. | ||
| 223 | (cperl-pod2man-build-command): Check (XEmacs) `Man-filter-list'. | ||
| 224 | (cperl-init-faces): More complicated highlight even on XEmacs (new). | ||
| 225 | Merge cosmetic changes from XEmacs. | ||
| 226 | |||
| 227 | After 5.9: | ||
| 228 | (cperl-1+): Move to before the first use. | ||
| 229 | (cperl-1-): Likewise. | ||
| 230 | |||
| 231 | After 5.10: | ||
| 232 | |||
| 233 | This code may lock Emacs hard!!! Use on your own risk! | ||
| 234 | |||
| 235 | (cperl-font-locking): New internal variable. | ||
| 236 | (cperl-beginning-of-property): New function. | ||
| 237 | (cperl-calculate-indent): Use `cperl-beginning-of-property' | ||
| 238 | instead of `previous-single-property-change'. | ||
| 239 | (cperl-unwind-to-safe): Likewise. | ||
| 240 | (cperl-after-expr-p): Likewise. | ||
| 241 | (cperl-get-here-doc-region): Likewise. | ||
| 242 | (cperl-font-lock-fontify-region-function): Likewise. | ||
| 243 | (cperl-to-comment-or-eol): Do not call `cperl-update-syntaxification' | ||
| 244 | recursively. | ||
| 245 | Bound `next-single-property-change' via `point-max'. | ||
| 246 | (cperl-unwind-to-safe): Bound likewise | ||
| 247 | (cperl-font-lock-fontify-region-function): Likewise | ||
| 248 | (cperl-find-pods-heres): Mark as recursive for `cperl-to-comment-or-eol' | ||
| 249 | Initialization of `cperl-font-lock-multiline-start' could be | ||
| 250 | missed if the "main" fontification did not run due to the | ||
| 251 | keyword being already fontified. | ||
| 252 | (cperl-pod-spell): Return t from do-one-chunk function. | ||
| 253 | (cperl-map-pods-heres): Stop when the worker returns nil. | ||
| 254 | Call `cperl-update-syntaxification'. | ||
| 255 | (cperl-get-here-doc-region): Call `cperl-update-syntaxification'. | ||
| 256 | (cperl-get-here-doc-delim): Remove unused function. | ||
| 257 | |||
| 258 | After 5.11: | ||
| 259 | |||
| 260 | The possible lockup of Emacs (introduced in 5.10) fixed. | ||
| 261 | |||
| 262 | (cperl-unwind-to-safe): `cperl-beginning-of-property' won't return nil. | ||
| 263 | (cperl-syntaxify-for-menu): New customization variable. | ||
| 264 | (cperl-select-this-pod-or-here-doc): New function. | ||
| 265 | (cperl-get-here-doc-region): Extra argument. | ||
| 266 | Do not adjust pos by 1. | ||
| 267 | |||
| 268 | New menu entries | ||
| 269 | (Perl/Tools): Selection of current POD or HERE-DOC section. | ||
| 270 | (Debugging CPerl:) backtrace on fontification. | ||
| 271 | |||
| 272 | After 5.12: | ||
| 273 | (cperl-cached-syntax-table): Use `car-safe'. | ||
| 274 | (cperl-forward-re): Remove spurious argument SET-ST. | ||
| 275 | Add documentation. | ||
| 276 | (cperl-forward-group-in-re): New function. | ||
| 277 | (cperl-find-pods-heres): Find and highlight (?{}) blocks in RExen | ||
| 278 | (XXXX Temporary (?) hack is to syntax-mark them as comment). | ||
| 279 | |||
| 280 | After 5.13: | ||
| 281 | (cperl-string-syntax-table): Make { and } not-grouping | ||
| 282 | (Sometimes they ARE grouping in RExen, but matching them would only | ||
| 283 | confuse in many situations when they are not) | ||
| 284 | (beginning-of-buffer): Replace two occurences with goto-char... | ||
| 285 | (cperl-calculate-indent): `char-after' could be nil... | ||
| 286 | (cperl-find-pods-heres): REx can start after "[" too. | ||
| 287 | Hightlight (??{}) in RExen too. | ||
| 288 | (cperl-maybe-white-and-comment-rex): New constant | ||
| 289 | (cperl-white-and-comment-rex): Likewise. | ||
| 290 | XXXX Not very efficient, but hard to make | ||
| 291 | better while keeping 1 group. | ||
| 292 | |||
| 293 | After 5.13: | ||
| 294 | (cperl-find-pods-heres): $foo << identifier() is not a HERE-DOC. | ||
| 295 | Likewise for 1 << identifier. | ||
| 296 | |||
| 297 | After 5.14: | ||
| 298 | (cperl-find-pods-heres): Different logic for $foo .= <<EOF etc. | ||
| 299 | Error-less condition-case could fail. | ||
| 300 | (cperl-font-lock-fontify-region-function): Likewise. | ||
| 301 | (cperl-init-faces): Likewise. | ||
| 302 | |||
| 303 | After 5.15: | ||
| 304 | (cperl-find-pods-heres): Support property REx-part2. | ||
| 305 | (cperl-calculate-indent): Likewise. | ||
| 306 | Don't special-case REx with non-empty 1st line. | ||
| 307 | (cperl-find-pods-heres): In RExen, highlight non-literal backslashes. | ||
| 308 | Invert highlighting of charclasses: | ||
| 309 | now the envelop is highlighted. | ||
| 310 | Highlight many others 0-length builtins. | ||
| 311 | (cperl-praise): Mention indenting and highlight in RExen. | ||
| 312 | |||
| 313 | After 5.15: | ||
| 314 | (cperl-find-pods-heres): Highlight capturing parens in REx. | ||
| 315 | |||
| 316 | After 5.16: | ||
| 317 | (cperl-find-pods-heres): Highlight '|' for alternation | ||
| 318 | Initialize `font-lock-warning-face' if not present. | ||
| 319 | (cperl-find-pods-heres): Use `font-lock-warning-face' instead of | ||
| 320 | `font-lock-function-name-face'. | ||
| 321 | (cperl-look-at-leading-count): Likewise. | ||
| 322 | (cperl-find-pods-heres): Localize `font-lock-variable-name-face', | ||
| 323 | `font-lock-keyword-face' (needed for | ||
| 324 | batch processing), etc... | ||
| 325 | Use `font-lock-builtin-face' for builtin in REx | ||
| 326 | Now `font-lock-variable-name-face' | ||
| 327 | is used for interpolated variables | ||
| 328 | Use "talking aliases" for faces inside REx | ||
| 329 | Highlight parts of REx (except in charclasses) | ||
| 330 | according to the syntax and/or semantic | ||
| 331 | Syntax-mark a {}-part of (?{}) as "comment" | ||
| 332 | (it was the ()-part) | ||
| 333 | Better logic to distinguish what is what in REx | ||
| 334 | (cperl-tips-faces): Document REx highlighting | ||
| 335 | (cperl-praise): Mention REx syntax highlight etc. | ||
| 336 | |||
| 337 | After 5.17: | ||
| 338 | (cperl-find-sub-attrs): Would not always manage to print error message. | ||
| 339 | (cperl-find-pods-heres): Localize `font-lock-constant-face'. | ||
| 340 | |||
| 341 | After 5.18: | ||
| 342 | (cperl-find-pods-heres): Misprint in REx for parsing REx. | ||
| 343 | Very minor optimization. | ||
| 344 | `my-cperl-REx-modifiers-face' got quoted. | ||
| 345 | Recognize "print $foo <<END" as HERE-doc. | ||
| 346 | Put `REx-interpolated' text attribute if needed. | ||
| 347 | (cperl-invert-if-unless-modifiers): New function. | ||
| 348 | (cperl-backward-to-start-of-expr): Likewise. | ||
| 349 | (cperl-forward-to-end-of-expr): Likewise. | ||
| 350 | (cperl-invert-if-unless): Works in "the opposite way" too. | ||
| 351 | Cursor position on return is on the switch-word. | ||
| 352 | Indents comments better. | ||
| 353 | (REx-interpolated): New text attribute. | ||
| 354 | (cperl-next-interpolated-REx): New function. | ||
| 355 | (cperl-next-interpolated-REx-0): Likewise. | ||
| 356 | (cperl-next-interpolated-REx-1): Likewise. | ||
| 357 | "\C-c\C-x", "\C-c\C-y", "\C-c\C-v": New keybinding for these functions. | ||
| 358 | Perl/Regexp menu: 3 new entries for `cperl-next-interpolated-REx'. | ||
| 359 | (cperl-praise): Mention finded interpolated RExen. | ||
| 360 | |||
| 361 | After 5.19: | ||
| 362 | (cperl-init-faces): Highlight %$foo, @$foo too. | ||
| 363 | (cperl-short-docs): Better docs for system, exec. | ||
| 364 | (cperl-find-pods-heres): Better detect << after print {FH} <<EOF etc. | ||
| 365 | Would not find HERE-doc ended by EOF without NL. | ||
| 366 | (cperl-short-docs): Correct not-doubled \-escapes. | ||
| 367 | start block: Put some `defvar' for stuff gone from XEmacs. | ||
| 368 | |||
| 369 | After 5.20: | ||
| 370 | initial comment: Extend copyright, fix email address. | ||
| 371 | (cperl-indent-comment-at-column-0): New customization variable. | ||
| 372 | (cperl-comment-indent): Indentation after $#a would increasy by 1. | ||
| 373 | (cperl-mode): Make `defun-prompt-regexp' grok BEGIN/END etc. | ||
| 374 | (cperl-find-pods-heres): Mark CODE of s///e as `syntax-type' `multiline' | ||
| 375 | (cperl-at-end-of-expr): Would fail if @BAR=12 follows after ";". | ||
| 376 | (cperl-init-faces): If `cperl-highlight-variables-indiscriminately' | ||
| 377 | highlight $ in $foo too (UNTESTED). | ||
| 378 | (cperl-set-style): Docstring missed some available styles. | ||
| 379 | toplevel: Menubar/Perl/Indent-Styles had FSF, now K&R. | ||
| 380 | Change "Current" to "Memorize Current". | ||
| 381 | (cperl-indent-wrt-brace): New customization variable; the default is | ||
| 382 | as for pre-5.2 version. | ||
| 383 | (cperl-styles-entries): Keep `cperl-extra-newline-before-brace-multiline'. | ||
| 384 | (cperl-style-alist): Likewise. | ||
| 385 | (cperl-fix-line-spacing): Support `cperl-merge-trailing-else' being nil, | ||
| 386 | and `cperl-extra-newline-before-brace' etc | ||
| 387 | being t | ||
| 388 | (cperl-indent-exp): Plans B and C to find continuation blocks even | ||
| 389 | if `cperl-extra-newline-before-brace' is t. | ||
| 390 | |||
| 391 | After 5.21: | ||
| 392 | Improve some docstrings concerning indentation. | ||
| 393 | (cperl-indent-rules-alist): New variable. | ||
| 394 | (cperl-sniff-for-indent): New function name | ||
| 395 | (separated from `cperl-calculate-indent'). | ||
| 396 | (cperl-calculate-indent): Separate the sniffer and the indenter; | ||
| 397 | uses `cperl-sniff-for-indent' now. | ||
| 398 | (cperl-comment-indent): Test for `cperl-indent-comment-at-column-0' | ||
| 399 | was inverted; | ||
| 400 | Support `comment-column' = 0. | ||
| 401 | |||
| 402 | 2006-10-11 Martin Rudalics <rudalics@gmx.at> | ||
| 403 | |||
| 404 | * dnd.el (dnd-handle-one-url): Fix typo in doc-string. | ||
| 405 | * help-at-pt.el (scan-buf-move-to-region): Likewise. | ||
| 406 | * longlines.el (longlines-window-change-function): Likewise. | ||
| 407 | * simple.el (undo-ask-before-discard): Likewise. | ||
| 408 | * wid-edit.el (widget-field-prompt-internal) | ||
| 409 | (widget-documentation-link-p): Likewise. | ||
| 410 | |||
| 411 | 2006-10-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 412 | |||
| 413 | * progmodes/sh-script.el (sh-get-kw): | is not among the allowed chars | ||
| 414 | for a keyword. | ||
| 415 | |||
| 416 | 2006-10-09 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 417 | |||
| 418 | * newcomment.el (comment-valid-prefix-p): Make the check | ||
| 419 | more thorough. From an idea by Martin Rudalics <rudalics@gmx.at>. | ||
| 420 | (comment-indent-new-line): Adjust call. | ||
| 421 | |||
| 422 | 2006-10-09 Ken Manheimer <ken.manheimer@gmail.com> | ||
| 423 | |||
| 424 | * allout.el (allout-back-to-current-heading): Base on lower-level | ||
| 425 | routines to get proper disqualification of aberrant topics. | ||
| 426 | |||
| 427 | 2006-10-09 Richard Stallman <rms@gnu.org> | ||
| 428 | |||
| 429 | * textmodes/two-column.el (2C-two-columns): Doc fix. | ||
| 430 | |||
| 431 | 2006-10-09 Kim F. Storm <storm@cua.dk> | ||
| 432 | |||
| 433 | * shell.el (explicit-csh-args, explicit-bash-args): Add comment | ||
| 434 | about implicit use. | ||
| 435 | |||
| 436 | 2006-10-08 Richard Stallman <rms@gnu.org> | ||
| 437 | |||
| 438 | * textmodes/two-column.el (2C-two-columns): Doc fix. | ||
| 439 | |||
| 440 | 2006-10-08 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 441 | |||
| 442 | * files.el: Mark `buffer-read-only' as safe-local-variable. | ||
| 443 | |||
| 444 | 2006-10-08 Nick Roberts <nickrob@snap.net.nz> | ||
| 445 | |||
| 446 | * progmodes/gdb-ui.el (gdb-speedbar-expand-node): Burp if | ||
| 447 | GUD buffer has been killed. | ||
| 448 | |||
| 449 | 2006-10-07 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 450 | |||
| 451 | * completion.el (add-completions-from-c-buffer): | ||
| 452 | Don't presume an error's second element is a string. | ||
| 453 | Use looking-at rather than buffer-substring + member. | ||
| 454 | |||
| 455 | 2006-10-07 Eli Zaretskii <eliz@gnu.org> | ||
| 456 | |||
| 457 | * mail/rmail.el (rmail-redecode-body): If the old encoding is | ||
| 458 | `undecided', call find-coding-systems-region to find a proper | ||
| 459 | non-trivial encoding. | ||
| 460 | (rmail-mime-charset-pattern): Allow a TAB between "Content-Type" | ||
| 461 | and "text/plain". | ||
| 462 | |||
| 463 | 2006-10-07 Kevin Ryde <user42@zip.com.au> | ||
| 464 | |||
| 465 | * textmodes/reftex-vars.el (defgroup reftex): Update home page | ||
| 466 | url-link. | ||
| 467 | |||
| 468 | * strokes.el (defgroup strokes): Remove invalid url-link. | ||
| 469 | |||
| 470 | 2006-10-07 Magnus Henoch <mange@freemail.hu> | ||
| 471 | |||
| 472 | * autoinsert.el (auto-insert-alist): Doc fix. | ||
| 473 | |||
| 474 | 2006-10-07 Johan Bockg,be(Brd <bojohan@dd.chalmers.se> | ||
| 475 | |||
| 476 | * mouse-sel.el (mouse-insert-selection-internal): | ||
| 477 | Use insert-for-yank, so that yank handlers are run. | ||
| 478 | |||
| 479 | 2006-10-07 Kim F. Storm <storm@cua.dk> | ||
| 480 | |||
| 481 | * ido.el (ido-file-extension-aux): Fix comparison. | ||
| 482 | |||
| 483 | 2006-10-06 Kim F. Storm <storm@cua.dk> | ||
| 484 | |||
| 485 | * ido.el (ido-wide-find-dirs-or-files): Use shell-quote-argument. | ||
| 486 | |||
| 487 | 2006-10-05 Juanma Barranquero <lekktu@gmail.com> | ||
| 488 | |||
| 489 | * emacs-lisp/advice.el (ad-remove-advice, ad-parse-arglist) | ||
| 490 | (ad-make-mapped-call): Use `let', not `let*'. | ||
| 491 | |||
| 492 | 2006-10-05 Chong Yidong <cyd@stupidchicken.com> | ||
| 493 | |||
| 494 | * international/mule-cmds.el (coding-system-change-eol-conversion): | ||
| 495 | Ensure the coding system is initialized before calling | ||
| 496 | coding-system-eol-type. | ||
| 497 | |||
| 498 | 2006-10-04 Carsten Dominik <dominik@science.uva.nl> | ||
| 499 | |||
| 500 | * textmodes/org.el (org-rm-props, org-activate-plain-links) | ||
| 501 | (org-activate-angle-links, org-activate-dates) | ||
| 502 | (org-activate-target-links, org-activate-camels) | ||
| 503 | (org-activate-tags): Add `rear-nonsticky' text property to avoid | ||
| 504 | textproperty keymaps from being active beyond the end of a line. | ||
| 505 | (org-unfontify-region): Also remove `rear-nonsticky' property. | ||
| 506 | |||
| 507 | 2006-10-04 Kenichi Handa <handa@m17n.org> | ||
| 508 | |||
| 509 | * international/code-pages.el (next): Table fixed. | ||
| 510 | |||
| 511 | 2006-10-04 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 512 | |||
| 513 | * progmodes/sh-script.el (sh-prev-thing): Remove (forward-char 1) now | ||
| 514 | that it's been made unnecessary by removing narrowing. | ||
| 515 | |||
| 516 | 2006-10-03 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 517 | |||
| 518 | * progmodes/sh-script.el (sh-prev-thing): Massage to untangle the | ||
| 519 | control flow a bit, simplify another bit, and add comments. | ||
| 520 | |||
| 521 | 2006-10-03 David Kastrup <dak@gnu.org> | ||
| 522 | |||
| 523 | * help.el (describe-mode): For clicks on mode-line, use "@" | ||
| 524 | interactive argument to get the major mode of the click instead of | ||
| 525 | the current buffer. | ||
| 526 | |||
| 527 | * isearch.el (isearch-mouse-2): Use new semantics of `key-binding' | ||
| 528 | in order to better redirect mouse-2 clicks. Also allow default | ||
| 529 | bindings to apply. | ||
| 530 | |||
| 531 | 2006-10-03 Kim F. Storm <storm@cua.dk> | ||
| 532 | |||
| 533 | * emacs-lisp/cl.el (pushnew-internal): Remove defvar. | ||
| 534 | (pushnew): Fix last change. | ||
| 535 | |||
| 1 | 2006-10-03 Denis St,A|(Bnkel <dstuenkel@googlemail.com> (tiny change) | 536 | 2006-10-03 Denis St,A|(Bnkel <dstuenkel@googlemail.com> (tiny change) |
| 2 | 537 | ||
| 3 | * ibuf-ext.el (eval, view-and-eval) <define-ibuffer-op>: | 538 | * ibuf-ext.el (eval, view-and-eval) <define-ibuffer-op>: |
| @@ -7,7 +542,7 @@ | |||
| 7 | 542 | ||
| 8 | * progmodes/sh-script.el (sh-prev-thing): Fix last change. | 543 | * progmodes/sh-script.el (sh-prev-thing): Fix last change. |
| 9 | 544 | ||
| 10 | 2006-10-02 MIYOSHI Masanori <miyoshi@meadowy.org> (tiny change) | 545 | 2006-10-02 MIYOSHI Masanori <miyoshi@meadowy.org> (tiny change) |
| 11 | 546 | ||
| 12 | * mail/smtpmail.el (smtpmail-try-auth-methods): Fix typo in | 547 | * mail/smtpmail.el (smtpmail-try-auth-methods): Fix typo in |
| 13 | 2006-09-28 commit. | 548 | 2006-09-28 commit. |
| @@ -16,7 +551,7 @@ | |||
| 16 | 551 | ||
| 17 | * international/code-pages.el (iso-8859-6): Table fixed. | 552 | * international/code-pages.el (iso-8859-6): Table fixed. |
| 18 | 553 | ||
| 19 | 2006-10-01 Chris Moore <christopher.ian.moore@gmail.com> (tiny change) | 554 | 2006-10-01 Chris Moore <christopher.ian.moore@gmail.com> (tiny change) |
| 20 | 555 | ||
| 21 | * dired.el (dired-build-subdir-alist): Fix previous change. | 556 | * dired.el (dired-build-subdir-alist): Fix previous change. |
| 22 | 557 | ||
| @@ -141,7 +676,7 @@ | |||
| 141 | * international/mule.el (after-insert-file-set-coding): | 676 | * international/mule.el (after-insert-file-set-coding): |
| 142 | If VISIT, don't let set-buffer-multibyte make undo info. | 677 | If VISIT, don't let set-buffer-multibyte make undo info. |
| 143 | 678 | ||
| 144 | 2006-09-28 Osamu Yamane <yamane@green.ocn.ne.jp> (tiny change) | 679 | 2006-09-28 Osamu Yamane <yamane@green.ocn.ne.jp> (tiny change) |
| 145 | 680 | ||
| 146 | * mail/smtpmail.el (smtpmail-try-auth-methods): Do not break long | 681 | * mail/smtpmail.el (smtpmail-try-auth-methods): Do not break long |
| 147 | lines in base64-encoded authentication response. | 682 | lines in base64-encoded authentication response. |
| @@ -217,7 +752,7 @@ | |||
| 217 | * help.el (describe-key-briefly, describe-key): Don't expect an | 752 | * help.el (describe-key-briefly, describe-key): Don't expect an |
| 218 | extra up event if a down-event is generated by a popup menu. | 753 | extra up event if a down-event is generated by a popup menu. |
| 219 | 754 | ||
| 220 | 2006-09-23 Michal Nazarewicz <mnazarewicz@gmail.com> (tiny change) | 755 | 2006-09-23 Michal Nazarewicz <mnazarewicz@gmail.com> (tiny change) |
| 221 | 756 | ||
| 222 | * textmodes/ispell.el (ispell-change-dictionary): Don't check the | 757 | * textmodes/ispell.el (ispell-change-dictionary): Don't check the |
| 223 | local dictionary when changing the global dictionary. | 758 | local dictionary when changing the global dictionary. |
| @@ -265,8 +800,7 @@ | |||
| 265 | 800 | ||
| 266 | 2006-09-22 Chong Yidong <cyd@stupidchicken.com> | 801 | 2006-09-22 Chong Yidong <cyd@stupidchicken.com> |
| 267 | 802 | ||
| 268 | * files.el (save-some-buffers-action-alist): Display diff in | 803 | * files.el (save-some-buffers-action-alist): Display diff in view-mode. |
| 269 | view-mode. | ||
| 270 | 804 | ||
| 271 | 2006-09-22 Masatake YAMATO <jet@gyve.org> | 805 | 2006-09-22 Masatake YAMATO <jet@gyve.org> |
| 272 | 806 | ||
| @@ -284,11 +818,6 @@ | |||
| 284 | * mouse.el (mouse-posn-property): Fix typo for `event-start' in | 818 | * mouse.el (mouse-posn-property): Fix typo for `event-start' in |
| 285 | doc string. | 819 | doc string. |
| 286 | 820 | ||
| 287 | 2006-09-21 Kim F. Storm <storm@cua.dk> | ||
| 288 | |||
| 289 | * emacs-lisp/cl.el (pushnew-internal): Remove defvar. | ||
| 290 | (pushnew): Fix last change. | ||
| 291 | |||
| 292 | 2006-09-21 Kenichi Handa <handa@m17n.org> | 821 | 2006-09-21 Kenichi Handa <handa@m17n.org> |
| 293 | 822 | ||
| 294 | * language/european.el ("Latin-1"): Add windows-1252 to | 823 | * language/european.el ("Latin-1"): Add windows-1252 to |
| @@ -305,8 +834,7 @@ | |||
| 305 | 834 | ||
| 306 | 2006-09-20 Kenichi Handa <handa@m17n.org> | 835 | 2006-09-20 Kenichi Handa <handa@m17n.org> |
| 307 | 836 | ||
| 308 | * isearch.el (isearch-process-search-char): Cancel the previous | 837 | * isearch.el (isearch-process-search-char): Cancel the previous change. |
| 309 | change. | ||
| 310 | (isearch-search-string): New function. | 838 | (isearch-search-string): New function. |
| 311 | (isearch-search): Use isearch-search-string. | 839 | (isearch-search): Use isearch-search-string. |
| 312 | (isearch-lazy-highlight-search): Likewise. | 840 | (isearch-lazy-highlight-search): Likewise. |
| @@ -4192,7 +4720,7 @@ | |||
| 4192 | compatibility function (Emacs 18/19). | 4720 | compatibility function (Emacs 18/19). |
| 4193 | (idlwave-is-continuation-line): Always return point at start of | 4721 | (idlwave-is-continuation-line): Always return point at start of |
| 4194 | previous non-blank continuation line. | 4722 | previous non-blank continuation line. |
| 4195 | `keyword-parameters': Fix continued comment font-lock matcher. | 4723 | (keyword-parameters): Fix continued comment font-lock matcher. |
| 4196 | (idlwave-font-lock-fontify-region): Written, use as | 4724 | (idlwave-font-lock-fontify-region): Written, use as |
| 4197 | font-lock-fontify-region-function, to fix continued keyword | 4725 | font-lock-fontify-region-function, to fix continued keyword |
| 4198 | fontification issues. | 4726 | fontification issues. |
| @@ -4445,7 +4973,7 @@ | |||
| 4445 | (mac-TIFF-to-string): New functions. | 4973 | (mac-TIFF-to-string): New functions. |
| 4446 | (x-get-selection, x-selection-value) | 4974 | (x-get-selection, x-selection-value) |
| 4447 | (mac-select-convert-to-string): Use them. | 4975 | (mac-select-convert-to-string): Use them. |
| 4448 | (mac-text-encoding-mac-japanese-basic-variant): New constant. | 4976 | (mac-text-encoding-mac-japanese-basic-variant): New constant. |
| 4449 | (mac-dnd-types-alist): New customization variable. | 4977 | (mac-dnd-types-alist): New customization variable. |
| 4450 | (mac-dnd-handle-furl, mac-dnd-handle-hfs, mac-dnd-insert-utxt) | 4978 | (mac-dnd-handle-furl, mac-dnd-handle-hfs, mac-dnd-insert-utxt) |
| 4451 | (mac-dnd-insert-TEXT, mac-dnd-insert-TIFF, mac-dnd-drop-data) | 4979 | (mac-dnd-insert-TEXT, mac-dnd-insert-TIFF, mac-dnd-drop-data) |
diff --git a/lisp/allout.el b/lisp/allout.el index 5f59e5e0103..b38d38d9e87 100644 --- a/lisp/allout.el +++ b/lisp/allout.el | |||
| @@ -2736,24 +2736,22 @@ otherwise skip white space between bullet and ensuing text." | |||
| 2736 | (1- allout-recent-prefix-end))) | 2736 | (1- allout-recent-prefix-end))) |
| 2737 | ;;;_ > allout-back-to-current-heading () | 2737 | ;;;_ > allout-back-to-current-heading () |
| 2738 | (defun allout-back-to-current-heading () | 2738 | (defun allout-back-to-current-heading () |
| 2739 | "Move to heading line of current topic, or beginning if already on the line. | 2739 | "Move to heading line of current topic, or beginning if not in a topic. |
| 2740 | 2740 | ||
| 2741 | Return value of point, unless we started outside of (before any) topics, | 2741 | If interactive, we position at the end of the prefix. |
| 2742 | in which case we return nil." | 2742 | |
| 2743 | Return value of resulting point, unless we started outside | ||
| 2744 | of (before any) topics, in which case we return nil." | ||
| 2743 | 2745 | ||
| 2744 | (allout-beginning-of-current-line) | 2746 | (allout-beginning-of-current-line) |
| 2745 | (if (or (allout-on-current-heading-p) | 2747 | (let ((bol-point (point))) |
| 2746 | (and (re-search-backward (concat "^\\(" allout-regexp "\\)") | 2748 | (allout-goto-prefix-doublechecked) |
| 2747 | nil 'move) | 2749 | (if (<= (point) bol-point) |
| 2748 | (progn (while (allout-hidden-p) | 2750 | (if (interactive-p) |
| 2749 | (allout-beginning-of-current-line) | 2751 | (allout-end-of-prefix) |
| 2750 | (if (not (looking-at allout-regexp)) | 2752 | (point)) |
| 2751 | (re-search-backward allout-regexp | 2753 | (goto-char (point-min)) |
| 2752 | nil 'move))) | 2754 | nil))) |
| 2753 | (allout-prefix-data)))) | ||
| 2754 | (if (interactive-p) | ||
| 2755 | (allout-end-of-prefix) | ||
| 2756 | (point)))) | ||
| 2757 | ;;;_ > allout-back-to-heading () | 2755 | ;;;_ > allout-back-to-heading () |
| 2758 | (defalias 'allout-back-to-heading 'allout-back-to-current-heading) | 2756 | (defalias 'allout-back-to-heading 'allout-back-to-current-heading) |
| 2759 | ;;;_ > allout-pre-next-prefix () | 2757 | ;;;_ > allout-pre-next-prefix () |
diff --git a/lisp/apropos.el b/lisp/apropos.el index 3889655ff99..cbe571f8fec 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el | |||
| @@ -142,7 +142,7 @@ If value is `verbose', the computed score is shown for each match." | |||
| 142 | "Apropos pattern as entered by user.") | 142 | "Apropos pattern as entered by user.") |
| 143 | 143 | ||
| 144 | (defvar apropos-pattern-quoted nil | 144 | (defvar apropos-pattern-quoted nil |
| 145 | "Apropos pattern passed through `regexp-quoute'.") | 145 | "Apropos pattern passed through `regexp-quote'.") |
| 146 | 146 | ||
| 147 | (defvar apropos-words () | 147 | (defvar apropos-words () |
| 148 | "Current list of apropos words extracted from `apropos-pattern'.") | 148 | "Current list of apropos words extracted from `apropos-pattern'.") |
diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index c1a2047a9c6..15a7461d288 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el | |||
| @@ -215,7 +215,7 @@ If this contains a %s, that will be replaced by the matching rule." | |||
| 215 | ;;; " (file-name-nondirectory (buffer-file-name)) " ends here\n")) | 215 | ;;; " (file-name-nondirectory (buffer-file-name)) " ends here\n")) |
| 216 | "A list specifying text to insert by default into a new file. | 216 | "A list specifying text to insert by default into a new file. |
| 217 | Elements look like (CONDITION . ACTION) or ((CONDITION . DESCRIPTION) . ACTION). | 217 | Elements look like (CONDITION . ACTION) or ((CONDITION . DESCRIPTION) . ACTION). |
| 218 | CONDITION maybe a regexp that must match the new file's name, or it may be | 218 | CONDITION may be a regexp that must match the new file's name, or it may be |
| 219 | a symbol that must match the major mode for this element to apply. | 219 | a symbol that must match the major mode for this element to apply. |
| 220 | Only the first matching element is effective. | 220 | Only the first matching element is effective. |
| 221 | Optional DESCRIPTION is a string for filling `auto-insert-prompt'. | 221 | Optional DESCRIPTION is a string for filling `auto-insert-prompt'. |
diff --git a/lisp/completion.el b/lisp/completion.el index 64bf8026e9d..53dfd7521a5 100644 --- a/lisp/completion.el +++ b/lisp/completion.el | |||
| @@ -1885,7 +1885,7 @@ Prefix args :: | |||
| 1885 | (save-excursion | 1885 | (save-excursion |
| 1886 | (goto-char (point-min)) | 1886 | (goto-char (point-min)) |
| 1887 | (catch 'finish-add-completions | 1887 | (catch 'finish-add-completions |
| 1888 | (with-syntax-table completion-c-def-syntax-table | 1888 | (with-syntax-table completion-c-def-syntax-table |
| 1889 | (while t | 1889 | (while t |
| 1890 | ;; we loop here only when scan-sexps fails | 1890 | ;; we loop here only when scan-sexps fails |
| 1891 | ;; (i.e. unbalance exps.) | 1891 | ;; (i.e. unbalance exps.) |
| @@ -1895,8 +1895,7 @@ Prefix args :: | |||
| 1895 | (cond | 1895 | (cond |
| 1896 | ((= (preceding-char) ?#) | 1896 | ((= (preceding-char) ?#) |
| 1897 | ;; preprocessor macro, see if it's one we handle | 1897 | ;; preprocessor macro, see if it's one we handle |
| 1898 | (setq string (buffer-substring (point) (+ (point) 6))) | 1898 | (cond ((looking-at "\\(define\\|ifdef\\)\\>") |
| 1899 | (cond ((member string '("define" "ifdef ")) | ||
| 1900 | ;; skip forward over definition symbol | 1899 | ;; skip forward over definition symbol |
| 1901 | ;; and add it to database | 1900 | ;; and add it to database |
| 1902 | (and (forward-word 2) | 1901 | (and (forward-word 2) |
| @@ -1944,9 +1943,9 @@ Prefix args :: | |||
| 1944 | (throw 'finish-add-completions t)) | 1943 | (throw 'finish-add-completions t)) |
| 1945 | (error | 1944 | (error |
| 1946 | ;; Check for failure in scan-sexps | 1945 | ;; Check for failure in scan-sexps |
| 1947 | (if (or (string-equal (nth 1 e) | 1946 | (if (member (nth 1 e) |
| 1948 | "Containing expression ends prematurely") | 1947 | '("Containing expression ends prematurely" |
| 1949 | (string-equal (nth 1 e) "Unbalanced parentheses")) | 1948 | "Unbalanced parentheses")) |
| 1950 | ;; unbalanced paren., keep going | 1949 | ;; unbalanced paren., keep going |
| 1951 | ;;(ding) | 1950 | ;;(ding) |
| 1952 | (forward-line 1) | 1951 | (forward-line 1) |
diff --git a/lisp/dnd.el b/lisp/dnd.el index 5e7135ec8d6..3b16489da5b 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el | |||
| @@ -91,7 +91,7 @@ The handler is first located by looking at `dnd-protocol-alist'. | |||
| 91 | If no match is found here, and the value of `browse-url-browser-function' | 91 | If no match is found here, and the value of `browse-url-browser-function' |
| 92 | is a pair of (REGEXP . FUNCTION), those regexps are tried for a match. | 92 | is a pair of (REGEXP . FUNCTION), those regexps are tried for a match. |
| 93 | If no match is found, just call `dnd-insert-text'. | 93 | If no match is found, just call `dnd-insert-text'. |
| 94 | WINDOW is where the drop happend, ACTION is the action for the drop, | 94 | WINDOW is where the drop happened, ACTION is the action for the drop, |
| 95 | URL is what has been dropped. | 95 | URL is what has been dropped. |
| 96 | Returns ACTION." | 96 | Returns ACTION." |
| 97 | (require 'browse-url) | 97 | (require 'browse-url) |
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index d03245bf452..5aa8bbd14cc 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el | |||
| @@ -2409,7 +2409,7 @@ If such an advice was found it will be removed from the list of advices | |||
| 2409 | in that CLASS." | 2409 | in that CLASS." |
| 2410 | (interactive (ad-read-advice-specification "Remove advice of")) | 2410 | (interactive (ad-read-advice-specification "Remove advice of")) |
| 2411 | (if (ad-is-advised function) | 2411 | (if (ad-is-advised function) |
| 2412 | (let* ((advice-to-remove (ad-find-advice function class name))) | 2412 | (let ((advice-to-remove (ad-find-advice function class name))) |
| 2413 | (if advice-to-remove | 2413 | (if advice-to-remove |
| 2414 | (ad-set-advice-info-field | 2414 | (ad-set-advice-info-field |
| 2415 | function class | 2415 | function class |
| @@ -2747,7 +2747,7 @@ For that it has to be fbound with a non-autoload definition." | |||
| 2747 | A three-element list is returned, where the 1st element is the list of | 2747 | A three-element list is returned, where the 1st element is the list of |
| 2748 | required arguments, the 2nd is the list of optional arguments, and the 3rd | 2748 | required arguments, the 2nd is the list of optional arguments, and the 3rd |
| 2749 | is the name of an optional rest parameter (or nil)." | 2749 | is the name of an optional rest parameter (or nil)." |
| 2750 | (let* (required optional rest) | 2750 | (let (required optional rest) |
| 2751 | (setq rest (car (cdr (memq '&rest arglist)))) | 2751 | (setq rest (car (cdr (memq '&rest arglist)))) |
| 2752 | (if rest (setq arglist (reverse (cdr (memq '&rest (reverse arglist)))))) | 2752 | (if rest (setq arglist (reverse (cdr (memq '&rest (reverse arglist)))))) |
| 2753 | (setq optional (cdr (memq '&optional arglist))) | 2753 | (setq optional (cdr (memq '&optional arglist))) |
| @@ -2958,7 +2958,7 @@ Example: `(ad-map-arglists '(a &rest args) '(w x y z))' will return | |||
| 2958 | 2958 | ||
| 2959 | (defun ad-make-mapped-call (source-arglist target-arglist target-function) | 2959 | (defun ad-make-mapped-call (source-arglist target-arglist target-function) |
| 2960 | "Make form to call TARGET-FUNCTION with args from SOURCE-ARGLIST." | 2960 | "Make form to call TARGET-FUNCTION with args from SOURCE-ARGLIST." |
| 2961 | (let* ((mapped-form (ad-map-arglists source-arglist target-arglist))) | 2961 | (let ((mapped-form (ad-map-arglists source-arglist target-arglist))) |
| 2962 | (if (eq (car mapped-form) 'funcall) | 2962 | (if (eq (car mapped-form) 'funcall) |
| 2963 | (cons target-function (cdr (cdr mapped-form))) | 2963 | (cons target-function (cdr (cdr mapped-form))) |
| 2964 | (prog1 mapped-form | 2964 | (prog1 mapped-form |
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index 3399f7e7b20..d2d68189230 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el | |||
| @@ -149,8 +149,6 @@ be a symbol, or any generalized variable allowed by `setf'." | |||
| 149 | (if (symbolp place) (list 'setq place (list 'cons x place)) | 149 | (if (symbolp place) (list 'setq place (list 'cons x place)) |
| 150 | (list 'callf2 'cons x place))) | 150 | (list 'callf2 'cons x place))) |
| 151 | 151 | ||
| 152 | (defvar pushnew-internal) | ||
| 153 | |||
| 154 | (defmacro pushnew (x place &rest keys) | 152 | (defmacro pushnew (x place &rest keys) |
| 155 | "(pushnew X PLACE): insert X at the head of the list if not already there. | 153 | "(pushnew X PLACE): insert X at the head of the list if not already there. |
| 156 | Like (push X PLACE), except that the list is unmodified if X is `eql' to | 154 | Like (push X PLACE), except that the list is unmodified if X is `eql' to |
| @@ -159,7 +157,8 @@ an element already on the list. | |||
| 159 | \n(fn X PLACE [KEYWORD VALUE]...)" | 157 | \n(fn X PLACE [KEYWORD VALUE]...)" |
| 160 | (if (symbolp place) | 158 | (if (symbolp place) |
| 161 | (if (null keys) | 159 | (if (null keys) |
| 162 | `(if (memql ,x ,place) ,place (setq ,place (cons ,x ,place))) | 160 | `(let ((x ,x)) |
| 161 | (if (memql x ,place) ,place (setq ,place (cons x ,place)))) | ||
| 163 | (list 'setq place (list* 'adjoin x place keys))) | 162 | (list 'setq place (list* 'adjoin x place keys))) |
| 164 | (list* 'callf2 'adjoin x place keys))) | 163 | (list* 'callf2 'adjoin x place keys))) |
| 165 | 164 | ||
diff --git a/lisp/files.el b/lisp/files.el index 3e2cf2ee92d..4b746225f60 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -514,6 +514,9 @@ using \\[toggle-read-only]." | |||
| 514 | :type 'boolean | 514 | :type 'boolean |
| 515 | :group 'view) | 515 | :group 'view) |
| 516 | 516 | ||
| 517 | (defvar file-name-history nil | ||
| 518 | "History list of file names entered in the minibuffer.") | ||
| 519 | |||
| 517 | (put 'ange-ftp-completion-hook-function 'safe-magic t) | 520 | (put 'ange-ftp-completion-hook-function 'safe-magic t) |
| 518 | (defun ange-ftp-completion-hook-function (op &rest args) | 521 | (defun ange-ftp-completion-hook-function (op &rest args) |
| 519 | "Provides support for ange-ftp host name completion. | 522 | "Provides support for ange-ftp host name completion. |
| @@ -1906,7 +1909,7 @@ in that case, this function acts as if `enable-local-variables' were t." | |||
| 1906 | ("\\.[sS]\\'" . asm-mode) | 1909 | ("\\.[sS]\\'" . asm-mode) |
| 1907 | ("\\.asm\\'" . asm-mode) | 1910 | ("\\.asm\\'" . asm-mode) |
| 1908 | ("[cC]hange\\.?[lL]og?\\'" . change-log-mode) | 1911 | ("[cC]hange\\.?[lL]og?\\'" . change-log-mode) |
| 1909 | ("[cC]hange[lL]og\\.[0-9]+\\'" . change-log-mode) | 1912 | ("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode) |
| 1910 | ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) | 1913 | ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) |
| 1911 | ("\\.scm\\.[0-9]*\\'" . scheme-mode) | 1914 | ("\\.scm\\.[0-9]*\\'" . scheme-mode) |
| 1912 | ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) | 1915 | ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) |
| @@ -2397,10 +2400,10 @@ asking you for confirmation." | |||
| 2397 | ;; | 2400 | ;; |
| 2398 | ;; For variables defined in the C source code the declaration should go here: | 2401 | ;; For variables defined in the C source code the declaration should go here: |
| 2399 | 2402 | ||
| 2400 | ;; FIXME: Some variables should be moved according to the rules above. | ||
| 2401 | (mapc (lambda (pair) | 2403 | (mapc (lambda (pair) |
| 2402 | (put (car pair) 'safe-local-variable (cdr pair))) | 2404 | (put (car pair) 'safe-local-variable (cdr pair))) |
| 2403 | '((fill-column . integerp) ;; C source code | 2405 | '((buffer-read-only . booleanp) ;; C source code |
| 2406 | (fill-column . integerp) ;; C source code | ||
| 2404 | (indent-tabs-mode . booleanp) ;; C source code | 2407 | (indent-tabs-mode . booleanp) ;; C source code |
| 2405 | (left-margin . integerp) ;; C source code | 2408 | (left-margin . integerp) ;; C source code |
| 2406 | (no-update-autoloads . booleanp) | 2409 | (no-update-autoloads . booleanp) |
| @@ -3730,7 +3733,7 @@ This requires the external program `diff' to be in your `exec-path'." | |||
| 3730 | (recursive-edit) | 3733 | (recursive-edit) |
| 3731 | ;; Return nil to ask about BUF again. | 3734 | ;; Return nil to ask about BUF again. |
| 3732 | nil) | 3735 | nil) |
| 3733 | "view this file") | 3736 | "view this buffer") |
| 3734 | (?d (lambda (buf) | 3737 | (?d (lambda (buf) |
| 3735 | (save-window-excursion | 3738 | (save-window-excursion |
| 3736 | (diff-buffer-with-file buf)) | 3739 | (diff-buffer-with-file buf)) |
| @@ -3738,7 +3741,7 @@ This requires the external program `diff' to be in your `exec-path'." | |||
| 3738 | (lambda (ignore) (exit-recursive-edit))) | 3741 | (lambda (ignore) (exit-recursive-edit))) |
| 3739 | (recursive-edit) | 3742 | (recursive-edit) |
| 3740 | nil) | 3743 | nil) |
| 3741 | "view changes in file")) | 3744 | "view changes in this buffer")) |
| 3742 | "ACTION-ALIST argument used in call to `map-y-or-n-p'.") | 3745 | "ACTION-ALIST argument used in call to `map-y-or-n-p'.") |
| 3743 | 3746 | ||
| 3744 | (defvar buffer-save-without-query nil | 3747 | (defvar buffer-save-without-query nil |
diff --git a/lisp/filesets.el b/lisp/filesets.el index eb8cdb02617..355c39f8ed7 100644 --- a/lisp/filesets.el +++ b/lisp/filesets.el | |||
| @@ -1603,7 +1603,7 @@ Replace <file-name> or <<file-name>> with filename." | |||
| 1603 | ((equal arg "<file-name>") | 1603 | ((equal arg "<file-name>") |
| 1604 | (buffer-file-name)) | 1604 | (buffer-file-name)) |
| 1605 | ((equal arg "<<file-name>>") | 1605 | ((equal arg "<<file-name>>") |
| 1606 | (filesets-quote (buffer-file-name))) | 1606 | (shell-quote-argument (buffer-file-name))) |
| 1607 | (t | 1607 | (t |
| 1608 | arg)))) | 1608 | arg)))) |
| 1609 | 1609 | ||
| @@ -1701,7 +1701,7 @@ Replace <file-name> or <<file-name>> with filename." | |||
| 1701 | ok) | 1701 | ok) |
| 1702 | t))) | 1702 | t))) |
| 1703 | (when ok | 1703 | (when ok |
| 1704 | (let ((cmd (format txt (buffer-file-name)))) | 1704 | (let ((cmd (format txt (shell-quote-argument (buffer-file-name))))) |
| 1705 | (message "Filesets: %s" cmd) | 1705 | (message "Filesets: %s" cmd) |
| 1706 | (filesets-cmd-show-result cmd | 1706 | (filesets-cmd-show-result cmd |
| 1707 | (shell-command-to-string cmd)))))) | 1707 | (shell-command-to-string cmd)))))) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index ad3c6ad919e..dba2c407b21 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,56 @@ | |||
| 1 | 2006-10-13 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 2 | |||
| 3 | * mm-uu.el (mm-uu-pgp-signed-extract-1): Use RFC 2440 definition of | ||
| 4 | "blank line" when searching for end of armor headers. | ||
| 5 | |||
| 6 | 2006-10-11 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 7 | |||
| 8 | * gmm-utils.el (gmm-write-region): Fix variable name. | ||
| 9 | |||
| 10 | 2006-10-10 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 11 | |||
| 12 | * gmm-utils.el (gmm-write-region): New function based on compatibility | ||
| 13 | code from `mm-make-temp-file'. | ||
| 14 | |||
| 15 | * mm-util.el (mm-make-temp-file): Use `gmm-write-region'. | ||
| 16 | |||
| 17 | * nnmaildir.el (nnmaildir--update-nov) | ||
| 18 | (nnmaildir-request-replace-article, nnmaildir-request-accept-article): | ||
| 19 | Use `gmm-write-region'. | ||
| 20 | |||
| 21 | 2006-10-04 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 22 | |||
| 23 | * gnus-sum.el (gnus-summary-make-menu-bar): Clarify | ||
| 24 | gnus-summary-limit-to-articles. | ||
| 25 | |||
| 26 | 2006-10-04 Romain Francoise <romain@orebokech.com> | ||
| 27 | |||
| 28 | * gnus-util.el (gnus-alist-to-hashtable, gnus-hashtable-to-alist): | ||
| 29 | Moved here (and renamed) from gnus-registry.el. | ||
| 30 | |||
| 31 | * gnus-registry.el: Require gnus-util. | ||
| 32 | Use `gnus-alist-to-hashtable' and `gnus-hashtable-to-alist'. | ||
| 33 | |||
| 34 | 2006-10-04 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 35 | |||
| 36 | * pop3.el (pop3-authentication-scheme): Clarify doc. | ||
| 37 | (pop3-movemail): Warn about pop3-leave-mail-on-server. | ||
| 38 | |||
| 39 | 2006-10-04 Dave Love <fx@gnu.org> | ||
| 40 | |||
| 41 | * pop3.el (pop3-authentication-scheme): Add custom version. | ||
| 42 | |||
| 43 | 2006-10-04 Jesper Harder <harder@ifa.au.dk> | ||
| 44 | |||
| 45 | * pop3.el (pop3-leave-mail-on-server): Don't quote nil in | ||
| 46 | doc string. Improve doc string. | ||
| 47 | |||
| 48 | 2006-10-03 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 49 | |||
| 50 | * gnus-util.el (gnus-with-local-quit): New macro. | ||
| 51 | |||
| 52 | * gnus-demon.el (gnus-demon): Replace with-local-quit with it. | ||
| 53 | |||
| 1 | 2006-09-28 Reiner Steib <Reiner.Steib@gmx.de> | 54 | 2006-09-28 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 55 | ||
| 3 | * gmm-utils.el (gmm): Adjust custom version. | 56 | * gmm-utils.el (gmm): Adjust custom version. |
| @@ -1273,7 +1326,7 @@ | |||
| 1273 | as a buffer-local variable. This avoids creating truncated | 1326 | as a buffer-local variable. This avoids creating truncated |
| 1274 | dribble files as a result of a hang up, eg. | 1327 | dribble files as a result of a hang up, eg. |
| 1275 | 1328 | ||
| 1276 | 2005-11-04 Ken Manheimer <ken.manheimer@gmail.com> | 1329 | 2005-11-04 Ken Manheimer <ken.manheimer@gmail.com> |
| 1277 | 1330 | ||
| 1278 | * pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region) | 1331 | * pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region) |
| 1279 | (pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric) | 1332 | (pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric) |
| @@ -4017,7 +4070,7 @@ | |||
| 4017 | 4070 | ||
| 4018 | * gnus-sum.el (gnus-summary-insert-subject): Remove list identifiers. | 4071 | * gnus-sum.el (gnus-summary-insert-subject): Remove list identifiers. |
| 4019 | 4072 | ||
| 4020 | 2004-09-03 Hiroshi Fujishima <pooh@nature.tsukuba.ac.jp> (tiny change) | 4073 | 2004-09-03 Hiroshi Fujishima <pooh@nature.tsukuba.ac.jp> (tiny change) |
| 4021 | 4074 | ||
| 4022 | * spam-stat.el (spam-stat-reduce-size): Set spam-stat-dirty. | 4075 | * spam-stat.el (spam-stat-reduce-size): Set spam-stat-dirty. |
| 4023 | (spam-stat-save): Accept prefix argument. | 4076 | (spam-stat-save): Accept prefix argument. |
| @@ -4164,17 +4217,17 @@ | |||
| 4164 | 4217 | ||
| 4165 | * gnus-sum.el (gnus-newsgroup-variables): Doc fix. | 4218 | * gnus-sum.el (gnus-newsgroup-variables): Doc fix. |
| 4166 | 4219 | ||
| 4167 | 2004-08-26 YAGI Tatsuya <ynyaaa@ybb.ne.jp> (tiny change) | 4220 | 2004-08-26 YAGI Tatsuya <ynyaaa@ybb.ne.jp> (tiny change) |
| 4168 | 4221 | ||
| 4169 | * gnus-art.el (gnus-article-next-page): Fix the way to find a real | 4222 | * gnus-art.el (gnus-article-next-page): Fix the way to find a real |
| 4170 | end-of-buffer. | 4223 | end-of-buffer. |
| 4171 | 4224 | ||
| 4172 | 2004-08-26 Stefan Wiens <s.wi@gmx.net> (tiny change) | 4225 | 2004-08-26 Stefan Wiens <s.wi@gmx.net> (tiny change) |
| 4173 | 4226 | ||
| 4174 | * gnus-sum.el (gnus-read-header): Don't remove a header for the | 4227 | * gnus-sum.el (gnus-read-header): Don't remove a header for the |
| 4175 | parent article of a sparse article in the thread hashtb. | 4228 | parent article of a sparse article in the thread hashtb. |
| 4176 | 4229 | ||
| 4177 | 2004-08-26 David Hedbor <dhedbor@real.com> (tiny change) | 4230 | 2004-08-26 David Hedbor <dhedbor@real.com> (tiny change) |
| 4178 | 4231 | ||
| 4179 | * nnmail.el (nnmail-split-lowercase-expanded): New user option. | 4232 | * nnmail.el (nnmail-split-lowercase-expanded): New user option. |
| 4180 | (nnmail-expand-newtext): Lowercase expanded entries if | 4233 | (nnmail-expand-newtext): Lowercase expanded entries if |
| @@ -4370,7 +4423,7 @@ | |||
| 4370 | * gnus-msg.el (gnus-summary-followup-with-original): | 4423 | * gnus-msg.el (gnus-summary-followup-with-original): |
| 4371 | Document yanking of region when active. | 4424 | Document yanking of region when active. |
| 4372 | 4425 | ||
| 4373 | 2004-04-13 Kevin Greiner <kgreiner@xpediantsolutions.com> | 4426 | 2004-04-13 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 4374 | 4427 | ||
| 4375 | * gnus-agent.el: Merged 7.3 through 7.7 updates into branch. | 4428 | * gnus-agent.el: Merged 7.3 through 7.7 updates into branch. |
| 4376 | Revision 7.2 changes excluded to maintain compatibility with all | 4429 | Revision 7.2 changes excluded to maintain compatibility with all |
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2 index e52c7ed072c..14b4c23c38a 100644 --- a/lisp/gnus/ChangeLog.2 +++ b/lisp/gnus/ChangeLog.2 | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | 2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 1 | 2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2 | 2 | ||
| 3 | * gnus.el: Gnus v5.10.6 is released. | 3 | * gnus.el: Gnus v5.10.6 is released. |
| 4 | 4 | ||
| @@ -10,7 +10,7 @@ | |||
| 10 | 10 | ||
| 11 | * gnus.el (gnus-version-number): Bump. | 11 | * gnus.el (gnus-version-number): Bump. |
| 12 | 12 | ||
| 13 | 2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 13 | 2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 14 | 14 | ||
| 15 | * gnus.el: Gnus v5.10.5 is released. | 15 | * gnus.el: Gnus v5.10.5 is released. |
| 16 | 16 | ||
| @@ -58,7 +58,7 @@ | |||
| 58 | 58 | ||
| 59 | * gnus.el (gnus-version-number): Bump. | 59 | * gnus.el (gnus-version-number): Bump. |
| 60 | 60 | ||
| 61 | 2004-01-03 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 61 | 2004-01-03 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 62 | 62 | ||
| 63 | * gnus.el: Gnus v5.10.4 is released. | 63 | * gnus.el: Gnus v5.10.4 is released. |
| 64 | 64 | ||
| @@ -81,10 +81,9 @@ | |||
| 81 | * gnus-nocem.el (gnus-nocem-enter-article): Use the real group | 81 | * gnus-nocem.el (gnus-nocem-enter-article): Use the real group |
| 82 | hashtb (tiny patch). | 82 | hashtb (tiny patch). |
| 83 | 83 | ||
| 84 | 2004-01-02 Kai Grossjohann <kai@emptydomain.de> | 84 | 2004-01-02 Michael Albinus <Michael.Albinus@alcatel.de> |
| 85 | 85 | ||
| 86 | * nnml.el (nnml-save-mail): Grok compressed articles. From | 86 | * nnml.el (nnml-save-mail): Grok compressed articles. |
| 87 | Michael Albinus <Michael.Albinus@alcatel.de>. | ||
| 88 | 87 | ||
| 89 | 2004-01-02 Teodor Zlatanov <tzz@lifelogs.com> | 88 | 2004-01-02 Teodor Zlatanov <tzz@lifelogs.com> |
| 90 | 89 | ||
| @@ -144,20 +143,16 @@ | |||
| 144 | (gnus-summary-goto-article): Allow `%40'. | 143 | (gnus-summary-goto-article): Allow `%40'. |
| 145 | (gnus-summary-refer-article): Convert `%40' to `@'. | 144 | (gnus-summary-refer-article): Convert `%40' to `@'. |
| 146 | 145 | ||
| 147 | 2003-12-30 Simon Josefsson <jas@extundo.com> | 146 | 2003-12-30 Arne J,Ax(Brgensen <arne@arnested.dk> |
| 148 | 147 | ||
| 149 | * smime.el (smime-crl-check): New. | 148 | * smime.el (smime-crl-check): New. |
| 150 | (smime-verify-region): Use it. From Arne J,Ax(Brgensen | 149 | (smime-verify-region): Use it. |
| 151 | <arne@arnested.dk> in <87llpk9v5q.fsf@seamus.arnested.dk> (tiny | ||
| 152 | change). | ||
| 153 | 150 | ||
| 154 | 2003-12-30 Reiner Steib <Reiner.Steib@gmx.de> | 151 | 2003-12-30 Reiner Steib <Reiner.Steib@gmx.de> |
| 155 | 152 | ||
| 156 | * gnus-score.el (gnus-score-edit-file-at-point): Consider the | 153 | (gnus-score-find-trace): Use gnus-score-edit-file-at-point. Added |
| 157 | whole match element. From Karl Pfl,Ad(Bsterer <sigurd@12move.de>. | 154 | `f' and `t' commands, added quick help. With some suggestions |
| 158 | (gnus-score-find-trace): Use it. Added `f' and `t' commands, | 155 | from Karl Pfl,Ad(Bsterer <sigurd@12move.de>. |
| 159 | added quick help. With some suggestions from Karl Pfl,Ad(Bsterer | ||
| 160 | <sigurd@12move.de>. | ||
| 161 | 156 | ||
| 162 | * gnus-util.el (gnus-emacs-version): Added doc-string. | 157 | * gnus-util.el (gnus-emacs-version): Added doc-string. |
| 163 | 158 | ||
| @@ -165,6 +160,11 @@ | |||
| 165 | (mml-attach-file): Use it. | 160 | (mml-attach-file): Use it. |
| 166 | (mml-preview): Added MIME preview to gnus-buffers. | 161 | (mml-preview): Added MIME preview to gnus-buffers. |
| 167 | 162 | ||
| 163 | 2003-12-30 Karl Pfl,Ad(Bsterer <sigurd@12move.de> | ||
| 164 | |||
| 165 | * gnus-score.el (gnus-score-edit-file-at-point): Consider the | ||
| 166 | whole match element. | ||
| 167 | |||
| 168 | 2003-12-30 Jesper Harder <harder@ifa.au.dk> | 168 | 2003-12-30 Jesper Harder <harder@ifa.au.dk> |
| 169 | 169 | ||
| 170 | * gnus-sum.el (gnus-summary-make-menu-bar): Add ellipses. | 170 | * gnus-sum.el (gnus-summary-make-menu-bar): Add ellipses. |
| @@ -179,7 +179,7 @@ | |||
| 179 | (gnus-secondary-method-p): Extend servers to methods before comparing. | 179 | (gnus-secondary-method-p): Extend servers to methods before comparing. |
| 180 | (gnus-secondary-method-p): Revert. | 180 | (gnus-secondary-method-p): Revert. |
| 181 | 181 | ||
| 182 | 2003-12-30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 182 | 2003-12-30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 183 | 183 | ||
| 184 | * gnus.el: Gnus v5.10.3 is released. | 184 | * gnus.el: Gnus v5.10.3 is released. |
| 185 | 185 | ||
| @@ -189,7 +189,7 @@ | |||
| 189 | Suggested by Steinar Bang <sb@dod.no>. | 189 | Suggested by Steinar Bang <sb@dod.no>. |
| 190 | (gnus-agent-auto-agentize-methods): Customize. | 190 | (gnus-agent-auto-agentize-methods): Customize. |
| 191 | 191 | ||
| 192 | 2003-12-29 Kevin Greiner <kgreiner@xpediantsolutions.com> | 192 | 2003-12-29 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 193 | * gnus.el (gnus-server-to-method): Fixed bug in 2003-12-22 | 193 | * gnus.el (gnus-server-to-method): Fixed bug in 2003-12-22 |
| 194 | check-in. | 194 | check-in. |
| 195 | 195 | ||
| @@ -210,10 +210,9 @@ | |||
| 210 | * mml1991.el (mml1991-pgg-encrypt): Decode according to CTE before | 210 | * mml1991.el (mml1991-pgg-encrypt): Decode according to CTE before |
| 211 | encrypting. | 211 | encrypting. |
| 212 | 212 | ||
| 213 | 2003-12-28 Jesper Harder <harder@ifa.au.dk> | 213 | 2003-12-28 Ivan Boldyrev <boldyrev@uiggm.nsc.ru> (tiny change). |
| 214 | 214 | ||
| 215 | * mml1991.el (mml1991-pgg-sign): Use unibyte when re-encoding. | 215 | * mml1991.el (mml1991-pgg-sign): Use unibyte when re-encoding. |
| 216 | From Ivan Boldyrev <boldyrev@uiggm.nsc.ru> (tiny change). | ||
| 217 | 216 | ||
| 218 | 2003-12-26 Katsumi Yamaoka <yamaoka@jpl.org> | 217 | 2003-12-26 Katsumi Yamaoka <yamaoka@jpl.org> |
| 219 | 218 | ||
| @@ -243,7 +242,7 @@ | |||
| 243 | * dgnushack.el (dgnushack-compile): Increase the value for | 242 | * dgnushack.el (dgnushack-compile): Increase the value for |
| 244 | max-specpdl-size when compiling Gnus with Emacs 20. | 243 | max-specpdl-size when compiling Gnus with Emacs 20. |
| 245 | 244 | ||
| 246 | 2003-12-22 Kevin Greiner <kgreiner@xpediantsolutions.com> | 245 | 2003-12-22 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 247 | * gnus-int.el (gnus-open-server): Fixed the server status such | 246 | * gnus-int.el (gnus-open-server): Fixed the server status such |
| 248 | that an agentized server, when opened offline, has a status of | 247 | that an agentized server, when opened offline, has a status of |
| 249 | offline. Also fixes bug whereby the agent's backend was called | 248 | offline. Also fixes bug whereby the agent's backend was called |
| @@ -268,7 +267,7 @@ | |||
| 268 | * gnus-agent.el (gnus-agent-read-agentview): Use | 267 | * gnus-agent.el (gnus-agent-read-agentview): Use |
| 269 | car-less-than-car. | 268 | car-less-than-car. |
| 270 | 269 | ||
| 271 | 2003-12-20 Artem Chuprina <ran@ran.pp.ru> (tiny change) | 270 | 2003-12-20 Artem Chuprina <ran@ran.pp.ru> (tiny change) |
| 272 | 271 | ||
| 273 | * message.el (message-yank-buffer): Bind message-reply-buffer to | 272 | * message.el (message-yank-buffer): Bind message-reply-buffer to |
| 274 | a buffer rather than a string. | 273 | a buffer rather than a string. |
| @@ -379,7 +378,7 @@ | |||
| 379 | 378 | ||
| 380 | * pgg.el (pgg-run-at-time): Ditto. | 379 | * pgg.el (pgg-run-at-time): Ditto. |
| 381 | 380 | ||
| 382 | 2003-12-11 Kevin Greiner <kgreiner@xpediantsolutions.com> | 381 | 2003-12-11 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 383 | 382 | ||
| 384 | * gnus-agent.el (gnus-agent-possibly-alter-active): New Function. | 383 | * gnus-agent.el (gnus-agent-possibly-alter-active): New Function. |
| 385 | (gnus-agent-regenerate-group): When necessary, alter the group's | 384 | (gnus-agent-regenerate-group): When necessary, alter the group's |
| @@ -401,17 +400,14 @@ | |||
| 401 | 400 | ||
| 402 | * message.el (message-get-reply-headers): Narrow to headers. | 401 | * message.el (message-get-reply-headers): Narrow to headers. |
| 403 | 402 | ||
| 404 | 2003-12-10 Teodor Zlatanov <tzz@lifelogs.com> | 403 | 2003-12-10 L,Bu(Brentey K,Ba(Broly <lorentey@elte.hu> |
| 405 | 404 | ||
| 406 | * spam.el (spam-disable-spam-split-during-ham-respool): new | 405 | * spam.el (spam-disable-spam-split-during-ham-respool): New |
| 407 | variable. From lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly) | 406 | variable. |
| 408 | (spam-ham-copy-or-move-routine): respect | 407 | (spam-ham-copy-or-move-routine): Respect |
| 409 | spam-disable-spam-split-during-ham-respool. From | 408 | spam-disable-spam-split-during-ham-respool. |
| 410 | lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly) | 409 | (spam-split-disabled): New variable. |
| 411 | (spam-split-disabled): new variable. From | 410 | (spam-split): Respect spam-split-disabled. |
| 412 | lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly) | ||
| 413 | (spam-split): respect spam-split-disabled. From | ||
| 414 | lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly) | ||
| 415 | 411 | ||
| 416 | 2003-12-10 Katsumi Yamaoka <yamaoka@jpl.org> | 412 | 2003-12-10 Katsumi Yamaoka <yamaoka@jpl.org> |
| 417 | 413 | ||
| @@ -427,19 +423,21 @@ | |||
| 427 | input. | 423 | input. |
| 428 | (pgg-decode-armor-region): Don't parse packet if decoding fail. | 424 | (pgg-decode-armor-region): Don't parse packet if decoding fail. |
| 429 | 425 | ||
| 430 | 2003-12-09 Teodor Zlatanov <tzz@lifelogs.com> | 426 | 2003-12-09 L,Bu(Brentey K,Ba(Broly <lorentey@elte.hu> |
| 431 | 427 | ||
| 432 | * spam.el (spam-check-bogofilter): run in the correct buffer. | 428 | * spam.el (spam-check-bogofilter): run in the correct buffer. |
| 433 | From lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly). | 429 | |
| 434 | (spam-bogofilter-database-directory): correct customization | 430 | 2003-12-09 Xavier Maillard <zedek@gnu-rox.org> |
| 435 | group. From Xavier Maillard <zedek@gnu-rox.org>. | 431 | |
| 432 | * spam.el (spam-bogofilter-database-directory): correct | ||
| 433 | customization group. | ||
| 436 | 434 | ||
| 437 | 2003-12-09 Per Abrahamsen <abraham@dina.kvl.dk> | 435 | 2003-12-09 Per Abrahamsen <abraham@dina.kvl.dk> |
| 438 | 436 | ||
| 439 | * nnmail.el (nnmail-lazy, nnmail-split-fancy): New widgets. | 437 | * nnmail.el (nnmail-lazy, nnmail-split-fancy): New widgets. |
| 440 | (nnmail-split-fancy): Use it. | 438 | (nnmail-split-fancy): Use it. |
| 441 | 439 | ||
| 442 | 2003-12-08 Joel Ray Holveck <joelh@piquan.org> (tiny change) | 440 | 2003-12-08 Joel Ray Holveck <joelh@piquan.org> (tiny change) |
| 443 | 441 | ||
| 444 | * gnus-sum.el (gnus-summary-save-parts-1): Consider the "name" | 442 | * gnus-sum.el (gnus-summary-save-parts-1): Consider the "name" |
| 445 | parameter of Content-Type. | 443 | parameter of Content-Type. |
| @@ -509,32 +507,32 @@ | |||
| 509 | * gnus-util.el: Require alist and provide tm-view when compiling | 507 | * gnus-util.el: Require alist and provide tm-view when compiling |
| 510 | with XEmacs. | 508 | with XEmacs. |
| 511 | 509 | ||
| 512 | 2003-12-03 Steve Youngs <sryoungs@bigpond.net.au> | 510 | 2003-12-03 Jerry James <james@xemacs.org> (tiny change) |
| 513 | 511 | ||
| 514 | * gnus-xmas.el: Add autoloads for macros defined in gnus.el. | 512 | * gnus-xmas.el: Add autoloads for macros defined in gnus.el. |
| 515 | From Jerry James <james@xemacs.org>. | ||
| 516 | 513 | ||
| 517 | * gnus-util.el: Get rmail definitions when compiling. | 514 | * gnus-util.el: Get rmail definitions when compiling. |
| 518 | From Jerry James <james@xemacs.org>. | ||
| 519 | 515 | ||
| 520 | * dns.el: Require gnus-xmas at compile time instead of trying to | 516 | * dns.el: Require gnus-xmas at compile time instead of trying to |
| 521 | autoload `gnus-xmas-open-network-stream' because it wasn't picking | 517 | autoload `gnus-xmas-open-network-stream' because it wasn't picking |
| 522 | up the macro. | 518 | up the macro. |
| 523 | From Jerry James <james@xemacs.org>. | ||
| 524 | 519 | ||
| 525 | 2003-12-01 Kevin Greiner <kgreiner@xpediantsolutions.com> | 520 | 2003-12-01 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 521 | |||
| 526 | * gnus-agent.el (gnus-agent-consider-all-articles): Updated | 522 | * gnus-agent.el (gnus-agent-consider-all-articles): Updated |
| 527 | docstring. | 523 | docstring. |
| 528 | (gnus-predicate-implies-unread, gnus-predicate-implies-unread-1): | 524 | (gnus-predicate-implies-unread, gnus-predicate-implies-unread-1): |
| 529 | Fixed implementation such that the predicate `true' no longer | 525 | Fixed implementation such that the predicate `true' no longer |
| 530 | evaluates to t. | 526 | evaluates to t. |
| 531 | 527 | ||
| 532 | 2003-12-01 Teodor Zlatanov <tzz@lifelogs.com> | 528 | 2003-12-01 Adrian Lanz <lanz@fowi.ethz.ch> (tiny change) |
| 533 | 529 | ||
| 534 | * spam.el (spam-check-bogofilter): check the bogofilter headers | 530 | * spam.el (spam-check-bogofilter): check the bogofilter headers |
| 535 | AFTER the save-excursion scope is over. From Adrian Lanz | 531 | AFTER the save-excursion scope is over. |
| 536 | <lanz@fowi.ethz.ch>. | 532 | |
| 537 | (spam-fetch-field-message-id-fast): doc fix | 533 | 2003-12-01 Teodor Zlatanov <tzz@lifelogs.com> |
| 534 | |||
| 535 | * spam.el (spam-fetch-field-message-id-fast): Doc fix | ||
| 538 | 536 | ||
| 539 | 2003-12-01 Simon Josefsson <jas@extundo.com> | 537 | 2003-12-01 Simon Josefsson <jas@extundo.com> |
| 540 | 538 | ||
| @@ -549,24 +547,26 @@ | |||
| 549 | (gnus-agent-expire-group-1): Only print a message for an article | 547 | (gnus-agent-expire-group-1): Only print a message for an article |
| 550 | when there actually was something done to it. | 548 | when there actually was something done to it. |
| 551 | 549 | ||
| 550 | * gnus-agent.el (gnus-agent-expire-unagentized-dirs): Custom fix. | ||
| 551 | |||
| 552 | 2003-11-30 Kenichi Handa <handa@m17n.org> | ||
| 553 | |||
| 552 | * mm-util.el (mm-enable-multibyte): Call set-buffer-multibyte with | 554 | * mm-util.el (mm-enable-multibyte): Call set-buffer-multibyte with |
| 553 | 'to argument. Fixes something or other in Emacs 22, and is | 555 | 'to argument. Fixes something or other in Emacs 22, and is |
| 554 | backwards compatible. From Kenichi Handa <handa@m17n.org>. | 556 | backwards compatible. |
| 555 | |||
| 556 | * gnus-agent.el (gnus-agent-expire-unagentized-dirs): Custom fix. | ||
| 557 | 557 | ||
| 558 | 2003-11-30 Lars Magne Ingebrigtsen <larsi@gnus.org> | 558 | 2003-11-30 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 559 | 559 | ||
| 560 | * gnus-agent.el (gnus-agent-covered-methods): Remove nil methods. | 560 | * gnus-agent.el (gnus-agent-covered-methods): Remove nil methods. |
| 561 | 561 | ||
| 562 | 2003-11-29 Kevin Greiner <kgreiner@xpediantsolutions.com> | 562 | 2003-11-29 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 563 | * gnus-start.el (gnus-activate-group): The active range of the | 563 | * gnus-start.el (gnus-activate-group): The active range of the |
| 564 | group must include the articles known to the agent. | 564 | group must include the articles known to the agent. |
| 565 | 565 | ||
| 566 | * gnus.el (gnus-agent-method-p): Accept a server name as the | 566 | * gnus.el (gnus-agent-method-p): Accept a server name as the |
| 567 | method being tested. | 567 | method being tested. |
| 568 | 568 | ||
| 569 | 2003-11-29 Alexander Kreuzer <alex@freesources.org> (tiny change) | 569 | 2003-11-29 Alexander Kreuzer <alex@freesources.org> (tiny change) |
| 570 | 570 | ||
| 571 | * nnrss.el (nnrss-check-group): Set xml when nnrss-use-local is t. | 571 | * nnrss.el (nnrss-check-group): Set xml when nnrss-use-local is t. |
| 572 | 572 | ||
| @@ -669,7 +669,7 @@ | |||
| 669 | 669 | ||
| 670 | * dgnushack.el (mapc): Add the compiler macro for Emacs 20. | 670 | * dgnushack.el (mapc): Add the compiler macro for Emacs 20. |
| 671 | 671 | ||
| 672 | 2003-11-24 Kevin Greiner <kgreiner@xpediantsolutions.com> | 672 | 2003-11-24 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 673 | * gnus-srvr.el (gnus-server-insert-server-line): The server names | 673 | * gnus-srvr.el (gnus-server-insert-server-line): The server names |
| 674 | used in gnus-agent are different (for example, the native server | 674 | used in gnus-agent are different (for example, the native server |
| 675 | uses the alias "native") from the names in gnus-srvr. | 675 | uses the alias "native") from the names in gnus-srvr. |
| @@ -681,7 +681,7 @@ | |||
| 681 | new gnus-server-named-server function to get gnus-agent compatible | 681 | new gnus-server-named-server function to get gnus-agent compatible |
| 682 | names from the server buffer. | 682 | names from the server buffer. |
| 683 | 683 | ||
| 684 | 2003-11-20 Kevin Greiner <kgreiner@xpediantsolutions.com> | 684 | 2003-11-20 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 685 | 685 | ||
| 686 | * gnus.el (gnus-agent-covered-methods): Documented use of | 686 | * gnus.el (gnus-agent-covered-methods): Documented use of |
| 687 | named servers, not methods, to identity agentized groups. | 687 | named servers, not methods, to identity agentized groups. |
| @@ -762,12 +762,12 @@ | |||
| 762 | * gnus-score.el (gnus-decay-score): Return a surely smaller value | 762 | * gnus-score.el (gnus-decay-score): Return a surely smaller value |
| 763 | than the argument in XEmacs. | 763 | than the argument in XEmacs. |
| 764 | 764 | ||
| 765 | 2003-11-18 Reiner Steib <Reiner.Steib@gmx.de> | 765 | 2003-11-18 Sam Steingold <sds@gnu.org> |
| 766 | 766 | ||
| 767 | * message.el (message-insert-to): Don't use `gnus-message'. | 767 | * message.el (message-insert-to): Don't use `gnus-message'. |
| 768 | (message-header-synonyms): New variable. | 768 | (message-header-synonyms): New variable. |
| 769 | (message-carefully-insert-headers): Use it (check for synonyms). | 769 | (message-carefully-insert-headers): Use it (check for synonyms). |
| 770 | Added doc-string. From Sam Steingold <sds@gnu.org>. | 770 | Added doc-string. |
| 771 | 771 | ||
| 772 | 2003-11-17 Lars Magne Ingebrigtsen <larsi@gnus.org> | 772 | 2003-11-17 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 773 | 773 | ||
| @@ -848,13 +848,16 @@ | |||
| 848 | 848 | ||
| 849 | 2003-11-10 Reiner Steib <Reiner.Steib@gmx.de> | 849 | 2003-11-10 Reiner Steib <Reiner.Steib@gmx.de> |
| 850 | 850 | ||
| 851 | * message.el (message-insert-to): Do error out when the user | 851 | * message.el (message-mode-field-menu): Moved some entries, added |
| 852 | requested no Cc. Don't insert empty To. Can be added to | ||
| 853 | `message-setup-hook' now. From Sam Steingold <sds@gnu.org>. | ||
| 854 | (message-mode-field-menu): Moved some entries, added | ||
| 855 | `message-insert-wide-reply'. | 852 | `message-insert-wide-reply'. |
| 856 | (message-change-subject): Fixed comment. | 853 | (message-change-subject): Fixed comment. |
| 857 | 854 | ||
| 855 | 2003-11-10 Sam Steingold <sds@gnu.org> | ||
| 856 | |||
| 857 | * message.el (message-insert-to): Do error out when the user | ||
| 858 | requested no Cc. Don't insert empty To. Can be added to | ||
| 859 | `message-setup-hook' now. | ||
| 860 | |||
| 858 | 2003-11-10 Simon Josefsson <jas@extundo.com> | 861 | 2003-11-10 Simon Josefsson <jas@extundo.com> |
| 859 | 862 | ||
| 860 | * pgg-def.el (pgg-encrypt-for-me): Change default from nil to t. | 863 | * pgg-def.el (pgg-encrypt-for-me): Change default from nil to t. |
| @@ -870,7 +873,7 @@ | |||
| 870 | * pgg-gpg.el (pgg-gpg-all-secret-keys): New variable. | 873 | * pgg-gpg.el (pgg-gpg-all-secret-keys): New variable. |
| 871 | (pgg-gpg-lookup-all-secret-keys): New function. | 874 | (pgg-gpg-lookup-all-secret-keys): New function. |
| 872 | (pgg-gpg-select-matching-key): Likewise. | 875 | (pgg-gpg-select-matching-key): Likewise. |
| 873 | (pgg-gpg-decrypt-region): Use new functions. | 876 | (pgg-gpg-decrypt-region): Use new functions. |
| 874 | 877 | ||
| 875 | 2003-11-07 Teodor Zlatanov <tzz@lifelogs.com> | 878 | 2003-11-07 Teodor Zlatanov <tzz@lifelogs.com> |
| 876 | 879 | ||
| @@ -1321,8 +1324,9 @@ | |||
| 1321 | * gnus-sum.el (gnus-summary-respool-query): Don't narrow to head, | 1324 | * gnus-sum.el (gnus-summary-respool-query): Don't narrow to head, |
| 1322 | it's done by nnmail-article-group. | 1325 | it's done by nnmail-article-group. |
| 1323 | 1326 | ||
| 1327 | 2003-10-12 Mark Hood <markhood@speakeasy.net> (tiny change) | ||
| 1328 | |||
| 1324 | * gnus-uu.el (gnus-uu-grab-articles): Fix misplaced parens. | 1329 | * gnus-uu.el (gnus-uu-grab-articles): Fix misplaced parens. |
| 1325 | From Mark Hood <markhood@speakeasy.net> (tiny change) | ||
| 1326 | 1330 | ||
| 1327 | 2003-10-10 Jesper Harder <harder@ifa.au.dk> | 1331 | 2003-10-10 Jesper Harder <harder@ifa.au.dk> |
| 1328 | 1332 | ||
| @@ -1386,10 +1390,10 @@ | |||
| 1386 | 1390 | ||
| 1387 | * spam.el (spam-install-hooks-function): Added Autoload cookie. | 1391 | * spam.el (spam-install-hooks-function): Added Autoload cookie. |
| 1388 | 1392 | ||
| 1389 | 2003-10-02 Jesper Harder <harder@ifa.au.dk> | 1393 | 2003-10-02 Michael Shields <shields@msrl.com> |
| 1390 | 1394 | ||
| 1391 | * pgg-def.el (pgg-default-keyserver-address): Change to | 1395 | * pgg-def.el (pgg-default-keyserver-address): Change to |
| 1392 | subkeys.pgp.net. From Michael Shields <shields@msrl.com> | 1396 | subkeys.pgp.net. |
| 1393 | 1397 | ||
| 1394 | 2003-10-01 Simon Josefsson <jas@extundo.com> | 1398 | 2003-10-01 Simon Josefsson <jas@extundo.com> |
| 1395 | 1399 | ||
| @@ -1463,19 +1467,21 @@ | |||
| 1463 | 1467 | ||
| 1464 | * gnus.el (gnus-group-charter-alist): Update. | 1468 | * gnus.el (gnus-group-charter-alist): Update. |
| 1465 | 1469 | ||
| 1470 | 2003-09-10 Eric Knauel <knauel@informatik.uni-tuebingen.de> | ||
| 1471 | |||
| 1472 | * spam-report.el: Use mm-url.el functions for external URL loading | ||
| 1473 | when the built-in HTTP GET is insufficient (e.g. proxies are in | ||
| 1474 | the way). | ||
| 1475 | |||
| 1466 | 2003-09-10 Teodor Zlatanov <tzz@lifelogs.com> | 1476 | 2003-09-10 Teodor Zlatanov <tzz@lifelogs.com> |
| 1467 | 1477 | ||
| 1468 | * spam-report.el: use mm-url.el functions for external URL | 1478 | * spam-report.el (spam-report-url-ping-function): New option, |
| 1469 | loading when the built-in HTTP GET is insufficient (e.g. proxies | 1479 | defaults to the built-in HTTP GET (spam-report-url-ping-plain). |
| 1470 | are in the way). From Eric Knauel | 1480 | (spam-report-url-ping): Call spam-report-url-ping-function. |
| 1471 | <knauel@informatik.uni-tuebingen.de>. | 1481 | (spam-report-url-ping-plain): New function, does what |
| 1472 | (spam-report-url-ping-function): new option, defaults to the | 1482 | spam-report-url-ping used to do. |
| 1473 | built-in HTTP GET (spam-report-url-ping-plain) | 1483 | (spam-report-url-ping-mm-url): Function that delegates to |
| 1474 | (spam-report-url-ping): calls spam-report-url-ping-function now | 1484 | mm-url.el (autoloaded). |
| 1475 | (spam-report-url-ping-plain): new function, does what | ||
| 1476 | spam-report-url-ping used to do | ||
| 1477 | (spam-report-url-ping-mm-url): function that delegates to | ||
| 1478 | mm-url.el (autoloaded) | ||
| 1479 | 1485 | ||
| 1480 | 2003-09-08 Teodor Zlatanov <tzz@lifelogs.com> | 1486 | 2003-09-08 Teodor Zlatanov <tzz@lifelogs.com> |
| 1481 | 1487 | ||
| @@ -1576,12 +1582,11 @@ | |||
| 1576 | (mml-insert-mime-headers): Use it. Based on (tiny) patch from | 1582 | (mml-insert-mime-headers): Use it. Based on (tiny) patch from |
| 1577 | Lars Balker Rasmussen <lars@balker.org>. | 1583 | Lars Balker Rasmussen <lars@balker.org>. |
| 1578 | 1584 | ||
| 1579 | 2003-08-30 Simon Josefsson <jas@extundo.com> | 1585 | 2003-08-30 Gaute Strokkenes <gs234@srcf.ucam.org> (tiny change) |
| 1580 | 1586 | ||
| 1581 | * mail-source.el (mail-source-fetch-imap): Pass correct buffer to | 1587 | * mail-source.el (mail-source-fetch-imap): Pass correct buffer to |
| 1582 | imap-open, reverts 2003-03-17 change. Reverse remove before | 1588 | imap-open, reverts 2003-03-17 change. Reverse remove before |
| 1583 | calling gnus-compress-sequence. From Gaute Strokkenes | 1589 | calling gnus-compress-sequence. |
| 1584 | <gs234@srcf.ucam.org> (tiny change). | ||
| 1585 | 1590 | ||
| 1586 | 2003-08-29 Simon Josefsson <jas@extundo.com> | 1591 | 2003-08-29 Simon Josefsson <jas@extundo.com> |
| 1587 | 1592 | ||
| @@ -1601,11 +1606,10 @@ | |||
| 1601 | the files it may be using. Reported by David Coe | 1606 | the files it may be using. Reported by David Coe |
| 1602 | <davidc@debian.org>. | 1607 | <davidc@debian.org>. |
| 1603 | 1608 | ||
| 1604 | 2003-08-27 Jesper Harder <harder@ifa.au.dk> | 1609 | 2003-08-27 Vagn Johansen <v@johansen.mail.dk> (tiny change) |
| 1605 | 1610 | ||
| 1606 | * gnus-cache.el (gnus-cache-generate-active): Fix bug in | 1611 | * gnus-cache.el (gnus-cache-generate-active): Fix bug in |
| 1607 | replacement. From Vagn Johansen <v@johansen.mail.dk> (tiny | 1612 | replacement. |
| 1608 | change). | ||
| 1609 | 1613 | ||
| 1610 | 2003-08-25 Katsumi Yamaoka <yamaoka@jpl.org> | 1614 | 2003-08-25 Katsumi Yamaoka <yamaoka@jpl.org> |
| 1611 | 1615 | ||
| @@ -1711,10 +1715,9 @@ | |||
| 1711 | * gnus.el (gnus-refer-article-method): Ditto. | 1715 | * gnus.el (gnus-refer-article-method): Ditto. |
| 1712 | * message.el (message-courtesy-message): Ditto. | 1716 | * message.el (message-courtesy-message): Ditto. |
| 1713 | 1717 | ||
| 1714 | 2003-08-06 Jesper Harder <harder@ifa.au.dk> | 1718 | 2003-08-06 Chunyu Wang <spr@db.cs.hit.edu.cn> (tiny patch) |
| 1715 | 1719 | ||
| 1716 | * gnus-art.el (gnus-header-face-alist): Fix "Newsgroups" entry. | 1720 | * gnus-art.el (gnus-header-face-alist): Fix "Newsgroups" entry. |
| 1717 | From Chunyu Wang <spr@db.cs.hit.edu.cn> (tiny patch) | ||
| 1718 | 1721 | ||
| 1719 | 2003-08-05 Katsumi Yamaoka <yamaoka@jpl.org> | 1722 | 2003-08-05 Katsumi Yamaoka <yamaoka@jpl.org> |
| 1720 | 1723 | ||
| @@ -1840,8 +1843,7 @@ | |||
| 1840 | * imap.el (imap-arrival-filter): Fix test for missing process | 1843 | * imap.el (imap-arrival-filter): Fix test for missing process |
| 1841 | buffer. | 1844 | buffer. |
| 1842 | 1845 | ||
| 1843 | 2003-07-09 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 1846 | 2003-07-09 Gaute B Strokkenes <gs234@cam.ac.uk> (tiny patch). |
| 1844 | From Gaute B Strokkenes <gs234@cam.ac.uk> (tiny patch). | ||
| 1845 | 1847 | ||
| 1846 | * imap.el (imap-wait-for-tag): Clarify comment. Use timeout zero | 1848 | * imap.el (imap-wait-for-tag): Clarify comment. Use timeout zero |
| 1847 | for second, after-process-has-died, accept-process-output. | 1849 | for second, after-process-has-died, accept-process-output. |
| @@ -1897,25 +1899,25 @@ | |||
| 1897 | (message-canlock-generate) | 1899 | (message-canlock-generate) |
| 1898 | (message-generate-new-buffer-clone-locals): Docstring fixes. | 1900 | (message-generate-new-buffer-clone-locals): Docstring fixes. |
| 1899 | 1901 | ||
| 1900 | 2003-07-07 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 1902 | 2003-07-07 Gaute B Strokkenes <gs234@cam.ac.uk> (tiny patch) |
| 1901 | 1903 | ||
| 1902 | * imap.el (imap-wait-for-tag): After the process has died, look | 1904 | * imap.el (imap-wait-for-tag): After the process has died, look |
| 1903 | for more output still pending. From Gaute B Strokkenes | 1905 | for more output still pending. |
| 1904 | <gs234@cam.ac.uk> (tiny patch). | ||
| 1905 | 1906 | ||
| 1906 | 2003-07-07 Teodor Zlatanov <tzz@lifelogs.com> | 1907 | 2003-07-07 Teodor Zlatanov <tzz@lifelogs.com> |
| 1907 | 1908 | ||
| 1908 | * spam.el (spam-bogofilter-score): redisplay article normally | 1909 | * spam.el (spam-bogofilter-score): redisplay article normally |
| 1909 | after spam-bogofilter-score is called | 1910 | after spam-bogofilter-score is called |
| 1910 | 1911 | ||
| 1912 | 2003-07-06 Michael Piotrowski <mxp@dynalabs.de> (tiny change) | ||
| 1913 | |||
| 1914 | * gnus-sum.el (gnus-print-buffer): Apply emphasis. | ||
| 1915 | |||
| 1911 | 2003-07-06 Jesper Harder <harder@ifa.au.dk> | 1916 | 2003-07-06 Jesper Harder <harder@ifa.au.dk> |
| 1912 | 1917 | ||
| 1913 | * message.el (message-send-mail-with-sendmail): Handle | 1918 | * message.el (message-send-mail-with-sendmail): Handle |
| 1914 | non-numeric return values. | 1919 | non-numeric return values. |
| 1915 | 1920 | ||
| 1916 | * gnus-sum.el (gnus-print-buffer): Apply emphasis. | ||
| 1917 | From Michael Piotrowski <mxp@dynalabs.de> (tiny change). | ||
| 1918 | |||
| 1919 | * gnus-start.el (gnus-clear-system): Revert change from | 1921 | * gnus-start.el (gnus-clear-system): Revert change from |
| 1920 | 2003-06-19. | 1922 | 2003-06-19. |
| 1921 | 1923 | ||
| @@ -2012,11 +2014,13 @@ | |||
| 2012 | 2014 | ||
| 2013 | 2003-06-20 Jesper Harder <harder@ifa.au.dk> | 2015 | 2003-06-20 Jesper Harder <harder@ifa.au.dk> |
| 2014 | 2016 | ||
| 2015 | * gnus-msg.el (gnus-configure-posting-styles): Remove unused | ||
| 2016 | variable. From Jan Rychter <jan@rychter.com>. | ||
| 2017 | |||
| 2018 | * spam.el (spam-spamoracle-learn): insert-string is obsolete. | 2017 | * spam.el (spam-spamoracle-learn): insert-string is obsolete. |
| 2019 | 2018 | ||
| 2019 | 2003-06-20 Jan Rychter <jan@rychter.com> | ||
| 2020 | |||
| 2021 | * gnus-msg.el (gnus-configure-posting-styles): Remove unused | ||
| 2022 | variable. | ||
| 2023 | |||
| 2020 | 2003-06-19 Teodor Zlatanov <tzz@lifelogs.com> | 2024 | 2003-06-19 Teodor Zlatanov <tzz@lifelogs.com> |
| 2021 | 2025 | ||
| 2022 | * spam.el (spam-enter-list): do not enter duplicate addresses into | 2026 | * spam.el (spam-enter-list): do not enter duplicate addresses into |
| @@ -2049,11 +2053,10 @@ | |||
| 2049 | * gnus-util.el (gnus-extract-address-components): Added | 2053 | * gnus-util.el (gnus-extract-address-components): Added |
| 2050 | doc-string. | 2054 | doc-string. |
| 2051 | 2055 | ||
| 2052 | 2003-06-16 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 2056 | 2003-06-16 Michael Albinus <Michael.Albinus@alcatel.de> |
| 2053 | 2057 | ||
| 2054 | * nnml.el (nnml-current-group-article-to-file-alist): Don't read | 2058 | * nnml.el (nnml-current-group-article-to-file-alist): Don't read |
| 2055 | overview when using compressed files. From Michael Albinus | 2059 | overview when using compressed files. |
| 2056 | <Michael.Albinus@alcatel.de>. | ||
| 2057 | 2060 | ||
| 2058 | 2003-06-16 Katsumi Yamaoka <yamaoka@jpl.org> | 2061 | 2003-06-16 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2059 | 2062 | ||
| @@ -2071,8 +2074,7 @@ | |||
| 2071 | * gnus-sum.el (gnus-summary-force-verify-and-decrypt): Bind | 2074 | * gnus-sum.el (gnus-summary-force-verify-and-decrypt): Bind |
| 2072 | `gnus-article-emulate-mime'. | 2075 | `gnus-article-emulate-mime'. |
| 2073 | 2076 | ||
| 2074 | 2003-06-15 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 2077 | 2003-06-15 Tommi Vainikainen <thv+gnus@iki.fi> |
| 2075 | From Tommi Vainikainen <thv+gnus@iki.fi>. | ||
| 2076 | 2078 | ||
| 2077 | * message.el (message-is-yours-p): New function. Separated common | 2079 | * message.el (message-is-yours-p): New function. Separated common |
| 2078 | code from message-cancel-news and message-supersede. Added | 2080 | code from message-cancel-news and message-supersede. Added |
| @@ -2080,10 +2082,10 @@ | |||
| 2080 | resort. | 2082 | resort. |
| 2081 | (message-cancel-news, message-supersede): Use message-is-yours-p. | 2083 | (message-cancel-news, message-supersede): Use message-is-yours-p. |
| 2082 | 2084 | ||
| 2083 | 2003-06-13 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 2085 | 2003-06-13 Niklas Morberg <niklas.morberg@axis.com> |
| 2084 | 2086 | ||
| 2085 | * nnimap.el (nnimap-split-articles): Narrow the right buffer to | 2087 | * nnimap.el (nnimap-split-articles): Narrow the right buffer to |
| 2086 | the headers. From Niklas Morberg <niklas.morberg@axis.com>. | 2088 | the headers. |
| 2087 | 2089 | ||
| 2088 | 2003-06-12 Dave Love <fx@gnu.org> | 2090 | 2003-06-12 Dave Love <fx@gnu.org> |
| 2089 | 2091 | ||
| @@ -2100,9 +2102,7 @@ | |||
| 2100 | * spam.el (spam-check-bogofilter-headers): fix for when the score | 2102 | * spam.el (spam-check-bogofilter-headers): fix for when the score |
| 2101 | is requested but the message is not spam | 2103 | is requested but the message is not spam |
| 2102 | 2104 | ||
| 2103 | 2003-06-09 Teodor Zlatanov <tzz@lifelogs.com> | 2105 | 2003-06-09 Eric Knauel <knauel@informatik.uni-tuebingen.de> |
| 2104 | From Eric | ||
| 2105 | <knauel@informatik.uni-tuebingen.de> | ||
| 2106 | 2106 | ||
| 2107 | * spam.el (spam-use-spamoracle): new variable | 2107 | * spam.el (spam-use-spamoracle): new variable |
| 2108 | (spam-install-hooks): add spamoracle to the list of conditions | 2108 | (spam-install-hooks): add spamoracle to the list of conditions |
| @@ -2145,8 +2145,7 @@ | |||
| 2145 | * gnus-srvr.el (gnus-browse-foreign-server): Parse garbage NNTP | 2145 | * gnus-srvr.el (gnus-browse-foreign-server): Parse garbage NNTP |
| 2146 | groups correctly. | 2146 | groups correctly. |
| 2147 | 2147 | ||
| 2148 | 2003-06-06 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 2148 | 2003-06-06 Benjamin Rutt <rutt+news@cis.ohio-state.edu>. |
| 2149 | From Benjamin Rutt <rutt+news@cis.ohio-state.edu>. | ||
| 2150 | 2149 | ||
| 2151 | * message.el (message-fetch-field): Augment documentation to state | 2150 | * message.el (message-fetch-field): Augment documentation to state |
| 2152 | the narrowed-to-headers restriction. | 2151 | the narrowed-to-headers restriction. |
| @@ -2172,11 +2171,9 @@ | |||
| 2172 | * rfc2047.el (rfc2047-encode-region): Don't error out on invalid | 2171 | * rfc2047.el (rfc2047-encode-region): Don't error out on invalid |
| 2173 | strings. | 2172 | strings. |
| 2174 | 2173 | ||
| 2175 | 2003-06-04 Jesper Harder <harder@ifa.au.dk> | 2174 | 2003-06-04 Ivan Boldyrev <boldyrev+nospam@cgitftp.uiggm.nsc.ru> (tiny change) |
| 2176 | 2175 | ||
| 2177 | * mml1991.el (mml1991-pgg-sign): Insert pgg output as unibyte. | 2176 | * mml1991.el (mml1991-pgg-sign): Insert pgg output as unibyte. |
| 2178 | From: Ivan Boldyrev <boldyrev+nospam@cgitftp.uiggm.nsc.ru> (tiny | ||
| 2179 | change) | ||
| 2180 | 2177 | ||
| 2181 | 2003-06-03 Dave Love <fx@gnu.org> | 2178 | 2003-06-03 Dave Love <fx@gnu.org> |
| 2182 | 2179 | ||
| @@ -2203,11 +2200,10 @@ | |||
| 2203 | * message.el (message-fetch-field): Mention narrow-to-headers | 2200 | * message.el (message-fetch-field): Mention narrow-to-headers |
| 2204 | requirement. | 2201 | requirement. |
| 2205 | 2202 | ||
| 2206 | 2003-06-03 Jesper Harder <harder@ifa.au.dk> | 2203 | 2003-06-03 Eric Eide <eeide@cs.utah.edu> |
| 2207 | 2204 | ||
| 2208 | * gnus-xmas.el (gnus-xmas-create-image): Use | 2205 | * gnus-xmas.el (gnus-xmas-create-image): Use |
| 2209 | insert-file-contents-literally. From: Eric Eide | 2206 | insert-file-contents-literally. |
| 2210 | <eeide@cs.utah.edu> | ||
| 2211 | 2207 | ||
| 2212 | 2003-06-02 Teodor Zlatanov <tzz@lifelogs.com> | 2208 | 2003-06-02 Teodor Zlatanov <tzz@lifelogs.com> |
| 2213 | 2209 | ||
| @@ -2312,7 +2308,7 @@ | |||
| 2312 | 2308 | ||
| 2313 | * dgnushack.el (assq-delete-all): Removed the compiler macro. | 2309 | * dgnushack.el (assq-delete-all): Removed the compiler macro. |
| 2314 | 2310 | ||
| 2315 | 2003-05-14 Kevin Greiner <kgreiner@xpediantsolutions.com> | 2311 | 2003-05-14 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 2316 | 2312 | ||
| 2317 | * gnus-agent.el (gnus-agentize): Updated documentation to match | 2313 | * gnus-agent.el (gnus-agentize): Updated documentation to match |
| 2318 | usage. | 2314 | usage. |
| @@ -2325,7 +2321,7 @@ | |||
| 2325 | 2321 | ||
| 2326 | * gnus.el (gnus-version-number): Bump. | 2322 | * gnus.el (gnus-version-number): Bump. |
| 2327 | 2323 | ||
| 2328 | 2003-05-14 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 2324 | 2003-05-14 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2329 | 2325 | ||
| 2330 | * gnus.el: Gnus v5.10.2 is released. | 2326 | * gnus.el: Gnus v5.10.2 is released. |
| 2331 | 2327 | ||
| @@ -2384,7 +2380,7 @@ | |||
| 2384 | in message. Suggested by Yoichi NAKAYAMA <yoichi@geiin.org>. | 2380 | in message. Suggested by Yoichi NAKAYAMA <yoichi@geiin.org>. |
| 2385 | * pop3.el (pop3-movemail): Ditto. | 2381 | * pop3.el (pop3-movemail): Ditto. |
| 2386 | 2382 | ||
| 2387 | 2003-05-12 Colin Marquardt <c.marquardt@alcatel.de> (tiny change) | 2383 | 2003-05-12 Colin Marquardt <c.marquardt@alcatel.de> (tiny change) |
| 2388 | 2384 | ||
| 2389 | * gnus.el (gnus-agent): Docstring fix. | 2385 | * gnus.el (gnus-agent): Docstring fix. |
| 2390 | 2386 | ||
| @@ -2396,7 +2392,7 @@ | |||
| 2396 | (gnus-registry-add-group): add a modification timestamp to each entry | 2392 | (gnus-registry-add-group): add a modification timestamp to each entry |
| 2397 | (gnus-registry-install-hooks): new function | 2393 | (gnus-registry-install-hooks): new function |
| 2398 | 2394 | ||
| 2399 | 2003-05-12 Kevin Greiner <kgreiner@xpediantsolutions.com> | 2395 | 2003-05-12 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 2400 | 2396 | ||
| 2401 | * gnus-agent.el (gnus-agent-cat-name): Eval macro while compiling. | 2397 | * gnus-agent.el (gnus-agent-cat-name): Eval macro while compiling. |
| 2402 | (gnus-agent-cat-disable-undownloaded-faces): New function. | 2398 | (gnus-agent-cat-disable-undownloaded-faces): New function. |
| @@ -2494,13 +2490,15 @@ | |||
| 2494 | * gnus-registry.el (gnus-registry-cache-file): new file variable | 2490 | * gnus-registry.el (gnus-registry-cache-file): new file variable |
| 2495 | (gnus-registry-cache-read, gnus-registry-cache-save): new | 2491 | (gnus-registry-cache-read, gnus-registry-cache-save): new |
| 2496 | functions | 2492 | functions |
| 2497 | (gnus-registry-cache-whitespace): new function. From Dan | ||
| 2498 | Christensen <jdc@chow.mat.jhu.edu> | ||
| 2499 | (gnus-registry-save, gnus-registry-read): use the new | 2493 | (gnus-registry-save, gnus-registry-read): use the new |
| 2500 | gnus-registry-cache-{read|save} functions, and change the name | 2494 | gnus-registry-cache-{read|save} functions, and change the name |
| 2501 | from gnus-registry-translate-{from|to}-alist | 2495 | from gnus-registry-translate-{from|to}-alist |
| 2502 | (gnus-registry-clear): fixed so it doesn't refer to old function name | 2496 | (gnus-registry-clear): fixed so it doesn't refer to old function name |
| 2503 | 2497 | ||
| 2498 | 2003-05-09 Dan Christensen <jdc@chow.mat.jhu.edu> | ||
| 2499 | |||
| 2500 | * gnus-registry.el (gnus-registry-cache-whitespace): new function. | ||
| 2501 | |||
| 2504 | 2003-05-09 Jesper Harder <harder@ifa.au.dk> | 2502 | 2003-05-09 Jesper Harder <harder@ifa.au.dk> |
| 2505 | 2503 | ||
| 2506 | * gnus-picon.el (gnus-picon-transform-address): Parse the encoded | 2504 | * gnus-picon.el (gnus-picon-transform-address): Parse the encoded |
| @@ -2515,8 +2513,9 @@ | |||
| 2515 | nnmail-split-fancy-with-parent-ignore-groups can be a single regex | 2513 | nnmail-split-fancy-with-parent-ignore-groups can be a single regex |
| 2516 | in addition to a list of regexes. | 2514 | in addition to a list of regexes. |
| 2517 | 2515 | ||
| 2518 | * spam.el (spam-use-regex-headers): docstring fix. From Niklas | 2516 | 2003-05-08 Niklas Morberg <niklas.morberg@axis.com> |
| 2519 | Morberg <niklas.morberg@axis.com> | 2517 | |
| 2518 | * spam.el (spam-use-regex-headers): docstring fix. | ||
| 2520 | 2519 | ||
| 2521 | 2003-05-08 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 2520 | 2003-05-08 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> |
| 2522 | 2521 | ||
| @@ -2587,7 +2586,7 @@ | |||
| 2587 | * mm-bodies.el (mm-decode-coding-region-safely): Remove. | 2586 | * mm-bodies.el (mm-decode-coding-region-safely): Remove. |
| 2588 | (mm-decode-body): Don't use mm-decode-coding-region-safely. | 2587 | (mm-decode-body): Don't use mm-decode-coding-region-safely. |
| 2589 | 2588 | ||
| 2590 | 2003-05-03 Vasily Korytov <deskpot@despammed.com> (tiny change) | 2589 | 2003-05-03 Vasily Korytov <deskpot@despammed.com> (tiny change) |
| 2591 | 2590 | ||
| 2592 | * gnus-util.el (gnus-multiple-choice): Add ", ?". | 2591 | * gnus-util.el (gnus-multiple-choice): Add ", ?". |
| 2593 | 2592 | ||
| @@ -2704,13 +2703,13 @@ | |||
| 2704 | 2703 | ||
| 2705 | * gnus.el (gnus-version-number): Bump. | 2704 | * gnus.el (gnus-version-number): Bump. |
| 2706 | 2705 | ||
| 2707 | 2003-05-01 Teodor Zlatanov <tzz@lifelogs.com> | 2706 | 2003-05-01 Jon Ericson <Jon.Ericson@jpl.nasa.gov> (tiny change) |
| 2708 | 2707 | ||
| 2709 | * spam-report.el (spam-report-gmane-regex): docstring fix. From | 2708 | * spam-report.el (spam-report-gmane-regex): docstring fix. |
| 2710 | Jon Ericson <Jon.Ericson@jpl.nasa.gov> (tiny change) | ||
| 2711 | 2709 | ||
| 2712 | * gnus.el (gnus-install-group-spam-parameters): docstring fix. | 2710 | * gnus.el (gnus-install-group-spam-parameters): docstring fix. |
| 2713 | From Jon Ericson <Jon.Ericson@jpl.nasa.gov> (tiny change) | 2711 | |
| 2712 | 2003-05-01 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 2714 | 2713 | ||
| 2715 | * gnus-registry.el (gnus-registry-fetch-extra) | 2714 | * gnus-registry.el (gnus-registry-fetch-extra) |
| 2716 | (gnus-registry-store-extra, gnus-registry-group-count): new functions | 2715 | (gnus-registry-store-extra, gnus-registry-group-count): new functions |
| @@ -2718,11 +2717,11 @@ | |||
| 2718 | (gnus-registry-add-group): changed to work with extra data element | 2717 | (gnus-registry-add-group): changed to work with extra data element |
| 2719 | if present | 2718 | if present |
| 2720 | 2719 | ||
| 2721 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 2720 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2722 | 2721 | ||
| 2723 | * gnus.el: Gnus v5.10.1 is released. | 2722 | * gnus.el: Gnus v5.10.1 is released. |
| 2724 | 2723 | ||
| 2725 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 2724 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2726 | 2725 | ||
| 2727 | * gnus.el: Oort Gnus v0.24 is released. | 2726 | * gnus.el: Oort Gnus v0.24 is released. |
| 2728 | 2727 | ||
| @@ -2741,7 +2740,7 @@ | |||
| 2741 | 2740 | ||
| 2742 | * gnus.el: Update copyright for several files. | 2741 | * gnus.el: Update copyright for several files. |
| 2743 | 2742 | ||
| 2744 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 2743 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2745 | 2744 | ||
| 2746 | * gnus.el: Oort Gnus v0.23 is released. | 2745 | * gnus.el: Oort Gnus v0.23 is released. |
| 2747 | 2746 | ||
| @@ -2749,7 +2748,7 @@ | |||
| 2749 | 2748 | ||
| 2750 | * spam-stat.el (spam-stat-test-directory): Compare against zero. | 2749 | * spam-stat.el (spam-stat-test-directory): Compare against zero. |
| 2751 | 2750 | ||
| 2752 | 2003-05-01 Trey Jackson <tjackson@ichips.intel.com> (tiny change) | 2751 | 2003-05-01 Trey Jackson <tjackson@ichips.intel.com> (tiny change) |
| 2753 | 2752 | ||
| 2754 | * spam-stat.el (spam-stat-test-directory): Skip 0 length files. | 2753 | * spam-stat.el (spam-stat-test-directory): Skip 0 length files. |
| 2755 | 2754 | ||
| @@ -2766,11 +2765,11 @@ | |||
| 2766 | 2765 | ||
| 2767 | * gnus.el (gnus-version-number): Bump. | 2766 | * gnus.el (gnus-version-number): Bump. |
| 2768 | 2767 | ||
| 2769 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 2768 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2770 | 2769 | ||
| 2771 | * gnus.el: Oort Gnus v0.22 is released. | 2770 | * gnus.el: Oort Gnus v0.22 is released. |
| 2772 | 2771 | ||
| 2773 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 2772 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2774 | 2773 | ||
| 2775 | * gnus.el: Oort Gnus v0.21 is released. | 2774 | * gnus.el: Oort Gnus v0.21 is released. |
| 2776 | 2775 | ||
| @@ -2778,7 +2777,7 @@ | |||
| 2778 | 2777 | ||
| 2779 | * gnus.el (gnus-version-number): Bump. | 2778 | * gnus.el (gnus-version-number): Bump. |
| 2780 | 2779 | ||
| 2781 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 2780 | 2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2782 | 2781 | ||
| 2783 | * gnus.el: Oort Gnus v0.20 is released. | 2782 | * gnus.el: Oort Gnus v0.20 is released. |
| 2784 | 2783 | ||
| @@ -2871,7 +2870,7 @@ | |||
| 2871 | * mm-util.el (mm-charset-to-coding-system): Use user specified | 2870 | * mm-util.el (mm-charset-to-coding-system): Use user specified |
| 2872 | charset unless coding-system-get is fboundp. | 2871 | charset unless coding-system-get is fboundp. |
| 2873 | 2872 | ||
| 2874 | 2003-04-30 Kevin Greiner <kgreiner@xpediantsolutions.com> | 2873 | 2003-04-30 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 2875 | 2874 | ||
| 2876 | * gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-name): | 2875 | * gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-name): |
| 2877 | Wrapped in eval-when-compile. | 2876 | Wrapped in eval-when-compile. |
| @@ -2977,7 +2976,7 @@ | |||
| 2977 | (gnus-mime-display-multipart-related-as-mixed): Added doc-strings, | 2976 | (gnus-mime-display-multipart-related-as-mixed): Added doc-strings, |
| 2978 | allow customization. | 2977 | allow customization. |
| 2979 | 2978 | ||
| 2980 | 2003-04-27 Kevin Greiner <kgreiner@xpediantsolutions.com> | 2979 | 2003-04-27 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 2981 | 2980 | ||
| 2982 | * dgnushack.el (dgnushack-compile-verbosely): New function. Not | 2981 | * dgnushack.el (dgnushack-compile-verbosely): New function. Not |
| 2983 | currently called (See source for explanation). | 2982 | currently called (See source for explanation). |
| @@ -2990,11 +2989,11 @@ | |||
| 2990 | 2989 | ||
| 2991 | * gnus.el (gnus-version-number): Bump. | 2990 | * gnus.el (gnus-version-number): Bump. |
| 2992 | 2991 | ||
| 2993 | 2003-04-27 06:47:31 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 2992 | 2003-04-27 06:47:31 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 2994 | 2993 | ||
| 2995 | * gnus.el: Oort Gnus v0.19 is released. | 2994 | * gnus.el: Oort Gnus v0.19 is released. |
| 2996 | 2995 | ||
| 2997 | 2003-04-27 Kevin Greiner <kgreiner@xpediantsolutions.com> | 2996 | 2003-04-27 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 2998 | 2997 | ||
| 2999 | * gnus-registry.el (gnus-register-spool-action): Replaced literal | 2998 | * gnus-registry.el (gnus-register-spool-action): Replaced literal |
| 3000 | carriage-return character with its escape sequence. | 2999 | carriage-return character with its escape sequence. |
| @@ -3140,11 +3139,10 @@ | |||
| 3140 | 3139 | ||
| 3141 | * smime.el (smime-decrypt-region): Insert From header. | 3140 | * smime.el (smime-decrypt-region): Insert From header. |
| 3142 | 3141 | ||
| 3143 | 2003-04-21 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> | 3142 | 2003-04-21 Gaute B Strokkenes <gs234@cam.ac.uk> (tiny change) |
| 3144 | 3143 | ||
| 3145 | * gnus-fun.el (gnus-face-from-file, gnus-convert-png-to-face): | 3144 | * gnus-fun.el (gnus-face-from-file, gnus-convert-png-to-face): |
| 3146 | Max length of header is 726, not 740. From Gaute B Strokkenes | 3145 | Max length of header is 726, not 740. |
| 3147 | <gs234@cam.ac.uk>. | ||
| 3148 | 3146 | ||
| 3149 | 2003-04-20 Jesper Harder <harder@ifa.au.dk> | 3147 | 2003-04-20 Jesper Harder <harder@ifa.au.dk> |
| 3150 | 3148 | ||
| @@ -3269,7 +3267,7 @@ | |||
| 3269 | (spam-summary-prepare-exit): check the report-gmane spam processor | 3267 | (spam-summary-prepare-exit): check the report-gmane spam processor |
| 3270 | and run spam-report-gmane-register-routine if it's active | 3268 | and run spam-report-gmane-register-routine if it's active |
| 3271 | 3269 | ||
| 3272 | From John Wiegley <johnw@gnu.org> | 3270 | 2003-04-16 John Wiegley <johnw@gnu.org> |
| 3273 | 3271 | ||
| 3274 | * spam.el (spam-bogofilter-score): check bogofilter headers before | 3272 | * spam.el (spam-bogofilter-score): check bogofilter headers before |
| 3275 | checking bogofilter itself | 3273 | checking bogofilter itself |
| @@ -3302,7 +3300,7 @@ | |||
| 3302 | * nndiary.el (nndiary-compute-reminders): Don't use setf with | 3300 | * nndiary.el (nndiary-compute-reminders): Don't use setf with |
| 3303 | nthcdr. | 3301 | nthcdr. |
| 3304 | 3302 | ||
| 3305 | 2003-04-16 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3303 | 2003-04-16 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3306 | 3304 | ||
| 3307 | * gnus-agent.el (gnus-agent-make-cat): Added optional parameter to | 3305 | * gnus-agent.el (gnus-agent-make-cat): Added optional parameter to |
| 3308 | specify a predicate other than false. | 3306 | specify a predicate other than false. |
| @@ -3320,13 +3318,11 @@ | |||
| 3320 | 3318 | ||
| 3321 | * spam.el (spam-split): added save-restriction to save-excursion | 3319 | * spam.el (spam-split): added save-restriction to save-excursion |
| 3322 | 3320 | ||
| 3323 | 2003-04-15 Reiner Steib <Reiner.Steib@gmx.de> | 3321 | 2003-04-15 Julien Avarre <julien@avarre.com> |
| 3324 | From Julien Avarre <julien@avarre.com> | ||
| 3325 | 3322 | ||
| 3326 | * gnus-fun.el: Fixed autoload cookie. | 3323 | * gnus-fun.el: Fixed autoload cookie. |
| 3327 | 3324 | ||
| 3328 | 2003-04-15 Paul Jarc <prj@po.cwru.edu> | 3325 | 2003-04-15 Remi Letot <remi.letot@easynet.be> |
| 3329 | From Remi Letot <remi.letot@easynet.be> | ||
| 3330 | 3326 | ||
| 3331 | * nnmaildir.el (nnmaildir-request-scan): Use gnus-remove-if | 3327 | * nnmaildir.el (nnmaildir-request-scan): Use gnus-remove-if |
| 3332 | instead of remove-if. | 3328 | instead of remove-if. |
| @@ -3380,7 +3376,7 @@ | |||
| 3380 | 3376 | ||
| 3381 | * gnus.el (gnus-group-prefixed-name): Clean up. | 3377 | * gnus.el (gnus-group-prefixed-name): Clean up. |
| 3382 | 3378 | ||
| 3383 | 2003-04-13 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3379 | 2003-04-13 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3384 | 3380 | ||
| 3385 | * gnus-agent.el (gnus-agent-group-pathname): Bind | 3381 | * gnus-agent.el (gnus-agent-group-pathname): Bind |
| 3386 | gnus-command-method so that gnus-agent-directory will always | 3382 | gnus-command-method so that gnus-agent-directory will always |
| @@ -3396,7 +3392,7 @@ | |||
| 3396 | 3392 | ||
| 3397 | * gnus.el (gnus-version-number): Bump. | 3393 | * gnus.el (gnus-version-number): Bump. |
| 3398 | 3394 | ||
| 3399 | 2003-04-13 01:12:01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 3395 | 2003-04-13 01:12:01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 3400 | 3396 | ||
| 3401 | * gnus.el: Oort Gnus v0.18 is released. | 3397 | * gnus.el: Oort Gnus v0.18 is released. |
| 3402 | 3398 | ||
| @@ -3451,7 +3447,7 @@ | |||
| 3451 | (mm-encode-body): Don't corrupt UTF-16. | 3447 | (mm-encode-body): Don't corrupt UTF-16. |
| 3452 | (mm-body-encoding): Pay attention to mm-body-charset-encoding-alist. | 3448 | (mm-body-encoding): Pay attention to mm-body-charset-encoding-alist. |
| 3453 | 3449 | ||
| 3454 | 2003-04-10 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3450 | 2003-04-10 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3455 | 3451 | ||
| 3456 | * gnus-agent.el (gnus-agent-get-undownloaded-list): Articles in | 3452 | * gnus-agent.el (gnus-agent-get-undownloaded-list): Articles in |
| 3457 | the CACHE are now detected and handled the same as an article | 3453 | the CACHE are now detected and handled the same as an article |
| @@ -3477,7 +3473,7 @@ | |||
| 3477 | * gnus-sum.el (gnus-summary-make-menu-bar): Disable "Import file" | 3473 | * gnus-sum.el (gnus-summary-make-menu-bar): Disable "Import file" |
| 3478 | and "Create article" items in non-editable groups. | 3474 | and "Create article" items in non-editable groups. |
| 3479 | 3475 | ||
| 3480 | 2003-04-09 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3476 | 2003-04-09 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3481 | 3477 | ||
| 3482 | * gnus-agent.el (gnus-agent-write-active): Added option of | 3478 | * gnus-agent.el (gnus-agent-write-active): Added option of |
| 3483 | replacing, rather than updating, the agent's active file. Do NOT | 3479 | replacing, rather than updating, the agent's active file. Do NOT |
| @@ -3590,7 +3586,7 @@ | |||
| 3590 | * gnus-sum.el: XEmacs doesn't support the 5th arg to 'load', so | 3586 | * gnus-sum.el: XEmacs doesn't support the 5th arg to 'load', so |
| 3591 | don't use it when loading gnus-sum.el if we're in XEmacs. | 3587 | don't use it when loading gnus-sum.el if we're in XEmacs. |
| 3592 | 3588 | ||
| 3593 | 2003-04-05 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3589 | 2003-04-05 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3594 | 3590 | ||
| 3595 | * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound | 3591 | * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound |
| 3596 | print-escape-nonascii to fix more characters in compiled format | 3592 | print-escape-nonascii to fix more characters in compiled format |
| @@ -3601,7 +3597,7 @@ | |||
| 3601 | * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): | 3597 | * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): |
| 3602 | Fix customization type. | 3598 | Fix customization type. |
| 3603 | 3599 | ||
| 3604 | 2003-04-04 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3600 | 2003-04-04 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3605 | 3601 | ||
| 3606 | * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound | 3602 | * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound |
| 3607 | print-quoted, print-readably, print-escape-multibyte, and | 3603 | print-quoted, print-readably, print-escape-multibyte, and |
| @@ -3661,7 +3657,7 @@ | |||
| 3661 | * nntp.el (nntp-via-rlogin-command-switches): Doc fix. | 3657 | * nntp.el (nntp-via-rlogin-command-switches): Doc fix. |
| 3662 | (nntp-open-via-rlogin-and-telnet): Disable the telnet linemode. | 3658 | (nntp-open-via-rlogin-and-telnet): Disable the telnet linemode. |
| 3663 | 3659 | ||
| 3664 | 2003-03-31 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3660 | 2003-03-31 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3665 | 3661 | ||
| 3666 | * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound | 3662 | * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound |
| 3667 | print-escape-newlines to print escape sequences rather than | 3663 | print-escape-newlines to print escape sequences rather than |
| @@ -3684,7 +3680,7 @@ | |||
| 3684 | 3680 | ||
| 3685 | * gnus.el (gnus-version-number): Bump. | 3681 | * gnus.el (gnus-version-number): Bump. |
| 3686 | 3682 | ||
| 3687 | 2003-03-31 20:08:19 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 3683 | 2003-03-31 20:08:19 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 3688 | 3684 | ||
| 3689 | * gnus.el: Oort Gnus v0.17 is released. | 3685 | * gnus.el: Oort Gnus v0.17 is released. |
| 3690 | 3686 | ||
| @@ -3767,20 +3763,24 @@ | |||
| 3767 | (gnus-read-newsrc-el-file): call the gnus-read-newsrc-el-hook | 3763 | (gnus-read-newsrc-el-file): call the gnus-read-newsrc-el-hook |
| 3768 | 3764 | ||
| 3769 | * gnus-registry.el (gnus-registry-translate-to-alist) | 3765 | * gnus-registry.el (gnus-registry-translate-to-alist) |
| 3770 | (gnus-registry-translate-from-alist, alist-to-hashtable) | 3766 | (gnus-registry-translate-from-alist: new functions |
| 3771 | (hashtable-to-alist): new functions | ||
| 3772 | (gnus-register-spool-action): add a spool item to the registry | 3767 | (gnus-register-spool-action): add a spool item to the registry |
| 3773 | 3768 | ||
| 3774 | * gnus.el (gnus-variable-list): added gnus-registry-alist to the | 3769 | * gnus.el (gnus-variable-list): added gnus-registry-alist to the |
| 3775 | list of saved variables | 3770 | list of saved variables |
| 3776 | (gnus-registry-alist): new variable | 3771 | (gnus-registry-alist): new variable |
| 3777 | 3772 | ||
| 3773 | 2003-03-28 Andreas Fuchs <asf@void.at> | ||
| 3774 | |||
| 3775 | * gnus-registry.el (alist-to-hashtable, hashtable-to-alist): New | ||
| 3776 | functions. | ||
| 3777 | |||
| 3778 | 2003-03-27 Simon Josefsson <jas@extundo.com> | 3778 | 2003-03-27 Simon Josefsson <jas@extundo.com> |
| 3779 | 3779 | ||
| 3780 | * gnus-art.el (article-decode-group-name): Be correct instead of | 3780 | * gnus-art.el (article-decode-group-name): Be correct instead of |
| 3781 | smart. | 3781 | smart. |
| 3782 | 3782 | ||
| 3783 | 2003-03-27 Katsumi Yamaoka <yamaoka@jpl.org> | 3783 | 2003-03-27 Katsumi Yamaoka <yamaoka@jpl.org> |
| 3784 | 3784 | ||
| 3785 | * lpath.el: Bind url-current-object for Emacs; bind | 3785 | * lpath.el: Bind url-current-object for Emacs; bind |
| 3786 | gnus-agent-expire-current-dirs for XEmacs; fbind open-ssl-stream | 3786 | gnus-agent-expire-current-dirs for XEmacs; fbind open-ssl-stream |
| @@ -3795,7 +3795,7 @@ | |||
| 3795 | * gnus-msg.el (gnus-mailing-list-groups): Fix customize type and | 3795 | * gnus-msg.el (gnus-mailing-list-groups): Fix customize type and |
| 3796 | doc string. | 3796 | doc string. |
| 3797 | 3797 | ||
| 3798 | 2003-03-26 Kevin Ryde <user42@zip.com.au> | 3798 | 2003-03-26 Kevin Ryde <user42@zip.com.au> |
| 3799 | 3799 | ||
| 3800 | * gnus-sum.el (gnus-summary-find-for-reselect): Renamed from | 3800 | * gnus-sum.el (gnus-summary-find-for-reselect): Renamed from |
| 3801 | gnus-summary-find-uncancelled, skip temporary articles inserted by | 3801 | gnus-summary-find-uncancelled, skip temporary articles inserted by |
| @@ -3805,7 +3805,7 @@ | |||
| 3805 | 3805 | ||
| 3806 | * smiley.el (smiley-buffer): New function. | 3806 | * smiley.el (smiley-buffer): New function. |
| 3807 | 3807 | ||
| 3808 | 2003-03-26 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3808 | 2003-03-26 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3809 | 3809 | ||
| 3810 | * gnus-agent.el (gnus-agent-fetch-selected-article): Replaced | 3810 | * gnus-agent.el (gnus-agent-fetch-selected-article): Replaced |
| 3811 | gnus-summary-update-line (which updated the article's face) with | 3811 | gnus-summary-update-line (which updated the article's face) with |
| @@ -3813,7 +3813,7 @@ | |||
| 3813 | face by calling gnus-summary-update-line AND updates the download | 3813 | face by calling gnus-summary-update-line AND updates the download |
| 3814 | mark to show that the article was fetched). | 3814 | mark to show that the article was fetched). |
| 3815 | 3815 | ||
| 3816 | 2003-03-23 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3816 | 2003-03-23 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3817 | 3817 | ||
| 3818 | * gnus-agent.el (gnus-agent-expire-unagentized-dirs): Provides | 3818 | * gnus-agent.el (gnus-agent-expire-unagentized-dirs): Provides |
| 3819 | option of deleting agent directories for groups/servers that are | 3819 | option of deleting agent directories for groups/servers that are |
| @@ -3878,7 +3878,7 @@ | |||
| 3878 | * gnus-art.el (gnus-treat-display-xface): Don't enable if | 3878 | * gnus-art.el (gnus-treat-display-xface): Don't enable if |
| 3879 | icontopbm isn't available. | 3879 | icontopbm isn't available. |
| 3880 | 3880 | ||
| 3881 | 2003-03-21 Kevin Greiner <kgreiner@xpediantsolutions.com> | 3881 | 2003-03-21 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 3882 | 3882 | ||
| 3883 | * gnus-int.el (gnus-open-server): Catch errors in backend's | 3883 | * gnus-int.el (gnus-open-server): Catch errors in backend's |
| 3884 | open-server method. Returns nil rather than crashing startup. | 3884 | open-server method. Returns nil rather than crashing startup. |
| @@ -3905,7 +3905,7 @@ | |||
| 3905 | * message.el (message-split-line): New function. | 3905 | * message.el (message-split-line): New function. |
| 3906 | (message-mode-map): Remap split-line to message-split-line. | 3906 | (message-mode-map): Remap split-line to message-split-line. |
| 3907 | 3907 | ||
| 3908 | 2003-03-20 Katsumi Yamaoka <yamaoka@jpl.org> | 3908 | 2003-03-20 Katsumi Yamaoka <yamaoka@jpl.org> |
| 3909 | 3909 | ||
| 3910 | * message.el (message-make-overlay): Defalias it to make-overlay. | 3910 | * message.el (message-make-overlay): Defalias it to make-overlay. |
| 3911 | (message-delete-overlay): Defalias it to delete-overlay. | 3911 | (message-delete-overlay): Defalias it to delete-overlay. |
| @@ -3929,7 +3929,7 @@ | |||
| 3929 | * nnrss.el (nnrss-fetch): Fetch the local stuff. | 3929 | * nnrss.el (nnrss-fetch): Fetch the local stuff. |
| 3930 | (nnrss-check-group): Use it. | 3930 | (nnrss-check-group): Use it. |
| 3931 | 3931 | ||
| 3932 | 2003-03-20 Mark A. Hershberger <mah@everybody.org> | 3932 | 2003-03-20 Mark A. Hershberger <mah@everybody.org> |
| 3933 | 3933 | ||
| 3934 | * nnrss.el: Primitive XML Name-space support. This means that RSS | 3934 | * nnrss.el: Primitive XML Name-space support. This means that RSS |
| 3935 | feeds like Kevin Burton's[1] can now be read in Gnus. | 3935 | feeds like Kevin Burton's[1] can now be read in Gnus. |
| @@ -3956,7 +3956,7 @@ | |||
| 3956 | 3956 | ||
| 3957 | * gnus-group.el (gnus-group-make-rss-group): New function. | 3957 | * gnus-group.el (gnus-group-make-rss-group): New function. |
| 3958 | 3958 | ||
| 3959 | 2003-03-20 Katsumi Yamaoka <yamaoka@jpl.org> | 3959 | 2003-03-20 Katsumi Yamaoka <yamaoka@jpl.org> |
| 3960 | 3960 | ||
| 3961 | * message.el (message-idna-to-ascii-rhs-1): Don't use replace-* | 3961 | * message.el (message-idna-to-ascii-rhs-1): Don't use replace-* |
| 3962 | for highlight overlays. | 3962 | for highlight overlays. |
| @@ -4053,7 +4053,7 @@ | |||
| 4053 | 4053 | ||
| 4054 | * gnus.el (gnus-version-number): Bump. | 4054 | * gnus.el (gnus-version-number): Bump. |
| 4055 | 4055 | ||
| 4056 | 2003-03-18 00:38:22 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 4056 | 2003-03-18 00:38:22 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 4057 | 4057 | ||
| 4058 | * gnus.el: Oort Gnus v0.16 is released. | 4058 | * gnus.el: Oort Gnus v0.16 is released. |
| 4059 | 4059 | ||
| @@ -4533,7 +4533,7 @@ | |||
| 4533 | 4533 | ||
| 4534 | * message.el (message-make-fqdn): Protect against nil user-mail. | 4534 | * message.el (message-make-fqdn): Protect against nil user-mail. |
| 4535 | 4535 | ||
| 4536 | 2003-02-28 Vasily Korytov <deskpot@myrealbox.com> | 4536 | 2003-02-28 Vasily Korytov <deskpot@myrealbox.com> |
| 4537 | 4537 | ||
| 4538 | * gnus-art.el (gnus-boring-article-headers): New values: | 4538 | * gnus-art.el (gnus-boring-article-headers): New values: |
| 4539 | 'to-list and 'cc-list. | 4539 | 'to-list and 'cc-list. |
| @@ -4615,10 +4615,11 @@ | |||
| 4615 | 4615 | ||
| 4616 | * gnus-start.el (gnus-backup-startup-file): Fixed custom type. | 4616 | * gnus-start.el (gnus-backup-startup-file): Fixed custom type. |
| 4617 | 4617 | ||
| 4618 | 2003-02-24 Ted Zlatanov <tzz@lifelogs.com> | 4618 | 2003-02-24 Ted Zlatanov <tzz@lifelogs.com> |
| 4619 | |||
| 4619 | * spam.el: disabled spam-get-article-as-filename | 4620 | * spam.el: disabled spam-get-article-as-filename |
| 4620 | 4621 | ||
| 4621 | From Michael Shields <shields@msrl.com> | 4622 | 2003-02-24 Michael Shields <shields@msrl.com> |
| 4622 | 4623 | ||
| 4623 | * gnus-group.el (gnus-group-is-exiting-without-update-p): New. | 4624 | * gnus-group.el (gnus-group-is-exiting-without-update-p): New. |
| 4624 | * gnus-sum.el (gnus-summary-exit-no-update): Use it. | 4625 | * gnus-sum.el (gnus-summary-exit-no-update): Use it. |
| @@ -4632,8 +4633,7 @@ | |||
| 4632 | no spam. | 4633 | no spam. |
| 4633 | * spam.el (spam-ham-move-routine): New `copy' argument. | 4634 | * spam.el (spam-ham-move-routine): New `copy' argument. |
| 4634 | 4635 | ||
| 4635 | 2003-02-24 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> | 4636 | 2003-02-24 Martin Thornquist <martint@ifi.uio.no> |
| 4636 | From Martin Thornquist <martint@ifi.uio.no> | ||
| 4637 | 4637 | ||
| 4638 | * gnus-topic.el (gnus-topic-select-group): Select last group if | 4638 | * gnus-topic.el (gnus-topic-select-group): Select last group if |
| 4639 | after last group. | 4639 | after last group. |
| @@ -4750,16 +4750,19 @@ | |||
| 4750 | * gnus-start.el (gnus-get-unread-articles-in-group): Make sure | 4750 | * gnus-start.el (gnus-get-unread-articles-in-group): Make sure |
| 4751 | the entry for the group exists before we alter it. | 4751 | the entry for the group exists before we alter it. |
| 4752 | 4752 | ||
| 4753 | 2003-02-22 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> | 4753 | 2003-02-22 David S Goldberg <david.goldberg6@verizon.net> (tiny change) |
| 4754 | 4754 | ||
| 4755 | * message.el (message-mode): MML tags separate paragraphs. Small | 4755 | * message.el (message-mode): MML tags separate paragraphs. |
| 4756 | change from David S Goldberg <david.goldberg6@verizon.net>. | 4756 | |
| 4757 | 2003-02-22 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> | ||
| 4757 | 4758 | ||
| 4758 | * gnus-agent.el (gnus-agent-get-undownloaded-list): Sort | 4759 | * gnus-agent.el (gnus-agent-get-undownloaded-list): Sort |
| 4759 | `gnus-newsgroup-headers'. | 4760 | `gnus-newsgroup-headers'. |
| 4760 | 4761 | ||
| 4762 | 2003-02-22 Karl Pfl,Ad(Bsterer <sigurd@12move.de> | ||
| 4763 | |||
| 4761 | * gnus-art.el (gnus-article-refer-article): Grok more message id | 4764 | * gnus-art.el (gnus-article-refer-article): Grok more message id |
| 4762 | formats. From Karl Pfl,Ad(Bsterer <sigurd@12move.de>. | 4765 | formats. |
| 4763 | 4766 | ||
| 4764 | 2003-02-22 Jesper Harder <harder@ifa.au.dk> | 4767 | 2003-02-22 Jesper Harder <harder@ifa.au.dk> |
| 4765 | 4768 | ||
| @@ -4776,8 +4779,7 @@ | |||
| 4776 | (gnus-register-spool-action): added hashtable of message ID keys | 4779 | (gnus-register-spool-action): added hashtable of message ID keys |
| 4777 | with message motion data | 4780 | with message motion data |
| 4778 | 4781 | ||
| 4779 | 2003-02-21 Florian Weimer <fw@deneb.enyo.de> | 4782 | 2003-02-21 Reiner Steib <Reiner.Steib@gmx.de> |
| 4780 | From Reiner Steib <Reiner.Steib@gmx.de>. | ||
| 4781 | 4783 | ||
| 4782 | * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): New | 4784 | * gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): New |
| 4783 | variable, used in `gnus-button-mid-or-mail-heuristic'. | 4785 | variable, used in `gnus-button-mid-or-mail-heuristic'. |
| @@ -4907,11 +4909,11 @@ | |||
| 4907 | (spam-mark-spam-as-expired-and-move-routine): made the article | 4909 | (spam-mark-spam-as-expired-and-move-routine): made the article |
| 4908 | move conditional, so it's not called even if there's nothing to move | 4910 | move conditional, so it's not called even if there's nothing to move |
| 4909 | 4911 | ||
| 4910 | 2003-02-13 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> | 4912 | 2003-02-13 Kurt B. Kaiser <kbk@shore.net> |
| 4911 | 4913 | ||
| 4912 | * message.el (message-unix-mail-delimiter): Accept any whitespace | 4914 | * message.el (message-unix-mail-delimiter): Accept any whitespace |
| 4913 | after the email address and before the date; do not require the | 4915 | after the email address and before the date; do not require the |
| 4914 | space character. From Kurt B. Kaiser <kbk@shore.net>. | 4916 | space character. |
| 4915 | 4917 | ||
| 4916 | 2003-02-13 Katsumi Yamaoka <yamaoka@jpl.org> | 4918 | 2003-02-13 Katsumi Yamaoka <yamaoka@jpl.org> |
| 4917 | 4919 | ||
| @@ -5019,7 +5021,7 @@ | |||
| 5019 | 5021 | ||
| 5020 | * gnus.el (gnus-version-number): Bumped. | 5022 | * gnus.el (gnus-version-number): Bumped. |
| 5021 | 5023 | ||
| 5022 | 2003-02-08 23:23:27 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 5024 | 2003-02-08 23:23:27 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 5023 | 5025 | ||
| 5024 | * gnus.el: Oort Gnus v0.15 is released. | 5026 | * gnus.el: Oort Gnus v0.15 is released. |
| 5025 | 5027 | ||
| @@ -5366,7 +5368,7 @@ | |||
| 5366 | 5368 | ||
| 5367 | * gnus.el (gnus-version-number): Bumped. | 5369 | * gnus.el (gnus-version-number): Bumped. |
| 5368 | 5370 | ||
| 5369 | 2003-01-24 20:32:44 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 5371 | 2003-01-24 20:32:44 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 5370 | 5372 | ||
| 5371 | * gnus.el: Oort Gnus v0.14 is released. | 5373 | * gnus.el: Oort Gnus v0.14 is released. |
| 5372 | 5374 | ||
| @@ -5490,7 +5492,7 @@ | |||
| 5490 | 5492 | ||
| 5491 | * gnus.el (gnus-version-number): Bumped version number. | 5493 | * gnus.el (gnus-version-number): Bumped version number. |
| 5492 | 5494 | ||
| 5493 | 2003-01-21 07:15:41 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 5495 | 2003-01-21 07:15:41 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 5494 | 5496 | ||
| 5495 | * gnus.el: Oort Gnus v0.13 is released. | 5497 | * gnus.el: Oort Gnus v0.13 is released. |
| 5496 | 5498 | ||
| @@ -5671,7 +5673,7 @@ | |||
| 5671 | 5673 | ||
| 5672 | * gnus-audio.el (gnus-audio-au-player): Use executable-find. | 5674 | * gnus-audio.el (gnus-audio-au-player): Use executable-find. |
| 5673 | 5675 | ||
| 5674 | 2003-01-13 Jhair Tocancipa Triana <jhair_tocancipa@@gmx.net> | 5676 | 2003-01-13 Jhair Tocancipa Triana <jhair_tocancipa@@gmx.net> |
| 5675 | 5677 | ||
| 5676 | * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use | 5678 | * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use |
| 5677 | /usr/bin/play as default player. | 5679 | /usr/bin/play as default player. |
| @@ -5753,7 +5755,7 @@ | |||
| 5753 | * gnus.el (gnus-version-number): Bumped version. | 5755 | * gnus.el (gnus-version-number): Bumped version. |
| 5754 | (gnus-summary-line-format): Doc fix. | 5756 | (gnus-summary-line-format): Doc fix. |
| 5755 | 5757 | ||
| 5756 | 2003-01-12 22:02:49 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 5758 | 2003-01-12 22:02:49 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 5757 | 5759 | ||
| 5758 | * gnus.el: Oort Gnus v0.12 is released. | 5760 | * gnus.el: Oort Gnus v0.12 is released. |
| 5759 | 5761 | ||
| @@ -5800,7 +5802,7 @@ | |||
| 5800 | 5802 | ||
| 5801 | * gnus.el (gnus-version-number): Bumped version number. | 5803 | * gnus.el (gnus-version-number): Bumped version number. |
| 5802 | 5804 | ||
| 5803 | 2003-01-12 13:46:20 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 5805 | 2003-01-12 13:46:20 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 5804 | 5806 | ||
| 5805 | * gnus.el: Oort Gnus v0.11 is released. | 5807 | * gnus.el: Oort Gnus v0.11 is released. |
| 5806 | 5808 | ||
| @@ -6276,7 +6278,7 @@ | |||
| 6276 | 6278 | ||
| 6277 | * gnus.el (gnus-version-number): Bump version number. | 6279 | * gnus.el (gnus-version-number): Bump version number. |
| 6278 | 6280 | ||
| 6279 | 2003-01-05 01:53:30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 6281 | 2003-01-05 01:53:30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 6280 | 6282 | ||
| 6281 | * gnus.el: Oort Gnus v0.10 is released. | 6283 | * gnus.el: Oort Gnus v0.10 is released. |
| 6282 | 6284 | ||
| @@ -6284,7 +6286,7 @@ | |||
| 6284 | 6286 | ||
| 6285 | * gnus.el (gnus-version-number): Fix version number. | 6287 | * gnus.el (gnus-version-number): Fix version number. |
| 6286 | 6288 | ||
| 6287 | 2003-01-05 01:40:09 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 6289 | 2003-01-05 01:40:09 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 6288 | 6290 | ||
| 6289 | * gnus.el: Oort Gnus v0.08 is released. | 6291 | * gnus.el: Oort Gnus v0.08 is released. |
| 6290 | 6292 | ||
| @@ -6788,11 +6790,10 @@ | |||
| 6788 | 6790 | ||
| 6789 | * binhex.el (binhex-decoder-program): Fix docstring. | 6791 | * binhex.el (binhex-decoder-program): Fix docstring. |
| 6790 | 6792 | ||
| 6791 | 2002-12-21 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> | 6793 | 2002-12-21 Laurent Martelli <laurent@bearteam.org> |
| 6792 | 6794 | ||
| 6793 | * mm-decode.el (mm-mailcap-command): Do not backslash-quote | 6795 | * mm-decode.el (mm-mailcap-command): Do not backslash-quote |
| 6794 | special chars if the mailcap file uses single quotes around %s. | 6796 | special chars if the mailcap file uses single quotes around %s. |
| 6795 | From Laurent Martelli <laurent@bearteam.org>. | ||
| 6796 | 6797 | ||
| 6797 | 2002-12-19 Paul Jarc <prj@po.cwru.edu> | 6798 | 2002-12-19 Paul Jarc <prj@po.cwru.edu> |
| 6798 | 6799 | ||
| @@ -6833,7 +6834,7 @@ | |||
| 6833 | * nntp.el (nntp-with-open-group-first-pass): Do not wrap in | 6834 | * nntp.el (nntp-with-open-group-first-pass): Do not wrap in |
| 6834 | eval-when-compile. Suggested by Kevin Greiner. | 6835 | eval-when-compile. Suggested by Kevin Greiner. |
| 6835 | 6836 | ||
| 6836 | 2002-12-13 Kevin Greiner <kgreiner@xpediantsolutions.com> | 6837 | 2002-12-13 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 6837 | 6838 | ||
| 6838 | * gnus-agent.el (gnus-agent-max-fetch-size): New, defcustom. | 6839 | * gnus-agent.el (gnus-agent-max-fetch-size): New, defcustom. |
| 6839 | (gnus-agent-fetch-headers): Initialize gnus-agent-overview-buffer | 6840 | (gnus-agent-fetch-headers): Initialize gnus-agent-overview-buffer |
| @@ -6845,13 +6846,13 @@ | |||
| 6845 | Multiple chunks in the same group may perform arbitrarily large | 6846 | Multiple chunks in the same group may perform arbitrarily large |
| 6846 | updates. | 6847 | updates. |
| 6847 | 6848 | ||
| 6848 | 2002-12-12 Kevin Greiner <kgreiner@xpediantsolutions.com> | 6849 | 2002-12-12 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 6849 | 6850 | ||
| 6850 | * gnus-agent.el (gnus-agent-fetch-selected-article): Added call to | 6851 | * gnus-agent.el (gnus-agent-fetch-selected-article): Added call to |
| 6851 | gnus-summary-update-download-mark to update the article in the | 6852 | gnus-summary-update-download-mark to update the article in the |
| 6852 | summary. | 6853 | summary. |
| 6853 | 6854 | ||
| 6854 | 2002-12-11 Kevin Greiner <kgreiner@xpediantsolutions.com> | 6855 | 2002-12-11 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 6855 | 6856 | ||
| 6856 | * gnus.el (gnus-summary-high-uncached-face, | 6857 | * gnus.el (gnus-summary-high-uncached-face, |
| 6857 | gnus-summary-normal-uncached-face, gnus-summary-low-uncached-face) | 6858 | gnus-summary-normal-uncached-face, gnus-summary-low-uncached-face) |
| @@ -7069,7 +7070,7 @@ | |||
| 7069 | * gnus-sum.el (gnus-summary-insert-old-articles): No longer passes | 7070 | * gnus-sum.el (gnus-summary-insert-old-articles): No longer passes |
| 7070 | compressed range to gnus-summary-insert-articles. | 7071 | compressed range to gnus-summary-insert-articles. |
| 7071 | 7072 | ||
| 7072 | 2002-11-26 Kevin Ryde <user42@zip.com.au> | 7073 | 2002-11-26 Kevin Ryde <user42@zip.com.au> |
| 7073 | 7074 | ||
| 7074 | * gnus-art.el (gnus-mime-copy-part): Look for filename | 7075 | * gnus-art.el (gnus-mime-copy-part): Look for filename |
| 7075 | parameter under content-disposition, not content-type. | 7076 | parameter under content-disposition, not content-type. |
| @@ -7107,7 +7108,7 @@ | |||
| 7107 | * gnus-agent.el (gnus-agent-check-overview-buffer): Make debugger | 7108 | * gnus-agent.el (gnus-agent-check-overview-buffer): Make debugger |
| 7108 | print message on entry. | 7109 | print message on entry. |
| 7109 | 7110 | ||
| 7110 | From Kevin Greiner <kgreiner@xpediantsolutions.com>. | 7111 | 2002-11-25 Kevin Greiner <kgreiner@xpediantsolutions.com>. |
| 7111 | 7112 | ||
| 7112 | * gnus-range.el (gnus-range-difference): New function. | 7113 | * gnus-range.el (gnus-range-difference): New function. |
| 7113 | * gnus-sum.el (gnus-summary-insert-old-articles): Use it. | 7114 | * gnus-sum.el (gnus-summary-insert-old-articles): Use it. |
| @@ -7118,8 +7119,7 @@ | |||
| 7118 | gnus-remove-from-range instead of gnus-range-difference which | 7119 | gnus-remove-from-range instead of gnus-range-difference which |
| 7119 | doesn't exist. | 7120 | doesn't exist. |
| 7120 | 7121 | ||
| 7121 | 2002-11-23 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> | 7122 | 2002-11-23 Kevin Greiner <kgreiner@xpediantsolutions.com> |
| 7122 | From Kevin Greiner <kgreiner@xpediantsolutions.com>. | ||
| 7123 | 7123 | ||
| 7124 | * gnus-agent.el (gnus-agent-downloaded-article-face): New face, | 7124 | * gnus-agent.el (gnus-agent-downloaded-article-face): New face, |
| 7125 | used for showing which articles have been downloaded. | 7125 | used for showing which articles have been downloaded. |
| @@ -7229,7 +7229,7 @@ | |||
| 7229 | * nnimap.el (nnimap-request-expire-articles): Compress sequence | 7229 | * nnimap.el (nnimap-request-expire-articles): Compress sequence |
| 7230 | before storing \Deleted mark on expired articles. | 7230 | before storing \Deleted mark on expired articles. |
| 7231 | 7231 | ||
| 7232 | 2002-11-17 Shenghuo Zhu <zsh@cs.rochester.edu> | 7232 | 2002-11-17 Shenghuo Zhu <zsh@cs.rochester.edu> |
| 7233 | Trivial patch from Markus Rost <rost@math.ohio-state.edu> | 7233 | Trivial patch from Markus Rost <rost@math.ohio-state.edu> |
| 7234 | 7234 | ||
| 7235 | * gnus-sum.el (gnus-summary-goto-unread): Doc fix - escape open | 7235 | * gnus-sum.el (gnus-summary-goto-unread): Doc fix - escape open |
| @@ -7319,19 +7319,18 @@ | |||
| 7319 | * gnus-group.el (gnus-group-delete-group): | 7319 | * gnus-group.el (gnus-group-delete-group): |
| 7320 | gnus-cache-active-hashtb might be void. | 7320 | gnus-cache-active-hashtb might be void. |
| 7321 | 7321 | ||
| 7322 | 2002-11-02 Simon Josefsson <jas@extundo.com> | 7322 | 2002-11-02 Raymond Scholz <ray-2002@zonix.de> |
| 7323 | 7323 | ||
| 7324 | * pgg-gpg.el (pgg-gpg-encrypt-region): Makes PGG respect the | 7324 | * pgg-gpg.el (pgg-gpg-encrypt-region): Makes PGG respect the |
| 7325 | setting of the default user ID. From Raymond Scholz | 7325 | setting of the default user ID. |
| 7326 | <ray-2002@zonix.de>. | ||
| 7327 | 7326 | ||
| 7328 | 2002-11-01 Jesper Harder <harder@ifa.au.dk> | 7327 | 2002-11-01 Jesper Harder <harder@ifa.au.dk> |
| 7329 | 7328 | ||
| 7330 | * mm-bodies.el (mm-body-encoding): Don't return 8bit for 7bit | 7329 | * mm-bodies.el (mm-body-encoding): Don't return 8bit for 7bit |
| 7331 | charset. | 7330 | charset. |
| 7332 | 7331 | ||
| 7333 | 2002-10-31 Ted Zlatanov <tzz@lifelogs.com> | 7332 | 2002-10-31 Alex Schroeder <alex@emacswiki.org> |
| 7334 | From Alex Schroeder <alex@emacswiki.org> | 7333 | |
| 7335 | * spam-stat.el (spam-stat-process-directory): add dir to message | 7334 | * spam-stat.el (spam-stat-process-directory): add dir to message |
| 7336 | (spam-stat-reduce-size): No longer remove words | 7335 | (spam-stat-reduce-size): No longer remove words |
| 7337 | with values close to 0.5, because the default value is 0.2. | 7336 | with values close to 0.5, because the default value is 0.2. |
| @@ -7394,8 +7393,7 @@ | |||
| 7394 | * mml.el (mml-mode-map): Fixed keybindings for mml-secure-* | 7393 | * mml.el (mml-mode-map): Fixed keybindings for mml-secure-* |
| 7395 | functions. | 7394 | functions. |
| 7396 | 7395 | ||
| 7397 | 2002-10-28 Katsumi Yamaoka <yamaoka@jpl.org> | 7396 | 2002-10-28 Mark A. Hershberger <mah@everybody.org> |
| 7398 | From mah@everybody.org (Mark A. Hershberger). | ||
| 7399 | 7397 | ||
| 7400 | * mm-url.el (mm-url-insert-file-contents): Make it return the same | 7398 | * mm-url.el (mm-url-insert-file-contents): Make it return the same |
| 7401 | type values ("url" size) regardless of the values of | 7399 | type values ("url" size) regardless of the values of |
| @@ -7643,7 +7641,7 @@ | |||
| 7643 | 7641 | ||
| 7644 | * gnus-spec.el (gnus-pad-form): Use gnus-string-width-function. | 7642 | * gnus-spec.el (gnus-pad-form): Use gnus-string-width-function. |
| 7645 | 7643 | ||
| 7646 | 2002-10-11 Ted Zlatanov <tzz@lifelogs.com> | 7644 | 2002-10-11 Ted Zlatanov <tzz@lifelogs.com> |
| 7647 | 7645 | ||
| 7648 | * spam.el (spam-check-ifile): added ifile as a spam checking | 7646 | * spam.el (spam-check-ifile): added ifile as a spam checking |
| 7649 | backend, and spam-use-ifle as the variable to toggle that check. | 7647 | backend, and spam-use-ifle as the variable to toggle that check. |
| @@ -7653,7 +7651,7 @@ | |||
| 7653 | * message.el (message-beginning-of-line): New variable. | 7651 | * message.el (message-beginning-of-line): New variable. |
| 7654 | (message-beginning-of-line): Use it. | 7652 | (message-beginning-of-line): Use it. |
| 7655 | 7653 | ||
| 7656 | 2002-10-11 Ted Zlatanov <tzz@lifelogs.com> | 7654 | 2002-10-11 Ted Zlatanov <tzz@lifelogs.com> |
| 7657 | 7655 | ||
| 7658 | * spam.el: more compilation fixes for BBDB | 7656 | * spam.el: more compilation fixes for BBDB |
| 7659 | 7657 | ||
| @@ -7689,7 +7687,7 @@ | |||
| 7689 | (mml2015-unabbrev-trust-alist): New. | 7687 | (mml2015-unabbrev-trust-alist): New. |
| 7690 | (mml2015-gpg-extract-signature-details): Use it. | 7688 | (mml2015-gpg-extract-signature-details): Use it. |
| 7691 | 7689 | ||
| 7692 | 2002-10-10 Ted Zlatanov <tzz@lifelogs.com> | 7690 | 2002-10-10 Ted Zlatanov <tzz@lifelogs.com> |
| 7693 | 7691 | ||
| 7694 | * spam.el: compilation fixes, spam-check-bbdb function is nil if no | 7692 | * spam.el: compilation fixes, spam-check-bbdb function is nil if no |
| 7695 | BBDB installed | 7693 | BBDB installed |
| @@ -7817,7 +7815,7 @@ | |||
| 7817 | 7815 | ||
| 7818 | * pgg.el, pgg-gpg.el, pgg-pgp5.el: Don't depend on luna.el. | 7816 | * pgg.el, pgg-gpg.el, pgg-pgp5.el: Don't depend on luna.el. |
| 7819 | 7817 | ||
| 7820 | 2002-09-29 Daiki Ueno <ueno@unixuser.org> | 7818 | 2002-09-29 Daiki Ueno <ueno@unixuser.org> |
| 7821 | 7819 | ||
| 7822 | * pgg.el: Remove dependency on calist.el. | 7820 | * pgg.el: Remove dependency on calist.el. |
| 7823 | 7821 | ||
| @@ -7858,13 +7856,12 @@ | |||
| 7858 | 7856 | ||
| 7859 | * message.el (message-required-mail-headers): Remove Lines:. | 7857 | * message.el (message-required-mail-headers): Remove Lines:. |
| 7860 | 7858 | ||
| 7861 | 2002-10-03 Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 7859 | 2002-10-03 Jesper Harder <harder@ifa.au.dk> |
| 7862 | From Jesper Harder. | ||
| 7863 | 7860 | ||
| 7864 | * gnus-group.el (gnus-group-fetch-charter, | 7861 | * gnus-group.el (gnus-group-fetch-charter, |
| 7865 | gnus-group-fetch-control): Prompt for group if given a prefix | 7862 | gnus-group-fetch-control): Prompt for group if given a prefix |
| 7866 | argument. | 7863 | argument. |
| 7867 | * gnus-sum.el (t): Add gnus-group-fetch-charter and | 7864 | * gnus-sum.el: Add gnus-group-fetch-charter and |
| 7868 | gnus-group-fetch-control to summary key map and menu. | 7865 | gnus-group-fetch-control to summary key map and menu. |
| 7869 | 7866 | ||
| 7870 | 2002-10-03 Paul Jarc <prj@po.cwru.edu> | 7867 | 2002-10-03 Paul Jarc <prj@po.cwru.edu> |
| @@ -7879,13 +7876,12 @@ | |||
| 7879 | (gnus-agent-fetch-selected-article): New function for | 7876 | (gnus-agent-fetch-selected-article): New function for |
| 7880 | gnus-select-article-hook or gnus-mark-article-hook. | 7877 | gnus-select-article-hook or gnus-mark-article-hook. |
| 7881 | 7878 | ||
| 7882 | 2002-10-02 Katsumi Yamaoka <yamaoka@jpl.org> | 7879 | 2002-10-02 Peter von der Ahe <nospam2159@daimi.au.dk> |
| 7883 | From Peter von der Ahe <nospam2159@daimi.au.dk>. | ||
| 7884 | 7880 | ||
| 7885 | * gnus-ems.el (gnus-x-splash): Set coding-system-for-read to | 7881 | * gnus-ems.el (gnus-x-splash): Set coding-system-for-read to |
| 7886 | raw-text. | 7882 | raw-text. |
| 7887 | 7883 | ||
| 7888 | 2002-09-30 Ted Zlatanov <tzz@lifelogs.com> | 7884 | 2002-09-30 Ted Zlatanov <tzz@lifelogs.com> |
| 7889 | 7885 | ||
| 7890 | * spam.el: merged changes from pinard@iro.umontreal.ca (Fran,Ag(Bois | 7886 | * spam.el: merged changes from pinard@iro.umontreal.ca (Fran,Ag(Bois |
| 7891 | Pinard). | 7887 | Pinard). |
| @@ -7926,8 +7922,7 @@ | |||
| 7926 | 7922 | ||
| 7927 | * nnimap.el (nnimap-fixup-unread-after-getting-new-news): Remove. | 7923 | * nnimap.el (nnimap-fixup-unread-after-getting-new-news): Remove. |
| 7928 | 7924 | ||
| 7929 | 2002-09-27 Katsumi Yamaoka <yamaoka@jpl.org> | 7925 | 2002-09-27 Mats Lidell <matsl@contactor.se> |
| 7930 | From Mats Lidell <matsl@contactor.se>. | ||
| 7931 | 7926 | ||
| 7932 | * gnus-art.el (gnus-article-mode-syntax-table): Replace "-" to " ". | 7927 | * gnus-art.el (gnus-article-mode-syntax-table): Replace "-" to " ". |
| 7933 | 7928 | ||
| @@ -8078,20 +8073,19 @@ | |||
| 8078 | * nnmaildir.el (nnmaildir--grp-add-art): fix minimum article | 8073 | * nnmaildir.el (nnmaildir--grp-add-art): fix minimum article |
| 8079 | number when article 1 does not exist. | 8074 | number when article 1 does not exist. |
| 8080 | 8075 | ||
| 8081 | 2002-09-25 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8076 | 2002-09-25 Reiner Steib <Reiner.Steib@gmx.de> |
| 8082 | 8077 | ||
| 8083 | * gnus-art.el (gnus-button-handle-apropos-variable): Fall back to | 8078 | * gnus-art.el (gnus-button-handle-apropos-variable): Fall back to |
| 8084 | apropos if apropos-variable does not exist. | 8079 | apropos if apropos-variable does not exist. |
| 8085 | (gnus-button-guessed-mid-regexp) | 8080 | (gnus-button-guessed-mid-regexp) |
| 8086 | (gnus-button-handle-describe-prefix, gnus-button-alist): Better | 8081 | (gnus-button-handle-describe-prefix, gnus-button-alist): Better |
| 8087 | regexes. From Reiner Steib. | 8082 | regexes. |
| 8088 | (gnus-button-handle-describe-function) | 8083 | (gnus-button-handle-describe-function) |
| 8089 | (gnus-button-handle-describe-variable): Doc fix. From Reiner Steib. | 8084 | (gnus-button-handle-describe-variable): Doc fix. |
| 8090 | (gnus-button-handle-describe-key, gnus-button-handle-apropos) | 8085 | (gnus-button-handle-describe-key, gnus-button-handle-apropos) |
| 8091 | (gnus-button-handle-apropos-command): Doc fix. From Reiner Steib. | 8086 | (gnus-button-handle-apropos-command): Doc fix. |
| 8092 | 8087 | ||
| 8093 | 2002-09-25 Mark A. Hershberger <mah@everybody.org> | 8088 | 2002-09-25 Mark A. Hershberger <mah@everybody.org> (tiny change) |
| 8094 | Trivial patch. | ||
| 8095 | 8089 | ||
| 8096 | * nnrss.el (nnrss-save-server-data): Save nnrss-group-alist in | 8090 | * nnrss.el (nnrss-save-server-data): Save nnrss-group-alist in |
| 8097 | the file. | 8091 | the file. |
| @@ -8113,22 +8107,19 @@ | |||
| 8113 | (mml2015-pgg-encrypt): New functions. | 8107 | (mml2015-pgg-encrypt): New functions. |
| 8114 | (defvar, autoload): Prevent byte-compile warnings. | 8108 | (defvar, autoload): Prevent byte-compile warnings. |
| 8115 | 8109 | ||
| 8116 | 2002-09-24 Katsumi Yamaoka <yamaoka@jpl.org> | 8110 | 2002-09-24 TSUCHIYA Masatoshi <tsuchiya@namazu.org>. |
| 8117 | From TSUCHIYA Masatoshi <tsuchiya@namazu.org>. | ||
| 8118 | 8111 | ||
| 8119 | * gnus-art.el (article-strip-banner): Check for the existence of | 8112 | * gnus-art.el (article-strip-banner): Check for the existence of |
| 8120 | from header. | 8113 | from header. |
| 8121 | 8114 | ||
| 8122 | 2002-09-23 Kai Gro,b_(Bjohann <grossjoh@ls6.informatik.uni-dortmund.de> | 8115 | 2002-09-23 Reiner Steib <Reiner.Steib@gmx.de> |
| 8123 | 8116 | ||
| 8124 | * gnus-art.el (gnus-button-guessed-mid-regexp): Improved regexp. | 8117 | * gnus-art.el (gnus-button-guessed-mid-regexp): Improved regexp. |
| 8125 | (gnus-button-alist): Improved regexp for | 8118 | (gnus-button-alist): Improved regexp for |
| 8126 | gnus-button-handle-mid-or-mail (false positives), fixed | 8119 | gnus-button-handle-mid-or-mail (false positives), fixed |
| 8127 | gnus-button-handle-man entries. | 8120 | gnus-button-handle-man entries. |
| 8128 | From Reiner Steib. | ||
| 8129 | 8121 | ||
| 8130 | 2002-09-23 Paul Jarc <prj@po.cwru.edu> | 8122 | 2002-09-23 Josh Huber <huber@alum.wpi.edu> |
| 8131 | From Josh Huber. | ||
| 8132 | 8123 | ||
| 8133 | * nnmaildir.el (nnmaildir--update-nov): fix wrong-type error when | 8124 | * nnmaildir.el (nnmaildir--update-nov): fix wrong-type error when |
| 8134 | nnmail-extra-headers is non-nil. | 8125 | nnmail-extra-headers is non-nil. |
| @@ -8157,8 +8148,7 @@ | |||
| 8157 | 8148 | ||
| 8158 | * gnus-sum.el (gnus-summary-next-group): Switch to the summary buffer. | 8149 | * gnus-sum.el (gnus-summary-next-group): Switch to the summary buffer. |
| 8159 | 8150 | ||
| 8160 | 2002-09-20 Kai Gro,b_(Bjohann <grossjoh@ls6.informatik.uni-dortmund.de> | 8151 | 2002-09-20 Reiner Steib <Reiner.Steib@gmx.de> |
| 8161 | From Reiner Steib. | ||
| 8162 | 8152 | ||
| 8163 | * gnus-art.el (gnus-button-handle-custom, | 8153 | * gnus-art.el (gnus-button-handle-custom, |
| 8164 | gnus-button-handle-mid-or-mail, | 8154 | gnus-button-handle-mid-or-mail, |
| @@ -8184,10 +8174,10 @@ | |||
| 8184 | 8174 | ||
| 8185 | * message.el (message-completion-alist): Add Reply-To, From, etc. | 8175 | * message.el (message-completion-alist): Add Reply-To, From, etc. |
| 8186 | 8176 | ||
| 8187 | 2002-09-18 Simon Josefsson <jas@extundo.com> | 8177 | 2002-09-18 Nevin Kapur <nevin@jhu.edu> |
| 8188 | 8178 | ||
| 8189 | * nnimap.el (nnimap-request-expire-articles): Make flag setting | 8179 | * nnimap.el (nnimap-request-expire-articles): Make flag setting |
| 8190 | conditional. From Nevin Kapur <nevin@jhu.edu>. | 8180 | conditional. |
| 8191 | 8181 | ||
| 8192 | 2002-09-17 Simon Josefsson <jas@extundo.com> | 8182 | 2002-09-17 Simon Josefsson <jas@extundo.com> |
| 8193 | 8183 | ||
| @@ -8197,8 +8187,7 @@ | |||
| 8197 | when articles are found. Suggested by Nevin Kapur | 8187 | when articles are found. Suggested by Nevin Kapur |
| 8198 | <nevin@jhu.edu>. | 8188 | <nevin@jhu.edu>. |
| 8199 | 8189 | ||
| 8200 | 2002-09-17 Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8190 | 2002-09-17 Reiner Steib <Reiner.Steib@gmx.de> |
| 8201 | From Reiner Steib <reiner.steib@gmx.de>. | ||
| 8202 | 8191 | ||
| 8203 | * message.el (message-strip-subject-trailing-was) | 8192 | * message.el (message-strip-subject-trailing-was) |
| 8204 | (message-change-subject, message-add-archive-header) | 8193 | (message-change-subject, message-add-archive-header) |
| @@ -8251,8 +8240,7 @@ | |||
| 8251 | 8240 | ||
| 8252 | * gnus-sum.el (gnus-summary-next-group): Semi-exit only when needed. | 8241 | * gnus-sum.el (gnus-summary-next-group): Semi-exit only when needed. |
| 8253 | 8242 | ||
| 8254 | 2002-09-12 Katsumi Yamaoka <yamaoka@jpl.org> | 8243 | 2002-09-12 John Paul Wallington <jpw@shootybangbang.com>. |
| 8255 | From John Paul Wallington <jpw@shootybangbang.com>. | ||
| 8256 | 8244 | ||
| 8257 | * gnus.el (gnus-visual, gnus-meta): Fix typo. | 8245 | * gnus.el (gnus-visual, gnus-meta): Fix typo. |
| 8258 | 8246 | ||
| @@ -8266,8 +8254,7 @@ | |||
| 8266 | (nnimap-split-rule): Doc fix. | 8254 | (nnimap-split-rule): Doc fix. |
| 8267 | (nnimap-request-expire-articles): Cleanup code. | 8255 | (nnimap-request-expire-articles): Cleanup code. |
| 8268 | 8256 | ||
| 8269 | 2002-09-11 Katsumi Yamaoka <yamaoka@jpl.org> | 8257 | 2002-09-11 TSUCHIYA Masatoshi <tsuchiya@namazu.org>. |
| 8270 | From TSUCHIYA Masatoshi <tsuchiya@namazu.org>. | ||
| 8271 | 8258 | ||
| 8272 | * gnus-art.el (gnus-article-address-banner-alist): New option. | 8259 | * gnus-art.el (gnus-article-address-banner-alist): New option. |
| 8273 | (article-strip-banner): Refer the above option to split banners of | 8260 | (article-strip-banner): Refer the above option to split banners of |
| @@ -8347,10 +8334,10 @@ | |||
| 8347 | * gnus-util.el (gnus-frame-or-window-display-name): Exclude | 8334 | * gnus-util.el (gnus-frame-or-window-display-name): Exclude |
| 8348 | invalid display names. | 8335 | invalid display names. |
| 8349 | 8336 | ||
| 8350 | 2002-08-30 Simon Josefsson <jas@extundo.com> | 8337 | 2002-08-30 Reiner Steib <Reiner.Steib@gmx.de> |
| 8351 | 8338 | ||
| 8352 | * gnus-group.el (gnus-group-fetch-control): Fix typo in last | 8339 | * gnus-group.el (gnus-group-fetch-control): Fix typo in last |
| 8353 | commit. From Reiner Steib <4uce.02.r.steib@gmx.net>. | 8340 | commit. |
| 8354 | 8341 | ||
| 8355 | 2002-08-26 Jesper Harder <harder@ifa.au.dk> | 8342 | 2002-08-26 Jesper Harder <harder@ifa.au.dk> |
| 8356 | 8343 | ||
| @@ -8361,10 +8348,9 @@ | |||
| 8361 | (gnus-group-fetch-control): New function. | 8348 | (gnus-group-fetch-control): New function. |
| 8362 | Add them to the keymap and menu. Require mm-url. | 8349 | Add them to the keymap and menu. Require mm-url. |
| 8363 | 8350 | ||
| 8364 | 2002-08-30 Katsumi Yamaoka <yamaoka@jpl.org> | 8351 | 2002-08-30 Alex Schroeder <alex@emacswiki.org>. |
| 8365 | 8352 | ||
| 8366 | * gnus-mlspl.el (gnus-group-split-fancy): Doc fix. | 8353 | * gnus-mlspl.el (gnus-group-split-fancy): Doc fix. |
| 8367 | From Alex Schroeder <alex@emacswiki.org>. | ||
| 8368 | 8354 | ||
| 8369 | 2002-08-29 Jesper Harder <harder@ifa.au.dk> | 8355 | 2002-08-29 Jesper Harder <harder@ifa.au.dk> |
| 8370 | 8356 | ||
| @@ -8412,10 +8398,10 @@ | |||
| 8412 | * lpath.el: Fbind `frame-parameter', `make-frame-on-display', | 8398 | * lpath.el: Fbind `frame-parameter', `make-frame-on-display', |
| 8413 | `device-connection' and `dfw-device'. | 8399 | `device-connection' and `dfw-device'. |
| 8414 | 8400 | ||
| 8415 | 2002-08-22 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8401 | 2002-08-22 Jochen Hein <jochen@jochen.org> (tiny change) |
| 8416 | 8402 | ||
| 8417 | * gnus-art.el (gnus-emphasis-alist): Strikethru had a lot of false | 8403 | * gnus-art.el (gnus-emphasis-alist): Strikethru had a lot of false |
| 8418 | positives, make it stricter. From Jochen Hein (trivial change). | 8404 | positives, make it stricter. |
| 8419 | 8405 | ||
| 8420 | 2002-08-21 Katsumi Yamaoka <yamaoka@jpl.org> | 8406 | 2002-08-21 Katsumi Yamaoka <yamaoka@jpl.org> |
| 8421 | 8407 | ||
| @@ -8432,8 +8418,7 @@ | |||
| 8432 | 8418 | ||
| 8433 | * lpath.el: Fbind w32-focus-frame and x-focus-frame. | 8419 | * lpath.el: Fbind w32-focus-frame and x-focus-frame. |
| 8434 | 8420 | ||
| 8435 | 2002-08-20 Katsumi Yamaoka <yamaoka@jpl.org> | 8421 | 2002-08-20 $B>.4X(B $B5HB'(B (KOSEKI Yoshinori) <kose@meadowy.org>. |
| 8436 | From $B>.4X(B $B5HB'(B (KOSEKI Yoshinori) <kose@meadowy.org>. | ||
| 8437 | 8422 | ||
| 8438 | * message.el (message-set-auto-save-file-name): Add support for | 8423 | * message.el (message-set-auto-save-file-name): Add support for |
| 8439 | the Cygwin Emacs; the system-type is `cygwin'. | 8424 | the Cygwin Emacs; the system-type is `cygwin'. |
| @@ -8543,7 +8528,7 @@ | |||
| 8543 | 8528 | ||
| 8544 | * gnus.el (gnus-version-number): Bumped version number. | 8529 | * gnus.el (gnus-version-number): Bumped version number. |
| 8545 | 8530 | ||
| 8546 | 2002-08-04 01:48:57 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 8531 | 2002-08-04 01:48:57 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 8547 | 8532 | ||
| 8548 | * gnus.el: Oort Gnus v0.07 is released. | 8533 | * gnus.el: Oort Gnus v0.07 is released. |
| 8549 | 8534 | ||
| @@ -8555,18 +8540,17 @@ | |||
| 8555 | (gnus-article-sort-by-random): New function. | 8540 | (gnus-article-sort-by-random): New function. |
| 8556 | (gnus-thread-sort-by-random): New function. | 8541 | (gnus-thread-sort-by-random): New function. |
| 8557 | 8542 | ||
| 8558 | 2002-08-02 Simon Josefsson <jas@extundo.com> | 8543 | 2002-08-02 Scott A Crosby <scrosby@cs.rice.edu> |
| 8559 | 8544 | ||
| 8560 | * gnus-logic.el (gnus-advanced-integer): Swap arguments in | 8545 | * gnus-logic.el (gnus-advanced-integer): Swap arguments in |
| 8561 | funcall. From Scott A Crosby <scrosby@cs.rice.edu>. | 8546 | funcall. |
| 8562 | 8547 | ||
| 8563 | 2002-07-31 Danny Siu <dsiu@adobe.com> | 8548 | 2002-07-31 Danny Siu <dsiu@adobe.com> |
| 8564 | 8549 | ||
| 8565 | * nnimap.el (nnimap-split-articles): do not call nnmail-fetch-field | 8550 | * nnimap.el (nnimap-split-articles): do not call nnmail-fetch-field |
| 8566 | when splitting malformed messages without message-id | 8551 | when splitting malformed messages without message-id |
| 8567 | 8552 | ||
| 8568 | 2002-07-28 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8553 | 2002-07-28 Niklas Morberg <niklas.morberg@axis.com>. |
| 8569 | From Niklas Morberg <niklas.morberg@axis.com>. | ||
| 8570 | 8554 | ||
| 8571 | * nnweb.el (nnweb-type, nnweb-type-definition) | 8555 | * nnweb.el (nnweb-type, nnweb-type-definition) |
| 8572 | (nnweb-gmane-create-mapping, nnweb-gmane-wash-article) | 8556 | (nnweb-gmane-create-mapping, nnweb-gmane-wash-article) |
| @@ -8610,21 +8594,18 @@ | |||
| 8610 | nnmail-expiry-target to 'delete, so that absolute deletion | 8594 | nnmail-expiry-target to 'delete, so that absolute deletion |
| 8611 | happens when absolute deletion is requested. | 8595 | happens when absolute deletion is requested. |
| 8612 | 8596 | ||
| 8613 | 2002-07-21 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8597 | 2002-07-21 Nevin Kapur <nevin@jhu.edu>. |
| 8614 | From Nevin Kapur <nevin@jhu.edu>. | ||
| 8615 | 8598 | ||
| 8616 | * nnmail.el (nnmail-fancy-expiry-target): Treat nonexisting | 8599 | * nnmail.el (nnmail-fancy-expiry-target): Treat nonexisting |
| 8617 | headers as empty headers. | 8600 | headers as empty headers. |
| 8618 | 8601 | ||
| 8619 | 2002-07-21 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8602 | 2002-07-21 Jochen Hein <jochen@jochen.org>. |
| 8620 | From Jochen Hein <jochen@jochen.org>. | ||
| 8621 | 8603 | ||
| 8622 | * gnus-art.el (gnus-emphasis-alist): Add strikethrough and | 8604 | * gnus-art.el (gnus-emphasis-alist): Add strikethrough and |
| 8623 | correct typo. | 8605 | correct typo. |
| 8624 | (gnus-emphasis-strikethru): New face. | 8606 | (gnus-emphasis-strikethru): New face. |
| 8625 | 8607 | ||
| 8626 | 2002-07-20 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8608 | 2002-07-20 Jason Merrill <jason@redhat.com>. |
| 8627 | From Jason Merrill <jason@redhat.com>. | ||
| 8628 | 8609 | ||
| 8629 | * nnfolder.el (nnfolder-retrieve-headers): Avoid searching the | 8610 | * nnfolder.el (nnfolder-retrieve-headers): Avoid searching the |
| 8630 | entire file for each of a sequence of missing articles. | 8611 | entire file for each of a sequence of missing articles. |
| @@ -8635,8 +8616,7 @@ | |||
| 8635 | * gnus-sum.el (gnus-summary-insert-new-articles): Count down to | 8616 | * gnus-sum.el (gnus-summary-insert-new-articles): Count down to |
| 8636 | avoid nreverse. | 8617 | avoid nreverse. |
| 8637 | 8618 | ||
| 8638 | 2002-07-14 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8619 | 2002-07-14 Ted Zlatanov <teodor.zlatanov@divine.com> |
| 8639 | From Ted Zlatanov <teodor.zlatanov@divine.com>. | ||
| 8640 | 8620 | ||
| 8641 | * gnus-sum.el (gnus-auto-expirable-marks): Remove `spam'. | 8621 | * gnus-sum.el (gnus-auto-expirable-marks): Remove `spam'. |
| 8642 | (gnus-summary-mode-line-format-alist): Add %h for number of | 8622 | (gnus-summary-mode-line-format-alist): Add %h for number of |
| @@ -8651,25 +8631,24 @@ | |||
| 8651 | (gnus-mark-article-as-read, gnus-mark-article-as-unread) | 8631 | (gnus-mark-article-as-read, gnus-mark-article-as-unread) |
| 8652 | (gnus-mark-article-as-unread, gnus-summary-catchup): Grok spam. | 8632 | (gnus-mark-article-as-unread, gnus-summary-catchup): Grok spam. |
| 8653 | 8633 | ||
| 8654 | 2002-07-10 Simon Josefsson <jas@extundo.com> | 8634 | 2002-07-10 KANEMATSU Daiji <kdaiji@bea.com> |
| 8655 | 8635 | ||
| 8656 | * nnimap.el (nnimap-split-to-groups): Allow group string to be a | 8636 | * nnimap.el (nnimap-split-to-groups): Allow group string to be a |
| 8657 | function. From KANEMATSU Daiji <kdaiji@bea.com>. | 8637 | function. |
| 8658 | 8638 | ||
| 8659 | 2002-07-09 Nevin Kapur <nevin@jhu.edu> | 8639 | 2002-07-09 Nevin Kapur <nevin@jhu.edu> |
| 8660 | 8640 | ||
| 8661 | * gnus-sum.el (gnus-summary-delete-article): Respect group | 8641 | * gnus-sum.el (gnus-summary-delete-article): Respect group |
| 8662 | parameters while expiring. | 8642 | parameters while expiring. |
| 8663 | 8643 | ||
| 8664 | 2002-07-08 Simon Josefsson <jas@extundo.com> | 8644 | 2002-07-08 Henrik Enberg <henrik@enberg.org> |
| 8665 | 8645 | ||
| 8666 | * gnus-art.el (article-make-date-line): Fix string. From Henrik | 8646 | * gnus-art.el (article-make-date-line): Fix string. |
| 8667 | Enberg. | ||
| 8668 | 8647 | ||
| 8669 | 2002-07-08 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8648 | 2002-07-08 Niklas Morberg <niklas.morberg@axis.com> |
| 8670 | 8649 | ||
| 8671 | * gnus-art.el (article-unsplit-urls): Only display MIME when this | 8650 | * gnus-art.el (article-unsplit-urls): Only display MIME when this |
| 8672 | function is called interactively. From Niklas Morberg. | 8651 | function is called interactively. |
| 8673 | 8652 | ||
| 8674 | 2002-07-06 ShengHuo ZHU <zsh@cs.rochester.edu> | 8653 | 2002-07-06 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 8675 | 8654 | ||
| @@ -8691,10 +8670,10 @@ | |||
| 8691 | 8670 | ||
| 8692 | * nnmail.el (nnmail-split-methods): fix custom type. | 8671 | * nnmail.el (nnmail-split-methods): fix custom type. |
| 8693 | 8672 | ||
| 8694 | 2002-07-02 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8673 | 2002-07-02 Niklas Morberg <niklas.morberg@axis.com> |
| 8695 | 8674 | ||
| 8696 | * gnus-art.el (article-unsplit-urls): Keep URL buttonized after | 8675 | * gnus-art.el (article-unsplit-urls): Keep URL buttonized after |
| 8697 | unsplitting. From Niklas Morberg <niklas.morberg@axis.com>. | 8676 | unsplitting. |
| 8698 | 8677 | ||
| 8699 | 2002-07-01 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8678 | 2002-07-01 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> |
| 8700 | 8679 | ||
| @@ -8706,13 +8685,12 @@ | |||
| 8706 | * nntp.el (nntp-via-rlogin-command-switches): New variable. | 8685 | * nntp.el (nntp-via-rlogin-command-switches): New variable. |
| 8707 | (nntp-open-via-rlogin-and-telnet): Re-revert; use the var above. | 8686 | (nntp-open-via-rlogin-and-telnet): Re-revert; use the var above. |
| 8708 | 8687 | ||
| 8709 | 2002-06-28 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8688 | 2002-06-28 Katsumi Yamaoka <yamaoka@jpl.org> |
| 8710 | 8689 | ||
| 8711 | * message.el (message-font-lock-keywords): Don't fontify | 8690 | * message.el (message-font-lock-keywords): Don't fontify |
| 8712 | headers in the message body, only in the header. | 8691 | headers in the message body, only in the header. |
| 8713 | (message-font-lock-make-header-matcher): New function, used by | 8692 | (message-font-lock-make-header-matcher): New function, used by |
| 8714 | message-font-lock-keywords. | 8693 | message-font-lock-keywords. |
| 8715 | From Katsumi Yamaoka <yamaoka@jpl.org>. | ||
| 8716 | 8694 | ||
| 8717 | 2002-06-28 Katsumi Yamaoka <yamaoka@jpl.org> | 8695 | 2002-06-28 Katsumi Yamaoka <yamaoka@jpl.org> |
| 8718 | 8696 | ||
| @@ -8765,24 +8743,22 @@ | |||
| 8765 | (last, coerce, subseq): Remove compiler macros for those built-in | 8743 | (last, coerce, subseq): Remove compiler macros for those built-in |
| 8766 | or unused functions. | 8744 | or unused functions. |
| 8767 | 8745 | ||
| 8768 | 2002-06-17 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8746 | 2002-06-17 Simon Josefsson <jas@extundo.com> |
| 8769 | 8747 | ||
| 8770 | * gnus-start.el (gnus-clear-system, gnus-read-newsrc-file): Make | 8748 | * gnus-start.el (gnus-clear-system, gnus-read-newsrc-file): Make |
| 8771 | sure to write byte-compiled versions of gnus-*-format-alist to | 8749 | sure to write byte-compiled versions of gnus-*-format-alist to |
| 8772 | .newsrc.eld. From Simon Josefsson. | 8750 | .newsrc.eld. |
| 8773 | 8751 | ||
| 8774 | 2002-06-16 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8752 | 2002-06-16 Bj,Ax(Brn Mork <bmork@dod.no> |
| 8775 | 8753 | ||
| 8776 | * gnus-agent.el (gnus-agent-read-servers) | 8754 | * gnus-agent.el (gnus-agent-read-servers) |
| 8777 | (gnus-agent-write-servers): Put server name (string like | 8755 | (gnus-agent-write-servers): Put server name (string like |
| 8778 | "nnchoke:frumple") in the file instead of a server specification | 8756 | "nnchoke:frumple") in the file instead of a server specification |
| 8779 | (Lisp expression like (nnchoke "frumple" ...parameters...)). | 8757 | (Lisp expression like (nnchoke "frumple" ...parameters...)). |
| 8780 | From Bj,Ax(Brn Mork <bmork@dod.no>. | ||
| 8781 | 8758 | ||
| 8782 | 2002-06-16 Simon Josefsson <jas@extundo.com> | 8759 | 2002-06-16 Reiner Steib <Reiner.Steib@gmx.de> |
| 8783 | 8760 | ||
| 8784 | * gnus-cache.el (gnus-cache-remove-article): n is &optional. From | 8761 | * gnus-cache.el (gnus-cache-remove-article): n is &optional. |
| 8785 | Reiner Steib <4uce.02.r.steib@gmx.net>. | ||
| 8786 | 8762 | ||
| 8787 | 2002-06-15 ShengHuo ZHU <zsh@cs.rochester.edu> | 8763 | 2002-06-15 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 8788 | 8764 | ||
| @@ -8818,8 +8794,10 @@ | |||
| 8818 | * gnus-int.el (gnus-request-move-article): Agent expire article if | 8794 | * gnus-int.el (gnus-request-move-article): Agent expire article if |
| 8819 | successfuly moved. | 8795 | successfuly moved. |
| 8820 | 8796 | ||
| 8797 | 2002-06-11 Niklas Morberg <niklas.morberg@axis.com> | ||
| 8798 | |||
| 8821 | * nnweb.el (nnweb-google-create-mapping): Honors the value of | 8799 | * nnweb.el (nnweb-google-create-mapping): Honors the value of |
| 8822 | nnweb-max-hits. From Niklas Morberg <niklas.morberg@axis.com>. | 8800 | nnweb-max-hits. |
| 8823 | 8801 | ||
| 8824 | 2002-06-10 Simon Josefsson <jas@extundo.com> | 8802 | 2002-06-10 Simon Josefsson <jas@extundo.com> |
| 8825 | 8803 | ||
| @@ -8868,11 +8846,10 @@ | |||
| 8868 | * nnmail.el (nnmail-mail-splitting-decodes): New variable. | 8846 | * nnmail.el (nnmail-mail-splitting-decodes): New variable. |
| 8869 | (nnmail-article-group): Use it. | 8847 | (nnmail-article-group): Use it. |
| 8870 | 8848 | ||
| 8871 | 2002-05-30 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8849 | 2002-05-30 Jesper Harder <harder@ifa.au.dk> |
| 8872 | 8850 | ||
| 8873 | * gnus-msg.el (gnus-inews-yank-articles): Merge split header lines | 8851 | * gnus-msg.el (gnus-inews-yank-articles): Merge split header lines |
| 8874 | so that code reading them won't be surprised. From Jesper Harder | 8852 | so that code reading them won't be surprised. |
| 8875 | <harder@ifa.au.dk>. | ||
| 8876 | 8853 | ||
| 8877 | 2002-05-29 Simon Josefsson <jas@extundo.com> | 8854 | 2002-05-29 Simon Josefsson <jas@extundo.com> |
| 8878 | 8855 | ||
| @@ -8889,11 +8866,10 @@ | |||
| 8889 | 8866 | ||
| 8890 | * gnus-group.el (gnus-group-line-format): Doc fix. | 8867 | * gnus-group.el (gnus-group-line-format): Doc fix. |
| 8891 | 8868 | ||
| 8892 | 2002-05-28 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8869 | 2002-05-28 Jesper Harder <harder@ifa.au.dk> |
| 8893 | 8870 | ||
| 8894 | * gnus-msg.el (gnus-inews-yank-articles): Unfold headers of | 8871 | * gnus-msg.el (gnus-inews-yank-articles): Unfold headers of |
| 8895 | original article before yanking. From Jesper Harder | 8872 | original article before yanking. |
| 8896 | <harder@ifa.au.dk>. | ||
| 8897 | 8873 | ||
| 8898 | 2002-05-26 Simon Josefsson <jas@extundo.com> | 8874 | 2002-05-26 Simon Josefsson <jas@extundo.com> |
| 8899 | 8875 | ||
| @@ -8919,22 +8895,23 @@ | |||
| 8919 | (gnus-summary-prepare-threads): Avoid simplifying every Subject | 8895 | (gnus-summary-prepare-threads): Avoid simplifying every Subject |
| 8920 | twice by saving the simplified subject string in simp-subject. | 8896 | twice by saving the simplified subject string in simp-subject. |
| 8921 | 8897 | ||
| 8922 | 2002-05-23 Simon Josefsson <jas@extundo.com> | 8898 | 2002-05-23 Benjamin Rutt <rutt+news@cis.ohio-state.edu> (tiny change) |
| 8899 | |||
| 8900 | * gnus-msg.el (gnus-confirm-mail-reply-to-news): Typo. | ||
| 8923 | 8901 | ||
| 8924 | * gnus-msg.el (gnus-confirm-mail-reply-to-news): Typo. Trivial | 8902 | 2002-05-23 Niklas Morberg <niklas.morberg@axis.com> (tiny change) |
| 8925 | change from Benjamin Rutt <rutt+news@cis.ohio-state.edu>. | ||
| 8926 | 8903 | ||
| 8927 | * nnweb.el (nnweb-type): Remove dejanewsold. Trivial change from | 8904 | * nnweb.el (nnweb-type): Remove dejanewsold. |
| 8928 | Niklas Morberg <niklas.morberg@axis.com>. | ||
| 8929 | 8905 | ||
| 8930 | 2002-05-22 Simon Josefsson <jas@extundo.com> | 8906 | 2002-05-22 Simon Josefsson <jas@extundo.com> |
| 8931 | 8907 | ||
| 8932 | * sieve.el (sieve-change-region): Define it before it is used. | 8908 | * sieve.el (sieve-change-region): Define it before it is used. |
| 8933 | 8909 | ||
| 8910 | 2002-05-22 Benjamin Rutt <rutt+news@cis.ohio-state.edu> | ||
| 8911 | |||
| 8934 | * gnus-msg.el (gnus-confirm-mail-reply-to-news) | 8912 | * gnus-msg.el (gnus-confirm-mail-reply-to-news) |
| 8935 | (gnus-summary-reply): Ask for confirmation when replying to news. | 8913 | (gnus-summary-reply): Ask for confirmation when replying to news. |
| 8936 | Defaults to not ask. From Benjamin Rutt | 8914 | Defaults to not ask. |
| 8937 | <rutt+news@cis.ohio-state.edu>. | ||
| 8938 | 8915 | ||
| 8939 | * nnimap.el (nnimap-nov-is-evil): Improve doc. | 8916 | * nnimap.el (nnimap-nov-is-evil): Improve doc. |
| 8940 | 8917 | ||
| @@ -8989,10 +8966,13 @@ | |||
| 8989 | * nnmail.el (nnmail-cache-insert): Change group to required, | 8966 | * nnmail.el (nnmail-cache-insert): Change group to required, |
| 8990 | removed code which tried to figure out the group. | 8967 | removed code which tried to figure out the group. |
| 8991 | 8968 | ||
| 8992 | 2002-05-13 Josh Huber <huber@alum.wpi.edu> | 8969 | 2002-05-13 Hans de Graaff <hans@degraaff.org> |
| 8993 | 8970 | ||
| 8994 | * mml.el (mml-generate-mime-1): Fix mml generation for signed only | 8971 | * mml.el (mml-generate-mime-1): Fix mml generation for signed only |
| 8995 | messages. From Hans de Graaff <hans@degraaff.org>. | 8972 | messages. |
| 8973 | |||
| 8974 | 2002-05-13 Josh Huber <huber@alum.wpi.edu> | ||
| 8975 | |||
| 8996 | * nnml.el (nnml-request-accept-article): Pass in the group name to | 8976 | * nnml.el (nnml-request-accept-article): Pass in the group name to |
| 8997 | nnmail-cache-insert, since it's available. | 8977 | nnmail-cache-insert, since it's available. |
| 8998 | 8978 | ||
| @@ -9000,8 +8980,7 @@ | |||
| 9000 | 8980 | ||
| 9001 | * nndoc.el (nndoc-mime-digest-type-p): Set proper file-end. | 8981 | * nndoc.el (nndoc-mime-digest-type-p): Set proper file-end. |
| 9002 | 8982 | ||
| 9003 | 2002-05-08 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 8983 | 2002-05-08 Florian Weimer <fw@deneb.enyo.de> |
| 9004 | From Florian Weimer <fw@deneb.enyo.de>. | ||
| 9005 | 8984 | ||
| 9006 | * gnus.el (subscribed): New group parameter. | 8985 | * gnus.el (subscribed): New group parameter. |
| 9007 | (gnus-find-subscribed-addresses): Use it. | 8986 | (gnus-find-subscribed-addresses): Use it. |
| @@ -9021,16 +9000,15 @@ | |||
| 9021 | parenthesis for "<" and ">". Suggested by Andreas Schwab | 9000 | parenthesis for "<" and ">". Suggested by Andreas Schwab |
| 9022 | <schwab@suse.de>. | 9001 | <schwab@suse.de>. |
| 9023 | 9002 | ||
| 9024 | 2002-05-07 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 9003 | 2002-05-07 Josh Huber <huber@alum.wpi.edu> |
| 9025 | 9004 | ||
| 9026 | * nnmail.el (nnmail-cache-insert): Prefer group-art over group | 9005 | * nnmail.el (nnmail-cache-insert): Prefer group-art over group |
| 9027 | when intuiting the group the message is written to. From Josh | 9006 | when intuiting the group the message is written to. |
| 9028 | Huber <huber@alum.wpi.edu>. | ||
| 9029 | 9007 | ||
| 9030 | 2002-05-06 Simon Josefsson <jas@extundo.com> | 9008 | 2002-05-06 Matt Armstrong <matt@lickey.com> |
| 9031 | 9009 | ||
| 9032 | * gnus-topic.el (gnus-group-topic-parameters): Work when group | 9010 | * gnus-topic.el (gnus-group-topic-parameters): Work when group |
| 9033 | buffer doesn't show group. From Matt Armstrong <matt@lickey.com>. | 9011 | buffer doesn't show group. |
| 9034 | 9012 | ||
| 9035 | 2002-05-06 Josh Huber <huber@alum.wpi.edu> | 9013 | 2002-05-06 Josh Huber <huber@alum.wpi.edu> |
| 9036 | 9014 | ||
| @@ -9077,7 +9055,7 @@ | |||
| 9077 | server. | 9055 | server. |
| 9078 | (nnimap-mailbox-info): defvar instead of defvoo. | 9056 | (nnimap-mailbox-info): defvar instead of defvoo. |
| 9079 | 9057 | ||
| 9080 | 2002-05-01 20:09:21 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 9058 | 2002-05-01 20:09:21 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 9081 | 9059 | ||
| 9082 | * gnus.el: Oort Gnus v0.06 is released. | 9060 | * gnus.el: Oort Gnus v0.06 is released. |
| 9083 | 9061 | ||
| @@ -9187,8 +9165,7 @@ | |||
| 9187 | 9165 | ||
| 9188 | * gnus-art.el (article-unsplit-urls): Allow trailing SPC. | 9166 | * gnus-art.el (article-unsplit-urls): Allow trailing SPC. |
| 9189 | 9167 | ||
| 9190 | 2002-04-24 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 9168 | 2002-04-24 Dan Christensen <jdc+news@uwo.ca> |
| 9191 | From Dan Christensen <jdc+news@uwo.ca>. | ||
| 9192 | 9169 | ||
| 9193 | * nndoc.el (nndoc-type-alist, nndoc-lanl-gov-announce-type-p) | 9170 | * nndoc.el (nndoc-type-alist, nndoc-lanl-gov-announce-type-p) |
| 9194 | (nndoc-transform-lanl-gov-announce, nndoc-generate-lanl-gov-head): | 9171 | (nndoc-transform-lanl-gov-announce, nndoc-generate-lanl-gov-head): |
| @@ -9210,11 +9187,10 @@ | |||
| 9210 | (gnus-netrc-get, gnus-netrc-machine, gnus-parse-netrc): Aliased to | 9187 | (gnus-netrc-get, gnus-netrc-machine, gnus-parse-netrc): Aliased to |
| 9211 | new code in netrc.el. | 9188 | new code in netrc.el. |
| 9212 | 9189 | ||
| 9213 | 2002-04-23 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 9190 | 2002-04-23 Matthieu Moy <Matthieu.Moy@imag.fr> |
| 9214 | 9191 | ||
| 9215 | * gnus-msg.el (gnus-summary-resend-message-edit): Remove | 9192 | * gnus-msg.el (gnus-summary-resend-message-edit): Remove |
| 9216 | message-ignored-resent-headers, too. From Matthieu Moy | 9193 | message-ignored-resent-headers, too. |
| 9217 | <Matthieu.Moy@imag.fr>. | ||
| 9218 | 9194 | ||
| 9219 | 2002-04-22 Bj,Av(Brn Torkelsson <torkel@acc.umu.se> | 9195 | 2002-04-22 Bj,Av(Brn Torkelsson <torkel@acc.umu.se> |
| 9220 | 9196 | ||
| @@ -9279,8 +9255,7 @@ | |||
| 9279 | * message.el (message-gen-unsubscribed-mft): accept a prefix | 9255 | * message.el (message-gen-unsubscribed-mft): accept a prefix |
| 9280 | argument so CC can be included with C-u C-c C-f C-a | 9256 | argument so CC can be included with C-u C-c C-f C-a |
| 9281 | 9257 | ||
| 9282 | 2002-04-17 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 9258 | 2002-04-17 Ted Zlatanov <teodor.zlatanov@divine.com> |
| 9283 | From Ted Zlatanov <teodor.zlatanov@divine.com>. | ||
| 9284 | 9259 | ||
| 9285 | * spam.el (spam-whitelist, spam-blacklist, spam-enter-whitelist): | 9260 | * spam.el (spam-whitelist, spam-blacklist, spam-enter-whitelist): |
| 9286 | Improve docstring. | 9261 | Improve docstring. |
| @@ -9317,11 +9292,10 @@ | |||
| 9317 | * nnml.el (nnml-save-nov, nnml-generate-nov-file): | 9292 | * nnml.el (nnml-save-nov, nnml-generate-nov-file): |
| 9318 | * pop3.el (pop3-md5): Don't hardcode point-min == 1. | 9293 | * pop3.el (pop3-md5): Don't hardcode point-min == 1. |
| 9319 | 9294 | ||
| 9320 | 2002-04-12 Katsumi Yamaoka <yamaoka@jpl.org> | 9295 | 2002-04-12 Daiki Ueno <ueno@unixuser.org> |
| 9321 | 9296 | ||
| 9322 | * gnus-srvr.el (gnus-server-set-info): Clear | 9297 | * gnus-srvr.el (gnus-server-set-info): Clear |
| 9323 | `gnus-server-method-cache' when `gnus-server-alist' is changed. | 9298 | `gnus-server-method-cache' when `gnus-server-alist' is changed. |
| 9324 | From Daiki Ueno <ueno@unixuser.org>. | ||
| 9325 | 9299 | ||
| 9326 | 2002-04-11 Simon Josefsson <jas@extundo.com> | 9300 | 2002-04-11 Simon Josefsson <jas@extundo.com> |
| 9327 | 9301 | ||
| @@ -9475,20 +9449,18 @@ | |||
| 9475 | 9449 | ||
| 9476 | * message.el (message-mode): Fix doc. | 9450 | * message.el (message-mode): Fix doc. |
| 9477 | 9451 | ||
| 9478 | 2002-03-25 Simon Josefsson <jas@extundo.com> | 9452 | 2002-03-25 Matthieu Moy <Matthieu.Moy@imag.fr> |
| 9479 | 9453 | ||
| 9480 | * message.el (message-subject-re-regexp): Skip Re[42]: junk. From | 9454 | * message.el (message-subject-re-regexp): Skip Re[42]: junk. |
| 9481 | Matthieu Moy <Matthieu.Moy@imag.fr>. | ||
| 9482 | 9455 | ||
| 9483 | 2002-03-24 Jesper Harder <harder@ifa.au.dk> | 9456 | 2002-03-24 Jesper Harder <harder@ifa.au.dk> |
| 9484 | 9457 | ||
| 9485 | * mml-sec.el (mml-unsecure-message): Add docstring. | 9458 | * mml-sec.el (mml-unsecure-message): Add docstring. |
| 9486 | 9459 | ||
| 9487 | 2002-03-23 ShengHuo ZHU <zsh@cs.rochester.edu> | 9460 | 2002-03-23 Andre Srinivasan <andre@slamdunknetworks.com> (tiny change) |
| 9488 | 9461 | ||
| 9489 | * nnmail.el (nnmail-large-newsgroup): Fix doc, allow non-numeric | 9462 | * nnmail.el (nnmail-large-newsgroup): Fix doc, allow non-numeric |
| 9490 | value. | 9463 | value. |
| 9491 | Trivial change from andre@slamdunknetworks.com | ||
| 9492 | 9464 | ||
| 9493 | 2002-03-22 Josh Huber <huber@alum.wpi.edu> | 9465 | 2002-03-22 Josh Huber <huber@alum.wpi.edu> |
| 9494 | 9466 | ||
| @@ -9516,8 +9488,9 @@ | |||
| 9516 | * message.el (message-font-lock-keywords): Support multi-line MML | 9488 | * message.el (message-font-lock-keywords): Support multi-line MML |
| 9517 | tags. | 9489 | tags. |
| 9518 | 9490 | ||
| 9491 | 2002-03-21 L,Bu(Brentey K,Ba(Broly <lorentey@elte.hu> | ||
| 9492 | |||
| 9519 | * gnus-sum.el (gnus-print-buffer): Remove gnus-decoration. | 9493 | * gnus-sum.el (gnus-print-buffer): Remove gnus-decoration. |
| 9520 | Trivial change from lorentey@elte.hu (L,Bu(Brentey K,Aa(Broly) | ||
| 9521 | 9494 | ||
| 9522 | 2002-03-20 Katsumi Yamaoka <yamaoka@jpl.org> | 9495 | 2002-03-20 Katsumi Yamaoka <yamaoka@jpl.org> |
| 9523 | 9496 | ||
| @@ -9541,30 +9514,28 @@ | |||
| 9541 | (gnus-sum-thread-tree-leaf-with-other) | 9514 | (gnus-sum-thread-tree-leaf-with-other) |
| 9542 | (gnus-sum-thread-tree-single-leaf): Make customizable. | 9515 | (gnus-sum-thread-tree-single-leaf): Make customizable. |
| 9543 | 9516 | ||
| 9544 | 2002-03-16 Simon Josefsson <jas@extundo.com> | 9517 | 2002-03-16 Francis Litterio <franl@world.std.com> |
| 9545 | 9518 | ||
| 9546 | * gnus-util.el (gnus-extract-address-components): Don't break on | 9519 | * gnus-util.el (gnus-extract-address-components): Don't break on |
| 9547 | names such as James "Kibo" Parry. From Francis Litterio | 9520 | names such as James "Kibo" Parry. |
| 9548 | <franl@world.std.com>. | ||
| 9549 | 9521 | ||
| 9550 | 2002-03-13 Simon Josefsson <jas@extundo.com> | 9522 | 2002-03-13 Pavel Jan,Am(Bk <Pavel@Janik.cz> |
| 9551 | 9523 | ||
| 9552 | * pop3.el (pop3-open-server): Revert multibyte change. From | 9524 | * pop3.el (pop3-open-server): Revert multibyte change. |
| 9553 | Pavel@Janik.cz (Pavel Jan,Am(Bk). | ||
| 9554 | 9525 | ||
| 9555 | * message.el (message-send-mail-with-qmail): Make it work. From | 9526 | * message.el (message-send-mail-with-qmail): Make it work. |
| 9556 | Pavel@Janik.cz (Pavel Jan,Am(Bk). | ||
| 9557 | 9527 | ||
| 9558 | 2002-03-13 Josh Huber <huber@alum.wpi.edu> | 9528 | 2002-03-13 Josh Huber <huber@alum.wpi.edu> |
| 9559 | 9529 | ||
| 9560 | * message.el (message-make-mft): Set case-fold-search while | 9530 | * message.el (message-make-mft): Set case-fold-search while |
| 9561 | generating the MFT. Also, a little cleanup in the MFT code. | 9531 | generating the MFT. Also, a little cleanup in the MFT code. |
| 9562 | 9532 | ||
| 9563 | 2002-03-12 Simon Josefsson <jas@extundo.com> | 9533 | 2002-03-12 Faried Nawaz <fn@hungry.org> (tiny change) |
| 9564 | 9534 | ||
| 9565 | * message.el (message-qmail-inject-args): May be function. | 9535 | * message.el (message-qmail-inject-args): May be function. Adjust |
| 9566 | (message-send-mail-with-qmail): Call function if m-q-i-a is | 9536 | doc string and custom type. |
| 9567 | function. From fn@hungry.org (Faried Nawaz). | 9537 | (message-send-mail-with-qmail): Call function if m-q-i-a is a |
| 9538 | function. | ||
| 9568 | 9539 | ||
| 9569 | 2002-03-12 ShengHuo ZHU <zsh@cs.rochester.edu> | 9540 | 2002-03-12 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 9570 | 9541 | ||
| @@ -9586,26 +9557,26 @@ | |||
| 9586 | * nnslashdot.el (nnslashdot-request-article): Remove javascript | 9557 | * nnslashdot.el (nnslashdot-request-article): Remove javascript |
| 9587 | too. | 9558 | too. |
| 9588 | 9559 | ||
| 9589 | 2002-03-09 ShengHuo ZHU <zsh@cs.rochester.edu> | 9560 | 2002-03-09 Andre Srinivasan <andre@slamdunknetworks.com> (tiny change) |
| 9590 | 9561 | ||
| 9591 | * gnus-sum.el (gnus-summary-save-parts-default-mime): Remove | 9562 | * gnus-sum.el (gnus-summary-save-parts-default-mime): Remove |
| 9592 | duplication. | 9563 | duplication. |
| 9593 | (gnus-summary-save-parts-type-history): Ditto. | 9564 | (gnus-summary-save-parts-type-history): Ditto. |
| 9594 | (gnus-summary-save-parts-last-directory): Ditto. | 9565 | (gnus-summary-save-parts-last-directory): Ditto. |
| 9595 | Trivial change from andre@slamdunknetworks.com | ||
| 9596 | 9566 | ||
| 9597 | 2002-03-09 Paul Jarc <prj@po.cwru.edu> | 9567 | 2002-03-09 Paul Jarc <prj@po.cwru.edu> |
| 9598 | 9568 | ||
| 9599 | * gnus-start.el (gnus-auto-subscribed-groups): Include nnmaildir. | 9569 | * gnus-start.el (gnus-auto-subscribed-groups): Include nnmaildir. |
| 9600 | 9570 | ||
| 9571 | 2002-03-06 Matthieu Moy <Matthieu.Moy@imag.fr> | ||
| 9572 | |||
| 9573 | * gnus-msg.el (gnus-summary-resend-message-edit): New function. | ||
| 9574 | |||
| 9601 | 2002-03-06 ShengHuo ZHU <zsh@cs.rochester.edu> | 9575 | 2002-03-06 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 9602 | 9576 | ||
| 9603 | * nnslashdot.el (nnslashdot-request-article): Use "<!-- no ad 6 | 9577 | * nnslashdot.el (nnslashdot-request-article): Use "<!-- no ad 6 |
| 9604 | -->" as the end of the first article. | 9578 | -->" as the end of the first article. |
| 9605 | 9579 | ||
| 9606 | * gnus-msg.el (gnus-summary-resend-message-edit): New function. | ||
| 9607 | From Matthieu Moy <Matthieu.Moy@imag.fr> | ||
| 9608 | |||
| 9609 | * message.el (message-add-action): Use add-to-list. | 9580 | * message.el (message-add-action): Use add-to-list. |
| 9610 | (message-delete-action): New function. | 9581 | (message-delete-action): New function. |
| 9611 | 9582 | ||
| @@ -9667,17 +9638,15 @@ | |||
| 9667 | completing-read. | 9638 | completing-read. |
| 9668 | (mm-view-pkcs7-decrypt): CRLF->LF. | 9639 | (mm-view-pkcs7-decrypt): CRLF->LF. |
| 9669 | 9640 | ||
| 9670 | 2002-03-04 Paul Jarc <prj@po.cwru.edu> | 9641 | 2002-03-04 Teodor Zlatanov <teodor.zlatanov@divine.com> |
| 9671 | 9642 | ||
| 9672 | * message.el (message-hierarchical-addresses): New variable. | 9643 | * message.el (message-hierarchical-addresses): New variable. |
| 9673 | (message-get-reply-headers): Use it. | 9644 | (message-get-reply-headers): Use it. |
| 9674 | From Ted Zlatanov <teodor.zlatanov@divine.com> | ||
| 9675 | 9645 | ||
| 9676 | 2002-03-03 ShengHuo ZHU <zsh@cs.rochester.edu> | 9646 | 2002-03-03 Geoff Greene <ggreene@wpi.edu> (tiny change) |
| 9677 | 9647 | ||
| 9678 | * message.el (message-mode): If buffer-file-name, don't set auto | 9648 | * message.el (message-mode): If buffer-file-name, don't set auto |
| 9679 | save file name. | 9649 | save file name. |
| 9680 | Trivial change from Geoff Greene <ggreene@wpi.edu> | ||
| 9681 | 9650 | ||
| 9682 | 2002-03-02 ShengHuo ZHU <zsh@cs.rochester.edu> | 9651 | 2002-03-02 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 9683 | 9652 | ||
| @@ -9724,11 +9693,12 @@ | |||
| 9724 | * gnus-sum.el (gnus-articles-to-read): Use large-newsgroup-initial. | 9693 | * gnus-sum.el (gnus-articles-to-read): Use large-newsgroup-initial. |
| 9725 | (gnus-summary-insert-old-articles): Ditto. | 9694 | (gnus-summary-insert-old-articles): Ditto. |
| 9726 | 9695 | ||
| 9727 | 2002-02-26 ShengHuo ZHU <zsh@cs.rochester.edu> | 9696 | 2002-02-26 TSUCHIYA Masatoshi <tsuchiya@namazu.org> |
| 9728 | 9697 | ||
| 9729 | * gnus-sum.el (gnus-articles-to-read): `gnus-large-newsgroup' is | 9698 | * gnus-sum.el (gnus-articles-to-read): `gnus-large-newsgroup' is |
| 9730 | used as the default answer of the question, "How many articles?". | 9699 | used as the default answer of the question, "How many articles?". |
| 9731 | From TSUCHIYA Masatoshi <tsuchiya@namazu.org> | 9700 | |
| 9701 | 2002-02-26 ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 9732 | 9702 | ||
| 9733 | * nnagent.el (nnagent-retrieve-headers): Remove articles with | 9703 | * nnagent.el (nnagent-retrieve-headers): Remove articles with |
| 9734 | small numbers. | 9704 | small numbers. |
| @@ -9737,14 +9707,15 @@ | |||
| 9737 | 9707 | ||
| 9738 | * deuglify.el: Fix comments. | 9708 | * deuglify.el: Fix comments. |
| 9739 | 9709 | ||
| 9710 | 2002-02-23 Andre Srinivasan <andre@slamdunknetworks.com> (tiny change) | ||
| 9711 | |||
| 9712 | * mml.el (mml-generate-mime-1): Add cdr. | ||
| 9713 | |||
| 9740 | 2002-02-23 ShengHuo ZHU <zsh@cs.rochester.edu> | 9714 | 2002-02-23 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 9741 | 9715 | ||
| 9742 | * html2text.el (html2text-clean-anchor): If there is no HREF, | 9716 | * html2text.el (html2text-clean-anchor): If there is no HREF, |
| 9743 | insert nothing. | 9717 | insert nothing. |
| 9744 | 9718 | ||
| 9745 | * mml.el (mml-generate-mime-1): Add cdr. | ||
| 9746 | From: andre@slamdunknetworks.com | ||
| 9747 | |||
| 9748 | * mm-view.el (mm-text-html-renderer-alist): Add html2text. | 9719 | * mm-view.el (mm-text-html-renderer-alist): Add html2text. |
| 9749 | (mm-text-html-washer-alist): Ditto. | 9720 | (mm-text-html-washer-alist): Ditto. |
| 9750 | 9721 | ||
| @@ -9760,11 +9731,15 @@ | |||
| 9760 | 9731 | ||
| 9761 | * deuglify.el: Change copy right. Add autoload. Add coding-system. | 9732 | * deuglify.el: Change copy right. Add autoload. Add coding-system. |
| 9762 | 9733 | ||
| 9763 | * deuglify.el: New file. The original file name is | 9734 | 2002-02-22 Raymond Scholz <rscholz@zonix.de> |
| 9764 | gnus-outlook-deuglify.el from Raymond Scholz <rscholz@zonix.de>. | 9735 | |
| 9736 | * deuglify.el: New file. The original file name is | ||
| 9737 | gnus-outlook-deuglify.el. | ||
| 9738 | |||
| 9739 | 2002-02-22 Andre Srinivasan <andre@slamdunknetworks.com> (tiny change) | ||
| 9765 | 9740 | ||
| 9766 | * mm-decode.el (mm-display-external): Use | 9741 | * mm-decode.el (mm-display-external): Use |
| 9767 | mm-file-name-rewrite-functions. From <andre@slamdunknetworks.com> | 9742 | mm-file-name-rewrite-functions. |
| 9768 | 9743 | ||
| 9769 | 2002-02-22 Paul Jarc <prj@po.cwru.edu> | 9744 | 2002-02-22 Paul Jarc <prj@po.cwru.edu> |
| 9770 | 9745 | ||
| @@ -9800,17 +9775,19 @@ | |||
| 9800 | 9775 | ||
| 9801 | * gnus-art.el (gnus-article-edit-done): Widen the buffer. | 9776 | * gnus-art.el (gnus-article-edit-done): Widen the buffer. |
| 9802 | 9777 | ||
| 9778 | * message.el (message-send-mail): Be talkative. | ||
| 9779 | |||
| 9780 | 2002-02-20 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> | ||
| 9781 | |||
| 9803 | * gnus-group.el (gnus-group-name-decode): Don't test | 9782 | * gnus-group.el (gnus-group-name-decode): Don't test |
| 9804 | multibyte-string, because it breaks XEmacs. | 9783 | multibyte-string, because it breaks XEmacs. |
| 9805 | From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> | ||
| 9806 | 9784 | ||
| 9807 | * message.el (message-send-mail): Be talkative. | 9785 | 2002-02-20 Reiner Steib <Reiner.Steib@gmx.de> |
| 9808 | 9786 | ||
| 9809 | * mm-decode.el (mm-inlined-types): Add application/x-emacs-lisp. | 9787 | * mm-decode.el (mm-inlined-types): Add application/x-emacs-lisp. |
| 9810 | (mm-automatic-display): Ditto. | 9788 | (mm-automatic-display): Ditto. |
| 9811 | 9789 | ||
| 9812 | * mailcap.el (mailcap-mime-data): Ditto. | 9790 | * mailcap.el (mailcap-mime-data): Ditto. |
| 9813 | From: Reiner Steib <4uce.02.r.steib@gmx.net> | ||
| 9814 | 9791 | ||
| 9815 | 2002-02-20 Katsumi Yamaoka <yamaoka@jpl.org> | 9792 | 2002-02-20 Katsumi Yamaoka <yamaoka@jpl.org> |
| 9816 | 9793 | ||
| @@ -9852,10 +9829,10 @@ | |||
| 9852 | 9829 | ||
| 9853 | * nnultimate.el (nnultimate-retrieve-headers): Clean up. | 9830 | * nnultimate.el (nnultimate-retrieve-headers): Clean up. |
| 9854 | 9831 | ||
| 9855 | 2002-02-18 Paul Jarc <prj@po.cwru.edu> | 9832 | 2002-02-18 Mark Thomas <mthomas@cmu.edu> |
| 9856 | 9833 | ||
| 9857 | * gnus-util.el (gnus-parent-id): Ignore trailing whitespace in the | 9834 | * gnus-util.el (gnus-parent-id): Ignore trailing whitespace in the |
| 9858 | References header field. From Mark Thomas <mthomas@cmu.edu>. | 9835 | References header field. |
| 9859 | 9836 | ||
| 9860 | 2002-02-18 ShengHuo ZHU <zsh@cs.rochester.edu> | 9837 | 2002-02-18 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 9861 | 9838 | ||
| @@ -9969,8 +9946,9 @@ | |||
| 9969 | 9946 | ||
| 9970 | * message-utils.el: Adopt the file. | 9947 | * message-utils.el: Adopt the file. |
| 9971 | 9948 | ||
| 9949 | 2002-02-15 Holger Schauer <Holger.Schauer@gmx.de> | ||
| 9950 | |||
| 9972 | * message-utils.el: New file. | 9951 | * message-utils.el: New file. |
| 9973 | From Holger Schauer <Holger.Schauer@gmx.de> | ||
| 9974 | 9952 | ||
| 9975 | 2002-02-14 ShengHuo ZHU <zsh@cs.rochester.edu> | 9953 | 2002-02-14 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 9976 | 9954 | ||
| @@ -10078,9 +10056,6 @@ | |||
| 10078 | gnus-decoration property. | 10056 | gnus-decoration property. |
| 10079 | * gnus-msg.el (gnus-copy-article-buffer): Remove gnus-decoration. | 10057 | * gnus-msg.el (gnus-copy-article-buffer): Remove gnus-decoration. |
| 10080 | 10058 | ||
| 10081 | * message.el (message-mode): Set local-abbrev-table. | ||
| 10082 | From Matt Armstrong <matt@lickey.com>. | ||
| 10083 | |||
| 10084 | * gnus-art.el (gnus-article-treat-unfold-headers): Don't remove | 10059 | * gnus-art.el (gnus-article-treat-unfold-headers): Don't remove |
| 10085 | too many spaces. | 10060 | too many spaces. |
| 10086 | 10061 | ||
| @@ -10088,8 +10063,13 @@ | |||
| 10088 | (rfc2047-decode-region): Don't unfold. Let | 10063 | (rfc2047-decode-region): Don't unfold. Let |
| 10089 | gnus-article-treat-unfold-headers do it. | 10064 | gnus-article-treat-unfold-headers do it. |
| 10090 | 10065 | ||
| 10066 | 2002-02-07 Matt Armstrong <matt@lickey.com>. | ||
| 10067 | |||
| 10068 | * message.el (message-mode): Set local-abbrev-table. | ||
| 10069 | |||
| 10070 | 2002-02-07 Jesper Harder <harder@ifa.au.dk> | ||
| 10071 | |||
| 10091 | * gnus-sum.el (gnus-dependencies-add-header): Fix typo. | 10072 | * gnus-sum.el (gnus-dependencies-add-header): Fix typo. |
| 10092 | From: Jesper Harder <harder@ifa.au.dk> | ||
| 10093 | 10073 | ||
| 10094 | 2002-02-06 Lars Magne Ingebrigtsen <larsi@gnus.org> | 10074 | 2002-02-06 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 10095 | 10075 | ||
| @@ -10116,16 +10096,18 @@ | |||
| 10116 | 10096 | ||
| 10117 | * nnweb.el (nnweb-google-parse-1): Use a correct format of date. | 10097 | * nnweb.el (nnweb-google-parse-1): Use a correct format of date. |
| 10118 | 10098 | ||
| 10119 | * gnus-agent.el (gnus-agent-summary-make-menu-bar): Fix typo. | ||
| 10120 | From Stefan Reich,Av(Br <xsteve@riic.at>. | ||
| 10121 | |||
| 10122 | * nnagent.el (nnagent-request-expire-articles): Don't delete | 10099 | * nnagent.el (nnagent-request-expire-articles): Don't delete |
| 10123 | files. | 10100 | files. |
| 10124 | 10101 | ||
| 10125 | 2002-02-05 ShengHuo ZHU <zsh@cs.rochester.edu> | 10102 | 2002-02-06 Stefan Reich,Av(Br <xsteve@riic.at> |
| 10103 | |||
| 10104 | * gnus-agent.el (gnus-agent-summary-make-menu-bar): Fix typo. | ||
| 10105 | |||
| 10106 | 2002-02-05 Sriram Karra <karra@cs.utah.edu> | ||
| 10126 | 10107 | ||
| 10127 | * message.el (message-gen-unsubscribed-mft): New function. | 10108 | * message.el (message-gen-unsubscribed-mft): New function. |
| 10128 | From Sriram Karra <karra@cs.utah.edu>. | 10109 | |
| 10110 | 2002-02-05 ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 10129 | 10111 | ||
| 10130 | * gnus.el (gnus-article-unpropagated-mark-lists): Backslash the | 10112 | * gnus.el (gnus-article-unpropagated-mark-lists): Backslash the |
| 10131 | open parenthesis. | 10113 | open parenthesis. |
| @@ -10167,17 +10149,17 @@ | |||
| 10167 | * gnus-art.el (gnus-treatment-function-alist): Move hide-citation, | 10149 | * gnus-art.el (gnus-treatment-function-alist): Move hide-citation, |
| 10168 | highlight-citation after emphasize. | 10150 | highlight-citation after emphasize. |
| 10169 | 10151 | ||
| 10170 | 2002-02-04 Simon Josefsson <jas@extundo.com> | 10152 | 2002-02-04 David Edmondson <dme@sun.com> |
| 10171 | 10153 | ||
| 10172 | * nnfolder.el (nnfolder-open-marks): | 10154 | * nnfolder.el (nnfolder-open-marks): Message when done. |
| 10173 | 10155 | ||
| 10174 | * nnml.el (nnml-open-marks): Message when done. From David | 10156 | * nnml.el (nnml-open-marks): Ditto. |
| 10175 | Edmondson <dme@sun.com>. | ||
| 10176 | 10157 | ||
| 10177 | 2002-02-03 ShengHuo ZHU <zsh@cs.rochester.edu> | 10158 | 2002-02-03 Steinar Bang <sb@dod.no> |
| 10178 | 10159 | ||
| 10179 | * imap.el (imap-anonymous-auth): Fix typo. | 10160 | * imap.el (imap-anonymous-auth): Fix typo. |
| 10180 | From: Steinar Bang <sb@dod.no> | 10161 | |
| 10162 | 2002-02-03 ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 10181 | 10163 | ||
| 10182 | * gnus-cache.el (gnus-cache-braid-nov): Use set-buffer instead of | 10164 | * gnus-cache.el (gnus-cache-braid-nov): Use set-buffer instead of |
| 10183 | save-excursion. | 10165 | save-excursion. |
| @@ -10231,14 +10213,15 @@ | |||
| 10231 | 10213 | ||
| 10232 | * gnus.el (gnus-agent): Make it customizable. | 10214 | * gnus.el (gnus-agent): Make it customizable. |
| 10233 | 10215 | ||
| 10234 | * gnus-dired.el: New file. | ||
| 10235 | From Benjamin Rutt <brutt@bloomington.in.us> | ||
| 10236 | |||
| 10237 | * gnus-cache.el (gnus-cache-articles-in-group): Remove from active | 10216 | * gnus-cache.el (gnus-cache-articles-in-group): Remove from active |
| 10238 | if no article. | 10217 | if no article. |
| 10239 | (gnus-cache-possibly-remove-article): Ditto. | 10218 | (gnus-cache-possibly-remove-article): Ditto. |
| 10240 | (gnus-cache-possibly-enter-article): Use gnus-add-to-sorted-list. | 10219 | (gnus-cache-possibly-enter-article): Use gnus-add-to-sorted-list. |
| 10241 | 10220 | ||
| 10221 | 2002-02-02 Benjamin Rutt <brutt@bloomington.in.us> | ||
| 10222 | |||
| 10223 | * gnus-dired.el: New file. | ||
| 10224 | |||
| 10242 | 2002-02-01 Simon Josefsson <jas@extundo.com> | 10225 | 2002-02-01 Simon Josefsson <jas@extundo.com> |
| 10243 | 10226 | ||
| 10244 | * gnus-int.el (gnus-request-accept-article): Use gnus-get-function. | 10227 | * gnus-int.el (gnus-request-accept-article): Use gnus-get-function. |
| @@ -10739,7 +10722,7 @@ | |||
| 10739 | 10722 | ||
| 10740 | * gnus.el (gnus-version-number): Bump version number. | 10723 | * gnus.el (gnus-version-number): Bump version number. |
| 10741 | 10724 | ||
| 10742 | 2002-01-20 05:33:30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 10725 | 2002-01-20 05:33:30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 10743 | 10726 | ||
| 10744 | * gnus.el: Oort Gnus v0.05 is released. | 10727 | * gnus.el: Oort Gnus v0.05 is released. |
| 10745 | 10728 | ||
| @@ -10973,8 +10956,9 @@ | |||
| 10973 | * message.el (message-newline-and-reformat): Use `newline' instead | 10956 | * message.el (message-newline-and-reformat): Use `newline' instead |
| 10974 | of inserting \n, so that the newline is marked as hard. | 10957 | of inserting \n, so that the newline is marked as hard. |
| 10975 | 10958 | ||
| 10959 | 2002-01-13 Jesper Harder <harder@ifa.au.dk> | ||
| 10960 | |||
| 10976 | * gnus-spec.el (gnus-pad-form): Don't evaluate EL multiple times. | 10961 | * gnus-spec.el (gnus-pad-form): Don't evaluate EL multiple times. |
| 10977 | From Jesper Harder <harder@ifa.au.dk>. | ||
| 10978 | 10962 | ||
| 10979 | 2002-01-12 ShengHuo ZHU <zsh@cs.rochester.edu> | 10963 | 2002-01-12 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 10980 | 10964 | ||
| @@ -11198,11 +11182,13 @@ | |||
| 11198 | * gnus-group.el (gnus-group-read-ephemeral-group): Restore the old | 11182 | * gnus-group.el (gnus-group-read-ephemeral-group): Restore the old |
| 11199 | behavior of quit-config. | 11183 | behavior of quit-config. |
| 11200 | 11184 | ||
| 11185 | 2002-01-08 Bj,Ax(Brn Mork <bmork@dod.no> (tiny change) | ||
| 11186 | |||
| 11201 | * message.el (message-make-from): Don't quote fullname. | 11187 | * message.el (message-make-from): Don't quote fullname. |
| 11202 | From: Bj,Ax(Brn Mork <bmork@dod.no> | 11188 | |
| 11189 | 2002-01-08 Andre Srinivasan <andre@slamdunknetworks.com> (tiny change) | ||
| 11203 | 11190 | ||
| 11204 | * gnus-group.el (gnus-group-suspend): Don't kill message buffers. | 11191 | * gnus-group.el (gnus-group-suspend): Don't kill message buffers. |
| 11205 | From: <andre@slamdunknetworks.com> | ||
| 11206 | 11192 | ||
| 11207 | 2002-01-07 ShengHuo ZHU <zsh@cs.rochester.edu> | 11193 | 2002-01-07 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 11208 | 11194 | ||
| @@ -11485,10 +11471,10 @@ | |||
| 11485 | 11471 | ||
| 11486 | * gnus-agent.el (gnus-agent-fetch-session): Run hook. | 11472 | * gnus-agent.el (gnus-agent-fetch-session): Run hook. |
| 11487 | 11473 | ||
| 11488 | 2002-01-03 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 11474 | 2002-01-03 Dave Love <fx@gnu.org> |
| 11489 | 11475 | ||
| 11490 | * gnus-start.el (gnus-read-init-file): Don't force coding system | 11476 | * gnus-start.el (gnus-read-init-file): Don't force coding system |
| 11491 | for ~/.gnus. From Dave Love <fx@gnu.org>. | 11477 | for ~/.gnus. |
| 11492 | 11478 | ||
| 11493 | 2002-01-03 ShengHuo ZHU <zsh@cs.rochester.edu> | 11479 | 2002-01-03 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 11494 | 11480 | ||
| @@ -11754,7 +11740,7 @@ | |||
| 11754 | (message-fix-before-sending): Highlight invisible text and place | 11740 | (message-fix-before-sending): Highlight invisible text and place |
| 11755 | point there. | 11741 | point there. |
| 11756 | 11742 | ||
| 11757 | 2002-01-01 02:32:53 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 11743 | 2002-01-01 02:32:53 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 11758 | 11744 | ||
| 11759 | * gnus.el: Oort Gnus v0.04 is released. | 11745 | * gnus.el: Oort Gnus v0.04 is released. |
| 11760 | 11746 | ||
| @@ -12093,11 +12079,10 @@ | |||
| 12093 | (gnus-update-marks): Use `gnus-range-add' on a uncompressed list | 12079 | (gnus-update-marks): Use `gnus-range-add' on a uncompressed list |
| 12094 | instead, it seems to result in shorter ranges. | 12080 | instead, it seems to result in shorter ranges. |
| 12095 | 12081 | ||
| 12096 | 2001-12-26 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12082 | 2001-12-26 11:00:00 Jesper Harder <harder@ifa.au.dk> |
| 12097 | 12083 | ||
| 12098 | * mm-util.el (mm-iso-8859-x-to-15-region): Use | 12084 | * mm-util.el (mm-iso-8859-x-to-15-region): Use |
| 12099 | insert-before-markers. | 12085 | insert-before-markers. |
| 12100 | From Jesper Harder <harder@ifa.au.dk> | ||
| 12101 | 12086 | ||
| 12102 | 2001-12-26 Paul Jarc <prj@po.cwru.edu> | 12087 | 2001-12-26 Paul Jarc <prj@po.cwru.edu> |
| 12103 | 12088 | ||
| @@ -12126,12 +12111,11 @@ | |||
| 12126 | (nnmaildir-version): Indicate that nnmaildir is now a standard | 12111 | (nnmaildir-version): Indicate that nnmaildir is now a standard |
| 12127 | part of Gnus, not separately released. | 12112 | part of Gnus, not separately released. |
| 12128 | 12113 | ||
| 12129 | 2001-12-21 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12114 | 2001-12-21 08:00:00 Pavel Jan,Am(Bk <Pavel@Janik.cz> |
| 12130 | 12115 | ||
| 12131 | * gnus-art.el, gnus-picon.el, gnus-sieve.el, gnus-sum.el: | 12116 | * gnus-art.el, gnus-picon.el, gnus-sieve.el, gnus-sum.el: |
| 12132 | * gnus-xmas.el, imap.el, mailcap.el, mm-util.el, nnfolder.el: | 12117 | * gnus-xmas.el, imap.el, mailcap.el, mm-util.el, nnfolder.el: |
| 12133 | * nnheader.el, nnmail.el: Nil/NIL vs. nil. | 12118 | * nnheader.el, nnmail.el: Nil/NIL vs. nil. |
| 12134 | From Pavel Jan,Am(Bk <Pavel@Janik.cz> | ||
| 12135 | 12119 | ||
| 12136 | 2001-12-20 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12120 | 2001-12-20 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 12137 | 12121 | ||
| @@ -12144,10 +12128,9 @@ | |||
| 12144 | (nnimap-close-group): Don't quote KEYLIST items. Suggested by | 12128 | (nnimap-close-group): Don't quote KEYLIST items. Suggested by |
| 12145 | Brian P Templeton <bpt@tunes.org>. | 12129 | Brian P Templeton <bpt@tunes.org>. |
| 12146 | 12130 | ||
| 12147 | 2001-12-19 17:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12131 | 2001-12-19 17:00:00 Paul Jarc <prj@po.cwru.edu> |
| 12148 | 12132 | ||
| 12149 | * nnmaildir.el: New file. | 12133 | * nnmaildir.el: New file. |
| 12150 | From Paul Jarc <prj@po.cwru.edu>. | ||
| 12151 | 12134 | ||
| 12152 | 2001-12-19 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12135 | 2001-12-19 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 12153 | 12136 | ||
| @@ -12171,8 +12154,7 @@ | |||
| 12171 | 12154 | ||
| 12172 | * gnus-win.el (gnus-get-buffer-window): Use gnus-delete-if. | 12155 | * gnus-win.el (gnus-get-buffer-window): Use gnus-delete-if. |
| 12173 | 12156 | ||
| 12174 | 2001-12-18 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12157 | 2001-12-18 11:00:00 Harald Meland <Harald.Meland@usit.uio.no> |
| 12175 | From Harald Meland <Harald.Meland@usit.uio.no> | ||
| 12176 | 12158 | ||
| 12177 | * gnus-win.el (gnus-get-buffer-window): New function. | 12159 | * gnus-win.el (gnus-get-buffer-window): New function. |
| 12178 | (gnus-all-windows-visible-p): Use it. | 12160 | (gnus-all-windows-visible-p): Use it. |
| @@ -12247,11 +12229,10 @@ | |||
| 12247 | subscribe-level | 12229 | subscribe-level |
| 12248 | * gnus-topic.el (gnus-subscribe-topics): use it. | 12230 | * gnus-topic.el (gnus-subscribe-topics): use it. |
| 12249 | 12231 | ||
| 12250 | 2001-12-13 22:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12232 | 2001-12-13 22:00:00 Sean Neakums <sneakums@zork.net> (tiny change) |
| 12251 | 12233 | ||
| 12252 | * gnus-msg.el (gnus-summary-mail-forward): Forward all marked | 12234 | * gnus-msg.el (gnus-summary-mail-forward): Forward all marked |
| 12253 | messages. (A small patch with indentation) | 12235 | messages. |
| 12254 | From Sean Neakums <sneakums@zork.net>. | ||
| 12255 | 12236 | ||
| 12256 | * gnus-uu.el (gnus-uu-grab-articles): Set gnus-current-article to | 12237 | * gnus-uu.el (gnus-uu-grab-articles): Set gnus-current-article to |
| 12257 | nil after shooting down the gnus-original-article-buffer. | 12238 | nil after shooting down the gnus-original-article-buffer. |
| @@ -12326,12 +12307,11 @@ | |||
| 12326 | 12307 | ||
| 12327 | * mml.el (mime-to-mml): Remove Content-Disposition too. | 12308 | * mml.el (mime-to-mml): Remove Content-Disposition too. |
| 12328 | 12309 | ||
| 12329 | 2001-12-09 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12310 | 2001-12-09 08:00:00 TSUCHIYA Masatoshi <tsuchiya@namazu.org> |
| 12330 | 12311 | ||
| 12331 | * gnus-sum.el (gnus-summary-buffer-name): Decode group name. | 12312 | * gnus-sum.el (gnus-summary-buffer-name): Decode group name. |
| 12332 | * gnus-group.el (gnus-group-name-decode): Decode unibyte | 12313 | * gnus-group.el (gnus-group-name-decode): Decode unibyte |
| 12333 | strings only. | 12314 | strings only. |
| 12334 | From TSUCHIYA Masatoshi <tsuchiya@namazu.org> | ||
| 12335 | 12315 | ||
| 12336 | 2001-12-08 Nevin Kapur <nevin@jhu.edu> | 12316 | 2001-12-08 Nevin Kapur <nevin@jhu.edu> |
| 12337 | 12317 | ||
| @@ -12432,15 +12412,14 @@ | |||
| 12432 | the beginning of lines. | 12412 | the beginning of lines. |
| 12433 | (gnus-complex-form-to-spec): Ditto. | 12413 | (gnus-complex-form-to-spec): Ditto. |
| 12434 | 12414 | ||
| 12435 | 2001-12-01 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12415 | 2001-12-01 08:00:00 Paul Jarc <prj@po.cwru.edu> |
| 12436 | 12416 | ||
| 12437 | * message.el (message-make-mft): Fix the m-s-a-file regexp. | 12417 | * message.el (message-make-mft): Fix the m-s-a-file regexp. |
| 12438 | From Paul Jarc <prj@po.cwru.edu>. | ||
| 12439 | 12418 | ||
| 12440 | 2001-11-30 21:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12419 | 2001-11-30 21:00:00 Paul Jarc <prj@po.cwru.edu> |
| 12441 | 12420 | ||
| 12442 | * message.el: New variable message-subscribed-address-file; | 12421 | * message.el: New variable message-subscribed-address-file; |
| 12443 | use it in message-make-mft. From Paul Jarc <prj@po.cwru.edu>. | 12422 | use it in message-make-mft. |
| 12444 | 12423 | ||
| 12445 | 2001-11-30 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12424 | 2001-11-30 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 12446 | 12425 | ||
| @@ -12573,11 +12552,11 @@ | |||
| 12573 | 12552 | ||
| 12574 | * message.el (sha1): eval-and-compile. | 12553 | * message.el (sha1): eval-and-compile. |
| 12575 | 12554 | ||
| 12576 | 2001-11-20 Simon Josefsson <jas@extundo.com> | 12555 | 2001-11-20 Paul Jarc <prj@po.cwru.edu> |
| 12577 | 12556 | ||
| 12578 | * message.el (message-allow-no-recipients): New variable. | 12557 | * message.el (message-allow-no-recipients): New variable. |
| 12579 | (message-send): Use it, customize the prompting when posting to | 12558 | (message-send): Use it, customize the prompting when posting to |
| 12580 | Gcc/Fcc alone. From prj@po.cwru.edu (Paul Jarc). | 12559 | Gcc/Fcc alone. |
| 12581 | 12560 | ||
| 12582 | 2001-11-20 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12561 | 2001-11-20 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 12583 | 12562 | ||
| @@ -12697,14 +12676,17 @@ | |||
| 12697 | 12676 | ||
| 12698 | * mml2015.el: Mention RFC 3156. | 12677 | * mml2015.el: Mention RFC 3156. |
| 12699 | 12678 | ||
| 12700 | * mml1991.el: New file. From Sascha L,A|(Bdecke <sascha@meta-x.de>. | 12679 | 2001-11-12 Sascha L,A|(Bdecke <sascha@meta-x.de> |
| 12680 | |||
| 12681 | * mml1991.el: New file. | ||
| 12701 | 12682 | ||
| 12702 | 2001-11-12 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 12683 | 2001-11-12 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 12703 | 12684 | ||
| 12704 | * gnus-start.el (gnus-auto-subscribed-groups): Use ^nnml. | 12685 | * gnus-start.el (gnus-auto-subscribed-groups): Use ^nnml. |
| 12705 | 12686 | ||
| 12687 | 2001-11-12 Michael Cook <Michael.Cook@cisco.com> | ||
| 12688 | |||
| 12706 | * gnus-sum.el (gnus-summary-move-article): Use number-to-string. | 12689 | * gnus-sum.el (gnus-summary-move-article): Use number-to-string. |
| 12707 | From <Michael.Cook@cisco.com> | ||
| 12708 | 12690 | ||
| 12709 | 2001-11-11 Simon Josefsson <jas@extundo.com> | 12691 | 2001-11-11 Simon Josefsson <jas@extundo.com> |
| 12710 | 12692 | ||
| @@ -12713,10 +12695,9 @@ | |||
| 12713 | canlock, no need to require two different hash algs). Suggested | 12695 | canlock, no need to require two different hash algs). Suggested |
| 12714 | by Ferenc Wagner <wferi@bolyai1.elte.hu>. | 12696 | by Ferenc Wagner <wferi@bolyai1.elte.hu>. |
| 12715 | 12697 | ||
| 12716 | 2001-11-09 Simon Josefsson <jas@extundo.com> | 12698 | 2001-11-09 Pavel Jan,Am(Bk <Pavel@Janik.cz> |
| 12717 | 12699 | ||
| 12718 | * gnus.el (gnus-local-domain): Fix doc. From Pavel Jan,Am(Bk | 12700 | * gnus.el (gnus-local-domain): Fix doc. |
| 12719 | <Pavel@Janik.cz>. | ||
| 12720 | 12701 | ||
| 12721 | 2001-11-09 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 12702 | 2001-11-09 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> |
| 12722 | 12703 | ||
| @@ -12958,7 +12939,7 @@ | |||
| 12958 | mm-with-unibyte-current-buffer-mule4): Use them. | 12939 | mm-with-unibyte-current-buffer-mule4): Use them. |
| 12959 | (mm-find-mime-charset-region): Treat iso-2022-jp. | 12940 | (mm-find-mime-charset-region): Treat iso-2022-jp. |
| 12960 | 12941 | ||
| 12961 | From Dave Love <fx@gnu.org>: | 12942 | 2001-10-30 Dave Love <fx@gnu.org> |
| 12962 | 12943 | ||
| 12963 | * mm-util.el (mm-mime-mule-charset-alist): Make it correct by | 12944 | * mm-util.el (mm-mime-mule-charset-alist): Make it correct by |
| 12964 | construction. | 12945 | construction. |
| @@ -13031,10 +13012,10 @@ | |||
| 13031 | 13012 | ||
| 13032 | * gnus-msg.el (gnus-setup-message): Call post-command-hook. | 13013 | * gnus-msg.el (gnus-setup-message): Call post-command-hook. |
| 13033 | 13014 | ||
| 13034 | 2001-10-29 Simon Josefsson <jas@extundo.com> | 13015 | 2001-10-29 Jesper Harder <harder@myrealbox.com> |
| 13035 | 13016 | ||
| 13036 | * mml.el (mml-preview): Bind message-this-is-news if it is | 13017 | * mml.el (mml-preview): Bind message-this-is-news if it is |
| 13037 | news. From Jesper Harder <harder@myrealbox.com>. | 13018 | news. |
| 13038 | 13019 | ||
| 13039 | 2001-10-28 Simon Josefsson <jas@extundo.com> | 13020 | 2001-10-28 Simon Josefsson <jas@extundo.com> |
| 13040 | 13021 | ||
| @@ -13050,8 +13031,9 @@ | |||
| 13050 | * message.el (message-indent-citation): Don't add trailing | 13031 | * message.el (message-indent-citation): Don't add trailing |
| 13051 | whitespace when citing text. | 13032 | whitespace when citing text. |
| 13052 | 13033 | ||
| 13053 | * gnus.el (gnus-group-faq-directory): Fix. From Jesper Harder | 13034 | 2001-10-27 Jesper Harder <harder@myrealbox.com> |
| 13054 | <harder@ifa.au.dk>. | 13035 | |
| 13036 | * gnus.el (gnus-group-faq-directory): Fix. | ||
| 13055 | 13037 | ||
| 13056 | 2001-10-26 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13038 | 2001-10-26 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 13057 | 13039 | ||
| @@ -13128,22 +13110,23 @@ | |||
| 13128 | * message.el (message-do-auto-fill): Avoid calling | 13110 | * message.el (message-do-auto-fill): Avoid calling |
| 13129 | 'rfc822-goto-eoh'. | 13111 | 'rfc822-goto-eoh'. |
| 13130 | 13112 | ||
| 13131 | 2001-10-20 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 13113 | 2001-10-20 Paul Jarc <prj@po.cwru.edu> |
| 13132 | From Paul Jarc <prj@po.cwru.edu>. | ||
| 13133 | 13114 | ||
| 13134 | * message.el (message-get-reply-headers): Restructure the logic | 13115 | * message.el (message-get-reply-headers): Restructure the logic |
| 13135 | and add comments. From Paul Jarc <prj@po.cwru.edu>. | 13116 | and add comments. |
| 13136 | 13117 | ||
| 13137 | 2001-10-20 Simon Josefsson <jas@extundo.com> | 13118 | 2001-10-20 Simon Josefsson <jas@extundo.com> |
| 13138 | 13119 | ||
| 13139 | * message.el (message-cancel-news): Support cancel-locks. | 13120 | * message.el (message-cancel-news): Support cancel-locks. |
| 13140 | Suggested by Per Abrahamsson. | 13121 | Suggested by Per Abrahamsson. |
| 13141 | 13122 | ||
| 13142 | * nnml.el (nnml-marks-changed-p): Use `equal' when comparing | ||
| 13143 | conses. From David Z Maze <dmaze@MIT.EDU>. | ||
| 13144 | |||
| 13145 | * nnfolder.el (nnfolder-marks-changed-p): Ditto. | 13123 | * nnfolder.el (nnfolder-marks-changed-p): Ditto. |
| 13146 | 13124 | ||
| 13125 | 2001-10-20 David Z Maze <dmaze@MIT.EDU> | ||
| 13126 | |||
| 13127 | * nnml.el (nnml-marks-changed-p): Use `equal' when comparing | ||
| 13128 | conses. | ||
| 13129 | |||
| 13147 | 2001-10-19 Per Abrahamsen <abraham@dina.kvl.dk> | 13130 | 2001-10-19 Per Abrahamsen <abraham@dina.kvl.dk> |
| 13148 | 13131 | ||
| 13149 | * mm-decode.el (mm-default-directory): Fix customize type. | 13132 | * mm-decode.el (mm-default-directory): Fix customize type. |
| @@ -13173,8 +13156,7 @@ | |||
| 13173 | * gnus-sum.el (gnus-group-make-articles-read): Call g-r-set-mark | 13156 | * gnus-sum.el (gnus-group-make-articles-read): Call g-r-set-mark |
| 13174 | when undoing. | 13157 | when undoing. |
| 13175 | 13158 | ||
| 13176 | 2001-10-18 Simon Josefsson <jas@extundo.com> | 13159 | 2001-10-18 Frank Schmitt <usereplyto@Frank-Schmitt.net> |
| 13177 | From Frank Schmitt <usereplyto@Frank-Schmitt.net> | ||
| 13178 | 13160 | ||
| 13179 | * gnus-sum.el (gnus-summary-limit-to-display-predicate): Fix typo. | 13161 | * gnus-sum.el (gnus-summary-limit-to-display-predicate): Fix typo. |
| 13180 | (gnus-summary-make-menu-bar): Ditto. | 13162 | (gnus-summary-make-menu-bar): Ditto. |
| @@ -13184,11 +13166,10 @@ | |||
| 13184 | * nnimap.el (nnimap-expiry-target): Make sure it is back to the | 13166 | * nnimap.el (nnimap-expiry-target): Make sure it is back to the |
| 13185 | server. Suggested by ShengHuo ZHU <zsh@cs.rochester.edu>. | 13167 | server. Suggested by ShengHuo ZHU <zsh@cs.rochester.edu>. |
| 13186 | 13168 | ||
| 13187 | 2001-10-17 17:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13169 | 2001-10-17 17:00:00 Frank Schmitt <usenet@Frank-Schmitt.net> |
| 13188 | 13170 | ||
| 13189 | * gnus-sum.el (gnus-summary-line-format-alist): user-date entry. | 13171 | * gnus-sum.el (gnus-summary-line-format-alist): user-date entry. |
| 13190 | * gnus-util.el (gnus-user-date): New function. | 13172 | * gnus-util.el (gnus-user-date): New function. |
| 13191 | From Frank Schmitt <usenet@Frank-Schmitt.net>. | ||
| 13192 | 13173 | ||
| 13193 | 2001-10-17 Per Abrahamsen <abraham@dina.kvl.dk> | 13174 | 2001-10-17 Per Abrahamsen <abraham@dina.kvl.dk> |
| 13194 | 13175 | ||
| @@ -13221,8 +13202,7 @@ | |||
| 13221 | * gnus-msg.el (gnus-post-method): Changed two instances of | 13202 | * gnus-msg.el (gnus-post-method): Changed two instances of |
| 13222 | `active' to `current' and one `null' to `not'. | 13203 | `active' to `current' and one `null' to `not'. |
| 13223 | 13204 | ||
| 13224 | 2001-10-16 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 13205 | 2001-10-16 Katsumi Yamaoka <yamaoka@jpl.org> |
| 13225 | From Katsumi Yamaoka <yamaoka@jpl.org>. | ||
| 13226 | 13206 | ||
| 13227 | * message.el (message-setup-fill-variables): Use | 13207 | * message.el (message-setup-fill-variables): Use |
| 13228 | `normal-auto-fill-function' instead of `auto-fill-function'. | 13208 | `normal-auto-fill-function' instead of `auto-fill-function'. |
| @@ -13278,10 +13258,9 @@ | |||
| 13278 | * gnus-art.el (article-emphasize): Set `g-a-wash-types' after | 13258 | * gnus-art.el (article-emphasize): Set `g-a-wash-types' after |
| 13279 | doing stuff that clears it. | 13259 | doing stuff that clears it. |
| 13280 | 13260 | ||
| 13281 | 2001-10-12 Simon Josefsson <jas@extundo.com> | 13261 | 2001-10-12 Eric Marsden <emarsden@laas.fr> |
| 13282 | 13262 | ||
| 13283 | * gnus-cache.el (gnus-summary-limit-include-cached): Rewrite. | 13263 | * gnus-cache.el (gnus-summary-limit-include-cached): Rewrite. |
| 13284 | From Eric Marsden <emarsden@laas.fr>. | ||
| 13285 | 13264 | ||
| 13286 | 2001-10-12 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13265 | 2001-10-12 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 13287 | 13266 | ||
| @@ -13483,20 +13462,17 @@ | |||
| 13483 | (gnus-topic-catchup-articles): New function. Suggested by Robin | 13462 | (gnus-topic-catchup-articles): New function. Suggested by Robin |
| 13484 | S. Socha <robin-dated-1001857693.185e29@socha.net>. | 13463 | S. Socha <robin-dated-1001857693.185e29@socha.net>. |
| 13485 | 13464 | ||
| 13486 | 2001-09-27 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13465 | 2001-09-27 11:00:00 Gerd M,Av(Bllmann <gerd@gnu.org>. |
| 13487 | From Gerd M,Av(Bllmann <gerd@gnu.org>. | ||
| 13488 | 13466 | ||
| 13489 | * gnus-ems.el (gnus-article-display-xface): Insert xface after | 13467 | * gnus-ems.el (gnus-article-display-xface): Insert xface after |
| 13490 | previous ones. | 13468 | previous ones. |
| 13491 | 13469 | ||
| 13492 | 2001-09-27 07:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13470 | 2001-09-27 07:00:00 Daiki Ueno <ueno@unixuser.org> |
| 13493 | From Daiki Ueno <ueno@unixuser.org> | ||
| 13494 | 13471 | ||
| 13495 | * gnus-sum.el (gnus-summary-show-article): The arglist of | 13472 | * gnus-sum.el (gnus-summary-show-article): The arglist of |
| 13496 | detect-coding-region is incompatible. | 13473 | detect-coding-region is incompatible. |
| 13497 | 13474 | ||
| 13498 | 2001-09-26 18:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13475 | 2001-09-26 18:00:00 Katsuhiro Hermit Endo <hermit@koka-in.org> |
| 13499 | From Katsuhiro Hermit Endo <hermit@koka-in.org> | ||
| 13500 | 13476 | ||
| 13501 | * gnus-group.el (gnus-group-delete-group): Typo. | 13477 | * gnus-group.el (gnus-group-delete-group): Typo. |
| 13502 | 13478 | ||
| @@ -13579,10 +13555,9 @@ | |||
| 13579 | * gnus-srvr.el (gnus-server-insert-server-line): Don't let an | 13555 | * gnus-srvr.el (gnus-server-insert-server-line): Don't let an |
| 13580 | error querying a backend abort the whole process. | 13556 | error querying a backend abort the whole process. |
| 13581 | 13557 | ||
| 13582 | 2001-09-17 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13558 | 2001-09-17 08:00:00 Gerd M,Av(Bllmann <gerd@gnu.org> |
| 13583 | 13559 | ||
| 13584 | * gnus-srvr.el (gnus-server-mode): Fix bogus fontification. | 13560 | * gnus-srvr.el (gnus-server-mode): Fix bogus fontification. |
| 13585 | From Gerd M,Av(Bllmann <gerd@gnu.org>. | ||
| 13586 | 13561 | ||
| 13587 | 2001-09-17 Didier Verna <didier@xemacs.org> | 13562 | 2001-09-17 Didier Verna <didier@xemacs.org> |
| 13588 | 13563 | ||
| @@ -13654,7 +13629,7 @@ | |||
| 13654 | * gnus-diary.el (message-mode-map): bind the above to `C-c D c'. | 13629 | * gnus-diary.el (message-mode-map): bind the above to `C-c D c'. |
| 13655 | * gnus-diary.el (gnus-article-edit-mode-map): ditto. | 13630 | * gnus-diary.el (gnus-article-edit-mode-map): ditto. |
| 13656 | 13631 | ||
| 13657 | 2001-09-10 TSUCHIYA Masatoshi <tsuchiya@namazu.org> | 13632 | 2001-09-10 TSUCHIYA Masatoshi <tsuchiya@namazu.org> |
| 13658 | 13633 | ||
| 13659 | * gnus-sum.el (gnus-select-newsgroup): Make | 13634 | * gnus-sum.el (gnus-select-newsgroup): Make |
| 13660 | `gnus-current-select-method' buffer-local. | 13635 | `gnus-current-select-method' buffer-local. |
| @@ -13662,8 +13637,7 @@ | |||
| 13662 | * gnus-art.el (gnus-request-article-this-buffer): Refer | 13637 | * gnus-art.el (gnus-request-article-this-buffer): Refer |
| 13663 | `gnus-current-select-method' in the current summary buffer. | 13638 | `gnus-current-select-method' in the current summary buffer. |
| 13664 | 13639 | ||
| 13665 | 2001-09-10 Simon Josefsson <jas@extundo.com> | 13640 | 2001-09-10 Daniel Pittman <daniel@rimspace.net> |
| 13666 | From Daniel Pittman <daniel@rimspace.net> | ||
| 13667 | 13641 | ||
| 13668 | * gnus-spec.el (gnus-correct-pad-form): Fix. | 13642 | * gnus-spec.el (gnus-correct-pad-form): Fix. |
| 13669 | 13643 | ||
| @@ -13714,8 +13688,7 @@ | |||
| 13714 | * gnus-agent.el (gnus-agent-fetch-group): If online, actually | 13688 | * gnus-agent.el (gnus-agent-fetch-group): If online, actually |
| 13715 | fetch group. | 13689 | fetch group. |
| 13716 | 13690 | ||
| 13717 | 2001-09-08 Simon Josefsson <jas@extundo.com> | 13691 | 2001-09-08 Daniel Pittman <daniel@rimspace.net> |
| 13718 | From Daniel Pittman <daniel@rimspace.net> | ||
| 13719 | 13692 | ||
| 13720 | * gnus-spec.el (gnus-correct-pad-form): New function. | 13693 | * gnus-spec.el (gnus-correct-pad-form): New function. |
| 13721 | (gnus-parse-simple-format): Use it. | 13694 | (gnus-parse-simple-format): Use it. |
| @@ -13727,7 +13700,7 @@ | |||
| 13727 | Putnam <reader@newsguy.com>. | 13700 | Putnam <reader@newsguy.com>. |
| 13728 | (gnus-group-sort-selected-groups): Touch dribble file. | 13701 | (gnus-group-sort-selected-groups): Touch dribble file. |
| 13729 | 13702 | ||
| 13730 | 2001-09-07 Raja R Harinath <harinath@cs.umn.edu> | 13703 | 2001-09-07 Raja R Harinath <harinath@cs.umn.edu> |
| 13731 | 13704 | ||
| 13732 | * nnml.el (nnml-filenames-are-evil): New variable. | 13705 | * nnml.el (nnml-filenames-are-evil): New variable. |
| 13733 | (nnml-article-to-file-alist): Rename to ... | 13706 | (nnml-article-to-file-alist): Rename to ... |
| @@ -13749,10 +13722,9 @@ | |||
| 13749 | * gnus-sum.el (gnus-summary-toggle-smiley): New function. Toggles | 13722 | * gnus-sum.el (gnus-summary-toggle-smiley): New function. Toggles |
| 13750 | display of graphical smilies. | 13723 | display of graphical smilies. |
| 13751 | 13724 | ||
| 13752 | 2001-09-07 02:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13725 | 2001-09-07 02:00:00 Bill White <billw@wolfram.com> |
| 13753 | 13726 | ||
| 13754 | * gnus-start.el (gnus-setup-news): A typo. | 13727 | * gnus-start.el (gnus-setup-news): A typo. |
| 13755 | From Bill White <billw@wolfram.com>. | ||
| 13756 | 13728 | ||
| 13757 | 2001-09-06 Simon Josefsson <jas@extundo.com> | 13729 | 2001-09-06 Simon Josefsson <jas@extundo.com> |
| 13758 | 13730 | ||
| @@ -13863,8 +13835,7 @@ | |||
| 13863 | * nnfolder.el (nnfolder-save-marks): Don't create directory named | 13835 | * nnfolder.el (nnfolder-save-marks): Don't create directory named |
| 13864 | after group in ~/. | 13836 | after group in ~/. |
| 13865 | 13837 | ||
| 13866 | 2001-08-25 Simon Josefsson <jas@extundo.com> | 13838 | 2001-08-25 Andreas Jaeger <aj@suse.de> |
| 13867 | From Andreas Jaeger <aj@suse.de> | ||
| 13868 | 13839 | ||
| 13869 | * nnfolder.el (nnfolder-open-marks): Fix typo. | 13840 | * nnfolder.el (nnfolder-open-marks): Fix typo. |
| 13870 | * nnml.el (nnml-open-marks): Likewise. | 13841 | * nnml.el (nnml-open-marks): Likewise. |
| @@ -13918,11 +13889,12 @@ | |||
| 13918 | 13889 | ||
| 13919 | * mml.el (mml-generate-mime-1): Force as multibyte string. | 13890 | * mml.el (mml-generate-mime-1): Force as multibyte string. |
| 13920 | 13891 | ||
| 13921 | 2001-08-24 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13892 | 2001-08-24 12:00:00 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de> |
| 13922 | 13893 | ||
| 13923 | * gnus-sum.el (gnus-summary-insert-line) | 13894 | * gnus-sum.el (gnus-summary-insert-line) |
| 13924 | (gnus-summary-prepare-threads): gnus-tmp-lines should be a string. | 13895 | (gnus-summary-prepare-threads): gnus-tmp-lines should be a string. |
| 13925 | From Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de> | 13896 | |
| 13897 | 2001-08-24 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 13926 | 13898 | ||
| 13927 | * gnus-spec.el (gnus-correct-substring): Take optional END. | 13899 | * gnus-spec.el (gnus-correct-substring): Take optional END. |
| 13928 | 13900 | ||
| @@ -13944,8 +13916,7 @@ | |||
| 13944 | * gnus-util.el (gnus-create-info-command): Return an interactive | 13916 | * gnus-util.el (gnus-create-info-command): Return an interactive |
| 13945 | function. | 13917 | function. |
| 13946 | 13918 | ||
| 13947 | 2001-08-23 19:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 13919 | 2001-08-23 19:00:00 Katsumi Yamaoka <yamaoka@jpl.org> |
| 13948 | From Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 13949 | 13920 | ||
| 13950 | * gnus-spec.el (gnus-parse-complex-format): Use equal. | 13921 | * gnus-spec.el (gnus-parse-complex-format): Use equal. |
| 13951 | 13922 | ||
| @@ -14099,8 +14070,7 @@ | |||
| 14099 | 14070 | ||
| 14100 | * gnus.el (gnus-server-visual): Add defgroup. | 14071 | * gnus.el (gnus-server-visual): Add defgroup. |
| 14101 | 14072 | ||
| 14102 | 2001-08-19 Simon Josefsson <jas@extundo.com> | 14073 | 2001-08-19 Joe Casadonte <jcasadonte@northbound-train.com> |
| 14103 | From Joe Casadonte <jcasadonte@northbound-train.com> | ||
| 14104 | 14074 | ||
| 14105 | * gnus-srvr.el (gnus-server-opened-face, gnus-server-closed-face, | 14075 | * gnus-srvr.el (gnus-server-opened-face, gnus-server-closed-face, |
| 14106 | gnus-server-denied-face): New. | 14076 | gnus-server-denied-face): New. |
| @@ -14260,8 +14230,7 @@ | |||
| 14260 | * gnus-delay.el (gnus-delay-article): Allow "01:23" time spec, | 14230 | * gnus-delay.el (gnus-delay-article): Allow "01:23" time spec, |
| 14261 | which specifies a time today or tomorrow. | 14231 | which specifies a time today or tomorrow. |
| 14262 | 14232 | ||
| 14263 | 2001-08-15 Simon Josefsson <jas@extundo.com> | 14233 | 2001-08-15 Pavel Jan,Am(Bk <Pavel@Janik.cz> |
| 14264 | From Pavel@Janik.cz (Pavel Jan,Am(Bk) | ||
| 14265 | 14234 | ||
| 14266 | * gnus-agent.el (gnus-agent-make-mode-line-string) | 14235 | * gnus-agent.el (gnus-agent-make-mode-line-string) |
| 14267 | (gnus-agent-toggle-plugged): Use new API. | 14236 | (gnus-agent-toggle-plugged): Use new API. |
| @@ -14307,7 +14276,6 @@ | |||
| 14307 | * gnus-spec.el (gnus-format-specs): %n is 23 chars. | 14276 | * gnus-spec.el (gnus-format-specs): %n is 23 chars. |
| 14308 | 14277 | ||
| 14309 | 2001-08-11 09:40:00 Karl Kleinpaste <karl@charcoal.com> | 14278 | 2001-08-11 09:40:00 Karl Kleinpaste <karl@charcoal.com> |
| 14310 | Committed by Kai Gro,b_(Bjohann. | ||
| 14311 | 14279 | ||
| 14312 | * gnus-score.el (gnus-score-string): Fix `match' regexp | 14280 | * gnus-score.el (gnus-score-string): Fix `match' regexp |
| 14313 | for `extra' header case. | 14281 | for `extra' header case. |
| @@ -14388,23 +14356,23 @@ | |||
| 14388 | * imap.el (imap-gssapi-auth-p, imap-kerberos4-auth-p): Also check | 14356 | * imap.el (imap-gssapi-auth-p, imap-kerberos4-auth-p): Also check |
| 14389 | whether `imtest' is installed. | 14357 | whether `imtest' is installed. |
| 14390 | 14358 | ||
| 14391 | 2001-08-04 ShengHuo ZHU <zsh@cs.rochester.edu> | 14359 | 2001-08-04 Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com> |
| 14392 | Trivial patch from Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com> | ||
| 14393 | 14360 | ||
| 14394 | * gnus-sum.el (gnus-summary-show-article): Call | 14361 | * gnus-sum.el (gnus-summary-show-article): Call |
| 14395 | gnus-summary-update-secondary-secondary-mark. | 14362 | gnus-summary-update-secondary-secondary-mark. |
| 14396 | * gnus-sum.el (gnus-summary-edit-article-done): Ditto. | 14363 | * gnus-sum.el (gnus-summary-edit-article-done): Ditto. |
| 14397 | * gnus-sum.el (gnus-summary-reparent-thread): Ditto. | 14364 | * gnus-sum.el (gnus-summary-reparent-thread): Ditto. |
| 14398 | 14365 | ||
| 14366 | 2001-08-07 16:00:00 Gerd M,Av(Bllmann <gerd@gnu.org> | ||
| 14367 | |||
| 14368 | * mm-uu.el (mm-uu-dissect): Autoload. | ||
| 14369 | |||
| 14399 | 2001-08-07 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 14370 | 2001-08-07 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 14400 | 14371 | ||
| 14401 | * gnus-sum.el (gnus-summary-make-menu-bar): Misc -> Gnus. | 14372 | * gnus-sum.el (gnus-summary-make-menu-bar): Misc -> Gnus. |
| 14402 | 14373 | ||
| 14403 | * gnus-group.el (gnus-group-make-menu-bar): Ditto. | 14374 | * gnus-group.el (gnus-group-make-menu-bar): Ditto. |
| 14404 | 14375 | ||
| 14405 | * mm-uu.el (mm-uu-dissect): Autoload. From Gerd M,Av(Bllmann | ||
| 14406 | <gerd@gnu.org>. | ||
| 14407 | |||
| 14408 | * gnus-art.el (gnus-output-to-file): Bind file-name-coding-system. | 14376 | * gnus-art.el (gnus-output-to-file): Bind file-name-coding-system. |
| 14409 | 14377 | ||
| 14410 | * gnus-util.el (gnus-output-to-rmail): Ditto. | 14378 | * gnus-util.el (gnus-output-to-rmail): Ditto. |
| @@ -14526,8 +14494,7 @@ | |||
| 14526 | (mm-pkcs7-enveloped-magic): Ditto. | 14494 | (mm-pkcs7-enveloped-magic): Ditto. |
| 14527 | (mm-view-pkcs7-get-type): Don't regexp quote. | 14495 | (mm-view-pkcs7-get-type): Don't regexp quote. |
| 14528 | 14496 | ||
| 14529 | 2001-08-01 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 14497 | 2001-08-01 14:00:00 Andreas Fuchs <asf@void.at> |
| 14530 | From Andreas Fuchs <asf@void.at> | ||
| 14531 | 14498 | ||
| 14532 | * mml2015.el (mml2015-trust-boundaries-alist): Typo. | 14499 | * mml2015.el (mml2015-trust-boundaries-alist): Typo. |
| 14533 | 14500 | ||
| @@ -14622,13 +14589,11 @@ | |||
| 14622 | (smime-dns-server): Fix customize group. | 14589 | (smime-dns-server): Fix customize group. |
| 14623 | (smime-call-openssl-region): Use `smime-extra-arguments'. | 14590 | (smime-call-openssl-region): Use `smime-extra-arguments'. |
| 14624 | 14591 | ||
| 14625 | 2001-07-29 Simon Josefsson <jas@extundo.com> | 14592 | 2001-07-29 Vladimir Volovich <vvv@vsu.ru> |
| 14626 | From Vladimir Volovich <vvv@vsu.ru> | ||
| 14627 | 14593 | ||
| 14628 | * smime.el (smime-call-openssl-region): Ignore stderr. | 14594 | * smime.el (smime-call-openssl-region): Ignore stderr. |
| 14629 | 14595 | ||
| 14630 | 2001-07-29 Simon Josefsson <jas@extundo.com> | 14596 | 2001-07-29 Christoph Conrad <christoph.conrad@gmx.de> |
| 14631 | From Christoph Conrad <christoph.conrad@gmx.de> | ||
| 14632 | 14597 | ||
| 14633 | * gnus-agent.el (gnus-agent-save-group-info): Don't destroy active | 14598 | * gnus-agent.el (gnus-agent-save-group-info): Don't destroy active |
| 14634 | file. | 14599 | file. |
| @@ -14749,8 +14714,7 @@ | |||
| 14749 | 14714 | ||
| 14750 | * nnimap.el (nnimap-version): Bump version number. | 14715 | * nnimap.el (nnimap-version): Bump version number. |
| 14751 | 14716 | ||
| 14752 | 2001-07-26 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 14717 | 2001-07-26 10:00:00 Steven E. Harris <seh@speakeasy.org> |
| 14753 | From Steven E. Harris <seh@speakeasy.org> | ||
| 14754 | 14718 | ||
| 14755 | * nnheader.el (nnheader-translate-file-chars): cygwin32 is running | 14719 | * nnheader.el (nnheader-translate-file-chars): cygwin32 is running |
| 14756 | in M$Windows too. | 14720 | in M$Windows too. |
| @@ -14772,8 +14736,7 @@ | |||
| 14772 | * gnus-sum.el (gnus-summary-prepare-threads): Shouldn't do tree | 14736 | * gnus-sum.el (gnus-summary-prepare-threads): Shouldn't do tree |
| 14773 | display (%B) for threads if threading is off. | 14737 | display (%B) for threads if threading is off. |
| 14774 | 14738 | ||
| 14775 | 2001-07-25 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 14739 | 2001-07-25 14:00:00 Henrik Enberg <henrik@enberg.org> |
| 14776 | From Henrik Enberg <henrik@enberg.org> | ||
| 14777 | 14740 | ||
| 14778 | * gnus-msg.el: Customization patch. | 14741 | * gnus-msg.el: Customization patch. |
| 14779 | 14742 | ||
| @@ -14843,8 +14806,7 @@ | |||
| 14843 | * gnus-delay.el (gnus-delay-default-hour): New variable. | 14806 | * gnus-delay.el (gnus-delay-default-hour): New variable. |
| 14844 | (gnus-delay-article): Allow specific date in YYYY-MM-DD format. | 14807 | (gnus-delay-article): Allow specific date in YYYY-MM-DD format. |
| 14845 | 14808 | ||
| 14846 | 2001-07-23 22:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 14809 | 2001-07-23 22:00:00 Karl Kleinpaste <karl@charcoal.com> |
| 14847 | From Karl Kleinpaste <karl@charcoal.com> | ||
| 14848 | 14810 | ||
| 14849 | * gnus-sum.el (gnus-summary-line-format-alist): Add %B. | 14811 | * gnus-sum.el (gnus-summary-line-format-alist): Add %B. |
| 14850 | (gnus-summary-prepare-threads): Ditto. | 14812 | (gnus-summary-prepare-threads): Ditto. |
| @@ -15001,11 +14963,11 @@ | |||
| 15001 | * nnrss.el (nnrss-read-group-data): Nuke emacs-lisp-mode-hook. | 14963 | * nnrss.el (nnrss-read-group-data): Nuke emacs-lisp-mode-hook. |
| 15002 | (nnrss-read-server-data): Ditto. | 14964 | (nnrss-read-server-data): Ditto. |
| 15003 | 14965 | ||
| 15004 | 2001-07-13 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 14966 | 2001-07-13 12:00:00 Pavel Jan,Am(Bk <Pavel@Janik.cz> |
| 15005 | 14967 | ||
| 15006 | * gnus-setup.el (gnus-use-installed-gnus): Typo. | 14968 | * gnus-setup.el (gnus-use-installed-gnus): Typo. |
| 15007 | * Cleanup files. | 14969 | * Cleanup files. |
| 15008 | From Pavel@Janik.cz (Pavel Jan,Am(Bk). | 14970 | |
| 15009 | 14971 | ||
| 15010 | 2001-07-13 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 14972 | 2001-07-13 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 15011 | 14973 | ||
| @@ -15128,8 +15090,7 @@ | |||
| 15128 | * nntp.el (nntp-send-command, nntp-send-command-nodelete): | 15090 | * nntp.el (nntp-send-command, nntp-send-command-nodelete): |
| 15129 | (nntp-send-command-and-decode): Use gnus-point-at-bol. | 15091 | (nntp-send-command-and-decode): Use gnus-point-at-bol. |
| 15130 | 15092 | ||
| 15131 | 2001-07-09 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15093 | 2001-07-09 13:00:00 Paul Jarc <prj@po.cwru.edu> |
| 15132 | From Paul Jarc <prj@po.cwru.edu> | ||
| 15133 | 15094 | ||
| 15134 | * message.el (message-use-mail-followup-to): New variable. | 15095 | * message.el (message-use-mail-followup-to): New variable. |
| 15135 | (message-get-reply-headers): Use it. | 15096 | (message-get-reply-headers): Use it. |
| @@ -15217,8 +15178,7 @@ | |||
| 15217 | * gnus-start.el (gnus-check-first-time-used): Use `if' instead of | 15178 | * gnus-start.el (gnus-check-first-time-used): Use `if' instead of |
| 15218 | `when'. | 15179 | `when'. |
| 15219 | 15180 | ||
| 15220 | 2001-07-03 Simon Josefsson <jas@extundo.com> | 15181 | 2001-07-03 Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com> |
| 15221 | From Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com> | ||
| 15222 | 15182 | ||
| 15223 | * flow-fill.el (fill-flowed): Use (1+ (point-at-eol)) instead. | 15183 | * flow-fill.el (fill-flowed): Use (1+ (point-at-eol)) instead. |
| 15224 | 15184 | ||
| @@ -15266,8 +15226,7 @@ | |||
| 15266 | (rfc2047-encode-message-header): Fold lines even if | 15226 | (rfc2047-encode-message-header): Fold lines even if |
| 15267 | no QP encoding is done. | 15227 | no QP encoding is done. |
| 15268 | 15228 | ||
| 15269 | 2001-06-23 Simon Josefsson <jas@extundo.com> | 15229 | 2001-06-23 Samuel Tardieu <sam@inf.enst.fr> |
| 15270 | From Samuel Tardieu <sam@inf.enst.fr> | ||
| 15271 | 15230 | ||
| 15272 | * smime.el (smime-keys): Support additional certificates. | 15231 | * smime.el (smime-keys): Support additional certificates. |
| 15273 | (smime-make-certfiles): New function. | 15232 | (smime-make-certfiles): New function. |
| @@ -15301,8 +15260,7 @@ | |||
| 15301 | 15260 | ||
| 15302 | * message.el (message-goto-body): Return nil if not found. (revert!) | 15261 | * message.el (message-goto-body): Return nil if not found. (revert!) |
| 15303 | 15262 | ||
| 15304 | 2001-06-21 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15263 | 2001-06-21 10:00:00 John Fremlin <chief@bandits.org> (tiny change) |
| 15305 | From Fremlin <chief@bandits.org> | ||
| 15306 | 15264 | ||
| 15307 | * message.el (message-goto-body): Some messages have no header. | 15265 | * message.el (message-goto-body): Some messages have no header. |
| 15308 | 15266 | ||
| @@ -15384,7 +15342,7 @@ | |||
| 15384 | * nnweb.el (nnweb-google-parse-1): Fix Google content regexp. | 15342 | * nnweb.el (nnweb-google-parse-1): Fix Google content regexp. |
| 15385 | (nnweb-google-wash-article): Ditto. | 15343 | (nnweb-google-wash-article): Ditto. |
| 15386 | 15344 | ||
| 15387 | 2001-06-14 Ferenc Wagner <wferi@bolyai1.elte.hu> | 15345 | 2001-06-14 Ferenc Wagner <wferi@bolyai1.elte.hu> |
| 15388 | 15346 | ||
| 15389 | * nnweb.el (nnweb-google-parse-1): Fix Google url regexp. | 15347 | * nnweb.el (nnweb-google-parse-1): Fix Google url regexp. |
| 15390 | 15348 | ||
| @@ -15411,17 +15369,20 @@ | |||
| 15411 | 15369 | ||
| 15412 | * nnrss.el (nnrss-group-alist): Use |fr| instead of [fr]. | 15370 | * nnrss.el (nnrss-group-alist): Use |fr| instead of [fr]. |
| 15413 | 15371 | ||
| 15414 | 2001-06-12 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15372 | 2001-06-12 11:00:00 Marc Lefranc <Marc.Lefranc@univ-lille1.fr> |
| 15415 | 15373 | ||
| 15416 | * gnus-art.el (gnus-plain-save-name): Use file-relative-name. | 15374 | * gnus-art.el (gnus-plain-save-name): Use file-relative-name. |
| 15417 | From Marc Lefranc <Marc.Lefranc@univ-lille1.fr>. | 15375 | |
| 15376 | 2001-06-12 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 15418 | 15377 | ||
| 15419 | * nnrss.el (nnrss-node-text): Node might be nil. | 15378 | * nnrss.el (nnrss-node-text): Node might be nil. |
| 15420 | 15379 | ||
| 15421 | 2001-06-11 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15380 | 2001-06-11 10:00:00 Katsumi Yamaoka <yamaoka@jpl.org> |
| 15422 | 15381 | ||
| 15423 | * gnus-uu.el (gnus-uu-save-article): Use mml tag instead of | 15382 | * gnus-uu.el (gnus-uu-save-article): Use mml tag instead of |
| 15424 | part. From Katsumi Yamaoka <yamaoka@jpl.org>. | 15383 | part. |
| 15384 | |||
| 15385 | 2001-06-11 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 15425 | 15386 | ||
| 15426 | * nnrss.el (nnrss-group-alist): More items. | 15387 | * nnrss.el (nnrss-group-alist): More items. |
| 15427 | 15388 | ||
| @@ -15435,14 +15396,11 @@ | |||
| 15435 | * gnus-mlspl.el (gnus-group-split-fancy): Fix generation of split | 15396 | * gnus-mlspl.el (gnus-group-split-fancy): Fix generation of split |
| 15436 | restrict clauses. | 15397 | restrict clauses. |
| 15437 | 15398 | ||
| 15438 | 2001-06-07 16:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15399 | 2001-06-07 16:00:00 Benjamin Rutt <brutt+news@bloomington.in.us> |
| 15439 | |||
| 15440 | From Benjamin Rutt <brutt+news@bloomington.in.us> | ||
| 15441 | 15400 | ||
| 15442 | * message.el (message-wide-reply-confirm-recipients): New variable. | 15401 | * message.el (message-wide-reply-confirm-recipients): New variable. |
| 15443 | 15402 | ||
| 15444 | 2001-06-06 ShengHuo ZHU <zsh@cs.rochester.edu> | 15403 | 2001-06-06 Mark Thomas <mthomas@edrc.cmu.edu> (tiny change) |
| 15445 | Trivial patch from Mark Thomas <mthomas@edrc.cmu.edu> | ||
| 15446 | 15404 | ||
| 15447 | * nnmail.el (nnmail-fix-eudora-headers): Change the In-Reply-To | 15405 | * nnmail.el (nnmail-fix-eudora-headers): Change the In-Reply-To |
| 15448 | fix so it works with XEmacs. | 15406 | fix so it works with XEmacs. |
| @@ -15456,10 +15414,10 @@ | |||
| 15456 | 15414 | ||
| 15457 | * nnrss.el: Fix a few bugs. | 15415 | * nnrss.el: Fix a few bugs. |
| 15458 | 15416 | ||
| 15459 | 2001-06-05 Simon Josefsson <jas@extundo.com> | 15417 | 2001-06-05 Alex Schroeder <alex@gnu.org> |
| 15460 | 15418 | ||
| 15461 | * mm-decode.el (mm-handle-set-external-undisplayer): Don't | 15419 | * mm-decode.el (mm-handle-set-external-undisplayer): Don't |
| 15462 | generate compiler warnings. From Alex Schroeder <alex@gnu.org>. | 15420 | generate compiler warnings. |
| 15463 | 15421 | ||
| 15464 | 2001-06-04 Hrvoje Niksic <hniksic@arsdigita.com> | 15422 | 2001-06-04 Hrvoje Niksic <hniksic@arsdigita.com> |
| 15465 | 15423 | ||
| @@ -15498,20 +15456,17 @@ | |||
| 15498 | it is not possible to insert a character after a glyph which is at | 15456 | it is not possible to insert a character after a glyph which is at |
| 15499 | the end of a buffer. Patch by Lloyd Zusman <ljz@asfast.com>. | 15457 | the end of a buffer. Patch by Lloyd Zusman <ljz@asfast.com>. |
| 15500 | 15458 | ||
| 15501 | 2001-05-28 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 15459 | 2001-05-28 Jaap-Henk Hoepman <jhh@xs4all.nl> |
| 15502 | |||
| 15503 | From Jaap-Henk Hoepman (jhh@xs4all.nl). | ||
| 15504 | 15460 | ||
| 15505 | * mm-decode.el (mm-keep-viewer-alive-types): New variable. | 15461 | * mm-decode.el (mm-keep-viewer-alive-types): New variable. |
| 15506 | (mm-keep-viewer-alive-p, mm-handle-set-external-undisplayer, | 15462 | (mm-keep-viewer-alive-p, mm-handle-set-external-undisplayer, |
| 15507 | mm-destroy-postponed-undisplay-list): New functions. | 15463 | mm-destroy-postponed-undisplay-list): New functions. |
| 15508 | (mm-display-external): Use them. | 15464 | (mm-display-external): Use them. |
| 15509 | 15465 | ||
| 15510 | 2001-05-27 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 15466 | 2001-05-27 Raja R. Harinath <harinath@cs.umn.edu> |
| 15511 | 15467 | ||
| 15512 | * gnus-salt.el (gnus-tree-highlight-node): Bind `default-high' and | 15468 | * gnus-salt.el (gnus-tree-highlight-node): Bind `default-high' and |
| 15513 | `default-low' when evaluating `gnus-summary-highlight'. | 15469 | `default-low' when evaluating `gnus-summary-highlight'. |
| 15514 | From Raja R Harinath <harinath@cs.umn.edu>. | ||
| 15515 | 15470 | ||
| 15516 | 2001-05-27 Simon Josefsson <simon@josefsson.org> | 15471 | 2001-05-27 Simon Josefsson <simon@josefsson.org> |
| 15517 | 15472 | ||
| @@ -15522,8 +15477,7 @@ | |||
| 15522 | as details. | 15477 | as details. |
| 15523 | (mml2015-mailcrypt-clear-verify): Ditto. | 15478 | (mml2015-mailcrypt-clear-verify): Ditto. |
| 15524 | 15479 | ||
| 15525 | 2001-05-24 Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE> | 15480 | 2001-05-24 Nevin Kapur <nevin@jhu.edu> |
| 15526 | From Nevin Kapur <nevin@jhu.edu>. | ||
| 15527 | 15481 | ||
| 15528 | * gnus-sum.el (gnus-summary-default-high-score, | 15482 | * gnus-sum.el (gnus-summary-default-high-score, |
| 15529 | gnus-summary-default-low-score): New variables. | 15483 | gnus-summary-default-low-score): New variables. |
| @@ -15534,8 +15488,7 @@ | |||
| 15534 | * message.el (message-mail): pass the 'send-actions argument to | 15488 | * message.el (message-mail): pass the 'send-actions argument to |
| 15535 | `message-setup'. | 15489 | `message-setup'. |
| 15536 | 15490 | ||
| 15537 | 2001-05-16 Simon Josefsson <simon@josefsson.org> | 15491 | 2001-05-16 Raymond Scholz <ray-2001@zonix.de> |
| 15538 | From Raymond Scholz <ray-2001@zonix.de> | ||
| 15539 | 15492 | ||
| 15540 | * gnus-art.el (gnus-mime-view-part-as-charset): | 15493 | * gnus-art.el (gnus-mime-view-part-as-charset): |
| 15541 | (gnus-mime-internalize-part): Doc fixes. | 15494 | (gnus-mime-internalize-part): Doc fixes. |
| @@ -15599,7 +15552,7 @@ | |||
| 15599 | correctly. | 15552 | correctly. |
| 15600 | (nnrss-check-group): Use time. | 15553 | (nnrss-check-group): Use time. |
| 15601 | 15554 | ||
| 15602 | 2001-05-01 19:21:19 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 15555 | 2001-05-01 19:21:19 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 15603 | 15556 | ||
| 15604 | * gnus.el: Oort Gnus v0.03 is released. | 15557 | * gnus.el: Oort Gnus v0.03 is released. |
| 15605 | 15558 | ||
| @@ -15671,12 +15624,11 @@ | |||
| 15671 | (smime-decrypt-region): Ditto. | 15624 | (smime-decrypt-region): Ditto. |
| 15672 | 15625 | ||
| 15673 | 2001-04-12 Jason Merrill <jason_merrill@redhat.com> | 15626 | 2001-04-12 Jason Merrill <jason_merrill@redhat.com> |
| 15674 | Committed by Simon Josefsson <simon@josefsson.org> | ||
| 15675 | 15627 | ||
| 15676 | * imap.el (imap-shell-open): Erase the buffer *after* copying it into | 15628 | * imap.el (imap-shell-open): Erase the buffer *after* copying it into |
| 15677 | the log. | 15629 | the log. |
| 15678 | 15630 | ||
| 15679 | 2001-04-14 01:14:42 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> | 15631 | 2001-04-14 01:14:42 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no> |
| 15680 | 15632 | ||
| 15681 | * gnus.el: Oort Gnus v0.02 is released. | 15633 | * gnus.el: Oort Gnus v0.02 is released. |
| 15682 | 15634 | ||
| @@ -15704,13 +15656,11 @@ | |||
| 15704 | 15656 | ||
| 15705 | * nnmail.el (nnmail-split-fancy-with-parent): Add docstring. | 15657 | * nnmail.el (nnmail-split-fancy-with-parent): Add docstring. |
| 15706 | 15658 | ||
| 15707 | 2001-04-12 19:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15659 | 2001-04-12 19:00:00 Jason Merrill <jason_merrill@redhat.com> |
| 15708 | From Jason Merrill <jason_merrill@redhat.com> | ||
| 15709 | 15660 | ||
| 15710 | * gnus-sum.el (gnus-summary-insert-new-articles): Reverse the articles. | 15661 | * gnus-sum.el (gnus-summary-insert-new-articles): Reverse the articles. |
| 15711 | 15662 | ||
| 15712 | 2001-04-10 08:01:15 Katsumi Yamaoka <yamaoka@jpl.org> | 15663 | 2001-04-10 08:01:15 Katsumi Yamaoka <yamaoka@jpl.org> |
| 15713 | Committed by ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 15714 | 15664 | ||
| 15715 | * gnus-msg.el (gnus-post-news): Fill the Newsgroups header by the | 15665 | * gnus-msg.el (gnus-post-news): Fill the Newsgroups header by the |
| 15716 | newsgroup names when the original article is a news message. | 15666 | newsgroup names when the original article is a news message. |
| @@ -15721,7 +15671,6 @@ | |||
| 15721 | supported. Suggest by Jim Meyering <jim@meyering.net>. | 15671 | supported. Suggest by Jim Meyering <jim@meyering.net>. |
| 15722 | 15672 | ||
| 15723 | 2001-04-02 Nevin Kapur <nevin@jhu.edu> | 15673 | 2001-04-02 Nevin Kapur <nevin@jhu.edu> |
| 15724 | Committed by Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>. | ||
| 15725 | 15674 | ||
| 15726 | * nnmail.el (nnmail-split-it): Added check for .* at the end of | 15675 | * nnmail.el (nnmail-split-it): Added check for .* at the end of |
| 15727 | regexp in nnmail-split-fancy. | 15676 | regexp in nnmail-split-fancy. |
| @@ -15789,13 +15738,11 @@ | |||
| 15789 | * qp.el (quoted-printable-decode-region): Just message | 15738 | * qp.el (quoted-printable-decode-region): Just message |
| 15790 | malformation; don't quit. | 15739 | malformation; don't quit. |
| 15791 | 15740 | ||
| 15792 | 2001-03-31 21:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15741 | 2001-03-31 21:00:00 Gerd Moellmann <gerd@gnu.org> |
| 15793 | From Gerd Moellmann <gerd@gnu.org>. | ||
| 15794 | 15742 | ||
| 15795 | * gnus.el (gnus-interactive): A typo. | 15743 | * gnus.el (gnus-interactive): A typo. |
| 15796 | 15744 | ||
| 15797 | 2001-03-26 Juanma Barranquero <lektu@uol.com.br> | 15745 | 2001-03-26 Juanma Barranquero <lektu@uol.com.br> |
| 15798 | Committed by ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 15799 | 15746 | ||
| 15800 | * gnus-util.el (gnus-delete-alist): Declare it as an alias of | 15747 | * gnus-util.el (gnus-delete-alist): Declare it as an alias of |
| 15801 | `assq-delete-all', if that function exists; otherwise use the old | 15748 | `assq-delete-all', if that function exists; otherwise use the old |
| @@ -15913,8 +15860,7 @@ | |||
| 15913 | 15860 | ||
| 15914 | * mml2015.el (mml2015-gpg-extract-from): No error. | 15861 | * mml2015.el (mml2015-gpg-extract-from): No error. |
| 15915 | 15862 | ||
| 15916 | 2001-03-18 23:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15863 | 2001-03-18 23:00:00 Bj,Ax(Brn Mork <bmork@dod.no> |
| 15917 | From Bj,Ax(Brn Mork <bmork@dod.no>. | ||
| 15918 | 15864 | ||
| 15919 | * mml2015.el (mml2015-gpg-extract-from): New function. | 15865 | * mml2015.el (mml2015-gpg-extract-from): New function. |
| 15920 | (mml2015-gpg-verify): Use it. | 15866 | (mml2015-gpg-verify): Use it. |
| @@ -15956,8 +15902,7 @@ | |||
| 15956 | * mailcap.el (mailcap-mime-data): Add application/sieve. | 15902 | * mailcap.el (mailcap-mime-data): Add application/sieve. |
| 15957 | (mailcap-mime-extensions): Add .siv, .xls. | 15903 | (mailcap-mime-extensions): Add .siv, .xls. |
| 15958 | 15904 | ||
| 15959 | 2001-03-14 20:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15905 | 2001-03-14 20:00:00 Christoph Conrad <christoph.conrad@gmx.de> |
| 15960 | From Christoph Conrad <christoph.conrad@gmx.de> | ||
| 15961 | 15906 | ||
| 15962 | * gnus-score.el (gnus-summary-lower-thread): Typo. | 15907 | * gnus-score.el (gnus-summary-lower-thread): Typo. |
| 15963 | 15908 | ||
| @@ -16002,7 +15947,6 @@ | |||
| 16002 | * nnrss.el: New file. | 15947 | * nnrss.el: New file. |
| 16003 | 15948 | ||
| 16004 | 2001-03-08 02:41:36 Katsumi Yamaoka <yamaoka@jpl.org> | 15949 | 2001-03-08 02:41:36 Katsumi Yamaoka <yamaoka@jpl.org> |
| 16005 | Committed by ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 16006 | 15950 | ||
| 16007 | * rfc2047.el (rfc2047-unfold-region): Fix arg of | 15951 | * rfc2047.el (rfc2047-unfold-region): Fix arg of |
| 16008 | `skip-chars-forward'. | 15952 | `skip-chars-forward'. |
| @@ -16026,9 +15970,10 @@ | |||
| 16026 | directory part. | 15970 | directory part. |
| 16027 | (gnus-score-search-global-directories): Use file-directory-p. | 15971 | (gnus-score-search-global-directories): Use file-directory-p. |
| 16028 | 15972 | ||
| 15973 | 2001-03-06 13:00:00 Adrian Aichner <adrian@xemacs.org> | ||
| 15974 | |||
| 16029 | * gnus-score.el (gnus-score-score-files-1): Use | 15975 | * gnus-score.el (gnus-score-score-files-1): Use |
| 16030 | gnus-kill-files-directory. | 15976 | gnus-kill-files-directory. |
| 16031 | From Adrian Aichner <adrian@xemacs.org>. | ||
| 16032 | 15977 | ||
| 16033 | 2001-03-05 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 15978 | 2001-03-05 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> |
| 16034 | 15979 | ||
| @@ -16053,8 +15998,7 @@ | |||
| 16053 | 15998 | ||
| 16054 | * gnus-sum.el (gnus-summary-limit-include-expunged): Fix. | 15999 | * gnus-sum.el (gnus-summary-limit-include-expunged): Fix. |
| 16055 | 16000 | ||
| 16056 | 2001-03-01 22:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 16001 | 2001-03-01 22:00:00 Katsumi Yamaoka <yamaoka@jpl.org> |
| 16057 | From Katsumi Yamaoka <yamaoka@jpl.org>. | ||
| 16058 | 16002 | ||
| 16059 | * dgnushack.el (coerce, merge, subseq): defmacro. | 16003 | * dgnushack.el (coerce, merge, subseq): defmacro. |
| 16060 | 16004 | ||
| @@ -16065,7 +16009,6 @@ | |||
| 16065 | uncompiled versions. | 16009 | uncompiled versions. |
| 16066 | 16010 | ||
| 16067 | 2001-02-26 11:27:27 Paul Jarc <prj@po.cwru.edu> | 16011 | 2001-02-26 11:27:27 Paul Jarc <prj@po.cwru.edu> |
| 16068 | Committed by ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 16069 | 16012 | ||
| 16070 | * gnus-util.el (gnus-split-references): Handle malformed References:. | 16013 | * gnus-util.el (gnus-split-references): Handle malformed References:. |
| 16071 | 16014 | ||
| @@ -16073,8 +16016,7 @@ | |||
| 16073 | 16016 | ||
| 16074 | * gnus-art.el (gnus-article-mime-part-status): 1 part. | 16017 | * gnus-art.el (gnus-article-mime-part-status): 1 part. |
| 16075 | 16018 | ||
| 16076 | 2001-02-25 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 16019 | 2001-02-25 10:00:00 NAGY Andras <nagya@inf.elte.hu> |
| 16077 | From NAGY Andras <nagya@inf.elte.hu>. | ||
| 16078 | 16020 | ||
| 16079 | * gnus.el (gnus-parameters): Typo. | 16021 | * gnus.el (gnus-parameters): Typo. |
| 16080 | 16022 | ||
| @@ -16182,13 +16124,11 @@ | |||
| 16182 | (gnus-article-sort-functions): Doc fix. Refer to | 16124 | (gnus-article-sort-functions): Doc fix. Refer to |
| 16183 | gnus-thread-sort-functions. | 16125 | gnus-thread-sort-functions. |
| 16184 | 16126 | ||
| 16185 | 2001-02-18 20:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> | 16127 | 2001-02-18 20:00:00 Paul Jarc <prj@po.cwru.edu> |
| 16186 | From Paul Jarc <prj@po.cwru.edu>. | ||
| 16187 | 16128 | ||
| 16188 | * message.el (message-get-reply-headers): More fixes. | 16129 | * message.el (message-get-reply-headers): More fixes. |
| 16189 | 16130 | ||
| 16190 | 2001-02-17 Paul Jarc <prj@po.cwru.edu> | 16131 | 2001-02-17 Paul Jarc <prj@po.cwru.edu> |
| 16191 | Committed by ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 16192 | 16132 | ||
| 16193 | * message.el (message-get-reply-headers): Fix bug with | 16133 | * message.el (message-get-reply-headers): Fix bug with |
| 16194 | Mail-Followup-To/to-address interaction. | 16134 | Mail-Followup-To/to-address interaction. |
| @@ -16233,7 +16173,6 @@ | |||
| 16233 | (nnml-request-regenerate): Use it. Change to deffoo. | 16173 | (nnml-request-regenerate): Use it. Change to deffoo. |
| 16234 | 16174 | ||
| 16235 | 2001-02-14 Katsumi Yamaoka <yamaoka@jpl.org> | 16175 | 2001-02-14 Katsumi Yamaoka <yamaoka@jpl.org> |
| 16236 | Committed by ShengHuo ZHU <zsh@cs.rochester.edu> | ||
| 16237 | 16176 | ||
| 16238 | * gnus.el (gnus-define-group-parameter): Fix. | 16177 | * gnus.el (gnus-define-group-parameter): Fix. |
| 16239 | 16178 | ||
| @@ -18186,7 +18125,7 @@ | |||
| 18186 | 18125 | ||
| 18187 | * mml.el (mml-generate-mime-1): Ignore ascii. | 18126 | * mml.el (mml-generate-mime-1): Ignore ascii. |
| 18188 | 18127 | ||
| 18189 | 2000-11-16 Justin Sheehy <justin@iago.org> | 18128 | 2000-11-16 Justin Sheehy <justin@iago.org> |
| 18190 | 18129 | ||
| 18191 | * gnus-sum.el (gnus-summary-make-menu-bar): Fix menu items. | 18130 | * gnus-sum.el (gnus-summary-make-menu-bar): Fix menu items. |
| 18192 | 18131 | ||
diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el index e773aa3bfac..59d02927008 100644 --- a/lisp/gnus/gmm-utils.el +++ b/lisp/gnus/gmm-utils.el | |||
| @@ -401,6 +401,21 @@ If mode is nil, use `major-mode' of the curent buffer." | |||
| 401 | (string-match "^\\(.+\\)-mode$" mode) | 401 | (string-match "^\\(.+\\)-mode$" mode) |
| 402 | (match-string 1 mode)))))) | 402 | (match-string 1 mode)))))) |
| 403 | 403 | ||
| 404 | (defun gmm-write-region (start end filename &optional append visit | ||
| 405 | lockname mustbenew) | ||
| 406 | "Compatibility function for `write-region'. | ||
| 407 | |||
| 408 | In XEmacs, the seventh argument of `write-region' specifies the | ||
| 409 | coding-system." | ||
| 410 | (if (and mustbenew | ||
| 411 | (or (featurep 'xemacs) | ||
| 412 | (= emacs-major-version 20))) | ||
| 413 | (if (file-exists-p filename) | ||
| 414 | (signal 'file-already-exists | ||
| 415 | (list "File exists" filename)) | ||
| 416 | (write-region start end filename append visit lockname)) | ||
| 417 | (write-region start end filename append visit lockname mustbenew))) | ||
| 418 | |||
| 404 | (provide 'gmm-utils) | 419 | (provide 'gmm-utils) |
| 405 | 420 | ||
| 406 | ;; arch-tag: e0b60920-2ce6-40c1-bfc0-cadbbe26b602 | 421 | ;; arch-tag: e0b60920-2ce6-40c1-bfc0-cadbbe26b602 |
diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el index bf35f1ddee7..fb28d6440fd 100644 --- a/lisp/gnus/gnus-demon.el +++ b/lisp/gnus/gnus-demon.el | |||
| @@ -218,7 +218,7 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's." | |||
| 218 | (< idle gnus-demon-idle-time)) ; Idle timed out. | 218 | (< idle gnus-demon-idle-time)) ; Idle timed out. |
| 219 | (t (< 0 gnus-demon-idle-time)))) ; Or just need to be idle. | 219 | (t (< 0 gnus-demon-idle-time)))) ; Or just need to be idle. |
| 220 | ;; So we call the handler. | 220 | ;; So we call the handler. |
| 221 | (with-local-quit | 221 | (gnus-with-local-quit |
| 222 | (ignore-errors (funcall (car handler))) | 222 | (ignore-errors (funcall (car handler))) |
| 223 | ;; And reset the timer. | 223 | ;; And reset the timer. |
| 224 | (setcar (nthcdr 1 handler) | 224 | (setcar (nthcdr 1 handler) |
| @@ -232,7 +232,7 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's." | |||
| 232 | (gnus-demon-is-idle-p)) | 232 | (gnus-demon-is-idle-p)) |
| 233 | ;; We want to call this handler each and every time that | 233 | ;; We want to call this handler each and every time that |
| 234 | ;; Emacs is idle. | 234 | ;; Emacs is idle. |
| 235 | (with-local-quit | 235 | (gnus-with-local-quit |
| 236 | (ignore-errors (funcall (car handler))))) | 236 | (ignore-errors (funcall (car handler))))) |
| 237 | (t | 237 | (t |
| 238 | ;; We want to call this handler only if Emacs has been idle | 238 | ;; We want to call this handler only if Emacs has been idle |
| @@ -240,7 +240,7 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's." | |||
| 240 | (and (not (memq (car handler) gnus-demon-idle-has-been-called)) | 240 | (and (not (memq (car handler) gnus-demon-idle-has-been-called)) |
| 241 | (< idle gnus-demon-idle-time) | 241 | (< idle gnus-demon-idle-time) |
| 242 | (gnus-demon-is-idle-p) | 242 | (gnus-demon-is-idle-p) |
| 243 | (with-local-quit | 243 | (gnus-with-local-quit |
| 244 | (ignore-errors (funcall (car handler))) | 244 | (ignore-errors (funcall (car handler))) |
| 245 | ;; Make sure the handler won't be called once more in | 245 | ;; Make sure the handler won't be called once more in |
| 246 | ;; this idle-cycle. | 246 | ;; this idle-cycle. |
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 2e452136f3c..47944aeef41 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el | |||
| @@ -60,6 +60,7 @@ | |||
| 60 | (require 'gnus) | 60 | (require 'gnus) |
| 61 | (require 'gnus-int) | 61 | (require 'gnus-int) |
| 62 | (require 'gnus-sum) | 62 | (require 'gnus-sum) |
| 63 | (require 'gnus-util) | ||
| 63 | (require 'nnmail) | 64 | (require 'nnmail) |
| 64 | 65 | ||
| 65 | (defvar gnus-registry-dirty t | 66 | (defvar gnus-registry-dirty t |
| @@ -243,7 +244,8 @@ way." | |||
| 243 | (gnus-registry-clean-empty-function)) | 244 | (gnus-registry-clean-empty-function)) |
| 244 | ;; now trim the registry appropriately | 245 | ;; now trim the registry appropriately |
| 245 | (setq gnus-registry-alist (gnus-registry-trim | 246 | (setq gnus-registry-alist (gnus-registry-trim |
| 246 | (hashtable-to-alist gnus-registry-hashtb))) | 247 | (gnus-hashtable-to-alist |
| 248 | gnus-registry-hashtb))) | ||
| 247 | ;; really save | 249 | ;; really save |
| 248 | (gnus-registry-cache-save) | 250 | (gnus-registry-cache-save) |
| 249 | (setq gnus-registry-entry-caching caching) | 251 | (setq gnus-registry-entry-caching caching) |
| @@ -262,7 +264,7 @@ way." | |||
| 262 | 264 | ||
| 263 | (defun gnus-registry-read () | 265 | (defun gnus-registry-read () |
| 264 | (gnus-registry-cache-read) | 266 | (gnus-registry-cache-read) |
| 265 | (setq gnus-registry-hashtb (alist-to-hashtable gnus-registry-alist)) | 267 | (setq gnus-registry-hashtb (gnus-alist-to-hashtable gnus-registry-alist)) |
| 266 | (setq gnus-registry-dirty nil)) | 268 | (setq gnus-registry-dirty nil)) |
| 267 | 269 | ||
| 268 | (defun gnus-registry-trim (alist) | 270 | (defun gnus-registry-trim (alist) |
| @@ -290,26 +292,6 @@ way." | |||
| 290 | (cdr (gethash (car a) timehash)) | 292 | (cdr (gethash (car a) timehash)) |
| 291 | (cdr (gethash (car b) timehash)))))))))) | 293 | (cdr (gethash (car b) timehash)))))))))) |
| 292 | 294 | ||
| 293 | (defun alist-to-hashtable (alist) | ||
| 294 | "Build a hashtable from the values in ALIST." | ||
| 295 | (let ((ht (make-hash-table | ||
| 296 | :size 4096 | ||
| 297 | :test 'equal))) | ||
| 298 | (mapc | ||
| 299 | (lambda (kv-pair) | ||
| 300 | (puthash (car kv-pair) (cdr kv-pair) ht)) | ||
| 301 | alist) | ||
| 302 | ht)) | ||
| 303 | |||
| 304 | (defun hashtable-to-alist (hash) | ||
| 305 | "Build an alist from the values in HASH." | ||
| 306 | (let ((list nil)) | ||
| 307 | (maphash | ||
| 308 | (lambda (key value) | ||
| 309 | (setq list (cons (cons key value) list))) | ||
| 310 | hash) | ||
| 311 | list)) | ||
| 312 | |||
| 313 | (defun gnus-registry-action (action data-header from &optional to method) | 295 | (defun gnus-registry-action (action data-header from &optional to method) |
| 314 | (let* ((id (mail-header-id data-header)) | 296 | (let* ((id (mail-header-id data-header)) |
| 315 | (subject (gnus-registry-simplify-subject | 297 | (subject (gnus-registry-simplify-subject |
| @@ -660,7 +642,7 @@ Returns the first place where the trail finds a group name." | |||
| 660 | "Clear the Gnus registry." | 642 | "Clear the Gnus registry." |
| 661 | (interactive) | 643 | (interactive) |
| 662 | (setq gnus-registry-alist nil) | 644 | (setq gnus-registry-alist nil) |
| 663 | (setq gnus-registry-hashtb (alist-to-hashtable gnus-registry-alist)) | 645 | (setq gnus-registry-hashtb (gnus-alist-to-hashtable gnus-registry-alist)) |
| 664 | (setq gnus-registry-dirty t)) | 646 | (setq gnus-registry-dirty t)) |
| 665 | 647 | ||
| 666 | ;;;###autoload | 648 | ;;;###autoload |
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 7d91d4db5aa..8dcd0753e59 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el | |||
| @@ -2438,7 +2438,7 @@ gnus-summary-show-article-from-menu-as-charset-%s" cs)))) | |||
| 2438 | ["Unread" gnus-summary-limit-to-unread t] | 2438 | ["Unread" gnus-summary-limit-to-unread t] |
| 2439 | ["Unseen" gnus-summary-limit-to-unseen t] | 2439 | ["Unseen" gnus-summary-limit-to-unseen t] |
| 2440 | ["Non-dormant" gnus-summary-limit-exclude-dormant t] | 2440 | ["Non-dormant" gnus-summary-limit-exclude-dormant t] |
| 2441 | ["Next articles" gnus-summary-limit-to-articles t] | 2441 | ["Next or process marked articles" gnus-summary-limit-to-articles t] |
| 2442 | ["Pop limit" gnus-summary-pop-limit t] | 2442 | ["Pop limit" gnus-summary-pop-limit t] |
| 2443 | ["Show dormant" gnus-summary-limit-include-dormant t] | 2443 | ["Show dormant" gnus-summary-limit-include-dormant t] |
| 2444 | ["Hide childless dormant" | 2444 | ["Hide childless dormant" |
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 6f706fabce5..09d7ab9432e 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el | |||
| @@ -746,6 +746,28 @@ If there's no subdirectory, delete DIRECTORY as well." | |||
| 746 | (unless dir | 746 | (unless dir |
| 747 | (delete-directory directory))))) | 747 | (delete-directory directory))))) |
| 748 | 748 | ||
| 749 | ;; The following two functions are used in gnus-registry. | ||
| 750 | ;; They were contributed by Andreas Fuchs <asf@void.at>. | ||
| 751 | (defun gnus-alist-to-hashtable (alist) | ||
| 752 | "Build a hashtable from the values in ALIST." | ||
| 753 | (let ((ht (make-hash-table | ||
| 754 | :size 4096 | ||
| 755 | :test 'equal))) | ||
| 756 | (mapc | ||
| 757 | (lambda (kv-pair) | ||
| 758 | (puthash (car kv-pair) (cdr kv-pair) ht)) | ||
| 759 | alist) | ||
| 760 | ht)) | ||
| 761 | |||
| 762 | (defun gnus-hashtable-to-alist (hash) | ||
| 763 | "Build an alist from the values in HASH." | ||
| 764 | (let ((list nil)) | ||
| 765 | (maphash | ||
| 766 | (lambda (key value) | ||
| 767 | (setq list (cons (cons key value) list))) | ||
| 768 | hash) | ||
| 769 | list)) | ||
| 770 | |||
| 749 | (defun gnus-strip-whitespace (string) | 771 | (defun gnus-strip-whitespace (string) |
| 750 | "Return STRING stripped of all whitespace." | 772 | "Return STRING stripped of all whitespace." |
| 751 | (while (string-match "[\r\n\t ]+" string) | 773 | (while (string-match "[\r\n\t ]+" string) |
| @@ -1616,6 +1638,25 @@ empty directories from OLD-PATH." | |||
| 1616 | (defalias 'gnus-set-process-query-on-exit-flag | 1638 | (defalias 'gnus-set-process-query-on-exit-flag |
| 1617 | 'process-kill-without-query)) | 1639 | 'process-kill-without-query)) |
| 1618 | 1640 | ||
| 1641 | (if (fboundp 'with-local-quit) | ||
| 1642 | (defalias 'gnus-with-local-quit 'with-local-quit) | ||
| 1643 | (defmacro gnus-with-local-quit (&rest body) | ||
| 1644 | "Execute BODY, allowing quits to terminate BODY but not escape further. | ||
| 1645 | When a quit terminates BODY, `gnus-with-local-quit' returns nil but | ||
| 1646 | requests another quit. That quit will be processed as soon as quitting | ||
| 1647 | is allowed once again. (Immediately, if `inhibit-quit' is nil.)" | ||
| 1648 | ;;(declare (debug t) (indent 0)) | ||
| 1649 | `(condition-case nil | ||
| 1650 | (let ((inhibit-quit nil)) | ||
| 1651 | ,@body) | ||
| 1652 | (quit (setq quit-flag t) | ||
| 1653 | ;; This call is to give a chance to handle quit-flag | ||
| 1654 | ;; in case inhibit-quit is nil. | ||
| 1655 | ;; Without this, it will not be handled until the next function | ||
| 1656 | ;; call, and that might allow it to exit thru a condition-case | ||
| 1657 | ;; that intends to handle the quit signal next time. | ||
| 1658 | (eval '(ignore nil)))))) | ||
| 1659 | |||
| 1619 | (provide 'gnus-util) | 1660 | (provide 'gnus-util) |
| 1620 | 1661 | ||
| 1621 | ;;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49 | 1662 | ;;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49 |
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index 8778d0a4b57..07fb73666fa 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el | |||
| @@ -1057,17 +1057,11 @@ If SUFFIX is non-nil, add that at the end of the file name." | |||
| 1057 | (setq file (concat file suffix))) | 1057 | (setq file (concat file suffix))) |
| 1058 | (if dir-flag | 1058 | (if dir-flag |
| 1059 | (make-directory file) | 1059 | (make-directory file) |
| 1060 | (if (or (featurep 'xemacs) | 1060 | ;; NOTE: This is unsafe if Emacs 20 |
| 1061 | (= emacs-major-version 20)) | 1061 | ;; users and XEmacs users don't use |
| 1062 | ;; NOTE: This is unsafe if Emacs 20 | 1062 | ;; a secure temp directory. |
| 1063 | ;; users and XEmacs users don't use | 1063 | (gmm-write-region "" nil file nil 'silent |
| 1064 | ;; a secure temp directory. | 1064 | nil 'excl)) |
| 1065 | (if (file-exists-p file) | ||
| 1066 | (signal 'file-already-exists | ||
| 1067 | (list "File exists" file)) | ||
| 1068 | (write-region "" nil file nil 'silent)) | ||
| 1069 | (write-region "" nil file nil 'silent | ||
| 1070 | nil 'excl))) | ||
| 1071 | nil) | 1065 | nil) |
| 1072 | (file-already-exists t) | 1066 | (file-already-exists t) |
| 1073 | ;; The Emacs 20 and XEmacs versions of | 1067 | ;; The Emacs 20 and XEmacs versions of |
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index 9d9d87a3670..b1ed0b7af4e 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el | |||
| @@ -373,7 +373,7 @@ Return that buffer." | |||
| 373 | mm-security-handle 'gnus-details | 373 | mm-security-handle 'gnus-details |
| 374 | (format "Clear verification not supported by `%s'.\n" mml2015-use)))) | 374 | (format "Clear verification not supported by `%s'.\n" mml2015-use)))) |
| 375 | (goto-char (point-min)) | 375 | (goto-char (point-min)) |
| 376 | (if (search-forward "\n\n" nil t) | 376 | (if (re-search-forward "\n[\t ]*\n" nil t) |
| 377 | (delete-region (point-min) (point))) | 377 | (delete-region (point-min) (point))) |
| 378 | (if (re-search-forward mm-uu-pgp-beginning-signature nil t) | 378 | (if (re-search-forward mm-uu-pgp-beginning-signature nil t) |
| 379 | (delete-region (match-beginning 0) (point-max))) | 379 | (delete-region (match-beginning 0) (point-max))) |
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el index 6024b992061..589c4da8caf 100644 --- a/lisp/gnus/nnmaildir.el +++ b/lisp/gnus/nnmaildir.el | |||
| @@ -428,7 +428,8 @@ by nnmaildir-request-article.") | |||
| 428 | (prin1 (vector storage-version num msgid nov) (current-buffer)) | 428 | (prin1 (vector storage-version num msgid nov) (current-buffer)) |
| 429 | (setq file (concat novfile ":")) | 429 | (setq file (concat novfile ":")) |
| 430 | (nnmaildir--unlink file) | 430 | (nnmaildir--unlink file) |
| 431 | (write-region (point-min) (point-max) file nil 'no-message nil 'excl)) | 431 | (gmm-write-region (point-min) (point-max) file nil 'no-message nil |
| 432 | 'excl)) | ||
| 432 | (rename-file file novfile 'replace) | 433 | (rename-file file novfile 'replace) |
| 433 | (setf (nnmaildir--art-msgid article) msgid) | 434 | (setf (nnmaildir--art-msgid article) msgid) |
| 434 | nov))) | 435 | nov))) |
| @@ -1246,8 +1247,8 @@ by nnmaildir-request-article.") | |||
| 1246 | (throw 'return nil)) | 1247 | (throw 'return nil)) |
| 1247 | (save-excursion | 1248 | (save-excursion |
| 1248 | (set-buffer buffer) | 1249 | (set-buffer buffer) |
| 1249 | (write-region (point-min) (point-max) tmpfile nil 'no-message nil | 1250 | (gmm-write-region (point-min) (point-max) tmpfile nil 'no-message nil |
| 1250 | 'excl)) | 1251 | 'excl)) |
| 1251 | (unix-sync) ;; no fsync :( | 1252 | (unix-sync) ;; no fsync :( |
| 1252 | (rename-file tmpfile (concat (nnmaildir--cur dir) file suffix) 'replace) | 1253 | (rename-file tmpfile (concat (nnmaildir--cur dir) file suffix) 'replace) |
| 1253 | t))) | 1254 | t))) |
| @@ -1341,8 +1342,8 @@ by nnmaildir-request-article.") | |||
| 1341 | (condition-case nil | 1342 | (condition-case nil |
| 1342 | (add-name-to-file nnmaildir--file tmpfile) | 1343 | (add-name-to-file nnmaildir--file tmpfile) |
| 1343 | (error | 1344 | (error |
| 1344 | (write-region (point-min) (point-max) tmpfile nil 'no-message nil | 1345 | (gmm-write-region (point-min) (point-max) tmpfile nil 'no-message nil |
| 1345 | 'excl) | 1346 | 'excl) |
| 1346 | (unix-sync))) ;; no fsync :( | 1347 | (unix-sync))) ;; no fsync :( |
| 1347 | (nnheader-cancel-timer 24h) | 1348 | (nnheader-cancel-timer 24h) |
| 1348 | (condition-case err | 1349 | (condition-case err |
diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el index 81ef74c4098..4b376957377 100644 --- a/lisp/gnus/pop3.el +++ b/lisp/gnus/pop3.el | |||
| @@ -75,22 +75,22 @@ | |||
| 75 | 75 | ||
| 76 | (defcustom pop3-authentication-scheme 'pass | 76 | (defcustom pop3-authentication-scheme 'pass |
| 77 | "*POP3 authentication scheme. | 77 | "*POP3 authentication scheme. |
| 78 | Defaults to 'pass, for the standard USER/PASS authentication. Other valid | 78 | Defaults to `pass', for the standard USER/PASS authentication. The other |
| 79 | values are 'apop." | 79 | valid value is 'apop'." |
| 80 | :version "22.1" ;; Oort Gnus | 80 | :type '(choice (const :tag "Normal user/password" pass) |
| 81 | :type '(choice (const :tag "USER/PASS" pass) | ||
| 82 | (const :tag "APOP" apop)) | 81 | (const :tag "APOP" apop)) |
| 82 | :version "22.1" ;; Oort Gnus | ||
| 83 | :group 'pop3) | 83 | :group 'pop3) |
| 84 | 84 | ||
| 85 | (defcustom pop3-leave-mail-on-server nil | 85 | (defcustom pop3-leave-mail-on-server nil |
| 86 | "*Non-nil if the mail is to be left on the POP server after fetching. | 86 | "*Non-nil if the mail is to be left on the POP server after fetching. |
| 87 | 87 | ||
| 88 | If the `pop3-leave-mail-on-server' is non-`nil' the mail is to be | 88 | If `pop3-leave-mail-on-server' is non-nil the mail is to be left |
| 89 | left on the POP server after fetching. Note that POP servers | 89 | on the POP server after fetching. Note that POP servers maintain |
| 90 | maintain no state information between sessions, so what the | 90 | no state information between sessions, so what the client |
| 91 | client believes is there and what is actually there may not match | 91 | believes is there and what is actually there may not match up. |
| 92 | up. If they do not, then you may get duplicate mails or the | 92 | If they do not, then you may get duplicate mails or the whole |
| 93 | whole thing can fall apart and leave you with a corrupt mailbox." | 93 | thing can fall apart and leave you with a corrupt mailbox." |
| 94 | ;; We can't use the UILD support from XEmacs mail-lib or cvs.m17n.org: | 94 | ;; We can't use the UILD support from XEmacs mail-lib or cvs.m17n.org: |
| 95 | ;; http://thread.gmane.org/v9lld8fml4.fsf@marauder.physik.uni-ulm.de | 95 | ;; http://thread.gmane.org/v9lld8fml4.fsf@marauder.physik.uni-ulm.de |
| 96 | ;; http://thread.gmane.org/b9yy8hzy9ej.fsf@jpl.org | 96 | ;; http://thread.gmane.org/b9yy8hzy9ej.fsf@jpl.org |
| @@ -170,11 +170,14 @@ Shorter values mean quicker response, but are more CPU intensive.") | |||
| 170 | (unless pop3-leave-mail-on-server | 170 | (unless pop3-leave-mail-on-server |
| 171 | (pop3-dele process n)) | 171 | (pop3-dele process n)) |
| 172 | (setq n (+ 1 n)) | 172 | (setq n (+ 1 n)) |
| 173 | (if pop3-debug (sit-for 1) (sit-for 0.1)) | 173 | (if pop3-debug (sit-for 1) (sit-for 0.1))) ; why? |
| 174 | ) | 174 | (when (and pop3-leave-mail-on-server |
| 175 | (> n 1)) | ||
| 176 | (message "pop3.el doesn't support UIDL. Setting `pop3-leave-mail-on-server' | ||
| 177 | to %s might not give the result you'd expect." pop3-leave-mail-on-server) | ||
| 178 | (sit-for 1)) | ||
| 175 | (pop3-quit process)) | 179 | (pop3-quit process)) |
| 176 | (kill-buffer crashbuf) | 180 | (kill-buffer crashbuf)) |
| 177 | ) | ||
| 178 | t) | 181 | t) |
| 179 | 182 | ||
| 180 | (defun pop3-get-message-count () | 183 | (defun pop3-get-message-count () |
| @@ -316,6 +319,8 @@ If NOW, use that time instead." | |||
| 316 | ;; Date: 08 Jul 1996 23:22:24 -0400 | 319 | ;; Date: 08 Jul 1996 23:22:24 -0400 |
| 317 | ;; should be | 320 | ;; should be |
| 318 | ;; Tue Jul 9 09:04:21 1996 | 321 | ;; Tue Jul 9 09:04:21 1996 |
| 322 | |||
| 323 | ;; Fixme: This should use timezone on the date field contents. | ||
| 319 | (setq date | 324 | (setq date |
| 320 | (cond ((not date) | 325 | (cond ((not date) |
| 321 | "Tue Jan 1 00:00:0 1900") | 326 | "Tue Jan 1 00:00:0 1900") |
diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el index db00fff6c1c..6d33c155c64 100644 --- a/lisp/help-at-pt.el +++ b/lisp/help-at-pt.el | |||
| @@ -246,7 +246,7 @@ properties, to enable buffer local values." | |||
| 246 | (defun scan-buf-move-to-region (prop &optional arg hook) | 246 | (defun scan-buf-move-to-region (prop &optional arg hook) |
| 247 | "Go to the start of the next region with non-nil PROP property. | 247 | "Go to the start of the next region with non-nil PROP property. |
| 248 | Then run HOOK, which should be a quoted symbol that is a normal | 248 | Then run HOOK, which should be a quoted symbol that is a normal |
| 249 | hook.variable, or an expression evaluating to such a symbol. | 249 | hook variable, or an expression evaluating to such a symbol. |
| 250 | Adjacent areas with different non-nil PROP properties are | 250 | Adjacent areas with different non-nil PROP properties are |
| 251 | considered different regions. | 251 | considered different regions. |
| 252 | 252 | ||
diff --git a/lisp/help.el b/lisp/help.el index b79e028b633..34b1a2fac61 100644 --- a/lisp/help.el +++ b/lisp/help.el | |||
| @@ -764,7 +764,7 @@ descriptions of the minor modes, each on a separate page. | |||
| 764 | For this to work correctly for a minor mode, the mode's indicator | 764 | For this to work correctly for a minor mode, the mode's indicator |
| 765 | variable \(listed in `minor-mode-alist') must also be a function | 765 | variable \(listed in `minor-mode-alist') must also be a function |
| 766 | whose documentation describes the minor mode." | 766 | whose documentation describes the minor mode." |
| 767 | (interactive) | 767 | (interactive "@") |
| 768 | (unless buffer (setq buffer (current-buffer))) | 768 | (unless buffer (setq buffer (current-buffer))) |
| 769 | (help-setup-xref (list #'describe-mode buffer) | 769 | (help-setup-xref (list #'describe-mode buffer) |
| 770 | (interactive-p)) | 770 | (interactive-p)) |
diff --git a/lisp/ido.el b/lisp/ido.el index b68a4622ef8..ff222b2958c 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -3084,12 +3084,14 @@ for first matching file." | |||
| 3084 | (let ((oa (ido-file-extension-order a n)) | 3084 | (let ((oa (ido-file-extension-order a n)) |
| 3085 | (ob (ido-file-extension-order b n))) | 3085 | (ob (ido-file-extension-order b n))) |
| 3086 | (cond | 3086 | (cond |
| 3087 | ((= oa ob) | ||
| 3088 | lessp) | ||
| 3089 | ((and oa ob) | 3087 | ((and oa ob) |
| 3090 | (if lessp | 3088 | (cond |
| 3091 | (> oa ob) | 3089 | ((= oa ob) |
| 3092 | (< oa ob))) | 3090 | lessp) |
| 3091 | (lessp | ||
| 3092 | (> oa ob)) | ||
| 3093 | (t | ||
| 3094 | (< oa ob)))) | ||
| 3093 | (oa | 3095 | (oa |
| 3094 | (not lessp)) | 3096 | (not lessp)) |
| 3095 | (ob | 3097 | (ob |
| @@ -3136,7 +3138,12 @@ for first matching file." | |||
| 3136 | (let ((filenames | 3138 | (let ((filenames |
| 3137 | (split-string | 3139 | (split-string |
| 3138 | (shell-command-to-string | 3140 | (shell-command-to-string |
| 3139 | (concat "find " dir " -name \"" (if prefix "" "*") file "*\" -type " (if finddir "d" "f") " -print")))) | 3141 | (concat "find " |
| 3142 | (shell-quote-argument dir) | ||
| 3143 | " -name " | ||
| 3144 | (shell-quote-argument | ||
| 3145 | (concat (if prefix "" "*") file "*")) | ||
| 3146 | " -type " (if finddir "d" "f") " -print")))) | ||
| 3140 | filename d f | 3147 | filename d f |
| 3141 | res) | 3148 | res) |
| 3142 | (while filenames | 3149 | (while filenames |
diff --git a/lisp/info-look.el b/lisp/info-look.el index 404eee3f2d0..2ac461aa669 100644 --- a/lisp/info-look.el +++ b/lisp/info-look.el | |||
| @@ -843,12 +843,13 @@ Return nil if there is nothing appropriate in the buffer near point." | |||
| 843 | (info-lookup-maybe-add-help | 843 | (info-lookup-maybe-add-help |
| 844 | :mode 'maxima-mode | 844 | :mode 'maxima-mode |
| 845 | :ignore-case t | 845 | :ignore-case t |
| 846 | :regexp "[a-zA-Z_%]+" | 846 | :regexp "[a-zA-Z0-9_%]+" |
| 847 | :doc-spec '( ("(maxima)Function and Variable Index" nil | 847 | :doc-spec '( ("(maxima)Function and Variable Index" nil |
| 848 | "^ -+ [^:]+:[ ]+\\(\\[[^=]*=[ ]+\\)?" nil))) | 848 | "^ -+ [^:]+:[ ]+\\(\\[[^=]*=[ ]+\\)?" nil))) |
| 849 | 849 | ||
| 850 | (info-lookup-maybe-add-help | 850 | (info-lookup-maybe-add-help |
| 851 | :mode 'inferior-maxima-mode | 851 | :mode 'inferior-maxima-mode |
| 852 | :regexp "[a-zA-Z0-9_%]+" | ||
| 852 | :other-modes '(maxima-mode)) | 853 | :other-modes '(maxima-mode)) |
| 853 | 854 | ||
| 854 | ;; coreutils and bash builtins overlap in places, eg. printf, so there's a | 855 | ;; coreutils and bash builtins overlap in places, eg. printf, so there's a |
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 9694a4e52c8..bbe219745e9 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el | |||
| @@ -219,19 +219,21 @@ They means `unix', `dos', and `mac' respectively." | |||
| 219 | ((eq eol-type 'dos) 1) | 219 | ((eq eol-type 'dos) 1) |
| 220 | ((eq eol-type 'mac) 2) | 220 | ((eq eol-type 'mac) 2) |
| 221 | (t eol-type)))) | 221 | (t eol-type)))) |
| 222 | (let ((orig-eol-type (coding-system-eol-type coding-system))) | 222 | ;; We call `coding-system-base' before `coding-system-eol-type', |
| 223 | (if (vectorp orig-eol-type) | 223 | ;; because the coding-system may not be initialized until then. |
| 224 | (if (not eol-type) | 224 | (let* ((base (coding-system-base coding-system)) |
| 225 | coding-system | 225 | (orig-eol-type (coding-system-eol-type coding-system))) |
| 226 | (aref orig-eol-type eol-type)) | 226 | (cond ((vectorp orig-eol-type) |
| 227 | (let ((base (coding-system-base coding-system))) | 227 | (if (not eol-type) |
| 228 | (if (not eol-type) | 228 | coding-system |
| 229 | base | 229 | (aref orig-eol-type eol-type))) |
| 230 | (if (= eol-type orig-eol-type) | 230 | ((not eol-type) |
| 231 | coding-system | 231 | base) |
| 232 | (setq orig-eol-type (coding-system-eol-type base)) | 232 | ((= eol-type orig-eol-type) |
| 233 | (if (vectorp orig-eol-type) | 233 | coding-system) |
| 234 | (aref orig-eol-type eol-type)))))))) | 234 | ((progn (setq orig-eol-type (coding-system-eol-type base)) |
| 235 | (vectorp orig-eol-type)) | ||
| 236 | (aref orig-eol-type eol-type))))) | ||
| 235 | 237 | ||
| 236 | (defun coding-system-change-text-conversion (coding-system coding) | 238 | (defun coding-system-change-text-conversion (coding-system coding) |
| 237 | "Return a coding system which differs from CODING-SYSTEM in text conversion. | 239 | "Return a coding system which differs from CODING-SYSTEM in text conversion. |
diff --git a/lisp/isearch.el b/lisp/isearch.el index 0d253211da4..6e418fc1161 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -1289,23 +1289,18 @@ If search string is empty, just beep." | |||
| 1289 | (defun isearch-mouse-2 (click) | 1289 | (defun isearch-mouse-2 (click) |
| 1290 | "Handle mouse-2 in Isearch mode. | 1290 | "Handle mouse-2 in Isearch mode. |
| 1291 | For a click in the echo area, invoke `isearch-yank-x-selection'. | 1291 | For a click in the echo area, invoke `isearch-yank-x-selection'. |
| 1292 | Otherwise invoke whatever mouse-2 is bound to outside of Isearch." | 1292 | Otherwise invoke whatever the calling mouse-2 command sequence |
| 1293 | is bound to outside of Isearch." | ||
| 1293 | (interactive "e") | 1294 | (interactive "e") |
| 1294 | (let* ((w (posn-window (event-start click))) | 1295 | (let* ((w (posn-window (event-start click))) |
| 1295 | (overriding-terminal-local-map nil) | 1296 | (overriding-terminal-local-map nil) |
| 1296 | (key (vector (event-basic-type click))) | 1297 | (binding (key-binding (this-command-keys-vector) t))) |
| 1297 | ;; FIXME: `key-binding' should accept an event as argument | ||
| 1298 | ;; and do all the overlay/text-properties lookup etc... | ||
| 1299 | (binding (with-current-buffer | ||
| 1300 | (if (window-live-p w) (window-buffer w) (current-buffer)) | ||
| 1301 | (key-binding key)))) | ||
| 1302 | (if (and (window-minibuffer-p w) | 1298 | (if (and (window-minibuffer-p w) |
| 1303 | (not (minibuffer-window-active-p w))) ; in echo area | 1299 | (not (minibuffer-window-active-p w))) ; in echo area |
| 1304 | (isearch-yank-x-selection) | 1300 | (isearch-yank-x-selection) |
| 1305 | (when (functionp binding) | 1301 | (when (functionp binding) |
| 1306 | (call-interactively binding))))) | 1302 | (call-interactively binding))))) |
| 1307 | 1303 | ||
| 1308 | |||
| 1309 | (defun isearch-yank-internal (jumpform) | 1304 | (defun isearch-yank-internal (jumpform) |
| 1310 | "Pull the text from point to the point reached by JUMPFORM. | 1305 | "Pull the text from point to the point reached by JUMPFORM. |
| 1311 | JUMPFORM is a lambda expression that takes no arguments and returns a | 1306 | JUMPFORM is a lambda expression that takes no arguments and returns a |
diff --git a/lisp/longlines.el b/lisp/longlines.el index 77e0b415344..ee469e1be09 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el | |||
| @@ -410,7 +410,7 @@ This is called by `post-command-hook' after each command." | |||
| 410 | 410 | ||
| 411 | (defun longlines-window-change-function () | 411 | (defun longlines-window-change-function () |
| 412 | "Re-wrap the buffer if the window width has changed. | 412 | "Re-wrap the buffer if the window width has changed. |
| 413 | This is called by `window-size-change-functions'." | 413 | This is called by `window-configuration-change-hook'." |
| 414 | (when (/= fill-column (- (window-width) window-min-width)) | 414 | (when (/= fill-column (- (window-width) window-min-width)) |
| 415 | (setq fill-column (- (window-width) window-min-width)) | 415 | (setq fill-column (- (window-width) window-min-width)) |
| 416 | (let ((mod (buffer-modified-p))) | 416 | (let ((mod (buffer-modified-p))) |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 72091a2ecd6..40e611152a1 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -623,7 +623,7 @@ the variable `rmail-mime-feature'.") | |||
| 623 | 623 | ||
| 624 | ;;;###autoload | 624 | ;;;###autoload |
| 625 | (defvar rmail-mime-charset-pattern | 625 | (defvar rmail-mime-charset-pattern |
| 626 | (concat "^content-type:[ ]*text/plain;" | 626 | (concat "^content-type:[ \t]*text/plain;" |
| 627 | "\\(?:[ \t\n]*\\(?:format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*" | 627 | "\\(?:[ \t\n]*\\(?:format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*" |
| 628 | "[ \t\n]*charset=\"?\\([^ \t\n\";]+\\)\"?") | 628 | "[ \t\n]*charset=\"?\\([^ \t\n\";]+\\)\"?") |
| 629 | "Regexp to match MIME-charset specification in a header of message. | 629 | "Regexp to match MIME-charset specification in a header of message. |
| @@ -2875,6 +2875,12 @@ iso-8859, koi8-r, etc." | |||
| 2875 | (coding-system-change-eol-conversion | 2875 | (coding-system-change-eol-conversion |
| 2876 | coding | 2876 | coding |
| 2877 | (coding-system-eol-type old-coding))) | 2877 | (coding-system-eol-type old-coding))) |
| 2878 | ;; If old-coding is `undecided', encode-coding-region | ||
| 2879 | ;; will not encode the text at all. Find a proper | ||
| 2880 | ;; non-trivial encoding to use. | ||
| 2881 | (if (memq (coding-system-base old-coding) '(nil undecided)) | ||
| 2882 | (setq old-coding | ||
| 2883 | (car (find-coding-systems-region msgbeg msgend)))) | ||
| 2878 | (setq x-coding-header (point-marker)) | 2884 | (setq x-coding-header (point-marker)) |
| 2879 | (narrow-to-region msgbeg msgend) | 2885 | (narrow-to-region msgbeg msgend) |
| 2880 | (encode-coding-region (point) msgend old-coding) | 2886 | (encode-coding-region (point) msgend old-coding) |
diff --git a/lisp/mouse-sel.el b/lisp/mouse-sel.el index a327b589f54..a1209f827f1 100644 --- a/lisp/mouse-sel.el +++ b/lisp/mouse-sel.el | |||
| @@ -737,7 +737,8 @@ If `mouse-yank-at-point' is non-nil, insert at point instead." | |||
| 737 | (mouse-set-point event)) | 737 | (mouse-set-point event)) |
| 738 | (when mouse-sel-get-selection-function | 738 | (when mouse-sel-get-selection-function |
| 739 | (push-mark (point) 'nomsg) | 739 | (push-mark (point) 'nomsg) |
| 740 | (insert (or (funcall mouse-sel-get-selection-function selection) "")))) | 740 | (insert-for-yank |
| 741 | (or (funcall mouse-sel-get-selection-function selection) "")))) | ||
| 741 | 742 | ||
| 742 | ;;=== Handle loss of selections =========================================== | 743 | ;;=== Handle loss of selections =========================================== |
| 743 | 744 | ||
diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 0cf0160afb1..9d089a2e164 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el | |||
| @@ -238,7 +238,7 @@ behavior for explicit filling, you might as well use \\[newline-and-indent]." | |||
| 238 | (defcustom comment-empty-lines nil | 238 | (defcustom comment-empty-lines nil |
| 239 | "If nil, `comment-region' does not comment out empty lines. | 239 | "If nil, `comment-region' does not comment out empty lines. |
| 240 | If t, it always comments out empty lines. | 240 | If t, it always comments out empty lines. |
| 241 | if `eol' it only comments out empty lines if comments are | 241 | If `eol' it only comments out empty lines if comments are |
| 242 | terminated by the end of line (i.e. `comment-end' is empty)." | 242 | terminated by the end of line (i.e. `comment-end' is empty)." |
| 243 | :type '(choice (const :tag "Never" nil) | 243 | :type '(choice (const :tag "Never" nil) |
| 244 | (const :tag "Always" t) | 244 | (const :tag "Always" t) |
| @@ -1124,12 +1124,44 @@ This has no effect in modes that do not define a comment syntax." | |||
| 1124 | :group 'comment) | 1124 | :group 'comment) |
| 1125 | 1125 | ||
| 1126 | (defun comment-valid-prefix-p (prefix compos) | 1126 | (defun comment-valid-prefix-p (prefix compos) |
| 1127 | (or | 1127 | "Check that the adaptive-fill-prefix is consistent with the context. |
| 1128 | ;; Accept any prefix if the current comment is not EOL-terminated. | 1128 | PREFIX is the prefix (presumably guessed by `adaptive-fill-mode'). |
| 1129 | (save-excursion (goto-char compos) (comment-forward) (not (bolp))) | 1129 | COMPOS is the position of the beginning of the comment we're in, or nil |
| 1130 | ;; Accept any prefix that starts with a comment-start marker. | 1130 | if we're not inside a comment." |
| 1131 | (string-match (concat "\\`[ \t]*\\(?:" comment-start-skip "\\)") | 1131 | ;; This consistency checking is mostly needed to workaround the limitation |
| 1132 | prefix))) | 1132 | ;; of auto-fill-mode whose paragraph-determination doesn't pay attention |
| 1133 | ;; to comment boundaries. | ||
| 1134 | (if (null compos) | ||
| 1135 | ;; We're not inside a comment: the prefix shouldn't match | ||
| 1136 | ;; a comment-starter. | ||
| 1137 | (not (and comment-start comment-start-skip | ||
| 1138 | (string-match comment-start-skip prefix))) | ||
| 1139 | (or | ||
| 1140 | ;; Accept any prefix if the current comment is not EOL-terminated. | ||
| 1141 | (save-excursion (goto-char compos) (comment-forward) (not (bolp))) | ||
| 1142 | ;; Accept any prefix that starts with the same comment-start marker | ||
| 1143 | ;; as the current one. | ||
| 1144 | (when (string-match (concat "\\`[ \t]*\\(?:" comment-start-skip "\\)") | ||
| 1145 | prefix) | ||
| 1146 | (let ((prefix-com (comment-string-strip (match-string 0 prefix) nil t))) | ||
| 1147 | (string-match "\\`[ \t]*" prefix-com) | ||
| 1148 | (let* ((prefix-space (match-string 0 prefix-com)) | ||
| 1149 | (prefix-indent (string-width prefix-space)) | ||
| 1150 | (prefix-comstart (substring prefix-com (match-end 0)))) | ||
| 1151 | (save-excursion | ||
| 1152 | (goto-char compos) | ||
| 1153 | ;; The comstart marker is the same. | ||
| 1154 | (and (looking-at (regexp-quote prefix-comstart)) | ||
| 1155 | ;; The indentation as well. | ||
| 1156 | (or (= prefix-indent | ||
| 1157 | (- (current-column) (current-left-margin))) | ||
| 1158 | ;; Check the indentation in two different ways, just | ||
| 1159 | ;; to try and avoid most of the potential funny cases. | ||
| 1160 | (equal prefix-space | ||
| 1161 | (buffer-substring (point) | ||
| 1162 | (progn (move-to-left-margin) | ||
| 1163 | (point))))))))))))) | ||
| 1164 | |||
| 1133 | 1165 | ||
| 1134 | ;;;###autoload | 1166 | ;;;###autoload |
| 1135 | (defun comment-indent-new-line (&optional soft) | 1167 | (defun comment-indent-new-line (&optional soft) |
| @@ -1182,8 +1214,7 @@ unless optional argument SOFT is non-nil." | |||
| 1182 | ;; If there's an adaptive prefix, use it unless we're inside | 1214 | ;; If there's an adaptive prefix, use it unless we're inside |
| 1183 | ;; a comment and the prefix is not a comment starter. | 1215 | ;; a comment and the prefix is not a comment starter. |
| 1184 | ((and fill-prefix | 1216 | ((and fill-prefix |
| 1185 | (or (not compos) | 1217 | (comment-valid-prefix-p fill-prefix compos)) |
| 1186 | (comment-valid-prefix-p fill-prefix compos))) | ||
| 1187 | (indent-to-left-margin) | 1218 | (indent-to-left-margin) |
| 1188 | (insert-and-inherit fill-prefix)) | 1219 | (insert-and-inherit fill-prefix)) |
| 1189 | ;; If we're not inside a comment, just try to indent. | 1220 | ;; If we're not inside a comment, just try to indent. |
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 69f4549a0bf..3264e0e72f6 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Free Software Foundation, Inc. | 5 | ;; Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | ;; Author: Ilya Zakharevich and Bob Olson | 7 | ;; Author: Ilya Zakharevich and Bob Olson |
| 8 | ;; Maintainer: Ilya Zakharevich <cperl@ilyaz.org> | 8 | ;; Maintainer: Ilya Zakharevich <ilyaz@cpan.org> |
| 9 | ;; Keywords: languages, Perl | 9 | ;; Keywords: languages, Perl |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| @@ -25,7 +25,7 @@ | |||
| 25 | ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 25 | ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 26 | ;; Boston, MA 02110-1301, USA. | 26 | ;; Boston, MA 02110-1301, USA. |
| 27 | 27 | ||
| 28 | ;;; Corrections made by Ilya Zakharevich cperl@ilyaz.org | 28 | ;;; Corrections made by Ilya Zakharevich ilyaz@cpan.org |
| 29 | 29 | ||
| 30 | ;;; Commentary: | 30 | ;;; Commentary: |
| 31 | 31 | ||
| @@ -67,67 +67,89 @@ | |||
| 67 | ;; likewise with m, tr, y, q, qX instead of s | 67 | ;; likewise with m, tr, y, q, qX instead of s |
| 68 | 68 | ||
| 69 | ;;; Code: | 69 | ;;; Code: |
| 70 | 70 | ||
| 71 | (defvar vc-rcs-header) | 71 | (defvar vc-rcs-header) |
| 72 | (defvar vc-sccs-header) | 72 | (defvar vc-sccs-header) |
| 73 | 73 | ||
| 74 | ;; Some macros are needed for `defcustom' | ||
| 75 | (eval-when-compile | 74 | (eval-when-compile |
| 76 | (condition-case nil | 75 | (condition-case nil |
| 77 | (require 'man) | 76 | (require 'custom) |
| 78 | (error nil)) | 77 | (error nil)) |
| 79 | (defconst cperl-xemacs-p (string-match "XEmacs\\|Lucid" emacs-version)) | 78 | (condition-case nil |
| 80 | (defvar cperl-can-font-lock | 79 | (require 'man) |
| 81 | (or cperl-xemacs-p | 80 | (error nil)) |
| 82 | (and (boundp 'emacs-major-version) | 81 | (defconst cperl-xemacs-p (string-match "XEmacs\\|Lucid" emacs-version)) |
| 83 | (or window-system | 82 | (defvar cperl-can-font-lock |
| 84 | (> emacs-major-version 20))))) | 83 | (or cperl-xemacs-p |
| 85 | (if cperl-can-font-lock | 84 | (and (boundp 'emacs-major-version) |
| 86 | (require 'font-lock)) | 85 | (or window-system |
| 87 | (defvar msb-menu-cond) | 86 | (> emacs-major-version 20))))) |
| 88 | (defvar gud-perldb-history) | 87 | (if cperl-can-font-lock |
| 89 | (defvar font-lock-background-mode) ; not in Emacs | 88 | (require 'font-lock)) |
| 90 | (defvar font-lock-display-type) ; ditto | 89 | (defvar msb-menu-cond) |
| 91 | (defmacro cperl-is-face (arg) ; Takes quoted arg | 90 | (defvar gud-perldb-history) |
| 92 | (cond ((fboundp 'find-face) | 91 | (defvar font-lock-background-mode) ; not in Emacs |
| 93 | `(find-face ,arg)) | 92 | (defvar font-lock-display-type) ; ditto |
| 94 | (;;(and (fboundp 'face-list) | 93 | (defvar paren-backwards-message) ; Not in newer XEmacs? |
| 95 | ;; (face-list)) | 94 | (or (fboundp 'defgroup) |
| 96 | (fboundp 'face-list) | 95 | (defmacro defgroup (name val doc &rest arr) |
| 97 | `(member ,arg (and (fboundp 'face-list) | 96 | nil)) |
| 98 | (face-list)))) | 97 | (or (fboundp 'custom-declare-variable) |
| 99 | (t | 98 | (defmacro defcustom (name val doc &rest arr) |
| 100 | `(boundp ,arg)))) | 99 | (` (defvar (, name) (, val) (, doc))))) |
| 101 | (defmacro cperl-make-face (arg descr) ; Takes unquoted arg | 100 | (or (and (fboundp 'custom-declare-variable) |
| 102 | (cond ((fboundp 'make-face) | 101 | (string< "19.31" emacs-version)) ; Checked with 19.30: defface does not work |
| 103 | `(make-face (quote ,arg))) | 102 | (defmacro defface (&rest arr) |
| 104 | (t | 103 | nil)) |
| 105 | `(defvar ,arg (quote ,arg) ,descr)))) | 104 | ;; Avoid warning (tmp definitions) |
| 106 | (defmacro cperl-force-face (arg descr) ; Takes unquoted arg | 105 | (or (fboundp 'x-color-defined-p) |
| 107 | `(progn | 106 | (defmacro x-color-defined-p (col) |
| 108 | (or (cperl-is-face (quote ,arg)) | 107 | (cond ((fboundp 'color-defined-p) (` (color-defined-p (, col)))) |
| 109 | (cperl-make-face ,arg ,descr)) | 108 | ;; XEmacs >= 19.12 |
| 110 | (or (boundp (quote ,arg)) ; We use unquoted variants too | 109 | ((fboundp 'valid-color-name-p) (` (valid-color-name-p (, col)))) |
| 111 | (defvar ,arg (quote ,arg) ,descr)))) | 110 | ;; XEmacs 19.11 |
| 112 | (if cperl-xemacs-p | 111 | ((fboundp 'x-valid-color-name-p) (` (x-valid-color-name-p (, col)))) |
| 113 | (defmacro cperl-etags-snarf-tag (file line) | 112 | (t '(error "Cannot implement color-defined-p"))))) |
| 114 | `(progn | 113 | (defmacro cperl-is-face (arg) ; Takes quoted arg |
| 115 | (beginning-of-line 2) | 114 | (cond ((fboundp 'find-face) |
| 116 | (list ,file ,line))) | 115 | (` (find-face (, arg)))) |
| 117 | (defmacro cperl-etags-snarf-tag (file line) | 116 | (;;(and (fboundp 'face-list) |
| 118 | `(etags-snarf-tag))) | 117 | ;; (face-list)) |
| 119 | (if cperl-xemacs-p | 118 | (fboundp 'face-list) |
| 120 | (defmacro cperl-etags-goto-tag-location (elt) | 119 | (` (member (, arg) (and (fboundp 'face-list) |
| 121 | ;;(progn | 120 | (face-list))))) |
| 122 | ;; (switch-to-buffer (get-file-buffer (elt (, elt) 0))) | 121 | (t |
| 123 | ;; (set-buffer (get-file-buffer (elt (, elt) 0))) | 122 | (` (boundp (, arg)))))) |
| 124 | ;; Probably will not work due to some save-excursion??? | 123 | (defmacro cperl-make-face (arg descr) ; Takes unquoted arg |
| 125 | ;; Or save-file-position? | 124 | (cond ((fboundp 'make-face) |
| 126 | ;; (message "Did I get to line %s?" (elt (, elt) 1)) | 125 | (` (make-face (quote (, arg))))) |
| 127 | `(goto-line (string-to-number (elt ,elt 1)))) | 126 | (t |
| 128 | ;;) | 127 | (` (defvar (, arg) (quote (, arg)) (, descr)))))) |
| 129 | (defmacro cperl-etags-goto-tag-location (elt) | 128 | (defmacro cperl-force-face (arg descr) ; Takes unquoted arg |
| 130 | `(etags-goto-tag-location ,elt)))) | 129 | (` (progn |
| 130 | (or (cperl-is-face (quote (, arg))) | ||
| 131 | (cperl-make-face (, arg) (, descr))) | ||
| 132 | (or (boundp (quote (, arg))) ; We use unquoted variants too | ||
| 133 | (defvar (, arg) (quote (, arg)) (, descr)))))) | ||
| 134 | (if cperl-xemacs-p | ||
| 135 | (defmacro cperl-etags-snarf-tag (file line) | ||
| 136 | (` (progn | ||
| 137 | (beginning-of-line 2) | ||
| 138 | (list (, file) (, line))))) | ||
| 139 | (defmacro cperl-etags-snarf-tag (file line) | ||
| 140 | (` (etags-snarf-tag)))) | ||
| 141 | (if cperl-xemacs-p | ||
| 142 | (defmacro cperl-etags-goto-tag-location (elt) | ||
| 143 | (`;;(progn | ||
| 144 | ;; (switch-to-buffer (get-file-buffer (elt (, elt) 0))) | ||
| 145 | ;; (set-buffer (get-file-buffer (elt (, elt) 0))) | ||
| 146 | ;; Probably will not work due to some save-excursion??? | ||
| 147 | ;; Or save-file-position? | ||
| 148 | ;; (message "Did I get to line %s?" (elt (, elt) 1)) | ||
| 149 | (goto-line (string-to-int (elt (, elt) 1))))) | ||
| 150 | ;;) | ||
| 151 | (defmacro cperl-etags-goto-tag-location (elt) | ||
| 152 | (` (etags-goto-tag-location (, elt)))))) | ||
| 131 | 153 | ||
| 132 | (defconst cperl-xemacs-p (string-match "XEmacs\\|Lucid" emacs-version)) | 154 | (defconst cperl-xemacs-p (string-match "XEmacs\\|Lucid" emacs-version)) |
| 133 | 155 | ||
| @@ -251,6 +273,12 @@ This is in addition to cperl-continued-statement-offset." | |||
| 251 | :type 'integer | 273 | :type 'integer |
| 252 | :group 'cperl-indentation-details) | 274 | :group 'cperl-indentation-details) |
| 253 | 275 | ||
| 276 | (defcustom cperl-indent-wrt-brace t | ||
| 277 | "*Non-nil means indent statements in if/etc block relative brace, not if/etc. | ||
| 278 | Versions 5.2 ... 5.20 behaved as if this were `nil'." | ||
| 279 | :type 'boolean | ||
| 280 | :group 'cperl-indentation-details) | ||
| 281 | |||
| 254 | (defcustom cperl-auto-newline nil | 282 | (defcustom cperl-auto-newline nil |
| 255 | "*Non-nil means automatically newline before and after braces, | 283 | "*Non-nil means automatically newline before and after braces, |
| 256 | and after colons and semicolons, inserted in CPerl code. The following | 284 | and after colons and semicolons, inserted in CPerl code. The following |
| @@ -347,20 +375,26 @@ Affects: `cperl-font-lock', `cperl-electric-lbrace-space', | |||
| 347 | :type 'integer | 375 | :type 'integer |
| 348 | :group 'cperl-indentation-details) | 376 | :group 'cperl-indentation-details) |
| 349 | 377 | ||
| 350 | (defvar cperl-vc-header-alist nil) | 378 | (defcustom cperl-indent-comment-at-column-0 nil |
| 351 | (make-obsolete-variable | 379 | "*Non-nil means that comment started at column 0 should be indentable." |
| 352 | 'cperl-vc-header-alist | 380 | :type 'boolean |
| 353 | "use cperl-vc-rcs-header or cperl-vc-sccs-header instead.") | 381 | :group 'cperl-indentation-details) |
| 354 | 382 | ||
| 355 | (defcustom cperl-vc-sccs-header '("($sccs) = ('%W\%' =~ /(\\d+(\\.\\d+)+)/) ;") | 383 | (defcustom cperl-vc-sccs-header '("($sccs) = ('%W\%' =~ /(\\d+(\\.\\d+)+)/) ;") |
| 356 | "*Special version of `vc-sccs-header' that is used in CPerl mode buffers." | 384 | "*Special version of `vc-sccs-header' that is used in CPerl mode buffers." |
| 357 | :type '(repeat string) | 385 | :type '(repeat string) |
| 358 | :group 'cperl) | 386 | :group 'cperl) |
| 359 | 387 | ||
| 360 | (defcustom cperl-vc-rcs-header '("($rcs) = (' $Id\$ ' =~ /(\\d+(\\.\\d+)+)/) ;") | 388 | (defcustom cperl-vc-rcs-header '("($rcs) = (' $Id\$ ' =~ /(\\d+(\\.\\d+)+)/);") |
| 361 | "*Special version of `vc-rcs-header' that is used in CPerl mode buffers." | 389 | "*Special version of `vc-rcs-header' that is used in CPerl mode buffers." |
| 362 | :type '(repeat string) | 390 | :type '(repeat string) |
| 363 | :group 'cperl) | 391 | :group 'cperl) |
| 392 | |||
| 393 | ;; This became obsolete... | ||
| 394 | (defvar cperl-vc-header-alist nil) | ||
| 395 | (make-obsolete-variable | ||
| 396 | 'cperl-vc-header-alist | ||
| 397 | "use cperl-vc-rcs-header or cperl-vc-sccs-header instead.") | ||
| 364 | 398 | ||
| 365 | (defcustom cperl-clobber-mode-lists | 399 | (defcustom cperl-clobber-mode-lists |
| 366 | (not | 400 | (not |
| @@ -408,8 +442,15 @@ Font for POD headers." | |||
| 408 | :type 'face | 442 | :type 'face |
| 409 | :group 'cperl-faces) | 443 | :group 'cperl-faces) |
| 410 | 444 | ||
| 411 | (defcustom cperl-invalid-face 'underline | 445 | ;;; Some double-evaluation happened with font-locks... Needed with 21.2... |
| 412 | "*Face for highlighting trailing whitespace." | 446 | (defvar cperl-singly-quote-face cperl-xemacs-p) |
| 447 | |||
| 448 | (defcustom cperl-invalid-face ; Does not customize with '' on XEmacs | ||
| 449 | (if cperl-singly-quote-face | ||
| 450 | 'underline ''underline) ; On older Emacsen was evaluated by `font-lock' | ||
| 451 | (if cperl-singly-quote-face | ||
| 452 | "*This face is used for highlighting trailing whitespace." | ||
| 453 | "*Face for highlighting trailing whitespace.") | ||
| 413 | :type 'face | 454 | :type 'face |
| 414 | :version "21.1" | 455 | :version "21.1" |
| 415 | :group 'cperl-faces) | 456 | :group 'cperl-faces) |
| @@ -441,7 +482,14 @@ You can always make lookup from menu or using \\[cperl-find-pods-heres]." | |||
| 441 | 482 | ||
| 442 | (defcustom cperl-regexp-scan t | 483 | (defcustom cperl-regexp-scan t |
| 443 | "*Not-nil means make marking of regular expression more thorough. | 484 | "*Not-nil means make marking of regular expression more thorough. |
| 444 | Effective only with `cperl-pod-here-scan'. Not implemented yet." | 485 | Effective only with `cperl-pod-here-scan'." |
| 486 | :type 'boolean | ||
| 487 | :group 'cperl-speed) | ||
| 488 | |||
| 489 | (defcustom cperl-hook-after-change t | ||
| 490 | "*Not-nil means install hook to know which regions of buffer are changed. | ||
| 491 | May significantly speed up delayed fontification. Changes take effect | ||
| 492 | after reload." | ||
| 445 | :type 'boolean | 493 | :type 'boolean |
| 446 | :group 'cperl-speed) | 494 | :group 'cperl-speed) |
| 447 | 495 | ||
| @@ -564,17 +612,25 @@ when syntaxifying a chunk of buffer." | |||
| 564 | :type 'boolean | 612 | :type 'boolean |
| 565 | :group 'cperl-speed) | 613 | :group 'cperl-speed) |
| 566 | 614 | ||
| 615 | (defcustom cperl-syntaxify-for-menu | ||
| 616 | t | ||
| 617 | "*Non-nil means that CPerl syntaxifies up to the point before showing menu. | ||
| 618 | This way enabling/disabling of menu items is more correct." | ||
| 619 | :type 'boolean | ||
| 620 | :group 'cperl-speed) | ||
| 621 | |||
| 567 | (defcustom cperl-ps-print-face-properties | 622 | (defcustom cperl-ps-print-face-properties |
| 568 | '((font-lock-keyword-face nil nil bold shadow) | 623 | '((font-lock-keyword-face nil nil bold shadow) |
| 569 | (font-lock-variable-name-face nil nil bold) | 624 | (font-lock-variable-name-face nil nil bold) |
| 570 | (font-lock-function-name-face nil nil bold italic box) | 625 | (font-lock-function-name-face nil nil bold italic box) |
| 571 | (font-lock-constant-face nil "LightGray" bold) | 626 | (font-lock-constant-face nil "LightGray" bold) |
| 572 | (cperl-array nil "LightGray" bold underline) | 627 | (cperl-array-face nil "LightGray" bold underline) |
| 573 | (cperl-hash nil "LightGray" bold italic underline) | 628 | (cperl-hash-face nil "LightGray" bold italic underline) |
| 574 | (font-lock-comment-face nil "LightGray" italic) | 629 | (font-lock-comment-face nil "LightGray" italic) |
| 575 | (font-lock-string-face nil nil italic underline) | 630 | (font-lock-string-face nil nil italic underline) |
| 576 | (cperl-nonoverridable nil nil italic underline) | 631 | (cperl-nonoverridable-face nil nil italic underline) |
| 577 | (font-lock-type-face nil nil underline) | 632 | (font-lock-type-face nil nil underline) |
| 633 | (font-lock-warning-face nil "LightGray" bold italic box) | ||
| 578 | (underline nil "LightGray" strikeout)) | 634 | (underline nil "LightGray" strikeout)) |
| 579 | "List given as an argument to `ps-extend-face-list' in `cperl-ps-print'." | 635 | "List given as an argument to `ps-extend-face-list' in `cperl-ps-print'." |
| 580 | :type '(repeat (cons symbol | 636 | :type '(repeat (cons symbol |
| @@ -588,7 +644,7 @@ when syntaxifying a chunk of buffer." | |||
| 588 | (defvar cperl-dark-foreground | 644 | (defvar cperl-dark-foreground |
| 589 | (cperl-choose-color "orchid1" "orange")) | 645 | (cperl-choose-color "orchid1" "orange")) |
| 590 | 646 | ||
| 591 | (defface cperl-nonoverridable | 647 | (defface cperl-nonoverridable-face |
| 592 | `((((class grayscale) (background light)) | 648 | `((((class grayscale) (background light)) |
| 593 | (:background "Gray90" :slant italic :underline t)) | 649 | (:background "Gray90" :slant italic :underline t)) |
| 594 | (((class grayscale) (background dark)) | 650 | (((class grayscale) (background dark)) |
| @@ -600,10 +656,8 @@ when syntaxifying a chunk of buffer." | |||
| 600 | (t (:weight bold :underline t))) | 656 | (t (:weight bold :underline t))) |
| 601 | "Font Lock mode face used non-overridable keywords and modifiers of regexps." | 657 | "Font Lock mode face used non-overridable keywords and modifiers of regexps." |
| 602 | :group 'cperl-faces) | 658 | :group 'cperl-faces) |
| 603 | ;; backward-compatibility alias | ||
| 604 | (put 'cperl-nonoverridable-face 'face-alias 'cperl-nonoverridable) | ||
| 605 | 659 | ||
| 606 | (defface cperl-array | 660 | (defface cperl-array-face |
| 607 | `((((class grayscale) (background light)) | 661 | `((((class grayscale) (background light)) |
| 608 | (:background "Gray90" :weight bold)) | 662 | (:background "Gray90" :weight bold)) |
| 609 | (((class grayscale) (background dark)) | 663 | (((class grayscale) (background dark)) |
| @@ -615,10 +669,8 @@ when syntaxifying a chunk of buffer." | |||
| 615 | (t (:weight bold))) | 669 | (t (:weight bold))) |
| 616 | "Font Lock mode face used to highlight array names." | 670 | "Font Lock mode face used to highlight array names." |
| 617 | :group 'cperl-faces) | 671 | :group 'cperl-faces) |
| 618 | ;; backward-compatibility alias | ||
| 619 | (put 'cperl-array-face 'face-alias 'cperl-array) | ||
| 620 | 672 | ||
| 621 | (defface cperl-hash | 673 | (defface cperl-hash-face |
| 622 | `((((class grayscale) (background light)) | 674 | `((((class grayscale) (background light)) |
| 623 | (:background "Gray90" :weight bold :slant italic)) | 675 | (:background "Gray90" :weight bold :slant italic)) |
| 624 | (((class grayscale) (background dark)) | 676 | (((class grayscale) (background dark)) |
| @@ -630,8 +682,6 @@ when syntaxifying a chunk of buffer." | |||
| 630 | (t (:weight bold :slant italic))) | 682 | (t (:weight bold :slant italic))) |
| 631 | "Font Lock mode face used to highlight hash names." | 683 | "Font Lock mode face used to highlight hash names." |
| 632 | :group 'cperl-faces) | 684 | :group 'cperl-faces) |
| 633 | ;; backward-compatibility alias | ||
| 634 | (put 'cperl-hash-face 'face-alias 'cperl-hash) | ||
| 635 | 685 | ||
| 636 | 686 | ||
| 637 | 687 | ||
| @@ -639,9 +689,7 @@ when syntaxifying a chunk of buffer." | |||
| 639 | 689 | ||
| 640 | (defvar cperl-tips 'please-ignore-this-line | 690 | (defvar cperl-tips 'please-ignore-this-line |
| 641 | "Get maybe newer version of this package from | 691 | "Get maybe newer version of this package from |
| 642 | ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs | 692 | http://ilyaz.org/software/emacs |
| 643 | and/or | ||
| 644 | ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl | ||
| 645 | Subdirectory `cperl-mode' may contain yet newer development releases and/or | 693 | Subdirectory `cperl-mode' may contain yet newer development releases and/or |
| 646 | patches to related files. | 694 | patches to related files. |
| 647 | 695 | ||
| @@ -666,9 +714,9 @@ want it to: put the following into your .emacs file: | |||
| 666 | (defalias 'perl-mode 'cperl-mode) | 714 | (defalias 'perl-mode 'cperl-mode) |
| 667 | 715 | ||
| 668 | Get perl5-info from | 716 | Get perl5-info from |
| 669 | $CPAN/doc/manual/info/perl-info.tar.gz | 717 | $CPAN/doc/manual/info/perl5-old/perl5-info.tar.gz |
| 670 | older version was on | 718 | Also, one can generate a newer documentation running `pod2texi' converter |
| 671 | http://www.metronet.com:70/9/perlinfo/perl5/manual/perl5-info.tar.gz | 719 | $CPAN/doc/manual/info/perl5/pod2texi-0.1.tar.gz |
| 672 | 720 | ||
| 673 | If you use imenu-go, run imenu on perl5-info buffer (you can do it | 721 | If you use imenu-go, run imenu on perl5-info buffer (you can do it |
| 674 | from Perl menu). If many files are related, generate TAGS files from | 722 | from Perl menu). If many files are related, generate TAGS files from |
| @@ -700,11 +748,18 @@ micro-docs on what I know about CPerl problems.") | |||
| 700 | "Description of problems in CPerl mode. | 748 | "Description of problems in CPerl mode. |
| 701 | Some faces will not be shown on some versions of Emacs unless you | 749 | Some faces will not be shown on some versions of Emacs unless you |
| 702 | install choose-color.el, available from | 750 | install choose-color.el, available from |
| 703 | ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs/ | 751 | http://ilyaz.org/software/emacs |
| 704 | 752 | ||
| 705 | `fill-paragraph' on a comment may leave the point behind the | 753 | `fill-paragraph' on a comment may leave the point behind the |
| 706 | paragraph. Parsing of lines with several <<EOF is not implemented | 754 | paragraph. It also triggers a bug in some versions of Emacs (CPerl tries |
| 707 | yet. | 755 | to detect it and bulk out). |
| 756 | |||
| 757 | See documentation of a variable `cperl-problems-old-emaxen' for the | ||
| 758 | problems which disappear if you upgrade Emacs to a reasonably new | ||
| 759 | version (20.3 for Emacs, and those of 2004 for XEmacs).") | ||
| 760 | |||
| 761 | (defvar cperl-problems-old-emaxen 'please-ignore-this-line | ||
| 762 | "Description of problems in CPerl mode specific for older Emacs versions. | ||
| 708 | 763 | ||
| 709 | Emacs had a _very_ restricted syntax parsing engine until version | 764 | Emacs had a _very_ restricted syntax parsing engine until version |
| 710 | 20.1. Most problems below are corrected starting from this version of | 765 | 20.1. Most problems below are corrected starting from this version of |
| @@ -812,6 +867,13 @@ voice); | |||
| 812 | o) Highlights trailing whitespace; | 867 | o) Highlights trailing whitespace; |
| 813 | p) Is able to manipulate Perl Regular Expressions to ease | 868 | p) Is able to manipulate Perl Regular Expressions to ease |
| 814 | conversion to a more readable form. | 869 | conversion to a more readable form. |
| 870 | q) Can ispell POD sections and HERE-DOCs. | ||
| 871 | r) Understands comments and character classes inside regular | ||
| 872 | expressions; can find matching () and [] in a regular expression. | ||
| 873 | s) Allows indentation of //x-style regular expressions; | ||
| 874 | t) Highlights different symbols in regular expressions according | ||
| 875 | to their function; much less problems with backslashitis; | ||
| 876 | u) Allows to find regular expressions which contain interpolated parts. | ||
| 815 | 877 | ||
| 816 | 5) The indentation engine was very smart, but most of tricks may be | 878 | 5) The indentation engine was very smart, but most of tricks may be |
| 817 | not needed anymore with the support for `syntax-table' property. Has | 879 | not needed anymore with the support for `syntax-table' property. Has |
| @@ -829,7 +891,10 @@ the settings present before the switch. | |||
| 829 | line-breaks/spacing between elements of the construct. | 891 | line-breaks/spacing between elements of the construct. |
| 830 | 892 | ||
| 831 | 10) Uses a linear-time algorith for indentation of regions (on Emaxen with | 893 | 10) Uses a linear-time algorith for indentation of regions (on Emaxen with |
| 832 | capable syntax engines).") | 894 | capable syntax engines). |
| 895 | |||
| 896 | 11) Syntax-highlight, indentation, sexp-recognition inside regular expressions. | ||
| 897 | ") | ||
| 833 | 898 | ||
| 834 | (defvar cperl-speed 'please-ignore-this-line | 899 | (defvar cperl-speed 'please-ignore-this-line |
| 835 | "This is an incomplete compendium of what is available in other parts | 900 | "This is an incomplete compendium of what is available in other parts |
| @@ -878,19 +943,19 @@ B) Speed of editing operations. | |||
| 878 | (defvar cperl-tips-faces 'please-ignore-this-line | 943 | (defvar cperl-tips-faces 'please-ignore-this-line |
| 879 | "CPerl mode uses following faces for highlighting: | 944 | "CPerl mode uses following faces for highlighting: |
| 880 | 945 | ||
| 881 | `cperl-array' Array names | 946 | `cperl-array-face' Array names |
| 882 | `cperl-hash' Hash names | 947 | `cperl-hash-face' Hash names |
| 883 | `font-lock-comment-face' Comments, PODs and whatever is considered | 948 | `font-lock-comment-face' Comments, PODs and whatever is considered |
| 884 | syntaxically to be not code | 949 | syntaxically to be not code |
| 885 | `font-lock-constant-face' HERE-doc delimiters, labels, delimiters of | 950 | `font-lock-constant-face' HERE-doc delimiters, labels, delimiters of |
| 886 | 2-arg operators s/y/tr/ or of RExen, | 951 | 2-arg operators s/y/tr/ or of RExen, |
| 887 | `font-lock-function-name-face' Special-cased m// and s//foo/, _ as | 952 | `font-lock-warning-face' Special-cased m// and s//foo/, |
| 888 | a target of a file tests, file tests, | 953 | `font-lock-function-name-face' _ as a target of a file tests, file tests, |
| 889 | subroutine names at the moment of definition | 954 | subroutine names at the moment of definition |
| 890 | (except those conflicting with Perl operators), | 955 | (except those conflicting with Perl operators), |
| 891 | package names (when recognized), format names | 956 | package names (when recognized), format names |
| 892 | `font-lock-keyword-face' Control flow switch constructs, declarators | 957 | `font-lock-keyword-face' Control flow switch constructs, declarators |
| 893 | `cperl-nonoverridable' Non-overridable keywords, modifiers of RExen | 958 | `cperl-nonoverridable-face' Non-overridable keywords, modifiers of RExen |
| 894 | `font-lock-string-face' Strings, qw() constructs, RExen, POD sections, | 959 | `font-lock-string-face' Strings, qw() constructs, RExen, POD sections, |
| 895 | literal parts and the terminator of formats | 960 | literal parts and the terminator of formats |
| 896 | and whatever is syntaxically considered | 961 | and whatever is syntaxically considered |
| @@ -908,7 +973,25 @@ m// and s/// which do not do what one would expect them to do. | |||
| 908 | Help with best setup of these faces for printout requested (for each of | 973 | Help with best setup of these faces for printout requested (for each of |
| 909 | the faces: please specify bold, italic, underline, shadow and box.) | 974 | the faces: please specify bold, italic, underline, shadow and box.) |
| 910 | 975 | ||
| 911 | \(Not finished.)") | 976 | In regular expressions (except character classes): |
| 977 | `font-lock-string-face' \"Normal\" stuff and non-0-length constructs | ||
| 978 | `font-lock-constant-face': Delimiters | ||
| 979 | `font-lock-warning-face' Special-cased m// and s//foo/, | ||
| 980 | Mismatched closing delimiters, parens | ||
| 981 | we couldn't match, misplaced quantifiers, | ||
| 982 | unrecognized escape sequences | ||
| 983 | `cperl-nonoverridable-face' Modifiers, as gism in m/REx/gism | ||
| 984 | `font-lock-type-face' POSIX classes inside charclasses, | ||
| 985 | escape sequences with arguments (\x \23 \p \N) | ||
| 986 | and others match-a-char escape sequences | ||
| 987 | `font-lock-keyword-face' Capturing parens, and | | ||
| 988 | `font-lock-function-name-face' Special symbols: $ ^ . [ ] [^ ] (?{ }) (??{ }) | ||
| 989 | `font-lock-builtin-face' \"Remaining\" 0-length constructs, executable | ||
| 990 | parts of a REx, not-capturing parens | ||
| 991 | `font-lock-variable-name-face' Interpolated constructs, embedded code | ||
| 992 | `font-lock-comment-face' Embedded comments | ||
| 993 | |||
| 994 | ") | ||
| 912 | 995 | ||
| 913 | 996 | ||
| 914 | 997 | ||
| @@ -985,6 +1068,25 @@ the faces: please specify bold, italic, underline, shadow and box.) | |||
| 985 | (cperl-hairy (or hairy t)) | 1068 | (cperl-hairy (or hairy t)) |
| 986 | (t (symbol-value symbol)))) | 1069 | (t (symbol-value symbol)))) |
| 987 | 1070 | ||
| 1071 | |||
| 1072 | (defun cperl-make-indent (column &optional minimum keep) | ||
| 1073 | "Makes indent of the current line the requested amount. | ||
| 1074 | Unless KEEP, removes the old indentation. Works around a bug in ancient | ||
| 1075 | versions of Emacs." | ||
| 1076 | (let ((prop (get-text-property (point) 'syntax-type))) | ||
| 1077 | (or keep | ||
| 1078 | (delete-horizontal-space)) | ||
| 1079 | (indent-to column minimum) | ||
| 1080 | ;; In old versions (e.g., 19.33) `indent-to' would not inherit properties | ||
| 1081 | (and prop | ||
| 1082 | (> (current-column) 0) | ||
| 1083 | (save-excursion | ||
| 1084 | (beginning-of-line) | ||
| 1085 | (or (get-text-property (point) 'syntax-type) | ||
| 1086 | (and (looking-at "\\=[ \t]") | ||
| 1087 | (put-text-property (point) (match-end 0) | ||
| 1088 | 'syntax-type prop))))))) | ||
| 1089 | |||
| 988 | ;;; Probably it is too late to set these guys already, but it can help later: | 1090 | ;;; Probably it is too late to set these guys already, but it can help later: |
| 989 | 1091 | ||
| 990 | ;;;(and cperl-clobber-mode-lists | 1092 | ;;;(and cperl-clobber-mode-lists |
| @@ -1035,7 +1137,16 @@ the faces: please specify bold, italic, underline, shadow and box.) | |||
| 1035 | (cperl-define-key "\C-c\C-w" 'cperl-toggle-construct-fix) | 1137 | (cperl-define-key "\C-c\C-w" 'cperl-toggle-construct-fix) |
| 1036 | (cperl-define-key "\C-c\C-f" 'auto-fill-mode) | 1138 | (cperl-define-key "\C-c\C-f" 'auto-fill-mode) |
| 1037 | (cperl-define-key "\C-c\C-e" 'cperl-toggle-electric) | 1139 | (cperl-define-key "\C-c\C-e" 'cperl-toggle-electric) |
| 1140 | (cperl-define-key "\C-c\C-b" 'cperl-find-bad-style) | ||
| 1141 | (cperl-define-key "\C-c\C-p" 'cperl-pod-spell) | ||
| 1142 | (cperl-define-key "\C-c\C-d" 'cperl-here-doc-spell) | ||
| 1143 | (cperl-define-key "\C-c\C-n" 'cperl-narrow-to-here-doc) | ||
| 1144 | (cperl-define-key "\C-c\C-v" 'cperl-next-interpolated-REx) | ||
| 1145 | (cperl-define-key "\C-c\C-x" 'cperl-next-interpolated-REx-0) | ||
| 1146 | (cperl-define-key "\C-c\C-y" 'cperl-next-interpolated-REx-1) | ||
| 1038 | (cperl-define-key "\C-c\C-ha" 'cperl-toggle-autohelp) | 1147 | (cperl-define-key "\C-c\C-ha" 'cperl-toggle-autohelp) |
| 1148 | (cperl-define-key "\C-c\C-hp" 'cperl-perldoc) | ||
| 1149 | (cperl-define-key "\C-c\C-hP" 'cperl-perldoc-at-point) | ||
| 1039 | (cperl-define-key "\e\C-q" 'cperl-indent-exp) ; Usually not bound | 1150 | (cperl-define-key "\e\C-q" 'cperl-indent-exp) ; Usually not bound |
| 1040 | (cperl-define-key [?\C-\M-\|] 'cperl-lineup | 1151 | (cperl-define-key [?\C-\M-\|] 'cperl-lineup |
| 1041 | [(control meta |)]) | 1152 | [(control meta |)]) |
| @@ -1074,9 +1185,13 @@ the faces: please specify bold, italic, underline, shadow and box.) | |||
| 1074 | (<= emacs-minor-version 11) (<= emacs-major-version 19)) | 1185 | (<= emacs-minor-version 11) (<= emacs-major-version 19)) |
| 1075 | (progn | 1186 | (progn |
| 1076 | ;; substitute-key-definition is usefulness-deenhanced... | 1187 | ;; substitute-key-definition is usefulness-deenhanced... |
| 1077 | (cperl-define-key "\M-q" 'cperl-fill-paragraph) | 1188 | ;;;;;(cperl-define-key "\M-q" 'cperl-fill-paragraph) |
| 1078 | (cperl-define-key "\e;" 'cperl-indent-for-comment) | 1189 | (cperl-define-key "\e;" 'cperl-indent-for-comment) |
| 1079 | (cperl-define-key "\e\C-\\" 'cperl-indent-region)) | 1190 | (cperl-define-key "\e\C-\\" 'cperl-indent-region)) |
| 1191 | (or (boundp 'fill-paragraph-function) | ||
| 1192 | (substitute-key-definition | ||
| 1193 | 'fill-paragraph 'cperl-fill-paragraph | ||
| 1194 | cperl-mode-map global-map)) | ||
| 1080 | (substitute-key-definition | 1195 | (substitute-key-definition |
| 1081 | 'indent-sexp 'cperl-indent-exp | 1196 | 'indent-sexp 'cperl-indent-exp |
| 1082 | cperl-mode-map global-map) | 1197 | cperl-mode-map global-map) |
| @@ -1094,52 +1209,101 @@ the faces: please specify bold, italic, underline, shadow and box.) | |||
| 1094 | (progn | 1209 | (progn |
| 1095 | (require 'easymenu) | 1210 | (require 'easymenu) |
| 1096 | (easy-menu-define | 1211 | (easy-menu-define |
| 1097 | cperl-menu cperl-mode-map "Menu for CPerl mode" | 1212 | cperl-menu cperl-mode-map "Menu for CPerl mode" |
| 1098 | '("Perl" | 1213 | '("Perl" |
| 1099 | ["Beginning of function" beginning-of-defun t] | 1214 | ["Beginning of function" beginning-of-defun t] |
| 1100 | ["End of function" end-of-defun t] | 1215 | ["End of function" end-of-defun t] |
| 1101 | ["Mark function" mark-defun t] | 1216 | ["Mark function" mark-defun t] |
| 1102 | ["Indent expression" cperl-indent-exp t] | 1217 | ["Indent expression" cperl-indent-exp t] |
| 1103 | ["Fill paragraph/comment" fill-paragraph t] | 1218 | ["Fill paragraph/comment" fill-paragraph t] |
| 1219 | "----" | ||
| 1220 | ["Line up a construction" cperl-lineup (cperl-use-region-p)] | ||
| 1221 | ["Invert if/unless/while etc" cperl-invert-if-unless t] | ||
| 1222 | ("Regexp" | ||
| 1223 | ["Beautify" cperl-beautify-regexp | ||
| 1224 | cperl-use-syntax-table-text-property] | ||
| 1225 | ["Beautify one level deep" (cperl-beautify-regexp 1) | ||
| 1226 | cperl-use-syntax-table-text-property] | ||
| 1227 | ["Beautify a group" cperl-beautify-level | ||
| 1228 | cperl-use-syntax-table-text-property] | ||
| 1229 | ["Beautify a group one level deep" (cperl-beautify-level 1) | ||
| 1230 | cperl-use-syntax-table-text-property] | ||
| 1231 | ["Contract a group" cperl-contract-level | ||
| 1232 | cperl-use-syntax-table-text-property] | ||
| 1233 | ["Contract groups" cperl-contract-levels | ||
| 1234 | cperl-use-syntax-table-text-property] | ||
| 1104 | "----" | 1235 | "----" |
| 1105 | ["Line up a construction" cperl-lineup (cperl-use-region-p)] | 1236 | ["Find next interpolated" cperl-next-interpolated-REx |
| 1106 | ["Invert if/unless/while etc" cperl-invert-if-unless t] | 1237 | (next-single-property-change (point-min) 'REx-interpolated)] |
| 1107 | ("Regexp" | 1238 | ["Find next interpolated (no //o)" |
| 1108 | ["Beautify" cperl-beautify-regexp | 1239 | cperl-next-interpolated-REx-0 |
| 1109 | cperl-use-syntax-table-text-property] | 1240 | (or (text-property-any (point-min) (point-max) 'REx-interpolated t) |
| 1110 | ["Beautify one level deep" (cperl-beautify-regexp 1) | 1241 | (text-property-any (point-min) (point-max) 'REx-interpolated 1))] |
| 1111 | cperl-use-syntax-table-text-property] | 1242 | ["Find next interpolated (neither //o nor whole-REx)" |
| 1112 | ["Beautify a group" cperl-beautify-level | 1243 | cperl-next-interpolated-REx-1 |
| 1113 | cperl-use-syntax-table-text-property] | 1244 | (text-property-any (point-min) (point-max) 'REx-interpolated t)]) |
| 1114 | ["Beautify a group one level deep" (cperl-beautify-level 1) | 1245 | ["Insert spaces if needed to fix style" cperl-find-bad-style t] |
| 1115 | cperl-use-syntax-table-text-property] | 1246 | ["Refresh \"hard\" constructions" cperl-find-pods-heres t] |
| 1116 | ["Contract a group" cperl-contract-level | 1247 | "----" |
| 1117 | cperl-use-syntax-table-text-property] | 1248 | ["Indent region" cperl-indent-region (cperl-use-region-p)] |
| 1118 | ["Contract groups" cperl-contract-levels | 1249 | ["Comment region" cperl-comment-region (cperl-use-region-p)] |
| 1119 | cperl-use-syntax-table-text-property]) | 1250 | ["Uncomment region" cperl-uncomment-region (cperl-use-region-p)] |
| 1120 | ["Refresh \"hard\" constructions" cperl-find-pods-heres t] | 1251 | "----" |
| 1252 | ["Run" mode-compile (fboundp 'mode-compile)] | ||
| 1253 | ["Kill" mode-compile-kill (and (fboundp 'mode-compile-kill) | ||
| 1254 | (get-buffer "*compilation*"))] | ||
| 1255 | ["Next error" next-error (get-buffer "*compilation*")] | ||
| 1256 | ["Check syntax" cperl-check-syntax (fboundp 'mode-compile)] | ||
| 1257 | "----" | ||
| 1258 | ["Debugger" cperl-db t] | ||
| 1259 | "----" | ||
| 1260 | ("Tools" | ||
| 1261 | ["Imenu" imenu (fboundp 'imenu)] | ||
| 1262 | ["Imenu on Perl Info" cperl-imenu-on-info (featurep 'imenu)] | ||
| 1121 | "----" | 1263 | "----" |
| 1122 | ["Indent region" cperl-indent-region (cperl-use-region-p)] | 1264 | ["Ispell PODs" cperl-pod-spell |
| 1123 | ["Comment region" cperl-comment-region (cperl-use-region-p)] | 1265 | ;; Better not to update syntaxification here: |
| 1124 | ["Uncomment region" cperl-uncomment-region (cperl-use-region-p)] | 1266 | ;; debugging syntaxificatio can be broken by this??? |
| 1267 | (or | ||
| 1268 | (get-text-property (point-min) 'in-pod) | ||
| 1269 | (< (progn | ||
| 1270 | (and cperl-syntaxify-for-menu | ||
| 1271 | (cperl-update-syntaxification (point-max) (point-max))) | ||
| 1272 | (next-single-property-change (point-min) 'in-pod nil (point-max))) | ||
| 1273 | (point-max)))] | ||
| 1274 | ["Ispell HERE-DOCs" cperl-here-doc-spell | ||
| 1275 | (< (progn | ||
| 1276 | (and cperl-syntaxify-for-menu | ||
| 1277 | (cperl-update-syntaxification (point-max) (point-max))) | ||
| 1278 | (next-single-property-change (point-min) 'here-doc-group nil (point-max))) | ||
| 1279 | (point-max))] | ||
| 1280 | ["Narrow to this HERE-DOC" cperl-narrow-to-here-doc | ||
| 1281 | (eq 'here-doc (progn | ||
| 1282 | (and cperl-syntaxify-for-menu | ||
| 1283 | (cperl-update-syntaxification (point) (point))) | ||
| 1284 | (get-text-property (point) 'syntax-type)))] | ||
| 1285 | ["Select this HERE-DOC or POD section" | ||
| 1286 | cperl-select-this-pod-or-here-doc | ||
| 1287 | (memq (progn | ||
| 1288 | (and cperl-syntaxify-for-menu | ||
| 1289 | (cperl-update-syntaxification (point) (point))) | ||
| 1290 | (get-text-property (point) 'syntax-type)) | ||
| 1291 | '(here-doc pod))] | ||
| 1125 | "----" | 1292 | "----" |
| 1126 | ["Run" mode-compile (fboundp 'mode-compile)] | 1293 | ["CPerl pretty print (exprmntl)" cperl-ps-print |
| 1127 | ["Kill" mode-compile-kill (and (fboundp 'mode-compile-kill) | 1294 | (fboundp 'ps-extend-face-list)] |
| 1128 | (get-buffer "*compilation*"))] | ||
| 1129 | ["Next error" next-error (get-buffer "*compilation*")] | ||
| 1130 | ["Check syntax" cperl-check-syntax (fboundp 'mode-compile)] | ||
| 1131 | "----" | 1295 | "----" |
| 1132 | ["Debugger" cperl-db t] | 1296 | ["Syntaxify region" cperl-find-pods-heres-region |
| 1297 | (cperl-use-region-p)] | ||
| 1298 | ["Profile syntaxification" cperl-time-fontification t] | ||
| 1299 | ["Debug errors in delayed fontification" cperl-emulate-lazy-lock t] | ||
| 1300 | ["Debug unwind for syntactic scan" cperl-toggle-set-debug-unwind t] | ||
| 1301 | ["Debug backtrace on syntactic scan (BEWARE!!!)" | ||
| 1302 | (cperl-toggle-set-debug-unwind nil t) t] | ||
| 1133 | "----" | 1303 | "----" |
| 1134 | ("Tools" | 1304 | ["Class Hierarchy from TAGS" cperl-tags-hier-init t] |
| 1135 | ["Imenu" imenu (fboundp 'imenu)] | 1305 | ;;["Update classes" (cperl-tags-hier-init t) tags-table-list] |
| 1136 | ["Insert spaces if needed" cperl-find-bad-style t] | 1306 | ("Tags" |
| 1137 | ["Class Hierarchy from TAGS" cperl-tags-hier-init t] | ||
| 1138 | ;;["Update classes" (cperl-tags-hier-init t) tags-table-list] | ||
| 1139 | ["CPerl pretty print (exprmntl)" cperl-ps-print | ||
| 1140 | (fboundp 'ps-extend-face-list)] | ||
| 1141 | ["Imenu on info" cperl-imenu-on-info (featurep 'imenu)] | ||
| 1142 | ("Tags" | ||
| 1143 | ;;; ["Create tags for current file" cperl-etags t] | 1307 | ;;; ["Create tags for current file" cperl-etags t] |
| 1144 | ;;; ["Add tags for current file" (cperl-etags t) t] | 1308 | ;;; ["Add tags for current file" (cperl-etags t) t] |
| 1145 | ;;; ["Create tags for Perl files in directory" (cperl-etags nil t) t] | 1309 | ;;; ["Create tags for Perl files in directory" (cperl-etags nil t) t] |
| @@ -1186,10 +1350,10 @@ the faces: please specify bold, italic, underline, shadow and box.) | |||
| 1186 | ["PerlStyle" (cperl-set-style "PerlStyle") t] | 1350 | ["PerlStyle" (cperl-set-style "PerlStyle") t] |
| 1187 | ["GNU" (cperl-set-style "GNU") t] | 1351 | ["GNU" (cperl-set-style "GNU") t] |
| 1188 | ["C++" (cperl-set-style "C++") t] | 1352 | ["C++" (cperl-set-style "C++") t] |
| 1189 | ["FSF" (cperl-set-style "FSF") t] | 1353 | ["K&R" (cperl-set-style "K&R") t] |
| 1190 | ["BSD" (cperl-set-style "BSD") t] | 1354 | ["BSD" (cperl-set-style "BSD") t] |
| 1191 | ["Whitesmith" (cperl-set-style "Whitesmith") t] | 1355 | ["Whitesmith" (cperl-set-style "Whitesmith") t] |
| 1192 | ["Current" (cperl-set-style "Current") t] | 1356 | ["Memorize Current" (cperl-set-style "Current") t] |
| 1193 | ["Memorized" (cperl-set-style-back) cperl-old-style]) | 1357 | ["Memorized" (cperl-set-style-back) cperl-old-style]) |
| 1194 | ("Micro-docs" | 1358 | ("Micro-docs" |
| 1195 | ["Tips" (describe-variable 'cperl-tips) t] | 1359 | ["Tips" (describe-variable 'cperl-tips) t] |
| @@ -1208,12 +1372,73 @@ the faces: please specify bold, italic, underline, shadow and box.) | |||
| 1208 | The expansion is entirely correct because it uses the C preprocessor." | 1372 | The expansion is entirely correct because it uses the C preprocessor." |
| 1209 | t) | 1373 | t) |
| 1210 | 1374 | ||
| 1375 | ;;; These two must be unwound, otherwise take exponential time | ||
| 1376 | (defconst cperl-maybe-white-and-comment-rex "[ \t\n]*\\(#[^\n]*\n[ \t\n]*\\)*" | ||
| 1377 | "Regular expression to match optional whitespace with interpspersed comments. | ||
| 1378 | Should contain exactly one group.") | ||
| 1379 | |||
| 1380 | ;;; This one is tricky to unwind; still very inefficient... | ||
| 1381 | (defconst cperl-white-and-comment-rex "\\([ \t\n]\\|#[^\n]*\n\\)+" | ||
| 1382 | "Regular expression to match whitespace with interpspersed comments. | ||
| 1383 | Should contain exactly one group.") | ||
| 1384 | |||
| 1385 | |||
| 1386 | ;;; Is incorporated in `cperl-imenu--function-name-regexp-perl' | ||
| 1387 | ;;; `cperl-outline-regexp', `defun-prompt-regexp'. | ||
| 1388 | ;;; Details of groups in this may be used in several functions; see comments | ||
| 1389 | ;;; near mentioned above variable(s)... | ||
| 1390 | ;;; sub($$):lvalue{} sub:lvalue{} Both allowed... | ||
| 1391 | (defsubst cperl-after-sub-regexp (named attr) ; 9 groups without attr... | ||
| 1392 | "Match the text after `sub' in a subroutine declaration. | ||
| 1393 | If NAMED is nil, allows anonymous subroutines. Matches up to the first \":\" | ||
| 1394 | of attributes (if present), or end of the name or prototype (whatever is | ||
| 1395 | the last)." | ||
| 1396 | (concat ; Assume n groups before this... | ||
| 1397 | "\\(" ; n+1=name-group | ||
| 1398 | cperl-white-and-comment-rex ; n+2=pre-name | ||
| 1399 | "\\(::[a-zA-Z_0-9:']+\\|[a-zA-Z_'][a-zA-Z_0-9:']*\\)" ; n+3=name | ||
| 1400 | "\\)" ; END n+1=name-group | ||
| 1401 | (if named "" "?") | ||
| 1402 | "\\(" ; n+4=proto-group | ||
| 1403 | cperl-maybe-white-and-comment-rex ; n+5=pre-proto | ||
| 1404 | "\\(([^()]*)\\)" ; n+6=prototype | ||
| 1405 | "\\)?" ; END n+4=proto-group | ||
| 1406 | "\\(" ; n+7=attr-group | ||
| 1407 | cperl-maybe-white-and-comment-rex ; n+8=pre-attr | ||
| 1408 | "\\(" ; n+9=start-attr | ||
| 1409 | ":" | ||
| 1410 | (if attr (concat | ||
| 1411 | "\\(" | ||
| 1412 | cperl-maybe-white-and-comment-rex ; whitespace-comments | ||
| 1413 | "\\(\\sw\\|_\\)+" ; attr-name | ||
| 1414 | ;; attr-arg (1 level of internal parens allowed!) | ||
| 1415 | "\\((\\(\\\\.\\|[^\\\\()]\\|([^\\\\()]*)\\)*)\\)?" | ||
| 1416 | "\\(" ; optional : (XXX allows trailing???) | ||
| 1417 | cperl-maybe-white-and-comment-rex ; whitespace-comments | ||
| 1418 | ":\\)?" | ||
| 1419 | "\\)+") | ||
| 1420 | "[^:]") | ||
| 1421 | "\\)" | ||
| 1422 | "\\)?" ; END n+6=proto-group | ||
| 1423 | )) | ||
| 1424 | |||
| 1425 | ;;; Details of groups in this are used in `cperl-imenu--create-perl-index' | ||
| 1426 | ;;; and `cperl-outline-level'. | ||
| 1427 | ;;;; Was: 2=sub|package; now 2=package-group, 5=package-name 8=sub-name (+3) | ||
| 1211 | (defvar cperl-imenu--function-name-regexp-perl | 1428 | (defvar cperl-imenu--function-name-regexp-perl |
| 1212 | (concat | 1429 | (concat |
| 1213 | "^\\(" | 1430 | "^\\(" ; 1 = all |
| 1214 | "[ \t]*\\(sub\\|package\\)[ \t\n]+\\([a-zA-Z_0-9:']+\\)[ \t]*\\(([^()]*)[ \t]*\\)?" | 1431 | "\\([ \t]*package" ; 2 = package-group |
| 1215 | "\\|" | 1432 | "\\(" ; 3 = package-name-group |
| 1216 | "=head\\([12]\\)[ \t]+\\([^\n]+\\)$" | 1433 | cperl-white-and-comment-rex ; 4 = pre-package-name |
| 1434 | "\\([a-zA-Z_0-9:']+\\)\\)?\\)" ; 5 = package-name | ||
| 1435 | "\\|" | ||
| 1436 | "[ \t]*sub" | ||
| 1437 | (cperl-after-sub-regexp 'named nil) ; 8=name 11=proto 14=attr-start | ||
| 1438 | cperl-maybe-white-and-comment-rex ; 15=pre-block | ||
| 1439 | "\\|" | ||
| 1440 | "=head\\([1-4]\\)[ \t]+" ; 16=level | ||
| 1441 | "\\([^\n]+\\)$" ; 17=text | ||
| 1217 | "\\)")) | 1442 | "\\)")) |
| 1218 | 1443 | ||
| 1219 | (defvar cperl-outline-regexp | 1444 | (defvar cperl-outline-regexp |
| @@ -1225,6 +1450,12 @@ The expansion is entirely correct because it uses the C preprocessor." | |||
| 1225 | (defvar cperl-string-syntax-table nil | 1450 | (defvar cperl-string-syntax-table nil |
| 1226 | "Syntax table in use in CPerl mode string-like chunks.") | 1451 | "Syntax table in use in CPerl mode string-like chunks.") |
| 1227 | 1452 | ||
| 1453 | (defsubst cperl-1- (p) | ||
| 1454 | (max (point-min) (1- p))) | ||
| 1455 | |||
| 1456 | (defsubst cperl-1+ (p) | ||
| 1457 | (min (point-max) (1+ p))) | ||
| 1458 | |||
| 1228 | (if cperl-mode-syntax-table | 1459 | (if cperl-mode-syntax-table |
| 1229 | () | 1460 | () |
| 1230 | (setq cperl-mode-syntax-table (make-syntax-table)) | 1461 | (setq cperl-mode-syntax-table (make-syntax-table)) |
| @@ -1249,6 +1480,8 @@ The expansion is entirely correct because it uses the C preprocessor." | |||
| 1249 | (modify-syntax-entry ?| "." cperl-mode-syntax-table) | 1480 | (modify-syntax-entry ?| "." cperl-mode-syntax-table) |
| 1250 | (setq cperl-string-syntax-table (copy-syntax-table cperl-mode-syntax-table)) | 1481 | (setq cperl-string-syntax-table (copy-syntax-table cperl-mode-syntax-table)) |
| 1251 | (modify-syntax-entry ?$ "." cperl-string-syntax-table) | 1482 | (modify-syntax-entry ?$ "." cperl-string-syntax-table) |
| 1483 | (modify-syntax-entry ?\{ "." cperl-string-syntax-table) | ||
| 1484 | (modify-syntax-entry ?\} "." cperl-string-syntax-table) | ||
| 1252 | (modify-syntax-entry ?# "." cperl-string-syntax-table)) ; (?# comment ) | 1485 | (modify-syntax-entry ?# "." cperl-string-syntax-table)) ; (?# comment ) |
| 1253 | 1486 | ||
| 1254 | 1487 | ||
| @@ -1257,6 +1490,10 @@ The expansion is entirely correct because it uses the C preprocessor." | |||
| 1257 | ;; Fix for msb.el | 1490 | ;; Fix for msb.el |
| 1258 | (defvar cperl-msb-fixed nil) | 1491 | (defvar cperl-msb-fixed nil) |
| 1259 | (defvar cperl-use-major-mode 'cperl-mode) | 1492 | (defvar cperl-use-major-mode 'cperl-mode) |
| 1493 | (defvar cperl-font-lock-multiline-start nil) | ||
| 1494 | (defvar cperl-font-lock-multiline nil) | ||
| 1495 | (defvar cperl-compilation-error-regexp-alist nil) | ||
| 1496 | (defvar cperl-font-locking nil) | ||
| 1260 | 1497 | ||
| 1261 | ;;;###autoload | 1498 | ;;;###autoload |
| 1262 | (defun cperl-mode () | 1499 | (defun cperl-mode () |
| @@ -1402,16 +1639,24 @@ Variables controlling indentation style: | |||
| 1402 | `cperl-min-label-indent' | 1639 | `cperl-min-label-indent' |
| 1403 | Minimal indentation for line that is a label. | 1640 | Minimal indentation for line that is a label. |
| 1404 | 1641 | ||
| 1405 | Settings for K&R and BSD indentation styles are | 1642 | Settings for classic indent-styles: K&R BSD=C++ GNU PerlStyle=Whitesmith |
| 1406 | `cperl-indent-level' 5 8 | 1643 | `cperl-indent-level' 5 4 2 4 |
| 1407 | `cperl-continued-statement-offset' 5 8 | 1644 | `cperl-brace-offset' 0 0 0 0 |
| 1408 | `cperl-brace-offset' -5 -8 | 1645 | `cperl-continued-brace-offset' -5 -4 0 0 |
| 1409 | `cperl-label-offset' -5 -8 | 1646 | `cperl-label-offset' -5 -4 -2 -4 |
| 1647 | `cperl-continued-statement-offset' 5 4 2 4 | ||
| 1410 | 1648 | ||
| 1411 | CPerl knows several indentation styles, and may bulk set the | 1649 | CPerl knows several indentation styles, and may bulk set the |
| 1412 | corresponding variables. Use \\[cperl-set-style] to do this. Use | 1650 | corresponding variables. Use \\[cperl-set-style] to do this. Use |
| 1413 | \\[cperl-set-style-back] to restore the memorized preexisting values | 1651 | \\[cperl-set-style-back] to restore the memorized preexisting values |
| 1414 | \(both available from menu). | 1652 | \(both available from menu). See examples in `cperl-style-examples'. |
| 1653 | |||
| 1654 | Part of the indentation style is how different parts of if/elsif/else | ||
| 1655 | statements are broken into lines; in CPerl, this is reflected on how | ||
| 1656 | templates for these constructs are created (controlled by | ||
| 1657 | `cperl-extra-newline-before-brace'), and how reflow-logic should treat \"continuation\" blocks of else/elsif/continue, controlled by the same variable, | ||
| 1658 | and by `cperl-extra-newline-before-brace-multiline', | ||
| 1659 | `cperl-merge-trailing-else', `cperl-indent-region-fix-constructs'. | ||
| 1415 | 1660 | ||
| 1416 | If `cperl-indent-level' is 0, the statement after opening brace in | 1661 | If `cperl-indent-level' is 0, the statement after opening brace in |
| 1417 | column 0 is indented on | 1662 | column 0 is indented on |
| @@ -1465,8 +1710,12 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1465 | ("head2" "head2" cperl-electric-pod 0))) | 1710 | ("head2" "head2" cperl-electric-pod 0))) |
| 1466 | (setq abbrevs-changed prev-a-c))) | 1711 | (setq abbrevs-changed prev-a-c))) |
| 1467 | (setq local-abbrev-table cperl-mode-abbrev-table) | 1712 | (setq local-abbrev-table cperl-mode-abbrev-table) |
| 1468 | (abbrev-mode (if (cperl-val 'cperl-electric-keywords) 1 0)) | 1713 | (if (cperl-val 'cperl-electric-keywords) |
| 1714 | (abbrev-mode 1)) | ||
| 1469 | (set-syntax-table cperl-mode-syntax-table) | 1715 | (set-syntax-table cperl-mode-syntax-table) |
| 1716 | ;; Until Emacs is multi-threaded, we do not actually need it local: | ||
| 1717 | (make-local-variable 'cperl-font-lock-multiline-start) | ||
| 1718 | (make-local-variable 'cperl-font-locking) | ||
| 1470 | (make-local-variable 'outline-regexp) | 1719 | (make-local-variable 'outline-regexp) |
| 1471 | ;; (setq outline-regexp imenu-example--function-name-regexp-perl) | 1720 | ;; (setq outline-regexp imenu-example--function-name-regexp-perl) |
| 1472 | (setq outline-regexp cperl-outline-regexp) | 1721 | (setq outline-regexp cperl-outline-regexp) |
| @@ -1478,7 +1727,10 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1478 | (setq paragraph-separate paragraph-start) | 1727 | (setq paragraph-separate paragraph-start) |
| 1479 | (make-local-variable 'paragraph-ignore-fill-prefix) | 1728 | (make-local-variable 'paragraph-ignore-fill-prefix) |
| 1480 | (setq paragraph-ignore-fill-prefix t) | 1729 | (setq paragraph-ignore-fill-prefix t) |
| 1481 | (set (make-local-variable 'fill-paragraph-function) 'cperl-fill-paragraph) | 1730 | (if cperl-xemacs-p |
| 1731 | (progn | ||
| 1732 | (make-local-variable 'paren-backwards-message) | ||
| 1733 | (set 'paren-backwards-message t))) | ||
| 1482 | (make-local-variable 'indent-line-function) | 1734 | (make-local-variable 'indent-line-function) |
| 1483 | (setq indent-line-function 'cperl-indent-line) | 1735 | (setq indent-line-function 'cperl-indent-line) |
| 1484 | (make-local-variable 'require-final-newline) | 1736 | (make-local-variable 'require-final-newline) |
| @@ -1492,9 +1744,22 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1492 | (make-local-variable 'comment-start-skip) | 1744 | (make-local-variable 'comment-start-skip) |
| 1493 | (setq comment-start-skip "#+ *") | 1745 | (setq comment-start-skip "#+ *") |
| 1494 | (make-local-variable 'defun-prompt-regexp) | 1746 | (make-local-variable 'defun-prompt-regexp) |
| 1495 | (setq defun-prompt-regexp "^[ \t]*sub[ \t\n]+\\([^ \t\n{(;]+\\)\\([ \t\n]*([^()]*)[ \t\n]*\\)?[ \t\n]*") | 1747 | ;;; "[ \t]*sub" |
| 1748 | ;;; (cperl-after-sub-regexp 'named nil) ; 8=name 11=proto 14=attr-start | ||
| 1749 | ;;; cperl-maybe-white-and-comment-rex ; 15=pre-block | ||
| 1750 | (setq defun-prompt-regexp | ||
| 1751 | (concat "^[ \t]*\\(sub" | ||
| 1752 | (cperl-after-sub-regexp 'named 'attr-groups) | ||
| 1753 | "\\|" ; per toke.c | ||
| 1754 | "\\(BEGIN\\|CHECK\\|INIT\\|END\\|AUTOLOAD\\|DESTROY\\)" | ||
| 1755 | "\\)" | ||
| 1756 | cperl-maybe-white-and-comment-rex)) | ||
| 1496 | (make-local-variable 'comment-indent-function) | 1757 | (make-local-variable 'comment-indent-function) |
| 1497 | (setq comment-indent-function 'cperl-comment-indent) | 1758 | (setq comment-indent-function 'cperl-comment-indent) |
| 1759 | (and (boundp 'fill-paragraph-function) | ||
| 1760 | (progn | ||
| 1761 | (make-local-variable 'fill-paragraph-function) | ||
| 1762 | (set 'fill-paragraph-function 'cperl-fill-paragraph))) | ||
| 1498 | (make-local-variable 'parse-sexp-ignore-comments) | 1763 | (make-local-variable 'parse-sexp-ignore-comments) |
| 1499 | (setq parse-sexp-ignore-comments t) | 1764 | (setq parse-sexp-ignore-comments t) |
| 1500 | (make-local-variable 'indent-region-function) | 1765 | (make-local-variable 'indent-region-function) |
| @@ -1509,21 +1774,40 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1509 | (set 'vc-rcs-header cperl-vc-rcs-header) | 1774 | (set 'vc-rcs-header cperl-vc-rcs-header) |
| 1510 | (make-local-variable 'vc-sccs-header) | 1775 | (make-local-variable 'vc-sccs-header) |
| 1511 | (set 'vc-sccs-header cperl-vc-sccs-header) | 1776 | (set 'vc-sccs-header cperl-vc-sccs-header) |
| 1777 | ;; This one is obsolete... | ||
| 1778 | (make-local-variable 'vc-header-alist) | ||
| 1779 | (set 'vc-header-alist (or cperl-vc-header-alist ; Avoid warning | ||
| 1780 | (` ((SCCS (, (car cperl-vc-sccs-header))) | ||
| 1781 | (RCS (, (car cperl-vc-rcs-header))))))) | ||
| 1782 | (cond ((boundp 'compilation-error-regexp-alist-alist);; xemacs 20.x | ||
| 1783 | (make-local-variable 'compilation-error-regexp-alist-alist) | ||
| 1784 | (set 'compilation-error-regexp-alist-alist | ||
| 1785 | (cons (cons 'cperl cperl-compilation-error-regexp-alist) | ||
| 1786 | (symbol-value 'compilation-error-regexp-alist-alist))) | ||
| 1787 | (if (fboundp 'compilation-build-compilation-error-regexp-alist) | ||
| 1788 | (let ((f 'compilation-build-compilation-error-regexp-alist)) | ||
| 1789 | (funcall f)) | ||
| 1790 | (push 'cperl compilation-error-regexp-alist))) | ||
| 1791 | ((boundp 'compilation-error-regexp-alist);; xmeacs 19.x | ||
| 1792 | (make-local-variable 'compilation-error-regexp-alist) | ||
| 1793 | (set 'compilation-error-regexp-alist | ||
| 1794 | (cons cperl-compilation-error-regexp-alist | ||
| 1795 | (symbol-value 'compilation-error-regexp-alist))))) | ||
| 1512 | (make-local-variable 'font-lock-defaults) | 1796 | (make-local-variable 'font-lock-defaults) |
| 1513 | (setq font-lock-defaults | 1797 | (setq font-lock-defaults |
| 1514 | (cond | 1798 | (cond |
| 1515 | ((string< emacs-version "19.30") | 1799 | ((string< emacs-version "19.30") |
| 1516 | '(cperl-font-lock-keywords-2)) | 1800 | '(cperl-font-lock-keywords-2 nil nil ((?_ . "w")))) |
| 1517 | ((string< emacs-version "19.33") ; Which one to use? | 1801 | ((string< emacs-version "19.33") ; Which one to use? |
| 1518 | '((cperl-font-lock-keywords | 1802 | '((cperl-font-lock-keywords |
| 1519 | cperl-font-lock-keywords-1 | 1803 | cperl-font-lock-keywords-1 |
| 1520 | cperl-font-lock-keywords-2))) | 1804 | cperl-font-lock-keywords-2) nil nil ((?_ . "w")))) |
| 1521 | (t | 1805 | (t |
| 1522 | '((cperl-load-font-lock-keywords | 1806 | '((cperl-load-font-lock-keywords |
| 1523 | cperl-load-font-lock-keywords-1 | 1807 | cperl-load-font-lock-keywords-1 |
| 1524 | cperl-load-font-lock-keywords-2) | 1808 | cperl-load-font-lock-keywords-2) nil nil ((?_ . "w")))))) |
| 1525 | nil nil ((?_ . "w")))))) | ||
| 1526 | (make-local-variable 'cperl-syntax-state) | 1809 | (make-local-variable 'cperl-syntax-state) |
| 1810 | (setq cperl-syntax-state nil) ; reset syntaxification cache | ||
| 1527 | (if cperl-use-syntax-table-text-property | 1811 | (if cperl-use-syntax-table-text-property |
| 1528 | (progn | 1812 | (progn |
| 1529 | (make-local-variable 'parse-sexp-lookup-properties) | 1813 | (make-local-variable 'parse-sexp-lookup-properties) |
| @@ -1533,10 +1817,12 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1533 | (or (boundp 'font-lock-unfontify-region-function) | 1817 | (or (boundp 'font-lock-unfontify-region-function) |
| 1534 | (set 'font-lock-unfontify-region-function | 1818 | (set 'font-lock-unfontify-region-function |
| 1535 | 'font-lock-default-unfontify-region)) | 1819 | 'font-lock-default-unfontify-region)) |
| 1536 | (make-local-variable 'font-lock-unfontify-region-function) | 1820 | (unless cperl-xemacs-p ; Our: just a plug for wrong font-lock |
| 1537 | (set 'font-lock-unfontify-region-function ; not present with old Emacs | 1821 | (make-local-variable 'font-lock-unfontify-region-function) |
| 1538 | 'cperl-font-lock-unfontify-region-function) | 1822 | (set 'font-lock-unfontify-region-function ; not present with old Emacs |
| 1823 | 'cperl-font-lock-unfontify-region-function)) | ||
| 1539 | (make-local-variable 'cperl-syntax-done-to) | 1824 | (make-local-variable 'cperl-syntax-done-to) |
| 1825 | (setq cperl-syntax-done-to nil) ; reset syntaxification cache | ||
| 1540 | (make-local-variable 'font-lock-syntactic-keywords) | 1826 | (make-local-variable 'font-lock-syntactic-keywords) |
| 1541 | (setq font-lock-syntactic-keywords | 1827 | (setq font-lock-syntactic-keywords |
| 1542 | (if cperl-syntaxify-by-font-lock | 1828 | (if cperl-syntaxify-by-font-lock |
| @@ -1546,10 +1832,20 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1546 | ;; to make font-lock think that font-lock-syntactic-keywords | 1832 | ;; to make font-lock think that font-lock-syntactic-keywords |
| 1547 | ;; are defined. | 1833 | ;; are defined. |
| 1548 | '(t))))) | 1834 | '(t))))) |
| 1835 | (if (boundp 'font-lock-multiline) ; Newer font-lock; use its facilities | ||
| 1836 | (progn | ||
| 1837 | (setq cperl-font-lock-multiline t) ; Not localized... | ||
| 1838 | (set 'font-lock-multiline t)) ; not present with old Emacs; auto-local | ||
| 1839 | (make-local-variable 'font-lock-fontify-region-function) | ||
| 1840 | (set 'font-lock-fontify-region-function ; not present with old Emacs | ||
| 1841 | 'cperl-font-lock-fontify-region-function)) | ||
| 1842 | (make-local-variable 'font-lock-fontify-region-function) | ||
| 1843 | (set 'font-lock-fontify-region-function ; not present with old Emacs | ||
| 1844 | 'cperl-font-lock-fontify-region-function) | ||
| 1549 | (make-local-variable 'cperl-old-style) | 1845 | (make-local-variable 'cperl-old-style) |
| 1550 | (if (boundp 'normal-auto-fill-function) ; 19.33 and later | 1846 | (if (boundp 'normal-auto-fill-function) ; 19.33 and later |
| 1551 | (set (make-local-variable 'normal-auto-fill-function) | 1847 | (set (make-local-variable 'normal-auto-fill-function) |
| 1552 | 'cperl-do-auto-fill) ; RMS has it as #'cperl-do-auto-fill ??? | 1848 | 'cperl-do-auto-fill) |
| 1553 | (or (fboundp 'cperl-old-auto-fill-mode) | 1849 | (or (fboundp 'cperl-old-auto-fill-mode) |
| 1554 | (progn | 1850 | (progn |
| 1555 | (fset 'cperl-old-auto-fill-mode (symbol-function 'auto-fill-mode)) | 1851 | (fset 'cperl-old-auto-fill-mode (symbol-function 'auto-fill-mode)) |
| @@ -1562,12 +1858,18 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1562 | (if (cperl-val 'cperl-font-lock) | 1858 | (if (cperl-val 'cperl-font-lock) |
| 1563 | (progn (or cperl-faces-init (cperl-init-faces)) | 1859 | (progn (or cperl-faces-init (cperl-init-faces)) |
| 1564 | (font-lock-mode 1)))) | 1860 | (font-lock-mode 1)))) |
| 1861 | (set (make-local-variable 'facemenu-add-face-function) | ||
| 1862 | 'cperl-facemenu-add-face-function) ; XXXX What this guy is for??? | ||
| 1565 | (and (boundp 'msb-menu-cond) | 1863 | (and (boundp 'msb-menu-cond) |
| 1566 | (not cperl-msb-fixed) | 1864 | (not cperl-msb-fixed) |
| 1567 | (cperl-msb-fix)) | 1865 | (cperl-msb-fix)) |
| 1568 | (if (featurep 'easymenu) | 1866 | (if (featurep 'easymenu) |
| 1569 | (easy-menu-add cperl-menu)) ; A NOP in Emacs. | 1867 | (easy-menu-add cperl-menu)) ; A NOP in Emacs. |
| 1570 | (run-mode-hooks 'cperl-mode-hook) | 1868 | (run-mode-hooks 'cperl-mode-hook) |
| 1869 | (if cperl-hook-after-change | ||
| 1870 | (progn | ||
| 1871 | (make-local-hook 'after-change-functions) | ||
| 1872 | (add-hook 'after-change-functions 'cperl-after-change-function nil t))) | ||
| 1571 | ;; After hooks since fontification will break this | 1873 | ;; After hooks since fontification will break this |
| 1572 | (if cperl-pod-here-scan | 1874 | (if cperl-pod-here-scan |
| 1573 | (or cperl-syntaxify-by-font-lock | 1875 | (or cperl-syntaxify-by-font-lock |
| @@ -1616,31 +1918,37 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1616 | (defvar cperl-st-ket '(5 . ?\<)) | 1918 | (defvar cperl-st-ket '(5 . ?\<)) |
| 1617 | 1919 | ||
| 1618 | 1920 | ||
| 1619 | (defun cperl-comment-indent () | 1921 | (defun cperl-comment-indent () ; called at point at supposed comment |
| 1620 | (let ((p (point)) (c (current-column)) was phony) | 1922 | (let ((p (point)) (c (current-column)) was phony) |
| 1621 | (if (looking-at "^#") 0 ; Existing comment at bol stays there. | 1923 | (if (and (not cperl-indent-comment-at-column-0) |
| 1924 | (looking-at "^#")) | ||
| 1925 | 0 ; Existing comment at bol stays there. | ||
| 1622 | ;; Wrong comment found | 1926 | ;; Wrong comment found |
| 1623 | (save-excursion | 1927 | (save-excursion |
| 1624 | (setq was (cperl-to-comment-or-eol) | 1928 | (setq was (cperl-to-comment-or-eol) |
| 1625 | phony (eq (get-text-property (point) 'syntax-table) | 1929 | phony (eq (get-text-property (point) 'syntax-table) |
| 1626 | cperl-st-cfence)) | 1930 | cperl-st-cfence)) |
| 1627 | (if phony | 1931 | (if phony |
| 1628 | (progn | 1932 | (progn ; Too naive??? |
| 1629 | (re-search-forward "#\\|$") ; Hmm, what about embedded #? | 1933 | (re-search-forward "#\\|$") ; Hmm, what about embedded #? |
| 1630 | (if (eq (preceding-char) ?\#) | 1934 | (if (eq (preceding-char) ?\#) |
| 1631 | (forward-char -1)) | 1935 | (forward-char -1)) |
| 1632 | (setq was nil))) | 1936 | (setq was nil))) |
| 1633 | (if (= (point) p) | 1937 | (if (= (point) p) ; Our caller found a correct place |
| 1634 | (progn | 1938 | (progn |
| 1635 | (skip-chars-backward " \t") | 1939 | (skip-chars-backward " \t") |
| 1636 | (max (1+ (current-column)) ; Else indent at comment column | 1940 | (setq was (current-column)) |
| 1637 | comment-column)) | 1941 | (if (eq was 0) |
| 1942 | comment-column | ||
| 1943 | (max (1+ was) ; Else indent at comment column | ||
| 1944 | comment-column))) | ||
| 1945 | ;; No, the caller found a random place; we need to edit ourselves | ||
| 1638 | (if was nil | 1946 | (if was nil |
| 1639 | (insert comment-start) | 1947 | (insert comment-start) |
| 1640 | (backward-char (length comment-start))) | 1948 | (backward-char (length comment-start))) |
| 1641 | (setq cperl-wrong-comment t) | 1949 | (setq cperl-wrong-comment t) |
| 1642 | (indent-to comment-column 1) ; Indent minimum 1 | 1950 | (cperl-make-indent comment-column 1) ; Indent min 1 |
| 1643 | c))))) ; except leave at least one space. | 1951 | c))))) |
| 1644 | 1952 | ||
| 1645 | ;;;(defun cperl-comment-indent-fallback () | 1953 | ;;;(defun cperl-comment-indent-fallback () |
| 1646 | ;;; "Is called if the standard comment-search procedure fails. | 1954 | ;;; "Is called if the standard comment-search procedure fails. |
| @@ -1666,7 +1974,7 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1666 | (interactive) | 1974 | (interactive) |
| 1667 | (let (cperl-wrong-comment) | 1975 | (let (cperl-wrong-comment) |
| 1668 | (indent-for-comment) | 1976 | (indent-for-comment) |
| 1669 | (if cperl-wrong-comment | 1977 | (if cperl-wrong-comment ; set by `cperl-comment-indent' |
| 1670 | (progn (cperl-to-comment-or-eol) | 1978 | (progn (cperl-to-comment-or-eol) |
| 1671 | (forward-char (length comment-start)))))) | 1979 | (forward-char (length comment-start)))))) |
| 1672 | 1980 | ||
| @@ -1966,15 +2274,10 @@ to nil." | |||
| 1966 | (or | 2274 | (or |
| 1967 | (get-text-property (point) 'in-pod) | 2275 | (get-text-property (point) 'in-pod) |
| 1968 | (cperl-after-expr-p nil "{;:") | 2276 | (cperl-after-expr-p nil "{;:") |
| 1969 | (and (re-search-backward | 2277 | (and (re-search-backward "\\(\\`\n?\\|^\n\\)=\\sw+" (point-min) t) |
| 1970 | ;; "\\(\\`\n?\\|\n\n\\)=\\sw+" | 2278 | (not (looking-at "\n*=cut")) |
| 1971 | "\\(\\`\n?\\|^\n\\)=\\sw+" | 2279 | (or (not cperl-use-syntax-table-text-property) |
| 1972 | (point-min) t) | 2280 | (eq (get-text-property (point) 'syntax-type) 'pod)))))) |
| 1973 | (not (or | ||
| 1974 | (looking-at "=cut") | ||
| 1975 | (and cperl-use-syntax-table-text-property | ||
| 1976 | (not (eq (get-text-property (point) 'syntax-type) | ||
| 1977 | 'pod))))))))) | ||
| 1978 | (progn | 2281 | (progn |
| 1979 | (save-excursion | 2282 | (save-excursion |
| 1980 | (setq notlast (re-search-forward "^\n=" nil t))) | 2283 | (setq notlast (re-search-forward "^\n=" nil t))) |
| @@ -2252,7 +2555,7 @@ key. Will untabify if `cperl-electric-backspace-untabify' is non-nil." | |||
| 2252 | 2555 | ||
| 2253 | (put 'cperl-electric-backspace 'delete-selection 'supersede) | 2556 | (put 'cperl-electric-backspace 'delete-selection 'supersede) |
| 2254 | 2557 | ||
| 2255 | (defun cperl-inside-parens-p () | 2558 | (defun cperl-inside-parens-p () ;; NOT USED???? |
| 2256 | (condition-case () | 2559 | (condition-case () |
| 2257 | (save-excursion | 2560 | (save-excursion |
| 2258 | (save-restriction | 2561 | (save-restriction |
| @@ -2332,8 +2635,9 @@ Return the amount the indentation changed by." | |||
| 2332 | (zerop shift-amt)) | 2635 | (zerop shift-amt)) |
| 2333 | (if (> (- (point-max) pos) (point)) | 2636 | (if (> (- (point-max) pos) (point)) |
| 2334 | (goto-char (- (point-max) pos))) | 2637 | (goto-char (- (point-max) pos))) |
| 2335 | (delete-region beg (point)) | 2638 | ;;;(delete-region beg (point)) |
| 2336 | (indent-to indent) | 2639 | ;;;(indent-to indent) |
| 2640 | (cperl-make-indent indent) | ||
| 2337 | ;; If initial point was within line's indentation, | 2641 | ;; If initial point was within line's indentation, |
| 2338 | ;; position after the indentation. Else stay at same point in text. | 2642 | ;; position after the indentation. Else stay at same point in text. |
| 2339 | (if (> (- (point-max) pos) (point)) | 2643 | (if (> (- (point-max) pos) (point)) |
| @@ -2380,63 +2684,55 @@ Return the amount the indentation changed by." | |||
| 2380 | (or state (setq state (parse-partial-sexp start start-point -1 nil start-state))) | 2684 | (or state (setq state (parse-partial-sexp start start-point -1 nil start-state))) |
| 2381 | (list start state depth prestart)))) | 2685 | (list start state depth prestart)))) |
| 2382 | 2686 | ||
| 2383 | (defun cperl-block-p () ; Do not C-M-q ! One string contains ";" ! | ||
| 2384 | ;; Positions is before ?\{. Checks whether it starts a block. | ||
| 2385 | ;; No save-excursion! | ||
| 2386 | (cperl-backward-to-noncomment (point-min)) | ||
| 2387 | (or (memq (preceding-char) (append ";){}$@&%\C-@" nil)) ; Or label! \C-@ at bobp | ||
| 2388 | ; Label may be mixed up with `$blah :' | ||
| 2389 | (save-excursion (cperl-after-label)) | ||
| 2390 | (and (memq (char-syntax (preceding-char)) '(?w ?_)) | ||
| 2391 | (progn | ||
| 2392 | (backward-sexp) | ||
| 2393 | ;; Need take into account `bless', `return', `tr',... | ||
| 2394 | (or (and (looking-at "[a-zA-Z0-9_:]+[ \t\n\f]*[{#]") ; Method call syntax | ||
| 2395 | (not (looking-at "\\(bless\\|return\\|q[wqrx]?\\|tr\\|[smy]\\)\\>"))) | ||
| 2396 | (progn | ||
| 2397 | (skip-chars-backward " \t\n\f") | ||
| 2398 | (and (memq (char-syntax (preceding-char)) '(?w ?_)) | ||
| 2399 | (progn | ||
| 2400 | (backward-sexp) | ||
| 2401 | (looking-at | ||
| 2402 | "sub[ \t]+[a-zA-Z0-9_:]+[ \t\n\f]*\\(([^()]*)[ \t\n\f]*\\)?[#{]"))))))))) | ||
| 2403 | |||
| 2404 | (defvar cperl-look-for-prop '((pod in-pod) (here-doc-delim here-doc-group))) | 2687 | (defvar cperl-look-for-prop '((pod in-pod) (here-doc-delim here-doc-group))) |
| 2405 | 2688 | ||
| 2406 | (defun cperl-calculate-indent (&optional parse-data) ; was parse-start | 2689 | (defun cperl-beginning-of-property (p prop &optional lim) |
| 2407 | "Return appropriate indentation for current line as Perl code. | 2690 | "Given that P has a property PROP, find where the property starts. |
| 2408 | In usual case returns an integer: the column to indent to. | 2691 | Will not look before LIM." |
| 2409 | Returns nil if line starts inside a string, t if in a comment. | 2692 | ;;; XXXX What to do at point-max??? |
| 2410 | 2693 | (or (previous-single-property-change (cperl-1+ p) prop lim) | |
| 2411 | Will not correct the indentation for labels, but will correct it for braces | 2694 | (point-min)) |
| 2412 | and closing parentheses and brackets." | 2695 | ;;; (cond ((eq p (point-min)) |
| 2696 | ;;; p) | ||
| 2697 | ;;; ((and lim (<= p lim)) | ||
| 2698 | ;;; p) | ||
| 2699 | ;;; ((not (get-text-property (1- p) prop)) | ||
| 2700 | ;;; p) | ||
| 2701 | ;;; (t (or (previous-single-property-change p look-prop lim) | ||
| 2702 | ;;; (point-min)))) | ||
| 2703 | ) | ||
| 2704 | |||
| 2705 | (defun cperl-sniff-for-indent (&optional parse-data) ; was parse-start | ||
| 2706 | ;; Old workhorse for calculation of indentation; the major problem | ||
| 2707 | ;; is that it mixes the sniffer logic to understand what the current line | ||
| 2708 | ;; MEANS with the logic to actually calculate where to indent it. | ||
| 2709 | ;; The latter part should be eventually moved to `cperl-calculate-indent'; | ||
| 2710 | ;; actually, this is mostly done now... | ||
| 2413 | (cperl-update-syntaxification (point) (point)) | 2711 | (cperl-update-syntaxification (point) (point)) |
| 2414 | (save-excursion | 2712 | (let ((res (get-text-property (point) 'syntax-type))) |
| 2415 | (if (or | 2713 | (save-excursion |
| 2416 | (and (memq (get-text-property (point) 'syntax-type) | 2714 | (cond |
| 2417 | '(pod here-doc here-doc-delim format)) | 2715 | ((and (memq res '(pod here-doc here-doc-delim format)) |
| 2418 | (not (get-text-property (point) 'indentable))) | 2716 | (not (get-text-property (point) 'indentable))) |
| 2419 | ;; before start of POD - whitespace found since do not have 'pod! | 2717 | (vector res)) |
| 2420 | (and (looking-at "[ \t]*\n=") | 2718 | ;; before start of POD - whitespace found since do not have 'pod! |
| 2421 | (error "Spaces before POD section!")) | 2719 | ((looking-at "[ \t]*\n=") |
| 2422 | (and (not cperl-indent-left-aligned-comments) | 2720 | (error "Spaces before POD section!")) |
| 2423 | (looking-at "^#"))) | 2721 | ((and (not cperl-indent-left-aligned-comments) |
| 2424 | nil | 2722 | (looking-at "^#")) |
| 2425 | (beginning-of-line) | 2723 | [comment-special:at-beginning-of-line]) |
| 2426 | (let ((indent-point (point)) | 2724 | ((get-text-property (point) 'in-pod) |
| 2427 | (char-after (save-excursion | 2725 | [in-pod]) |
| 2428 | (skip-chars-forward " \t") | 2726 | (t |
| 2429 | (following-char))) | 2727 | (beginning-of-line) |
| 2430 | (in-pod (get-text-property (point) 'in-pod)) | 2728 | (let* ((indent-point (point)) |
| 2431 | (pre-indent-point (point)) | 2729 | (char-after-pos (save-excursion |
| 2432 | p prop look-prop is-block delim) | 2730 | (skip-chars-forward " \t") |
| 2433 | (cond | 2731 | (point))) |
| 2434 | (in-pod | 2732 | (char-after (char-after char-after-pos)) |
| 2435 | ;; In the verbatim part, probably code example. What to do??? | 2733 | (pre-indent-point (point)) |
| 2436 | ) | 2734 | p prop look-prop is-block delim) |
| 2437 | (t | 2735 | (save-excursion ; Know we are not in POD, find appropriate pos before |
| 2438 | (save-excursion | ||
| 2439 | ;; Not in POD | ||
| 2440 | (cperl-backward-to-noncomment nil) | 2736 | (cperl-backward-to-noncomment nil) |
| 2441 | (setq p (max (point-min) (1- (point))) | 2737 | (setq p (max (point-min) (1- (point))) |
| 2442 | prop (get-text-property p 'syntax-type) | 2738 | prop (get-text-property p 'syntax-type) |
| @@ -2444,437 +2740,597 @@ and closing parentheses and brackets." | |||
| 2444 | 'syntax-type)) | 2740 | 'syntax-type)) |
| 2445 | (if (memq prop '(pod here-doc format here-doc-delim)) | 2741 | (if (memq prop '(pod here-doc format here-doc-delim)) |
| 2446 | (progn | 2742 | (progn |
| 2447 | (goto-char (or (previous-single-property-change p look-prop) | 2743 | (goto-char (cperl-beginning-of-property p look-prop)) |
| 2448 | (point-min))) | ||
| 2449 | (beginning-of-line) | 2744 | (beginning-of-line) |
| 2450 | (setq pre-indent-point (point))))))) | 2745 | (setq pre-indent-point (point))))) |
| 2451 | (goto-char pre-indent-point) | 2746 | (goto-char pre-indent-point) ; Orig line skipping preceeding pod/etc |
| 2452 | (let* ((case-fold-search nil) | 2747 | (let* ((case-fold-search nil) |
| 2453 | (s-s (cperl-get-state (car parse-data) (nth 1 parse-data))) | 2748 | (s-s (cperl-get-state (car parse-data) (nth 1 parse-data))) |
| 2454 | (start (or (nth 2 parse-data) | 2749 | (start (or (nth 2 parse-data) ; last complete sexp terminated |
| 2455 | (nth 0 s-s))) | 2750 | (nth 0 s-s))) ; Good place to start parsing |
| 2456 | (state (nth 1 s-s)) | 2751 | (state (nth 1 s-s)) |
| 2457 | (containing-sexp (car (cdr state))) | 2752 | (containing-sexp (car (cdr state))) |
| 2458 | old-indent) | 2753 | old-indent) |
| 2459 | (if (and | 2754 | (if (and |
| 2460 | ;;containing-sexp ;; We are buggy at toplevel :-( | 2755 | ;;containing-sexp ;; We are buggy at toplevel :-( |
| 2461 | parse-data) | 2756 | parse-data) |
| 2462 | (progn | 2757 | (progn |
| 2463 | (setcar parse-data pre-indent-point) | 2758 | (setcar parse-data pre-indent-point) |
| 2464 | (setcar (cdr parse-data) state) | 2759 | (setcar (cdr parse-data) state) |
| 2465 | (or (nth 2 parse-data) | 2760 | (or (nth 2 parse-data) |
| 2466 | (setcar (cddr parse-data) start)) | 2761 | (setcar (cddr parse-data) start)) |
| 2467 | ;; Before this point: end of statement | 2762 | ;; Before this point: end of statement |
| 2468 | (setq old-indent (nth 3 parse-data)))) | 2763 | (setq old-indent (nth 3 parse-data)))) |
| 2469 | (cond ((get-text-property (point) 'indentable) | 2764 | (cond ((get-text-property (point) 'indentable) |
| 2470 | ;; indent to just after the surrounding open, | 2765 | ;; indent to "after" the surrounding open |
| 2471 | ;; skip blanks if we do not close the expression. | 2766 | ;; (same offset as `cperl-beautify-regexp-piece'), |
| 2472 | (goto-char (1+ (previous-single-property-change (point) 'indentable))) | 2767 | ;; skip blanks if we do not close the expression. |
| 2473 | (or (memq char-after (append ")]}" nil)) | 2768 | (setq delim ; We do not close the expression |
| 2474 | (looking-at "[ \t]*\\(#\\|$\\)") | 2769 | (get-text-property |
| 2475 | (skip-chars-forward " \t")) | 2770 | (cperl-1+ char-after-pos) 'indentable) |
| 2476 | (current-column)) | 2771 | p (1+ (cperl-beginning-of-property |
| 2477 | ((or (nth 3 state) (nth 4 state)) | 2772 | (point) 'indentable)) |
| 2478 | ;; return nil or t if should not change this line | 2773 | is-block ; misused for: preceeding line in REx |
| 2479 | (nth 4 state)) | 2774 | (save-excursion ; Find preceeding line |
| 2480 | ;; XXXX Do we need to special-case this? | 2775 | (cperl-backward-to-noncomment p) |
| 2481 | ((null containing-sexp) | 2776 | (beginning-of-line) |
| 2482 | ;; Line is at top level. May be data or function definition, | 2777 | (if (<= (point) p) |
| 2483 | ;; or may be function argument declaration. | 2778 | (progn ; get indent from the first line |
| 2484 | ;; Indent like the previous top level line | 2779 | (goto-char p) |
| 2485 | ;; unless that ends in a closeparen without semicolon, | 2780 | (skip-chars-forward " \t") |
| 2486 | ;; in which case this line is the first argument decl. | 2781 | (if (memq (char-after (point)) |
| 2487 | (skip-chars-forward " \t") | 2782 | (append "#\n" nil)) |
| 2488 | (+ (save-excursion | 2783 | nil ; Can't use intentation of this line... |
| 2489 | (goto-char start) | 2784 | (point))) |
| 2490 | (- (current-indentation) | 2785 | (skip-chars-forward " \t") |
| 2491 | (if (nth 2 s-s) cperl-indent-level 0))) | 2786 | (point))) |
| 2492 | (if (= char-after ?{) cperl-continued-brace-offset 0) | 2787 | prop (parse-partial-sexp p char-after-pos)) |
| 2493 | (progn | 2788 | (cond ((not delim) ; End the REx, ignore is-block |
| 2494 | (cperl-backward-to-noncomment (or old-indent (point-min))) | 2789 | (vector 'indentable 'terminator p is-block)) |
| 2495 | ;; Look at previous line that's at column 0 | 2790 | (is-block ; Indent w.r.t. preceeding line |
| 2496 | ;; to determine whether we are in top-level decls | 2791 | (vector 'indentable 'cont-line char-after-pos |
| 2497 | ;; or function's arg decls. Set basic-indent accordingly. | 2792 | is-block char-after p)) |
| 2498 | ;; Now add a little if this is a continuation line. | 2793 | (t ; No preceeding line... |
| 2499 | (if (or (bobp) | 2794 | (vector 'indentable 'first-line p)))) |
| 2500 | (eq (point) old-indent) ; old-indent was at comment | 2795 | ((get-text-property char-after-pos 'REx-part2) |
| 2501 | (eq (preceding-char) ?\;) | 2796 | (vector 'REx-part2 (point))) |
| 2502 | ;; Had ?\) too | 2797 | ((nth 3 state) |
| 2503 | (and (eq (preceding-char) ?\}) | 2798 | [comment]) |
| 2504 | (cperl-after-block-and-statement-beg | 2799 | ((nth 4 state) |
| 2505 | (point-min))) ; Was start - too close | 2800 | [string]) |
| 2506 | (memq char-after (append ")]}" nil)) | 2801 | ;; XXXX Do we need to special-case this? |
| 2507 | (and (eq (preceding-char) ?\:) ; label | 2802 | ((null containing-sexp) |
| 2508 | (progn | 2803 | ;; Line is at top level. May be data or function definition, |
| 2509 | (forward-sexp -1) | 2804 | ;; or may be function argument declaration. |
| 2510 | (skip-chars-backward " \t") | 2805 | ;; Indent like the previous top level line |
| 2511 | (looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:"))) | 2806 | ;; unless that ends in a closeparen without semicolon, |
| 2512 | (get-text-property (point) 'first-format-line)) | 2807 | ;; in which case this line is the first argument decl. |
| 2513 | (progn | 2808 | (skip-chars-forward " \t") |
| 2514 | (if (and parse-data | 2809 | (cperl-backward-to-noncomment (or old-indent (point-min))) |
| 2515 | (not (eq char-after ?\C-j))) | 2810 | (setq state |
| 2516 | (setcdr (cddr parse-data) | 2811 | (or (bobp) |
| 2517 | (list pre-indent-point))) | 2812 | (eq (point) old-indent) ; old-indent was at comment |
| 2518 | 0) | 2813 | (eq (preceding-char) ?\;) |
| 2519 | cperl-continued-statement-offset)))) | 2814 | ;; Had ?\) too |
| 2520 | ((not | 2815 | (and (eq (preceding-char) ?\}) |
| 2521 | (or (setq is-block | 2816 | (cperl-after-block-and-statement-beg |
| 2522 | (and (setq delim (= (char-after containing-sexp) ?{)) | 2817 | (point-min))) ; Was start - too close |
| 2523 | (save-excursion ; Is it a hash? | 2818 | (memq char-after (append ")]}" nil)) |
| 2524 | (goto-char containing-sexp) | 2819 | (and (eq (preceding-char) ?\:) ; label |
| 2525 | (cperl-block-p)))) | ||
| 2526 | cperl-indent-parens-as-block)) | ||
| 2527 | ;; group is an expression, not a block: | ||
| 2528 | ;; indent to just after the surrounding open parens, | ||
| 2529 | ;; skip blanks if we do not close the expression. | ||
| 2530 | (goto-char (1+ containing-sexp)) | ||
| 2531 | (or (memq char-after | ||
| 2532 | (append (if delim "}" ")]}") nil)) | ||
| 2533 | (looking-at "[ \t]*\\(#\\|$\\)") | ||
| 2534 | (skip-chars-forward " \t")) | ||
| 2535 | (+ (current-column) | ||
| 2536 | (if (and delim | ||
| 2537 | (eq char-after ?\})) | ||
| 2538 | ;; Correct indentation of trailing ?\} | ||
| 2539 | (+ cperl-indent-level cperl-close-paren-offset) | ||
| 2540 | 0))) | ||
| 2541 | ;;; ((and (/= (char-after containing-sexp) ?{) | ||
| 2542 | ;;; (not cperl-indent-parens-as-block)) | ||
| 2543 | ;;; ;; line is expression, not statement: | ||
| 2544 | ;;; ;; indent to just after the surrounding open, | ||
| 2545 | ;;; ;; skip blanks if we do not close the expression. | ||
| 2546 | ;;; (goto-char (1+ containing-sexp)) | ||
| 2547 | ;;; (or (memq char-after (append ")]}" nil)) | ||
| 2548 | ;;; (looking-at "[ \t]*\\(#\\|$\\)") | ||
| 2549 | ;;; (skip-chars-forward " \t")) | ||
| 2550 | ;;; (current-column)) | ||
| 2551 | ;;; ((progn | ||
| 2552 | ;;; ;; Containing-expr starts with \{. Check whether it is a hash. | ||
| 2553 | ;;; (goto-char containing-sexp) | ||
| 2554 | ;;; (and (not (cperl-block-p)) | ||
| 2555 | ;;; (not cperl-indent-parens-as-block))) | ||
| 2556 | ;;; (goto-char (1+ containing-sexp)) | ||
| 2557 | ;;; (or (eq char-after ?\}) | ||
| 2558 | ;;; (looking-at "[ \t]*\\(#\\|$\\)") | ||
| 2559 | ;;; (skip-chars-forward " \t")) | ||
| 2560 | ;;; (+ (current-column) ; Correct indentation of trailing ?\} | ||
| 2561 | ;;; (if (eq char-after ?\}) (+ cperl-indent-level | ||
| 2562 | ;;; cperl-close-paren-offset) | ||
| 2563 | ;;; 0))) | ||
| 2564 | (t | ||
| 2565 | ;; Statement level. Is it a continuation or a new statement? | ||
| 2566 | ;; Find previous non-comment character. | ||
| 2567 | (goto-char pre-indent-point) | ||
| 2568 | (cperl-backward-to-noncomment containing-sexp) | ||
| 2569 | ;; Back up over label lines, since they don't | ||
| 2570 | ;; affect whether our line is a continuation. | ||
| 2571 | ;; (Had \, too) | ||
| 2572 | (while ;;(or (eq (preceding-char) ?\,) | ||
| 2573 | (and (eq (preceding-char) ?:) | ||
| 2574 | (or ;;(eq (char-after (- (point) 2)) ?\') ; ???? | ||
| 2575 | (memq (char-syntax (char-after (- (point) 2))) | ||
| 2576 | '(?w ?_)))) | ||
| 2577 | ;;) | ||
| 2578 | (if (eq (preceding-char) ?\,) | ||
| 2579 | ;; Will go to beginning of line, essentially. | ||
| 2580 | ;; Will ignore embedded sexpr XXXX. | ||
| 2581 | (cperl-backward-to-start-of-continued-exp containing-sexp)) | ||
| 2582 | (beginning-of-line) | ||
| 2583 | (cperl-backward-to-noncomment containing-sexp)) | ||
| 2584 | ;; Now we get the answer. | ||
| 2585 | (if (not (or (eq (1- (point)) containing-sexp) | ||
| 2586 | (memq (preceding-char) | ||
| 2587 | (append (if is-block " ;{" " ,;{") '(nil))) | ||
| 2588 | (and (eq (preceding-char) ?\}) | ||
| 2589 | (cperl-after-block-and-statement-beg | ||
| 2590 | containing-sexp)) | ||
| 2591 | (get-text-property (point) 'first-format-line))) | ||
| 2592 | ;; This line is continuation of preceding line's statement; | ||
| 2593 | ;; indent `cperl-continued-statement-offset' more than the | ||
| 2594 | ;; previous line of the statement. | ||
| 2595 | ;; | ||
| 2596 | ;; There might be a label on this line, just | ||
| 2597 | ;; consider it bad style and ignore it. | ||
| 2598 | (progn | ||
| 2599 | (cperl-backward-to-start-of-continued-exp containing-sexp) | ||
| 2600 | (+ (if (memq char-after (append "}])" nil)) | ||
| 2601 | 0 ; Closing parenth | ||
| 2602 | cperl-continued-statement-offset) | ||
| 2603 | (if (or is-block | ||
| 2604 | (not delim) | ||
| 2605 | (not (eq char-after ?\}))) | ||
| 2606 | 0 | ||
| 2607 | ;; Now it is a hash reference | ||
| 2608 | (+ cperl-indent-level cperl-close-paren-offset)) | ||
| 2609 | (if (looking-at "\\w+[ \t]*:") | ||
| 2610 | (if (> (current-indentation) cperl-min-label-indent) | ||
| 2611 | (- (current-indentation) cperl-label-offset) | ||
| 2612 | ;; Do not move `parse-data', this should | ||
| 2613 | ;; be quick anyway (this comment comes | ||
| 2614 | ;; from different location): | ||
| 2615 | (cperl-calculate-indent)) | ||
| 2616 | (current-column)) | ||
| 2617 | (if (eq char-after ?\{) | ||
| 2618 | cperl-continued-brace-offset 0))) | ||
| 2619 | ;; This line starts a new statement. | ||
| 2620 | ;; Position following last unclosed open. | ||
| 2621 | (goto-char containing-sexp) | ||
| 2622 | ;; Is line first statement after an open-brace? | ||
| 2623 | (or | ||
| 2624 | ;; If no, find that first statement and indent like | ||
| 2625 | ;; it. If the first statement begins with label, do | ||
| 2626 | ;; not believe when the indentation of the label is too | ||
| 2627 | ;; small. | ||
| 2628 | (save-excursion | ||
| 2629 | (forward-char 1) | ||
| 2630 | (setq old-indent (current-indentation)) | ||
| 2631 | (let ((colon-line-end 0)) | ||
| 2632 | (while | ||
| 2633 | (progn (skip-chars-forward " \t\n") | ||
| 2634 | (looking-at "#\\|[a-zA-Z0-9_$]*:[^:]\\|=[a-zA-Z]")) | ||
| 2635 | ;; Skip over comments and labels following openbrace. | ||
| 2636 | (cond ((= (following-char) ?\#) | ||
| 2637 | (forward-line 1)) | ||
| 2638 | ((= (following-char) ?\=) | ||
| 2639 | (goto-char | ||
| 2640 | (or (next-single-property-change (point) 'in-pod) | ||
| 2641 | (point-max)))) ; do not loop if no syntaxification | ||
| 2642 | ;; label: | ||
| 2643 | (t | ||
| 2644 | (save-excursion (end-of-line) | ||
| 2645 | (setq colon-line-end (point))) | ||
| 2646 | (search-forward ":")))) | ||
| 2647 | ;; The first following code counts | ||
| 2648 | ;; if it is before the line we want to indent. | ||
| 2649 | (and (< (point) indent-point) | ||
| 2650 | (if (> colon-line-end (point)) ; After label | ||
| 2651 | (if (> (current-indentation) | ||
| 2652 | cperl-min-label-indent) | ||
| 2653 | (- (current-indentation) cperl-label-offset) | ||
| 2654 | ;; Do not believe: `max' is involved | ||
| 2655 | (+ old-indent cperl-indent-level)) | ||
| 2656 | (current-column))))) | ||
| 2657 | ;; If no previous statement, | ||
| 2658 | ;; indent it relative to line brace is on. | ||
| 2659 | ;; For open brace in column zero, don't let statement | ||
| 2660 | ;; start there too. If cperl-indent-level is zero, | ||
| 2661 | ;; use cperl-brace-offset + cperl-continued-statement-offset instead. | ||
| 2662 | ;; For open-braces not the first thing in a line, | ||
| 2663 | ;; add in cperl-brace-imaginary-offset. | ||
| 2664 | |||
| 2665 | ;; If first thing on a line: ????? | ||
| 2666 | (+ (if (and (bolp) (zerop cperl-indent-level)) | ||
| 2667 | (+ cperl-brace-offset cperl-continued-statement-offset) | ||
| 2668 | cperl-indent-level) | ||
| 2669 | (if (or is-block | ||
| 2670 | (not delim) | ||
| 2671 | (not (eq char-after ?\}))) | ||
| 2672 | 0 | ||
| 2673 | ;; Now it is a hash reference | ||
| 2674 | (+ cperl-indent-level cperl-close-paren-offset)) | ||
| 2675 | ;; Move back over whitespace before the openbrace. | ||
| 2676 | ;; If openbrace is not first nonwhite thing on the line, | ||
| 2677 | ;; add the cperl-brace-imaginary-offset. | ||
| 2678 | (progn (skip-chars-backward " \t") | ||
| 2679 | (if (bolp) 0 cperl-brace-imaginary-offset)) | ||
| 2680 | ;; If the openbrace is preceded by a parenthesized exp, | ||
| 2681 | ;; move to the beginning of that; | ||
| 2682 | ;; possibly a different line | ||
| 2683 | (progn | ||
| 2684 | (if (eq (preceding-char) ?\)) | ||
| 2685 | (forward-sexp -1)) | ||
| 2686 | ;; In the case it starts a subroutine, indent with | ||
| 2687 | ;; respect to `sub', not with respect to the | ||
| 2688 | ;; first thing on the line, say in the case of | ||
| 2689 | ;; anonymous sub in a hash. | ||
| 2690 | ;; | ||
| 2691 | (skip-chars-backward " \t") | ||
| 2692 | (if (and (eq (preceding-char) ?b) | ||
| 2693 | (progn | 2820 | (progn |
| 2694 | (forward-sexp -1) | 2821 | (forward-sexp -1) |
| 2695 | (looking-at "sub\\>")) | 2822 | (skip-chars-backward " \t") |
| 2696 | (setq old-indent | 2823 | (looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:"))) |
| 2697 | (nth 1 | 2824 | (get-text-property (point) 'first-format-line))) |
| 2698 | (parse-partial-sexp | 2825 | |
| 2699 | (save-excursion (beginning-of-line) (point)) | 2826 | ;; Look at previous line that's at column 0 |
| 2700 | (point))))) | 2827 | ;; to determine whether we are in top-level decls |
| 2701 | (progn (goto-char (1+ old-indent)) | 2828 | ;; or function's arg decls. Set basic-indent accordingly. |
| 2702 | (skip-chars-forward " \t") | 2829 | ;; Now add a little if this is a continuation line. |
| 2703 | (current-column)) | 2830 | (and state |
| 2704 | ;; Get initial indentation of the line we are on. | 2831 | parse-data |
| 2705 | ;; If line starts with label, calculate label indentation | 2832 | (not (eq char-after ?\C-j)) |
| 2706 | (if (save-excursion | 2833 | (setcdr (cddr parse-data) |
| 2707 | (beginning-of-line) | 2834 | (list pre-indent-point))) |
| 2708 | (looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*:[^:]")) | 2835 | (vector 'toplevel start char-after state (nth 2 s-s))) |
| 2709 | (if (> (current-indentation) cperl-min-label-indent) | 2836 | ((not |
| 2710 | (- (current-indentation) cperl-label-offset) | 2837 | (or (setq is-block |
| 2711 | ;; Do not move `parse-data', this should | 2838 | (and (setq delim (= (char-after containing-sexp) ?{)) |
| 2712 | ;; be quick anyway: | 2839 | (save-excursion ; Is it a hash? |
| 2713 | (cperl-calculate-indent)) | 2840 | (goto-char containing-sexp) |
| 2714 | (current-indentation)))))))))))))) | 2841 | (cperl-block-p)))) |
| 2715 | 2842 | cperl-indent-parens-as-block)) | |
| 2716 | ;; (defvar cperl-indent-alist | 2843 | ;; group is an expression, not a block: |
| 2717 | ;; '((string nil) | 2844 | ;; indent to just after the surrounding open parens, |
| 2718 | ;; (comment nil) | 2845 | ;; skip blanks if we do not close the expression. |
| 2719 | ;; (toplevel 0) | 2846 | (goto-char (1+ containing-sexp)) |
| 2720 | ;; (toplevel-after-parenth 2) | 2847 | (or (memq char-after |
| 2721 | ;; (toplevel-continued 2) | 2848 | (append (if delim "}" ")]}") nil)) |
| 2722 | ;; (expression 1)) | 2849 | (looking-at "[ \t]*\\(#\\|$\\)") |
| 2723 | ;; "Alist of indentation rules for CPerl mode. | 2850 | (skip-chars-forward " \t")) |
| 2724 | ;; The values mean: | 2851 | (setq old-indent (point)) ; delim=is-brace |
| 2725 | ;; nil: do not indent; | 2852 | (vector 'in-parens char-after (point) delim containing-sexp)) |
| 2726 | ;; number: add this amount of indentation. | 2853 | (t |
| 2727 | 2854 | ;; Statement level. Is it a continuation or a new statement? | |
| 2728 | ;; Not finished, not used.") | 2855 | ;; Find previous non-comment character. |
| 2729 | 2856 | (goto-char pre-indent-point) ; Skip one level of POD/etc | |
| 2730 | ;; (defun cperl-where-am-i (&optional parse-start start-state) | 2857 | (cperl-backward-to-noncomment containing-sexp) |
| 2731 | ;; ;; Unfinished | 2858 | ;; Back up over label lines, since they don't |
| 2732 | ;; "Return a list of lists ((TYPE POS)...) of good points before the point. | 2859 | ;; affect whether our line is a continuation. |
| 2733 | ;; ;; POS may be nil if it is hard to find, say, when TYPE is `string' or `comment'. | 2860 | ;; (Had \, too) |
| 2734 | 2861 | (while;;(or (eq (preceding-char) ?\,) | |
| 2735 | ;; ;; Not finished, not used." | 2862 | (and (eq (preceding-char) ?:) |
| 2736 | ;; (save-excursion | 2863 | (or;;(eq (char-after (- (point) 2)) ?\') ; ???? |
| 2737 | ;; (let* ((start-point (point)) | 2864 | (memq (char-syntax (char-after (- (point) 2))) |
| 2738 | ;; (s-s (cperl-get-state)) | 2865 | '(?w ?_)))) |
| 2739 | ;; (start (nth 0 s-s)) | 2866 | ;;) |
| 2740 | ;; (state (nth 1 s-s)) | 2867 | ;; This is always FALSE? |
| 2741 | ;; (prestart (nth 3 s-s)) | 2868 | (if (eq (preceding-char) ?\,) |
| 2742 | ;; (containing-sexp (car (cdr state))) | 2869 | ;; Will go to beginning of line, essentially. |
| 2743 | ;; (case-fold-search nil) | 2870 | ;; Will ignore embedded sexpr XXXX. |
| 2744 | ;; (res (list (list 'parse-start start) (list 'parse-prestart prestart)))) | 2871 | (cperl-backward-to-start-of-continued-exp containing-sexp)) |
| 2745 | ;; (cond ((nth 3 state) ; In string | 2872 | (beginning-of-line) |
| 2746 | ;; (setq res (cons (list 'string nil (nth 3 state)) res))) ; What started string | 2873 | (cperl-backward-to-noncomment containing-sexp)) |
| 2747 | ;; ((nth 4 state) ; In comment | 2874 | ;; Now we get non-label preceeding the indent point |
| 2748 | ;; (setq res (cons '(comment) res))) | 2875 | (if (not (or (eq (1- (point)) containing-sexp) |
| 2749 | ;; ((null containing-sexp) | 2876 | (memq (preceding-char) |
| 2750 | ;; ;; Line is at top level. | 2877 | (append (if is-block " ;{" " ,;{") '(nil))) |
| 2751 | ;; ;; Indent like the previous top level line | 2878 | (and (eq (preceding-char) ?\}) |
| 2752 | ;; ;; unless that ends in a closeparen without semicolon, | 2879 | (cperl-after-block-and-statement-beg |
| 2753 | ;; ;; in which case this line is the first argument decl. | 2880 | containing-sexp)) |
| 2754 | ;; (cperl-backward-to-noncomment (or parse-start (point-min))) | 2881 | (get-text-property (point) 'first-format-line))) |
| 2755 | ;; ;;(skip-chars-backward " \t\f\n") | 2882 | ;; This line is continuation of preceding line's statement; |
| 2756 | ;; (cond | 2883 | ;; indent `cperl-continued-statement-offset' more than the |
| 2757 | ;; ((or (bobp) | 2884 | ;; previous line of the statement. |
| 2758 | ;; (memq (preceding-char) (append ";}" nil))) | 2885 | ;; |
| 2759 | ;; (setq res (cons (list 'toplevel start) res))) | 2886 | ;; There might be a label on this line, just |
| 2760 | ;; ((eq (preceding-char) ?\) ) | 2887 | ;; consider it bad style and ignore it. |
| 2761 | ;; (setq res (cons (list 'toplevel-after-parenth start) res))) | 2888 | (progn |
| 2762 | ;; (t | 2889 | (cperl-backward-to-start-of-continued-exp containing-sexp) |
| 2763 | ;; (setq res (cons (list 'toplevel-continued start) res))))) | 2890 | (vector 'continuation (point) char-after is-block delim)) |
| 2764 | ;; ((/= (char-after containing-sexp) ?{) | 2891 | ;; This line starts a new statement. |
| 2765 | ;; ;; line is expression, not statement: | 2892 | ;; Position following last unclosed open brace |
| 2766 | ;; ;; indent to just after the surrounding open. | 2893 | (goto-char containing-sexp) |
| 2767 | ;; ;; skip blanks if we do not close the expression. | 2894 | ;; Is line first statement after an open-brace? |
| 2768 | ;; (setq res (cons (list 'expression-blanks | 2895 | (or |
| 2769 | ;; (progn | 2896 | ;; If no, find that first statement and indent like |
| 2770 | ;; (goto-char (1+ containing-sexp)) | 2897 | ;; it. If the first statement begins with label, do |
| 2771 | ;; (or (looking-at "[ \t]*\\(#\\|$\\)") | 2898 | ;; not believe when the indentation of the label is too |
| 2772 | ;; (skip-chars-forward " \t")) | 2899 | ;; small. |
| 2773 | ;; (point))) | 2900 | (save-excursion |
| 2774 | ;; (cons (list 'expression containing-sexp) res)))) | 2901 | (forward-char 1) |
| 2775 | ;; ((progn | 2902 | (let ((colon-line-end 0)) |
| 2776 | ;; ;; Containing-expr starts with \{. Check whether it is a hash. | 2903 | (while |
| 2777 | ;; (goto-char containing-sexp) | 2904 | (progn (skip-chars-forward " \t\n") |
| 2778 | ;; (not (cperl-block-p))) | 2905 | (looking-at "#\\|[a-zA-Z0-9_$]*:[^:]\\|=[a-zA-Z]")) |
| 2779 | ;; (setq res (cons (list 'expression-blanks | 2906 | ;; Skip over comments and labels following openbrace. |
| 2780 | ;; (progn | 2907 | (cond ((= (following-char) ?\#) |
| 2781 | ;; (goto-char (1+ containing-sexp)) | 2908 | (forward-line 1)) |
| 2782 | ;; (or (looking-at "[ \t]*\\(#\\|$\\)") | 2909 | ((= (following-char) ?\=) |
| 2783 | ;; (skip-chars-forward " \t")) | 2910 | (goto-char |
| 2784 | ;; (point))) | 2911 | (or (next-single-property-change (point) 'in-pod) |
| 2785 | ;; (cons (list 'expression containing-sexp) res)))) | 2912 | (point-max)))) ; do not loop if no syntaxification |
| 2786 | ;; (t | 2913 | ;; label: |
| 2787 | ;; ;; Statement level. | 2914 | (t |
| 2788 | ;; (setq res (cons (list 'in-block containing-sexp) res)) | 2915 | (save-excursion (end-of-line) |
| 2789 | ;; ;; Is it a continuation or a new statement? | 2916 | (setq colon-line-end (point))) |
| 2790 | ;; ;; Find previous non-comment character. | 2917 | (search-forward ":")))) |
| 2791 | ;; (cperl-backward-to-noncomment containing-sexp) | 2918 | ;; We are at beginning of code (NOT label or comment) |
| 2792 | ;; ;; Back up over label lines, since they don't | 2919 | ;; First, the following code counts |
| 2793 | ;; ;; affect whether our line is a continuation. | 2920 | ;; if it is before the line we want to indent. |
| 2794 | ;; ;; Back up comma-delimited lines too ????? | 2921 | (and (< (point) indent-point) |
| 2795 | ;; (while (or (eq (preceding-char) ?\,) | 2922 | (vector 'have-prev-sibling (point) colon-line-end |
| 2796 | ;; (save-excursion (cperl-after-label))) | 2923 | containing-sexp)))) |
| 2797 | ;; (if (eq (preceding-char) ?\,) | 2924 | (progn |
| 2798 | ;; ;; Will go to beginning of line, essentially | 2925 | ;; If no previous statement, |
| 2799 | ;; ;; Will ignore embedded sexpr XXXX. | 2926 | ;; indent it relative to line brace is on. |
| 2800 | ;; (cperl-backward-to-start-of-continued-exp containing-sexp)) | 2927 | |
| 2801 | ;; (beginning-of-line) | 2928 | ;; For open-braces not the first thing in a line, |
| 2802 | ;; (cperl-backward-to-noncomment containing-sexp)) | 2929 | ;; add in cperl-brace-imaginary-offset. |
| 2803 | ;; ;; Now we get the answer. | 2930 | |
| 2804 | ;; (if (not (memq (preceding-char) (append ";}{" '(nil)))) ; Was ?\, | 2931 | ;; If first thing on a line: ????? |
| 2805 | ;; ;; This line is continuation of preceding line's statement. | 2932 | ;; Move back over whitespace before the openbrace. |
| 2806 | ;; (list (list 'statement-continued containing-sexp)) | 2933 | (setq ; brace first thing on a line |
| 2807 | ;; ;; This line starts a new statement. | 2934 | old-indent (progn (skip-chars-backward " \t") (bolp))) |
| 2808 | ;; ;; Position following last unclosed open. | 2935 | ;; Should we indent w.r.t. earlier than start? |
| 2809 | ;; (goto-char containing-sexp) | 2936 | ;; Move to start of control group, possibly on a different line |
| 2810 | ;; ;; Is line first statement after an open-brace? | 2937 | (or cperl-indent-wrt-brace |
| 2811 | ;; (or | 2938 | (cperl-backward-to-noncomment (point-min))) |
| 2812 | ;; ;; If no, find that first statement and indent like | 2939 | ;; If the openbrace is preceded by a parenthesized exp, |
| 2813 | ;; ;; it. If the first statement begins with label, do | 2940 | ;; move to the beginning of that; |
| 2814 | ;; ;; not believe when the indentation of the label is too | 2941 | (if (eq (preceding-char) ?\)) |
| 2815 | ;; ;; small. | 2942 | (progn |
| 2816 | ;; (save-excursion | 2943 | (forward-sexp -1) |
| 2817 | ;; (forward-char 1) | 2944 | (cperl-backward-to-noncomment (point-min)))) |
| 2818 | ;; (let ((colon-line-end 0)) | 2945 | ;; In the case it starts a subroutine, indent with |
| 2819 | ;; (while (progn (skip-chars-forward " \t\n" start-point) | 2946 | ;; respect to `sub', not with respect to the |
| 2820 | ;; (and (< (point) start-point) | 2947 | ;; first thing on the line, say in the case of |
| 2821 | ;; (looking-at | 2948 | ;; anonymous sub in a hash. |
| 2822 | ;; "#\\|[a-zA-Z_][a-zA-Z0-9_]*:[^:]"))) | 2949 | (if (and;; Is it a sub in group starting on this line? |
| 2823 | ;; ;; Skip over comments and labels following openbrace. | 2950 | (cond ((get-text-property (point) 'attrib-group) |
| 2824 | ;; (cond ((= (following-char) ?\#) | 2951 | (goto-char (cperl-beginning-of-property |
| 2825 | ;; ;;(forward-line 1) | 2952 | (point) 'attrib-group))) |
| 2826 | ;; (end-of-line)) | 2953 | ((eq (preceding-char) ?b) |
| 2827 | ;; ;; label: | 2954 | (forward-sexp -1) |
| 2828 | ;; (t | 2955 | (looking-at "sub\\>"))) |
| 2829 | ;; (save-excursion (end-of-line) | 2956 | (setq p (nth 1 ; start of innermost containing list |
| 2830 | ;; (setq colon-line-end (point))) | 2957 | (parse-partial-sexp |
| 2831 | ;; (search-forward ":")))) | 2958 | (save-excursion (beginning-of-line) |
| 2832 | ;; ;; Now at the point, after label, or at start | 2959 | (point)) |
| 2833 | ;; ;; of first statement in the block. | 2960 | (point))))) |
| 2834 | ;; (and (< (point) start-point) | 2961 | (progn |
| 2835 | ;; (if (> colon-line-end (point)) | 2962 | (goto-char (1+ p)) ; enclosing block on the same line |
| 2836 | ;; ;; Before statement after label | 2963 | (skip-chars-forward " \t") |
| 2837 | ;; (if (> (current-indentation) | 2964 | (vector 'code-start-in-block containing-sexp char-after |
| 2838 | ;; cperl-min-label-indent) | 2965 | (and delim (not is-block)) ; is a HASH |
| 2839 | ;; (list (list 'label-in-block (point))) | 2966 | old-indent ; brace first thing on a line |
| 2840 | ;; ;; Do not believe: `max' is involved | 2967 | t (point) ; have something before... |
| 2841 | ;; (list | 2968 | ) |
| 2842 | ;; (list 'label-in-block-min-indent (point)))) | 2969 | ;;(current-column) |
| 2843 | ;; ;; Before statement | 2970 | ) |
| 2844 | ;; (list 'statement-in-block (point)))))) | 2971 | ;; Get initial indentation of the line we are on. |
| 2845 | ;; ;; If no previous statement, | 2972 | ;; If line starts with label, calculate label indentation |
| 2846 | ;; ;; indent it relative to line brace is on. | 2973 | (vector 'code-start-in-block containing-sexp char-after |
| 2847 | ;; ;; For open brace in column zero, don't let statement | 2974 | (and delim (not is-block)) ; is a HASH |
| 2848 | ;; ;; start there too. If cperl-indent-level is zero, | 2975 | old-indent ; brace first thing on a line |
| 2849 | ;; ;; use cperl-brace-offset + cperl-continued-statement-offset instead. | 2976 | nil (point) ; nothing interesting before |
| 2850 | ;; ;; For open-braces not the first thing in a line, | 2977 | )))))))))))))) |
| 2851 | ;; ;; add in cperl-brace-imaginary-offset. | 2978 | |
| 2852 | 2979 | (defvar cperl-indent-rules-alist | |
| 2853 | ;; ;; If first thing on a line: ????? | 2980 | '((pod nil) ; via `syntax-type' property |
| 2854 | ;; (+ (if (and (bolp) (zerop cperl-indent-level)) | 2981 | (here-doc nil) ; via `syntax-type' property |
| 2855 | ;; (+ cperl-brace-offset cperl-continued-statement-offset) | 2982 | (here-doc-delim nil) ; via `syntax-type' property |
| 2856 | ;; cperl-indent-level) | 2983 | (format nil) ; via `syntax-type' property |
| 2857 | ;; ;; Move back over whitespace before the openbrace. | 2984 | (in-pod nil) ; via `in-pod' property |
| 2858 | ;; ;; If openbrace is not first nonwhite thing on the line, | 2985 | (comment-special:at-beginning-of-line nil) |
| 2859 | ;; ;; add the cperl-brace-imaginary-offset. | 2986 | (string t) |
| 2860 | ;; (progn (skip-chars-backward " \t") | 2987 | (comment nil)) |
| 2861 | ;; (if (bolp) 0 cperl-brace-imaginary-offset)) | 2988 | "Alist of indentation rules for CPerl mode. |
| 2862 | ;; ;; If the openbrace is preceded by a parenthesized exp, | 2989 | The values mean: |
| 2863 | ;; ;; move to the beginning of that; | 2990 | nil: do not indent; |
| 2864 | ;; ;; possibly a different line | 2991 | number: add this amount of indentation. |
| 2865 | ;; (progn | 2992 | |
| 2866 | ;; (if (eq (preceding-char) ?\)) | 2993 | Not finished.") |
| 2867 | ;; (forward-sexp -1)) | 2994 | |
| 2868 | ;; ;; Get initial indentation of the line we are on. | 2995 | (defun cperl-calculate-indent (&optional parse-data) ; was parse-start |
| 2869 | ;; ;; If line starts with label, calculate label indentation | 2996 | "Return appropriate indentation for current line as Perl code. |
| 2870 | ;; (if (save-excursion | 2997 | In usual case returns an integer: the column to indent to. |
| 2871 | ;; (beginning-of-line) | 2998 | Returns nil if line starts inside a string, t if in a comment. |
| 2872 | ;; (looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*:[^:]")) | 2999 | |
| 2873 | ;; (if (> (current-indentation) cperl-min-label-indent) | 3000 | Will not correct the indentation for labels, but will correct it for braces |
| 2874 | ;; (- (current-indentation) cperl-label-offset) | 3001 | and closing parentheses and brackets." |
| 2875 | ;; (cperl-calculate-indent)) | 3002 | ;; This code is still a broken architecture: in some cases we need to |
| 2876 | ;; (current-indentation)))))))) | 3003 | ;; compensate for some modifications which `cperl-indent-line' will add later |
| 2877 | ;; res))) | 3004 | (save-excursion |
| 3005 | (let ((i (cperl-sniff-for-indent parse-data)) what p) | ||
| 3006 | (cond | ||
| 3007 | ;;((or (null i) (eq i t) (numberp i)) | ||
| 3008 | ;; i) | ||
| 3009 | ((vectorp i) | ||
| 3010 | (setq what (assoc (elt i 0) cperl-indent-rules-alist)) | ||
| 3011 | (cond | ||
| 3012 | (what (cadr what)) ; Load from table | ||
| 3013 | ;; | ||
| 3014 | ;; Indenters for regular expressions with //x and qw() | ||
| 3015 | ;; | ||
| 3016 | ((eq 'REx-part2 (elt i 0)) ;; [self start] start of /REP in s//REP/x | ||
| 3017 | (goto-char (elt i 1)) | ||
| 3018 | (condition-case nil ; Use indentation of the 1st part | ||
| 3019 | (forward-sexp -1)) | ||
| 3020 | (current-column)) | ||
| 3021 | ((eq 'indentable (elt i 0)) ; Indenter for REGEXP qw() etc | ||
| 3022 | (cond ;;; [indentable terminator start-pos is-block] | ||
| 3023 | ((eq 'terminator (elt i 1)) ; Lone terminator of "indentable string" | ||
| 3024 | (goto-char (elt i 2)) ; After opening parens | ||
| 3025 | (1- (current-column))) | ||
| 3026 | ((eq 'first-line (elt i 1)); [indentable first-line start-pos] | ||
| 3027 | (goto-char (elt i 2)) | ||
| 3028 | (+ (or cperl-regexp-indent-step cperl-indent-level) | ||
| 3029 | -1 | ||
| 3030 | (current-column))) | ||
| 3031 | ((eq 'cont-line (elt i 1)); [indentable cont-line pos prev-pos first-char start-pos] | ||
| 3032 | ;; Indent as the level after closing parens | ||
| 3033 | (goto-char (elt i 2)) ; indent line | ||
| 3034 | (skip-chars-forward " \t)") ; Skip closing parens | ||
| 3035 | (setq p (point)) | ||
| 3036 | (goto-char (elt i 3)) ; previous line | ||
| 3037 | (skip-chars-forward " \t)") ; Skip closing parens | ||
| 3038 | ;; Number of parens in between: | ||
| 3039 | (setq p (nth 0 (parse-partial-sexp (point) p)) | ||
| 3040 | what (elt i 4)) ; First char on current line | ||
| 3041 | (goto-char (elt i 3)) ; previous line | ||
| 3042 | (+ (* p (or cperl-regexp-indent-step cperl-indent-level)) | ||
| 3043 | (cond ((eq what ?\) ) | ||
| 3044 | (- cperl-close-paren-offset)) ; compensate | ||
| 3045 | ((eq what ?\| ) | ||
| 3046 | (- (or cperl-regexp-indent-step cperl-indent-level))) | ||
| 3047 | (t 0)) | ||
| 3048 | (if (eq (following-char) ?\| ) | ||
| 3049 | (or cperl-regexp-indent-step cperl-indent-level) | ||
| 3050 | 0) | ||
| 3051 | (current-column))) | ||
| 3052 | (t | ||
| 3053 | (error "Unrecognized value of indent: %s" i)))) | ||
| 3054 | ;; | ||
| 3055 | ;; Indenter for stuff at toplevel | ||
| 3056 | ;; | ||
| 3057 | ((eq 'toplevel (elt i 0)) ;; [toplevel start char-after state immed-after-block] | ||
| 3058 | (+ (save-excursion ; To beg-of-defun, or end of last sexp | ||
| 3059 | (goto-char (elt i 1)) ; start = Good place to start parsing | ||
| 3060 | (- (current-indentation) ; | ||
| 3061 | (if (elt i 4) cperl-indent-level 0))) ; immed-after-block | ||
| 3062 | (if (eq (elt i 2) ?{) cperl-continued-brace-offset 0) ; char-after | ||
| 3063 | ;; Look at previous line that's at column 0 | ||
| 3064 | ;; to determine whether we are in top-level decls | ||
| 3065 | ;; or function's arg decls. Set basic-indent accordingly. | ||
| 3066 | ;; Now add a little if this is a continuation line. | ||
| 3067 | (if (elt i 3) ; state (XXX What is the semantic???) | ||
| 3068 | 0 | ||
| 3069 | cperl-continued-statement-offset))) | ||
| 3070 | ;; | ||
| 3071 | ;; Indenter for stuff in "parentheses" (or brackets, braces-as-hash) | ||
| 3072 | ;; | ||
| 3073 | ((eq 'in-parens (elt i 0)) | ||
| 3074 | ;; in-parens char-after old-indent-point is-brace containing-sexp | ||
| 3075 | |||
| 3076 | ;; group is an expression, not a block: | ||
| 3077 | ;; indent to just after the surrounding open parens, | ||
| 3078 | ;; skip blanks if we do not close the expression. | ||
| 3079 | (+ (progn | ||
| 3080 | (goto-char (elt i 2)) ; old-indent-point | ||
| 3081 | (current-column)) | ||
| 3082 | (if (and (elt i 3) ; is-brace | ||
| 3083 | (eq (elt i 1) ?\})) ; char-after | ||
| 3084 | ;; Correct indentation of trailing ?\} | ||
| 3085 | (+ cperl-indent-level cperl-close-paren-offset) | ||
| 3086 | 0))) | ||
| 3087 | ;; | ||
| 3088 | ;; Indenter for continuation lines | ||
| 3089 | ;; | ||
| 3090 | ((eq 'continuation (elt i 0)) | ||
| 3091 | ;; [continuation statement-start char-after is-block is-brace] | ||
| 3092 | (goto-char (elt i 1)) ; statement-start | ||
| 3093 | (+ (if (memq (elt i 2) (append "}])" nil)) ; char-after | ||
| 3094 | 0 ; Closing parenth | ||
| 3095 | cperl-continued-statement-offset) | ||
| 3096 | (if (or (elt i 3) ; is-block | ||
| 3097 | (not (elt i 4)) ; is-brace | ||
| 3098 | (not (eq (elt i 2) ?\}))) ; char-after | ||
| 3099 | 0 | ||
| 3100 | ;; Now it is a hash reference | ||
| 3101 | (+ cperl-indent-level cperl-close-paren-offset)) | ||
| 3102 | ;; Labels do not take :: ... | ||
| 3103 | (if (looking-at "\\(\\w\\|_\\)+[ \t]*:") | ||
| 3104 | (if (> (current-indentation) cperl-min-label-indent) | ||
| 3105 | (- (current-indentation) cperl-label-offset) | ||
| 3106 | ;; Do not move `parse-data', this should | ||
| 3107 | ;; be quick anyway (this comment comes | ||
| 3108 | ;; from different location): | ||
| 3109 | (cperl-calculate-indent)) | ||
| 3110 | (current-column)) | ||
| 3111 | (if (eq (elt i 2) ?\{) ; char-after | ||
| 3112 | cperl-continued-brace-offset 0))) | ||
| 3113 | ;; | ||
| 3114 | ;; Indenter for lines in a block which are not leading lines | ||
| 3115 | ;; | ||
| 3116 | ((eq 'have-prev-sibling (elt i 0)) | ||
| 3117 | ;; [have-prev-sibling sibling-beg colon-line-end block-start] | ||
| 3118 | (goto-char (elt i 1)) | ||
| 3119 | (if (> (elt i 2) (point)) ; colon-line-end; After-label, same line | ||
| 3120 | (if (> (current-indentation) | ||
| 3121 | cperl-min-label-indent) | ||
| 3122 | (- (current-indentation) cperl-label-offset) | ||
| 3123 | ;; Do not believe: `max' was involved in calculation of indent | ||
| 3124 | (+ cperl-indent-level | ||
| 3125 | (save-excursion | ||
| 3126 | (goto-char (elt i 3)) ; block-start | ||
| 3127 | (current-indentation)))) | ||
| 3128 | (current-column))) | ||
| 3129 | ;; | ||
| 3130 | ;; Indenter for the first line in a block | ||
| 3131 | ;; | ||
| 3132 | ((eq 'code-start-in-block (elt i 0)) | ||
| 3133 | ;;[code-start-in-block before-brace char-after | ||
| 3134 | ;; is-a-HASH-ref brace-is-first-thing-on-a-line | ||
| 3135 | ;; group-starts-before-start-of-sub start-of-control-group] | ||
| 3136 | (goto-char (elt i 1)) | ||
| 3137 | ;; For open brace in column zero, don't let statement | ||
| 3138 | ;; start there too. If cperl-indent-level=0, | ||
| 3139 | ;; use cperl-brace-offset + cperl-continued-statement-offset instead. | ||
| 3140 | (+ (if (and (bolp) (zerop cperl-indent-level)) | ||
| 3141 | (+ cperl-brace-offset cperl-continued-statement-offset) | ||
| 3142 | cperl-indent-level) | ||
| 3143 | (if (and (elt i 3) ; is-a-HASH-ref | ||
| 3144 | (eq (elt i 2) ?\})) ; char-after: End of a hash reference | ||
| 3145 | (+ cperl-indent-level cperl-close-paren-offset) | ||
| 3146 | 0) | ||
| 3147 | ;; Unless openbrace is the first nonwhite thing on the line, | ||
| 3148 | ;; add the cperl-brace-imaginary-offset. | ||
| 3149 | (if (elt i 4) 0 ; brace-is-first-thing-on-a-line | ||
| 3150 | cperl-brace-imaginary-offset) | ||
| 3151 | (progn | ||
| 3152 | (goto-char (elt i 6)) ; start-of-control-group | ||
| 3153 | (if (elt i 5) ; group-starts-before-start-of-sub | ||
| 3154 | (current-column) | ||
| 3155 | ;; Get initial indentation of the line we are on. | ||
| 3156 | ;; If line starts with label, calculate label indentation | ||
| 3157 | (if (save-excursion | ||
| 3158 | (beginning-of-line) | ||
| 3159 | (looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*:[^:]")) | ||
| 3160 | (if (> (current-indentation) cperl-min-label-indent) | ||
| 3161 | (- (current-indentation) cperl-label-offset) | ||
| 3162 | ;; Do not move `parse-data', this should | ||
| 3163 | ;; be quick anyway: | ||
| 3164 | (cperl-calculate-indent)) | ||
| 3165 | (current-indentation)))))) | ||
| 3166 | (t | ||
| 3167 | (error "Unrecognized value of indent: %s" i)))) | ||
| 3168 | (t | ||
| 3169 | (error "Got strange value of indent: %s" i)))))) | ||
| 3170 | |||
| 3171 | (defvar cperl-indent-alist | ||
| 3172 | '((string nil) | ||
| 3173 | (comment nil) | ||
| 3174 | (toplevel 0) | ||
| 3175 | (toplevel-after-parenth 2) | ||
| 3176 | (toplevel-continued 2) | ||
| 3177 | (expression 1)) | ||
| 3178 | "Alist of indentation rules for CPerl mode. | ||
| 3179 | The values mean: | ||
| 3180 | nil: do not indent; | ||
| 3181 | number: add this amount of indentation. | ||
| 3182 | |||
| 3183 | Not finished, not used.") | ||
| 3184 | |||
| 3185 | (defun cperl-where-am-i (&optional parse-start start-state) | ||
| 3186 | ;; Unfinished | ||
| 3187 | "Return a list of lists ((TYPE POS)...) of good points before the point. | ||
| 3188 | POS may be nil if it is hard to find, say, when TYPE is `string' or `comment'. | ||
| 3189 | |||
| 3190 | Not finished, not used." | ||
| 3191 | (save-excursion | ||
| 3192 | (let* ((start-point (point)) unused | ||
| 3193 | (s-s (cperl-get-state)) | ||
| 3194 | (start (nth 0 s-s)) | ||
| 3195 | (state (nth 1 s-s)) | ||
| 3196 | (prestart (nth 3 s-s)) | ||
| 3197 | (containing-sexp (car (cdr state))) | ||
| 3198 | (case-fold-search nil) | ||
| 3199 | (res (list (list 'parse-start start) (list 'parse-prestart prestart)))) | ||
| 3200 | (cond ((nth 3 state) ; In string | ||
| 3201 | (setq res (cons (list 'string nil (nth 3 state)) res))) ; What started string | ||
| 3202 | ((nth 4 state) ; In comment | ||
| 3203 | (setq res (cons '(comment) res))) | ||
| 3204 | ((null containing-sexp) | ||
| 3205 | ;; Line is at top level. | ||
| 3206 | ;; Indent like the previous top level line | ||
| 3207 | ;; unless that ends in a closeparen without semicolon, | ||
| 3208 | ;; in which case this line is the first argument decl. | ||
| 3209 | (cperl-backward-to-noncomment (or parse-start (point-min))) | ||
| 3210 | ;;(skip-chars-backward " \t\f\n") | ||
| 3211 | (cond | ||
| 3212 | ((or (bobp) | ||
| 3213 | (memq (preceding-char) (append ";}" nil))) | ||
| 3214 | (setq res (cons (list 'toplevel start) res))) | ||
| 3215 | ((eq (preceding-char) ?\) ) | ||
| 3216 | (setq res (cons (list 'toplevel-after-parenth start) res))) | ||
| 3217 | (t | ||
| 3218 | (setq res (cons (list 'toplevel-continued start) res))))) | ||
| 3219 | ((/= (char-after containing-sexp) ?{) | ||
| 3220 | ;; line is expression, not statement: | ||
| 3221 | ;; indent to just after the surrounding open. | ||
| 3222 | ;; skip blanks if we do not close the expression. | ||
| 3223 | (setq res (cons (list 'expression-blanks | ||
| 3224 | (progn | ||
| 3225 | (goto-char (1+ containing-sexp)) | ||
| 3226 | (or (looking-at "[ \t]*\\(#\\|$\\)") | ||
| 3227 | (skip-chars-forward " \t")) | ||
| 3228 | (point))) | ||
| 3229 | (cons (list 'expression containing-sexp) res)))) | ||
| 3230 | ((progn | ||
| 3231 | ;; Containing-expr starts with \{. Check whether it is a hash. | ||
| 3232 | (goto-char containing-sexp) | ||
| 3233 | (not (cperl-block-p))) | ||
| 3234 | (setq res (cons (list 'expression-blanks | ||
| 3235 | (progn | ||
| 3236 | (goto-char (1+ containing-sexp)) | ||
| 3237 | (or (looking-at "[ \t]*\\(#\\|$\\)") | ||
| 3238 | (skip-chars-forward " \t")) | ||
| 3239 | (point))) | ||
| 3240 | (cons (list 'expression containing-sexp) res)))) | ||
| 3241 | (t | ||
| 3242 | ;; Statement level. | ||
| 3243 | (setq res (cons (list 'in-block containing-sexp) res)) | ||
| 3244 | ;; Is it a continuation or a new statement? | ||
| 3245 | ;; Find previous non-comment character. | ||
| 3246 | (cperl-backward-to-noncomment containing-sexp) | ||
| 3247 | ;; Back up over label lines, since they don't | ||
| 3248 | ;; affect whether our line is a continuation. | ||
| 3249 | ;; Back up comma-delimited lines too ????? | ||
| 3250 | (while (or (eq (preceding-char) ?\,) | ||
| 3251 | (save-excursion (cperl-after-label))) | ||
| 3252 | (if (eq (preceding-char) ?\,) | ||
| 3253 | ;; Will go to beginning of line, essentially | ||
| 3254 | ;; Will ignore embedded sexpr XXXX. | ||
| 3255 | (cperl-backward-to-start-of-continued-exp containing-sexp)) | ||
| 3256 | (beginning-of-line) | ||
| 3257 | (cperl-backward-to-noncomment containing-sexp)) | ||
| 3258 | ;; Now we get the answer. | ||
| 3259 | (if (not (memq (preceding-char) (append ";}{" '(nil)))) ; Was ?\, | ||
| 3260 | ;; This line is continuation of preceding line's statement. | ||
| 3261 | (list (list 'statement-continued containing-sexp)) | ||
| 3262 | ;; This line starts a new statement. | ||
| 3263 | ;; Position following last unclosed open. | ||
| 3264 | (goto-char containing-sexp) | ||
| 3265 | ;; Is line first statement after an open-brace? | ||
| 3266 | (or | ||
| 3267 | ;; If no, find that first statement and indent like | ||
| 3268 | ;; it. If the first statement begins with label, do | ||
| 3269 | ;; not believe when the indentation of the label is too | ||
| 3270 | ;; small. | ||
| 3271 | (save-excursion | ||
| 3272 | (forward-char 1) | ||
| 3273 | (let ((colon-line-end 0)) | ||
| 3274 | (while (progn (skip-chars-forward " \t\n" start-point) | ||
| 3275 | (and (< (point) start-point) | ||
| 3276 | (looking-at | ||
| 3277 | "#\\|[a-zA-Z_][a-zA-Z0-9_]*:[^:]"))) | ||
| 3278 | ;; Skip over comments and labels following openbrace. | ||
| 3279 | (cond ((= (following-char) ?\#) | ||
| 3280 | ;;(forward-line 1) | ||
| 3281 | (end-of-line)) | ||
| 3282 | ;; label: | ||
| 3283 | (t | ||
| 3284 | (save-excursion (end-of-line) | ||
| 3285 | (setq colon-line-end (point))) | ||
| 3286 | (search-forward ":")))) | ||
| 3287 | ;; Now at the point, after label, or at start | ||
| 3288 | ;; of first statement in the block. | ||
| 3289 | (and (< (point) start-point) | ||
| 3290 | (if (> colon-line-end (point)) | ||
| 3291 | ;; Before statement after label | ||
| 3292 | (if (> (current-indentation) | ||
| 3293 | cperl-min-label-indent) | ||
| 3294 | (list (list 'label-in-block (point))) | ||
| 3295 | ;; Do not believe: `max' is involved | ||
| 3296 | (list | ||
| 3297 | (list 'label-in-block-min-indent (point)))) | ||
| 3298 | ;; Before statement | ||
| 3299 | (list 'statement-in-block (point)))))) | ||
| 3300 | ;; If no previous statement, | ||
| 3301 | ;; indent it relative to line brace is on. | ||
| 3302 | ;; For open brace in column zero, don't let statement | ||
| 3303 | ;; start there too. If cperl-indent-level is zero, | ||
| 3304 | ;; use cperl-brace-offset + cperl-continued-statement-offset instead. | ||
| 3305 | ;; For open-braces not the first thing in a line, | ||
| 3306 | ;; add in cperl-brace-imaginary-offset. | ||
| 3307 | |||
| 3308 | ;; If first thing on a line: ????? | ||
| 3309 | (setq unused ; This is not finished... | ||
| 3310 | (+ (if (and (bolp) (zerop cperl-indent-level)) | ||
| 3311 | (+ cperl-brace-offset cperl-continued-statement-offset) | ||
| 3312 | cperl-indent-level) | ||
| 3313 | ;; Move back over whitespace before the openbrace. | ||
| 3314 | ;; If openbrace is not first nonwhite thing on the line, | ||
| 3315 | ;; add the cperl-brace-imaginary-offset. | ||
| 3316 | (progn (skip-chars-backward " \t") | ||
| 3317 | (if (bolp) 0 cperl-brace-imaginary-offset)) | ||
| 3318 | ;; If the openbrace is preceded by a parenthesized exp, | ||
| 3319 | ;; move to the beginning of that; | ||
| 3320 | ;; possibly a different line | ||
| 3321 | (progn | ||
| 3322 | (if (eq (preceding-char) ?\)) | ||
| 3323 | (forward-sexp -1)) | ||
| 3324 | ;; Get initial indentation of the line we are on. | ||
| 3325 | ;; If line starts with label, calculate label indentation | ||
| 3326 | (if (save-excursion | ||
| 3327 | (beginning-of-line) | ||
| 3328 | (looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*:[^:]")) | ||
| 3329 | (if (> (current-indentation) cperl-min-label-indent) | ||
| 3330 | (- (current-indentation) cperl-label-offset) | ||
| 3331 | (cperl-calculate-indent)) | ||
| 3332 | (current-indentation))))))))) | ||
| 3333 | res))) | ||
| 2878 | 3334 | ||
| 2879 | (defun cperl-calculate-indent-within-comment () | 3335 | (defun cperl-calculate-indent-within-comment () |
| 2880 | "Return the indentation amount for line, assuming that | 3336 | "Return the indentation amount for line, assuming that |
| @@ -2894,14 +3350,22 @@ the current line is to be regarded as part of a block comment." | |||
| 2894 | 3350 | ||
| 2895 | (defun cperl-to-comment-or-eol () | 3351 | (defun cperl-to-comment-or-eol () |
| 2896 | "Go to position before comment on the current line, or to end of line. | 3352 | "Go to position before comment on the current line, or to end of line. |
| 2897 | Returns true if comment is found." | 3353 | Returns true if comment is found. In POD will not move the point." |
| 2898 | (let (state stop-in cpoint (lim (progn (end-of-line) (point)))) | 3354 | ;; If the line is inside other syntax groups (qq-style strings, HERE-docs) |
| 3355 | ;; then looks for literal # or end-of-line. | ||
| 3356 | (let (state stop-in cpoint (lim (progn (end-of-line) (point))) pr e) | ||
| 3357 | (or cperl-font-locking | ||
| 3358 | (cperl-update-syntaxification lim lim)) | ||
| 2899 | (beginning-of-line) | 3359 | (beginning-of-line) |
| 2900 | (if (or | 3360 | (if (setq pr (get-text-property (point) 'syntax-type)) |
| 2901 | (eq (get-text-property (point) 'syntax-type) 'pod) | 3361 | (setq e (next-single-property-change (point) 'syntax-type nil (point-max)))) |
| 2902 | (re-search-forward "\\=[ \t]*\\(#\\|$\\)" lim t)) | 3362 | (if (or (eq pr 'pod) |
| 3363 | (if (or (not e) (> e lim)) ; deep inside a group | ||
| 3364 | (re-search-forward "\\=[ \t]*\\(#\\|$\\)" lim t))) | ||
| 2903 | (if (eq (preceding-char) ?\#) (progn (backward-char 1) t)) | 3365 | (if (eq (preceding-char) ?\#) (progn (backward-char 1) t)) |
| 2904 | ;; Else | 3366 | ;; Else - need to do it the hard way |
| 3367 | (and (and e (<= e lim)) | ||
| 3368 | (goto-char e)) | ||
| 2905 | (while (not stop-in) | 3369 | (while (not stop-in) |
| 2906 | (setq state (parse-partial-sexp (point) lim nil nil nil t)) | 3370 | (setq state (parse-partial-sexp (point) lim nil nil nil t)) |
| 2907 | ; stop at comment | 3371 | ; stop at comment |
| @@ -2933,17 +3397,11 @@ Returns true if comment is found." | |||
| 2933 | (setq stop-in t))) ; Finish | 3397 | (setq stop-in t))) ; Finish |
| 2934 | (nth 4 state)))) | 3398 | (nth 4 state)))) |
| 2935 | 3399 | ||
| 2936 | (defsubst cperl-1- (p) | ||
| 2937 | (max (point-min) (1- p))) | ||
| 2938 | |||
| 2939 | (defsubst cperl-1+ (p) | ||
| 2940 | (min (point-max) (1+ p))) | ||
| 2941 | |||
| 2942 | (defsubst cperl-modify-syntax-type (at how) | 3400 | (defsubst cperl-modify-syntax-type (at how) |
| 2943 | (if (< at (point-max)) | 3401 | (if (< at (point-max)) |
| 2944 | (progn | 3402 | (progn |
| 2945 | (put-text-property at (1+ at) 'syntax-table how) | 3403 | (put-text-property at (1+ at) 'syntax-table how) |
| 2946 | (put-text-property at (1+ at) 'rear-nonsticky t)))) | 3404 | (put-text-property at (1+ at) 'rear-nonsticky '(syntax-table))))) |
| 2947 | 3405 | ||
| 2948 | (defun cperl-protect-defun-start (s e) | 3406 | (defun cperl-protect-defun-start (s e) |
| 2949 | ;; C code looks for "^\\s(" to skip comment backward in "hard" situations | 3407 | ;; C code looks for "^\\s(" to skip comment backward in "hard" situations |
| @@ -2978,35 +3436,53 @@ Returns true if comment is found." | |||
| 2978 | ( ?\{ . ?\} ) | 3436 | ( ?\{ . ?\} ) |
| 2979 | ( ?\< . ?\> ))) | 3437 | ( ?\< . ?\> ))) |
| 2980 | 3438 | ||
| 2981 | (defun cperl-forward-re (lim end is-2arg set-st st-l err-l argument | 3439 | (defun cperl-cached-syntax-table (st) |
| 3440 | "Get a syntax table cached in ST, or create and cache into ST a syntax table. | ||
| 3441 | All the entries of the syntax table are \".\", except for a backslash, which | ||
| 3442 | is quoting." | ||
| 3443 | (if (car-safe st) | ||
| 3444 | (car st) | ||
| 3445 | (setcar st (make-syntax-table)) | ||
| 3446 | (setq st (car st)) | ||
| 3447 | (let ((i 0)) | ||
| 3448 | (while (< i 256) | ||
| 3449 | (modify-syntax-entry i "." st) | ||
| 3450 | (setq i (1+ i)))) | ||
| 3451 | (modify-syntax-entry ?\\ "\\" st) | ||
| 3452 | st)) | ||
| 3453 | |||
| 3454 | (defun cperl-forward-re (lim end is-2arg st-l err-l argument | ||
| 2982 | &optional ostart oend) | 3455 | &optional ostart oend) |
| 2983 | ;; Works *before* syntax recognition is done | 3456 | "Find the end of a regular expression or a stringish construct (q[] etc). |
| 2984 | ;; May modify syntax-type text property if the situation is too hard | 3457 | The point should be before the starting delimiter. |
| 2985 | (let (b starter ender st i i2 go-forward reset-st) | 3458 | |
| 3459 | Goes to LIM if none is found. If IS-2ARG is non-nil, assumes that it | ||
| 3460 | is s/// or tr/// like expression. If END is nil, generates an error | ||
| 3461 | message if needed. If SET-ST is non-nil, will use (or generate) a | ||
| 3462 | cached syntax table in ST-L. If ERR-L is non-nil, will store the | ||
| 3463 | error message in its CAR (unless it already contains some error | ||
| 3464 | message). ARGUMENT should be the name of the construct (used in error | ||
| 3465 | messages). OSTART, OEND may be set in recursive calls when processing | ||
| 3466 | the second argument of 2ARG construct. | ||
| 3467 | |||
| 3468 | Works *before* syntax recognition is done. In IS-2ARG situation may | ||
| 3469 | modify syntax-type text property if the situation is too hard." | ||
| 3470 | (let (b starter ender st i i2 go-forward reset-st set-st) | ||
| 2986 | (skip-chars-forward " \t") | 3471 | (skip-chars-forward " \t") |
| 2987 | ;; ender means matching-char matcher. | 3472 | ;; ender means matching-char matcher. |
| 2988 | (setq b (point) | 3473 | (setq b (point) |
| 2989 | starter (if (eobp) 0 (char-after b)) | 3474 | starter (if (eobp) 0 (char-after b)) |
| 2990 | ender (cdr (assoc starter cperl-starters))) | 3475 | ender (cdr (assoc starter cperl-starters))) |
| 2991 | ;; What if starter == ?\\ ???? | 3476 | ;; What if starter == ?\\ ???? |
| 2992 | (if set-st | 3477 | (setq st (cperl-cached-syntax-table st-l)) |
| 2993 | (if (car st-l) | ||
| 2994 | (setq st (car st-l)) | ||
| 2995 | (setcar st-l (make-syntax-table)) | ||
| 2996 | (setq i 0 st (car st-l)) | ||
| 2997 | (while (< i 256) | ||
| 2998 | (modify-syntax-entry i "." st) | ||
| 2999 | (setq i (1+ i))) | ||
| 3000 | (modify-syntax-entry ?\\ "\\" st))) | ||
| 3001 | (setq set-st t) | 3478 | (setq set-st t) |
| 3002 | ;; Whether we have an intermediate point | 3479 | ;; Whether we have an intermediate point |
| 3003 | (setq i nil) | 3480 | (setq i nil) |
| 3004 | ;; Prepare the syntax table: | 3481 | ;; Prepare the syntax table: |
| 3005 | (and set-st | 3482 | (if (not ender) ; m/blah/, s/x//, s/x/y/ |
| 3006 | (if (not ender) ; m/blah/, s/x//, s/x/y/ | 3483 | (modify-syntax-entry starter "$" st) |
| 3007 | (modify-syntax-entry starter "$" st) | 3484 | (modify-syntax-entry starter (concat "(" (list ender)) st) |
| 3008 | (modify-syntax-entry starter (concat "(" (list ender)) st) | 3485 | (modify-syntax-entry ender (concat ")" (list starter)) st)) |
| 3009 | (modify-syntax-entry ender (concat ")" (list starter)) st))) | ||
| 3010 | (condition-case bb | 3486 | (condition-case bb |
| 3011 | (progn | 3487 | (progn |
| 3012 | ;; We use `$' syntax class to find matching stuff, but $$ | 3488 | ;; We use `$' syntax class to find matching stuff, but $$ |
| @@ -3053,7 +3529,7 @@ Returns true if comment is found." | |||
| 3053 | (modify-syntax-entry starter (if (eq starter ?\\) "\\" ".") st) | 3529 | (modify-syntax-entry starter (if (eq starter ?\\) "\\" ".") st) |
| 3054 | (if ender (modify-syntax-entry ender "." st)) | 3530 | (if ender (modify-syntax-entry ender "." st)) |
| 3055 | (setq set-st nil) | 3531 | (setq set-st nil) |
| 3056 | (setq ender (cperl-forward-re lim end nil t st-l err-l | 3532 | (setq ender (cperl-forward-re lim end nil st-l err-l |
| 3057 | argument starter ender) | 3533 | argument starter ender) |
| 3058 | ender (nth 2 ender))))) | 3534 | ender (nth 2 ender))))) |
| 3059 | (error (goto-char lim) | 3535 | (error (goto-char lim) |
| @@ -3078,6 +3554,33 @@ Returns true if comment is found." | |||
| 3078 | ;; go-forward: has 2 args, and the second part is empty | 3554 | ;; go-forward: has 2 args, and the second part is empty |
| 3079 | (list i i2 ender starter go-forward))) | 3555 | (list i i2 ender starter go-forward))) |
| 3080 | 3556 | ||
| 3557 | (defun cperl-forward-group-in-re (&optional st-l) | ||
| 3558 | "Find the end of a group in a REx. | ||
| 3559 | Return the error message (if any). Does not work if delimiter is `)'. | ||
| 3560 | Works before syntax recognition is done." | ||
| 3561 | ;; Works *before* syntax recognition is done | ||
| 3562 | (or st-l (setq st-l (list nil))) ; Avoid overwriting '() | ||
| 3563 | (let (st b reset-st) | ||
| 3564 | (condition-case b | ||
| 3565 | (progn | ||
| 3566 | (setq st (cperl-cached-syntax-table st-l)) | ||
| 3567 | (modify-syntax-entry ?\( "()" st) | ||
| 3568 | (modify-syntax-entry ?\) ")(" st) | ||
| 3569 | (setq reset-st (syntax-table)) | ||
| 3570 | (set-syntax-table st) | ||
| 3571 | (forward-sexp 1)) | ||
| 3572 | (error (message | ||
| 3573 | "cperl-forward-group-in-re: error %s" b))) | ||
| 3574 | ;; now restore the initial state | ||
| 3575 | (if st | ||
| 3576 | (progn | ||
| 3577 | (modify-syntax-entry ?\( "." st) | ||
| 3578 | (modify-syntax-entry ?\) "." st))) | ||
| 3579 | (if reset-st | ||
| 3580 | (set-syntax-table reset-st)) | ||
| 3581 | b)) | ||
| 3582 | |||
| 3583 | |||
| 3081 | (defvar font-lock-string-face) | 3584 | (defvar font-lock-string-face) |
| 3082 | ;;(defvar font-lock-reference-face) | 3585 | ;;(defvar font-lock-reference-face) |
| 3083 | (defvar font-lock-constant-face) | 3586 | (defvar font-lock-constant-face) |
| @@ -3103,13 +3606,24 @@ Returns true if comment is found." | |||
| 3103 | ;; d) 'Q'uoted string: | 3606 | ;; d) 'Q'uoted string: |
| 3104 | ;; part between markers inclusive is marked `syntax-type' ==> `string' | 3607 | ;; part between markers inclusive is marked `syntax-type' ==> `string' |
| 3105 | ;; part between `q' and the first marker is marked `syntax-type' ==> `prestring' | 3608 | ;; part between `q' and the first marker is marked `syntax-type' ==> `prestring' |
| 3609 | ;; second part of s///e is marked `syntax-type' ==> `multiline' | ||
| 3610 | ;; e) Attributes of subroutines: `attrib-group' ==> t | ||
| 3611 | ;; (or 0 if declaration); up to `{' or ';': `syntax-type' => `sub-decl'. | ||
| 3612 | ;; f) Multiline my/our declaration lists etc: `syntax-type' => `multiline' | ||
| 3613 | |||
| 3614 | ;;; In addition, some parts of RExes may be marked as `REx-interpolated' | ||
| 3615 | ;;; (value: 0 in //o, 1 if "interpolated variable" is whole-REx, t otherwise). | ||
| 3106 | 3616 | ||
| 3107 | (defun cperl-unwind-to-safe (before &optional end) | 3617 | (defun cperl-unwind-to-safe (before &optional end) |
| 3108 | ;; if BEFORE, go to the previous start-of-line on each step of unwinding | 3618 | ;; if BEFORE, go to the previous start-of-line on each step of unwinding |
| 3109 | (let ((pos (point)) opos) | 3619 | (let ((pos (point)) opos) |
| 3110 | (setq opos pos) | 3620 | (while (and pos (progn |
| 3111 | (while (and pos (get-text-property pos 'syntax-type)) | 3621 | (beginning-of-line) |
| 3112 | (setq pos (previous-single-property-change pos 'syntax-type)) | 3622 | (get-text-property (setq pos (point)) 'syntax-type))) |
| 3623 | (setq opos pos | ||
| 3624 | pos (cperl-beginning-of-property pos 'syntax-type)) | ||
| 3625 | (if (eq pos (point-min)) | ||
| 3626 | (setq pos nil)) | ||
| 3113 | (if pos | 3627 | (if pos |
| 3114 | (if before | 3628 | (if before |
| 3115 | (progn | 3629 | (progn |
| @@ -3126,32 +3640,117 @@ Returns true if comment is found." | |||
| 3126 | (setq pos (point)) | 3640 | (setq pos (point)) |
| 3127 | (if end | 3641 | (if end |
| 3128 | ;; Do the same for end, going small steps | 3642 | ;; Do the same for end, going small steps |
| 3129 | (progn | 3643 | (save-excursion |
| 3130 | (while (and end (get-text-property end 'syntax-type)) | 3644 | (while (and end (get-text-property end 'syntax-type)) |
| 3131 | (setq pos end | 3645 | (setq pos end |
| 3132 | end (next-single-property-change end 'syntax-type))) | 3646 | end (next-single-property-change end 'syntax-type nil (point-max))) |
| 3647 | (if end (progn (goto-char end) | ||
| 3648 | (or (bolp) (forward-line 1)) | ||
| 3649 | (setq end (point))))) | ||
| 3133 | (or end pos))))) | 3650 | (or end pos))))) |
| 3134 | 3651 | ||
| 3652 | ;;; These are needed for byte-compile (at least with v19) | ||
| 3135 | (defvar cperl-nonoverridable-face) | 3653 | (defvar cperl-nonoverridable-face) |
| 3654 | (defvar font-lock-variable-name-face) | ||
| 3136 | (defvar font-lock-function-name-face) | 3655 | (defvar font-lock-function-name-face) |
| 3656 | (defvar font-lock-keyword-face) | ||
| 3657 | (defvar font-lock-builtin-face) | ||
| 3658 | (defvar font-lock-type-face) | ||
| 3137 | (defvar font-lock-comment-face) | 3659 | (defvar font-lock-comment-face) |
| 3660 | (defvar font-lock-warning-face) | ||
| 3138 | 3661 | ||
| 3139 | (defun cperl-find-pods-heres (&optional min max non-inter end ignore-max) | 3662 | (defun cperl-find-sub-attrs (&optional st-l b-fname e-fname pos) |
| 3663 | "Syntaxically mark (and fontify) attributes of a subroutine. | ||
| 3664 | Should be called with the point before leading colon of an attribute." | ||
| 3665 | ;; Works *before* syntax recognition is done | ||
| 3666 | (or st-l (setq st-l (list nil))) ; Avoid overwriting '() | ||
| 3667 | (let (st b p reset-st after-first (start (point)) start1 end1) | ||
| 3668 | (condition-case b | ||
| 3669 | (while (looking-at | ||
| 3670 | (concat | ||
| 3671 | "\\(" ; 1=optional? colon | ||
| 3672 | ":" cperl-maybe-white-and-comment-rex ; 2=whitespace/comment? | ||
| 3673 | "\\)" | ||
| 3674 | (if after-first "?" "") | ||
| 3675 | ;; No space between name and paren allowed... | ||
| 3676 | "\\(\\sw+\\)" ; 3=name | ||
| 3677 | "\\((\\)?")) ; 4=optional paren | ||
| 3678 | (and (match-beginning 1) | ||
| 3679 | (cperl-postpone-fontification | ||
| 3680 | (match-beginning 0) (cperl-1+ (match-beginning 0)) | ||
| 3681 | 'face font-lock-constant-face)) | ||
| 3682 | (setq start1 (match-beginning 3) end1 (match-end 3)) | ||
| 3683 | (cperl-postpone-fontification start1 end1 | ||
| 3684 | 'face font-lock-constant-face) | ||
| 3685 | (goto-char end1) ; end or before `(' | ||
| 3686 | (if (match-end 4) ; Have attribute arguments... | ||
| 3687 | (progn | ||
| 3688 | (if st nil | ||
| 3689 | (setq st (cperl-cached-syntax-table st-l)) | ||
| 3690 | (modify-syntax-entry ?\( "()" st) | ||
| 3691 | (modify-syntax-entry ?\) ")(" st)) | ||
| 3692 | (setq reset-st (syntax-table) p (point)) | ||
| 3693 | (set-syntax-table st) | ||
| 3694 | (forward-sexp 1) | ||
| 3695 | (set-syntax-table reset-st) | ||
| 3696 | (setq reset-st nil) | ||
| 3697 | (cperl-commentify p (point) t))) ; mark as string | ||
| 3698 | (forward-comment (buffer-size)) | ||
| 3699 | (setq after-first t)) | ||
| 3700 | (error (message | ||
| 3701 | "L%d: attribute `%s': %s" | ||
| 3702 | (count-lines (point-min) (point)) | ||
| 3703 | (and start1 end1 (buffer-substring start1 end1)) b) | ||
| 3704 | (setq start nil))) | ||
| 3705 | (and start | ||
| 3706 | (progn | ||
| 3707 | (put-text-property start (point) | ||
| 3708 | 'attrib-group (if (looking-at "{") t 0)) | ||
| 3709 | (and pos | ||
| 3710 | (< 1 (count-lines (+ 3 pos) (point))) ; end of `sub' | ||
| 3711 | ;; Apparently, we do not need `multiline': faces added now | ||
| 3712 | (put-text-property (+ 3 pos) (cperl-1+ (point)) | ||
| 3713 | 'syntax-type 'sub-decl)) | ||
| 3714 | (and b-fname ; Fontify here: the following condition | ||
| 3715 | (cperl-postpone-fontification ; is too hard to determine by | ||
| 3716 | b-fname e-fname 'face ; a REx, so do it here | ||
| 3717 | (if (looking-at "{") | ||
| 3718 | font-lock-function-name-face | ||
| 3719 | font-lock-variable-name-face))))) | ||
| 3720 | ;; now restore the initial state | ||
| 3721 | (if st | ||
| 3722 | (progn | ||
| 3723 | (modify-syntax-entry ?\( "." st) | ||
| 3724 | (modify-syntax-entry ?\) "." st))) | ||
| 3725 | (if reset-st | ||
| 3726 | (set-syntax-table reset-st)))) | ||
| 3727 | |||
| 3728 | (defsubst cperl-look-at-leading-count (is-x-REx e) | ||
| 3729 | (if (re-search-forward (concat "\\=" (if is-x-REx "[ \t\n]*" "") "[{?+*]") | ||
| 3730 | (1- e) t) ; return nil on failure, no moving | ||
| 3731 | (if (eq ?\{ (preceding-char)) nil | ||
| 3732 | (cperl-postpone-fontification | ||
| 3733 | (1- (point)) (point) | ||
| 3734 | 'face font-lock-warning-face)))) | ||
| 3735 | |||
| 3736 | ;;; Debugging this may require (setq max-specpdl-size 2000)... | ||
| 3737 | (defun cperl-find-pods-heres (&optional min max non-inter end ignore-max end-of-here-doc) | ||
| 3140 | "Scans the buffer for hard-to-parse Perl constructions. | 3738 | "Scans the buffer for hard-to-parse Perl constructions. |
| 3141 | If `cperl-pod-here-fontify' is not-nil after evaluation, will fontify | 3739 | If `cperl-pod-here-fontify' is not-nil after evaluation, will fontify |
| 3142 | the sections using `cperl-pod-head-face', `cperl-pod-face', | 3740 | the sections using `cperl-pod-head-face', `cperl-pod-face', |
| 3143 | `cperl-here-face'." | 3741 | `cperl-here-face'." |
| 3144 | (interactive) | 3742 | (interactive) |
| 3145 | (or min (setq min (point-min) | 3743 | (or min (setq min (point-min) |
| 3146 | cperl-syntax-state nil | 3744 | cperl-syntax-state nil |
| 3147 | cperl-syntax-done-to min)) | 3745 | cperl-syntax-done-to min)) |
| 3148 | (or max (setq max (point-max))) | 3746 | (or max (setq max (point-max))) |
| 3149 | (let* ((cperl-pod-here-fontify (eval cperl-pod-here-fontify)) go tmpend | 3747 | (let* ((cperl-pod-here-fontify (eval cperl-pod-here-fontify)) go tmpend |
| 3150 | face head-face here-face b e bb tag qtag b1 e1 argument i c tail tb | 3748 | face head-face here-face b e bb tag qtag b1 e1 argument i c tail tb |
| 3151 | is-REx is-x-REx REx-comment-start REx-comment-end was-comment i2 | 3749 | is-REx is-x-REx REx-subgr-start REx-subgr-end was-subgr i2 hairy-RE |
| 3152 | (case-fold-search nil) (inhibit-read-only t) (buffer-undo-list t) | 3750 | (case-fold-search nil) (inhibit-read-only t) (buffer-undo-list t) |
| 3153 | (modified (buffer-modified-p)) | 3751 | (modified (buffer-modified-p)) overshoot is-o-REx |
| 3154 | (after-change-functions nil) | 3752 | (after-change-functions nil) |
| 3753 | (cperl-font-locking t) | ||
| 3155 | (use-syntax-state (and cperl-syntax-state | 3754 | (use-syntax-state (and cperl-syntax-state |
| 3156 | (>= min (car cperl-syntax-state)))) | 3755 | (>= min (car cperl-syntax-state)))) |
| 3157 | (state-point (if use-syntax-state | 3756 | (state-point (if use-syntax-state |
| @@ -3162,33 +3761,62 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3162 | ;; (st-l '(nil)) (err-l '(nil)) ; Would overwrite - propagates from a function call to a function call! | 3761 | ;; (st-l '(nil)) (err-l '(nil)) ; Would overwrite - propagates from a function call to a function call! |
| 3163 | (st-l (list nil)) (err-l (list nil)) | 3762 | (st-l (list nil)) (err-l (list nil)) |
| 3164 | ;; Somehow font-lock may be not loaded yet... | 3763 | ;; Somehow font-lock may be not loaded yet... |
| 3764 | ;; (e.g., when building TAGS via command-line call) | ||
| 3165 | (font-lock-string-face (if (boundp 'font-lock-string-face) | 3765 | (font-lock-string-face (if (boundp 'font-lock-string-face) |
| 3166 | font-lock-string-face | 3766 | font-lock-string-face |
| 3167 | 'font-lock-string-face)) | 3767 | 'font-lock-string-face)) |
| 3168 | (font-lock-constant-face (if (boundp 'font-lock-constant-face) | 3768 | (my-cperl-delimiters-face (if (boundp 'font-lock-constant-face) |
| 3169 | font-lock-constant-face | 3769 | font-lock-constant-face |
| 3170 | 'font-lock-constant-face)) | 3770 | 'font-lock-constant-face)) |
| 3171 | (font-lock-function-name-face | 3771 | (my-cperl-REx-spec-char-face ; [] ^.$ and wrapper-of ({}) |
| 3172 | (if (boundp 'font-lock-function-name-face) | 3772 | (if (boundp 'font-lock-function-name-face) |
| 3173 | font-lock-function-name-face | 3773 | font-lock-function-name-face |
| 3174 | 'font-lock-function-name-face)) | 3774 | 'font-lock-function-name-face)) |
| 3775 | (font-lock-variable-name-face ; interpolated vars and ({})-code | ||
| 3776 | (if (boundp 'font-lock-variable-name-face) | ||
| 3777 | font-lock-variable-name-face | ||
| 3778 | 'font-lock-variable-name-face)) | ||
| 3779 | (font-lock-function-name-face ; used in `cperl-find-sub-attrs' | ||
| 3780 | (if (boundp 'font-lock-function-name-face) | ||
| 3781 | font-lock-function-name-face | ||
| 3782 | 'font-lock-function-name-face)) | ||
| 3783 | (font-lock-constant-face ; used in `cperl-find-sub-attrs' | ||
| 3784 | (if (boundp 'font-lock-constant-face) | ||
| 3785 | font-lock-constant-face | ||
| 3786 | 'font-lock-constant-face)) | ||
| 3787 | (my-cperl-REx-0length-face ; 0-length, (?:)etc, non-literal \ | ||
| 3788 | (if (boundp 'font-lock-builtin-face) | ||
| 3789 | font-lock-builtin-face | ||
| 3790 | 'font-lock-builtin-face)) | ||
| 3175 | (font-lock-comment-face | 3791 | (font-lock-comment-face |
| 3176 | (if (boundp 'font-lock-comment-face) | 3792 | (if (boundp 'font-lock-comment-face) |
| 3177 | font-lock-comment-face | 3793 | font-lock-comment-face |
| 3178 | 'font-lock-comment-face)) | 3794 | 'font-lock-comment-face)) |
| 3179 | (cperl-nonoverridable-face | 3795 | (font-lock-warning-face |
| 3796 | (if (boundp 'font-lock-warning-face) | ||
| 3797 | font-lock-warning-face | ||
| 3798 | 'font-lock-warning-face)) | ||
| 3799 | (my-cperl-REx-ctl-face ; (|) | ||
| 3800 | (if (boundp 'font-lock-keyword-face) | ||
| 3801 | font-lock-keyword-face | ||
| 3802 | 'font-lock-keyword-face)) | ||
| 3803 | (my-cperl-REx-modifiers-face ; //gims | ||
| 3180 | (if (boundp 'cperl-nonoverridable-face) | 3804 | (if (boundp 'cperl-nonoverridable-face) |
| 3181 | cperl-nonoverridable-face | 3805 | cperl-nonoverridable-face |
| 3182 | 'cperl-nonoverridable)) | 3806 | 'cperl-nonoverridable-face)) |
| 3807 | (my-cperl-REx-length1-face ; length=1 escaped chars, POSIX classes | ||
| 3808 | (if (boundp 'font-lock-type-face) | ||
| 3809 | font-lock-type-face | ||
| 3810 | 'font-lock-type-face)) | ||
| 3183 | (stop-point (if ignore-max | 3811 | (stop-point (if ignore-max |
| 3184 | (point-max) | 3812 | (point-max) |
| 3185 | max)) | 3813 | max)) |
| 3186 | (search | 3814 | (search |
| 3187 | (concat | 3815 | (concat |
| 3188 | "\\(\\`\n?\\|^\n\\)=" | 3816 | "\\(\\`\n?\\|^\n\\)=" ; POD |
| 3189 | "\\|" | 3817 | "\\|" |
| 3190 | ;; One extra () before this: | 3818 | ;; One extra () before this: |
| 3191 | "<<" | 3819 | "<<" ; HERE-DOC |
| 3192 | "\\(" ; 1 + 1 | 3820 | "\\(" ; 1 + 1 |
| 3193 | ;; First variant "BLAH" or just ``. | 3821 | ;; First variant "BLAH" or just ``. |
| 3194 | "[ \t]*" ; Yes, whitespace is allowed! | 3822 | "[ \t]*" ; Yes, whitespace is allowed! |
| @@ -3204,36 +3832,44 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3204 | "\\)" | 3832 | "\\)" |
| 3205 | "\\|" | 3833 | "\\|" |
| 3206 | ;; 1+6 extra () before this: | 3834 | ;; 1+6 extra () before this: |
| 3207 | "^[ \t]*\\(format\\)[ \t]*\\([a-zA-Z0-9_]+\\)?[ \t]*=[ \t]*$" | 3835 | "^[ \t]*\\(format\\)[ \t]*\\([a-zA-Z0-9_]+\\)?[ \t]*=[ \t]*$" ;FRMAT |
| 3208 | (if cperl-use-syntax-table-text-property | 3836 | (if cperl-use-syntax-table-text-property |
| 3209 | (concat | 3837 | (concat |
| 3210 | "\\|" | 3838 | "\\|" |
| 3211 | ;; 1+6+2=9 extra () before this: | 3839 | ;; 1+6+2=9 extra () before this: |
| 3212 | "\\<\\(q[wxqr]?\\|[msy]\\|tr\\)\\>" | 3840 | "\\<\\(q[wxqr]?\\|[msy]\\|tr\\)\\>" ; QUOTED CONSTRUCT |
| 3213 | "\\|" | 3841 | "\\|" |
| 3214 | ;; 1+6+2+1=10 extra () before this: | 3842 | ;; 1+6+2+1=10 extra () before this: |
| 3215 | "\\([?/<]\\)" ; /blah/ or ?blah? or <file*glob> | 3843 | "\\([?/<]\\)" ; /blah/ or ?blah? or <file*glob> |
| 3216 | "\\|" | 3844 | "\\|" |
| 3217 | ;; 1+6+2+1+1=11 extra () before this: | 3845 | ;; 1+6+2+1+1=11 extra () before this |
| 3218 | "\\<sub\\>[ \t]*\\([a-zA-Z_:'0-9]+[ \t]*\\)?\\(([^()]*)\\)" | 3846 | "\\<sub\\>" ; sub with proto/attr |
| 3847 | "\\(" | ||
| 3848 | cperl-white-and-comment-rex | ||
| 3849 | "\\(::[a-zA-Z_:'0-9]*\\|[a-zA-Z_'][a-zA-Z_:'0-9]*\\)\\)?" ; name | ||
| 3850 | "\\(" | ||
| 3851 | cperl-maybe-white-and-comment-rex | ||
| 3852 | "\\(([^()]*)\\|:[^:]\\)\\)" ; prototype or attribute start | ||
| 3219 | "\\|" | 3853 | "\\|" |
| 3220 | ;; 1+6+2+1+1+2=13 extra () before this: | 3854 | ;; 1+6+2+1+1+6=17 extra () before this: |
| 3221 | "\\$\\(['{]\\)" | 3855 | "\\$\\(['{]\\)" ; $' or ${foo} |
| 3222 | "\\|" | 3856 | "\\|" |
| 3223 | ;; 1+6+2+1+1+2+1=14 extra () before this: | 3857 | ;; 1+6+2+1+1+6+1=18 extra () before this (old pack'var syntax; |
| 3858 | ;; we do not support intervening comments...): | ||
| 3224 | "\\(\\<sub[ \t\n\f]+\\|[&*$@%]\\)[a-zA-Z0-9_]*'" | 3859 | "\\(\\<sub[ \t\n\f]+\\|[&*$@%]\\)[a-zA-Z0-9_]*'" |
| 3225 | ;; 1+6+2+1+1+2+1+1=15 extra () before this: | 3860 | ;; 1+6+2+1+1+6+1+1=19 extra () before this: |
| 3226 | "\\|" | 3861 | "\\|" |
| 3227 | "__\\(END\\|DATA\\)__" | 3862 | "__\\(END\\|DATA\\)__" ; __END__ or __DATA__ |
| 3228 | ;; 1+6+2+1+1+2+1+1+1=16 extra () before this: | 3863 | ;; 1+6+2+1+1+6+1+1+1=20 extra () before this: |
| 3229 | "\\|" | 3864 | "\\|" |
| 3230 | "\\\\\\(['`\"($]\\)") | 3865 | "\\\\\\(['`\"($]\\)") ; BACKWACKED something-hairy |
| 3231 | "")))) | 3866 | "")))) |
| 3232 | (unwind-protect | 3867 | (unwind-protect |
| 3233 | (progn | 3868 | (progn |
| 3234 | (save-excursion | 3869 | (save-excursion |
| 3235 | (or non-inter | 3870 | (or non-inter |
| 3236 | (message "Scanning for \"hard\" Perl constructions...")) | 3871 | (message "Scanning for \"hard\" Perl constructions...")) |
| 3872 | ;;(message "find: %s --> %s" min max) | ||
| 3237 | (and cperl-pod-here-fontify | 3873 | (and cperl-pod-here-fontify |
| 3238 | ;; We had evals here, do not know why... | 3874 | ;; We had evals here, do not know why... |
| 3239 | (setq face cperl-pod-face | 3875 | (setq face cperl-pod-face |
| @@ -3241,16 +3877,22 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3241 | here-face cperl-here-face)) | 3877 | here-face cperl-here-face)) |
| 3242 | (remove-text-properties min max | 3878 | (remove-text-properties min max |
| 3243 | '(syntax-type t in-pod t syntax-table t | 3879 | '(syntax-type t in-pod t syntax-table t |
| 3880 | attrib-group t | ||
| 3881 | REx-interpolated t | ||
| 3244 | cperl-postpone t | 3882 | cperl-postpone t |
| 3245 | syntax-subtype t | 3883 | syntax-subtype t |
| 3246 | rear-nonsticky t | 3884 | rear-nonsticky t |
| 3885 | front-sticky t | ||
| 3247 | here-doc-group t | 3886 | here-doc-group t |
| 3248 | first-format-line t | 3887 | first-format-line t |
| 3888 | REx-part2 t | ||
| 3249 | indentable t)) | 3889 | indentable t)) |
| 3250 | ;; Need to remove face as well... | 3890 | ;; Need to remove face as well... |
| 3251 | (goto-char min) | 3891 | (goto-char min) |
| 3252 | (and (eq system-type 'emx) | 3892 | (and (eq system-type 'emx) |
| 3253 | (looking-at "extproc[ \t]") ; Analogue of #! | 3893 | (eq (point) 1) |
| 3894 | (let ((case-fold-search t)) | ||
| 3895 | (looking-at "extproc[ \t]")) ; Analogue of #! | ||
| 3254 | (cperl-commentify min | 3896 | (cperl-commentify min |
| 3255 | (save-excursion (end-of-line) (point)) | 3897 | (save-excursion (end-of-line) (point)) |
| 3256 | nil)) | 3898 | nil)) |
| @@ -3258,11 +3900,38 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3258 | (< (point) max) | 3900 | (< (point) max) |
| 3259 | (re-search-forward search max t)) | 3901 | (re-search-forward search max t)) |
| 3260 | (setq tmpend nil) ; Valid for most cases | 3902 | (setq tmpend nil) ; Valid for most cases |
| 3903 | (setq b (match-beginning 0) | ||
| 3904 | state (save-excursion (parse-partial-sexp | ||
| 3905 | state-point b nil nil state)) | ||
| 3906 | state-point b) | ||
| 3261 | (cond | 3907 | (cond |
| 3908 | ;; 1+6+2+1+1+6=17 extra () before this: | ||
| 3909 | ;; "\\$\\(['{]\\)" | ||
| 3910 | ((match-beginning 18) ; $' or ${foo} | ||
| 3911 | (if (eq (preceding-char) ?\') ; $' | ||
| 3912 | (progn | ||
| 3913 | (setq b (1- (point)) | ||
| 3914 | state (parse-partial-sexp | ||
| 3915 | state-point (1- b) nil nil state) | ||
| 3916 | state-point (1- b)) | ||
| 3917 | (if (nth 3 state) ; in string | ||
| 3918 | (cperl-modify-syntax-type (1- b) cperl-st-punct)) | ||
| 3919 | (goto-char (1+ b))) | ||
| 3920 | ;; else: ${ | ||
| 3921 | (setq bb (match-beginning 0)) | ||
| 3922 | (cperl-modify-syntax-type bb cperl-st-punct))) | ||
| 3923 | ;; No processing in strings/comments beyond this point: | ||
| 3924 | ((or (nth 3 state) (nth 4 state)) | ||
| 3925 | t) ; Do nothing in comment/string | ||
| 3262 | ((match-beginning 1) ; POD section | 3926 | ((match-beginning 1) ; POD section |
| 3263 | ;; "\\(\\`\n?\\|^\n\\)=" | 3927 | ;; "\\(\\`\n?\\|^\n\\)=" |
| 3264 | (if (looking-at "cut\\>") | 3928 | (setq b (match-beginning 0) |
| 3265 | (if ignore-max | 3929 | state (parse-partial-sexp |
| 3930 | state-point b nil nil state) | ||
| 3931 | state-point b) | ||
| 3932 | (if (or (nth 3 state) (nth 4 state) | ||
| 3933 | (looking-at "cut\\>")) | ||
| 3934 | (if (or (nth 3 state) (nth 4 state) ignore-max) | ||
| 3266 | nil ; Doing a chunk only | 3935 | nil ; Doing a chunk only |
| 3267 | (message "=cut is not preceded by a POD section") | 3936 | (message "=cut is not preceded by a POD section") |
| 3268 | (or (car err-l) (setcar err-l (point)))) | 3937 | (or (car err-l) (setcar err-l (point)))) |
| @@ -3288,11 +3957,15 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3288 | (progn | 3957 | (progn |
| 3289 | (remove-text-properties | 3958 | (remove-text-properties |
| 3290 | max e '(syntax-type t in-pod t syntax-table t | 3959 | max e '(syntax-type t in-pod t syntax-table t |
| 3960 | attrib-group t | ||
| 3961 | REx-interpolated t | ||
| 3291 | cperl-postpone t | 3962 | cperl-postpone t |
| 3292 | syntax-subtype t | 3963 | syntax-subtype t |
| 3293 | here-doc-group t | 3964 | here-doc-group t |
| 3294 | rear-nonsticky t | 3965 | rear-nonsticky t |
| 3966 | front-sticky t | ||
| 3295 | first-format-line t | 3967 | first-format-line t |
| 3968 | REx-part2 t | ||
| 3296 | indentable t)) | 3969 | indentable t)) |
| 3297 | (setq tmpend tb))) | 3970 | (setq tmpend tb))) |
| 3298 | (put-text-property b e 'in-pod t) | 3971 | (put-text-property b e 'in-pod t) |
| @@ -3335,7 +4008,8 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3335 | (or (eq e (point-max)) | 4008 | (or (eq e (point-max)) |
| 3336 | (forward-char -1)))) ; Prepare for immediate POD start. | 4009 | (forward-char -1)))) ; Prepare for immediate POD start. |
| 3337 | ;; Here document | 4010 | ;; Here document |
| 3338 | ;; We do only one here-per-line | 4011 | ;; We can do many here-per-line; |
| 4012 | ;; but multiline quote on the same line as <<HERE confuses us... | ||
| 3339 | ;; ;; One extra () before this: | 4013 | ;; ;; One extra () before this: |
| 3340 | ;;"<<" | 4014 | ;;"<<" |
| 3341 | ;; "\\(" ; 1 + 1 | 4015 | ;; "\\(" ; 1 + 1 |
| @@ -3352,21 +4026,42 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3352 | ;; "\\(\\)" ; To preserve count of pars :-( 6 + 1 | 4026 | ;; "\\(\\)" ; To preserve count of pars :-( 6 + 1 |
| 3353 | ;; "\\)" | 4027 | ;; "\\)" |
| 3354 | ((match-beginning 2) ; 1 + 1 | 4028 | ((match-beginning 2) ; 1 + 1 |
| 3355 | ;; Abort in comment: | 4029 | (setq b (point) |
| 3356 | (setq b (point)) | ||
| 3357 | (setq state (parse-partial-sexp state-point b nil nil state) | ||
| 3358 | state-point b | ||
| 3359 | tb (match-beginning 0) | 4030 | tb (match-beginning 0) |
| 3360 | i (or (nth 3 state) (nth 4 state))) | 4031 | c (and ; not HERE-DOC |
| 3361 | (if i | 4032 | (match-beginning 5) |
| 3362 | (setq c t) | 4033 | (save-match-data |
| 3363 | (setq c (and | 4034 | (or (looking-at "[ \t]*(") ; << function_call() |
| 3364 | (match-beginning 5) | 4035 | (save-excursion ; 1 << func_name, or $foo << 10 |
| 3365 | (not (match-beginning 6)) ; Empty | 4036 | (condition-case nil |
| 3366 | (looking-at | 4037 | (progn |
| 3367 | "[ \t]*[=0-9$@%&(]")))) | 4038 | (goto-char tb) |
| 4039 | ;;; XXX What to do: foo <<bar ??? | ||
| 4040 | ;;; XXX Need to support print {a} <<B ??? | ||
| 4041 | (forward-sexp -1) | ||
| 4042 | (save-match-data | ||
| 4043 | ; $foo << b; $f .= <<B; | ||
| 4044 | ; ($f+1) << b; a($f) . <<B; | ||
| 4045 | ; foo 1, <<B; $x{a} <<b; | ||
| 4046 | (cond | ||
| 4047 | ((looking-at "[0-9$({]") | ||
| 4048 | (forward-sexp 1) | ||
| 4049 | (and | ||
| 4050 | (looking-at "[ \t]*<<") | ||
| 4051 | (condition-case nil | ||
| 4052 | ;; print $foo <<EOF | ||
| 4053 | (progn | ||
| 4054 | (forward-sexp -2) | ||
| 4055 | (not | ||
| 4056 | (looking-at "\\(printf?\\|system\\|exec\\|sort\\)\\>"))) | ||
| 4057 | (error t))))))) | ||
| 4058 | (error nil))) ; func(<<EOF) | ||
| 4059 | (and (not (match-beginning 6)) ; Empty | ||
| 4060 | (looking-at | ||
| 4061 | "[ \t]*[=0-9$@%&(]")))))) | ||
| 3368 | (if c ; Not here-doc | 4062 | (if c ; Not here-doc |
| 3369 | nil ; Skip it. | 4063 | nil ; Skip it. |
| 4064 | (setq c (match-end 2)) ; 1 + 1 | ||
| 3370 | (if (match-beginning 5) ;4 + 1 | 4065 | (if (match-beginning 5) ;4 + 1 |
| 3371 | (setq b1 (match-beginning 5) ; 4 + 1 | 4066 | (setq b1 (match-beginning 5) ; 4 + 1 |
| 3372 | e1 (match-end 5)) ; 4 + 1 | 4067 | e1 (match-end 5)) ; 4 + 1 |
| @@ -3376,15 +4071,20 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3376 | qtag (regexp-quote tag)) | 4071 | qtag (regexp-quote tag)) |
| 3377 | (cond (cperl-pod-here-fontify | 4072 | (cond (cperl-pod-here-fontify |
| 3378 | ;; Highlight the starting delimiter | 4073 | ;; Highlight the starting delimiter |
| 3379 | (cperl-postpone-fontification b1 e1 'face font-lock-constant-face) | 4074 | (cperl-postpone-fontification |
| 4075 | b1 e1 'face my-cperl-delimiters-face) | ||
| 3380 | (cperl-put-do-not-fontify b1 e1 t))) | 4076 | (cperl-put-do-not-fontify b1 e1 t))) |
| 3381 | (forward-line) | 4077 | (forward-line) |
| 4078 | (setq i (point)) | ||
| 4079 | (if end-of-here-doc | ||
| 4080 | (goto-char end-of-here-doc)) | ||
| 3382 | (setq b (point)) | 4081 | (setq b (point)) |
| 3383 | ;; We do not search to max, since we may be called from | 4082 | ;; We do not search to max, since we may be called from |
| 3384 | ;; some hook of fontification, and max is random | 4083 | ;; some hook of fontification, and max is random |
| 3385 | (or (and (re-search-forward (concat "^" qtag "$") | 4084 | (or (and (re-search-forward (concat "^" qtag "$") |
| 3386 | stop-point 'toend) | 4085 | stop-point 'toend) |
| 3387 | (eq (following-char) ?\n)) | 4086 | ;;;(eq (following-char) ?\n) ; XXXX WHY??? |
| 4087 | ) | ||
| 3388 | (progn ; Pretend we matched at the end | 4088 | (progn ; Pretend we matched at the end |
| 3389 | (goto-char (point-max)) | 4089 | (goto-char (point-max)) |
| 3390 | (re-search-forward "\\'") | 4090 | (re-search-forward "\\'") |
| @@ -3393,8 +4093,9 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3393 | (if cperl-pod-here-fontify | 4093 | (if cperl-pod-here-fontify |
| 3394 | (progn | 4094 | (progn |
| 3395 | ;; Highlight the ending delimiter | 4095 | ;; Highlight the ending delimiter |
| 3396 | (cperl-postpone-fontification (match-beginning 0) (match-end 0) | 4096 | (cperl-postpone-fontification |
| 3397 | 'face font-lock-constant-face) | 4097 | (match-beginning 0) (match-end 0) |
| 4098 | 'face my-cperl-delimiters-face) | ||
| 3398 | (cperl-put-do-not-fontify b (match-end 0) t) | 4099 | (cperl-put-do-not-fontify b (match-end 0) t) |
| 3399 | ;; Highlight the HERE-DOC | 4100 | ;; Highlight the HERE-DOC |
| 3400 | (cperl-postpone-fontification b (match-beginning 0) | 4101 | (cperl-postpone-fontification b (match-beginning 0) |
| @@ -3404,10 +4105,21 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3404 | 'syntax-type 'here-doc) | 4105 | 'syntax-type 'here-doc) |
| 3405 | (put-text-property (match-beginning 0) e1 | 4106 | (put-text-property (match-beginning 0) e1 |
| 3406 | 'syntax-type 'here-doc-delim) | 4107 | 'syntax-type 'here-doc-delim) |
| 3407 | (put-text-property b e1 | 4108 | (put-text-property b e1 'here-doc-group t) |
| 3408 | 'here-doc-group t) | 4109 | ;; This makes insertion at the start of HERE-DOC update |
| 4110 | ;; the whole construct: | ||
| 4111 | (put-text-property b (cperl-1+ b) 'front-sticky '(syntax-type)) | ||
| 3409 | (cperl-commentify b e1 nil) | 4112 | (cperl-commentify b e1 nil) |
| 3410 | (cperl-put-do-not-fontify b (match-end 0) t) | 4113 | (cperl-put-do-not-fontify b (match-end 0) t) |
| 4114 | ;; Cache the syntax info... | ||
| 4115 | (setq cperl-syntax-state (cons state-point state)) | ||
| 4116 | ;; ... and process the rest of the line... | ||
| 4117 | (setq overshoot | ||
| 4118 | (elt ; non-inter ignore-max | ||
| 4119 | (cperl-find-pods-heres c i t end t e1) 1)) | ||
| 4120 | (if (and overshoot (> overshoot (point))) | ||
| 4121 | (goto-char overshoot) | ||
| 4122 | (setq overshoot e1)) | ||
| 3411 | (if (> e1 max) | 4123 | (if (> e1 max) |
| 3412 | (setq tmpend tb)))) | 4124 | (setq tmpend tb)))) |
| 3413 | ;; format | 4125 | ;; format |
| @@ -3462,7 +4174,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3462 | (if (> (point) max) | 4174 | (if (> (point) max) |
| 3463 | (setq tmpend tb)) | 4175 | (setq tmpend tb)) |
| 3464 | (put-text-property b (point) 'syntax-type 'format)) | 4176 | (put-text-property b (point) 'syntax-type 'format)) |
| 3465 | ;; Regexp: | 4177 | ;; qq-like String or Regexp: |
| 3466 | ((or (match-beginning 10) (match-beginning 11)) | 4178 | ((or (match-beginning 10) (match-beginning 11)) |
| 3467 | ;; 1+6+2=9 extra () before this: | 4179 | ;; 1+6+2=9 extra () before this: |
| 3468 | ;; "\\<\\(q[wxqr]?\\|[msy]\\|tr\\)\\>" | 4180 | ;; "\\<\\(q[wxqr]?\\|[msy]\\|tr\\)\\>" |
| @@ -3471,10 +4183,10 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3471 | (setq b1 (if (match-beginning 10) 10 11) | 4183 | (setq b1 (if (match-beginning 10) 10 11) |
| 3472 | argument (buffer-substring | 4184 | argument (buffer-substring |
| 3473 | (match-beginning b1) (match-end b1)) | 4185 | (match-beginning b1) (match-end b1)) |
| 3474 | b (point) | 4186 | b (point) ; end of qq etc |
| 3475 | i b | 4187 | i b |
| 3476 | c (char-after (match-beginning b1)) | 4188 | c (char-after (match-beginning b1)) |
| 3477 | bb (char-after (1- (match-beginning b1))) ; tmp holder | 4189 | bb (char-after (1- (match-beginning b1))) ; tmp holder |
| 3478 | ;; bb == "Not a stringy" | 4190 | ;; bb == "Not a stringy" |
| 3479 | bb (if (eq b1 10) ; user variables/whatever | 4191 | bb (if (eq b1 10) ; user variables/whatever |
| 3480 | (and (memq bb (append "$@%*#_:-&>" nil)) ; $#y) | 4192 | (and (memq bb (append "$@%*#_:-&>" nil)) ; $#y) |
| @@ -3488,7 +4200,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3488 | (- (match-beginning b1) 2)) | 4200 | (- (match-beginning b1) 2)) |
| 3489 | ?\-)) | 4201 | ?\-)) |
| 3490 | ((eq bb ?\&) | 4202 | ((eq bb ?\&) |
| 3491 | (not (eq (char-after ; &&m/blah/ | 4203 | (not (eq (char-after ; &&m/blah/ |
| 3492 | (- (match-beginning b1) 2)) | 4204 | (- (match-beginning b1) 2)) |
| 3493 | ?\&))) | 4205 | ?\&))) |
| 3494 | (t t))) | 4206 | (t t))) |
| @@ -3506,41 +4218,40 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3506 | (setq argument "" | 4218 | (setq argument "" |
| 3507 | b1 nil | 4219 | b1 nil |
| 3508 | bb ; Not a regexp? | 4220 | bb ; Not a regexp? |
| 3509 | (progn | 4221 | (not |
| 3510 | (not | 4222 | ;; What is below: regexp-p? |
| 3511 | ;; What is below: regexp-p? | 4223 | (and |
| 3512 | (and | 4224 | (or (memq (preceding-char) |
| 3513 | (or (memq (preceding-char) | 4225 | (append (if (memq c '(?\? ?\<)) |
| 3514 | (append (if (memq c '(?\? ?\<)) | 4226 | ;; $a++ ? 1 : 2 |
| 3515 | ;; $a++ ? 1 : 2 | 4227 | "~{(=|&*!,;:[" |
| 3516 | "~{(=|&*!,;:" | 4228 | "~{(=|&+-*!,;:[") nil)) |
| 3517 | "~{(=|&+-*!,;:") nil)) | 4229 | (and (eq (preceding-char) ?\}) |
| 3518 | (and (eq (preceding-char) ?\}) | 4230 | (cperl-after-block-p (point-min))) |
| 3519 | (cperl-after-block-p (point-min))) | 4231 | (and (eq (char-syntax (preceding-char)) ?w) |
| 3520 | (and (eq (char-syntax (preceding-char)) ?w) | 4232 | (progn |
| 3521 | (progn | 4233 | (forward-sexp -1) |
| 3522 | (forward-sexp -1) | ||
| 3523 | ;; After these keywords `/' starts a RE. One should add all the | 4234 | ;; After these keywords `/' starts a RE. One should add all the |
| 3524 | ;; functions/builtins which expect an argument, but ... | 4235 | ;; functions/builtins which expect an argument, but ... |
| 3525 | (if (eq (preceding-char) ?-) | 4236 | (if (eq (preceding-char) ?-) |
| 3526 | ;; -d ?foo? is a RE | 4237 | ;; -d ?foo? is a RE |
| 3527 | (looking-at "[a-zA-Z]\\>") | 4238 | (looking-at "[a-zA-Z]\\>") |
| 3528 | (and | 4239 | (and |
| 3529 | (not (memq (preceding-char) | 4240 | (not (memq (preceding-char) |
| 3530 | '(?$ ?@ ?& ?%))) | 4241 | '(?$ ?@ ?& ?%))) |
| 3531 | (looking-at | 4242 | (looking-at |
| 3532 | "\\(while\\|if\\|unless\\|until\\|and\\|or\\|not\\|xor\\|split\\|grep\\|map\\|print\\)\\>"))))) | 4243 | "\\(while\\|if\\|unless\\|until\\|and\\|or\\|not\\|xor\\|split\\|grep\\|map\\|print\\)\\>"))))) |
| 3533 | (and (eq (preceding-char) ?.) | 4244 | (and (eq (preceding-char) ?.) |
| 3534 | (eq (char-after (- (point) 2)) ?.)) | 4245 | (eq (char-after (- (point) 2)) ?.)) |
| 3535 | (bobp)) | 4246 | (bobp)) |
| 3536 | ;; m|blah| ? foo : bar; | 4247 | ;; m|blah| ? foo : bar; |
| 3537 | (not | 4248 | (not |
| 3538 | (and (eq c ?\?) | 4249 | (and (eq c ?\?) |
| 3539 | cperl-use-syntax-table-text-property | 4250 | cperl-use-syntax-table-text-property |
| 3540 | (not (bobp)) | 4251 | (not (bobp)) |
| 3541 | (progn | 4252 | (progn |
| 3542 | (forward-char -1) | 4253 | (forward-char -1) |
| 3543 | (looking-at "\\s|"))))))) | 4254 | (looking-at "\\s|")))))) |
| 3544 | b (1- b)) | 4255 | b (1- b)) |
| 3545 | ;; s y tr m | 4256 | ;; s y tr m |
| 3546 | ;; Check for $a -> y | 4257 | ;; Check for $a -> y |
| @@ -3550,13 +4261,9 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3550 | (eq (char-after (- go 2)) ?-)) | 4261 | (eq (char-after (- go 2)) ?-)) |
| 3551 | ;; Not a regexp | 4262 | ;; Not a regexp |
| 3552 | (setq bb t)))) | 4263 | (setq bb t)))) |
| 3553 | (or bb (setq state (parse-partial-sexp | ||
| 3554 | state-point b nil nil state) | ||
| 3555 | state-point b)) | ||
| 3556 | (setq bb (or bb (nth 3 state) (nth 4 state))) | ||
| 3557 | (goto-char b) | ||
| 3558 | (or bb | 4264 | (or bb |
| 3559 | (progn | 4265 | (progn |
| 4266 | (goto-char b) | ||
| 3560 | (if (looking-at "[ \t\n\f]+\\(#[^\n]*\n[ \t\n\f]*\\)+") | 4267 | (if (looking-at "[ \t\n\f]+\\(#[^\n]*\n[ \t\n\f]*\\)+") |
| 3561 | (goto-char (match-end 0)) | 4268 | (goto-char (match-end 0)) |
| 3562 | (skip-chars-forward " \t\n\f")) | 4269 | (skip-chars-forward " \t\n\f")) |
| @@ -3593,6 +4300,8 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3593 | (skip-chars-backward " \t\n\f") | 4300 | (skip-chars-backward " \t\n\f") |
| 3594 | (memq (preceding-char) | 4301 | (memq (preceding-char) |
| 3595 | (append "$@%&*" nil)))) | 4302 | (append "$@%&*" nil)))) |
| 4303 | (setq bb t)) | ||
| 4304 | ((eobp) | ||
| 3596 | (setq bb t))))) | 4305 | (setq bb t))))) |
| 3597 | (if bb | 4306 | (if bb |
| 3598 | (goto-char i) | 4307 | (goto-char i) |
| @@ -3605,15 +4314,16 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3605 | ;; qtag means two-arg matcher, may be reset to | 4314 | ;; qtag means two-arg matcher, may be reset to |
| 3606 | ;; 2 or 3 later if some special quoting is needed. | 4315 | ;; 2 or 3 later if some special quoting is needed. |
| 3607 | ;; e1 means matching-char matcher. | 4316 | ;; e1 means matching-char matcher. |
| 3608 | (setq b (point) | 4317 | (setq b (point) ; before the first delimiter |
| 3609 | ;; has 2 args | 4318 | ;; has 2 args |
| 3610 | i2 (string-match "^\\([sy]\\|tr\\)$" argument) | 4319 | i2 (string-match "^\\([sy]\\|tr\\)$" argument) |
| 3611 | ;; We do not search to max, since we may be called from | 4320 | ;; We do not search to max, since we may be called from |
| 3612 | ;; some hook of fontification, and max is random | 4321 | ;; some hook of fontification, and max is random |
| 3613 | i (cperl-forward-re stop-point end | 4322 | i (cperl-forward-re stop-point end |
| 3614 | i2 | 4323 | i2 |
| 3615 | t st-l err-l argument) | 4324 | st-l err-l argument) |
| 3616 | ;; Note that if `go', then it is considered as 1-arg | 4325 | ;; If `go', then it is considered as 1-arg, `b1' is nil |
| 4326 | ;; as in s/foo//x; the point is before final "slash" | ||
| 3617 | b1 (nth 1 i) ; start of the second part | 4327 | b1 (nth 1 i) ; start of the second part |
| 3618 | tag (nth 2 i) ; ender-char, true if second part | 4328 | tag (nth 2 i) ; ender-char, true if second part |
| 3619 | ; is with matching chars [] | 4329 | ; is with matching chars [] |
| @@ -3625,13 +4335,18 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3625 | (1- e1)) | 4335 | (1- e1)) |
| 3626 | e (if i i e1) ; end of the first part | 4336 | e (if i i e1) ; end of the first part |
| 3627 | qtag nil ; need to preserve backslashitis | 4337 | qtag nil ; need to preserve backslashitis |
| 3628 | is-x-REx nil) ; REx has //x modifier | 4338 | is-x-REx nil is-o-REx nil); REx has //x //o modifiers |
| 4339 | ;; If s{} (), then b/b1 are at "{", "(", e1/i after ")", "}" | ||
| 3629 | ;; Commenting \\ is dangerous, what about ( ? | 4340 | ;; Commenting \\ is dangerous, what about ( ? |
| 3630 | (and i tail | 4341 | (and i tail |
| 3631 | (eq (char-after i) ?\\) | 4342 | (eq (char-after i) ?\\) |
| 3632 | (setq qtag t)) | 4343 | (setq qtag t)) |
| 3633 | (if (looking-at "\\sw*x") ; qr//x | 4344 | (and (if go (looking-at ".\\sw*x") |
| 3634 | (setq is-x-REx t)) | 4345 | (looking-at "\\sw*x")) ; qr//x |
| 4346 | (setq is-x-REx t)) | ||
| 4347 | (and (if go (looking-at ".\\sw*o") | ||
| 4348 | (looking-at "\\sw*o")) ; //o | ||
| 4349 | (setq is-o-REx t)) | ||
| 3635 | (if (null i) | 4350 | (if (null i) |
| 3636 | ;; Considered as 1arg form | 4351 | ;; Considered as 1arg form |
| 3637 | (progn | 4352 | (progn |
| @@ -3648,9 +4363,11 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3648 | (cperl-commentify b i t) | 4363 | (cperl-commentify b i t) |
| 3649 | (if (looking-at "\\sw*e") ; s///e | 4364 | (if (looking-at "\\sw*e") ; s///e |
| 3650 | (progn | 4365 | (progn |
| 4366 | ;; Cache the syntax info... | ||
| 4367 | (setq cperl-syntax-state (cons state-point state)) | ||
| 3651 | (and | 4368 | (and |
| 3652 | ;; silent: | 4369 | ;; silent: |
| 3653 | (cperl-find-pods-heres b1 (1- (point)) t end) | 4370 | (car (cperl-find-pods-heres b1 (1- (point)) t end)) |
| 3654 | ;; Error | 4371 | ;; Error |
| 3655 | (goto-char (1+ max))) | 4372 | (goto-char (1+ max))) |
| 3656 | (if (and tag (eq (preceding-char) ?\>)) | 4373 | (if (and tag (eq (preceding-char) ?\>)) |
| @@ -3658,6 +4375,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3658 | (cperl-modify-syntax-type (1- (point)) cperl-st-ket) | 4375 | (cperl-modify-syntax-type (1- (point)) cperl-st-ket) |
| 3659 | (cperl-modify-syntax-type i cperl-st-bra))) | 4376 | (cperl-modify-syntax-type i cperl-st-bra))) |
| 3660 | (put-text-property b i 'syntax-type 'string) | 4377 | (put-text-property b i 'syntax-type 'string) |
| 4378 | (put-text-property i (point) 'syntax-type 'multiline) | ||
| 3661 | (if is-x-REx | 4379 | (if is-x-REx |
| 3662 | (put-text-property b i 'indentable t))) | 4380 | (put-text-property b i 'indentable t))) |
| 3663 | (cperl-commentify b1 (point) t) | 4381 | (cperl-commentify b1 (point) t) |
| @@ -3673,7 +4391,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3673 | (forward-word 1) ; skip modifiers s///s | 4391 | (forward-word 1) ; skip modifiers s///s |
| 3674 | (if tail (cperl-commentify tail (point) t)) | 4392 | (if tail (cperl-commentify tail (point) t)) |
| 3675 | (cperl-postpone-fontification | 4393 | (cperl-postpone-fontification |
| 3676 | e1 (point) 'face 'cperl-nonoverridable))) | 4394 | e1 (point) 'face my-cperl-REx-modifiers-face))) |
| 3677 | ;; Check whether it is m// which means "previous match" | 4395 | ;; Check whether it is m// which means "previous match" |
| 3678 | ;; and highlight differently | 4396 | ;; and highlight differently |
| 3679 | (setq is-REx | 4397 | (setq is-REx |
| @@ -3691,7 +4409,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3691 | (not (looking-at "split\\>"))) | 4409 | (not (looking-at "split\\>"))) |
| 3692 | (error t)))) | 4410 | (error t)))) |
| 3693 | (cperl-postpone-fontification | 4411 | (cperl-postpone-fontification |
| 3694 | b e 'face font-lock-function-name-face) | 4412 | b e 'face font-lock-warning-face) |
| 3695 | (if (or i2 ; Has 2 args | 4413 | (if (or i2 ; Has 2 args |
| 3696 | (and cperl-fontify-m-as-s | 4414 | (and cperl-fontify-m-as-s |
| 3697 | (or | 4415 | (or |
| @@ -3700,135 +4418,417 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3700 | (not (eq ?\< (char-after b))))))) | 4418 | (not (eq ?\< (char-after b))))))) |
| 3701 | (progn | 4419 | (progn |
| 3702 | (cperl-postpone-fontification | 4420 | (cperl-postpone-fontification |
| 3703 | b (cperl-1+ b) 'face font-lock-constant-face) | 4421 | b (cperl-1+ b) 'face my-cperl-delimiters-face) |
| 3704 | (cperl-postpone-fontification | 4422 | (cperl-postpone-fontification |
| 3705 | (1- e) e 'face font-lock-constant-face))) | 4423 | (1- e) e 'face my-cperl-delimiters-face))) |
| 3706 | (if (and is-REx cperl-regexp-scan) | 4424 | (if (and is-REx cperl-regexp-scan) |
| 3707 | ;; Process RExen better | 4425 | ;; Process RExen: embedded comments, charclasses and ] |
| 4426 | ;;;/\3333\xFg\x{FFF}a\ppp\PPP\qqq\C\99f(?{ foo })(??{ foo })/; | ||
| 4427 | ;;;/a\.b[^a[:ff:]b]x$ab->$[|$,$ab->[cd]->[ef]|$ab[xy].|^${a,b}{c,d}/; | ||
| 4428 | ;;;/(?<=foo)(?<!bar)(x)(?:$ab|\$\/)$|\\\b\x888\776\[\:$/xxx; | ||
| 4429 | ;;;m?(\?\?{b,a})? + m/(??{aa})(?(?=xx)aa|bb)(?#aac)/; | ||
| 4430 | ;;;m$(^ab[c]\$)$ + m+(^ab[c]\$\+)+ + m](^ab[c\]$|.+)] + m)(^ab[c]$|.+\)); | ||
| 4431 | ;;;m^a[\^b]c^ + m.a[^b]\.c.; | ||
| 3708 | (save-excursion | 4432 | (save-excursion |
| 3709 | (goto-char (1+ b)) | 4433 | (goto-char (1+ b)) |
| 4434 | ;; First | ||
| 4435 | (cperl-look-at-leading-count is-x-REx e) | ||
| 4436 | (setq hairy-RE | ||
| 4437 | (concat | ||
| 4438 | (if is-x-REx | ||
| 4439 | (if (eq (char-after b) ?\#) | ||
| 4440 | "\\((\\?\\\\#\\)\\|\\(\\\\#\\)" | ||
| 4441 | "\\((\\?#\\)\\|\\(#\\)") | ||
| 4442 | ;; keep the same count: add a fake group | ||
| 4443 | (if (eq (char-after b) ?\#) | ||
| 4444 | "\\((\\?\\\\#\\)\\(\\)" | ||
| 4445 | "\\((\\?#\\)\\(\\)")) | ||
| 4446 | "\\|" | ||
| 4447 | "\\(\\[\\)" ; 3=[ | ||
| 4448 | "\\|" | ||
| 4449 | "\\(]\\)" ; 4=] | ||
| 4450 | "\\|" | ||
| 4451 | ;; XXXX Will not be able to use it in s))) | ||
| 4452 | (if (eq (char-after b) ?\) ) | ||
| 4453 | "\\())))\\)" ; Will never match | ||
| 4454 | (if (eq (char-after b) ?? ) | ||
| 4455 | ;;"\\((\\\\\\?\\(\\\\\\?\\)?{\\)" | ||
| 4456 | "\\((\\\\\\?\\\\\\?{\\|()\\\\\\?{\\)" | ||
| 4457 | "\\((\\?\\??{\\)")) ; 5= (??{ (?{ | ||
| 4458 | "\\|" ; 6= 0-length, 7: name, 8,9:code, 10:group | ||
| 4459 | "\\(" ;; XXXX 1-char variables, exc. |()\s | ||
| 4460 | "[$@]" | ||
| 4461 | "\\(" | ||
| 4462 | "[_a-zA-Z:][_a-zA-Z0-9:]*" | ||
| 4463 | "\\|" | ||
| 4464 | "{[^{}]*}" ; only one-level allowed | ||
| 4465 | "\\|" | ||
| 4466 | "[^{(|) \t\r\n\f]" | ||
| 4467 | "\\)" | ||
| 4468 | "\\(" ;;8,9:code part of array/hash elt | ||
| 4469 | "\\(" "->" "\\)?" | ||
| 4470 | "\\[[^][]*\\]" | ||
| 4471 | "\\|" | ||
| 4472 | "{[^{}]*}" | ||
| 4473 | "\\)*" | ||
| 4474 | ;; XXXX: what if u is delim? | ||
| 4475 | "\\|" | ||
| 4476 | "[)^|$.*?+]" | ||
| 4477 | "\\|" | ||
| 4478 | "{[0-9]+}" | ||
| 4479 | "\\|" | ||
| 4480 | "{[0-9]+,[0-9]*}" | ||
| 4481 | "\\|" | ||
| 4482 | "\\\\[luLUEQbBAzZG]" | ||
| 4483 | "\\|" | ||
| 4484 | "(" ; Group opener | ||
| 4485 | "\\(" ; 10 group opener follower | ||
| 4486 | "\\?\\((\\?\\)" ; 11: in (?(?=C)A|B) | ||
| 4487 | "\\|" | ||
| 4488 | "\\?[:=!>?{]" ; "?" something | ||
| 4489 | "\\|" | ||
| 4490 | "\\?[-imsx]+[:)]" ; (?i) (?-s:.) | ||
| 4491 | "\\|" | ||
| 4492 | "\\?([0-9]+)" ; (?(1)foo|bar) | ||
| 4493 | "\\|" | ||
| 4494 | "\\?<[=!]" | ||
| 4495 | ;;;"\\|" | ||
| 4496 | ;;; "\\?" | ||
| 4497 | "\\)?" | ||
| 4498 | "\\)" | ||
| 4499 | "\\|" | ||
| 4500 | "\\\\\\(.\\)" ; 12=\SYMBOL | ||
| 4501 | )) | ||
| 3710 | (while | 4502 | (while |
| 3711 | (and (< (point) e) | 4503 | (and (< (point) (1- e)) |
| 3712 | (re-search-forward | 4504 | (re-search-forward hairy-RE (1- e) 'to-end)) |
| 3713 | (if is-x-REx | ||
| 3714 | (if (eq (char-after b) ?\#) | ||
| 3715 | "\\((\\?\\\\#\\)\\|\\(\\\\#\\)" | ||
| 3716 | "\\((\\?#\\)\\|\\(#\\)") | ||
| 3717 | (if (eq (char-after b) ?\#) | ||
| 3718 | "\\((\\?\\\\#\\)" | ||
| 3719 | "\\((\\?#\\)")) | ||
| 3720 | (1- e) 'to-end)) | ||
| 3721 | (goto-char (match-beginning 0)) | 4505 | (goto-char (match-beginning 0)) |
| 3722 | (setq REx-comment-start (point) | 4506 | (setq REx-subgr-start (point) |
| 3723 | was-comment t) | 4507 | was-subgr (following-char)) |
| 3724 | (if (save-excursion | 4508 | (cond |
| 3725 | (and | 4509 | ((match-beginning 6) ; 0-length builtins, groups |
| 3726 | ;; XXX not working if outside delimiter is # | 4510 | (goto-char (match-end 0)) |
| 3727 | (eq (preceding-char) ?\\) | 4511 | (if (match-beginning 11) |
| 3728 | (= (% (skip-chars-backward "$\\\\") 2) -1))) | 4512 | (goto-char (match-beginning 11))) |
| 3729 | ;; Not a comment, avoid loop: | 4513 | (if (>= (point) e) |
| 3730 | (progn (setq was-comment nil) | 4514 | (goto-char (1- e))) |
| 3731 | (forward-char 1)) | 4515 | (cperl-postpone-fontification |
| 3732 | (if (match-beginning 2) | 4516 | (match-beginning 0) (point) |
| 4517 | 'face | ||
| 4518 | (cond | ||
| 4519 | ((eq was-subgr ?\) ) | ||
| 4520 | (condition-case nil | ||
| 4521 | (save-excursion | ||
| 4522 | (forward-sexp -1) | ||
| 4523 | (if (> (point) b) | ||
| 4524 | (if (if (eq (char-after b) ?? ) | ||
| 4525 | (looking-at "(\\\\\\?") | ||
| 4526 | (eq (char-after (1+ (point))) ?\?)) | ||
| 4527 | my-cperl-REx-0length-face | ||
| 4528 | my-cperl-REx-ctl-face) | ||
| 4529 | font-lock-warning-face)) | ||
| 4530 | (error font-lock-warning-face))) | ||
| 4531 | ((eq was-subgr ?\| ) | ||
| 4532 | my-cperl-REx-ctl-face) | ||
| 4533 | ((eq was-subgr ?\$ ) | ||
| 4534 | (if (> (point) (1+ REx-subgr-start)) | ||
| 4535 | (progn | ||
| 4536 | (put-text-property | ||
| 4537 | (match-beginning 0) (point) | ||
| 4538 | 'REx-interpolated | ||
| 4539 | (if is-o-REx 0 | ||
| 4540 | (if (and (eq (match-beginning 0) | ||
| 4541 | (1+ b)) | ||
| 4542 | (eq (point) | ||
| 4543 | (1- e))) 1 t))) | ||
| 4544 | font-lock-variable-name-face) | ||
| 4545 | my-cperl-REx-spec-char-face)) | ||
| 4546 | ((memq was-subgr (append "^." nil) ) | ||
| 4547 | my-cperl-REx-spec-char-face) | ||
| 4548 | ((eq was-subgr ?\( ) | ||
| 4549 | (if (not (match-beginning 10)) | ||
| 4550 | my-cperl-REx-ctl-face | ||
| 4551 | my-cperl-REx-0length-face)) | ||
| 4552 | (t my-cperl-REx-0length-face))) | ||
| 4553 | (if (and (memq was-subgr (append "(|" nil)) | ||
| 4554 | (not (string-match "(\\?[-imsx]+)" | ||
| 4555 | (match-string 0)))) | ||
| 4556 | (cperl-look-at-leading-count is-x-REx e)) | ||
| 4557 | (setq was-subgr nil)) ; We do stuff here | ||
| 4558 | ((match-beginning 12) ; \SYMBOL | ||
| 4559 | (forward-char 2) | ||
| 4560 | (if (>= (point) e) | ||
| 4561 | (goto-char (1- e)) | ||
| 4562 | ;; How many chars to not highlight: | ||
| 4563 | ;; 0-len special-alnums in other branch => | ||
| 4564 | ;; Generic: \non-alnum (1), \alnum (1+face) | ||
| 4565 | ;; Is-delim: \non-alnum (1/spec-2) alnum-1 (=what hai) | ||
| 4566 | (setq REx-subgr-start (point) | ||
| 4567 | qtag (preceding-char)) | ||
| 4568 | (cperl-postpone-fontification | ||
| 4569 | (- (point) 2) (- (point) 1) 'face | ||
| 4570 | (if (memq qtag | ||
| 4571 | (append "ghijkmoqvFHIJKMORTVY" nil)) | ||
| 4572 | font-lock-warning-face | ||
| 4573 | my-cperl-REx-0length-face)) | ||
| 4574 | (if (and (eq (char-after b) qtag) | ||
| 4575 | (memq qtag (append ".])^$|*?+" nil))) | ||
| 4576 | (progn | ||
| 4577 | (if (and cperl-use-syntax-table-text-property | ||
| 4578 | (eq qtag ?\) )) | ||
| 4579 | (put-text-property | ||
| 4580 | REx-subgr-start (1- (point)) | ||
| 4581 | 'syntax-table cperl-st-punct)) | ||
| 4582 | (cperl-postpone-fontification | ||
| 4583 | (1- (point)) (point) 'face | ||
| 4584 | ; \] can't appear below | ||
| 4585 | (if (memq qtag (append ".]^$" nil)) | ||
| 4586 | 'my-cperl-REx-spec-char-face | ||
| 4587 | (if (memq qtag (append "*?+" nil)) | ||
| 4588 | 'my-cperl-REx-0length-face | ||
| 4589 | 'my-cperl-REx-ctl-face))))) ; )| | ||
| 4590 | ;; Test for arguments: | ||
| 4591 | (cond | ||
| 4592 | ;; This is not pretty: the 5.8.7 logic: | ||
| 4593 | ;; \0numx -> octal (up to total 3 dig) | ||
| 4594 | ;; \DIGIT -> backref unless \0 | ||
| 4595 | ;; \DIGITs -> backref if legal | ||
| 4596 | ;; otherwise up to 3 -> octal | ||
| 4597 | ;; Do not try to distinguish, we guess | ||
| 4598 | ((or (and (memq qtag (append "01234567" nil)) | ||
| 4599 | (re-search-forward | ||
| 4600 | "\\=[01234567]?[01234567]?" | ||
| 4601 | (1- e) 'to-end)) | ||
| 4602 | (and (memq qtag (append "89" nil)) | ||
| 4603 | (re-search-forward | ||
| 4604 | "\\=[0123456789]*" (1- e) 'to-end)) | ||
| 4605 | (and (eq qtag ?x) | ||
| 4606 | (re-search-forward | ||
| 4607 | "\\=[0-9a-fA-F][0-9a-fA-F]?\\|\\={[0-9a-fA-F]+}" | ||
| 4608 | (1- e) 'to-end)) | ||
| 4609 | (and (memq qtag (append "pPN" nil)) | ||
| 4610 | (re-search-forward "\\={[^{}]+}\\|." | ||
| 4611 | (1- e) 'to-end)) | ||
| 4612 | (eq (char-syntax qtag) ?w)) | ||
| 4613 | (cperl-postpone-fontification | ||
| 4614 | (1- REx-subgr-start) (point) | ||
| 4615 | 'face my-cperl-REx-length1-face)))) | ||
| 4616 | (setq was-subgr nil)) ; We do stuff here | ||
| 4617 | ((match-beginning 3) ; [charclass] | ||
| 4618 | (forward-char 1) | ||
| 4619 | (if (eq (char-after b) ?^ ) | ||
| 4620 | (and (eq (following-char) ?\\ ) | ||
| 4621 | (eq (char-after (cperl-1+ (point))) | ||
| 4622 | ?^ ) | ||
| 4623 | (forward-char 2)) | ||
| 4624 | (and (eq (following-char) ?^ ) | ||
| 4625 | (forward-char 1))) | ||
| 4626 | (setq argument b ; continue? | ||
| 4627 | tag nil ; list of POSIX classes | ||
| 4628 | qtag (point)) | ||
| 4629 | (if (eq (char-after b) ?\] ) | ||
| 4630 | (and (eq (following-char) ?\\ ) | ||
| 4631 | (eq (char-after (cperl-1+ (point))) | ||
| 4632 | ?\] ) | ||
| 4633 | (setq qtag (1+ qtag)) | ||
| 4634 | (forward-char 2)) | ||
| 4635 | (and (eq (following-char) ?\] ) | ||
| 4636 | (forward-char 1))) | ||
| 4637 | ;; Apparently, I can't put \] into a charclass | ||
| 4638 | ;; in m]]: m][\\\]\]] produces [\\]] | ||
| 4639 | ;;; POSIX? [:word:] [:^word:] only inside [] | ||
| 4640 | ;;; "\\=\\(\\\\.\\|[^][\\\\]\\|\\[:\\^?\sw+:]\\|\\[[^:]\\)*]") | ||
| 4641 | (while | ||
| 4642 | (and argument | ||
| 4643 | (re-search-forward | ||
| 4644 | (if (eq (char-after b) ?\] ) | ||
| 4645 | "\\=\\(\\\\[^]]\\|[^]\\\\]\\)*\\\\]" | ||
| 4646 | "\\=\\(\\\\.\\|[^]\\\\]\\)*]") | ||
| 4647 | (1- e) 'toend)) | ||
| 4648 | ;; Is this ] an end of POSIX class? | ||
| 4649 | (if (save-excursion | ||
| 4650 | (and | ||
| 4651 | (search-backward "[" argument t) | ||
| 4652 | (< REx-subgr-start (point)) | ||
| 4653 | (not | ||
| 4654 | (and ; Should work with delim = \ | ||
| 4655 | (eq (preceding-char) ?\\ ) | ||
| 4656 | (= (% (skip-chars-backward | ||
| 4657 | "\\\\") 2) 0))) | ||
| 4658 | (looking-at | ||
| 4659 | (cond | ||
| 4660 | ((eq (char-after b) ?\] ) | ||
| 4661 | "\\\\*\\[:\\^?\\sw+:\\\\\\]") | ||
| 4662 | ((eq (char-after b) ?\: ) | ||
| 4663 | "\\\\*\\[\\\\:\\^?\\sw+\\\\:]") | ||
| 4664 | ((eq (char-after b) ?^ ) | ||
| 4665 | "\\\\*\\[:\\(\\\\\\^\\)?\\sw+:\]") | ||
| 4666 | ((eq (char-syntax (char-after b)) | ||
| 4667 | ?w) | ||
| 4668 | (concat | ||
| 4669 | "\\\\*\\[:\\(\\\\\\^\\)?\\(\\\\" | ||
| 4670 | (char-to-string (char-after b)) | ||
| 4671 | "\\|\\sw\\)+:\]")) | ||
| 4672 | (t "\\\\*\\[:\\^?\\sw*:]"))) | ||
| 4673 | (setq argument (point)))) | ||
| 4674 | (setq tag (cons (cons argument (point)) | ||
| 4675 | tag) | ||
| 4676 | argument (point)) ; continue | ||
| 4677 | (setq argument nil))) | ||
| 4678 | (and argument | ||
| 4679 | (message "Couldn't find end of charclass in a REx, pos=%s" | ||
| 4680 | REx-subgr-start)) | ||
| 4681 | (if (and cperl-use-syntax-table-text-property | ||
| 4682 | (> (- (point) 2) REx-subgr-start)) | ||
| 4683 | (put-text-property | ||
| 4684 | (1+ REx-subgr-start) (1- (point)) | ||
| 4685 | 'syntax-table cperl-st-punct)) | ||
| 4686 | (cperl-postpone-fontification | ||
| 4687 | REx-subgr-start qtag | ||
| 4688 | 'face my-cperl-REx-spec-char-face) | ||
| 4689 | (cperl-postpone-fontification | ||
| 4690 | (1- (point)) (point) 'face | ||
| 4691 | my-cperl-REx-spec-char-face) | ||
| 4692 | (if (eq (char-after b) ?\] ) | ||
| 4693 | (cperl-postpone-fontification | ||
| 4694 | (- (point) 2) (1- (point)) | ||
| 4695 | 'face my-cperl-REx-0length-face)) | ||
| 4696 | (while tag | ||
| 4697 | (cperl-postpone-fontification | ||
| 4698 | (car (car tag)) (cdr (car tag)) | ||
| 4699 | 'face my-cperl-REx-length1-face) | ||
| 4700 | (setq tag (cdr tag))) | ||
| 4701 | (setq was-subgr nil)) ; did facing already | ||
| 4702 | ;; Now rare stuff: | ||
| 4703 | ((and (match-beginning 2) ; #-comment | ||
| 4704 | (/= (match-beginning 2) (match-end 2))) | ||
| 4705 | (beginning-of-line 2) | ||
| 4706 | (if (> (point) e) | ||
| 4707 | (goto-char (1- e)))) | ||
| 4708 | ((match-beginning 4) ; character "]" | ||
| 4709 | (setq was-subgr nil) ; We do stuff here | ||
| 4710 | (goto-char (match-end 0)) | ||
| 4711 | (if cperl-use-syntax-table-text-property | ||
| 4712 | (put-text-property | ||
| 4713 | (1- (point)) (point) | ||
| 4714 | 'syntax-table cperl-st-punct)) | ||
| 4715 | (cperl-postpone-fontification | ||
| 4716 | (1- (point)) (point) | ||
| 4717 | 'face font-lock-warning-face)) | ||
| 4718 | ((match-beginning 5) ; before (?{}) (??{}) | ||
| 4719 | (setq tag (match-end 0)) | ||
| 4720 | (if (or (setq qtag | ||
| 4721 | (cperl-forward-group-in-re st-l)) | ||
| 4722 | (and (>= (point) e) | ||
| 4723 | (setq qtag "no matching `)' found")) | ||
| 4724 | (and (not (eq (char-after (- (point) 2)) | ||
| 4725 | ?\} )) | ||
| 4726 | (setq qtag "Can't find })"))) | ||
| 3733 | (progn | 4727 | (progn |
| 3734 | (beginning-of-line 2) | 4728 | (goto-char (1- e)) |
| 3735 | (if (> (point) e) | 4729 | (message qtag)) |
| 3736 | (goto-char (1- e)))) | 4730 | (cperl-postpone-fontification |
| 3737 | ;; Works also if the outside delimiters are (). | 4731 | (1- tag) (1- (point)) |
| 3738 | (or (search-forward ")" (1- e) 'toend) | 4732 | 'face font-lock-variable-name-face) |
| 3739 | (message | 4733 | (cperl-postpone-fontification |
| 3740 | "Couldn't find end of (?#...)-comment in a REx, pos=%s" | 4734 | REx-subgr-start (1- tag) |
| 3741 | REx-comment-start)))) | 4735 | 'face my-cperl-REx-spec-char-face) |
| 4736 | (cperl-postpone-fontification | ||
| 4737 | (1- (point)) (point) | ||
| 4738 | 'face my-cperl-REx-spec-char-face) | ||
| 4739 | (if cperl-use-syntax-table-text-property | ||
| 4740 | (progn | ||
| 4741 | (put-text-property | ||
| 4742 | (- (point) 2) (1- (point)) | ||
| 4743 | 'syntax-table cperl-st-cfence) | ||
| 4744 | (put-text-property | ||
| 4745 | (+ REx-subgr-start 2) | ||
| 4746 | (+ REx-subgr-start 3) | ||
| 4747 | 'syntax-table cperl-st-cfence)))) | ||
| 4748 | (setq was-subgr nil)) | ||
| 4749 | (t ; (?#)-comment | ||
| 4750 | ;; Inside "(" and "\" arn't special in any way | ||
| 4751 | ;; Works also if the outside delimiters are (). | ||
| 4752 | (or;;(if (eq (char-after b) ?\) ) | ||
| 4753 | ;;(re-search-forward | ||
| 4754 | ;; "[^\\\\]\\(\\\\\\\\\\)*\\\\)" | ||
| 4755 | ;; (1- e) 'toend) | ||
| 4756 | (search-forward ")" (1- e) 'toend) | ||
| 4757 | ;;) | ||
| 4758 | (message | ||
| 4759 | "Couldn't find end of (?#...)-comment in a REx, pos=%s" | ||
| 4760 | REx-subgr-start)))) | ||
| 3742 | (if (>= (point) e) | 4761 | (if (>= (point) e) |
| 3743 | (goto-char (1- e))) | 4762 | (goto-char (1- e))) |
| 3744 | (if was-comment | 4763 | (cond |
| 3745 | (progn | 4764 | (was-subgr |
| 3746 | (setq REx-comment-end (point)) | 4765 | (setq REx-subgr-end (point)) |
| 3747 | (cperl-commentify | 4766 | (cperl-commentify |
| 3748 | REx-comment-start REx-comment-end nil) | 4767 | REx-subgr-start REx-subgr-end nil) |
| 3749 | (cperl-postpone-fontification | 4768 | (cperl-postpone-fontification |
| 3750 | REx-comment-start REx-comment-end | 4769 | REx-subgr-start REx-subgr-end |
| 3751 | 'face font-lock-comment-face)))))) | 4770 | 'face font-lock-comment-face)))))) |
| 3752 | (if (and is-REx is-x-REx) | 4771 | (if (and is-REx is-x-REx) |
| 3753 | (put-text-property (1+ b) (1- e) | 4772 | (put-text-property (1+ b) (1- e) |
| 3754 | 'syntax-subtype 'x-REx))) | 4773 | 'syntax-subtype 'x-REx))) |
| 3755 | (if i2 | 4774 | (if i2 |
| 3756 | (progn | 4775 | (progn |
| 3757 | (cperl-postpone-fontification | 4776 | (cperl-postpone-fontification |
| 3758 | (1- e1) e1 'face font-lock-constant-face) | 4777 | (1- e1) e1 'face my-cperl-delimiters-face) |
| 3759 | (if (assoc (char-after b) cperl-starters) | 4778 | (if (assoc (char-after b) cperl-starters) |
| 3760 | (cperl-postpone-fontification | 4779 | (progn |
| 3761 | b1 (1+ b1) 'face font-lock-constant-face)))) | 4780 | (cperl-postpone-fontification |
| 4781 | b1 (1+ b1) 'face my-cperl-delimiters-face) | ||
| 4782 | (put-text-property b1 (1+ b1) | ||
| 4783 | 'REx-part2 t))))) | ||
| 3762 | (if (> (point) max) | 4784 | (if (> (point) max) |
| 3763 | (setq tmpend tb)))) | 4785 | (setq tmpend tb)))) |
| 3764 | ((match-beginning 13) ; sub with prototypes | 4786 | ((match-beginning 17) ; sub with prototype or attribute |
| 3765 | (setq b (match-beginning 0)) | 4787 | ;; 1+6+2+1+1=11 extra () before this (sub with proto/attr): |
| 4788 | ;;"\\<sub\\>\\(" ;12 | ||
| 4789 | ;; cperl-white-and-comment-rex ;13 | ||
| 4790 | ;; "\\([a-zA-Z_:'0-9]+\\)\\)?" ; name ;14 | ||
| 4791 | ;;"\\(" cperl-maybe-white-and-comment-rex ;15,16 | ||
| 4792 | ;; "\\(([^()]*)\\|:[^:]\\)\\)" ; 17:proto or attribute start | ||
| 4793 | (setq b1 (match-beginning 14) e1 (match-end 14)) | ||
| 3766 | (if (memq (char-after (1- b)) | 4794 | (if (memq (char-after (1- b)) |
| 3767 | '(?\$ ?\@ ?\% ?\& ?\*)) | 4795 | '(?\$ ?\@ ?\% ?\& ?\*)) |
| 3768 | nil | 4796 | nil |
| 3769 | (setq state (parse-partial-sexp | 4797 | (goto-char b) |
| 3770 | state-point b nil nil state) | 4798 | (if (eq (char-after (match-beginning 17)) ?\( ) |
| 3771 | state-point b) | 4799 | (progn |
| 3772 | (if (or (nth 3 state) (nth 4 state)) | 4800 | (cperl-commentify ; Prototypes; mark as string |
| 3773 | nil | 4801 | (match-beginning 17) (match-end 17) t) |
| 3774 | ;; Mark as string | 4802 | (goto-char (match-end 0)) |
| 3775 | (cperl-commentify (match-beginning 13) (match-end 13) t)) | 4803 | ;; Now look for attributes after prototype: |
| 3776 | (goto-char (match-end 0)))) | 4804 | (forward-comment (buffer-size)) |
| 3777 | ;; 1+6+2+1+1+2=13 extra () before this: | 4805 | (and (looking-at ":[^:]") |
| 3778 | ;; "\\$\\(['{]\\)" | 4806 | (cperl-find-sub-attrs st-l b1 e1 b))) |
| 3779 | ((and (match-beginning 14) | 4807 | ;; treat attributes without prototype |
| 3780 | (eq (preceding-char) ?\')) ; $' | 4808 | (goto-char (match-beginning 17)) |
| 3781 | (setq b (1- (point)) | 4809 | (cperl-find-sub-attrs st-l b1 e1 b)))) |
| 3782 | state (parse-partial-sexp | 4810 | ;; 1+6+2+1+1+6+1=18 extra () before this: |
| 3783 | state-point (1- b) nil nil state) | ||
| 3784 | state-point (1- b)) | ||
| 3785 | (if (nth 3 state) ; in string | ||
| 3786 | (cperl-modify-syntax-type (1- b) cperl-st-punct)) | ||
| 3787 | (goto-char (1+ b))) | ||
| 3788 | ;; 1+6+2+1+1+2=13 extra () before this: | ||
| 3789 | ;; "\\$\\(['{]\\)" | ||
| 3790 | ((match-beginning 14) ; ${ | ||
| 3791 | (setq bb (match-beginning 0)) | ||
| 3792 | (cperl-modify-syntax-type bb cperl-st-punct)) | ||
| 3793 | ;; 1+6+2+1+1+2+1=14 extra () before this: | ||
| 3794 | ;; "\\(\\<sub[ \t\n\f]+\\|[&*$@%]\\)[a-zA-Z0-9_]*'") | 4811 | ;; "\\(\\<sub[ \t\n\f]+\\|[&*$@%]\\)[a-zA-Z0-9_]*'") |
| 3795 | ((match-beginning 15) ; old $abc'efg syntax | 4812 | ((match-beginning 19) ; old $abc'efg syntax |
| 3796 | (setq bb (match-end 0) | 4813 | (setq bb (match-end 0)) |
| 3797 | b (match-beginning 0) | 4814 | ;;;(if (nth 3 state) nil ; in string |
| 3798 | state (parse-partial-sexp | 4815 | (put-text-property (1- bb) bb 'syntax-table cperl-st-word) |
| 3799 | state-point b nil nil state) | ||
| 3800 | state-point b) | ||
| 3801 | (if (nth 3 state) ; in string | ||
| 3802 | nil | ||
| 3803 | (put-text-property (1- bb) bb 'syntax-table cperl-st-word)) | ||
| 3804 | (goto-char bb)) | 4816 | (goto-char bb)) |
| 3805 | ;; 1+6+2+1+1+2+1+1=15 extra () before this: | 4817 | ;; 1+6+2+1+1+6+1+1=19 extra () before this: |
| 3806 | ;; "__\\(END\\|DATA\\)__" | 4818 | ;; "__\\(END\\|DATA\\)__" |
| 3807 | ((match-beginning 16) ; __END__, __DATA__ | 4819 | ((match-beginning 20) ; __END__, __DATA__ |
| 3808 | (setq bb (match-end 0) | 4820 | (setq bb (match-end 0)) |
| 3809 | b (match-beginning 0) | 4821 | ;; (put-text-property b (1+ bb) 'syntax-type 'pod) ; Cheat |
| 3810 | state (parse-partial-sexp | 4822 | (cperl-commentify b bb nil) |
| 3811 | state-point b nil nil state) | 4823 | (setq end t)) |
| 3812 | state-point b) | 4824 | ;; "\\\\\\(['`\"($]\\)" |
| 3813 | (if (or (nth 3 state) (nth 4 state)) | 4825 | ((match-beginning 21) |
| 3814 | nil | 4826 | ;; Trailing backslash; make non-quoting outside string/comment |
| 3815 | ;; (put-text-property b (1+ bb) 'syntax-type 'pod) ; Cheat | 4827 | (setq bb (match-end 0)) |
| 3816 | (cperl-commentify b bb nil) | ||
| 3817 | (setq end t)) | ||
| 3818 | (goto-char bb)) | ||
| 3819 | ((match-beginning 17) ; "\\\\\\(['`\"($]\\)" | ||
| 3820 | ;; Trailing backslash ==> non-quoting outside string/comment | ||
| 3821 | (setq bb (match-end 0) | ||
| 3822 | b (match-beginning 0)) | ||
| 3823 | (goto-char b) | 4828 | (goto-char b) |
| 3824 | (skip-chars-backward "\\\\") | 4829 | (skip-chars-backward "\\\\") |
| 3825 | ;;;(setq i2 (= (% (skip-chars-backward "\\\\") 2) -1)) | 4830 | ;;;(setq i2 (= (% (skip-chars-backward "\\\\") 2) -1)) |
| 3826 | (setq state (parse-partial-sexp | 4831 | (cperl-modify-syntax-type b cperl-st-punct) |
| 3827 | state-point b nil nil state) | ||
| 3828 | state-point b) | ||
| 3829 | (if (or (nth 3 state) (nth 4 state) ) | ||
| 3830 | nil | ||
| 3831 | (cperl-modify-syntax-type b cperl-st-punct)) | ||
| 3832 | (goto-char bb)) | 4832 | (goto-char bb)) |
| 3833 | (t (error "Error in regexp of the sniffer"))) | 4833 | (t (error "Error in regexp of the sniffer"))) |
| 3834 | (if (> (point) stop-point) | 4834 | (if (> (point) stop-point) |
| @@ -3839,7 +4839,10 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3839 | (or (car err-l) (setcar err-l b))) | 4839 | (or (car err-l) (setcar err-l b))) |
| 3840 | (goto-char stop-point)))) | 4840 | (goto-char stop-point)))) |
| 3841 | (setq cperl-syntax-state (cons state-point state) | 4841 | (setq cperl-syntax-state (cons state-point state) |
| 3842 | cperl-syntax-done-to (or tmpend (max (point) max)))) | 4842 | ;; Do not mark syntax as done past tmpend??? |
| 4843 | cperl-syntax-done-to (or tmpend (max (point) max))) | ||
| 4844 | ;;(message "state-at=%s, done-to=%s" state-point cperl-syntax-done-to) | ||
| 4845 | ) | ||
| 3843 | (if (car err-l) (goto-char (car err-l)) | 4846 | (if (car err-l) (goto-char (car err-l)) |
| 3844 | (or non-inter | 4847 | (or non-inter |
| 3845 | (message "Scanning for \"hard\" Perl constructions... done")))) | 4848 | (message "Scanning for \"hard\" Perl constructions... done")))) |
| @@ -3851,48 +4854,91 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3851 | ;; cperl-mode-syntax-table. | 4854 | ;; cperl-mode-syntax-table. |
| 3852 | ;; (set-syntax-table cperl-mode-syntax-table) | 4855 | ;; (set-syntax-table cperl-mode-syntax-table) |
| 3853 | ) | 4856 | ) |
| 3854 | (car err-l))) | 4857 | (list (car err-l) overshoot))) |
| 4858 | |||
| 4859 | (defun cperl-find-pods-heres-region (min max) | ||
| 4860 | (interactive "r") | ||
| 4861 | (cperl-find-pods-heres min max)) | ||
| 3855 | 4862 | ||
| 3856 | (defun cperl-backward-to-noncomment (lim) | 4863 | (defun cperl-backward-to-noncomment (lim) |
| 3857 | ;; Stops at lim or after non-whitespace that is not in comment | 4864 | ;; Stops at lim or after non-whitespace that is not in comment |
| 4865 | ;; XXXX Wrongly understands end-of-multiline strings with # as comment | ||
| 3858 | (let (stop p pr) | 4866 | (let (stop p pr) |
| 3859 | (while (and (not stop) (> (point) (or lim 1))) | 4867 | (while (and (not stop) (> (point) (or lim (point-min)))) |
| 3860 | (skip-chars-backward " \t\n\f" lim) | 4868 | (skip-chars-backward " \t\n\f" lim) |
| 3861 | (setq p (point)) | 4869 | (setq p (point)) |
| 3862 | (beginning-of-line) | 4870 | (beginning-of-line) |
| 3863 | (if (memq (setq pr (get-text-property (point) 'syntax-type)) | 4871 | (if (memq (setq pr (get-text-property (point) 'syntax-type)) |
| 3864 | '(pod here-doc here-doc-delim)) | 4872 | '(pod here-doc here-doc-delim)) |
| 3865 | (cperl-unwind-to-safe nil) | 4873 | (cperl-unwind-to-safe nil) |
| 3866 | (or (looking-at "^[ \t]*\\(#\\|$\\)") | 4874 | (or (and (looking-at "^[ \t]*\\(#\\|$\\)") |
| 3867 | (progn (cperl-to-comment-or-eol) (bolp)) | 4875 | (not (memq pr '(string prestring)))) |
| 3868 | (progn | 4876 | (progn (cperl-to-comment-or-eol) (bolp)) |
| 3869 | (skip-chars-backward " \t") | 4877 | (progn |
| 3870 | (if (< p (point)) (goto-char p)) | 4878 | (skip-chars-backward " \t") |
| 3871 | (setq stop t))))))) | 4879 | (if (< p (point)) (goto-char p)) |
| 4880 | (setq stop t))))))) | ||
| 3872 | 4881 | ||
| 4882 | ;; Used only in `cperl-calculate-indent'... | ||
| 4883 | (defun cperl-block-p () ; Do not C-M-q ! One string contains ";" ! | ||
| 4884 | ;; Positions is before ?\{. Checks whether it starts a block. | ||
| 4885 | ;; No save-excursion! This is more a distinguisher of a block/hash ref... | ||
| 4886 | (cperl-backward-to-noncomment (point-min)) | ||
| 4887 | (or (memq (preceding-char) (append ";){}$@&%\C-@" nil)) ; Or label! \C-@ at bobp | ||
| 4888 | ; Label may be mixed up with `$blah :' | ||
| 4889 | (save-excursion (cperl-after-label)) | ||
| 4890 | (get-text-property (cperl-1- (point)) 'attrib-group) | ||
| 4891 | (and (memq (char-syntax (preceding-char)) '(?w ?_)) | ||
| 4892 | (progn | ||
| 4893 | (backward-sexp) | ||
| 4894 | ;; sub {BLK}, print {BLK} $data, but NOT `bless', `return', `tr' | ||
| 4895 | (or (and (looking-at "[a-zA-Z0-9_:]+[ \t\n\f]*[{#]") ; Method call syntax | ||
| 4896 | (not (looking-at "\\(bless\\|return\\|q[wqrx]?\\|tr\\|[smy]\\)\\>"))) | ||
| 4897 | ;; sub bless::foo {} | ||
| 4898 | (progn | ||
| 4899 | (cperl-backward-to-noncomment (point-min)) | ||
| 4900 | (and (eq (preceding-char) ?b) | ||
| 4901 | (progn | ||
| 4902 | (forward-sexp -1) | ||
| 4903 | (looking-at "sub[ \t\n\f#]"))))))))) | ||
| 4904 | |||
| 4905 | ;;; What is the difference of (cperl-after-block-p lim t) and (cperl-block-p)? | ||
| 4906 | ;;; No save-excursion; condition-case ... In (cperl-block-p) the block | ||
| 4907 | ;;; may be a part of an in-statement construct, such as | ||
| 4908 | ;;; ${something()}, print {FH} $data. | ||
| 4909 | ;;; Moreover, one takes positive approach (looks for else,grep etc) | ||
| 4910 | ;;; another negative (looks for bless,tr etc) | ||
| 3873 | (defun cperl-after-block-p (lim &optional pre-block) | 4911 | (defun cperl-after-block-p (lim &optional pre-block) |
| 3874 | "Return true if the preceeding } ends a block or a following { starts one. | 4912 | "Return true if the preceeding } (if PRE-BLOCK, following {) delimits a block. |
| 3875 | Would not look before LIM. If PRE-BLOCK is nil checks preceeding }. | 4913 | Would not look before LIM. Assumes that LIM is a good place to begin a |
| 3876 | otherwise following {." | 4914 | statement. The kind of block we treat here is one after which a new |
| 3877 | ;; We suppose that the preceding char is }. | 4915 | statement would start; thus the block in ${func()} does not count." |
| 3878 | (save-excursion | 4916 | (save-excursion |
| 3879 | (condition-case nil | 4917 | (condition-case nil |
| 3880 | (progn | 4918 | (progn |
| 3881 | (or pre-block (forward-sexp -1)) | 4919 | (or pre-block (forward-sexp -1)) |
| 3882 | (cperl-backward-to-noncomment lim) | 4920 | (cperl-backward-to-noncomment lim) |
| 3883 | (or (eq (point) lim) | 4921 | (or (eq (point) lim) |
| 3884 | (eq (preceding-char) ?\) ) ; if () {} sub f () {} | 4922 | ;; if () {} // sub f () {} // sub f :a(') {} |
| 3885 | (if (eq (char-syntax (preceding-char)) ?w) ; else {} | 4923 | (eq (preceding-char) ?\) ) |
| 4924 | ;; label: {} | ||
| 4925 | (save-excursion (cperl-after-label)) | ||
| 4926 | ;; sub :attr {} | ||
| 4927 | (get-text-property (cperl-1- (point)) 'attrib-group) | ||
| 4928 | (if (memq (char-syntax (preceding-char)) '(?w ?_)) ; else {} | ||
| 3886 | (save-excursion | 4929 | (save-excursion |
| 3887 | (forward-sexp -1) | 4930 | (forward-sexp -1) |
| 3888 | (or (looking-at "\\(else\\|continue\\|grep\\|map\\|BEGIN\\|END\\|CHECK\\|INIT\\)\\>") | 4931 | ;; else {} but not else::func {} |
| 4932 | (or (and (looking-at "\\(else\\|continue\\|grep\\|map\\|BEGIN\\|END\\|CHECK\\|INIT\\)\\>") | ||
| 4933 | (not (looking-at "\\(\\sw\\|_\\)+::"))) | ||
| 3889 | ;; sub f {} | 4934 | ;; sub f {} |
| 3890 | (progn | 4935 | (progn |
| 3891 | (cperl-backward-to-noncomment lim) | 4936 | (cperl-backward-to-noncomment lim) |
| 3892 | (and (eq (char-syntax (preceding-char)) ?w) | 4937 | (and (eq (preceding-char) ?b) |
| 3893 | (progn | 4938 | (progn |
| 3894 | (forward-sexp -1) | 4939 | (forward-sexp -1) |
| 3895 | (looking-at "sub\\>")))))) | 4940 | (looking-at "sub[ \t\n\f#]")))))) |
| 4941 | ;; What preceeds is not word... XXXX Last statement in sub??? | ||
| 3896 | (cperl-after-expr-p lim)))) | 4942 | (cperl-after-expr-p lim)))) |
| 3897 | (error nil)))) | 4943 | (error nil)))) |
| 3898 | 4944 | ||
| @@ -3914,14 +4960,12 @@ CHARS is a string that contains good characters to have before us (however, | |||
| 3914 | (if (get-text-property (point) 'here-doc-group) | 4960 | (if (get-text-property (point) 'here-doc-group) |
| 3915 | (progn | 4961 | (progn |
| 3916 | (goto-char | 4962 | (goto-char |
| 3917 | (or (previous-single-property-change (point) 'here-doc-group) | 4963 | (cperl-beginning-of-property (point) 'here-doc-group)) |
| 3918 | (point))) | ||
| 3919 | (beginning-of-line 0))) | 4964 | (beginning-of-line 0))) |
| 3920 | (if (get-text-property (point) 'in-pod) | 4965 | (if (get-text-property (point) 'in-pod) |
| 3921 | (progn | 4966 | (progn |
| 3922 | (goto-char | 4967 | (goto-char |
| 3923 | (or (previous-single-property-change (point) 'in-pod) | 4968 | (cperl-beginning-of-property (point) 'in-pod)) |
| 3924 | (point))) | ||
| 3925 | (beginning-of-line 0))) | 4969 | (beginning-of-line 0))) |
| 3926 | (if (looking-at "^[ \t]*\\(#\\|$\\)") nil ; Only comment, skip | 4970 | (if (looking-at "^[ \t]*\\(#\\|$\\)") nil ; Only comment, skip |
| 3927 | ;; Else: last iteration, or a label | 4971 | ;; Else: last iteration, or a label |
| @@ -3933,7 +4977,7 @@ CHARS is a string that contains good characters to have before us (however, | |||
| 3933 | (progn | 4977 | (progn |
| 3934 | (forward-char -1) | 4978 | (forward-char -1) |
| 3935 | (skip-chars-backward " \t\n\f" lim) | 4979 | (skip-chars-backward " \t\n\f" lim) |
| 3936 | (eq (char-syntax (preceding-char)) ?w))) | 4980 | (memq (char-syntax (preceding-char)) '(?w ?_)))) |
| 3937 | (forward-sexp -1) ; Possibly label. Skip it | 4981 | (forward-sexp -1) ; Possibly label. Skip it |
| 3938 | (goto-char p) | 4982 | (goto-char p) |
| 3939 | (setq stop t)))) | 4983 | (setq stop t)))) |
| @@ -3949,6 +4993,44 @@ CHARS is a string that contains good characters to have before us (however, | |||
| 3949 | (eq (get-text-property (point) 'syntax-type) | 4993 | (eq (get-text-property (point) 'syntax-type) |
| 3950 | 'format))))))))) | 4994 | 'format))))))))) |
| 3951 | 4995 | ||
| 4996 | (defun cperl-backward-to-start-of-expr (&optional lim) | ||
| 4997 | (condition-case nil | ||
| 4998 | (progn | ||
| 4999 | (while (and (or (not lim) | ||
| 5000 | (> (point) lim)) | ||
| 5001 | (not (cperl-after-expr-p lim))) | ||
| 5002 | (forward-sexp -1) | ||
| 5003 | ;; May be after $, @, $# etc of a variable | ||
| 5004 | (skip-chars-backward "$@%#"))) | ||
| 5005 | (error nil))) | ||
| 5006 | |||
| 5007 | (defun cperl-at-end-of-expr (&optional lim) | ||
| 5008 | ;; Since the SEXP approach below is very fragile, do some overengineering | ||
| 5009 | (or (looking-at (concat cperl-maybe-white-and-comment-rex "[;}]")) | ||
| 5010 | (condition-case nil | ||
| 5011 | (save-excursion | ||
| 5012 | ;; If nothing interesting after, does as (forward-sexp -1); | ||
| 5013 | ;; otherwise fails, or ends at a start of following sexp. | ||
| 5014 | ;; XXXX PROBLEMS: if what follows (after ";") @FOO, or ${bar} | ||
| 5015 | ;; may be stuck after @ or $; just put some stupid workaround now: | ||
| 5016 | (let ((p (point))) | ||
| 5017 | (forward-sexp 1) | ||
| 5018 | (forward-sexp -1) | ||
| 5019 | (while (memq (preceding-char) (append "%&@$*" nil)) | ||
| 5020 | (forward-char -1)) | ||
| 5021 | (or (< (point) p) | ||
| 5022 | (cperl-after-expr-p lim)))) | ||
| 5023 | (error t)))) | ||
| 5024 | |||
| 5025 | (defun cperl-forward-to-end-of-expr (&optional lim) | ||
| 5026 | (let ((p (point)))) | ||
| 5027 | (condition-case nil | ||
| 5028 | (progn | ||
| 5029 | (while (and (< (point) (or lim (point-max))) | ||
| 5030 | (not (cperl-at-end-of-expr))) | ||
| 5031 | (forward-sexp 1))) | ||
| 5032 | (error nil))) | ||
| 5033 | |||
| 3952 | (defun cperl-backward-to-start-of-continued-exp (lim) | 5034 | (defun cperl-backward-to-start-of-continued-exp (lim) |
| 3953 | (if (memq (preceding-char) (append ")]}\"'`" nil)) | 5035 | (if (memq (preceding-char) (append ")]}\"'`" nil)) |
| 3954 | (forward-sexp -1)) | 5036 | (forward-sexp -1)) |
| @@ -3989,18 +5071,51 @@ conditional/loop constructs." | |||
| 3989 | (beginning-of-line) | 5071 | (beginning-of-line) |
| 3990 | (while (null done) | 5072 | (while (null done) |
| 3991 | (setq top (point)) | 5073 | (setq top (point)) |
| 3992 | (while (= (nth 0 (parse-partial-sexp (point) tmp-end | 5074 | ;; Plan A: if line has an unfinished paren-group, go to end-of-group |
| 3993 | -1)) -1) | 5075 | (while (= -1 (nth 0 (parse-partial-sexp (point) tmp-end -1))) |
| 3994 | (setq top (point))) ; Get the outermost parenths in line | 5076 | (setq top (point))) ; Get the outermost parenths in line |
| 3995 | (goto-char top) | 5077 | (goto-char top) |
| 3996 | (while (< (point) tmp-end) | 5078 | (while (< (point) tmp-end) |
| 3997 | (parse-partial-sexp (point) tmp-end nil t) ; To start-sexp or eol | 5079 | (parse-partial-sexp (point) tmp-end nil t) ; To start-sexp or eol |
| 3998 | (or (eolp) (forward-sexp 1))) | 5080 | (or (eolp) (forward-sexp 1))) |
| 3999 | (if (> (point) tmp-end) | 5081 | (if (> (point) tmp-end) ; Yes, there an unfinished block |
| 4000 | (save-excursion | 5082 | nil |
| 4001 | (end-of-line) | 5083 | (if (eq ?\) (preceding-char)) |
| 4002 | (setq tmp-end (point))) | 5084 | (progn ;; Plan B: find by REGEXP block followup this line |
| 4003 | (setq done t))) | 5085 | (setq top (point)) |
| 5086 | (condition-case nil | ||
| 5087 | (progn | ||
| 5088 | (forward-sexp -2) | ||
| 5089 | (if (eq (following-char) ?$ ) ; for my $var (list) | ||
| 5090 | (progn | ||
| 5091 | (forward-sexp -1) | ||
| 5092 | (if (looking-at "\\(my\\|local\\|our\\)\\>") | ||
| 5093 | (forward-sexp -1)))) | ||
| 5094 | (if (looking-at | ||
| 5095 | (concat "\\(\\elsif\\|if\\|unless\\|while\\|until" | ||
| 5096 | "\\|for\\(each\\)?\\>\\(\\(" | ||
| 5097 | cperl-maybe-white-and-comment-rex | ||
| 5098 | "\\(my\\|local\\|our\\)\\)?" | ||
| 5099 | cperl-maybe-white-and-comment-rex | ||
| 5100 | "\\$[_a-zA-Z0-9]+\\)?\\)\\>")) | ||
| 5101 | (progn | ||
| 5102 | (goto-char top) | ||
| 5103 | (forward-sexp 1) | ||
| 5104 | (setq top (point))))) | ||
| 5105 | (error (setq done t))) | ||
| 5106 | (goto-char top)) | ||
| 5107 | (if (looking-at ; Try Plan C: continuation block | ||
| 5108 | (concat cperl-maybe-white-and-comment-rex | ||
| 5109 | "\\<\\(else\\|elsif\|continue\\)\\>")) | ||
| 5110 | (progn | ||
| 5111 | (goto-char (match-end 0)) | ||
| 5112 | (save-excursion | ||
| 5113 | (end-of-line) | ||
| 5114 | (setq tmp-end (point)))) | ||
| 5115 | (setq done t)))) | ||
| 5116 | (save-excursion | ||
| 5117 | (end-of-line) | ||
| 5118 | (setq tmp-end (point)))) | ||
| 4004 | (goto-char tmp-end) | 5119 | (goto-char tmp-end) |
| 4005 | (setq tmp-end (point-marker))) | 5120 | (setq tmp-end (point-marker))) |
| 4006 | (if cperl-indent-region-fix-constructs | 5121 | (if cperl-indent-region-fix-constructs |
| @@ -4029,16 +5144,26 @@ Returns some position at the last line." | |||
| 4029 | ;; Looking at: | 5144 | ;; Looking at: |
| 4030 | ;; } | 5145 | ;; } |
| 4031 | ;; else | 5146 | ;; else |
| 4032 | (if (and cperl-merge-trailing-else | 5147 | (if cperl-merge-trailing-else |
| 4033 | (looking-at | 5148 | (if (looking-at |
| 4034 | "[ \t]*}[ \t]*\n[ \t\n]*\\(els\\(e\\|if\\)\\|continue\\)\\>")) | 5149 | "[ \t]*}[ \t]*\n[ \t\n]*\\(els\\(e\\|if\\)\\|continue\\)\\>") |
| 4035 | (progn | 5150 | (progn |
| 4036 | (search-forward "}") | 5151 | (search-forward "}") |
| 4037 | (setq p (point)) | 5152 | (setq p (point)) |
| 4038 | (skip-chars-forward " \t\n") | 5153 | (skip-chars-forward " \t\n") |
| 4039 | (delete-region p (point)) | 5154 | (delete-region p (point)) |
| 4040 | (insert (make-string cperl-indent-region-fix-constructs ?\s)) | 5155 | (insert (make-string cperl-indent-region-fix-constructs ?\s)) |
| 4041 | (beginning-of-line))) | 5156 | (beginning-of-line))) |
| 5157 | (if (looking-at "[ \t]*}[ \t]*\\(els\\(e\\|if\\)\\|continue\\)\\>") | ||
| 5158 | (save-excursion | ||
| 5159 | (search-forward "}") | ||
| 5160 | (delete-horizontal-space) | ||
| 5161 | (insert "\n") | ||
| 5162 | (setq ret (point)) | ||
| 5163 | (if (cperl-indent-line parse-data) | ||
| 5164 | (progn | ||
| 5165 | (cperl-fix-line-spacing end parse-data) | ||
| 5166 | (setq ret (point))))))) | ||
| 4042 | ;; Looking at: | 5167 | ;; Looking at: |
| 4043 | ;; } else | 5168 | ;; } else |
| 4044 | (if (looking-at "[ \t]*}\\(\t*\\|[ \t][ \t]+\\)\\<\\(els\\(e\\|if\\)\\|continue\\)\\>") | 5169 | (if (looking-at "[ \t]*}\\(\t*\\|[ \t][ \t]+\\)\\<\\(els\\(e\\|if\\)\\|continue\\)\\>") |
| @@ -4075,19 +5200,19 @@ Returns some position at the last line." | |||
| 4075 | (insert | 5200 | (insert |
| 4076 | (make-string cperl-indent-region-fix-constructs ?\s)) | 5201 | (make-string cperl-indent-region-fix-constructs ?\s)) |
| 4077 | (beginning-of-line))) | 5202 | (beginning-of-line))) |
| 4078 | ;; Looking at: | 5203 | ;; Looking at (with or without "}" at start, ending after "({"): |
| 4079 | ;; } foreach my $var () { | 5204 | ;; } foreach my $var () OR { |
| 4080 | (if (looking-at | 5205 | (if (looking-at |
| 4081 | "[ \t]*\\(}[ \t]*\\)?\\<\\(\\els\\(e\\|if\\)\\|continue\\|if\\|unless\\|while\\|for\\(each\\)?\\(\\([ \t]+\\(my\\|local\\|our\\)\\)?[ \t]*\\$[_a-zA-Z0-9]+\\)?\\|until\\)\\>\\([ \t]*(\\|[ \t\n]*{\\)\\|[ \t]*{") | 5206 | "[ \t]*\\(}[ \t]*\\)?\\<\\(\\els\\(e\\|if\\)\\|continue\\|if\\|unless\\|while\\|for\\(each\\)?\\(\\([ \t]+\\(my\\|local\\|our\\)\\)?[ \t]*\\$[_a-zA-Z0-9]+\\)?\\|until\\)\\>\\([ \t]*(\\|[ \t\n]*{\\)\\|[ \t]*{") |
| 4082 | (progn | 5207 | (progn |
| 4083 | (setq ml (match-beginning 8)) | 5208 | (setq ml (match-beginning 8)) ; "(" or "{" after control word |
| 4084 | (re-search-forward "[({]") | 5209 | (re-search-forward "[({]") |
| 4085 | (forward-char -1) | 5210 | (forward-char -1) |
| 4086 | (setq p (point)) | 5211 | (setq p (point)) |
| 4087 | (if (eq (following-char) ?\( ) | 5212 | (if (eq (following-char) ?\( ) |
| 4088 | (progn | 5213 | (progn |
| 4089 | (forward-sexp 1) | 5214 | (forward-sexp 1) |
| 4090 | (setq pp (point))) | 5215 | (setq pp (point))) ; past parenth-group |
| 4091 | ;; after `else' or nothing | 5216 | ;; after `else' or nothing |
| 4092 | (if ml ; after `else' | 5217 | (if ml ; after `else' |
| 4093 | (skip-chars-backward " \t\n") | 5218 | (skip-chars-backward " \t\n") |
| @@ -4097,13 +5222,13 @@ Returns some position at the last line." | |||
| 4097 | ;; Multiline expr should be special | 5222 | ;; Multiline expr should be special |
| 4098 | (setq ml (and pp (save-excursion (goto-char p) | 5223 | (setq ml (and pp (save-excursion (goto-char p) |
| 4099 | (search-forward "\n" pp t)))) | 5224 | (search-forward "\n" pp t)))) |
| 4100 | (if (and (or (not pp) (< pp end)) | 5225 | (if (and (or (not pp) (< pp end)) ; Do not go too far... |
| 4101 | (looking-at "[ \t\n]*{")) | 5226 | (looking-at "[ \t\n]*{")) |
| 4102 | (progn | 5227 | (progn |
| 4103 | (cond | 5228 | (cond |
| 4104 | ((bolp) ; Were before `{', no if/else/etc | 5229 | ((bolp) ; Were before `{', no if/else/etc |
| 4105 | nil) | 5230 | nil) |
| 4106 | ((looking-at "\\(\t*\\| [ \t]+\\){") | 5231 | ((looking-at "\\(\t*\\| [ \t]+\\){") ; Not exactly 1 SPACE |
| 4107 | (delete-horizontal-space) | 5232 | (delete-horizontal-space) |
| 4108 | (if (if ml | 5233 | (if (if ml |
| 4109 | cperl-extra-newline-before-brace-multiline | 5234 | cperl-extra-newline-before-brace-multiline |
| @@ -4126,7 +5251,17 @@ Returns some position at the last line." | |||
| 4126 | (skip-chars-forward " \t\n") | 5251 | (skip-chars-forward " \t\n") |
| 4127 | (delete-region pp (point)) | 5252 | (delete-region pp (point)) |
| 4128 | (insert | 5253 | (insert |
| 4129 | (make-string cperl-indent-region-fix-constructs ?\s)))) | 5254 | (make-string cperl-indent-region-fix-constructs ?\ ))) |
| 5255 | ((and (looking-at "[\t ]*{") | ||
| 5256 | (if ml cperl-extra-newline-before-brace-multiline | ||
| 5257 | cperl-extra-newline-before-brace)) | ||
| 5258 | (delete-horizontal-space) | ||
| 5259 | (insert "\n") | ||
| 5260 | (setq ret (point)) | ||
| 5261 | (if (cperl-indent-line parse-data) | ||
| 5262 | (progn | ||
| 5263 | (cperl-fix-line-spacing end parse-data) | ||
| 5264 | (setq ret (point)))))) | ||
| 4130 | ;; Now we are before `{' | 5265 | ;; Now we are before `{' |
| 4131 | (if (looking-at "[ \t\n]*{[ \t]*[^ \t\n#]") | 5266 | (if (looking-at "[ \t\n]*{[ \t]*[^ \t\n#]") |
| 4132 | (progn | 5267 | (progn |
| @@ -4278,7 +5413,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4278 | ;; (interactive "P") ; Only works when called from fill-paragraph. -stef | 5413 | ;; (interactive "P") ; Only works when called from fill-paragraph. -stef |
| 4279 | (let (;; Non-nil if the current line contains a comment. | 5414 | (let (;; Non-nil if the current line contains a comment. |
| 4280 | has-comment | 5415 | has-comment |
| 4281 | 5416 | fill-paragraph-function ; do not recurse | |
| 4282 | ;; If has-comment, the appropriate fill-prefix for the comment. | 5417 | ;; If has-comment, the appropriate fill-prefix for the comment. |
| 4283 | comment-fill-prefix | 5418 | comment-fill-prefix |
| 4284 | ;; Line that contains code and comment (or nil) | 5419 | ;; Line that contains code and comment (or nil) |
| @@ -4310,7 +5445,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4310 | dc (- c (current-column)) len (- start (point)) | 5445 | dc (- c (current-column)) len (- start (point)) |
| 4311 | start (point-marker)) | 5446 | start (point-marker)) |
| 4312 | (delete-char len) | 5447 | (delete-char len) |
| 4313 | (insert (make-string dc ?-))))) | 5448 | (insert (make-string dc ?-))))) ; Placeholder (to avoid splitting???) |
| 4314 | (if (not has-comment) | 5449 | (if (not has-comment) |
| 4315 | (fill-paragraph justify) ; Do the usual thing outside of comment | 5450 | (fill-paragraph justify) ; Do the usual thing outside of comment |
| 4316 | ;; Narrow to include only the comment, and then fill the region. | 5451 | ;; Narrow to include only the comment, and then fill the region. |
| @@ -4332,11 +5467,16 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4332 | (point))) | 5467 | (point))) |
| 4333 | ;; Remove existing hashes | 5468 | ;; Remove existing hashes |
| 4334 | (save-excursion | 5469 | (save-excursion |
| 4335 | (goto-char (point-min)) | 5470 | (goto-char (point-min)) |
| 4336 | (while (progn (forward-line 1) (< (point) (point-max))) | 5471 | (while (progn (forward-line 1) (< (point) (point-max))) |
| 4337 | (skip-chars-forward " \t") | 5472 | (skip-chars-forward " \t") |
| 4338 | (and (looking-at "#+") | 5473 | (if (looking-at "#+") |
| 4339 | (delete-char (- (match-end 0) (match-beginning 0)))))) | 5474 | (progn |
| 5475 | (if (and (eq (point) (match-beginning 0)) | ||
| 5476 | (not (eq (point) (match-end 0)))) nil | ||
| 5477 | (error | ||
| 5478 | "Bug in Emacs: `looking-at' in `narrow-to-region': match-data is garbage")) | ||
| 5479 | (delete-char (- (match-end 0) (match-beginning 0))))))) | ||
| 4340 | 5480 | ||
| 4341 | ;; Lines with only hashes on them can be paragraph boundaries. | 5481 | ;; Lines with only hashes on them can be paragraph boundaries. |
| 4342 | (let ((paragraph-start (concat paragraph-start "\\|^[ \t#]*$")) | 5482 | (let ((paragraph-start (concat paragraph-start "\\|^[ \t#]*$")) |
| @@ -4352,7 +5492,8 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4352 | (setq comment-column c) | 5492 | (setq comment-column c) |
| 4353 | (indent-for-comment) | 5493 | (indent-for-comment) |
| 4354 | ;; Repeat once more, flagging as iteration | 5494 | ;; Repeat once more, flagging as iteration |
| 4355 | (cperl-fill-paragraph justify t))))))) | 5495 | (cperl-fill-paragraph justify t)))))) |
| 5496 | t) | ||
| 4356 | 5497 | ||
| 4357 | (defun cperl-do-auto-fill () | 5498 | (defun cperl-do-auto-fill () |
| 4358 | ;; Break out if the line is short enough | 5499 | ;; Break out if the line is short enough |
| @@ -4403,8 +5544,8 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4403 | (let ((index-alist '()) (index-pack-alist '()) (index-pod-alist '()) | 5544 | (let ((index-alist '()) (index-pack-alist '()) (index-pod-alist '()) |
| 4404 | (index-unsorted-alist '()) (i-s-f (default-value 'imenu-sort-function)) | 5545 | (index-unsorted-alist '()) (i-s-f (default-value 'imenu-sort-function)) |
| 4405 | (index-meth-alist '()) meth | 5546 | (index-meth-alist '()) meth |
| 4406 | packages ends-ranges p marker | 5547 | packages ends-ranges p marker is-proto |
| 4407 | (prev-pos 0) char fchar index index1 name (end-range 0) package) | 5548 | (prev-pos 0) is-pack index index1 name (end-range 0) package) |
| 4408 | (goto-char (point-min)) | 5549 | (goto-char (point-min)) |
| 4409 | (cperl-update-syntaxification (point-max) (point-max)) | 5550 | (cperl-update-syntaxification (point-max) (point-max)) |
| 4410 | ;; Search for the function | 5551 | ;; Search for the function |
| @@ -4412,72 +5553,81 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4412 | (while (re-search-forward | 5553 | (while (re-search-forward |
| 4413 | (or regexp cperl-imenu--function-name-regexp-perl) | 5554 | (or regexp cperl-imenu--function-name-regexp-perl) |
| 4414 | nil t) | 5555 | nil t) |
| 5556 | ;; 2=package-group, 5=package-name 8=sub-name | ||
| 4415 | (cond | 5557 | (cond |
| 4416 | ((and ; Skip some noise if building tags | 5558 | ((and ; Skip some noise if building tags |
| 4417 | (match-beginning 2) ; package or sub | 5559 | (match-beginning 5) ; package name |
| 4418 | (eq (char-after (match-beginning 2)) ?p) ; package | 5560 | ;;(eq (char-after (match-beginning 2)) ?p) ; package |
| 4419 | (not (save-match-data | 5561 | (not (save-match-data |
| 4420 | (looking-at "[ \t\n]*;")))) ; Plain text word 'package' | 5562 | (looking-at "[ \t\n]*;")))) ; Plain text word 'package' |
| 4421 | nil) | 5563 | nil) |
| 4422 | ((and | 5564 | ((and |
| 4423 | (match-beginning 2) ; package or sub | 5565 | (or (match-beginning 2) |
| 5566 | (match-beginning 8)) ; package or sub | ||
| 4424 | ;; Skip if quoted (will not skip multi-line ''-strings :-(): | 5567 | ;; Skip if quoted (will not skip multi-line ''-strings :-(): |
| 4425 | (null (get-text-property (match-beginning 1) 'syntax-table)) | 5568 | (null (get-text-property (match-beginning 1) 'syntax-table)) |
| 4426 | (null (get-text-property (match-beginning 1) 'syntax-type)) | 5569 | (null (get-text-property (match-beginning 1) 'syntax-type)) |
| 4427 | (null (get-text-property (match-beginning 1) 'in-pod))) | 5570 | (null (get-text-property (match-beginning 1) 'in-pod))) |
| 4428 | (save-excursion | 5571 | (setq is-pack (match-beginning 2)) |
| 4429 | (goto-char (match-beginning 2)) | ||
| 4430 | (setq fchar (following-char))) | ||
| 4431 | ;; (if (looking-at "([^()]*)[ \t\n\f]*") | 5572 | ;; (if (looking-at "([^()]*)[ \t\n\f]*") |
| 4432 | ;; (goto-char (match-end 0))) ; Messes what follows | 5573 | ;; (goto-char (match-end 0))) ; Messes what follows |
| 4433 | (setq char (following-char) ; ?\; for "sub foo () ;" | 5574 | (setq meth nil |
| 4434 | meth nil | ||
| 4435 | p (point)) | 5575 | p (point)) |
| 4436 | (while (and ends-ranges (>= p (car ends-ranges))) | 5576 | (while (and ends-ranges (>= p (car ends-ranges))) |
| 4437 | ;; delete obsolete entries | 5577 | ;; delete obsolete entries |
| 4438 | (setq ends-ranges (cdr ends-ranges) packages (cdr packages))) | 5578 | (setq ends-ranges (cdr ends-ranges) packages (cdr packages))) |
| 4439 | (setq package (or (car packages) "") | 5579 | (setq package (or (car packages) "") |
| 4440 | end-range (or (car ends-ranges) 0)) | 5580 | end-range (or (car ends-ranges) 0)) |
| 4441 | (if (eq fchar ?p) | 5581 | (if is-pack ; doing "package" |
| 4442 | (setq name (buffer-substring (match-beginning 3) (match-end 3)) | 5582 | (progn |
| 4443 | name (progn | 5583 | (if (match-beginning 5) ; named package |
| 4444 | (set-text-properties 0 (length name) nil name) | 5584 | (setq name (buffer-substring (match-beginning 5) |
| 4445 | name) | 5585 | (match-end 5)) |
| 4446 | package (concat name "::") | 5586 | name (progn |
| 4447 | name (concat "package " name) | 5587 | (set-text-properties 0 (length name) nil name) |
| 4448 | end-range | 5588 | name) |
| 4449 | (save-excursion | 5589 | package (concat name "::") |
| 4450 | (parse-partial-sexp (point) (point-max) -1) (point)) | 5590 | name (concat "package " name)) |
| 4451 | ends-ranges (cons end-range ends-ranges) | 5591 | ;; Support nameless packages |
| 4452 | packages (cons package packages))) | 5592 | (setq name "package;" package "")) |
| 4453 | ;; ) | 5593 | (setq end-range |
| 5594 | (save-excursion | ||
| 5595 | (parse-partial-sexp (point) (point-max) -1) (point)) | ||
| 5596 | ends-ranges (cons end-range ends-ranges) | ||
| 5597 | packages (cons package packages))) | ||
| 5598 | (setq is-proto | ||
| 5599 | (or (eq (following-char) ?\;) | ||
| 5600 | (eq 0 (get-text-property (point) 'attrib-group))))) | ||
| 4454 | ;; Skip this function name if it is a prototype declaration. | 5601 | ;; Skip this function name if it is a prototype declaration. |
| 4455 | (if (and (eq fchar ?s) (eq char ?\;)) nil | 5602 | (if (and is-proto (not is-pack)) nil |
| 4456 | (setq name (buffer-substring (match-beginning 3) (match-end 3)) | 5603 | (or is-pack |
| 4457 | marker (make-marker)) | 5604 | (setq name |
| 4458 | (set-text-properties 0 (length name) nil name) | 5605 | (buffer-substring (match-beginning 8) (match-end 8))) |
| 4459 | (set-marker marker (match-end 3)) | 5606 | (set-text-properties 0 (length name) nil name)) |
| 4460 | (if (eq fchar ?p) | 5607 | (setq marker (make-marker)) |
| 4461 | (setq name (concat "package " name)) | 5608 | (set-marker marker (match-end (if is-pack 2 8))) |
| 4462 | (cond ((string-match "[:']" name) | 5609 | (cond (is-pack nil) |
| 4463 | (setq meth t)) | 5610 | ((string-match "[:']" name) |
| 4464 | ((> p end-range) nil) | 5611 | (setq meth t)) |
| 4465 | (t | 5612 | ((> p end-range) nil) |
| 4466 | (setq name (concat package name) meth t)))) | 5613 | (t |
| 5614 | (setq name (concat package name) meth t))) | ||
| 4467 | (setq index (cons name marker)) | 5615 | (setq index (cons name marker)) |
| 4468 | (if (eq fchar ?p) | 5616 | (if is-pack |
| 4469 | (push index index-pack-alist) | 5617 | (push index index-pack-alist) |
| 4470 | (push index index-alist)) | 5618 | (push index index-alist)) |
| 4471 | (if meth (push index index-meth-alist)) | 5619 | (if meth (push index index-meth-alist)) |
| 4472 | (push index index-unsorted-alist))) | 5620 | (push index index-unsorted-alist))) |
| 4473 | ((match-beginning 5) ; POD section | 5621 | ((match-beginning 16) ; POD section |
| 4474 | ;; (beginning-of-line) | 5622 | (setq name (buffer-substring (match-beginning 17) (match-end 17)) |
| 4475 | (setq index (imenu-example--name-and-position) | 5623 | marker (make-marker)) |
| 4476 | name (buffer-substring (match-beginning 6) (match-end 6))) | 5624 | (set-marker marker (match-beginning 17)) |
| 4477 | (set-text-properties 0 (length name) nil name) | 5625 | (set-text-properties 0 (length name) nil name) |
| 4478 | (if (eq (char-after (match-beginning 5)) ?2) | 5626 | (setq name (concat (make-string |
| 4479 | (setq name (concat " " name))) | 5627 | (* 3 (- (char-after (match-beginning 16)) ?1)) |
| 4480 | (setcar index name) | 5628 | ?\ ) |
| 5629 | name) | ||
| 5630 | index (cons name marker)) | ||
| 4481 | (setq index1 (cons (concat "=" name) (cdr index))) | 5631 | (setq index1 (cons (concat "=" name) (cdr index))) |
| 4482 | (push index index-pod-alist) | 5632 | (push index index-pod-alist) |
| 4483 | (push index1 index-unsorted-alist))))) | 5633 | (push index1 index-unsorted-alist))))) |
| @@ -4541,29 +5691,20 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4541 | (defun cperl-outline-level () | 5691 | (defun cperl-outline-level () |
| 4542 | (looking-at outline-regexp) | 5692 | (looking-at outline-regexp) |
| 4543 | (cond ((not (match-beginning 1)) 0) ; beginning-of-file | 5693 | (cond ((not (match-beginning 1)) 0) ; beginning-of-file |
| 4544 | ((match-beginning 2) | 5694 | ;;;; 2=package-group, 5=package-name 8=sub-name 16=head-level |
| 4545 | (if (eq (char-after (match-beginning 2)) ?p) | 5695 | ((match-beginning 2) 0) ; package |
| 4546 | 0 ; package | 5696 | ((match-beginning 8) 1) ; sub |
| 4547 | 1)) ; sub | 5697 | ((match-beginning 16) |
| 4548 | ((match-beginning 5) | 5698 | (- (char-after (match-beginning 16)) ?0)) ; headN ==> N |
| 4549 | (if (eq (char-after (match-beginning 5)) ?1) | 5699 | (t 5))) ; should not happen |
| 4550 | 1 ; head1 | ||
| 4551 | 2)) ; head2 | ||
| 4552 | (t 3))) ; should not happen | ||
| 4553 | 5700 | ||
| 4554 | 5701 | ||
| 4555 | (defvar cperl-compilation-error-regexp-alist | 5702 | (defvar cperl-compilation-error-regexp-alist |
| 4556 | ;; This look like a paranoiac regexp: could anybody find a better one? (which WORK). | 5703 | ;; This look like a paranoiac regexp: could anybody find a better one? (which WORKS). |
| 4557 | '(("^[^\n]* \\(file\\|at\\) \\([^ \t\n]+\\) [^\n]*line \\([0-9]+\\)[\\., \n]" | 5704 | '(("^[^\n]* \\(file\\|at\\) \\([^ \t\n]+\\) [^\n]*line \\([0-9]+\\)[\\., \n]" |
| 4558 | 2 3)) | 5705 | 2 3)) |
| 4559 | "Alist that specifies how to match errors in perl output.") | 5706 | "Alist that specifies how to match errors in perl output.") |
| 4560 | 5707 | ||
| 4561 | (if (fboundp 'eval-after-load) | ||
| 4562 | (eval-after-load | ||
| 4563 | "mode-compile" | ||
| 4564 | '(setq perl-compilation-error-regexp-alist | ||
| 4565 | cperl-compilation-error-regexp-alist))) | ||
| 4566 | |||
| 4567 | 5708 | ||
| 4568 | (defun cperl-windowed-init () | 5709 | (defun cperl-windowed-init () |
| 4569 | "Initialization under windowed version." | 5710 | "Initialization under windowed version." |
| @@ -4604,9 +5745,12 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4604 | ;; Allow `cperl-find-pods-heres' to run. | 5745 | ;; Allow `cperl-find-pods-heres' to run. |
| 4605 | (or (boundp 'font-lock-constant-face) | 5746 | (or (boundp 'font-lock-constant-face) |
| 4606 | (cperl-force-face font-lock-constant-face | 5747 | (cperl-force-face font-lock-constant-face |
| 4607 | "Face for constant and label names") | 5748 | "Face for constant and label names")) |
| 4608 | ;;(setq font-lock-constant-face 'font-lock-constant-face) | 5749 | (or (boundp 'font-lock-warning-face) |
| 4609 | )) | 5750 | (cperl-force-face font-lock-warning-face |
| 5751 | "Face for things which should stand out")) | ||
| 5752 | ;;(setq font-lock-constant-face 'font-lock-constant-face) | ||
| 5753 | ) | ||
| 4610 | 5754 | ||
| 4611 | (defun cperl-init-faces () | 5755 | (defun cperl-init-faces () |
| 4612 | (condition-case errs | 5756 | (condition-case errs |
| @@ -4629,7 +5773,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4629 | 'identity | 5773 | 'identity |
| 4630 | '("if" "until" "while" "elsif" "else" "unless" "for" | 5774 | '("if" "until" "while" "elsif" "else" "unless" "for" |
| 4631 | "foreach" "continue" "exit" "die" "last" "goto" "next" | 5775 | "foreach" "continue" "exit" "die" "last" "goto" "next" |
| 4632 | "redo" "return" "local" "exec" "sub" "do" "dump" "use" | 5776 | "redo" "return" "local" "exec" "sub" "do" "dump" "use" "our" |
| 4633 | "require" "package" "eval" "my" "BEGIN" "END" "CHECK" "INIT") | 5777 | "require" "package" "eval" "my" "BEGIN" "END" "CHECK" "INIT") |
| 4634 | "\\|") ; Flow control | 5778 | "\\|") ; Flow control |
| 4635 | "\\)\\>") 2) ; was "\\)[ \n\t;():,\|&]" | 5779 | "\\)\\>") 2) ; was "\\)[ \n\t;():,\|&]" |
| @@ -4713,7 +5857,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4713 | ;; "chop" "defined" "delete" "do" "each" "else" "elsif" | 5857 | ;; "chop" "defined" "delete" "do" "each" "else" "elsif" |
| 4714 | ;; "eval" "exists" "for" "foreach" "format" "goto" | 5858 | ;; "eval" "exists" "for" "foreach" "format" "goto" |
| 4715 | ;; "grep" "if" "keys" "last" "local" "map" "my" "next" | 5859 | ;; "grep" "if" "keys" "last" "local" "map" "my" "next" |
| 4716 | ;; "no" "package" "pop" "pos" "print" "printf" "push" | 5860 | ;; "no" "our" "package" "pop" "pos" "print" "printf" "push" |
| 4717 | ;; "q" "qq" "qw" "qx" "redo" "return" "scalar" "shift" | 5861 | ;; "q" "qq" "qw" "qx" "redo" "return" "scalar" "shift" |
| 4718 | ;; "sort" "splice" "split" "study" "sub" "tie" "tr" | 5862 | ;; "sort" "splice" "split" "study" "sub" "tie" "tr" |
| 4719 | ;; "undef" "unless" "unshift" "untie" "until" "use" | 5863 | ;; "undef" "unless" "unshift" "untie" "until" "use" |
| @@ -4728,15 +5872,38 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4728 | "u\\(se\\|n\\(shift\\|ti\\(l\\|e\\)\\|def\\|less\\)\\)\\|" | 5872 | "u\\(se\\|n\\(shift\\|ti\\(l\\|e\\)\\|def\\|less\\)\\)\\|" |
| 4729 | "while\\|y\\|__\\(END\\|DATA\\)__" ;__DATA__ added manually | 5873 | "while\\|y\\|__\\(END\\|DATA\\)__" ;__DATA__ added manually |
| 4730 | "\\|[sm]" ; Added manually | 5874 | "\\|[sm]" ; Added manually |
| 4731 | "\\)\\>") 2 'cperl-nonoverridable) | 5875 | "\\)\\>") 2 'cperl-nonoverridable-face) |
| 4732 | ;; (mapconcat 'identity | 5876 | ;; (mapconcat 'identity |
| 4733 | ;; '("#endif" "#else" "#ifdef" "#ifndef" "#if" | 5877 | ;; '("#endif" "#else" "#ifdef" "#ifndef" "#if" |
| 4734 | ;; "#include" "#define" "#undef") | 5878 | ;; "#include" "#define" "#undef") |
| 4735 | ;; "\\|") | 5879 | ;; "\\|") |
| 4736 | '("-[rwxoRWXOezsfdlpSbctugkTBMAC]\\>\\([ \t]+_\\>\\)?" 0 | 5880 | '("-[rwxoRWXOezsfdlpSbctugkTBMAC]\\>\\([ \t]+_\\>\\)?" 0 |
| 4737 | font-lock-function-name-face keep) ; Not very good, triggers at "[a-z]" | 5881 | font-lock-function-name-face keep) ; Not very good, triggers at "[a-z]" |
| 4738 | '("\\<sub[ \t]+\\([^ \t{;()]+\\)[ \t]*\\(([^()]*)[ \t]*\\)?[#{\n]" 1 | 5882 | ;; This highlights declarations and definitions differenty. |
| 4739 | font-lock-function-name-face) | 5883 | ;; We do not try to highlight in the case of attributes: |
| 5884 | ;; it is already done by `cperl-find-pods-heres' | ||
| 5885 | (list (concat "\\<sub" | ||
| 5886 | cperl-white-and-comment-rex ; whitespace/comments | ||
| 5887 | "\\([^ \n\t{;()]+\\)" ; 2=name (assume non-anonymous) | ||
| 5888 | "\\(" | ||
| 5889 | cperl-maybe-white-and-comment-rex ;whitespace/comments? | ||
| 5890 | "([^()]*)\\)?" ; prototype | ||
| 5891 | cperl-maybe-white-and-comment-rex ; whitespace/comments? | ||
| 5892 | "[{;]") | ||
| 5893 | 2 (if cperl-font-lock-multiline | ||
| 5894 | '(if (eq (char-after (cperl-1- (match-end 0))) ?\{ ) | ||
| 5895 | 'font-lock-function-name-face | ||
| 5896 | 'font-lock-variable-name-face) | ||
| 5897 | ;; need to manually set 'multiline' for older font-locks | ||
| 5898 | '(progn | ||
| 5899 | (if (< 1 (count-lines (match-beginning 0) | ||
| 5900 | (match-end 0))) | ||
| 5901 | (put-text-property | ||
| 5902 | (+ 3 (match-beginning 0)) (match-end 0) | ||
| 5903 | 'syntax-type 'multiline)) | ||
| 5904 | (if (eq (char-after (cperl-1- (match-end 0))) ?\{ ) | ||
| 5905 | 'font-lock-function-name-face | ||
| 5906 | 'font-lock-variable-name-face)))) | ||
| 4740 | '("\\<\\(package\\|require\\|use\\|import\\|no\\|bootstrap\\)[ \t]+\\([a-zA-z_][a-zA-z_0-9:]*\\)[ \t;]" ; require A if B; | 5907 | '("\\<\\(package\\|require\\|use\\|import\\|no\\|bootstrap\\)[ \t]+\\([a-zA-z_][a-zA-z_0-9:]*\\)[ \t;]" ; require A if B; |
| 4741 | 2 font-lock-function-name-face) | 5908 | 2 font-lock-function-name-face) |
| 4742 | '("^[ \t]*format[ \t]+\\([a-zA-z_][a-zA-z_0-9:]*\\)[ \t]*=[ \t]*$" | 5909 | '("^[ \t]*format[ \t]+\\([a-zA-z_][a-zA-z_0-9:]*\\)[ \t]*=[ \t]*$" |
| @@ -4772,12 +5939,56 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4772 | (2 '(restart 2 nil) nil t))) | 5939 | (2 '(restart 2 nil) nil t))) |
| 4773 | nil t))) ; local variables, multiple | 5940 | nil t))) ; local variables, multiple |
| 4774 | (font-lock-anchored | 5941 | (font-lock-anchored |
| 4775 | '("^[ \t{}]*\\(my\\|local\\|our\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)" | 5942 | ;; 1=my_etc, 2=white? 3=(+white? 4=white? 5=var |
| 4776 | (3 font-lock-variable-name-face) | 5943 | (` ((, (concat "\\<\\(my\\|local\\|our\\)" |
| 4777 | ("\\=[ \t]*,[ \t]*\\([$@%*][a-zA-Z0-9_:]+\\)" | 5944 | cperl-maybe-white-and-comment-rex |
| 4778 | nil nil | 5945 | "\\((" |
| 4779 | (1 font-lock-variable-name-face)))) | 5946 | cperl-maybe-white-and-comment-rex |
| 4780 | (t '("^[ \t{}]*\\(my\\|local\\our\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)" | 5947 | "\\)?\\([$@%*]\\([a-zA-Z0-9_:]+\\|[^a-zA-Z0-9_]\\)\\)")) |
| 5948 | (5 (, (if cperl-font-lock-multiline | ||
| 5949 | 'font-lock-variable-name-face | ||
| 5950 | '(progn (setq cperl-font-lock-multiline-start | ||
| 5951 | (match-beginning 0)) | ||
| 5952 | 'font-lock-variable-name-face)))) | ||
| 5953 | ((, (concat "\\=" | ||
| 5954 | cperl-maybe-white-and-comment-rex | ||
| 5955 | "," | ||
| 5956 | cperl-maybe-white-and-comment-rex | ||
| 5957 | "\\([$@%*]\\([a-zA-Z0-9_:]+\\|[^a-zA-Z0-9_]\\)\\)")) | ||
| 5958 | ;; Bug in font-lock: limit is used not only to limit | ||
| 5959 | ;; searches, but to set the "extend window for | ||
| 5960 | ;; facification" property. Thus we need to minimize. | ||
| 5961 | (, (if cperl-font-lock-multiline | ||
| 5962 | '(if (match-beginning 3) | ||
| 5963 | (save-excursion | ||
| 5964 | (goto-char (match-beginning 3)) | ||
| 5965 | (condition-case nil | ||
| 5966 | (forward-sexp 1) | ||
| 5967 | (error | ||
| 5968 | (condition-case nil | ||
| 5969 | (forward-char 200) | ||
| 5970 | (error nil)))) ; typeahead | ||
| 5971 | (1- (point))) ; report limit | ||
| 5972 | (forward-char -2)) ; disable continued expr | ||
| 5973 | '(if (match-beginning 3) | ||
| 5974 | (point-max) ; No limit for continuation | ||
| 5975 | (forward-char -2)))) ; disable continued expr | ||
| 5976 | (, (if cperl-font-lock-multiline | ||
| 5977 | nil | ||
| 5978 | '(progn ; Do at end | ||
| 5979 | ;; "my" may be already fontified (POD), | ||
| 5980 | ;; so cperl-font-lock-multiline-start is nil | ||
| 5981 | (if (or (not cperl-font-lock-multiline-start) | ||
| 5982 | (> 2 (count-lines | ||
| 5983 | cperl-font-lock-multiline-start | ||
| 5984 | (point)))) | ||
| 5985 | nil | ||
| 5986 | (put-text-property | ||
| 5987 | (1+ cperl-font-lock-multiline-start) (point) | ||
| 5988 | 'syntax-type 'multiline)) | ||
| 5989 | (setq cperl-font-lock-multiline-start nil)))) | ||
| 5990 | (3 font-lock-variable-name-face))))) | ||
| 5991 | (t '("^[ \t{}]*\\(my\\|local\\|our\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)" | ||
| 4781 | 3 font-lock-variable-name-face))) | 5992 | 3 font-lock-variable-name-face))) |
| 4782 | '("\\<for\\(each\\)?\\([ \t]+\\(my\\|local\\|our\\)\\)?[ \t]*\\(\\$[a-zA-Z_][a-zA-Z_0-9]*\\)[ \t]*(" | 5993 | '("\\<for\\(each\\)?\\([ \t]+\\(my\\|local\\|our\\)\\)?[ \t]*\\(\\$[a-zA-Z_][a-zA-Z_0-9]*\\)[ \t]*(" |
| 4783 | 4 font-lock-variable-name-face) | 5994 | 4 font-lock-variable-name-face) |
| @@ -4787,21 +5998,32 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4787 | (setq | 5998 | (setq |
| 4788 | t-font-lock-keywords-1 | 5999 | t-font-lock-keywords-1 |
| 4789 | (and (fboundp 'turn-on-font-lock) ; Check for newer font-lock | 6000 | (and (fboundp 'turn-on-font-lock) ; Check for newer font-lock |
| 4790 | (not cperl-xemacs-p) ; not yet as of XEmacs 19.12 | 6001 | ;; not yet as of XEmacs 19.12, works with 21.1.11 |
| 6002 | (or | ||
| 6003 | (not cperl-xemacs-p) | ||
| 6004 | (string< "21.1.9" emacs-version) | ||
| 6005 | (and (string< "21.1.10" emacs-version) | ||
| 6006 | (string< emacs-version "21.1.2"))) | ||
| 4791 | '( | 6007 | '( |
| 4792 | ("\\(\\([@%]\\|\$#\\)[a-zA-Z_:][a-zA-Z0-9_:]*\\)" 1 | 6008 | ("\\(\\([@%]\\|\$#\\)[a-zA-Z_:][a-zA-Z0-9_:]*\\)" 1 |
| 4793 | (if (eq (char-after (match-beginning 2)) ?%) | 6009 | (if (eq (char-after (match-beginning 2)) ?%) |
| 4794 | 'cperl-hash | 6010 | 'cperl-hash-face |
| 4795 | 'cperl-array) | 6011 | 'cperl-array-face) |
| 4796 | t) ; arrays and hashes | 6012 | t) ; arrays and hashes |
| 4797 | ("\\(\\([$@]+\\)[a-zA-Z_:][a-zA-Z0-9_:]*\\)[ \t]*\\([[{]\\)" | 6013 | ("\\(\\([$@]+\\)[a-zA-Z_:][a-zA-Z0-9_:]*\\)[ \t]*\\([[{]\\)" |
| 4798 | 1 | 6014 | 1 |
| 4799 | (if (= (- (match-end 2) (match-beginning 2)) 1) | 6015 | (if (= (- (match-end 2) (match-beginning 2)) 1) |
| 4800 | (if (eq (char-after (match-beginning 3)) ?{) | 6016 | (if (eq (char-after (match-beginning 3)) ?{) |
| 4801 | 'cperl-hash | 6017 | 'cperl-hash-face |
| 4802 | 'cperl-array) ; arrays and hashes | 6018 | 'cperl-array-face) ; arrays and hashes |
| 4803 | font-lock-variable-name-face) ; Just to put something | 6019 | font-lock-variable-name-face) ; Just to put something |
| 4804 | t) | 6020 | t) |
| 6021 | ("\\(@\\|\\$#\\)\\(\\$+\\([a-zA-Z_:][a-zA-Z0-9_:]*\\|[^ \t\n]\\)\\)" | ||
| 6022 | (1 cperl-array-face) | ||
| 6023 | (2 font-lock-variable-name-face)) | ||
| 6024 | ("\\(%\\)\\(\\$+\\([a-zA-Z_:][a-zA-Z0-9_:]*\\|[^ \t\n]\\)\\)" | ||
| 6025 | (1 cperl-hash-face) | ||
| 6026 | (2 font-lock-variable-name-face)) | ||
| 4805 | ;;("\\([smy]\\|tr\\)\\([^a-z_A-Z0-9]\\)\\(\\([^\n\\]*||\\)\\)\\2") | 6027 | ;;("\\([smy]\\|tr\\)\\([^a-z_A-Z0-9]\\)\\(\\([^\n\\]*||\\)\\)\\2") |
| 4806 | ;;; Too much noise from \s* @s[ and friends | 6028 | ;;; Too much noise from \s* @s[ and friends |
| 4807 | ;;("\\(\\<\\([msy]\\|tr\\)[ \t]*\\([^ \t\na-zA-Z0-9_]\\)\\|\\(/\\)\\)" | 6029 | ;;("\\(\\<\\([msy]\\|tr\\)[ \t]*\\([^ \t\na-zA-Z0-9_]\\)\\|\\(/\\)\\)" |
| @@ -4813,7 +6035,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4813 | (if cperl-highlight-variables-indiscriminately | 6035 | (if cperl-highlight-variables-indiscriminately |
| 4814 | (setq t-font-lock-keywords-1 | 6036 | (setq t-font-lock-keywords-1 |
| 4815 | (append t-font-lock-keywords-1 | 6037 | (append t-font-lock-keywords-1 |
| 4816 | (list '("[$*]{?\\(\\sw+\\)" 1 | 6038 | (list '("\\([$*]{?\\sw+\\)" 1 |
| 4817 | font-lock-variable-name-face))))) | 6039 | font-lock-variable-name-face))))) |
| 4818 | (setq cperl-font-lock-keywords-1 | 6040 | (setq cperl-font-lock-keywords-1 |
| 4819 | (if cperl-syntaxify-by-font-lock | 6041 | (if cperl-syntaxify-by-font-lock |
| @@ -4866,27 +6088,35 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4866 | [nil nil t t t] | 6088 | [nil nil t t t] |
| 4867 | nil | 6089 | nil |
| 4868 | [nil nil t t t]) | 6090 | [nil nil t t t]) |
| 6091 | (list 'font-lock-warning-face | ||
| 6092 | ["Pink" "Red" "Gray50" "LightGray"] | ||
| 6093 | ["gray20" "gray90" | ||
| 6094 | "gray80" "gray20"] | ||
| 6095 | [nil nil t t t] | ||
| 6096 | nil | ||
| 6097 | [nil nil t t t] | ||
| 6098 | ) | ||
| 4869 | (list 'font-lock-constant-face | 6099 | (list 'font-lock-constant-face |
| 4870 | ["CadetBlue" "Aquamarine" "Gray50" "LightGray"] | 6100 | ["CadetBlue" "Aquamarine" "Gray50" "LightGray"] |
| 4871 | nil | 6101 | nil |
| 4872 | [nil nil t t t] | 6102 | [nil nil t t t] |
| 4873 | nil | 6103 | nil |
| 4874 | [nil nil t t t]) | 6104 | [nil nil t t t]) |
| 4875 | (list 'cperl-nonoverridable | 6105 | (list 'cperl-nonoverridable-face |
| 4876 | ["chartreuse3" ("orchid1" "orange") | 6106 | ["chartreuse3" ("orchid1" "orange") |
| 4877 | nil "Gray80"] | 6107 | nil "Gray80"] |
| 4878 | [nil nil "gray90"] | 6108 | [nil nil "gray90"] |
| 4879 | [nil nil nil t t] | 6109 | [nil nil nil t t] |
| 4880 | [nil nil t t] | 6110 | [nil nil t t] |
| 4881 | [nil nil t t t]) | 6111 | [nil nil t t t]) |
| 4882 | (list 'cperl-array | 6112 | (list 'cperl-array-face |
| 4883 | ["blue" "yellow" nil "Gray80"] | 6113 | ["blue" "yellow" nil "Gray80"] |
| 4884 | ["lightyellow2" ("navy" "os2blue" "darkgreen") | 6114 | ["lightyellow2" ("navy" "os2blue" "darkgreen") |
| 4885 | "gray90"] | 6115 | "gray90"] |
| 4886 | t | 6116 | t |
| 4887 | nil | 6117 | nil |
| 4888 | nil) | 6118 | nil) |
| 4889 | (list 'cperl-hash | 6119 | (list 'cperl-hash-face |
| 4890 | ["red" "red" nil "Gray80"] | 6120 | ["red" "red" nil "Gray80"] |
| 4891 | ["lightyellow2" ("navy" "os2blue" "darkgreen") | 6121 | ["lightyellow2" ("navy" "os2blue" "darkgreen") |
| 4892 | "gray90"] | 6122 | "gray90"] |
| @@ -4909,15 +6139,17 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4909 | "Face for variable names") | 6139 | "Face for variable names") |
| 4910 | (cperl-force-face font-lock-type-face | 6140 | (cperl-force-face font-lock-type-face |
| 4911 | "Face for data types") | 6141 | "Face for data types") |
| 4912 | (cperl-force-face cperl-nonoverridable | 6142 | (cperl-force-face cperl-nonoverridable-face |
| 4913 | "Face for data types from another group") | 6143 | "Face for data types from another group") |
| 6144 | (cperl-force-face font-lock-warning-face | ||
| 6145 | "Face for things which should stand out") | ||
| 4914 | (cperl-force-face font-lock-comment-face | 6146 | (cperl-force-face font-lock-comment-face |
| 4915 | "Face for comments") | 6147 | "Face for comments") |
| 4916 | (cperl-force-face font-lock-function-name-face | 6148 | (cperl-force-face font-lock-function-name-face |
| 4917 | "Face for function names") | 6149 | "Face for function names") |
| 4918 | (cperl-force-face cperl-hash | 6150 | (cperl-force-face cperl-hash-face |
| 4919 | "Face for hashes") | 6151 | "Face for hashes") |
| 4920 | (cperl-force-face cperl-array | 6152 | (cperl-force-face cperl-array-face |
| 4921 | "Face for arrays") | 6153 | "Face for arrays") |
| 4922 | ;;(defvar font-lock-constant-face 'font-lock-constant-face) | 6154 | ;;(defvar font-lock-constant-face 'font-lock-constant-face) |
| 4923 | ;;(defvar font-lock-variable-name-face 'font-lock-variable-name-face) | 6155 | ;;(defvar font-lock-variable-name-face 'font-lock-variable-name-face) |
| @@ -4927,7 +6159,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4927 | ;; "Face to use for data types.")) | 6159 | ;; "Face to use for data types.")) |
| 4928 | ;;(or (boundp 'cperl-nonoverridable-face) | 6160 | ;;(or (boundp 'cperl-nonoverridable-face) |
| 4929 | ;; (defconst cperl-nonoverridable-face | 6161 | ;; (defconst cperl-nonoverridable-face |
| 4930 | ;; 'cperl-nonoverridable | 6162 | ;; 'cperl-nonoverridable-face |
| 4931 | ;; "Face to use for data types from another group.")) | 6163 | ;; "Face to use for data types from another group.")) |
| 4932 | ;;(if (not cperl-xemacs-p) nil | 6164 | ;;(if (not cperl-xemacs-p) nil |
| 4933 | ;; (or (boundp 'font-lock-comment-face) | 6165 | ;; (or (boundp 'font-lock-comment-face) |
| @@ -4943,24 +6175,24 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4943 | ;; 'font-lock-function-name-face | 6175 | ;; 'font-lock-function-name-face |
| 4944 | ;; "Face to use for function names."))) | 6176 | ;; "Face to use for function names."))) |
| 4945 | (if (and | 6177 | (if (and |
| 4946 | (not (cperl-is-face 'cperl-array)) | 6178 | (not (cperl-is-face 'cperl-array-face)) |
| 4947 | (cperl-is-face 'font-lock-emphasized-face)) | 6179 | (cperl-is-face 'font-lock-emphasized-face)) |
| 4948 | (copy-face 'font-lock-emphasized-face 'cperl-array)) | 6180 | (copy-face 'font-lock-emphasized-face 'cperl-array-face)) |
| 4949 | (if (and | 6181 | (if (and |
| 4950 | (not (cperl-is-face 'cperl-hash)) | 6182 | (not (cperl-is-face 'cperl-hash-face)) |
| 4951 | (cperl-is-face 'font-lock-other-emphasized-face)) | 6183 | (cperl-is-face 'font-lock-other-emphasized-face)) |
| 4952 | (copy-face 'font-lock-other-emphasized-face 'cperl-hash)) | 6184 | (copy-face 'font-lock-other-emphasized-face 'cperl-hash-face)) |
| 4953 | (if (and | 6185 | (if (and |
| 4954 | (not (cperl-is-face 'cperl-nonoverridable)) | 6186 | (not (cperl-is-face 'cperl-nonoverridable-face)) |
| 4955 | (cperl-is-face 'font-lock-other-type-face)) | 6187 | (cperl-is-face 'font-lock-other-type-face)) |
| 4956 | (copy-face 'font-lock-other-type-face 'cperl-nonoverridable)) | 6188 | (copy-face 'font-lock-other-type-face 'cperl-nonoverridable-face)) |
| 4957 | ;;(or (boundp 'cperl-hash-face) | 6189 | ;;(or (boundp 'cperl-hash-face) |
| 4958 | ;; (defconst cperl-hash-face | 6190 | ;; (defconst cperl-hash-face |
| 4959 | ;; 'cperl-hash | 6191 | ;; 'cperl-hash-face |
| 4960 | ;; "Face to use for hashes.")) | 6192 | ;; "Face to use for hashes.")) |
| 4961 | ;;(or (boundp 'cperl-array-face) | 6193 | ;;(or (boundp 'cperl-array-face) |
| 4962 | ;; (defconst cperl-array-face | 6194 | ;; (defconst cperl-array-face |
| 4963 | ;; 'cperl-array | 6195 | ;; 'cperl-array-face |
| 4964 | ;; "Face to use for arrays.")) | 6196 | ;; "Face to use for arrays.")) |
| 4965 | ;; Here we try to guess background | 6197 | ;; Here we try to guess background |
| 4966 | (let ((background | 6198 | (let ((background |
| @@ -4999,17 +6231,17 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 4999 | "pink"))) | 6231 | "pink"))) |
| 5000 | (t | 6232 | (t |
| 5001 | (set-face-background 'font-lock-type-face "gray90")))) | 6233 | (set-face-background 'font-lock-type-face "gray90")))) |
| 5002 | (if (cperl-is-face 'cperl-nonoverridable) | 6234 | (if (cperl-is-face 'cperl-nonoverridable-face) |
| 5003 | nil | 6235 | nil |
| 5004 | (copy-face 'font-lock-type-face 'cperl-nonoverridable) | 6236 | (copy-face 'font-lock-type-face 'cperl-nonoverridable-face) |
| 5005 | (cond | 6237 | (cond |
| 5006 | ((eq background 'light) | 6238 | ((eq background 'light) |
| 5007 | (set-face-foreground 'cperl-nonoverridable | 6239 | (set-face-foreground 'cperl-nonoverridable-face |
| 5008 | (if (x-color-defined-p "chartreuse3") | 6240 | (if (x-color-defined-p "chartreuse3") |
| 5009 | "chartreuse3" | 6241 | "chartreuse3" |
| 5010 | "chartreuse"))) | 6242 | "chartreuse"))) |
| 5011 | ((eq background 'dark) | 6243 | ((eq background 'dark) |
| 5012 | (set-face-foreground 'cperl-nonoverridable | 6244 | (set-face-foreground 'cperl-nonoverridable-face |
| 5013 | (if (x-color-defined-p "orchid1") | 6245 | (if (x-color-defined-p "orchid1") |
| 5014 | "orchid1" | 6246 | "orchid1" |
| 5015 | "orange"))))) | 6247 | "orange"))))) |
| @@ -5061,15 +6293,15 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 5061 | '(setq ps-bold-faces | 6293 | '(setq ps-bold-faces |
| 5062 | ;; font-lock-variable-name-face | 6294 | ;; font-lock-variable-name-face |
| 5063 | ;; font-lock-constant-face | 6295 | ;; font-lock-constant-face |
| 5064 | (append '(cperl-array cperl-hash) | 6296 | (append '(cperl-array-face cperl-hash-face) |
| 5065 | ps-bold-faces) | 6297 | ps-bold-faces) |
| 5066 | ps-italic-faces | 6298 | ps-italic-faces |
| 5067 | ;; font-lock-constant-face | 6299 | ;; font-lock-constant-face |
| 5068 | (append '(cperl-nonoverridable cperl-hash) | 6300 | (append '(cperl-nonoverridable-face cperl-hash-face) |
| 5069 | ps-italic-faces) | 6301 | ps-italic-faces) |
| 5070 | ps-underlined-faces | 6302 | ps-underlined-faces |
| 5071 | ;; font-lock-type-face | 6303 | ;; font-lock-type-face |
| 5072 | (append '(cperl-array cperl-hash underline cperl-nonoverridable) | 6304 | (append '(cperl-array-face cperl-hash-face underline cperl-nonoverridable-face) |
| 5073 | ps-underlined-faces)))) | 6305 | ps-underlined-faces)))) |
| 5074 | 6306 | ||
| 5075 | (defvar ps-print-face-extension-alist) | 6307 | (defvar ps-print-face-extension-alist) |
| @@ -5102,27 +6334,27 @@ Style of printout regulated by the variable `cperl-ps-print-face-properties'." | |||
| 5102 | ;;; (defvar ps-italic-faces nil) | 6334 | ;;; (defvar ps-italic-faces nil) |
| 5103 | ;;; (setq ps-bold-faces | 6335 | ;;; (setq ps-bold-faces |
| 5104 | ;;; (append '(font-lock-emphasized-face | 6336 | ;;; (append '(font-lock-emphasized-face |
| 5105 | ;;; cperl-array | 6337 | ;;; cperl-array-face |
| 5106 | ;;; font-lock-keyword-face | 6338 | ;;; font-lock-keyword-face |
| 5107 | ;;; font-lock-variable-name-face | 6339 | ;;; font-lock-variable-name-face |
| 5108 | ;;; font-lock-constant-face | 6340 | ;;; font-lock-constant-face |
| 5109 | ;;; font-lock-reference-face | 6341 | ;;; font-lock-reference-face |
| 5110 | ;;; font-lock-other-emphasized-face | 6342 | ;;; font-lock-other-emphasized-face |
| 5111 | ;;; cperl-hash) | 6343 | ;;; cperl-hash-face) |
| 5112 | ;;; ps-bold-faces)) | 6344 | ;;; ps-bold-faces)) |
| 5113 | ;;; (setq ps-italic-faces | 6345 | ;;; (setq ps-italic-faces |
| 5114 | ;;; (append '(cperl-nonoverridable | 6346 | ;;; (append '(cperl-nonoverridable-face |
| 5115 | ;;; font-lock-constant-face | 6347 | ;;; font-lock-constant-face |
| 5116 | ;;; font-lock-reference-face | 6348 | ;;; font-lock-reference-face |
| 5117 | ;;; font-lock-other-emphasized-face | 6349 | ;;; font-lock-other-emphasized-face |
| 5118 | ;;; cperl-hash) | 6350 | ;;; cperl-hash-face) |
| 5119 | ;;; ps-italic-faces)) | 6351 | ;;; ps-italic-faces)) |
| 5120 | ;;; (setq ps-underlined-faces | 6352 | ;;; (setq ps-underlined-faces |
| 5121 | ;;; (append '(font-lock-emphasized-face | 6353 | ;;; (append '(font-lock-emphasized-face |
| 5122 | ;;; cperl-array | 6354 | ;;; cperl-array-face |
| 5123 | ;;; font-lock-other-emphasized-face | 6355 | ;;; font-lock-other-emphasized-face |
| 5124 | ;;; cperl-hash | 6356 | ;;; cperl-hash-face |
| 5125 | ;;; cperl-nonoverridable font-lock-type-face) | 6357 | ;;; cperl-nonoverridable-face font-lock-type-face) |
| 5126 | ;;; ps-underlined-faces)) | 6358 | ;;; ps-underlined-faces)) |
| 5127 | ;;; (cons 'font-lock-type-face ps-underlined-faces)) | 6359 | ;;; (cons 'font-lock-type-face ps-underlined-faces)) |
| 5128 | 6360 | ||
| @@ -5132,79 +6364,211 @@ Style of printout regulated by the variable `cperl-ps-print-face-properties'." | |||
| 5132 | (defconst cperl-styles-entries | 6364 | (defconst cperl-styles-entries |
| 5133 | '(cperl-indent-level cperl-brace-offset cperl-continued-brace-offset | 6365 | '(cperl-indent-level cperl-brace-offset cperl-continued-brace-offset |
| 5134 | cperl-label-offset cperl-extra-newline-before-brace | 6366 | cperl-label-offset cperl-extra-newline-before-brace |
| 6367 | cperl-extra-newline-before-brace-multiline | ||
| 5135 | cperl-merge-trailing-else | 6368 | cperl-merge-trailing-else |
| 5136 | cperl-continued-statement-offset)) | 6369 | cperl-continued-statement-offset)) |
| 5137 | 6370 | ||
| 6371 | (defconst cperl-style-examples | ||
| 6372 | "##### Numbers etc are: cperl-indent-level cperl-brace-offset | ||
| 6373 | ##### cperl-continued-brace-offset cperl-label-offset | ||
| 6374 | ##### cperl-continued-statement-offset | ||
| 6375 | ##### cperl-merge-trailing-else cperl-extra-newline-before-brace | ||
| 6376 | |||
| 6377 | ########### (Do not forget cperl-extra-newline-before-brace-multiline) | ||
| 6378 | |||
| 6379 | ### CPerl (=GNU - extra-newline-before-brace + merge-trailing-else) 2/0/0/-2/2/t/nil | ||
| 6380 | if (foo) { | ||
| 6381 | bar | ||
| 6382 | baz; | ||
| 6383 | label: | ||
| 6384 | { | ||
| 6385 | boon; | ||
| 6386 | } | ||
| 6387 | } else { | ||
| 6388 | stop; | ||
| 6389 | } | ||
| 6390 | |||
| 6391 | ### PerlStyle (=CPerl with 4 as indent) 4/0/0/-4/4/t/nil | ||
| 6392 | if (foo) { | ||
| 6393 | bar | ||
| 6394 | baz; | ||
| 6395 | label: | ||
| 6396 | { | ||
| 6397 | boon; | ||
| 6398 | } | ||
| 6399 | } else { | ||
| 6400 | stop; | ||
| 6401 | } | ||
| 6402 | |||
| 6403 | ### GNU 2/0/0/-2/2/nil/t | ||
| 6404 | if (foo) | ||
| 6405 | { | ||
| 6406 | bar | ||
| 6407 | baz; | ||
| 6408 | label: | ||
| 6409 | { | ||
| 6410 | boon; | ||
| 6411 | } | ||
| 6412 | } | ||
| 6413 | else | ||
| 6414 | { | ||
| 6415 | stop; | ||
| 6416 | } | ||
| 6417 | |||
| 6418 | ### C++ (=PerlStyle with braces aligned with control words) 4/0/-4/-4/4/nil/t | ||
| 6419 | if (foo) | ||
| 6420 | { | ||
| 6421 | bar | ||
| 6422 | baz; | ||
| 6423 | label: | ||
| 6424 | { | ||
| 6425 | boon; | ||
| 6426 | } | ||
| 6427 | } | ||
| 6428 | else | ||
| 6429 | { | ||
| 6430 | stop; | ||
| 6431 | } | ||
| 6432 | |||
| 6433 | ### BSD (=C++, but will not change preexisting merge-trailing-else | ||
| 6434 | ### and extra-newline-before-brace ) 4/0/-4/-4/4 | ||
| 6435 | if (foo) | ||
| 6436 | { | ||
| 6437 | bar | ||
| 6438 | baz; | ||
| 6439 | label: | ||
| 6440 | { | ||
| 6441 | boon; | ||
| 6442 | } | ||
| 6443 | } | ||
| 6444 | else | ||
| 6445 | { | ||
| 6446 | stop; | ||
| 6447 | } | ||
| 6448 | |||
| 6449 | ### K&R (=C++ with indent 5 - merge-trailing-else, but will not | ||
| 6450 | ### change preexisting extra-newline-before-brace) 5/0/-5/-5/5/nil | ||
| 6451 | if (foo) | ||
| 6452 | { | ||
| 6453 | bar | ||
| 6454 | baz; | ||
| 6455 | label: | ||
| 6456 | { | ||
| 6457 | boon; | ||
| 6458 | } | ||
| 6459 | } | ||
| 6460 | else | ||
| 6461 | { | ||
| 6462 | stop; | ||
| 6463 | } | ||
| 6464 | |||
| 6465 | ### Whitesmith (=PerlStyle, but will not change preexisting | ||
| 6466 | ### extra-newline-before-brace and merge-trailing-else) 4/0/0/-4/4 | ||
| 6467 | if (foo) | ||
| 6468 | { | ||
| 6469 | bar | ||
| 6470 | baz; | ||
| 6471 | label: | ||
| 6472 | { | ||
| 6473 | boon; | ||
| 6474 | } | ||
| 6475 | } | ||
| 6476 | else | ||
| 6477 | { | ||
| 6478 | stop; | ||
| 6479 | } | ||
| 6480 | " | ||
| 6481 | "Examples of if/else with different indent styles (with v4.23).") | ||
| 6482 | |||
| 5138 | (defconst cperl-style-alist | 6483 | (defconst cperl-style-alist |
| 5139 | '(("CPerl" ; =GNU without extra-newline-before-brace | 6484 | '(("CPerl" ;; =GNU - extra-newline-before-brace + cperl-merge-trailing-else |
| 5140 | (cperl-indent-level . 2) | 6485 | (cperl-indent-level . 2) |
| 5141 | (cperl-brace-offset . 0) | 6486 | (cperl-brace-offset . 0) |
| 5142 | (cperl-continued-brace-offset . 0) | 6487 | (cperl-continued-brace-offset . 0) |
| 5143 | (cperl-label-offset . -2) | 6488 | (cperl-label-offset . -2) |
| 6489 | (cperl-continued-statement-offset . 2) | ||
| 5144 | (cperl-extra-newline-before-brace . nil) | 6490 | (cperl-extra-newline-before-brace . nil) |
| 5145 | (cperl-merge-trailing-else . t) | 6491 | (cperl-extra-newline-before-brace-multiline . nil) |
| 5146 | (cperl-continued-statement-offset . 2)) | 6492 | (cperl-merge-trailing-else . t)) |
| 6493 | |||
| 5147 | ("PerlStyle" ; CPerl with 4 as indent | 6494 | ("PerlStyle" ; CPerl with 4 as indent |
| 5148 | (cperl-indent-level . 4) | 6495 | (cperl-indent-level . 4) |
| 5149 | (cperl-brace-offset . 0) | 6496 | (cperl-brace-offset . 0) |
| 5150 | (cperl-continued-brace-offset . 0) | 6497 | (cperl-continued-brace-offset . 0) |
| 5151 | (cperl-label-offset . -4) | 6498 | (cperl-label-offset . -4) |
| 6499 | (cperl-continued-statement-offset . 4) | ||
| 5152 | (cperl-extra-newline-before-brace . nil) | 6500 | (cperl-extra-newline-before-brace . nil) |
| 5153 | (cperl-merge-trailing-else . t) | 6501 | (cperl-extra-newline-before-brace-multiline . nil) |
| 5154 | (cperl-continued-statement-offset . 4)) | 6502 | (cperl-merge-trailing-else . t)) |
| 6503 | |||
| 5155 | ("GNU" | 6504 | ("GNU" |
| 5156 | (cperl-indent-level . 2) | 6505 | (cperl-indent-level . 2) |
| 5157 | (cperl-brace-offset . 0) | 6506 | (cperl-brace-offset . 0) |
| 5158 | (cperl-continued-brace-offset . 0) | 6507 | (cperl-continued-brace-offset . 0) |
| 5159 | (cperl-label-offset . -2) | 6508 | (cperl-label-offset . -2) |
| 6509 | (cperl-continued-statement-offset . 2) | ||
| 5160 | (cperl-extra-newline-before-brace . t) | 6510 | (cperl-extra-newline-before-brace . t) |
| 5161 | (cperl-merge-trailing-else . nil) | 6511 | (cperl-extra-newline-before-brace-multiline . t) |
| 5162 | (cperl-continued-statement-offset . 2)) | 6512 | (cperl-merge-trailing-else . nil)) |
| 6513 | |||
| 5163 | ("K&R" | 6514 | ("K&R" |
| 5164 | (cperl-indent-level . 5) | 6515 | (cperl-indent-level . 5) |
| 5165 | (cperl-brace-offset . 0) | 6516 | (cperl-brace-offset . 0) |
| 5166 | (cperl-continued-brace-offset . -5) | 6517 | (cperl-continued-brace-offset . -5) |
| 5167 | (cperl-label-offset . -5) | 6518 | (cperl-label-offset . -5) |
| 6519 | (cperl-continued-statement-offset . 5) | ||
| 5168 | ;;(cperl-extra-newline-before-brace . nil) ; ??? | 6520 | ;;(cperl-extra-newline-before-brace . nil) ; ??? |
| 5169 | (cperl-merge-trailing-else . nil) | 6521 | ;;(cperl-extra-newline-before-brace-multiline . nil) |
| 5170 | (cperl-continued-statement-offset . 5)) | 6522 | (cperl-merge-trailing-else . nil)) |
| 6523 | |||
| 5171 | ("BSD" | 6524 | ("BSD" |
| 5172 | (cperl-indent-level . 4) | 6525 | (cperl-indent-level . 4) |
| 5173 | (cperl-brace-offset . 0) | 6526 | (cperl-brace-offset . 0) |
| 5174 | (cperl-continued-brace-offset . -4) | 6527 | (cperl-continued-brace-offset . -4) |
| 5175 | (cperl-label-offset . -4) | 6528 | (cperl-label-offset . -4) |
| 6529 | (cperl-continued-statement-offset . 4) | ||
| 5176 | ;;(cperl-extra-newline-before-brace . nil) ; ??? | 6530 | ;;(cperl-extra-newline-before-brace . nil) ; ??? |
| 5177 | (cperl-continued-statement-offset . 4)) | 6531 | ;;(cperl-extra-newline-before-brace-multiline . nil) |
| 6532 | ;;(cperl-merge-trailing-else . nil) ; ??? | ||
| 6533 | ) | ||
| 6534 | |||
| 5178 | ("C++" | 6535 | ("C++" |
| 5179 | (cperl-indent-level . 4) | 6536 | (cperl-indent-level . 4) |
| 5180 | (cperl-brace-offset . 0) | 6537 | (cperl-brace-offset . 0) |
| 5181 | (cperl-continued-brace-offset . -4) | 6538 | (cperl-continued-brace-offset . -4) |
| 5182 | (cperl-label-offset . -4) | 6539 | (cperl-label-offset . -4) |
| 5183 | (cperl-continued-statement-offset . 4) | 6540 | (cperl-continued-statement-offset . 4) |
| 5184 | (cperl-merge-trailing-else . nil) | 6541 | (cperl-extra-newline-before-brace . t) |
| 5185 | (cperl-extra-newline-before-brace . t)) | 6542 | (cperl-extra-newline-before-brace-multiline . t) |
| 5186 | ("Current") | 6543 | (cperl-merge-trailing-else . nil)) |
| 6544 | |||
| 5187 | ("Whitesmith" | 6545 | ("Whitesmith" |
| 5188 | (cperl-indent-level . 4) | 6546 | (cperl-indent-level . 4) |
| 5189 | (cperl-brace-offset . 0) | 6547 | (cperl-brace-offset . 0) |
| 5190 | (cperl-continued-brace-offset . 0) | 6548 | (cperl-continued-brace-offset . 0) |
| 5191 | (cperl-label-offset . -4) | 6549 | (cperl-label-offset . -4) |
| 6550 | (cperl-continued-statement-offset . 4) | ||
| 5192 | ;;(cperl-extra-newline-before-brace . nil) ; ??? | 6551 | ;;(cperl-extra-newline-before-brace . nil) ; ??? |
| 5193 | (cperl-continued-statement-offset . 4))) | 6552 | ;;(cperl-extra-newline-before-brace-multiline . nil) |
| 5194 | "(Experimental) list of variables to set to get a particular indentation style. | 6553 | ;;(cperl-merge-trailing-else . nil) ; ??? |
| 5195 | Should be used via `cperl-set-style' or via Perl menu.") | 6554 | ) |
| 6555 | ("Current")) | ||
| 6556 | "List of variables to set to get a particular indentation style. | ||
| 6557 | Should be used via `cperl-set-style' or via Perl menu. | ||
| 6558 | |||
| 6559 | See examples in `cperl-style-examples'.") | ||
| 5196 | 6560 | ||
| 5197 | (defun cperl-set-style (style) | 6561 | (defun cperl-set-style (style) |
| 5198 | "Set CPerl mode variables to use one of several different indentation styles. | 6562 | "Set CPerl mode variables to use one of several different indentation styles. |
| 5199 | The arguments are a string representing the desired style. | 6563 | The arguments are a string representing the desired style. |
| 5200 | The list of styles is in `cperl-style-alist', available styles | 6564 | The list of styles is in `cperl-style-alist', available styles |
| 5201 | are GNU, K&R, BSD, C++ and Whitesmith. | 6565 | are CPerl, PerlStyle, GNU, K&R, BSD, C++ and Whitesmith. |
| 5202 | 6566 | ||
| 5203 | The current value of style is memorized (unless there is a memorized | 6567 | The current value of style is memorized (unless there is a memorized |
| 5204 | data already), may be restored by `cperl-set-style-back'. | 6568 | data already), may be restored by `cperl-set-style-back'. |
| 5205 | 6569 | ||
| 5206 | Chosing \"Current\" style will not change style, so this may be used for | 6570 | Chosing \"Current\" style will not change style, so this may be used for |
| 5207 | side-effect of memorizing only." | 6571 | side-effect of memorizing only. Examples in `cperl-style-examples'." |
| 5208 | (interactive | 6572 | (interactive |
| 5209 | (let ((list (mapcar (function (lambda (elt) (list (car elt)))) | 6573 | (let ((list (mapcar (function (lambda (elt) (list (car elt)))) |
| 5210 | cperl-style-alist))) | 6574 | cperl-style-alist))) |
| @@ -5375,6 +6739,8 @@ Customized by setting variables `cperl-shrink-wrap-info-frame', | |||
| 5375 | (match-beginning 1) (match-end 1))) | 6739 | (match-beginning 1) (match-end 1))) |
| 5376 | 6740 | ||
| 5377 | (defun cperl-imenu-on-info () | 6741 | (defun cperl-imenu-on-info () |
| 6742 | "Shows imenu for Perl Info Buffer. | ||
| 6743 | Opens Perl Info buffer if needed." | ||
| 5378 | (interactive) | 6744 | (interactive) |
| 5379 | (let* ((buffer (current-buffer)) | 6745 | (let* ((buffer (current-buffer)) |
| 5380 | imenu-create-index-function | 6746 | imenu-create-index-function |
| @@ -5414,7 +6780,7 @@ If STEP is nil, `cperl-lineup-step' will be used | |||
| 5414 | \(or `cperl-indent-level', if `cperl-lineup-step' is nil). | 6780 | \(or `cperl-indent-level', if `cperl-lineup-step' is nil). |
| 5415 | Will not move the position at the start to the left." | 6781 | Will not move the position at the start to the left." |
| 5416 | (interactive "r") | 6782 | (interactive "r") |
| 5417 | (let (search col tcol seen b e) | 6783 | (let (search col tcol seen b) |
| 5418 | (save-excursion | 6784 | (save-excursion |
| 5419 | (goto-char end) | 6785 | (goto-char end) |
| 5420 | (end-of-line) | 6786 | (end-of-line) |
| @@ -5452,22 +6818,25 @@ Will not move the position at the start to the left." | |||
| 5452 | (if (/= (% col step) 0) (setq step (* step (1+ (/ col step))))) | 6818 | (if (/= (% col step) 0) (setq step (* step (1+ (/ col step))))) |
| 5453 | (while | 6819 | (while |
| 5454 | (progn | 6820 | (progn |
| 5455 | (setq e (point)) | 6821 | (cperl-make-indent col) |
| 5456 | (skip-chars-backward " \t") | ||
| 5457 | (delete-region (point) e) | ||
| 5458 | (indent-to-column col) ;(make-string (- col (current-column)) ?\s)) | ||
| 5459 | (beginning-of-line 2) | 6822 | (beginning-of-line 2) |
| 5460 | (and (< (point) end) | 6823 | (and (< (point) end) |
| 5461 | (re-search-forward search end t) | 6824 | (re-search-forward search end t) |
| 5462 | (goto-char (match-beginning 0)))))))) ; No body | 6825 | (goto-char (match-beginning 0)))))))) ; No body |
| 5463 | 6826 | ||
| 5464 | (defun cperl-etags (&optional add all files) | 6827 | (defun cperl-etags (&optional add all files) ;; NOT USED??? |
| 5465 | "Run etags with appropriate options for Perl files. | 6828 | "Run etags with appropriate options for Perl files. |
| 5466 | If optional argument ALL is `recursive', will process Perl files | 6829 | If optional argument ALL is `recursive', will process Perl files |
| 5467 | in subdirectories too." | 6830 | in subdirectories too." |
| 5468 | (interactive) | 6831 | (interactive) |
| 5469 | (let ((cmd "etags") | 6832 | (let ((cmd "etags") |
| 5470 | (args '("-l" "none" "-r" "/\\<\\(package\\|sub\\)[ \\t]+\\(\\([a-zA-Z0-9:_]*::\\)?\\([a-zA-Z0-9_]+\\)[ \\t]*\\(([^()]*)[ \t]*\\)?\\([{#]\\|$\\)\\)/\\4/")) | 6833 | (args '("-l" "none" "-r" |
| 6834 | ;; 1=fullname 2=package? 3=name 4=proto? 5=attrs? (VERY APPROX!) | ||
| 6835 | "/\\<sub[ \\t]+\\(\\([a-zA-Z0-9:_]*::\\)?\\([a-zA-Z0-9_]+\\)\\)[ \\t]*\\(([^()]*)[ \t]*\\)?\\([ \t]*:[^#{;]*\\)?\\([{#]\\|$\\)/\\3/" | ||
| 6836 | "-r" | ||
| 6837 | "/\\<package[ \\t]+\\(\\([a-zA-Z0-9:_]*::\\)?\\([a-zA-Z0-9_]+\\)\\)[ \\t]*\\([#;]\\|$\\)/\\1/" | ||
| 6838 | "-r" | ||
| 6839 | "/\\<\\(package\\)[ \\t]*;/\\1;/")) | ||
| 5471 | res) | 6840 | res) |
| 5472 | (if add (setq args (cons "-a" args))) | 6841 | (if add (setq args (cons "-a" args))) |
| 5473 | (or files (setq files (list buffer-file-name))) | 6842 | (or files (setq files (list buffer-file-name))) |
| @@ -5539,6 +6908,29 @@ Delay of auto-help controlled by `cperl-lazy-help-time'." | |||
| 5539 | (message "indent-region/indent-sexp will %sbe automatically fix whitespace." | 6908 | (message "indent-region/indent-sexp will %sbe automatically fix whitespace." |
| 5540 | (if cperl-indent-region-fix-constructs "" "not "))) | 6909 | (if cperl-indent-region-fix-constructs "" "not "))) |
| 5541 | 6910 | ||
| 6911 | (defun cperl-toggle-set-debug-unwind (arg &optional backtrace) | ||
| 6912 | "Toggle (or, with numeric argument, set) debugging state of syntaxification. | ||
| 6913 | Nonpositive numeric argument disables debugging messages. The message | ||
| 6914 | summarizes which regions it was decided to rescan for syntactic constructs. | ||
| 6915 | |||
| 6916 | The message looks like this: | ||
| 6917 | |||
| 6918 | Syxify req=123..138 actual=101..146 done-to: 112=>146 statepos: 73=>117 | ||
| 6919 | |||
| 6920 | Numbers are character positions in the buffer. REQ provides the range to | ||
| 6921 | rescan requested by `font-lock'. ACTUAL is the range actually resyntaxified; | ||
| 6922 | for correct operation it should start and end outside any special syntactic | ||
| 6923 | construct. DONE-TO and STATEPOS indicate changes to internal caches maintained | ||
| 6924 | by CPerl." | ||
| 6925 | (interactive "P") | ||
| 6926 | (or arg | ||
| 6927 | (setq arg (if (eq cperl-syntaxify-by-font-lock | ||
| 6928 | (if backtrace 'backtrace 'message)) 0 1))) | ||
| 6929 | (setq arg (if (> arg 0) (if backtrace 'backtrace 'message) t)) | ||
| 6930 | (setq cperl-syntaxify-by-font-lock arg) | ||
| 6931 | (message "Debugging messages of syntax unwind %sabled." | ||
| 6932 | (if (eq arg t) "dis" "en"))) | ||
| 6933 | |||
| 5542 | ;;;; Tags file creation. | 6934 | ;;;; Tags file creation. |
| 5543 | 6935 | ||
| 5544 | (defvar cperl-tmp-buffer " *cperl-tmp*") | 6936 | (defvar cperl-tmp-buffer " *cperl-tmp*") |
| @@ -5679,13 +7071,22 @@ Delay of auto-help controlled by `cperl-lazy-help-time'." | |||
| 5679 | ret)))) | 7071 | ret)))) |
| 5680 | 7072 | ||
| 5681 | (defun cperl-add-tags-recurse-noxs () | 7073 | (defun cperl-add-tags-recurse-noxs () |
| 5682 | "Add to TAGS data for Perl and XSUB files in the current directory and kids. | 7074 | "Add to TAGS data for \"pure\" Perl files in the current directory and kids. |
| 5683 | Use as | 7075 | Use as |
| 5684 | emacs -batch -q -no-site-file -l emacs/cperl-mode.el \ | 7076 | emacs -batch -q -no-site-file -l emacs/cperl-mode.el \ |
| 5685 | -f cperl-add-tags-recurse | 7077 | -f cperl-add-tags-recurse-noxs |
| 5686 | " | 7078 | " |
| 5687 | (cperl-write-tags nil nil t t nil t)) | 7079 | (cperl-write-tags nil nil t t nil t)) |
| 5688 | 7080 | ||
| 7081 | (defun cperl-add-tags-recurse-noxs-fullpath () | ||
| 7082 | "Add to TAGS data for \"pure\" Perl in the current directory and kids. | ||
| 7083 | Writes down fullpath, so TAGS is relocatable (but if the build directory | ||
| 7084 | is relocated, the file TAGS inside it breaks). Use as | ||
| 7085 | emacs -batch -q -no-site-file -l emacs/cperl-mode.el \ | ||
| 7086 | -f cperl-add-tags-recurse-noxs-fullpath | ||
| 7087 | " | ||
| 7088 | (cperl-write-tags nil nil t t nil t "")) | ||
| 7089 | |||
| 5689 | (defun cperl-add-tags-recurse () | 7090 | (defun cperl-add-tags-recurse () |
| 5690 | "Add to TAGS file data for Perl files in the current directory and kids. | 7091 | "Add to TAGS file data for Perl files in the current directory and kids. |
| 5691 | Use as | 7092 | Use as |
| @@ -5855,9 +7256,9 @@ One may build such TAGS files from CPerl mode menu." | |||
| 5855 | (cperl-tags-hier-fill)) | 7256 | (cperl-tags-hier-fill)) |
| 5856 | (or tags-table-list | 7257 | (or tags-table-list |
| 5857 | (call-interactively 'visit-tags-table)) | 7258 | (call-interactively 'visit-tags-table)) |
| 5858 | (mapcar | 7259 | (mapcar |
| 5859 | (function | 7260 | (function |
| 5860 | (lambda (tagsfile) | 7261 | (lambda (tagsfile) |
| 5861 | (message "Updating list of classes... %s" tagsfile) | 7262 | (message "Updating list of classes... %s" tagsfile) |
| 5862 | (set-buffer (get-file-buffer tagsfile)) | 7263 | (set-buffer (get-file-buffer tagsfile)) |
| 5863 | (cperl-tags-hier-fill))) | 7264 | (cperl-tags-hier-fill))) |
| @@ -6019,7 +7420,7 @@ One may build such TAGS files from CPerl mode menu." | |||
| 6019 | '("[^-\t <>=+]\\(--\\|\\+\\+\\)" ; var-- var++ | 7420 | '("[^-\t <>=+]\\(--\\|\\+\\+\\)" ; var-- var++ |
| 6020 | "[a-zA-Z0-9_][|&][a-zA-Z0-9_$]" ; abc|def abc&def are often used. | 7421 | "[a-zA-Z0-9_][|&][a-zA-Z0-9_$]" ; abc|def abc&def are often used. |
| 6021 | "&[(a-zA-Z0-9_$]" ; &subroutine &(var->field) | 7422 | "&[(a-zA-Z0-9_$]" ; &subroutine &(var->field) |
| 6022 | "<\\$?\\sw+\\(\\.\\sw+\\)?>" ; <IN> <stdin.h> | 7423 | "<\\$?\\sw+\\(\\.\\(\\sw\\|_\\)+\\)?>" ; <IN> <stdin.h> |
| 6023 | "-[a-zA-Z][ \t]+[_$\"'`a-zA-Z]" ; -f file, -t STDIN | 7424 | "-[a-zA-Z][ \t]+[_$\"'`a-zA-Z]" ; -f file, -t STDIN |
| 6024 | "-[0-9]" ; -5 | 7425 | "-[0-9]" ; -5 |
| 6025 | "\\+\\+" ; ++var | 7426 | "\\+\\+" ; ++var |
| @@ -6051,8 +7452,7 @@ Currently it is tuned to C and Perl syntax." | |||
| 6051 | (interactive) | 7452 | (interactive) |
| 6052 | (let (found-bad (p (point))) | 7453 | (let (found-bad (p (point))) |
| 6053 | (setq last-nonmenu-event 13) ; To disable popup | 7454 | (setq last-nonmenu-event 13) ; To disable popup |
| 6054 | (with-no-warnings ; It is useful to push the mark here. | 7455 | (goto-char (point-min)) |
| 6055 | (beginning-of-buffer)) | ||
| 6056 | (map-y-or-n-p "Insert space here? " | 7456 | (map-y-or-n-p "Insert space here? " |
| 6057 | (lambda (arg) (insert " ")) | 7457 | (lambda (arg) (insert " ")) |
| 6058 | 'cperl-next-bad-style | 7458 | 'cperl-next-bad-style |
| @@ -6448,7 +7848,7 @@ endservent | |||
| 6448 | eof[([FILEHANDLE])] | 7848 | eof[([FILEHANDLE])] |
| 6449 | ... eq ... String equality. | 7849 | ... eq ... String equality. |
| 6450 | eval(EXPR) or eval { BLOCK } | 7850 | eval(EXPR) or eval { BLOCK } |
| 6451 | exec(LIST) | 7851 | exec([TRUENAME] ARGV0, ARGVs) or exec(SHELL_COMMAND_LINE) |
| 6452 | exit(EXPR) | 7852 | exit(EXPR) |
| 6453 | exp(EXPR) | 7853 | exp(EXPR) |
| 6454 | fcntl(FILEHANDLE,FUNCTION,SCALAR) | 7854 | fcntl(FILEHANDLE,FUNCTION,SCALAR) |
| @@ -6584,7 +7984,7 @@ substr(EXPR,OFFSET[,LEN]) | |||
| 6584 | symlink(OLDFILE,NEWFILE) | 7984 | symlink(OLDFILE,NEWFILE) |
| 6585 | syscall(LIST) | 7985 | syscall(LIST) |
| 6586 | sysread(FILEHANDLE,SCALAR,LENGTH[,OFFSET]) | 7986 | sysread(FILEHANDLE,SCALAR,LENGTH[,OFFSET]) |
| 6587 | system(LIST) | 7987 | system([TRUENAME] ARGV0 [,ARGV]) or system(SHELL_COMMAND_LINE) |
| 6588 | syswrite(FILEHANDLE,SCALAR,LENGTH[,OFFSET]) | 7988 | syswrite(FILEHANDLE,SCALAR,LENGTH[,OFFSET]) |
| 6589 | tell[(FILEHANDLE)] | 7989 | tell[(FILEHANDLE)] |
| 6590 | telldir(DIRHANDLE) | 7990 | telldir(DIRHANDLE) |
| @@ -6685,7 +8085,7 @@ prototype \\&SUB Returns prototype of the function given a reference. | |||
| 6685 | ;; b is before the starting delimiter, e before the ending | 8085 | ;; b is before the starting delimiter, e before the ending |
| 6686 | ;; e should be a marker, may be changed, but remains "correct". | 8086 | ;; e should be a marker, may be changed, but remains "correct". |
| 6687 | ;; EMBED is nil iff we process the whole REx. | 8087 | ;; EMBED is nil iff we process the whole REx. |
| 6688 | ;; The REx is guarantied to have //x | 8088 | ;; The REx is guaranteed to have //x |
| 6689 | ;; LEVEL shows how many levels deep to go | 8089 | ;; LEVEL shows how many levels deep to go |
| 6690 | ;; position at enter and at leave is not defined | 8090 | ;; position at enter and at leave is not defined |
| 6691 | (let (s c tmp (m (make-marker)) (m1 (make-marker)) c1 spaces inline code pos) | 8091 | (let (s c tmp (m (make-marker)) (m1 (make-marker)) c1 spaces inline code pos) |
| @@ -6714,7 +8114,7 @@ prototype \\&SUB Returns prototype of the function given a reference. | |||
| 6714 | (goto-char e) | 8114 | (goto-char e) |
| 6715 | (delete-horizontal-space) | 8115 | (delete-horizontal-space) |
| 6716 | (insert "\n") | 8116 | (insert "\n") |
| 6717 | (indent-to-column c) | 8117 | (cperl-make-indent c) |
| 6718 | (set-marker e (point)))) | 8118 | (set-marker e (point)))) |
| 6719 | (goto-char b) | 8119 | (goto-char b) |
| 6720 | (end-of-line 2) | 8120 | (end-of-line 2) |
| @@ -6724,7 +8124,7 @@ prototype \\&SUB Returns prototype of the function given a reference. | |||
| 6724 | inline t) | 8124 | inline t) |
| 6725 | (skip-chars-forward " \t") | 8125 | (skip-chars-forward " \t") |
| 6726 | (delete-region s (point)) | 8126 | (delete-region s (point)) |
| 6727 | (indent-to-column c1) | 8127 | (cperl-make-indent c1) |
| 6728 | (while (and | 8128 | (while (and |
| 6729 | inline | 8129 | inline |
| 6730 | (looking-at | 8130 | (looking-at |
| @@ -6750,6 +8150,16 @@ prototype \\&SUB Returns prototype of the function given a reference. | |||
| 6750 | (eq (preceding-char) ?\{))) | 8150 | (eq (preceding-char) ?\{))) |
| 6751 | (forward-char -1) | 8151 | (forward-char -1) |
| 6752 | (forward-sexp 1)) | 8152 | (forward-sexp 1)) |
| 8153 | ((and ; [], already syntaxified | ||
| 8154 | (match-beginning 6) | ||
| 8155 | cperl-regexp-scan | ||
| 8156 | cperl-use-syntax-table-text-property) | ||
| 8157 | (forward-char -1) | ||
| 8158 | (forward-sexp 1) | ||
| 8159 | (or (eq (preceding-char) ?\]) | ||
| 8160 | (error "[]-group not terminated")) | ||
| 8161 | (re-search-forward | ||
| 8162 | "\\=\\([*+?]\\|{[0-9]+\\(,[0-9]*\\)?}\\)\\??" e t)) | ||
| 6753 | ((match-beginning 6) ; [] | 8163 | ((match-beginning 6) ; [] |
| 6754 | (setq tmp (point)) | 8164 | (setq tmp (point)) |
| 6755 | (if (looking-at "\\^?\\]") | 8165 | (if (looking-at "\\^?\\]") |
| @@ -6763,12 +8173,8 @@ prototype \\&SUB Returns prototype of the function given a reference. | |||
| 6763 | (setq pos t))) | 8173 | (setq pos t))) |
| 6764 | (or (eq (preceding-char) ?\]) | 8174 | (or (eq (preceding-char) ?\]) |
| 6765 | (error "[]-group not terminated")) | 8175 | (error "[]-group not terminated")) |
| 6766 | (if (eq (following-char) ?\{) | 8176 | (re-search-forward |
| 6767 | (progn | 8177 | "\\=\\([*+?]\\|{[0-9]+\\(,[0-9]*\\)?}\\)\\??" e t)) |
| 6768 | (forward-sexp 1) | ||
| 6769 | (and (eq (following-char) ??) | ||
| 6770 | (forward-char 1))) | ||
| 6771 | (re-search-forward "\\=\\([*+?]\\??\\)" e t))) | ||
| 6772 | ((match-beginning 7) ; () | 8178 | ((match-beginning 7) ; () |
| 6773 | (goto-char (match-beginning 0)) | 8179 | (goto-char (match-beginning 0)) |
| 6774 | (setq pos (current-column)) | 8180 | (setq pos (current-column)) |
| @@ -6776,7 +8182,7 @@ prototype \\&SUB Returns prototype of the function given a reference. | |||
| 6776 | (progn | 8182 | (progn |
| 6777 | (delete-horizontal-space) | 8183 | (delete-horizontal-space) |
| 6778 | (insert "\n") | 8184 | (insert "\n") |
| 6779 | (indent-to-column c1))) | 8185 | (cperl-make-indent c1))) |
| 6780 | (setq tmp (point)) | 8186 | (setq tmp (point)) |
| 6781 | (forward-sexp 1) | 8187 | (forward-sexp 1) |
| 6782 | ;; (or (forward-sexp 1) | 8188 | ;; (or (forward-sexp 1) |
| @@ -6836,7 +8242,7 @@ prototype \\&SUB Returns prototype of the function given a reference. | |||
| 6836 | (insert "\n")) | 8242 | (insert "\n")) |
| 6837 | ;; first at line | 8243 | ;; first at line |
| 6838 | (delete-region (point) tmp)) | 8244 | (delete-region (point) tmp)) |
| 6839 | (indent-to-column c) | 8245 | (cperl-make-indent c) |
| 6840 | (forward-char 1) | 8246 | (forward-char 1) |
| 6841 | (skip-chars-forward " \t") | 8247 | (skip-chars-forward " \t") |
| 6842 | (setq spaces nil) | 8248 | (setq spaces nil) |
| @@ -6859,10 +8265,7 @@ prototype \\&SUB Returns prototype of the function given a reference. | |||
| 6859 | (/= (current-indentation) c)) | 8265 | (/= (current-indentation) c)) |
| 6860 | (progn | 8266 | (progn |
| 6861 | (beginning-of-line) | 8267 | (beginning-of-line) |
| 6862 | (setq s (point)) | 8268 | (cperl-make-indent c))))) |
| 6863 | (skip-chars-forward " \t") | ||
| 6864 | (delete-region s (point)) | ||
| 6865 | (indent-to-column c))))) | ||
| 6866 | 8269 | ||
| 6867 | (defun cperl-make-regexp-x () | 8270 | (defun cperl-make-regexp-x () |
| 6868 | ;; Returns position of the start | 8271 | ;; Returns position of the start |
| @@ -6931,7 +8334,7 @@ We suppose that the regexp is scanned already." | |||
| 6931 | (interactive) | 8334 | (interactive) |
| 6932 | ;; (save-excursion ; Can't, breaks `cperl-contract-levels' | 8335 | ;; (save-excursion ; Can't, breaks `cperl-contract-levels' |
| 6933 | (cperl-regext-to-level-start) | 8336 | (cperl-regext-to-level-start) |
| 6934 | (let ((b (point)) (e (make-marker)) s c) | 8337 | (let ((b (point)) (e (make-marker)) c) |
| 6935 | (forward-sexp 1) | 8338 | (forward-sexp 1) |
| 6936 | (set-marker e (1- (point))) | 8339 | (set-marker e (1- (point))) |
| 6937 | (goto-char b) | 8340 | (goto-char b) |
| @@ -6940,10 +8343,7 @@ We suppose that the regexp is scanned already." | |||
| 6940 | ((match-beginning 1) ; #-comment | 8343 | ((match-beginning 1) ; #-comment |
| 6941 | (or c (setq c (current-indentation))) | 8344 | (or c (setq c (current-indentation))) |
| 6942 | (beginning-of-line 2) ; Skip | 8345 | (beginning-of-line 2) ; Skip |
| 6943 | (setq s (point)) | 8346 | (cperl-make-indent c)) |
| 6944 | (skip-chars-forward " \t") | ||
| 6945 | (delete-region s (point)) | ||
| 6946 | (indent-to-column c)) | ||
| 6947 | (t | 8347 | (t |
| 6948 | (delete-char -1) | 8348 | (delete-char -1) |
| 6949 | (just-one-space)))))) | 8349 | (just-one-space)))))) |
| @@ -6982,96 +8382,197 @@ We suppose that the regexp is scanned already." | |||
| 6982 | (set-marker e (1- (point))) | 8382 | (set-marker e (1- (point))) |
| 6983 | (cperl-beautify-regexp-piece b e nil deep)))) | 8383 | (cperl-beautify-regexp-piece b e nil deep)))) |
| 6984 | 8384 | ||
| 8385 | (defun cperl-invert-if-unless-modifiers () | ||
| 8386 | "Change `B if A;' into `if (A) {B}' etc if possible. | ||
| 8387 | \(Unfinished.)" | ||
| 8388 | (interactive) ; | ||
| 8389 | (let (A B pre-B post-B pre-if post-if pre-A post-A if-string | ||
| 8390 | (w-rex "\\<\\(if\\|unless\\|while\\|until\\|for\\|foreach\\)\\>")) | ||
| 8391 | (and (= (char-syntax (preceding-char)) ?w) | ||
| 8392 | (forward-sexp -1)) | ||
| 8393 | (setq pre-if (point)) | ||
| 8394 | (cperl-backward-to-start-of-expr) | ||
| 8395 | (setq pre-B (point)) | ||
| 8396 | (forward-sexp 1) ; otherwise forward-to-end-of-expr is NOP | ||
| 8397 | (cperl-forward-to-end-of-expr) | ||
| 8398 | (setq post-A (point)) | ||
| 8399 | (goto-char pre-if) | ||
| 8400 | (or (looking-at w-rex) | ||
| 8401 | ;; Find the position | ||
| 8402 | (progn (goto-char post-A) | ||
| 8403 | (while (and | ||
| 8404 | (not (looking-at w-rex)) | ||
| 8405 | (> (point) pre-B)) | ||
| 8406 | (forward-sexp -1)) | ||
| 8407 | (setq pre-if (point)))) | ||
| 8408 | (or (looking-at w-rex) | ||
| 8409 | (error "Can't find `if', `unless', `while', `until', `for' or `foreach'")) | ||
| 8410 | ;; 1 B 2 ... 3 B-com ... 4 if 5 ... if-com 6 ... 7 A 8 | ||
| 8411 | (setq if-string (buffer-substring (match-beginning 0) (match-end 0))) | ||
| 8412 | ;; First, simple part: find code boundaries | ||
| 8413 | (forward-sexp 1) | ||
| 8414 | (setq post-if (point)) | ||
| 8415 | (forward-sexp -2) | ||
| 8416 | (forward-sexp 1) | ||
| 8417 | (setq post-B (point)) | ||
| 8418 | (cperl-backward-to-start-of-expr) | ||
| 8419 | (setq pre-B (point)) | ||
| 8420 | (setq B (buffer-substring pre-B post-B)) | ||
| 8421 | (goto-char pre-if) | ||
| 8422 | (forward-sexp 2) | ||
| 8423 | (forward-sexp -1) | ||
| 8424 | ;; May be after $, @, $# etc of a variable | ||
| 8425 | (skip-chars-backward "$@%#") | ||
| 8426 | (setq pre-A (point)) | ||
| 8427 | (cperl-forward-to-end-of-expr) | ||
| 8428 | (setq post-A (point)) | ||
| 8429 | (setq A (buffer-substring pre-A post-A)) | ||
| 8430 | ;; Now modify (from end, to not break the stuff) | ||
| 8431 | (skip-chars-forward " \t;") | ||
| 8432 | (delete-region pre-A (point)) ; we move to pre-A | ||
| 8433 | (insert "\n" B ";\n}") | ||
| 8434 | (and (looking-at "[ \t]*#") (cperl-indent-for-comment)) | ||
| 8435 | (delete-region pre-if post-if) | ||
| 8436 | (delete-region pre-B post-B) | ||
| 8437 | (goto-char pre-B) | ||
| 8438 | (insert if-string " (" A ") {") | ||
| 8439 | (setq post-B (point)) | ||
| 8440 | (if (looking-at "[ \t]+$") | ||
| 8441 | (delete-horizontal-space) | ||
| 8442 | (if (looking-at "[ \t]*#") | ||
| 8443 | (cperl-indent-for-comment) | ||
| 8444 | (just-one-space))) | ||
| 8445 | (forward-line 1) | ||
| 8446 | (if (looking-at "[ \t]*$") | ||
| 8447 | (progn ; delete line | ||
| 8448 | (delete-horizontal-space) | ||
| 8449 | (delete-region (point) (1+ (point))))) | ||
| 8450 | (cperl-indent-line) | ||
| 8451 | (goto-char (1- post-B)) | ||
| 8452 | (forward-sexp 1) | ||
| 8453 | (cperl-indent-line) | ||
| 8454 | (goto-char pre-B))) | ||
| 8455 | |||
| 6985 | (defun cperl-invert-if-unless () | 8456 | (defun cperl-invert-if-unless () |
| 6986 | "Change `if (A) {B}' into `B if A;' etc if possible." | 8457 | "Change `if (A) {B}' into `B if A;' etc (or visa versa) if possible. |
| 8458 | If the cursor is not on the leading keyword of the BLOCK flavor of | ||
| 8459 | construct, will assume it is the STATEMENT flavor, so will try to find | ||
| 8460 | the appropriate statement modifier." | ||
| 6987 | (interactive) | 8461 | (interactive) |
| 6988 | (or (looking-at "\\<") | 8462 | (and (= (char-syntax (preceding-char)) ?w) |
| 6989 | (forward-sexp -1)) | 8463 | (forward-sexp -1)) |
| 6990 | (if (looking-at "\\<\\(if\\|unless\\|while\\|until\\|for\\|foreach\\)\\>") | 8464 | (if (looking-at "\\<\\(if\\|unless\\|while\\|until\\|for\\|foreach\\)\\>") |
| 6991 | (let ((pos1 (point)) | 8465 | (let ((pre-if (point)) |
| 6992 | pos2 pos3 pos4 pos5 s1 s2 state p pos45 | 8466 | pre-A post-A pre-B post-B A B state p end-B-code is-block B-comment |
| 6993 | (s0 (buffer-substring (match-beginning 0) (match-end 0)))) | 8467 | (if-string (buffer-substring (match-beginning 0) (match-end 0)))) |
| 6994 | (forward-sexp 2) | 8468 | (forward-sexp 2) |
| 6995 | (setq pos3 (point)) | 8469 | (setq post-A (point)) |
| 6996 | (forward-sexp -1) | 8470 | (forward-sexp -1) |
| 6997 | (setq pos2 (point)) | 8471 | (setq pre-A (point)) |
| 6998 | (if (eq (following-char) ?\( ) | 8472 | (setq is-block (and (eq (following-char) ?\( ) |
| 8473 | (save-excursion | ||
| 8474 | (condition-case nil | ||
| 8475 | (progn | ||
| 8476 | (forward-sexp 2) | ||
| 8477 | (forward-sexp -1) | ||
| 8478 | (eq (following-char) ?\{ )) | ||
| 8479 | (error nil))))) | ||
| 8480 | (if is-block | ||
| 6999 | (progn | 8481 | (progn |
| 7000 | (goto-char pos3) | 8482 | (goto-char post-A) |
| 7001 | (forward-sexp 1) | 8483 | (forward-sexp 1) |
| 7002 | (setq pos5 (point)) | 8484 | (setq post-B (point)) |
| 7003 | (forward-sexp -1) | 8485 | (forward-sexp -1) |
| 7004 | (setq pos4 (point)) | 8486 | (setq pre-B (point)) |
| 7005 | ;; XXXX In fact may be `A if (B); {C}' ... | ||
| 7006 | (if (and (eq (following-char) ?\{ ) | 8487 | (if (and (eq (following-char) ?\{ ) |
| 7007 | (progn | 8488 | (progn |
| 7008 | (cperl-backward-to-noncomment pos3) | 8489 | (cperl-backward-to-noncomment post-A) |
| 7009 | (eq (preceding-char) ?\) ))) | 8490 | (eq (preceding-char) ?\) ))) |
| 7010 | (if (condition-case nil | 8491 | (if (condition-case nil |
| 7011 | (progn | 8492 | (progn |
| 7012 | (goto-char pos5) | 8493 | (goto-char post-B) |
| 7013 | (forward-sexp 1) | 8494 | (forward-sexp 1) |
| 7014 | (forward-sexp -1) | 8495 | (forward-sexp -1) |
| 7015 | (looking-at "\\<els\\(e\\|if\\)\\>")) | 8496 | (looking-at "\\<els\\(e\\|if\\)\\>")) |
| 7016 | (error nil)) | 8497 | (error nil)) |
| 7017 | (error | 8498 | (error |
| 7018 | "`%s' (EXPR) {BLOCK} with `else'/`elsif'" s0) | 8499 | "`%s' (EXPR) {BLOCK} with `else'/`elsif'" if-string) |
| 7019 | (goto-char (1- pos5)) | 8500 | (goto-char (1- post-B)) |
| 7020 | (cperl-backward-to-noncomment pos4) | 8501 | (cperl-backward-to-noncomment pre-B) |
| 7021 | (if (eq (preceding-char) ?\;) | 8502 | (if (eq (preceding-char) ?\;) |
| 7022 | (forward-char -1)) | 8503 | (forward-char -1)) |
| 7023 | (setq pos45 (point)) | 8504 | (setq end-B-code (point)) |
| 7024 | (goto-char pos4) | 8505 | (goto-char pre-B) |
| 7025 | (while (re-search-forward "\\<\\(for\\|foreach\\|if\\|unless\\|while\\|until\\)\\>\\|;" pos45 t) | 8506 | (while (re-search-forward "\\<\\(for\\|foreach\\|if\\|unless\\|while\\|until\\)\\>\\|;" end-B-code t) |
| 7026 | (setq p (match-beginning 0) | 8507 | (setq p (match-beginning 0) |
| 7027 | s1 (buffer-substring p (match-end 0)) | 8508 | A (buffer-substring p (match-end 0)) |
| 7028 | state (parse-partial-sexp pos4 p)) | 8509 | state (parse-partial-sexp pre-B p)) |
| 7029 | (or (nth 3 state) | 8510 | (or (nth 3 state) |
| 7030 | (nth 4 state) | 8511 | (nth 4 state) |
| 7031 | (nth 5 state) | 8512 | (nth 5 state) |
| 7032 | (error "`%s' inside `%s' BLOCK" s1 s0)) | 8513 | (error "`%s' inside `%s' BLOCK" A if-string)) |
| 7033 | (goto-char (match-end 0))) | 8514 | (goto-char (match-end 0))) |
| 7034 | ;; Finally got it | 8515 | ;; Finally got it |
| 7035 | (goto-char (1+ pos4)) | 8516 | (goto-char (1+ pre-B)) |
| 7036 | (skip-chars-forward " \t\n") | 8517 | (skip-chars-forward " \t\n") |
| 7037 | (setq s2 (buffer-substring (point) pos45)) | 8518 | (setq B (buffer-substring (point) end-B-code)) |
| 7038 | (goto-char pos45) | 8519 | (goto-char end-B-code) |
| 7039 | (or (looking-at ";?[ \t\n]*}") | 8520 | (or (looking-at ";?[ \t\n]*}") |
| 7040 | (progn | 8521 | (progn |
| 7041 | (skip-chars-forward "; \t\n") | 8522 | (skip-chars-forward "; \t\n") |
| 7042 | (setq s2 (concat s2 "\n" (buffer-substring (point) (1- pos5)))))) | 8523 | (setq B-comment |
| 7043 | (and (equal s2 "") | 8524 | (buffer-substring (point) (1- post-B))))) |
| 7044 | (setq s2 "1")) | 8525 | (and (equal B "") |
| 7045 | (goto-char (1- pos3)) | 8526 | (setq B "1")) |
| 7046 | (cperl-backward-to-noncomment pos2) | 8527 | (goto-char (1- post-A)) |
| 8528 | (cperl-backward-to-noncomment pre-A) | ||
| 7047 | (or (looking-at "[ \t\n]*)") | 8529 | (or (looking-at "[ \t\n]*)") |
| 7048 | (goto-char (1- pos3))) | 8530 | (goto-char (1- post-A))) |
| 7049 | (setq p (point)) | 8531 | (setq p (point)) |
| 7050 | (goto-char (1+ pos2)) | 8532 | (goto-char (1+ pre-A)) |
| 7051 | (skip-chars-forward " \t\n") | 8533 | (skip-chars-forward " \t\n") |
| 7052 | (setq s1 (buffer-substring (point) p)) | 8534 | (setq A (buffer-substring (point) p)) |
| 7053 | (delete-region pos4 pos5) | 8535 | (delete-region pre-B post-B) |
| 7054 | (delete-region pos2 pos3) | 8536 | (delete-region pre-A post-A) |
| 7055 | (goto-char pos1) | 8537 | (goto-char pre-if) |
| 7056 | (insert s2 " ") | 8538 | (insert B " ") |
| 8539 | (and B-comment (insert B-comment " ")) | ||
| 7057 | (just-one-space) | 8540 | (just-one-space) |
| 7058 | (forward-word 1) | 8541 | (forward-word 1) |
| 7059 | (setq pos1 (point)) | 8542 | (setq pre-A (point)) |
| 7060 | (insert " " s1 ";") | 8543 | (insert " " A ";") |
| 7061 | (delete-horizontal-space) | 8544 | (delete-horizontal-space) |
| 8545 | (setq post-B (point)) | ||
| 8546 | (if (looking-at "#") | ||
| 8547 | (indent-for-comment)) | ||
| 8548 | (goto-char post-B) | ||
| 7062 | (forward-char -1) | 8549 | (forward-char -1) |
| 7063 | (delete-horizontal-space) | 8550 | (delete-horizontal-space) |
| 7064 | (goto-char pos1) | 8551 | (goto-char pre-A) |
| 7065 | (just-one-space) | 8552 | (just-one-space) |
| 7066 | (cperl-indent-line)) | 8553 | (goto-char pre-if) |
| 7067 | (error "`%s' (EXPR) not with an {BLOCK}" s0))) | 8554 | (setq pre-A (set-marker (make-marker) pre-A)) |
| 7068 | (error "`%s' not with an (EXPR)" s0))) | 8555 | (while (<= (point) (marker-position pre-A)) |
| 7069 | (error "Not at `if', `unless', `while', `until', `for' or `foreach'"))) | 8556 | (cperl-indent-line) |
| 8557 | (forward-line 1)) | ||
| 8558 | (goto-char (marker-position pre-A)) | ||
| 8559 | (if B-comment | ||
| 8560 | (progn | ||
| 8561 | (forward-line -1) | ||
| 8562 | (indent-for-comment) | ||
| 8563 | (goto-char (marker-position pre-A))))) | ||
| 8564 | (error "`%s' (EXPR) not with an {BLOCK}" if-string))) | ||
| 8565 | ;; (error "`%s' not with an (EXPR)" if-string) | ||
| 8566 | (forward-sexp -1) | ||
| 8567 | (cperl-invert-if-unless-modifiers))) | ||
| 8568 | ;;(error "Not at `if', `unless', `while', `until', `for' or `foreach'") | ||
| 8569 | (cperl-invert-if-unless-modifiers))) | ||
| 7070 | 8570 | ||
| 7071 | ;;; By Anthony Foiani <afoiani@uswest.com> | 8571 | ;;; By Anthony Foiani <afoiani@uswest.com> |
| 7072 | ;;; Getting help on modules in C-h f ? | 8572 | ;;; Getting help on modules in C-h f ? |
| 7073 | ;;; This is a modified version of `man'. | 8573 | ;;; This is a modified version of `man'. |
| 7074 | ;;; Need to teach it how to lookup functions | 8574 | ;;; Need to teach it how to lookup functions |
| 8575 | ;;;###autoload | ||
| 7075 | (defun cperl-perldoc (word) | 8576 | (defun cperl-perldoc (word) |
| 7076 | "Run `perldoc' on WORD." | 8577 | "Run `perldoc' on WORD." |
| 7077 | (interactive | 8578 | (interactive |
| @@ -7103,6 +8604,7 @@ We suppose that the regexp is scanned already." | |||
| 7103 | (t | 8604 | (t |
| 7104 | (Man-getpage-in-background word))))) | 8605 | (Man-getpage-in-background word))))) |
| 7105 | 8606 | ||
| 8607 | ;;;###autoload | ||
| 7106 | (defun cperl-perldoc-at-point () | 8608 | (defun cperl-perldoc-at-point () |
| 7107 | "Run a `perldoc' on the word around point." | 8609 | "Run a `perldoc' on the word around point." |
| 7108 | (interactive) | 8610 | (interactive) |
| @@ -7147,7 +8649,7 @@ We suppose that the regexp is scanned already." | |||
| 7147 | (defun cperl-pod2man-build-command () | 8649 | (defun cperl-pod2man-build-command () |
| 7148 | "Builds the entire background manpage and cleaning command." | 8650 | "Builds the entire background manpage and cleaning command." |
| 7149 | (let ((command (concat pod2man-program " %s 2>/dev/null")) | 8651 | (let ((command (concat pod2man-program " %s 2>/dev/null")) |
| 7150 | (flist Man-filter-list)) | 8652 | (flist (and (boundp 'Man-filter-list) Man-filter-list))) |
| 7151 | (while (and flist (car flist)) | 8653 | (while (and flist (car flist)) |
| 7152 | (let ((pcom (car (car flist))) | 8654 | (let ((pcom (car (car flist))) |
| 7153 | (pargs (cdr (car flist)))) | 8655 | (pargs (cdr (car flist)))) |
| @@ -7161,6 +8663,205 @@ We suppose that the regexp is scanned already." | |||
| 7161 | (setq flist (cdr flist)))) | 8663 | (setq flist (cdr flist)))) |
| 7162 | command)) | 8664 | command)) |
| 7163 | 8665 | ||
| 8666 | |||
| 8667 | (defun cperl-next-interpolated-REx-1 () | ||
| 8668 | "Move point to next REx which has interpolated parts without //o. | ||
| 8669 | Skips RExes consisting of one interpolated variable. | ||
| 8670 | |||
| 8671 | Note that skipped RExen are not performance hits." | ||
| 8672 | (interactive "") | ||
| 8673 | (cperl-next-interpolated-REx 1)) | ||
| 8674 | |||
| 8675 | (defun cperl-next-interpolated-REx-0 () | ||
| 8676 | "Move point to next REx which has interpolated parts without //o." | ||
| 8677 | (interactive "") | ||
| 8678 | (cperl-next-interpolated-REx 0)) | ||
| 8679 | |||
| 8680 | (defun cperl-next-interpolated-REx (&optional skip beg limit) | ||
| 8681 | "Move point to next REx which has interpolated parts. | ||
| 8682 | SKIP is a list of possible types to skip, BEG and LIMIT are the starting | ||
| 8683 | point and the limit of search (default to point and end of buffer). | ||
| 8684 | |||
| 8685 | SKIP may be a number, then it behaves as list of numbers up to SKIP; this | ||
| 8686 | semantic may be used as a numeric argument. | ||
| 8687 | |||
| 8688 | Types are 0 for / $rex /o (interpolated once), 1 for /$rex/ (if $rex is | ||
| 8689 | a result of qr//, this is not a performance hit), t for the rest." | ||
| 8690 | (interactive "P") | ||
| 8691 | (if (numberp skip) (setq skip (list 0 skip))) | ||
| 8692 | (or beg (setq beg (point))) | ||
| 8693 | (or limit (setq limit (point-max))) ; needed for n-s-p-c | ||
| 8694 | (let (pp) | ||
| 8695 | (and (eq (get-text-property beg 'syntax-type) 'string) | ||
| 8696 | (setq beg (next-single-property-change beg 'syntax-type nil limit))) | ||
| 8697 | (cperl-map-pods-heres | ||
| 8698 | (function (lambda (s e p) | ||
| 8699 | (if (memq (get-text-property s 'REx-interpolated) skip) | ||
| 8700 | t | ||
| 8701 | (setq pp s) | ||
| 8702 | nil))) ; nil stops | ||
| 8703 | 'REx-interpolated beg limit) | ||
| 8704 | (if pp (goto-char pp) | ||
| 8705 | (message "No more interpolated REx")))) | ||
| 8706 | |||
| 8707 | ;;; Initial version contributed by Trey Belew | ||
| 8708 | (defun cperl-here-doc-spell (&optional beg end) | ||
| 8709 | "Spell-check HERE-documents in the Perl buffer. | ||
| 8710 | If a region is highlighted, restricts to the region." | ||
| 8711 | (interactive "") | ||
| 8712 | (cperl-pod-spell t beg end)) | ||
| 8713 | |||
| 8714 | (defun cperl-pod-spell (&optional do-heres beg end) | ||
| 8715 | "Spell-check POD documentation. | ||
| 8716 | If invoked with prefix argument, will do HERE-DOCs instead. | ||
| 8717 | If a region is highlighted, restricts to the region." | ||
| 8718 | (interactive "P") | ||
| 8719 | (save-excursion | ||
| 8720 | (let (beg end) | ||
| 8721 | (if (cperl-mark-active) | ||
| 8722 | (setq beg (min (mark) (point)) | ||
| 8723 | end (max (mark) (point))) | ||
| 8724 | (setq beg (point-min) | ||
| 8725 | end (point-max))) | ||
| 8726 | (cperl-map-pods-heres (function | ||
| 8727 | (lambda (s e p) | ||
| 8728 | (if do-heres | ||
| 8729 | (setq e (save-excursion | ||
| 8730 | (goto-char e) | ||
| 8731 | (forward-line -1) | ||
| 8732 | (point)))) | ||
| 8733 | (ispell-region s e) | ||
| 8734 | t)) | ||
| 8735 | (if do-heres 'here-doc-group 'in-pod) | ||
| 8736 | beg end)))) | ||
| 8737 | |||
| 8738 | (defun cperl-map-pods-heres (func &optional prop s end) | ||
| 8739 | "Executes a function over regions of pods or here-documents. | ||
| 8740 | PROP is the text-property to search for; default to `in-pod'. Stop when | ||
| 8741 | function returns nil." | ||
| 8742 | (let (pos posend has-prop (cont t)) | ||
| 8743 | (or prop (setq prop 'in-pod)) | ||
| 8744 | (or s (setq s (point-min))) | ||
| 8745 | (or end (setq end (point-max))) | ||
| 8746 | (cperl-update-syntaxification end end) | ||
| 8747 | (save-excursion | ||
| 8748 | (goto-char (setq pos s)) | ||
| 8749 | (while (and cont (< pos end)) | ||
| 8750 | (setq has-prop (get-text-property pos prop)) | ||
| 8751 | (setq posend (next-single-property-change pos prop nil end)) | ||
| 8752 | (and has-prop | ||
| 8753 | (setq cont (funcall func pos posend prop))) | ||
| 8754 | (setq pos posend))))) | ||
| 8755 | |||
| 8756 | ;;; Based on code by Masatake YAMATO: | ||
| 8757 | (defun cperl-get-here-doc-region (&optional pos pod) | ||
| 8758 | "Return HERE document region around the point. | ||
| 8759 | Return nil if the point is not in a HERE document region. If POD is non-nil, | ||
| 8760 | will return a POD section if point is in a POD section." | ||
| 8761 | (or pos (setq pos (point))) | ||
| 8762 | (cperl-update-syntaxification pos pos) | ||
| 8763 | (if (or (eq 'here-doc (get-text-property pos 'syntax-type)) | ||
| 8764 | (and pod | ||
| 8765 | (eq 'pod (get-text-property pos 'syntax-type)))) | ||
| 8766 | (let ((b (cperl-beginning-of-property pos 'syntax-type)) | ||
| 8767 | (e (next-single-property-change pos 'syntax-type))) | ||
| 8768 | (cons b (or e (point-max)))))) | ||
| 8769 | |||
| 8770 | (defun cperl-narrow-to-here-doc (&optional pos) | ||
| 8771 | "Narrows editing region to the HERE-DOC at POS. | ||
| 8772 | POS defaults to the point." | ||
| 8773 | (interactive "d") | ||
| 8774 | (or pos (setq pos (point))) | ||
| 8775 | (let ((p (cperl-get-here-doc-region pos))) | ||
| 8776 | (or p (error "Not inside a HERE document")) | ||
| 8777 | (narrow-to-region (car p) (cdr p)) | ||
| 8778 | (message | ||
| 8779 | "When you are finished with narrow editing, type C-x n w"))) | ||
| 8780 | |||
| 8781 | (defun cperl-select-this-pod-or-here-doc (&optional pos) | ||
| 8782 | "Select the HERE-DOC (or POD section) at POS. | ||
| 8783 | POS defaults to the point." | ||
| 8784 | (interactive "d") | ||
| 8785 | (let ((p (cperl-get-here-doc-region pos t))) | ||
| 8786 | (if p | ||
| 8787 | (progn | ||
| 8788 | (goto-char (car p)) | ||
| 8789 | (push-mark (cdr p) nil t)) ; Message, activate in transient-mode | ||
| 8790 | (message "I do not think POS is in POD or a HERE-doc...")))) | ||
| 8791 | |||
| 8792 | (defun cperl-facemenu-add-face-function (face end) | ||
| 8793 | "A callback to process user-initiated font-change requests. | ||
| 8794 | Translates `bold', `italic', and `bold-italic' requests to insertion of | ||
| 8795 | corresponding POD directives, and `underline' to C<> POD directive. | ||
| 8796 | |||
| 8797 | Such requests are usually bound to M-o LETTER." | ||
| 8798 | (or (get-text-property (point) 'in-pod) | ||
| 8799 | (error "Faces can only be set within POD")) | ||
| 8800 | (setq facemenu-end-add-face (if (eq face 'bold-italic) ">>" ">")) | ||
| 8801 | (cdr (or (assq face '((bold . "B<") | ||
| 8802 | (italic . "I<") | ||
| 8803 | (bold-italic . "B<I<") | ||
| 8804 | (underline . "C<"))) | ||
| 8805 | (error "Face %s not configured for cperl-mode" | ||
| 8806 | face)))) | ||
| 8807 | |||
| 8808 | (defun cperl-time-fontification (&optional l step lim) | ||
| 8809 | "Times how long it takes to do incremental fontification in a region. | ||
| 8810 | L is the line to start at, STEP is the number of lines to skip when | ||
| 8811 | doing next incremental fontification, LIM is the maximal number of | ||
| 8812 | incremental fontification to perform. Messages are accumulated in | ||
| 8813 | *Messages* buffer. | ||
| 8814 | |||
| 8815 | May be used for pinpointing which construct slows down buffer fontification: | ||
| 8816 | start with default arguments, then refine the slowdown regions." | ||
| 8817 | (interactive "nLine to start at: \nnStep to do incremental fontification: ") | ||
| 8818 | (or l (setq l 1)) | ||
| 8819 | (or step (setq step 500)) | ||
| 8820 | (or lim (setq lim 40)) | ||
| 8821 | (let* ((timems (function (lambda () | ||
| 8822 | (let ((tt (current-time))) | ||
| 8823 | (+ (* 1000 (nth 1 tt)) (/ (nth 2 tt) 1000)))))) | ||
| 8824 | (tt (funcall timems)) (c 0) delta tot) | ||
| 8825 | (goto-line l) | ||
| 8826 | (cperl-mode) | ||
| 8827 | (setq tot (- (- tt (setq tt (funcall timems))))) | ||
| 8828 | (message "cperl-mode at %s: %s" l tot) | ||
| 8829 | (while (and (< c lim) (not (eobp))) | ||
| 8830 | (forward-line step) | ||
| 8831 | (setq l (+ l step)) | ||
| 8832 | (setq c (1+ c)) | ||
| 8833 | (cperl-update-syntaxification (point) (point)) | ||
| 8834 | (setq delta (- (- tt (setq tt (funcall timems)))) tot (+ tot delta)) | ||
| 8835 | (message "to %s:%6s,%7s" l delta tot)) | ||
| 8836 | tot)) | ||
| 8837 | |||
| 8838 | (defun cperl-emulate-lazy-lock (&optional window-size) | ||
| 8839 | "Emulate `lazy-lock' without `condition-case', so `debug-on-error' works. | ||
| 8840 | Start fontifying the buffer from the start (or end) using the given | ||
| 8841 | WINDOW-SIZE (units is lines). Negative WINDOW-SIZE starts at end, and | ||
| 8842 | goes backwards; default is -50. This function is not CPerl-specific; it | ||
| 8843 | may be used to debug problems with delayed incremental fontification." | ||
| 8844 | (interactive | ||
| 8845 | "nSize of window for incremental fontification, negative goes backwards: ") | ||
| 8846 | (or window-size (setq window-size -50)) | ||
| 8847 | (let ((pos (if (> window-size 0) | ||
| 8848 | (point-min) | ||
| 8849 | (point-max))) | ||
| 8850 | p) | ||
| 8851 | (goto-char pos) | ||
| 8852 | (normal-mode) | ||
| 8853 | ;; Why needed??? With older font-locks??? | ||
| 8854 | (set (make-local-variable 'font-lock-cache-position) (make-marker)) | ||
| 8855 | (while (if (> window-size 0) | ||
| 8856 | (< pos (point-max)) | ||
| 8857 | (> pos (point-min))) | ||
| 8858 | (setq p (progn | ||
| 8859 | (forward-line window-size) | ||
| 8860 | (point))) | ||
| 8861 | (font-lock-fontify-region (min p pos) (max p pos)) | ||
| 8862 | (setq pos p)))) | ||
| 8863 | |||
| 8864 | |||
| 7164 | (defun cperl-lazy-install ()) ; Avoid a warning | 8865 | (defun cperl-lazy-install ()) ; Avoid a warning |
| 7165 | (defun cperl-lazy-unstall ()) ; Avoid a warning | 8866 | (defun cperl-lazy-unstall ()) ; Avoid a warning |
| 7166 | 8867 | ||
| @@ -7176,7 +8877,7 @@ We suppose that the regexp is scanned already." | |||
| 7176 | "Switches on Auto-Help on Perl constructs (put in the message area). | 8877 | "Switches on Auto-Help on Perl constructs (put in the message area). |
| 7177 | Delay of auto-help controlled by `cperl-lazy-help-time'." | 8878 | Delay of auto-help controlled by `cperl-lazy-help-time'." |
| 7178 | (interactive) | 8879 | (interactive) |
| 7179 | (make-variable-buffer-local 'cperl-help-shown) | 8880 | (make-local-variable 'cperl-help-shown) |
| 7180 | (if (and (cperl-val 'cperl-lazy-help-time) | 8881 | (if (and (cperl-val 'cperl-lazy-help-time) |
| 7181 | (not cperl-lazy-installed)) | 8882 | (not cperl-lazy-installed)) |
| 7182 | (progn | 8883 | (progn |
| @@ -7209,48 +8910,109 @@ Delay of auto-help controlled by `cperl-lazy-help-time'." | |||
| 7209 | ;;; Plug for wrong font-lock: | 8910 | ;;; Plug for wrong font-lock: |
| 7210 | 8911 | ||
| 7211 | (defun cperl-font-lock-unfontify-region-function (beg end) | 8912 | (defun cperl-font-lock-unfontify-region-function (beg end) |
| 7212 | ;; Simplified now that font-lock-unfontify-region uses save-buffer-state. | 8913 | (let* ((modified (buffer-modified-p)) (buffer-undo-list t) |
| 7213 | (let (before-change-functions after-change-functions) | 8914 | (inhibit-read-only t) (inhibit-point-motion-hooks t) |
| 7214 | (remove-text-properties beg end '(face nil)))) | 8915 | before-change-functions after-change-functions |
| 8916 | deactivate-mark buffer-file-name buffer-file-truename) | ||
| 8917 | (remove-text-properties beg end '(face nil)) | ||
| 8918 | (if (and (not modified) (buffer-modified-p)) | ||
| 8919 | (set-buffer-modified-p nil)))) | ||
| 8920 | |||
| 8921 | (defun cperl-font-lock-fontify-region-function (beg end loudly) | ||
| 8922 | "Extends the region to safe positions, then calls the default function. | ||
| 8923 | Newer `font-lock's can do it themselves. | ||
| 8924 | We unwind only as far as needed for fontification. Syntaxification may | ||
| 8925 | do extra unwind via `cperl-unwind-to-safe'." | ||
| 8926 | (save-excursion | ||
| 8927 | (goto-char beg) | ||
| 8928 | (while (and beg | ||
| 8929 | (progn | ||
| 8930 | (beginning-of-line) | ||
| 8931 | (eq (get-text-property (setq beg (point)) 'syntax-type) | ||
| 8932 | 'multiline))) | ||
| 8933 | (if (setq beg (cperl-beginning-of-property beg 'syntax-type)) | ||
| 8934 | (goto-char beg))) | ||
| 8935 | (setq beg (point)) | ||
| 8936 | (goto-char end) | ||
| 8937 | (while (and end | ||
| 8938 | (progn | ||
| 8939 | (or (bolp) (condition-case nil | ||
| 8940 | (forward-line 1) | ||
| 8941 | (error nil))) | ||
| 8942 | (eq (get-text-property (setq end (point)) 'syntax-type) | ||
| 8943 | 'multiline))) | ||
| 8944 | (setq end (next-single-property-change end 'syntax-type nil (point-max))) | ||
| 8945 | (goto-char end)) | ||
| 8946 | (setq end (point))) | ||
| 8947 | (font-lock-default-fontify-region beg end loudly)) | ||
| 7215 | 8948 | ||
| 7216 | (defvar cperl-d-l nil) | 8949 | (defvar cperl-d-l nil) |
| 7217 | (defun cperl-fontify-syntaxically (end) | 8950 | (defun cperl-fontify-syntaxically (end) |
| 7218 | ;; Some vars for debugging only | 8951 | ;; Some vars for debugging only |
| 7219 | ;; (message "Syntaxifying...") | 8952 | ;; (message "Syntaxifying...") |
| 7220 | (let ((dbg (point)) (iend end) | 8953 | (let ((dbg (point)) (iend end) (idone cperl-syntax-done-to) |
| 7221 | (istate (car cperl-syntax-state)) | 8954 | (istate (car cperl-syntax-state)) |
| 7222 | start) | 8955 | start from-start edebug-backtrace-buffer) |
| 7223 | (and cperl-syntaxify-unwind | 8956 | (if (eq cperl-syntaxify-by-font-lock 'backtrace) |
| 7224 | (setq end (cperl-unwind-to-safe t end))) | 8957 | (progn |
| 7225 | (setq start (point)) | 8958 | (require 'edebug) |
| 8959 | (let ((f 'edebug-backtrace)) | ||
| 8960 | (funcall f)))) ; Avoid compile-time warning | ||
| 7226 | (or cperl-syntax-done-to | 8961 | (or cperl-syntax-done-to |
| 7227 | (setq cperl-syntax-done-to (point-min))) | 8962 | (setq cperl-syntax-done-to (point-min) |
| 7228 | (if (or (not (boundp 'font-lock-hot-pass)) | 8963 | from-start t)) |
| 7229 | (eval 'font-lock-hot-pass) | 8964 | (setq start (if (and cperl-hook-after-change |
| 7230 | t) ; Not debugged otherwise | 8965 | (not from-start)) |
| 7231 | ;; Need to forget what is after `start' | 8966 | cperl-syntax-done-to ; Fontify without change; ignore start |
| 7232 | (setq start (min cperl-syntax-done-to start)) | 8967 | ;; Need to forget what is after `start' |
| 7233 | ;; Fontification without a change | 8968 | (min cperl-syntax-done-to (point)))) |
| 7234 | (setq start (max cperl-syntax-done-to start))) | 8969 | (goto-char start) |
| 8970 | (beginning-of-line) | ||
| 8971 | (setq start (point)) | ||
| 8972 | (and cperl-syntaxify-unwind | ||
| 8973 | (setq end (cperl-unwind-to-safe t end) | ||
| 8974 | start (point))) | ||
| 7235 | (and (> end start) | 8975 | (and (> end start) |
| 7236 | (setq cperl-syntax-done-to start) ; In case what follows fails | 8976 | (setq cperl-syntax-done-to start) ; In case what follows fails |
| 7237 | (cperl-find-pods-heres start end t nil t)) | 8977 | (cperl-find-pods-heres start end t nil t)) |
| 7238 | (if (eq cperl-syntaxify-by-font-lock 'message) | 8978 | (if (memq cperl-syntaxify-by-font-lock '(backtrace message)) |
| 7239 | (message "Syntaxified %s..%s from %s to %s(%s), state %s-->%s" | 8979 | (message "Syxify req=%s..%s actual=%s..%s done-to: %s=>%s statepos: %s=>%s" |
| 7240 | dbg iend | 8980 | dbg iend start end idone cperl-syntax-done-to |
| 7241 | start end cperl-syntax-done-to | ||
| 7242 | istate (car cperl-syntax-state))) ; For debugging | 8981 | istate (car cperl-syntax-state))) ; For debugging |
| 7243 | nil)) ; Do not iterate | 8982 | nil)) ; Do not iterate |
| 7244 | 8983 | ||
| 7245 | (defun cperl-fontify-update (end) | 8984 | (defun cperl-fontify-update (end) |
| 7246 | (let ((pos (point)) prop posend) | 8985 | (let ((pos (point-min)) prop posend) |
| 8986 | (setq end (point-max)) | ||
| 7247 | (while (< pos end) | 8987 | (while (< pos end) |
| 7248 | (setq prop (get-text-property pos 'cperl-postpone)) | 8988 | (setq prop (get-text-property pos 'cperl-postpone) |
| 7249 | (setq posend (next-single-property-change pos 'cperl-postpone nil end)) | 8989 | posend (next-single-property-change pos 'cperl-postpone nil end)) |
| 7250 | (and prop (put-text-property pos posend (car prop) (cdr prop))) | 8990 | (and prop (put-text-property pos posend (car prop) (cdr prop))) |
| 7251 | (setq pos posend))) | 8991 | (setq pos posend))) |
| 7252 | nil) ; Do not iterate | 8992 | nil) ; Do not iterate |
| 7253 | 8993 | ||
| 8994 | (defun cperl-fontify-update-bad (end) | ||
| 8995 | ;; Since fontification happens with different region than syntaxification, | ||
| 8996 | ;; do to the end of buffer, not to END;;; likewise, start earlier if needed | ||
| 8997 | (let* ((pos (point)) (prop (get-text-property pos 'cperl-postpone)) posend) | ||
| 8998 | (if prop | ||
| 8999 | (setq pos (or (cperl-beginning-of-property | ||
| 9000 | (cperl-1+ pos) 'cperl-postpone) | ||
| 9001 | (point-min)))) | ||
| 9002 | (while (< pos end) | ||
| 9003 | (setq posend (next-single-property-change pos 'cperl-postpone)) | ||
| 9004 | (and prop (put-text-property pos posend (car prop) (cdr prop))) | ||
| 9005 | (setq pos posend) | ||
| 9006 | (setq prop (get-text-property pos 'cperl-postpone)))) | ||
| 9007 | nil) ; Do not iterate | ||
| 9008 | |||
| 9009 | ;; Called when any modification is made to buffer text. | ||
| 9010 | (defun cperl-after-change-function (beg end old-len) | ||
| 9011 | ;; We should have been informed about changes by `font-lock'. Since it | ||
| 9012 | ;; does not inform as which calls are defered, do it ourselves | ||
| 9013 | (if cperl-syntax-done-to | ||
| 9014 | (setq cperl-syntax-done-to (min cperl-syntax-done-to beg)))) | ||
| 9015 | |||
| 7254 | (defun cperl-update-syntaxification (from to) | 9016 | (defun cperl-update-syntaxification (from to) |
| 7255 | (if (and cperl-use-syntax-table-text-property | 9017 | (if (and cperl-use-syntax-table-text-property |
| 7256 | cperl-syntaxify-by-font-lock | 9018 | cperl-syntaxify-by-font-lock |
| @@ -7262,7 +9024,7 @@ Delay of auto-help controlled by `cperl-lazy-help-time'." | |||
| 7262 | (cperl-fontify-syntaxically to))))) | 9024 | (cperl-fontify-syntaxically to))))) |
| 7263 | 9025 | ||
| 7264 | (defvar cperl-version | 9026 | (defvar cperl-version |
| 7265 | (let ((v "Revision: 5.0")) | 9027 | (let ((v "Revision: 5.22")) |
| 7266 | (string-match ":\\s *\\([0-9.]+\\)" v) | 9028 | (string-match ":\\s *\\([0-9.]+\\)" v) |
| 7267 | (substring v (match-beginning 1) (match-end 1))) | 9029 | (substring v (match-beginning 1) (match-end 1))) |
| 7268 | "Version of IZ-supported CPerl package this file is based on.") | 9030 | "Version of IZ-supported CPerl package this file is based on.") |
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 3f21e4ac96b..52360a73970 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -902,20 +902,23 @@ Changed values are highlighted with the face `font-lock-warning-face'." | |||
| 902 | TEXT is the text of the button we clicked on, a + or - item. | 902 | TEXT is the text of the button we clicked on, a + or - item. |
| 903 | TOKEN is data related to this node. | 903 | TOKEN is data related to this node. |
| 904 | INDENT is the current indentation depth." | 904 | INDENT is the current indentation depth." |
| 905 | (cond ((string-match "+" text) ;expand this node | 905 | (if (and gud-comint-buffer (buffer-name gud-comint-buffer)) |
| 906 | (if (and | 906 | (progn |
| 907 | (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba) | 907 | (cond ((string-match "+" text) ;expand this node |
| 908 | (string-equal gdb-version "pre-6.4")) | 908 | (if (and (eq (buffer-local-value |
| 909 | (gdb-var-list-children token) | 909 | 'gud-minor-mode gud-comint-buffer) 'gdba) |
| 910 | (gdb-var-list-children-1 token))) | 910 | (string-equal gdb-version "pre-6.4")) |
| 911 | ((string-match "-" text) ;contract this node | 911 | (gdb-var-list-children token) |
| 912 | (dolist (var gdb-var-list) | 912 | (gdb-var-list-children-1 token))) |
| 913 | (if (string-match (concat token "\\.") (car var)) | 913 | ((string-match "-" text) ;contract this node |
| 914 | (setq gdb-var-list (delq var gdb-var-list)))) | 914 | (dolist (var gdb-var-list) |
| 915 | (speedbar-change-expand-button-char ?+) | 915 | (if (string-match (concat token "\\.") (car var)) |
| 916 | (speedbar-delete-subblock indent)) | 916 | (setq gdb-var-list (delq var gdb-var-list)))) |
| 917 | (t (error "Ooops... not sure what to do"))) | 917 | (speedbar-change-expand-button-char ?+) |
| 918 | (speedbar-center-buffer-smartly)) | 918 | (speedbar-delete-subblock indent)) |
| 919 | (t (error "Ooops... not sure what to do"))) | ||
| 920 | (speedbar-center-buffer-smartly)) | ||
| 921 | (message-box "GUD session has been killed"))) | ||
| 919 | 922 | ||
| 920 | (defun gdb-get-target-string () | 923 | (defun gdb-get-target-string () |
| 921 | (with-current-buffer gud-comint-buffer | 924 | (with-current-buffer gud-comint-buffer |
| @@ -1132,7 +1135,7 @@ This filter may simply queue input for a later time." | |||
| 1132 | (if gdb-prompting | 1135 | (if gdb-prompting |
| 1133 | (progn | 1136 | (progn |
| 1134 | (gdb-send-item item) | 1137 | (gdb-send-item item) |
| 1135 | (setq gdb-prompting nil)) | 1138 | (setq gdb-prompting nil)) |
| 1136 | (push item gdb-input-queue)))) | 1139 | (push item gdb-input-queue)))) |
| 1137 | 1140 | ||
| 1138 | (defun gdb-dequeue-input () | 1141 | (defun gdb-dequeue-input () |
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index ba10393a89f..73957cab8e9 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -2460,55 +2460,45 @@ we go to the end of the previous line and do not check for continuations." | |||
| 2460 | ;; | 2460 | ;; |
| 2461 | (if (bolp) | 2461 | (if (bolp) |
| 2462 | nil | 2462 | nil |
| 2463 | (let (c min-point | 2463 | (let ((start (point)) |
| 2464 | (start (point))) | 2464 | (min-point (if (sh-this-is-a-continuation) |
| 2465 | (save-restriction | 2465 | (sh-prev-line nil) |
| 2466 | (narrow-to-region | 2466 | (line-beginning-position)))) |
| 2467 | (if (sh-this-is-a-continuation) | 2467 | (skip-chars-backward " \t;" min-point) |
| 2468 | (setq min-point (sh-prev-line nil)) | 2468 | (if (looking-at "\\s-*;;") |
| 2469 | (save-excursion | 2469 | ;; (message "Found ;; !") |
| 2470 | (beginning-of-line) | 2470 | ";;" |
| 2471 | (setq min-point (point)))) | 2471 | (skip-chars-backward "^)}];\"'`({[" min-point) |
| 2472 | (point)) | 2472 | (let ((c (if (> (point) min-point) (char-before)))) |
| 2473 | (skip-chars-backward " \t;") | 2473 | (sh-debug "stopping at %d c is %s start=%d min-point=%d" |
| 2474 | (unless (looking-at "\\s-*;;") | 2474 | (point) c start min-point) |
| 2475 | (skip-chars-backward "^)}];\"'`({[") | 2475 | (if (not (memq c '(?\n nil ?\;))) |
| 2476 | (setq c (char-before))) | 2476 | ;; c -- return a string |
| 2477 | (sh-debug "stopping at %d c is %s start=%d min-point=%d" | 2477 | (char-to-string c) |
| 2478 | (point) c start min-point) | 2478 | ;; Return the leading keyword of the "command" we supposedly |
| 2479 | (if (< (point) min-point) | 2479 | ;; skipped over. Maybe we skipped too far (e.g. past a `do' or |
| 2480 | (error "point %d < min-point %d" (point) min-point)) | 2480 | ;; `then' that precedes the actual command), so check whether |
| 2481 | (cond | 2481 | ;; we're looking at such a keyword and if so, move back forward. |
| 2482 | ((looking-at "\\s-*;;") | 2482 | (let ((boundary (point)) |
| 2483 | ;; (message "Found ;; !") | 2483 | kwd next) |
| 2484 | ";;") | 2484 | (while |
| 2485 | ((or (eq c ?\n) | 2485 | (progn |
| 2486 | (eq c nil) | 2486 | ;; Skip forward over white space newline and \ at eol. |
| 2487 | (eq c ?\;)) | 2487 | (skip-chars-forward " \t\n\\\\" start) |
| 2488 | (let (done kwd next | 2488 | (if (>= (point) start) |
| 2489 | (boundary (point))) | 2489 | (progn |
| 2490 | (skip-chars-forward " \t\n\\\\") | 2490 | (sh-debug "point: %d >= start: %d" (point) start) |
| 2491 | (while (and (not done) (not (eobp))) | 2491 | nil) |
| 2492 | (if next (setq boundary next)) | 2492 | (if next (setq boundary next)) |
| 2493 | ;; skip forward over white space newline and \ at eol | 2493 | (sh-debug "Now at %d start=%d" (point) start) |
| 2494 | (sh-debug "Now at %d start=%d" (point) start) | 2494 | (setq kwd (sh-get-word)) |
| 2495 | (if (>= (point) start) | 2495 | (if (member kwd (sh-feature sh-leading-keywords)) |
| 2496 | (progn | 2496 | (progn |
| 2497 | (sh-debug "point: %d >= start: %d" (point) start) | 2497 | (setq next (point)) |
| 2498 | nil) | 2498 | t) |
| 2499 | (setq kwd (sh-get-word)) | 2499 | nil)))) |
| 2500 | (unless (eobp) (forward-char 1)) | 2500 | (goto-char boundary) |
| 2501 | (if (member kwd (sh-feature sh-leading-keywords)) | 2501 | kwd))))))) |
| 2502 | (setq next (point)) | ||
| 2503 | (setq done t))) | ||
| 2504 | (skip-chars-forward " \t\n\\\\")) | ||
| 2505 | (goto-char boundary) | ||
| 2506 | kwd)) | ||
| 2507 | (t | ||
| 2508 | ;; c -- return a string | ||
| 2509 | (char-to-string c) | ||
| 2510 | )) | ||
| 2511 | )))) | ||
| 2512 | 2502 | ||
| 2513 | 2503 | ||
| 2514 | (defun sh-this-is-a-continuation () | 2504 | (defun sh-this-is-a-continuation () |
| @@ -2527,7 +2517,7 @@ If AND-MOVE is non-nil then move to end of word." | |||
| 2527 | (goto-char where)) | 2517 | (goto-char where)) |
| 2528 | (prog1 | 2518 | (prog1 |
| 2529 | (buffer-substring (point) | 2519 | (buffer-substring (point) |
| 2530 | (progn (skip-chars-forward "^ \t\n;&")(point))) | 2520 | (progn (skip-chars-forward "^ \t\n;&|()")(point))) |
| 2531 | (unless and-move | 2521 | (unless and-move |
| 2532 | (goto-char start))))) | 2522 | (goto-char start))))) |
| 2533 | 2523 | ||
diff --git a/lisp/shell.el b/lisp/shell.el index d4791821b5b..2adfc79618a 100644 --- a/lisp/shell.el +++ b/lisp/shell.el | |||
| @@ -272,6 +272,8 @@ This is effective only if directory tracking is enabled." | |||
| 272 | :type '(choice (const :tag "None" nil) file) | 272 | :type '(choice (const :tag "None" nil) file) |
| 273 | :group 'shell) | 273 | :group 'shell) |
| 274 | 274 | ||
| 275 | ;; Note: There are no explicit references to the variable `explicit-csh-args'. | ||
| 276 | ;; It is used implicitly by M-x shell when the shell is `csh'. | ||
| 275 | (defcustom explicit-csh-args | 277 | (defcustom explicit-csh-args |
| 276 | (if (eq system-type 'hpux) | 278 | (if (eq system-type 'hpux) |
| 277 | ;; -T persuades HP's csh not to think it is smarter | 279 | ;; -T persuades HP's csh not to think it is smarter |
| @@ -283,12 +285,15 @@ Value is a list of strings, which may be nil." | |||
| 283 | :type '(repeat (string :tag "Argument")) | 285 | :type '(repeat (string :tag "Argument")) |
| 284 | :group 'shell) | 286 | :group 'shell) |
| 285 | 287 | ||
| 288 | ;; Note: There are no explicit references to the variable `explicit-bash-args'. | ||
| 289 | ;; It is used implicitly by M-x shell when the interactive shell is `bash'. | ||
| 286 | (defcustom explicit-bash-args | 290 | (defcustom explicit-bash-args |
| 287 | ;; Tell bash not to use readline, except for bash 1.x which doesn't grook --noediting. | ||
| 288 | ;; Bash 1.x has -nolineediting, but process-send-eof cannot terminate bash if we use it. | ||
| 289 | (let* ((prog (or (and (boundp 'explicit-shell-file-name) explicit-shell-file-name) | 291 | (let* ((prog (or (and (boundp 'explicit-shell-file-name) explicit-shell-file-name) |
| 290 | (getenv "ESHELL") shell-file-name)) | 292 | (getenv "ESHELL") shell-file-name)) |
| 291 | (name (file-name-nondirectory prog))) | 293 | (name (file-name-nondirectory prog))) |
| 294 | ;; Tell bash not to use readline, except for bash 1.x which | ||
| 295 | ;; doesn't grook --noediting. Bash 1.x has -nolineediting, but | ||
| 296 | ;; process-send-eof cannot terminate bash if we use it. | ||
| 292 | (if (and (not purify-flag) | 297 | (if (and (not purify-flag) |
| 293 | (equal name "bash") | 298 | (equal name "bash") |
| 294 | (file-executable-p prog) | 299 | (file-executable-p prog) |
diff --git a/lisp/simple.el b/lisp/simple.el index 55f476213fd..85f43097a1a 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -1675,7 +1675,7 @@ is not *inside* the region START...END." | |||
| 1675 | Normally, Emacs discards the undo info for the current command if | 1675 | Normally, Emacs discards the undo info for the current command if |
| 1676 | it exceeds `undo-outer-limit'. But if you set this option | 1676 | it exceeds `undo-outer-limit'. But if you set this option |
| 1677 | non-nil, it asks in the echo area whether to discard the info. | 1677 | non-nil, it asks in the echo area whether to discard the info. |
| 1678 | If you answer no, there a slight risk that Emacs might crash, so | 1678 | If you answer no, there is a slight risk that Emacs might crash, so |
| 1679 | only do it if you really want to undo the command. | 1679 | only do it if you really want to undo the command. |
| 1680 | 1680 | ||
| 1681 | This option is mainly intended for debugging. You have to be | 1681 | This option is mainly intended for debugging. You have to be |
diff --git a/lisp/strokes.el b/lisp/strokes.el index bcf7656347e..8d2b021ce61 100644 --- a/lisp/strokes.el +++ b/lisp/strokes.el | |||
| @@ -142,6 +142,8 @@ | |||
| 142 | ;; the user to enter strokes which "remove the pencil from the paper" | 142 | ;; the user to enter strokes which "remove the pencil from the paper" |
| 143 | ;; so to speak, so one character can have multiple strokes. | 143 | ;; so to speak, so one character can have multiple strokes. |
| 144 | 144 | ||
| 145 | ;; NOTE (Oct 7, 2006): The URLs below seem to be invalid!!! | ||
| 146 | |||
| 145 | ;; You can read more about strokes at: | 147 | ;; You can read more about strokes at: |
| 146 | 148 | ||
| 147 | ;; http://www.mit.edu/people/cadet/strokes-help.html | 149 | ;; http://www.mit.edu/people/cadet/strokes-help.html |
| @@ -211,7 +213,6 @@ static char * stroke_xpm[] = { | |||
| 211 | (defgroup strokes nil | 213 | (defgroup strokes nil |
| 212 | "Control Emacs through mouse strokes." | 214 | "Control Emacs through mouse strokes." |
| 213 | :link '(emacs-commentary-link "strokes") | 215 | :link '(emacs-commentary-link "strokes") |
| 214 | :link '(url-link "http://www.mit.edu/people/cadet/strokes-help.html") | ||
| 215 | :group 'mouse) | 216 | :group 'mouse) |
| 216 | 217 | ||
| 217 | (defcustom strokes-modeline-string " Strokes" | 218 | (defcustom strokes-modeline-string " Strokes" |
diff --git a/lisp/subr.el b/lisp/subr.el index 0d0bf7c7cc3..816cf9094e0 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -2235,7 +2235,9 @@ BUFFER is the buffer (or buffer name) to associate with the process. | |||
| 2235 | BUFFER may be also nil, meaning that this process is not associated | 2235 | BUFFER may be also nil, meaning that this process is not associated |
| 2236 | with any buffer | 2236 | with any buffer |
| 2237 | COMMAND is the name of a shell command. | 2237 | COMMAND is the name of a shell command. |
| 2238 | Remaining arguments are the arguments for the command. | 2238 | Remaining arguments are the arguments for the command; they are all |
| 2239 | spliced together with blanks separating between each two of them, before | ||
| 2240 | passing the command to the shell. | ||
| 2239 | Wildcards and redirection are handled as usual in the shell. | 2241 | Wildcards and redirection are handled as usual in the shell. |
| 2240 | 2242 | ||
| 2241 | \(fn NAME BUFFER COMMAND &rest COMMAND-ARGS)" | 2243 | \(fn NAME BUFFER COMMAND &rest COMMAND-ARGS)" |
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el index c8ecc3df63d..caca6a6ae7d 100644 --- a/lisp/textmodes/org.el +++ b/lisp/textmodes/org.el | |||
| @@ -2690,7 +2690,7 @@ Also put tags into group 4 if tags are present.") | |||
| 2690 | (make-variable-buffer-local 'org-keyword-time-regexp) | 2690 | (make-variable-buffer-local 'org-keyword-time-regexp) |
| 2691 | 2691 | ||
| 2692 | (defconst org-rm-props '(invisible t face t keymap t intangible t mouse-face t | 2692 | (defconst org-rm-props '(invisible t face t keymap t intangible t mouse-face t |
| 2693 | mouse-map t) | 2693 | rear-nonsticky t mouse-map t) |
| 2694 | "Properties to remove when a string without properties is wanted.") | 2694 | "Properties to remove when a string without properties is wanted.") |
| 2695 | 2695 | ||
| 2696 | (defsubst org-match-string-no-properties (num &optional string) | 2696 | (defsubst org-match-string-no-properties (num &optional string) |
| @@ -3140,6 +3140,7 @@ that will be added to PLIST. Returns the string that was modified." | |||
| 3140 | (progn | 3140 | (progn |
| 3141 | (add-text-properties (match-beginning 0) (match-end 0) | 3141 | (add-text-properties (match-beginning 0) (match-end 0) |
| 3142 | (list 'mouse-face 'highlight | 3142 | (list 'mouse-face 'highlight |
| 3143 | 'rear-nonsticky t | ||
| 3143 | 'keymap org-mouse-map | 3144 | 'keymap org-mouse-map |
| 3144 | )) | 3145 | )) |
| 3145 | t))) | 3146 | t))) |
| @@ -3150,6 +3151,7 @@ that will be added to PLIST. Returns the string that was modified." | |||
| 3150 | (progn | 3151 | (progn |
| 3151 | (add-text-properties (match-beginning 0) (match-end 0) | 3152 | (add-text-properties (match-beginning 0) (match-end 0) |
| 3152 | (list 'mouse-face 'highlight | 3153 | (list 'mouse-face 'highlight |
| 3154 | 'rear-nonsticky t | ||
| 3153 | 'keymap org-mouse-map | 3155 | 'keymap org-mouse-map |
| 3154 | )) | 3156 | )) |
| 3155 | t))) | 3157 | t))) |
| @@ -3188,6 +3190,7 @@ that will be added to PLIST. Returns the string that was modified." | |||
| 3188 | (progn | 3190 | (progn |
| 3189 | (add-text-properties (match-beginning 0) (match-end 0) | 3191 | (add-text-properties (match-beginning 0) (match-end 0) |
| 3190 | (list 'mouse-face 'highlight | 3192 | (list 'mouse-face 'highlight |
| 3193 | 'rear-nonsticky t | ||
| 3191 | 'keymap org-mouse-map)) | 3194 | 'keymap org-mouse-map)) |
| 3192 | t))) | 3195 | t))) |
| 3193 | 3196 | ||
| @@ -3206,6 +3209,7 @@ that will be added to PLIST. Returns the string that was modified." | |||
| 3206 | (progn | 3209 | (progn |
| 3207 | (add-text-properties (match-beginning 0) (match-end 0) | 3210 | (add-text-properties (match-beginning 0) (match-end 0) |
| 3208 | (list 'mouse-face 'highlight | 3211 | (list 'mouse-face 'highlight |
| 3212 | 'rear-nonsticky t | ||
| 3209 | 'keymap org-mouse-map | 3213 | 'keymap org-mouse-map |
| 3210 | 'help-echo "Radio target link" | 3214 | 'help-echo "Radio target link" |
| 3211 | 'org-linked-text t)) | 3215 | 'org-linked-text t)) |
| @@ -3271,6 +3275,7 @@ between words." | |||
| 3271 | (progn | 3275 | (progn |
| 3272 | (add-text-properties (match-beginning 0) (match-end 0) | 3276 | (add-text-properties (match-beginning 0) (match-end 0) |
| 3273 | (list 'mouse-face 'highlight | 3277 | (list 'mouse-face 'highlight |
| 3278 | 'rear-nonsticky t | ||
| 3274 | 'keymap org-mouse-map)) | 3279 | 'keymap org-mouse-map)) |
| 3275 | t))) | 3280 | t))) |
| 3276 | 3281 | ||
| @@ -3279,6 +3284,7 @@ between words." | |||
| 3279 | (progn | 3284 | (progn |
| 3280 | (add-text-properties (match-beginning 1) (match-end 1) | 3285 | (add-text-properties (match-beginning 1) (match-end 1) |
| 3281 | (list 'mouse-face 'highlight | 3286 | (list 'mouse-face 'highlight |
| 3287 | 'rear-nonsticky t | ||
| 3282 | 'keymap org-mouse-map)) | 3288 | 'keymap org-mouse-map)) |
| 3283 | t))) | 3289 | t))) |
| 3284 | 3290 | ||
| @@ -3380,6 +3386,7 @@ between words." | |||
| 3380 | deactivate-mark buffer-file-name buffer-file-truename) | 3386 | deactivate-mark buffer-file-name buffer-file-truename) |
| 3381 | (remove-text-properties beg end | 3387 | (remove-text-properties beg end |
| 3382 | '(mouse-face nil keymap nil org-linked-text nil | 3388 | '(mouse-face nil keymap nil org-linked-text nil |
| 3389 | rear-nonsticky nil | ||
| 3383 | invisible nil intangible nil)))) | 3390 | invisible nil intangible nil)))) |
| 3384 | ;;; Visibility cycling | 3391 | ;;; Visibility cycling |
| 3385 | 3392 | ||
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el index e1ae98a59df..b878c288735 100644 --- a/lisp/textmodes/reftex-global.el +++ b/lisp/textmodes/reftex-global.el | |||
| @@ -38,7 +38,8 @@ The TAGS file is also immediately visited with `visit-tags-table'." | |||
| 38 | (reftex-access-scan-info current-prefix-arg) | 38 | (reftex-access-scan-info current-prefix-arg) |
| 39 | (let* ((master (reftex-TeX-master-file)) | 39 | (let* ((master (reftex-TeX-master-file)) |
| 40 | (files (reftex-all-document-files)) | 40 | (files (reftex-all-document-files)) |
| 41 | (cmd (format "etags %s" (mapconcat 'identity files " ")))) | 41 | (cmd (format "etags %s" (mapconcat 'shell-quote-argument |
| 42 | files " ")))) | ||
| 42 | (save-excursion | 43 | (save-excursion |
| 43 | (set-buffer (reftex-get-file-buffer-force master)) | 44 | (set-buffer (reftex-get-file-buffer-force master)) |
| 44 | (message "Running etags to create TAGS file...") | 45 | (message "Running etags to create TAGS file...") |
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index f4334fbbd70..0f8a948e363 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el | |||
| @@ -232,7 +232,7 @@ distribution. Mixed-case symbols are convenience aliases.") | |||
| 232 | "LaTeX label and citation support." | 232 | "LaTeX label and citation support." |
| 233 | :tag "RefTeX" | 233 | :tag "RefTeX" |
| 234 | :link '(url-link :tag "Home Page" | 234 | :link '(url-link :tag "Home Page" |
| 235 | "http://zon.astro.uva.nl/~dominik/Tools/") | 235 | "http://staff.science.uva.nl/~dominik/Tools/reftex/") |
| 236 | :link '(emacs-commentary-link :tag "Commentary in reftex.el" "reftex.el") | 236 | :link '(emacs-commentary-link :tag "Commentary in reftex.el" "reftex.el") |
| 237 | :link '(custom-manual "(reftex)Top") | 237 | :link '(custom-manual "(reftex)Top") |
| 238 | :prefix "reftex-" | 238 | :prefix "reftex-" |
diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el index b8ab100c19d..958ef179b26 100644 --- a/lisp/textmodes/two-column.el +++ b/lisp/textmodes/two-column.el | |||
| @@ -340,9 +340,9 @@ The appearance of the screen can be customized by the variables | |||
| 340 | ;;;###autoload | 340 | ;;;###autoload |
| 341 | (defun 2C-two-columns (&optional buffer) | 341 | (defun 2C-two-columns (&optional buffer) |
| 342 | "Split current window vertically for two-column editing. | 342 | "Split current window vertically for two-column editing. |
| 343 | When called the first time, associates a buffer with the current | 343 | \\<global-map>When called the first time, associates a buffer with the current |
| 344 | buffer in two-column minor mode (see \\[describe-mode] ). | 344 | buffer in two-column minor mode (use \\[describe-mode] once in the mode, |
| 345 | Runs `2C-other-buffer-hook' in the new buffer. | 345 | for details.). It runs `2C-other-buffer-hook' in the new buffer. |
| 346 | When called again, restores the screen layout with the current buffer | 346 | When called again, restores the screen layout with the current buffer |
| 347 | first and the associated buffer to its right." | 347 | first and the associated buffer to its right." |
| 348 | (interactive "P") | 348 | (interactive "P") |
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index a6afb0ba20f..2aa14af8983 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,3 +1,22 @@ | |||
| 1 | 2006-10-12 Magnus Henoch <mange@freemail.hu> | ||
| 2 | |||
| 3 | * url-http.el (url-http-find-free-connection): Handle | ||
| 4 | url-open-stream returning nil. | ||
| 5 | |||
| 6 | 2006-10-11 Magnus Henoch <mange@freemail.hu> | ||
| 7 | |||
| 8 | * url-https.el: Remove (clashes with url-http on 8+3 systems). | ||
| 9 | |||
| 10 | * url-http.el: Move contents of url-https.el here. Add autoloads. | ||
| 11 | |||
| 12 | 2006-10-09 Magnus Henoch <mange@freemail.hu> | ||
| 13 | |||
| 14 | * url-parse.el (url-generic-parse-url): Handle URLs with empty | ||
| 15 | path component and non-empty query component. Untangle path, | ||
| 16 | query and fragment parsing code. Add references to RFC 3986 in | ||
| 17 | comments. | ||
| 18 | (url-recreate-url-attributes): Start query string with "?", not ";". | ||
| 19 | |||
| 1 | 2006-09-20 Stefan Monnier <monnier@iro.umontreal.ca> | 20 | 2006-09-20 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 21 | ||
| 3 | * url-dav.el (url-dav-file-attributes): Simplify. | 22 | * url-dav.el (url-dav-file-attributes): Simplify. |
| @@ -420,32 +439,19 @@ | |||
| 420 | 439 | ||
| 421 | 2004-10-10 Lars Hansen <larsh@math.ku.dk> | 440 | 2004-10-10 Lars Hansen <larsh@math.ku.dk> |
| 422 | 441 | ||
| 423 | * url-auth.el: Update header and footer. | 442 | * url-auth.el: |
| 424 | 443 | * url-cache.el: | |
| 425 | * url-cache.el: Update header and footer. | 444 | * url-cid.el: |
| 426 | 445 | * url-dired.el: | |
| 427 | * url-cid.el: Update header and footer. | 446 | * url-expand.el: |
| 428 | 447 | * url-ftp.el: | |
| 429 | * url-dired.el: Update header and footer. | 448 | * url-gw.el: |
| 430 | 449 | * url-imap.el: | |
| 431 | * url-expand.el: Update header and footer. | 450 | * url-irc.el: |
| 432 | 451 | * url-misc.el: | |
| 433 | * url-ftp.el: Update header and footer. | 452 | * url-news.el: |
| 434 | 453 | * url-ns.el: | |
| 435 | * url-gw.el: Update header and footer. | 454 | * url-privacy.el: |
| 436 | |||
| 437 | * url-imap.el: Update header and footer. | ||
| 438 | |||
| 439 | * url-irc.el: Update header and footer. | ||
| 440 | |||
| 441 | * url-misc.el: Update header and footer. | ||
| 442 | |||
| 443 | * url-news.el: Update header and footer. | ||
| 444 | |||
| 445 | * url-ns.el: Update header and footer. | ||
| 446 | |||
| 447 | * url-privacy.el: Update header and footer. | ||
| 448 | |||
| 449 | * url-proxy.el: Update header and footer. | 455 | * url-proxy.el: Update header and footer. |
| 450 | 456 | ||
| 451 | * url-vars.el: Update header. | 457 | * url-vars.el: Update header. |
| @@ -490,42 +496,24 @@ | |||
| 490 | 496 | ||
| 491 | 2004-10-10 Lars Hansen <larsh@math.ku.dk> | 497 | 2004-10-10 Lars Hansen <larsh@math.ku.dk> |
| 492 | 498 | ||
| 493 | * url-auth.el: Fix copyright notice. | 499 | * url-auth.el: |
| 494 | 500 | * url-cache.el: | |
| 495 | * url-cache.el: Fix copyright notice. | 501 | * url-cookie.el: |
| 496 | 502 | * url-dired.el: | |
| 497 | * url-cookie.el: Fix copyright notice. | 503 | * url-file.el: |
| 498 | 504 | * url-ftp.el: | |
| 499 | * url-dired.el: Fix copyright notice. | 505 | * url-handlers.el: |
| 500 | 506 | * url-history.el: | |
| 501 | * url-file.el: Fix copyright notice. | 507 | * url-irc.el: |
| 502 | 508 | * url-mailto.el: | |
| 503 | * url-ftp.el: Fix copyright notice. | 509 | * url-methods.el: |
| 504 | 510 | * url-misc.el: | |
| 505 | * url-handlers.el: Fix copyright notice. | 511 | * url-news.el: |
| 506 | 512 | * url-nfs.el: | |
| 507 | * url-history.el: Fix copyright notice. | 513 | * url-parse.el: |
| 508 | 514 | * url-privacy.el: | |
| 509 | * url-irc.el: Fix copyright notice. | 515 | * url-vars.el: |
| 510 | 516 | * url.el: | |
| 511 | * url-mailto.el: Fix copyright notice. | ||
| 512 | |||
| 513 | * url-methods.el: Fix copyright notice. | ||
| 514 | |||
| 515 | * url-misc.el: Fix copyright notice. | ||
| 516 | |||
| 517 | * url-news.el: Fix copyright notice. | ||
| 518 | |||
| 519 | * url-nfs.el: Fix copyright notice. | ||
| 520 | |||
| 521 | * url-parse.el: Fix copyright notice. | ||
| 522 | |||
| 523 | * url-privacy.el: Fix copyright notice. | ||
| 524 | |||
| 525 | * url-vars.el: Fix copyright notice. | ||
| 526 | |||
| 527 | * url.el: Fix copyright notice. | ||
| 528 | |||
| 529 | * url-util.el: Fix copyright notice. | 517 | * url-util.el: Fix copyright notice. |
| 530 | 518 | ||
| 531 | 2004-10-06 Stefan Monnier <monnier@iro.umontreal.ca> | 519 | 2004-10-06 Stefan Monnier <monnier@iro.umontreal.ca> |
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 1b8bc459f49..bf8069ded7e 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el | |||
| @@ -123,8 +123,10 @@ request.") | |||
| 123 | ;; like authentication. But we use another buffer afterwards. | 123 | ;; like authentication. But we use another buffer afterwards. |
| 124 | (unwind-protect | 124 | (unwind-protect |
| 125 | (let ((proc (url-open-stream host buf host port))) | 125 | (let ((proc (url-open-stream host buf host port))) |
| 126 | ;; Drop the temp buffer link before killing the buffer. | 126 | ;; url-open-stream might return nil. |
| 127 | (set-process-buffer proc nil) | 127 | (when (processp proc) |
| 128 | ;; Drop the temp buffer link before killing the buffer. | ||
| 129 | (set-process-buffer proc nil)) | ||
| 128 | proc) | 130 | proc) |
| 129 | (kill-buffer buf))))))) | 131 | (kill-buffer buf))))))) |
| 130 | 132 | ||
| @@ -1245,6 +1247,35 @@ p3p | |||
| 1245 | (if buffer (kill-buffer buffer)) | 1247 | (if buffer (kill-buffer buffer)) |
| 1246 | options)) | 1248 | options)) |
| 1247 | 1249 | ||
| 1250 | ;; HTTPS. This used to be in url-https.el, but that file collides | ||
| 1251 | ;; with url-http.el on systems with 8-character file names. | ||
| 1252 | (require 'tls) | ||
| 1253 | |||
| 1254 | ;;;###autoload | ||
| 1255 | (defconst url-https-default-port 443 "Default HTTPS port.") | ||
| 1256 | ;;;###autoload | ||
| 1257 | (defconst url-https-asynchronous-p t "HTTPS retrievals are asynchronous.") | ||
| 1258 | ;;;###autoload | ||
| 1259 | (defalias 'url-https-expand-file-name 'url-http-expand-file-name) | ||
| 1260 | |||
| 1261 | (defmacro url-https-create-secure-wrapper (method args) | ||
| 1262 | `(defun ,(intern (format (if method "url-https-%s" "url-https") method)) ,args | ||
| 1263 | ,(format "HTTPS wrapper around `%s' call." (or method "url-http")) | ||
| 1264 | (let ((url-gateway-method (condition-case () | ||
| 1265 | (require 'ssl) | ||
| 1266 | (error 'tls)))) | ||
| 1267 | (,(intern (format (if method "url-http-%s" "url-http") method)) | ||
| 1268 | ,@(remove '&rest (remove '&optional args)))))) | ||
| 1269 | |||
| 1270 | ;;;###autoload (autoload 'url-https "url-http") | ||
| 1271 | (url-https-create-secure-wrapper nil (url callback cbargs)) | ||
| 1272 | ;;;###autoload (autoload 'url-https-file-exists-p "url-http") | ||
| 1273 | (url-https-create-secure-wrapper file-exists-p (url)) | ||
| 1274 | ;;;###autoload (autoload 'url-https-file-readable-p "url-http") | ||
| 1275 | (url-https-create-secure-wrapper file-readable-p (url)) | ||
| 1276 | ;;;###autoload (autoload 'url-https-file-attributes "url-http") | ||
| 1277 | (url-https-create-secure-wrapper file-attributes (url &optional id-format)) | ||
| 1278 | |||
| 1248 | (provide 'url-http) | 1279 | (provide 'url-http) |
| 1249 | 1280 | ||
| 1250 | ;; arch-tag: ba7c59ae-c0f4-4a31-9617-d85f221732ee | 1281 | ;; arch-tag: ba7c59ae-c0f4-4a31-9617-d85f221732ee |
diff --git a/lisp/url/url-https.el b/lisp/url/url-https.el deleted file mode 100644 index a7440a76535..00000000000 --- a/lisp/url/url-https.el +++ /dev/null | |||
| @@ -1,56 +0,0 @@ | |||
| 1 | ;;; url-https.el --- HTTP over SSL/TLS routines | ||
| 2 | |||
| 3 | ;; Copyright (C) 1999, 2004, 2005, 2006 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Keywords: comm, data, processes | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | ||
| 8 | ;; | ||
| 9 | ;; GNU Emacs is free software; you can redistribute it and/or modify | ||
| 10 | ;; it under the terms of the GNU General Public License as published by | ||
| 11 | ;; the Free Software Foundation; either version 2, or (at your option) | ||
| 12 | ;; any later version. | ||
| 13 | ;; | ||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 18 | ;; | ||
| 19 | ;; You should have received a copy of the GNU General Public License | ||
| 20 | ;; along with GNU Emacs; see the file COPYING. If not, write to the | ||
| 21 | ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
| 22 | ;; Boston, MA 02110-1301, USA. | ||
| 23 | |||
| 24 | ;;; Commentary: | ||
| 25 | |||
| 26 | ;;; Code: | ||
| 27 | |||
| 28 | (require 'url-gw) | ||
| 29 | (require 'url-util) | ||
| 30 | (require 'url-parse) | ||
| 31 | (require 'url-cookie) | ||
| 32 | (require 'url-http) | ||
| 33 | (require 'tls) | ||
| 34 | |||
| 35 | (defconst url-https-default-port 443 "Default HTTPS port.") | ||
| 36 | (defconst url-https-asynchronous-p t "HTTPS retrievals are asynchronous.") | ||
| 37 | (defalias 'url-https-expand-file-name 'url-http-expand-file-name) | ||
| 38 | |||
| 39 | (defmacro url-https-create-secure-wrapper (method args) | ||
| 40 | `(defun ,(intern (format (if method "url-https-%s" "url-https") method)) ,args | ||
| 41 | ,(format "HTTPS wrapper around `%s' call." (or method "url-http")) | ||
| 42 | (let ((url-gateway-method (condition-case () | ||
| 43 | (require 'ssl) | ||
| 44 | (error 'tls)))) | ||
| 45 | (,(intern (format (if method "url-http-%s" "url-http") method)) | ||
| 46 | ,@(remove '&rest (remove '&optional args)))))) | ||
| 47 | |||
| 48 | (url-https-create-secure-wrapper nil (url callback cbargs)) | ||
| 49 | (url-https-create-secure-wrapper file-exists-p (url)) | ||
| 50 | (url-https-create-secure-wrapper file-readable-p (url)) | ||
| 51 | (url-https-create-secure-wrapper file-attributes (url &optional id-format)) | ||
| 52 | |||
| 53 | (provide 'url-https) | ||
| 54 | |||
| 55 | ;; arch-tag: c3645ac5-c248-4d12-ad41-7c4b6f7b6d19 | ||
| 56 | ;;; url-https.el ends here | ||
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el index 1e4d93a861e..2e4fc8a9f27 100644 --- a/lisp/url/url-parse.el +++ b/lisp/url/url-parse.el | |||
| @@ -108,7 +108,7 @@ | |||
| 108 | (defun url-recreate-url-attributes (urlobj) | 108 | (defun url-recreate-url-attributes (urlobj) |
| 109 | "Recreate the attributes of an URL string from the parsed URLOBJ." | 109 | "Recreate the attributes of an URL string from the parsed URLOBJ." |
| 110 | (when (url-attributes urlobj) | 110 | (when (url-attributes urlobj) |
| 111 | (concat ";" | 111 | (concat "?" |
| 112 | (mapconcat (lambda (x) | 112 | (mapconcat (lambda (x) |
| 113 | (if (cdr x) | 113 | (if (cdr x) |
| 114 | (concat (car x) "=" (cdr x)) | 114 | (concat (car x) "=" (cdr x)) |
| @@ -120,11 +120,16 @@ | |||
| 120 | "Return a vector of the parts of URL. | 120 | "Return a vector of the parts of URL. |
| 121 | Format is: | 121 | Format is: |
| 122 | \[TYPE USER PASSWORD HOST PORT FILE TARGET ATTRIBUTES FULL\]" | 122 | \[TYPE USER PASSWORD HOST PORT FILE TARGET ATTRIBUTES FULL\]" |
| 123 | ;; See RFC 3986. | ||
| 123 | (cond | 124 | (cond |
| 124 | ((null url) | 125 | ((null url) |
| 125 | (make-vector 9 nil)) | 126 | (make-vector 9 nil)) |
| 126 | ((or (not (string-match url-nonrelative-link url)) | 127 | ((or (not (string-match url-nonrelative-link url)) |
| 127 | (= ?/ (string-to-char url))) | 128 | (= ?/ (string-to-char url))) |
| 129 | ;; This isn't correct, as a relative URL can be a fragment link | ||
| 130 | ;; (e.g. "#foo") and many other things (see section 4.2). | ||
| 131 | ;; However, let's not fix something that isn't broken, especially | ||
| 132 | ;; when close to a release. | ||
| 128 | (let ((retval (make-vector 9 nil))) | 133 | (let ((retval (make-vector 9 nil))) |
| 129 | (url-set-filename retval url) | 134 | (url-set-filename retval url) |
| 130 | (url-set-full retval nil) | 135 | (url-set-full retval nil) |
| @@ -148,6 +153,8 @@ Format is: | |||
| 148 | (insert url) | 153 | (insert url) |
| 149 | (goto-char (point-min)) | 154 | (goto-char (point-min)) |
| 150 | (setq save-pos (point)) | 155 | (setq save-pos (point)) |
| 156 | |||
| 157 | ;; 3.1. Scheme | ||
| 151 | (if (not (looking-at "//")) | 158 | (if (not (looking-at "//")) |
| 152 | (progn | 159 | (progn |
| 153 | (skip-chars-forward "a-zA-Z+.\\-") | 160 | (skip-chars-forward "a-zA-Z+.\\-") |
| @@ -156,13 +163,13 @@ Format is: | |||
| 156 | (skip-chars-forward ":") | 163 | (skip-chars-forward ":") |
| 157 | (setq save-pos (point)))) | 164 | (setq save-pos (point)))) |
| 158 | 165 | ||
| 159 | ;; We are doing a fully specified URL, with hostname and all | 166 | ;; 3.2. Authority |
| 160 | (if (looking-at "//") | 167 | (if (looking-at "//") |
| 161 | (progn | 168 | (progn |
| 162 | (setq full t) | 169 | (setq full t) |
| 163 | (forward-char 2) | 170 | (forward-char 2) |
| 164 | (setq save-pos (point)) | 171 | (setq save-pos (point)) |
| 165 | (skip-chars-forward "^/") | 172 | (skip-chars-forward "^/\\?#") |
| 166 | (setq host (buffer-substring save-pos (point))) | 173 | (setq host (buffer-substring save-pos (point))) |
| 167 | (if (string-match "^\\([^@]+\\)@" host) | 174 | (if (string-match "^\\([^@]+\\)@" host) |
| 168 | (setq user (match-string 1 host) | 175 | (setq user (match-string 1 host) |
| @@ -170,6 +177,7 @@ Format is: | |||
| 170 | (if (and user (string-match "\\([^:]+\\):\\(.*\\)" user)) | 177 | (if (and user (string-match "\\([^:]+\\):\\(.*\\)" user)) |
| 171 | (setq pass (match-string 2 user) | 178 | (setq pass (match-string 2 user) |
| 172 | user (match-string 1 user))) | 179 | user (match-string 1 user))) |
| 180 | ;; This gives wrong results for IPv6 literal addresses. | ||
| 173 | (if (string-match ":\\([0-9+]+\\)" host) | 181 | (if (string-match ":\\([0-9+]+\\)" host) |
| 174 | (setq port (string-to-number (match-string 1 host)) | 182 | (setq port (string-to-number (match-string 1 host)) |
| 175 | host (substring host 0 (match-beginning 0)))) | 183 | host (substring host 0 (match-beginning 0)))) |
| @@ -181,29 +189,26 @@ Format is: | |||
| 181 | (if (not port) | 189 | (if (not port) |
| 182 | (setq port (url-scheme-get-property prot 'default-port))) | 190 | (setq port (url-scheme-get-property prot 'default-port))) |
| 183 | 191 | ||
| 184 | ;; Gross hack to preserve ';' in data URLs | 192 | ;; 3.3. Path |
| 185 | |||
| 186 | (setq save-pos (point)) | 193 | (setq save-pos (point)) |
| 194 | (skip-chars-forward "^#?") | ||
| 195 | (setq file (buffer-substring save-pos (point))) | ||
| 187 | 196 | ||
| 188 | (if (string= "data" prot) | 197 | ;; 3.4. Query |
| 189 | (goto-char (point-max)) | 198 | (when (looking-at "\\?") |
| 190 | ;; Now check for references | 199 | (forward-char 1) |
| 200 | (setq save-pos (point)) | ||
| 191 | (skip-chars-forward "^#") | 201 | (skip-chars-forward "^#") |
| 192 | (if (eobp) | 202 | ;; RFC 3986 specifies no general way of parsing the query |
| 193 | nil | 203 | ;; string, but `url-parse-args' seems universal enough. |
| 194 | (delete-region | 204 | (setq attr (url-parse-args (buffer-substring save-pos (point)) t) |
| 195 | (point) | 205 | attr (nreverse attr))) |
| 196 | (progn | 206 | |
| 197 | (skip-chars-forward "#") | 207 | ;; 3.5. Fragment |
| 198 | (setq refs (buffer-substring (point) (point-max))) | 208 | (when (looking-at "#") |
| 199 | (point-max)))) | 209 | (forward-char 1) |
| 200 | (goto-char save-pos) | 210 | (setq refs (buffer-substring (point) (point-max)))) |
| 201 | (skip-chars-forward "^;") | ||
| 202 | (if (not (eobp)) | ||
| 203 | (setq attr (url-parse-args (buffer-substring (point) (point-max)) t) | ||
| 204 | attr (nreverse attr)))) | ||
| 205 | 211 | ||
| 206 | (setq file (buffer-substring save-pos (point))) | ||
| 207 | (if (and host (string-match "%[0-9][0-9]" host)) | 212 | (if (and host (string-match "%[0-9][0-9]" host)) |
| 208 | (setq host (url-unhex-string host))) | 213 | (setq host (url-unhex-string host))) |
| 209 | (vector prot user pass host port file refs attr full)))))) | 214 | (vector prot user pass host port file refs attr full)))))) |
diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el index 13425391647..8b9973acab1 100644 --- a/lisp/vc-hooks.el +++ b/lisp/vc-hooks.el | |||
| @@ -52,11 +52,13 @@ BACKEND, use `vc-handled-backends'.") | |||
| 52 | (defvar vc-header-alist ()) | 52 | (defvar vc-header-alist ()) |
| 53 | (make-obsolete-variable 'vc-header-alist 'vc-BACKEND-header) | 53 | (make-obsolete-variable 'vc-header-alist 'vc-BACKEND-header) |
| 54 | 54 | ||
| 55 | (defvar vc-ignore-dir-regexp "\\`\\([\\/][\\/]\\|/net/\\|/afs/\\)\\'" | 55 | (defcustom vc-ignore-dir-regexp "\\`\\([\\/][\\/]\\|/net/\\|/afs/\\)\\'" |
| 56 | "Regexp matching directory names that are not under VC's control. | 56 | "Regexp matching directory names that are not under VC's control. |
| 57 | The default regexp prevents fruitless and time-consuming attempts | 57 | The default regexp prevents fruitless and time-consuming attempts |
| 58 | to determine the VC status in directories in which filenames are | 58 | to determine the VC status in directories in which filenames are |
| 59 | interpreted as hostnames.") | 59 | interpreted as hostnames." |
| 60 | :type 'regexp | ||
| 61 | :group 'vc) | ||
| 60 | 62 | ||
| 61 | (defcustom vc-handled-backends '(RCS CVS SVN SCCS Arch MCVS) | 63 | (defcustom vc-handled-backends '(RCS CVS SVN SCCS Arch MCVS) |
| 62 | ;; Arch and MCVS come last because they are per-tree rather than per-dir. | 64 | ;; Arch and MCVS come last because they are per-tree rather than per-dir. |
| @@ -308,6 +310,9 @@ non-nil if FILE exists and its contents were successfully inserted." | |||
| 308 | "Find the root of a checked out project. | 310 | "Find the root of a checked out project. |
| 309 | The function walks up the directory tree from FILE looking for WITNESS. | 311 | The function walks up the directory tree from FILE looking for WITNESS. |
| 310 | If WITNESS if not found, return nil, otherwise return the root." | 312 | If WITNESS if not found, return nil, otherwise return the root." |
| 313 | ;; Represent /home/luser/foo as ~/foo so that we don't try to look for | ||
| 314 | ;; witnesses in /home or in /. | ||
| 315 | (setq file (abbreviate-file-name file)) | ||
| 311 | (let ((root nil)) | 316 | (let ((root nil)) |
| 312 | (while (not (or root | 317 | (while (not (or root |
| 313 | (equal file (setq file (file-name-directory file))) | 318 | (equal file (setq file (file-name-directory file))) |
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index bef49d71a00..04e6b0751ee 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el | |||
| @@ -1873,7 +1873,7 @@ If END is omitted, it defaults to the length of LIST." | |||
| 1873 | "History of field minibuffer edits.") | 1873 | "History of field minibuffer edits.") |
| 1874 | 1874 | ||
| 1875 | (defun widget-field-prompt-internal (widget prompt initial history) | 1875 | (defun widget-field-prompt-internal (widget prompt initial history) |
| 1876 | "Read string for WIDGET promptinhg with PROMPT. | 1876 | "Read string for WIDGET prompting with PROMPT. |
| 1877 | INITIAL is the initial input and HISTORY is a symbol containing | 1877 | INITIAL is the initial input and HISTORY is a symbol containing |
| 1878 | the earlier input." | 1878 | the earlier input." |
| 1879 | (read-string prompt initial history)) | 1879 | (read-string prompt initial history)) |
| @@ -2864,7 +2864,7 @@ The first group should be the link itself." | |||
| 2864 | 2864 | ||
| 2865 | (defcustom widget-documentation-link-p 'intern-soft | 2865 | (defcustom widget-documentation-link-p 'intern-soft |
| 2866 | "Predicate used to test if a string is useful as a link. | 2866 | "Predicate used to test if a string is useful as a link. |
| 2867 | The value should be a function. The function will be called one | 2867 | The value should be a function. The function will be called with one |
| 2868 | argument, a string, and should return non-nil if there should be a | 2868 | argument, a string, and should return non-nil if there should be a |
| 2869 | link for that string." | 2869 | link for that string." |
| 2870 | :type 'function | 2870 | :type 'function |
diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 109ac9d704e..b059d238cdd 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog | |||
| @@ -1,3 +1,21 @@ | |||
| 1 | 2006-10-13 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * frames.texi (Frame Titles): %c and %l are ignored in | ||
| 4 | frame-title-format. | ||
| 5 | |||
| 6 | 2006-10-11 Richard Stallman <rms@gnu.org> | ||
| 7 | |||
| 8 | * keymaps.texi (Key Sequences): Clarify use of kbd. | ||
| 9 | |||
| 10 | 2006-10-10 Kim F. Storm <storm@cua.dk> | ||
| 11 | |||
| 12 | * lists.texi (Sets And Lists): Add memql. | ||
| 13 | |||
| 14 | 2006-10-03 Richard Stallman <rms@gnu.org> | ||
| 15 | |||
| 16 | * searching.texi (Char Classes): Document :multibyte: and :unibyte:. | ||
| 17 | Clarify :ascii: and :nonascii:. | ||
| 18 | |||
| 1 | 2006-09-29 Juri Linkov <juri@jurta.org> | 19 | 2006-09-29 Juri Linkov <juri@jurta.org> |
| 2 | 20 | ||
| 3 | * modes.texi (%-Constructs): Reorder coding systems in the | 21 | * modes.texi (%-Constructs): Reorder coding systems in the |
| @@ -18,10 +36,6 @@ | |||
| 18 | * commands.texi (Command Loop Info): Explain how read-event affects | 36 | * commands.texi (Command Loop Info): Explain how read-event affects |
| 19 | this-command-keys. | 37 | this-command-keys. |
| 20 | 38 | ||
| 21 | 2006-09-21 Kim F. Storm <storm@cua.dk> | ||
| 22 | |||
| 23 | * lists.texi (Sets And Lists): Add memql. | ||
| 24 | |||
| 25 | 2006-09-20 Richard Stallman <rms@gnu.org> | 39 | 2006-09-20 Richard Stallman <rms@gnu.org> |
| 26 | 40 | ||
| 27 | * os.texi (Timers): Clarify about REPEAT when timer is delayed. | 41 | * os.texi (Timers): Clarify about REPEAT when timer is delayed. |
diff --git a/lispref/frames.texi b/lispref/frames.texi index 0f243135cbb..617a2a1d05d 100644 --- a/lispref/frames.texi +++ b/lispref/frames.texi | |||
| @@ -899,7 +899,8 @@ frame is redisplayed. | |||
| 899 | @defvar frame-title-format | 899 | @defvar frame-title-format |
| 900 | This variable specifies how to compute a name for a frame when you have | 900 | This variable specifies how to compute a name for a frame when you have |
| 901 | not explicitly specified one. The variable's value is actually a mode | 901 | not explicitly specified one. The variable's value is actually a mode |
| 902 | line construct, just like @code{mode-line-format}. @xref{Mode Line | 902 | line construct, just like @code{mode-line-format}, except that the |
| 903 | @samp{%c} and @samp{%l} constructs are ignored. @xref{Mode Line | ||
| 903 | Data}. | 904 | Data}. |
| 904 | @end defvar | 905 | @end defvar |
| 905 | 906 | ||
diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi index a3bd320a676..6f4c2d9aceb 100644 --- a/lispref/keymaps.texi +++ b/lispref/keymaps.texi | |||
| @@ -94,6 +94,9 @@ function key names with @samp{<@dots{}>}. | |||
| 94 | (kbd "<f1> SPC") @result{} [f1 32] | 94 | (kbd "<f1> SPC") @result{} [f1 32] |
| 95 | (kbd "C-M-<down>") @result{} [C-M-down] | 95 | (kbd "C-M-<down>") @result{} [C-M-down] |
| 96 | @end example | 96 | @end example |
| 97 | |||
| 98 | This macro is not meant for use with arguments that vary---only | ||
| 99 | with string constants. | ||
| 97 | @end defmac | 100 | @end defmac |
| 98 | 101 | ||
| 99 | @node Keymap Basics | 102 | @node Keymap Basics |
| @@ -169,6 +172,15 @@ keymap. | |||
| 169 | This specifies one binding, for events of type @var{type}. Each | 172 | This specifies one binding, for events of type @var{type}. Each |
| 170 | ordinary binding applies to events of a particular @dfn{event type}, | 173 | ordinary binding applies to events of a particular @dfn{event type}, |
| 171 | which is always a character or a symbol. @xref{Classifying Events}. | 174 | which is always a character or a symbol. @xref{Classifying Events}. |
| 175 | In this kind of binding, @var{binding} is a command. | ||
| 176 | |||
| 177 | @item (@var{type} @var{item-name} .@: @var{binding}) | ||
| 178 | This specifies a binding which is also a menu item | ||
| 179 | named @var{item-name}. @xref{Simple Menu Items}. | ||
| 180 | |||
| 181 | @item (@var{type} menu-item .@: @var{details}) | ||
| 182 | This specifies a binding which is also a menu item and allows use of | ||
| 183 | other features. @xref{Extended Menu Items}. | ||
| 172 | 184 | ||
| 173 | @item (t .@: @var{binding}) | 185 | @item (t .@: @var{binding}) |
| 174 | @cindex default key binding | 186 | @cindex default key binding |
| @@ -1947,6 +1959,13 @@ This function returns the overall prompt string of @var{keymap}, | |||
| 1947 | or @code{nil} if it has none. | 1959 | or @code{nil} if it has none. |
| 1948 | @end defun | 1960 | @end defun |
| 1949 | 1961 | ||
| 1962 | The menu's items are the bindings in the keymap. Each binding | ||
| 1963 | associates an event type to a definition, but the event types have no | ||
| 1964 | significance for the menu appearance. (Usually we use pseudo-events, | ||
| 1965 | symbols that the keyboard cannot generate, as the event types for menu | ||
| 1966 | item bindings.) The menu is generated entirely from the bindings that | ||
| 1967 | correspond in the keymap to these events. | ||
| 1968 | |||
| 1950 | The order of items in the menu is the same as the order of bindings in | 1969 | The order of items in the menu is the same as the order of bindings in |
| 1951 | the keymap. Since @code{define-key} puts new bindings at the front, you | 1970 | the keymap. Since @code{define-key} puts new bindings at the front, you |
| 1952 | should define the menu items starting at the bottom of the menu and | 1971 | should define the menu items starting at the bottom of the menu and |
| @@ -1967,8 +1986,8 @@ an existing menu, you can specify its position in the menu using | |||
| 1967 | @node Simple Menu Items | 1986 | @node Simple Menu Items |
| 1968 | @subsubsection Simple Menu Items | 1987 | @subsubsection Simple Menu Items |
| 1969 | 1988 | ||
| 1970 | The simpler and older way to define a menu keymap binding | 1989 | The simpler (and original) way to define a menu item is to bind some |
| 1971 | looks like this: | 1990 | event type (it doesn't matter what event type) to a binding like this: |
| 1972 | 1991 | ||
| 1973 | @example | 1992 | @example |
| 1974 | (@var{item-string} . @var{real-binding}) | 1993 | (@var{item-string} . @var{real-binding}) |
| @@ -1984,25 +2003,26 @@ built with the Gtk+ toolkit.@footnote{In this case, the text is first | |||
| 1984 | encoded using the @code{utf-8} coding system and then rendered by the | 2003 | encoded using the @code{utf-8} coding system and then rendered by the |
| 1985 | toolkit as it sees fit.} | 2004 | toolkit as it sees fit.} |
| 1986 | 2005 | ||
| 1987 | You can also supply a second string, called the help string, as follows: | 2006 | You can also supply a second string, called the help string, as follows: |
| 1988 | 2007 | ||
| 1989 | @example | 2008 | @example |
| 1990 | (@var{item-string} @var{help} . @var{real-binding}) | 2009 | (@var{item-string} @var{help} . @var{real-binding}) |
| 1991 | @end example | 2010 | @end example |
| 1992 | 2011 | ||
| 2012 | @noindent | ||
| 1993 | @var{help} specifies a ``help-echo'' string to display while the mouse | 2013 | @var{help} specifies a ``help-echo'' string to display while the mouse |
| 1994 | is on that item in the same way as @code{help-echo} text properties | 2014 | is on that item in the same way as @code{help-echo} text properties |
| 1995 | (@pxref{Help display}). | 2015 | (@pxref{Help display}). |
| 1996 | 2016 | ||
| 1997 | As far as @code{define-key} is concerned, @var{item-string} and | 2017 | As far as @code{define-key} is concerned, @var{item-string} and |
| 1998 | @var{help-string} are part of the event's binding. However, | 2018 | @var{help-string} are part of the event's binding. However, |
| 1999 | @code{lookup-key} returns just @var{real-binding}, and only | 2019 | @code{lookup-key} returns just @var{real-binding}, and only |
| 2000 | @var{real-binding} is used for executing the key. | 2020 | @var{real-binding} is used for executing the key. |
| 2001 | 2021 | ||
| 2002 | If @var{real-binding} is @code{nil}, then @var{item-string} appears in | 2022 | If @var{real-binding} is @code{nil}, then @var{item-string} appears in |
| 2003 | the menu but cannot be selected. | 2023 | the menu but cannot be selected. |
| 2004 | 2024 | ||
| 2005 | If @var{real-binding} is a symbol and has a non-@code{nil} | 2025 | If @var{real-binding} is a symbol and has a non-@code{nil} |
| 2006 | @code{menu-enable} property, that property is an expression that | 2026 | @code{menu-enable} property, that property is an expression that |
| 2007 | controls whether the menu item is enabled. Every time the keymap is | 2027 | controls whether the menu item is enabled. Every time the keymap is |
| 2008 | used to display a menu, Emacs evaluates the expression, and it enables | 2028 | used to display a menu, Emacs evaluates the expression, and it enables |
| @@ -2010,12 +2030,12 @@ the menu item only if the expression's value is non-@code{nil}. When a | |||
| 2010 | menu item is disabled, it is displayed in a ``fuzzy'' fashion, and | 2030 | menu item is disabled, it is displayed in a ``fuzzy'' fashion, and |
| 2011 | cannot be selected. | 2031 | cannot be selected. |
| 2012 | 2032 | ||
| 2013 | The menu bar does not recalculate which items are enabled every time you | 2033 | The menu bar does not recalculate which items are enabled every time you |
| 2014 | look at a menu. This is because the X toolkit requires the whole tree | 2034 | look at a menu. This is because the X toolkit requires the whole tree |
| 2015 | of menus in advance. To force recalculation of the menu bar, call | 2035 | of menus in advance. To force recalculation of the menu bar, call |
| 2016 | @code{force-mode-line-update} (@pxref{Mode Line Format}). | 2036 | @code{force-mode-line-update} (@pxref{Mode Line Format}). |
| 2017 | 2037 | ||
| 2018 | You've probably noticed that menu items show the equivalent keyboard key | 2038 | You've probably noticed that menu items show the equivalent keyboard key |
| 2019 | sequence (if any) to invoke the same command. To save time on | 2039 | sequence (if any) to invoke the same command. To save time on |
| 2020 | recalculation, menu display caches this information in a sublist in the | 2040 | recalculation, menu display caches this information in a sublist in the |
| 2021 | binding, like this: | 2041 | binding, like this: |
| @@ -2035,9 +2055,9 @@ the item strings themselves, since that is redundant. | |||
| 2035 | @kindex menu-item | 2055 | @kindex menu-item |
| 2036 | 2056 | ||
| 2037 | An extended-format menu item is a more flexible and also cleaner | 2057 | An extended-format menu item is a more flexible and also cleaner |
| 2038 | alternative to the simple format. It consists of a list that starts | 2058 | alternative to the simple format. You define an event type with a |
| 2039 | with the symbol @code{menu-item}. To define a non-selectable string, | 2059 | binding that's a list starting with the symbol @code{menu-item}. |
| 2040 | the item looks like this: | 2060 | For a non-selectable string, the binding looks like this: |
| 2041 | 2061 | ||
| 2042 | @example | 2062 | @example |
| 2043 | (menu-item @var{item-name}) | 2063 | (menu-item @var{item-name}) |
| @@ -2048,7 +2068,7 @@ A string starting with two or more dashes specifies a separator line; | |||
| 2048 | see @ref{Menu Separators}. | 2068 | see @ref{Menu Separators}. |
| 2049 | 2069 | ||
| 2050 | To define a real menu item which can be selected, the extended format | 2070 | To define a real menu item which can be selected, the extended format |
| 2051 | item looks like this: | 2071 | binding looks like this: |
| 2052 | 2072 | ||
| 2053 | @example | 2073 | @example |
| 2054 | (menu-item @var{item-name} @var{real-binding} | 2074 | (menu-item @var{item-name} @var{real-binding} |
diff --git a/lispref/lists.texi b/lispref/lists.texi index 1c6247d818c..17ed62a6d6c 100644 --- a/lispref/lists.texi +++ b/lispref/lists.texi | |||
| @@ -1395,6 +1395,27 @@ The function @code{delq} offers a way to perform this operation | |||
| 1395 | destructively. See @ref{Sets And Lists}. | 1395 | destructively. See @ref{Sets And Lists}. |
| 1396 | @end defun | 1396 | @end defun |
| 1397 | 1397 | ||
| 1398 | @defun memql object list | ||
| 1399 | The function @code{member} tests to see whether @var{object} is a member | ||
| 1400 | of @var{list}, comparing members with @var{object} using @code{eql}, | ||
| 1401 | so floating point elements are compared by value. | ||
| 1402 | If @var{object} is a member, @code{memql} returns a list starting with | ||
| 1403 | its first occurrence in @var{list}. Otherwise, it returns @code{nil}. | ||
| 1404 | |||
| 1405 | Compare this with @code{memq}: | ||
| 1406 | |||
| 1407 | @example | ||
| 1408 | @group | ||
| 1409 | (memql 1.2 '(1.1 1.2 1.3) ; @r{@code{1.2} and @code{1.2} are @code{eql}.} | ||
| 1410 | @result{} (1.2 1.3) | ||
| 1411 | @end group | ||
| 1412 | @group | ||
| 1413 | (memq 1.2 '(1.1 1.2 1.3) ; @r{@code{1.2} and @code{1.2} are not @code{eq}.} | ||
| 1414 | @result{} nil | ||
| 1415 | @end group | ||
| 1416 | @end example | ||
| 1417 | @end defun | ||
| 1418 | |||
| 1398 | The following three functions are like @code{memq}, @code{delq} and | 1419 | The following three functions are like @code{memq}, @code{delq} and |
| 1399 | @code{remq}, but use @code{equal} rather than @code{eq} to compare | 1420 | @code{remq}, but use @code{equal} rather than @code{eq} to compare |
| 1400 | elements. @xref{Equality Predicates}. | 1421 | elements. @xref{Equality Predicates}. |
diff --git a/lispref/searching.texi b/lispref/searching.texi index e730d3b29ec..204cfa1d319 100644 --- a/lispref/searching.texi +++ b/lispref/searching.texi | |||
| @@ -515,7 +515,7 @@ and what they mean: | |||
| 515 | 515 | ||
| 516 | @table @samp | 516 | @table @samp |
| 517 | @item [:ascii:] | 517 | @item [:ascii:] |
| 518 | This matches any @acronym{ASCII} (unibyte) character. | 518 | This matches any @acronym{ASCII} character (codes 0--127). |
| 519 | @item [:alnum:] | 519 | @item [:alnum:] |
| 520 | This matches any letter or digit. (At present, for multibyte | 520 | This matches any letter or digit. (At present, for multibyte |
| 521 | characters, it matches anything that has word syntax.) | 521 | characters, it matches anything that has word syntax.) |
| @@ -535,8 +535,10 @@ characters, space, and the delete character. | |||
| 535 | @item [:lower:] | 535 | @item [:lower:] |
| 536 | This matches any lower-case letter, as determined by | 536 | This matches any lower-case letter, as determined by |
| 537 | the current case table (@pxref{Case Tables}). | 537 | the current case table (@pxref{Case Tables}). |
| 538 | @item [:multibyte:] | ||
| 539 | This matches any multibyte character (@pxref{Text Representations}). | ||
| 538 | @item [:nonascii:] | 540 | @item [:nonascii:] |
| 539 | This matches any non-@acronym{ASCII} (multibyte) character. | 541 | This matches any non-@acronym{ASCII} character. |
| 540 | @item [:print:] | 542 | @item [:print:] |
| 541 | This matches printing characters---everything except @acronym{ASCII} control | 543 | This matches printing characters---everything except @acronym{ASCII} control |
| 542 | characters and the delete character. | 544 | characters and the delete character. |
| @@ -546,6 +548,8 @@ characters, it matches anything that has non-word syntax.) | |||
| 546 | @item [:space:] | 548 | @item [:space:] |
| 547 | This matches any character that has whitespace syntax | 549 | This matches any character that has whitespace syntax |
| 548 | (@pxref{Syntax Class Table}). | 550 | (@pxref{Syntax Class Table}). |
| 551 | @item [:unibyte:] | ||
| 552 | This matches any unibyte character (@pxref{Text Representations}). | ||
| 549 | @item [:upper:] | 553 | @item [:upper:] |
| 550 | This matches any upper-case letter, as determined by | 554 | This matches any upper-case letter, as determined by |
| 551 | the current case table (@pxref{Case Tables}). | 555 | the current case table (@pxref{Case Tables}). |
diff --git a/man/ChangeLog b/man/ChangeLog index 5eb8e609c6e..4eb3f6b0018 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,54 @@ | |||
| 1 | 2006-10-13 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | ||
| 2 | |||
| 3 | * gnus.texi (Other modes): Fix typo. Add alternative index entry for | ||
| 4 | gnus-dired-attach. | ||
| 5 | (Selecting a Group): Fix typo. | ||
| 6 | |||
| 7 | 2006-10-12 Roberto Rodr,Am(Bguez <lanubeblanca@googlemail.com> | ||
| 8 | |||
| 9 | * widget.texi: Fix typos (tiny change) | ||
| 10 | |||
| 11 | 2006-10-11 Kim F. Storm <storm@cua.dk> | ||
| 12 | |||
| 13 | * emacs.texi (Acknowledgments): Use @dotless{i}. | ||
| 14 | |||
| 15 | 2006-10-08 Nick Roberts <nickrob@snap.net.nz> | ||
| 16 | |||
| 17 | * building.texi (Breakpoints Buffer): Mention catchpoints. | ||
| 18 | |||
| 19 | 2006-10-08 Kim F. Storm <storm@cua.dk> | ||
| 20 | |||
| 21 | * ack.texi (Acknowledgments): Update. | ||
| 22 | |||
| 23 | * emacs.texi (Acknowledgments): Fix bad @/ form. | ||
| 24 | |||
| 25 | 2006-10-06 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 26 | |||
| 27 | * gnus.texi (Image Enhancements): Update for Emacs 22. | ||
| 28 | |||
| 29 | * gnus-faq.texi ([1.3]): Update. | ||
| 30 | |||
| 31 | 2006-10-06 Richard Stallman <rms@gnu.org> | ||
| 32 | |||
| 33 | * faq.texi (Displaying the current line or column): | ||
| 34 | Delete "As of Emacs 20". | ||
| 35 | |||
| 36 | 2006-10-06 Romain Francoise <romain@orebokech.com> | ||
| 37 | |||
| 38 | * faq.texi (VM): VM works with Emacs 22 too. | ||
| 39 | |||
| 40 | 2006-10-06 Richard Stallman <rms@gnu.org> | ||
| 41 | |||
| 42 | * ebrowse.texi: Remove Emacs version "21" from title. | ||
| 43 | |||
| 44 | 2006-10-05 Kim F. Storm <storm@cua.dk> | ||
| 45 | |||
| 46 | * emacs.texi (Acknowledgments): Add more contributors. | ||
| 47 | |||
| 48 | 2006-10-03 Richard Stallman <rms@gnu.org> | ||
| 49 | |||
| 50 | * emacs.texi (Acknowledgments): Update version and edition. | ||
| 51 | |||
| 1 | 2006-10-02 Reiner Steib <Reiner.Steib@gmx.de> | 52 | 2006-10-02 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 53 | ||
| 3 | * gnus.texi (Foreign Groups): Say where change of editing commands are | 54 | * gnus.texi (Foreign Groups): Say where change of editing commands are |
| @@ -5,13 +56,13 @@ | |||
| 5 | 56 | ||
| 6 | 2006-10-01 Karl Berry <karl@gnu.org> | 57 | 2006-10-01 Karl Berry <karl@gnu.org> |
| 7 | 58 | ||
| 8 | * custom.texi (Customization Groups): page break to keep example buffer | 59 | * custom.texi (Customization Groups): Page break to keep example buffer |
| 9 | on one page. | 60 | on one page. |
| 10 | 61 | ||
| 11 | 2006-09-30 Karl Berry <karl@gnu.org> | 62 | 2006-09-30 Karl Berry <karl@gnu.org> |
| 12 | 63 | ||
| 13 | * programs.texi (Basic Indent): @need to improve page break. | 64 | * programs.texi (Basic Indent): @need to improve page break. |
| 14 | * text.texi: rewording to improve page breaks, and use @LaTeX{}. | 65 | * text.texi: Rewording to improve page breaks, and use @LaTeX{}. |
| 15 | 66 | ||
| 16 | 2006-09-29 Glenn Morris <rgm@gnu.org> | 67 | 2006-09-29 Glenn Morris <rgm@gnu.org> |
| 17 | 68 | ||
| @@ -19,11 +70,11 @@ | |||
| 19 | 70 | ||
| 20 | 2006-09-29 Karl Berry <karl@gnu.org> | 71 | 2006-09-29 Karl Berry <karl@gnu.org> |
| 21 | 72 | ||
| 22 | * windows.texi (Basic Window): remove forced @break, no longer | 73 | * windows.texi (Basic Window): Remove forced @break, no longer |
| 23 | desirable. | 74 | desirable. |
| 24 | * frames.texi (Frame Commands), | 75 | * frames.texi (Frame Commands), |
| 25 | * mark.texi (Marking Objects): reword to avoid bad page break. | 76 | * mark.texi (Marking Objects): Reword to avoid bad page break. |
| 26 | * display.texi (Auto Scrolling): use @tie{} to avoid bad line break. | 77 | * display.texi (Auto Scrolling): Use @tie{} to avoid bad line break. |
| 27 | 78 | ||
| 28 | 2006-09-19 Richard Stallman <rms@gnu.org> | 79 | 2006-09-19 Richard Stallman <rms@gnu.org> |
| 29 | 80 | ||
| @@ -91,8 +142,8 @@ | |||
| 91 | 142 | ||
| 92 | 2006-09-01 Eli Zaretskii <eliz@gnu.org> | 143 | 2006-09-01 Eli Zaretskii <eliz@gnu.org> |
| 93 | 144 | ||
| 94 | * rcirc.texi (Internet Relay Chat, Useful IRC commands): Don't use | 145 | * rcirc.texi (Internet Relay Chat, Useful IRC commands): |
| 95 | @indicateurl. | 146 | Don't use @indicateurl. |
| 96 | 147 | ||
| 97 | * cc-mode.texi (Subword Movement): Don't use @headitem. | 148 | * cc-mode.texi (Subword Movement): Don't use @headitem. |
| 98 | (Custom Braces, Clean-ups): Don't use @tie. | 149 | (Custom Braces, Clean-ups): Don't use @tie. |
| @@ -101,8 +152,8 @@ | |||
| 101 | 152 | ||
| 102 | Sync with Tramp 2.0.54. | 153 | Sync with Tramp 2.0.54. |
| 103 | 154 | ||
| 104 | * tramp.texi (Bug Reports): The Tramp mailing list is moderated | 155 | * tramp.texi (Bug Reports): The Tramp mailing list is moderated now. |
| 105 | now. Suggested by Adrian Phillips <a.phillips@met.no>. | 156 | Suggested by Adrian Phillips <a.phillips@met.no>. |
| 106 | 157 | ||
| 107 | 2006-08-28 Richard Stallman <rms@gnu.org> | 158 | 2006-08-28 Richard Stallman <rms@gnu.org> |
| 108 | 159 | ||
diff --git a/man/ack.texi b/man/ack.texi index 67c731d6174..2b76a7073d8 100644 --- a/man/ack.texi +++ b/man/ack.texi | |||
| @@ -34,6 +34,11 @@ Jay K.@: Adams wrote @file{jka-compr.el}, providing automatic | |||
| 34 | decompression and recompression for compressed files. | 34 | decompression and recompression for compressed files. |
| 35 | 35 | ||
| 36 | @item | 36 | @item |
| 37 | Ralf Angeli wrote @file{scroll-lock.el}, a minor mode which keeps the | ||
| 38 | point vertically fixed by scrolling the window when moving up and down | ||
| 39 | in the buffer. | ||
| 40 | |||
| 41 | @item | ||
| 37 | Joe Arceneaux wrote the original text property implementation, and | 42 | Joe Arceneaux wrote the original text property implementation, and |
| 38 | implemented support for X11. | 43 | implemented support for X11. |
| 39 | 44 | ||
| @@ -62,6 +67,11 @@ footnotes in email messages, and @file{gnus-audio.el} which provides | |||
| 62 | sound effects for Gnus. | 67 | sound effects for Gnus. |
| 63 | 68 | ||
| 64 | @item | 69 | @item |
| 70 | Alexander L. Belikoff, Sergey Berezin, David Edmondson, Andreas | ||
| 71 | Fuchs, Mario Lang, Gergely Nagy, Michael Olson, and Alex Schroeder | ||
| 72 | contributed ERC, an advanced Internet Relay Chat client. | ||
| 73 | |||
| 74 | @item | ||
| 65 | Boaz Ben-Zvi wrote @file{profile.el}, to time Emacs Lisp functions. | 75 | Boaz Ben-Zvi wrote @file{profile.el}, to time Emacs Lisp functions. |
| 66 | 76 | ||
| 67 | @item | 77 | @item |
| @@ -173,6 +183,10 @@ Doug Cutting and Jamie Zawinski wrote @file{disass.el}, a disassembler | |||
| 173 | for compiled Emacs Lisp code. | 183 | for compiled Emacs Lisp code. |
| 174 | 184 | ||
| 175 | @item | 185 | @item |
| 186 | Mathias Dahl wrote @file{tumme.el}, a package for viewing image files | ||
| 187 | as ``thumbnails.'' | ||
| 188 | |||
| 189 | @item | ||
| 176 | Michael DeCorte wrote @file{emacs.csh}, a C-shell script that starts a | 190 | Michael DeCorte wrote @file{emacs.csh}, a C-shell script that starts a |
| 177 | new Emacs job, or restarts a paused Emacs if one exists. | 191 | new Emacs job, or restarts a paused Emacs if one exists. |
| 178 | 192 | ||
| @@ -368,8 +382,9 @@ taking the file name from the buffer. | |||
| 368 | Odd Gripenstam wrote @file{dcl-mode.el} for editing DCL command files. | 382 | Odd Gripenstam wrote @file{dcl-mode.el} for editing DCL command files. |
| 369 | 383 | ||
| 370 | @item | 384 | @item |
| 371 | Kai Gro@ss{}johann wrote the Tramp package, which provides transparent | 385 | Kai Gro@ss{}johann and Michael Albinus wrote the Tramp package, which |
| 372 | remote file editing using rcp, ssh, and other network protocols. | 386 | provides transparent remote file editing using rcp, ssh, ftp, and other |
| 387 | network protocols. | ||
| 373 | 388 | ||
| 374 | @item | 389 | @item |
| 375 | Michael Gschwind wrote @file{iso-cvt.el}, a package to convert between | 390 | Michael Gschwind wrote @file{iso-cvt.el}, a package to convert between |
| @@ -398,6 +413,9 @@ Chris Hanson wrote @file{netuname.el}, a package to use HP-UX's Remote | |||
| 398 | File Access facility from Emacs. | 413 | File Access facility from Emacs. |
| 399 | 414 | ||
| 400 | @item | 415 | @item |
| 416 | Jesper Harder wrote @file{yenc.el}, for decoding yenc encoded messages. | ||
| 417 | |||
| 418 | @item | ||
| 401 | K. Shane Hartman wrote: | 419 | K. Shane Hartman wrote: |
| 402 | 420 | ||
| 403 | @itemize @minus | 421 | @itemize @minus |
| @@ -447,6 +465,8 @@ Tom Houlder wrote @file{mantemp.el}, which generates manual C@t{++} | |||
| 447 | template instantiations. | 465 | template instantiations. |
| 448 | 466 | ||
| 449 | @item | 467 | @item |
| 468 | Joakim Hove wrote @file{html2text.el}, a html to plain text converter. | ||
| 469 | @item | ||
| 450 | Denis Howe wrote @file{browse-url.el}, a package for invoking a WWW | 470 | Denis Howe wrote @file{browse-url.el}, a package for invoking a WWW |
| 451 | browser to display a URL. | 471 | browser to display a URL. |
| 452 | 472 | ||
| @@ -462,7 +482,8 @@ Seiichiro Inoue improved Emacs's XIM support. | |||
| 462 | 482 | ||
| 463 | @item | 483 | @item |
| 464 | Ulf Jasper wrote @file{icalendar.el}, a package for converting Emacs | 484 | Ulf Jasper wrote @file{icalendar.el}, a package for converting Emacs |
| 465 | diary entries to and from the iCalendar format. | 485 | diary entries to and from the iCalendar format, and |
| 486 | @file{newsticker.el}, an RSS and Atom based Newsticker. | ||
| 466 | 487 | ||
| 467 | @item | 488 | @item |
| 468 | Kyle Jones wrote @file{life.el}, a package to play Conway's ``life'' game, | 489 | Kyle Jones wrote @file{life.el}, a package to play Conway's ``life'' game, |
| @@ -493,6 +514,10 @@ in messages, | |||
| 493 | @end itemize | 514 | @end itemize |
| 494 | 515 | ||
| 495 | @item | 516 | @item |
| 517 | Arne J@/orgensen wrote @file{latexenc.el}, a package to | ||
| 518 | automatically guess the correct coding system in LaTeX files. | ||
| 519 | |||
| 520 | @item | ||
| 496 | Tomoji Kagatani implemented @file{smtpmail.el}, used for sending out | 521 | Tomoji Kagatani implemented @file{smtpmail.el}, used for sending out |
| 497 | mail with SMTP. | 522 | mail with SMTP. |
| 498 | 523 | ||
| @@ -545,7 +570,7 @@ David M.@: Koppelman wrote @file{hi-lock.el}, a minor mode for | |||
| 545 | interactive automatic highlighting of parts of the buffer text. | 570 | interactive automatic highlighting of parts of the buffer text. |
| 546 | 571 | ||
| 547 | @item | 572 | @item |
| 548 | Koseki Yoshinori wrote @file{iinline.el}, a minor mode for displaying | 573 | Koseki Yoshinori wrote @file{iimage.el}, a minor mode for displaying |
| 549 | inline images. | 574 | inline images. |
| 550 | 575 | ||
| 551 | @item | 576 | @item |
| @@ -666,8 +691,16 @@ typical word processors, | |||
| 666 | @end itemize | 691 | @end itemize |
| 667 | 692 | ||
| 668 | @item | 693 | @item |
| 669 | Eric Ludlam wrote the Speedbar package and @file{checkdoc.el}, a package | 694 | Eric Ludlam wrote the Speedbar package and the following packages: |
| 670 | for checking doc strings in Emacs Lisp programs. | 695 | |
| 696 | @itemize @minus | ||
| 697 | @item | ||
| 698 | @file{checkdoc.el}, for checking doc strings in Emacs Lisp programs, | ||
| 699 | @item | ||
| 700 | @file{dframe.el}, providing dedicatd frame support modes, and | ||
| 701 | @item | ||
| 702 | @file{ezimage.el}, a generalized way to place images over text. | ||
| 703 | @end itemize | ||
| 671 | 704 | ||
| 672 | @item | 705 | @item |
| 673 | Alan Mackenzie wrote the integrated AWK support in CC Mode. | 706 | Alan Mackenzie wrote the integrated AWK support in CC Mode. |
| @@ -841,6 +874,10 @@ text, and @file{iris-ansi.el}, support for running Emacs on SGI's | |||
| 841 | Jurgen Nickelsen wrote @file{ws-mode.el}, providing WordStar emulation. | 874 | Jurgen Nickelsen wrote @file{ws-mode.el}, providing WordStar emulation. |
| 842 | 875 | ||
| 843 | @item | 876 | @item |
| 877 | Hrvoje Niksic wrote @file{savehist.el}, for saving the minibuffer | ||
| 878 | history between Emacs sessions. | ||
| 879 | |||
| 880 | @item | ||
| 844 | Jeff Norden wrote @file{kermit.el}, a package to help the Kermit | 881 | Jeff Norden wrote @file{kermit.el}, a package to help the Kermit |
| 845 | dialup communications program run comfortably in an Emacs shell buffer. | 882 | dialup communications program run comfortably in an Emacs shell buffer. |
| 846 | 883 | ||
| @@ -932,10 +969,18 @@ Christian Plaunt wrote @file{soundex.el}, an implementation of the | |||
| 932 | Soundex algorithm for comparing English words by their pronunciation. | 969 | Soundex algorithm for comparing English words by their pronunciation. |
| 933 | 970 | ||
| 934 | @item | 971 | @item |
| 935 | David Ponce wrote @file{recentf.el}, a package that puts a menu of | 972 | David Ponce wrote: |
| 936 | recently visited files in the Emacs menu bar, and | 973 | |
| 974 | @itemize @minus | ||
| 975 | @item | ||
| 976 | @file{recentf.el}, a package that puts a menu of recently visited | ||
| 977 | files in the Emacs menu bar, | ||
| 978 | @item | ||
| 937 | @file{ruler-mode.el}, a minor mode for displaying a ruler in the | 979 | @file{ruler-mode.el}, a minor mode for displaying a ruler in the |
| 938 | header line. | 980 | header line, and |
| 981 | @item | ||
| 982 | @file{tree-widget.el}, a package to display hierarchical data structures. | ||
| 983 | @end itemize | ||
| 939 | 984 | ||
| 940 | @item | 985 | @item |
| 941 | Francesco A.@: Potorti wrote @file{cmacexp.el}, providing a command which | 986 | Francesco A.@: Potorti wrote @file{cmacexp.el}, providing a command which |
| @@ -1001,6 +1046,10 @@ Oram contributed to its documentation. Reingold has also contributed to | |||
| 1001 | F.@: Schelter, Dick King, Stephen Gildea, Michael Prange, and Jacob Gore. | 1046 | F.@: Schelter, Dick King, Stephen Gildea, Michael Prange, and Jacob Gore. |
| 1002 | 1047 | ||
| 1003 | @item | 1048 | @item |
| 1049 | David Reitter wrote @file{mailclient.el} which can send mail via the | ||
| 1050 | system's designated mail client. | ||
| 1051 | |||
| 1052 | @item | ||
| 1004 | Alex Rezinsky contributed @file{which-func.el}, a mode that shows the | 1053 | Alex Rezinsky contributed @file{which-func.el}, a mode that shows the |
| 1005 | name of the current function in the mode line. | 1054 | name of the current function in the mode line. |
| 1006 | 1055 | ||
| @@ -1239,6 +1288,10 @@ Naoto Takahashi wrote @file{utf-8.el}, support for encoding and | |||
| 1239 | decoding UTF-8 data. | 1288 | decoding UTF-8 data. |
| 1240 | 1289 | ||
| 1241 | @item | 1290 | @item |
| 1291 | Luc Teirlinck wrote @file{help-at-pt.el}, providing local help through | ||
| 1292 | the keyboard. | ||
| 1293 | |||
| 1294 | @item | ||
| 1242 | Jean-Philippe Theberge wrote @file{thumbs.el}, a package for viewing | 1295 | Jean-Philippe Theberge wrote @file{thumbs.el}, a package for viewing |
| 1243 | image files as ``thumbnails.'' | 1296 | image files as ``thumbnails.'' |
| 1244 | 1297 | ||
| @@ -1262,8 +1315,10 @@ editing Tcl/Tk source files and running a Tcl interpreter as an Emacs | |||
| 1262 | subprocess. | 1315 | subprocess. |
| 1263 | 1316 | ||
| 1264 | @item | 1317 | @item |
| 1318 | Eli Tziperman wrote @file{rmail-spam-filter.el}, a spam filter for RMAIL. | ||
| 1319 | @item | ||
| 1265 | Daiki Ueno wrote @file{starttls.el}, support for Transport Layer | 1320 | Daiki Ueno wrote @file{starttls.el}, support for Transport Layer |
| 1266 | Security protocol. | 1321 | Security protocol, and the PGG package adding GnuPG and PGP support. |
| 1267 | 1322 | ||
| 1268 | @item | 1323 | @item |
| 1269 | Masanobu Umeda wrote: | 1324 | Masanobu Umeda wrote: |
| @@ -1422,7 +1477,7 @@ to exit with valuable buffers unsaved. | |||
| 1422 | 1477 | ||
| 1423 | @item | 1478 | @item |
| 1424 | Masatake Yamato wrote @file{ld-script.el}, an editing mode for GNU | 1479 | Masatake Yamato wrote @file{ld-script.el}, an editing mode for GNU |
| 1425 | linker scripts. | 1480 | linker scripts, and contributed subword handling in CC mode. |
| 1426 | 1481 | ||
| 1427 | @item | 1482 | @item |
| 1428 | Jonathan Yavner wrote @file{testcover.el}, a package for keeping track | 1483 | Jonathan Yavner wrote @file{testcover.el}, a package for keeping track |
| @@ -1430,6 +1485,8 @@ of the testing status of Emacs Lisp code, and the SES spreadsheet | |||
| 1430 | package. | 1485 | package. |
| 1431 | 1486 | ||
| 1432 | @item | 1487 | @item |
| 1488 | Ryan Yeske wrote @file{rcirc.el} a simple Internet Relay Chat client. | ||
| 1489 | @item | ||
| 1433 | Ilya Zakharevich and Bob Olson contributed @file{cperl-mode.el}, a major | 1490 | Ilya Zakharevich and Bob Olson contributed @file{cperl-mode.el}, a major |
| 1434 | mode for editing Perl code. Ilya Zakharevich also wrote @file{tmm.el}, | 1491 | mode for editing Perl code. Ilya Zakharevich also wrote @file{tmm.el}, |
| 1435 | a mode for accessing the Emacs menu bar on a text-mode terminal. | 1492 | a mode for accessing the Emacs menu bar on a text-mode terminal. |
diff --git a/man/building.texi b/man/building.texi index 451246ae55d..a92810e617d 100644 --- a/man/building.texi +++ b/man/building.texi | |||
| @@ -964,8 +964,8 @@ for example, when re-setting a breakpoint. | |||
| 964 | @node Breakpoints Buffer | 964 | @node Breakpoints Buffer |
| 965 | @subsubsection Breakpoints Buffer | 965 | @subsubsection Breakpoints Buffer |
| 966 | 966 | ||
| 967 | The breakpoints buffer shows the existing breakpoints and | 967 | The breakpoints buffer shows the existing breakpoints, watchpoints and |
| 968 | watchpoints (@pxref{Breakpoints,,, gdb, The GNU debugger}). It has | 968 | catchpoints (@pxref{Breakpoints,,, gdb, The GNU debugger}). It has |
| 969 | these special commands, which mostly apply to the @dfn{current | 969 | these special commands, which mostly apply to the @dfn{current |
| 970 | breakpoint}, the breakpoint which point is on. | 970 | breakpoint}, the breakpoint which point is on. |
| 971 | 971 | ||
diff --git a/man/ebrowse.texi b/man/ebrowse.texi index e1d2a86d387..200b2fe6075 100644 --- a/man/ebrowse.texi +++ b/man/ebrowse.texi | |||
| @@ -41,7 +41,7 @@ license to the document, as described in section 6 of the license. | |||
| 41 | @titlepage | 41 | @titlepage |
| 42 | @title Ebrowse User's Manual | 42 | @title Ebrowse User's Manual |
| 43 | @sp 4 | 43 | @sp 4 |
| 44 | @subtitle Ebrowse/Emacs 21 | 44 | @subtitle Ebrowse/Emacs |
| 45 | @sp 1 | 45 | @sp 1 |
| 46 | @subtitle May 2000 | 46 | @subtitle May 2000 |
| 47 | @sp 5 | 47 | @sp 5 |
diff --git a/man/emacs.texi b/man/emacs.texi index 7e84c869d1f..0249cac3cc3 100644 --- a/man/emacs.texi +++ b/man/emacs.texi | |||
| @@ -4,8 +4,8 @@ | |||
| 4 | @settitle GNU Emacs Manual | 4 | @settitle GNU Emacs Manual |
| 5 | 5 | ||
| 6 | @c The edition number appears in several places in this file | 6 | @c The edition number appears in several places in this file |
| 7 | @set EDITION Fourteenth | 7 | @set EDITION Sixteenth |
| 8 | @set EMACSVER 22.0.50 | 8 | @set EMACSVER 22.1 |
| 9 | 9 | ||
| 10 | @copying | 10 | @copying |
| 11 | This is the @value{EDITION} edition of the @cite{GNU Emacs Manual}, | 11 | This is the @value{EDITION} edition of the @cite{GNU Emacs Manual}, |
| @@ -1023,70 +1023,83 @@ occasionally, or subscribing to periodic updates. | |||
| 1023 | @node Acknowledgments, Intro, Distrib, Top | 1023 | @node Acknowledgments, Intro, Distrib, Top |
| 1024 | @unnumberedsec Acknowledgments | 1024 | @unnumberedsec Acknowledgments |
| 1025 | 1025 | ||
| 1026 | Contributors to GNU Emacs include Per Abrahamsen, Tomas Abrahamsson, | 1026 | Contributors to GNU Emacs include Jari Aalto, Per Abrahamsen, Tomas |
| 1027 | Jay K.@: Adams, Joe Arceneaux, Miles Bader, David Bakhash, Eli | 1027 | Abrahamsson, Jay K.@: Adams, Michael Albinus, Nagy Andras, Ralf |
| 1028 | Barzilay, Steven L.@: Baur, Boaz Ben-Zvi, Ray Blaak, Jim Blandy, Per | 1028 | Angeli, Joe Arceneaux, Miles Bader, David Bakhash, Juanma Barranquero, |
| 1029 | Bothner, Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel Briot, | 1029 | Eli Barzilay, Steven L.@: Baur, Jay Belanger, Alexander L.@: Belikoff, |
| 1030 | Kevin Broadey, Vincent Broman, David M.@: Brown, Georges Brun-Cottan, | 1030 | Boaz Ben-Zvi, Karl Berry, Ray Blaak, Jim Blandy, Johan Bockg@aa{}rd, |
| 1031 | W@l{}odek Bzyl, Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris | 1031 | Per Bothner, Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel |
| 1032 | Chase, Bob Chassell, Andrew Choi, James Clark, Mike Clarkson, Glynn | 1032 | Briot, Kevin Broadey, Vincent Broman, David M.@: Brown, Georges |
| 1033 | Clements, Andrew Csillag, Doug Cutting, Michael DeCorte, Gary Delp, | 1033 | Brun-Cottan, Joe Buehler, W@l{}odek Bzyl, Bill Carpenter, Per |
| 1034 | Matthieu Devin, Eri Ding, Jan Dj@"{a}rv, Carsten Dominik, Scott | 1034 | Cederqvist, Hans Chalupsky, Chris Chase, Bob Chassell, Andrew Choi, |
| 1035 | Draves, Benjamin Drieu, Viktor Dukhovni, John Eaton, Rolf Ebert, | 1035 | Sacha Chua, James Clark, Mike Clarkson, Glynn Clements, Andrew |
| 1036 | Stephen Eglen, Torbj@"orn Einarsson, Tsugutomo Enami, Hans Henrik | 1036 | Csillag, Doug Cutting, Mathias Dahl, Satyaki Das, Michael DeCorte, |
| 1037 | Eriksen, Michael Ernst, Ata Etemadi, Frederick Farnbach, Oscar | 1037 | Gary Delp, Matthieu Devin, Eri Ding, Jan Dj@"{a}rv, Carsten Dominik, |
| 1038 | Figueiredo, Fred Fish, Karl Fogel, Gary Foster, Noah Friedman, | 1038 | Scott Draves, Benjamin Drieu, Viktor Dukhovni, John Eaton, Rolf Ebert, |
| 1039 | Hallvard Furuseth, Keith Gabryelski, Kevin Gallagher, Kevin Gallo, | 1039 | Paul Eggert, Stephen Eglen, Torbj@"orn Einarsson, Tsugutomo Enami, |
| 1040 | Juan Le@'{o}n Lahoz Garc@'{i}a, Howard Gayle, Stephen Gildea, Julien | 1040 | Hans Henrik Eriksen, Michael Ernst, Ata Etemadi, Frederick Farnbach, |
| 1041 | Gilles, David Gillespie, Bob Glickstein, Boris Goldowsky, Michelangelo | 1041 | Oscar Figueiredo, Fred Fish, Karl Fogel, Gary Foster, Romain |
| 1042 | Grigni, Odd Gripenstam, Kai Gro@ss{}johann, Michael Gschwind, Henry | 1042 | Francoise, Noah Friedman, Andreas Fuchs, Hallvard Furuseth, Keith |
| 1043 | Guillaume, Doug Gwyn, Ken'ichi Handa, Chris Hanson, K. Shane Hartman, | 1043 | Gabryelski, Peter S.@: Galbraith, Kevin Gallagher, Kevin Gallo, Juan |
| 1044 | John Heidemann, Jon K.@: Hellan, Markus Heritsch, Karl Heuer, Manabu | 1044 | Le@'{o}n Lahoz Garc@'{@dotless{i}}a, Howard Gayle, Stephen Gildea, Julien |
| 1045 | Higashida, Anders Holst, Kurt Hornik, Tom Houlder, Denis Howe, Lars | 1045 | Gilles, David Gillespie, Bob Glickstein, Deepak Goel, Boris Goldowsky, |
| 1046 | Ingebrigtsen, Andrew Innes, Seiichiro Inoue, Ulf Jasper, Michael | 1046 | Michelangelo Grigni, Odd Gripenstam, Kai Gro@ss{}johann, Michael |
| 1047 | K. Johnson, Kyle Jones, Terry Jones, Simon Josefsson, Tomoji Kagatani, | 1047 | Gschwind, Henry Guillaume, Doug Gwyn, Ken'ichi Handa, Lars Hansen, |
| 1048 | Brewster Kahle, David Kaufman, Henry Kautz, Taichi Kawabata, Howard | 1048 | Chris Hanson, K. Shane Hartman, John Heidemann, Jon K.@: Hellan, |
| 1049 | Kaye, Michael Kifer, Richard King, Peter Kleiweg, Larry K.@: Kolodney, | 1049 | Jesper Harder, Markus Heritsch, Karl Heuer, Manabu Higashida, Anders |
| 1050 | Pavel Kobiakov, Larry K.@: Kolodney, David M.@: Koppelman, Koseki | 1050 | Holst, Jeffrey C.@: Honig, Kurt Hornik, Tom Houlder, Joakim Hove, |
| 1051 | Yoshinori, Robert Krawitz, Sebastian Kremer, Ryszard Kubiak, Geoff | 1051 | Denis Howe, Lars Ingebrigtsen, Andrew Innes, Seiichiro Inoue, Pavel |
| 1052 | Kuenning, David K@aa{}gedal, Daniel LaLiberte, Aaron Larson, James | 1052 | Janik, Paul Jarc, Ulf Jasper, Michael K. Johnson, Kyle Jones, Terry |
| 1053 | R.@: Larus, Vinicius Jose Latorre, Frederic Lepied, Peter Liljenberg, | 1053 | Jones, Simon Josefsson, Arne J@/orgensen, Tomoji Kagatani, Brewster |
| 1054 | Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link, Dave | 1054 | Kahle, Lute Kamstra, David Kastrup, David Kaufman, Henry Kautz, Taichi |
| 1055 | Love, Eric Ludlam, Alan Mackenzie, Christopher J.@: Madsen, | 1055 | Kawabata, Howard Kaye, Michael Kifer, Richard King, Peter Kleiweg, |
| 1056 | Neil M.@: Mager, Ken Manheimer, Bill Mann, Brian Marick, Simon | 1056 | Shuhei Kobayashi, Pavel Kobiakov, Larry K.@: Kolodney, David M.@: |
| 1057 | Marshall, Bengt Martensson, Charlie Martin, Thomas May, Roland McGrath, | 1057 | Koppelman, Koseki Yoshinori, Robert Krawitz, Sebastian Kremer, Ryszard |
| 1058 | Will Mengarini, David Megginson, Wayne Mesard, Brad Miller, Richard | 1058 | Kubiak, Geoff Kuenning, David K@aa{}gedal, Daniel LaLiberte, Mario |
| 1059 | Lang, Aaron Larson, James R.@: Larus, Vinicius Jose Latorre, Werner | ||
| 1060 | Lemberg, Frederic Lepied, Peter Liljenberg, Lars Lindberg, Chris | ||
| 1061 | Lindblad, Anders Lindgren, Thomas Link, Juri Linkov, Francis Litterio, | ||
| 1062 | Emilio C. Lopes, Dave Love, Sascha L@"{u}decke, Eric Ludlam,Alan | ||
| 1063 | Mackenzie, Christopher J.@: Madsen, Neil M.@: Mager, Ken Manheimer, | ||
| 1064 | Bill Mann, Brian Marick, Simon Marshall, Bengt Martensson, Charlie | ||
| 1065 | Martin, Thomas May, Roland McGrath, Will Mengarini, David Megginson, | ||
| 1066 | Ben A. Mesander, Wayne Mesard, Brad Miller, Lawrence Mitchell, Richard | ||
| 1059 | Mlynarik, Gerd Moellmann, Stefan Monnier, Morioka Tomohiko, Keith | 1067 | Mlynarik, Gerd Moellmann, Stefan Monnier, Morioka Tomohiko, Keith |
| 1060 | Moore, Sen Nagata, Erik Naggum, Thomas Neumann, Thien-Thi Nguyen, Mike | 1068 | Moore, Glenn Morris, Diane Murray, Sen Nagata, Erik Naggum, Thomas |
| 1061 | Newton, Jurgen Nickelsen, Dan Nicolaescu, Jeff Norden, Andrew Norman, | 1069 | Neumann, Thien-Thi Nguyen, Mike Newton, Jurgen Nickelsen, Dan |
| 1062 | Alexandre Oliva, Bob Olson, Takaaki Ota, Pieter E.@: J.@: Pareit, | 1070 | Nicolaescu, Hrvoje Niksic, Jeff Norden, Andrew Norman, Alexandre |
| 1071 | Oliva, Bob Olson, Michael Olson, Takaaki Ota, Pieter E.@: J.@: Pareit, | ||
| 1063 | David Pearson, Jeff Peck, Damon Anton Permezel, Tom Perrine, William | 1072 | David Pearson, Jeff Peck, Damon Anton Permezel, Tom Perrine, William |
| 1064 | M.@: Perry, Per Persson, Jens Petersen, Daniel Pfeiffer, Richard | 1073 | M.@: Perry, Per Persson, Jens Petersen, Daniel Pfeiffer, Richard L.@: |
| 1065 | L.@: Pieri, Fred Pierresteguy, Christian Plaunt, David Ponce, Francesco | 1074 | Pieri, Fred Pierresteguy, Christian Plaunt, David Ponce, Francesco |
| 1066 | A. Potorti, Michael D. Prange, Mukesh Prasad, Marko Rahamaa, Ashwin | 1075 | A.@: Potorti, Michael D. Prange, Mukesh Prasad, Ken Raeburn, Marko |
| 1067 | Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, Alex Rezinsky, | 1076 | Rahamaa, Ashwin Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, |
| 1068 | Rob Riepel, Nick Roberts, Roland B.@: Roberts, John Robinson, Danny | 1077 | Alex Rezinsky, Rob Riepel, David Reitter, Nick Roberts, Roland B.@: |
| 1069 | Roozendaal, William Rosenblatt, Guillermo J.@: Rozas, Ivar Rummelhoff, | 1078 | Roberts, John Robinson, Danny Roozendaal, William Rosenblatt, |
| 1070 | Jason Rumney, Wolfgang Rupprecht, Kevin Ryde, James B. Salem, Masahiko | 1079 | Guillermo J.@: Rozas, Martin Rudalics, Ivar Rummelhoff, Jason Rumney, |
| 1071 | Sato, Holger Schauer, William Schelter, Ralph Schleicher, Gregor | 1080 | Wolfgang Rupprecht, Kevin Ryde, James B. Salem, Masahiko Sato, Jorgen |
| 1081 | Schaefer, Holger Schauer, William Schelter, Ralph Schleicher, Gregor | ||
| 1072 | Schmid, Michael Schmidt, Ronald S. Schnell, Philippe Schnoebelen, Jan | 1082 | Schmid, Michael Schmidt, Ronald S. Schnell, Philippe Schnoebelen, Jan |
| 1073 | Schormann, Alex Schroeder, Stephen Schoef, Randal Schwartz, Oliver | 1083 | Schormann, Alex Schroeder, Stephen Schoef, Raymond Scholz, Randal |
| 1074 | Seidel, Manuel Serrano, Hovav Shacham, Stanislav Shalunov, Mark | 1084 | Schwartz, Oliver Seidel, Manuel Serrano, Hovav Shacham, Stanislav |
| 1075 | Shapiro, Richard Sharman, Olin Shivers, Espen Skoglund, Rick Sladkey, | 1085 | Shalunov, Mark Shapiro, Richard Sharman, Olin Shivers, Espen Skoglund, |
| 1076 | Lynn Slater, Chris Smith, David Smith, Paul D.@: Smith, Andre Spiegel, | 1086 | Rick Sladkey, Lynn Slater, Chris Smith, David Smith, Paul D.@: Smith, |
| 1077 | Michael Staats, William Sommerfeld, Michael Staats, Sam Steingold, Ake | 1087 | Andre Spiegel, Michael Staats, William Sommerfeld, Michael Staats, |
| 1078 | Stenhoff, Peter Stephenson, Ken Stevens, Jonathan Stigelman, Martin | 1088 | Reiner Steib, Sam Steingold, Ake Stenhoff, Peter Stephenson, Ken |
| 1079 | Stjernholm, Kim F.@: Storm, Steve Strassman, Olaf Sylvester, Naoto | 1089 | Stevens, Jonathan Stigelman, Martin Stjernholm, Kim F.@: Storm, Steve |
| 1080 | Takahashi, Jean-Philippe Theberge, Jens T.@: Berger Thielemann, | 1090 | Strassman, Olaf Sylvester, Naoto Takahashi, Steven Tamm, Jean-Philippe |
| 1081 | Spencer Thomas, Jim Thompson, Tom Tromey, Daiki Ueno, Masanobu Umeda, | 1091 | Theberge, Jens T.@: Berger Thielemann, Spencer Thomas, Jim Thompson, |
| 1082 | Rajesh Vaidheeswarran, Neil W.@: Van Dyke, Didier Verna, Ulrik Vieth, | 1092 | Luc Teirlinck, Tom Tromey, Enami Tsugutomo, Eli Tziperman, Daiki Ueno, |
| 1083 | Geoffrey Voelker, Johan Vromans, Inge Wallin, Colin Walters, Barry | 1093 | Masanobu Umeda, Rajesh Vaidheeswarran, Neil W.@: Van Dyke, Didier |
| 1084 | Warsaw, Morten Welinder, Joseph Brian Wells, Rodney Whitby, John | 1094 | Verna, Ulrik Vieth, Geoffrey Voelker, Johan Vromans, Inge Wallin, John |
| 1085 | Wiegley, Ed Wilkinson, Mike Williams, Bill Wohler, Steven A. Wood, | 1095 | Paul Wallington, Colin Walters, Barry Warsaw, Morten Welinder, Joseph |
| 1086 | Dale R.@: Worley, Francis J.@: Wright, Felix S. T. Wu, Tom Wurgler, | 1096 | Brian Wells, Rodney Whitby, John Wiegley, Ed Wilkinson, Mike Williams, |
| 1087 | Masatake Yamato, Jonathan Yavner, Ilya Zakharevich, Milan Zamazal, | 1097 | Bill Wohler, Steven A. Wood, Dale R.@: Worley, Francis J.@: Wright, |
| 1088 | Victor Zandy, Eli Zaretskii, Jamie Zawinski, Shenghuo Zhu, Ian | 1098 | Felix S. T. Wu, Tom Wurgler, Katsumi Yamaoka, Masatake Yamato, |
| 1089 | T.@: Zimmermann, Reto Zimmermann, Neal Ziring, and Detlev Zundel. | 1099 | Jonathan Yavner, Ryan Yeske, Chong Yidong, Ilya Zakharevich, Milan |
| 1100 | Zamazal, Victor Zandy, Eli Zaretskii, Jamie Zawinski, Shenghuo Zhu, | ||
| 1101 | Ian T.@: Zimmermann, Reto Zimmermann, Neal Ziring, Teodor Zlatanov, | ||
| 1102 | and Detlev Zundel. | ||
| 1090 | @end iftex | 1103 | @end iftex |
| 1091 | 1104 | ||
| 1092 | @node Intro, Glossary, Distrib, Top | 1105 | @node Intro, Glossary, Distrib, Top |
diff --git a/man/faq.texi b/man/faq.texi index 1230fff62bb..69feaecc2b5 100644 --- a/man/faq.texi +++ b/man/faq.texi | |||
| @@ -1382,7 +1382,7 @@ initialization disables it.) Note that Emacs will not display the line | |||
| 1382 | number if the buffer's size in bytes is larger than the value of the | 1382 | number if the buffer's size in bytes is larger than the value of the |
| 1383 | variable @code{line-number-display-limit}. | 1383 | variable @code{line-number-display-limit}. |
| 1384 | 1384 | ||
| 1385 | As of Emacs 20, you can similarly display the current column with | 1385 | You can similarly display the current column with |
| 1386 | @kbd{M-x column-number-mode}, or by putting the form | 1386 | @kbd{M-x column-number-mode}, or by putting the form |
| 1387 | 1387 | ||
| 1388 | @lisp | 1388 | @lisp |
| @@ -3848,8 +3848,8 @@ Java code. It is distributed with Emacs, but has | |||
| 3848 | Or send reports to @email{bug-vm@@wonderworks.com} | 3848 | Or send reports to @email{bug-vm@@wonderworks.com} |
| 3849 | @end table | 3849 | @end table |
| 3850 | 3850 | ||
| 3851 | VM 7 works well with Emacs 21. Older versions of VM suitable for use | 3851 | VM 7 works well with Emacs 21 and Emacs 22. Older versions of VM |
| 3852 | with older versions of Emacs are available from | 3852 | suitable for use with older versions of Emacs are available from |
| 3853 | @uref{ftp://ftp.wonderworks.com/pub/vm/, the same FTP site}. | 3853 | @uref{ftp://ftp.wonderworks.com/pub/vm/, the same FTP site}. |
| 3854 | 3854 | ||
| 3855 | 3855 | ||
diff --git a/man/gnus-faq.texi b/man/gnus-faq.texi index e94036dc503..861bab438d6 100644 --- a/man/gnus-faq.texi +++ b/man/gnus-faq.texi | |||
| @@ -172,13 +172,14 @@ Where and how to get Gnus? | |||
| 172 | 172 | ||
| 173 | @subsubheading Answer | 173 | @subsubheading Answer |
| 174 | 174 | ||
| 175 | The latest released version of Gnus isn't included in | 175 | Gnus is released independent from releases of Emacs and XEmacs. |
| 176 | Emacs 21, therefor you should get the Gnus tarball from | 176 | Therefore, the version bundled with Emacs or the version in XEmacs' |
| 177 | @uref{http://www.gnus.org/dist/gnus.tar.gz} | 177 | package system might not be up to date (e.g. Gnus 5.9 bundled with Emacs |
| 178 | or via anonymous FTP from | 178 | 20 is outdated). |
| 179 | @c | ||
| 180 | You can get the latest released version of Gnus from | ||
| 181 | @uref{http://www.gnus.org/dist/gnus.tar.gz} or via anonymous FTP from | ||
| 179 | @uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}. | 182 | @uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}. |
| 180 | If you use XEmacs instead of Emacs you can use XEmacs' | ||
| 181 | package system instead. | ||
| 182 | 183 | ||
| 183 | @node [1.4] | 184 | @node [1.4] |
| 184 | @subsubheading Question 1.4 | 185 | @subsubheading Question 1.4 |
diff --git a/man/gnus.texi b/man/gnus.texi index 973ba121f6f..a929bb2b208 100644 --- a/man/gnus.texi +++ b/man/gnus.texi | |||
| @@ -2139,7 +2139,7 @@ If @code{gnus-auto-select-first} is non-@code{nil}, select an article | |||
| 2139 | automatically when entering a group with the @kbd{SPACE} command. | 2139 | automatically when entering a group with the @kbd{SPACE} command. |
| 2140 | Which article this is is controlled by the | 2140 | Which article this is is controlled by the |
| 2141 | @code{gnus-auto-select-subject} variable. Valid values for this | 2141 | @code{gnus-auto-select-subject} variable. Valid values for this |
| 2142 | variable is: | 2142 | variable are: |
| 2143 | 2143 | ||
| 2144 | @table @code | 2144 | @table @code |
| 2145 | 2145 | ||
| @@ -22137,8 +22137,8 @@ It takes the group name as a parameter. | |||
| 22137 | @section Image Enhancements | 22137 | @section Image Enhancements |
| 22138 | 22138 | ||
| 22139 | XEmacs, as well as Emacs 21@footnote{Emacs 21 on MS Windows doesn't | 22139 | XEmacs, as well as Emacs 21@footnote{Emacs 21 on MS Windows doesn't |
| 22140 | support images yet.}, is able to display pictures and stuff, so Gnus has | 22140 | support images, Emacs 22 does.} and up, are able to display pictures and |
| 22141 | taken advantage of that. | 22141 | stuff, so Gnus has taken advantage of that. |
| 22142 | 22142 | ||
| 22143 | @menu | 22143 | @menu |
| 22144 | * X-Face:: Display a funky, teensy black-and-white image. | 22144 | * X-Face:: Display a funky, teensy black-and-white image. |
| @@ -24471,7 +24471,7 @@ Save table: (spam-stat-save) | |||
| 24471 | @subsection Dired | 24471 | @subsection Dired |
| 24472 | @cindex dired | 24472 | @cindex dired |
| 24473 | 24473 | ||
| 24474 | @code{gnus-dired-minor-mode} provided some useful functions for dired | 24474 | @code{gnus-dired-minor-mode} provides some useful functions for dired |
| 24475 | buffers. It is enabled with | 24475 | buffers. It is enabled with |
| 24476 | @lisp | 24476 | @lisp |
| 24477 | (add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode) | 24477 | (add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode) |
| @@ -24480,6 +24480,7 @@ buffers. It is enabled with | |||
| 24480 | @table @kbd | 24480 | @table @kbd |
| 24481 | @item C-c C-m C-a | 24481 | @item C-c C-m C-a |
| 24482 | @findex gnus-dired-attach | 24482 | @findex gnus-dired-attach |
| 24483 | @cindex attachments, selection via dired | ||
| 24483 | Send dired's marked files as an attachment (@code{gnus-dired-attach}). | 24484 | Send dired's marked files as an attachment (@code{gnus-dired-attach}). |
| 24484 | You will be prompted for a message buffer. | 24485 | You will be prompted for a message buffer. |
| 24485 | 24486 | ||
diff --git a/man/widget.texi b/man/widget.texi index 8a49fd3dadd..e273d253fb3 100644 --- a/man/widget.texi +++ b/man/widget.texi | |||
| @@ -158,7 +158,7 @@ it will be autoloaded when needed. | |||
| 158 | @comment node-name, next, previous, up | 158 | @comment node-name, next, previous, up |
| 159 | @section User Interface | 159 | @section User Interface |
| 160 | 160 | ||
| 161 | A form consist of read only text for documentation and some fields, | 161 | A form consists of read only text for documentation and some fields, |
| 162 | where each field contains two parts, a tag and a value. The tags are | 162 | where each field contains two parts, a tag and a value. The tags are |
| 163 | used to identify the fields, so the documentation can refer to the | 163 | used to identify the fields, so the documentation can refer to the |
| 164 | @samp{foo field}, meaning the field tagged with @samp{Foo}. Here is an | 164 | @samp{foo field}, meaning the field tagged with @samp{Foo}. Here is an |
| @@ -195,7 +195,7 @@ Select one: | |||
| 195 | @b{[Apply Form]} @b{[Reset Form]} | 195 | @b{[Apply Form]} @b{[Reset Form]} |
| 196 | @end example | 196 | @end example |
| 197 | 197 | ||
| 198 | The top level widgets in is example are tagged @samp{Name}, | 198 | The top level widgets in this example are tagged @samp{Name}, |
| 199 | @samp{Choose}, @samp{Address}, @samp{_other work_}, @samp{Numbers}, | 199 | @samp{Choose}, @samp{Address}, @samp{_other work_}, @samp{Numbers}, |
| 200 | @samp{Select multiple}, @samp{Select one}, @samp{[Apply Form]}, and | 200 | @samp{Select multiple}, @samp{Select one}, @samp{[Apply Form]}, and |
| 201 | @samp{[Reset Form]}. There are basically two things the user can do | 201 | @samp{[Reset Form]}. There are basically two things the user can do |
| @@ -277,19 +277,19 @@ The list is created by the @code{editable-list} widget. | |||
| 277 | @cindex embedded buttons | 277 | @cindex embedded buttons |
| 278 | @item Embedded Buttons | 278 | @item Embedded Buttons |
| 279 | The @samp{@b{_other work_}} is an example of an embedded | 279 | The @samp{@b{_other work_}} is an example of an embedded |
| 280 | button. Embedded buttons are not associated with a fields, but can serve | 280 | button. Embedded buttons are not associated with any fields, but can serve |
| 281 | any purpose, such as implementing hypertext references. They are | 281 | any purpose, such as implementing hypertext references. They are |
| 282 | usually created by the @code{link} widget. | 282 | usually created by the @code{link} widget. |
| 283 | @item The @samp{@b{[ ]}} and @samp{@b{[X]}} buttons | 283 | @item The @samp{@b{[ ]}} and @samp{@b{[X]}} buttons |
| 284 | Activating one of these will convert it to the other. This is useful | 284 | Activating one of these will convert it to the other. This is useful |
| 285 | for implementing multiple-choice fields. You can create it with the | 285 | for implementing multiple-choice fields. You can create them with the |
| 286 | @code{checkbox} widget. | 286 | @code{checkbox} widget. |
| 287 | @item The @samp{@b{( )}} and @samp{@b{(*)}} buttons | 287 | @item The @samp{@b{( )}} and @samp{@b{(*)}} buttons |
| 288 | Only one radio button in a @code{radio-button-choice} widget can be | 288 | Only one radio button in a @code{radio-button-choice} widget can be |
| 289 | selected at any time. When you invoke one of the unselected radio | 289 | selected at any time. When you invoke one of the unselected radio |
| 290 | buttons, it will be selected and the previous selected radio button will | 290 | buttons, it will be selected and the previous selected radio button will |
| 291 | become unselected. | 291 | become unselected. |
| 292 | @item The @samp{@b{[Apply Form]}} @samp{@b{[Reset Form]}} buttons | 292 | @item The @samp{@b{[Apply Form]}} and @samp{@b{[Reset Form]}} buttons |
| 293 | These are explicit buttons made with the @code{push-button} widget. The | 293 | These are explicit buttons made with the @code{push-button} widget. The |
| 294 | main difference from the @code{link} widget is that the buttons will be | 294 | main difference from the @code{link} widget is that the buttons will be |
| 295 | displayed as GUI buttons when possible. | 295 | displayed as GUI buttons when possible. |
| @@ -492,7 +492,7 @@ property, @var{argument} is the value of the property, and @var{args} | |||
| 492 | are interpreted in a widget specific way. | 492 | are interpreted in a widget specific way. |
| 493 | 493 | ||
| 494 | @cindex keyword arguments | 494 | @cindex keyword arguments |
| 495 | The following keyword arguments that apply to all widgets: | 495 | The following keyword arguments apply to all widgets: |
| 496 | 496 | ||
| 497 | @table @code | 497 | @table @code |
| 498 | @vindex value@r{ keyword} | 498 | @vindex value@r{ keyword} |
| @@ -807,7 +807,7 @@ TYPE ::= (editable-field [KEYWORD ARGUMENT]... [ VALUE ]) | |||
| 807 | @end example | 807 | @end example |
| 808 | 808 | ||
| 809 | The @var{value}, if present, is used to initialize the @code{:value} | 809 | The @var{value}, if present, is used to initialize the @code{:value} |
| 810 | property. The value should be a string, which will be inserted in | 810 | property. The value should be a string, which will be inserted in the |
| 811 | field. This widget will match all string values. | 811 | field. This widget will match all string values. |
| 812 | 812 | ||
| 813 | The following extra properties are recognized: | 813 | The following extra properties are recognized: |
| @@ -1349,7 +1349,7 @@ second component. There must be exactly two components. | |||
| 1349 | 1349 | ||
| 1350 | @deffn Widget list | 1350 | @deffn Widget list |
| 1351 | The value of a @code{list} widget is a list containing the value of | 1351 | The value of a @code{list} widget is a list containing the value of |
| 1352 | each of its component. | 1352 | each of its components. |
| 1353 | @end deffn | 1353 | @end deffn |
| 1354 | 1354 | ||
| 1355 | @deffn Widget vector | 1355 | @deffn Widget vector |
| @@ -1359,11 +1359,11 @@ each of its component. | |||
| 1359 | 1359 | ||
| 1360 | The above suffice for specifying fixed size lists and vectors. To get | 1360 | The above suffice for specifying fixed size lists and vectors. To get |
| 1361 | variable length lists and vectors, you can use a @code{choice}, | 1361 | variable length lists and vectors, you can use a @code{choice}, |
| 1362 | @code{set}, or @code{repeat} widgets together with the @code{:inline} | 1362 | @code{set}, or @code{repeat} widget together with the @code{:inline} |
| 1363 | keywords. If any component of a composite widget has the @code{:inline} | 1363 | keyword. If any component of a composite widget has the @code{:inline} |
| 1364 | keyword set, its value must be a list which will then be spliced into | 1364 | keyword set, its value must be a list which will then be spliced into |
| 1365 | the composite. For example, to specify a list whose first element must | 1365 | the composite. For example, to specify a list whose first element must |
| 1366 | be a file name, and whose remaining arguments should either by the | 1366 | be a file name, and whose remaining arguments should either be the |
| 1367 | symbol @code{t} or two files, you can use the following widget | 1367 | symbol @code{t} or two files, you can use the following widget |
| 1368 | specification: | 1368 | specification: |
| 1369 | 1369 | ||
| @@ -1390,7 +1390,7 @@ and has a similar syntax. | |||
| 1390 | 1390 | ||
| 1391 | @deffn Widget set | 1391 | @deffn Widget set |
| 1392 | Allows you to specify a type which must be a list whose elements all | 1392 | Allows you to specify a type which must be a list whose elements all |
| 1393 | belong to given set. The elements of the list are not significant. | 1393 | belong to the given set. The elements of the list are not significant. |
| 1394 | This is implemented on top of the @code{checklist} basic widget, and has | 1394 | This is implemented on top of the @code{checklist} basic widget, and has |
| 1395 | a similar syntax. | 1395 | a similar syntax. |
| 1396 | @end deffn | 1396 | @end deffn |
diff --git a/nt/INSTALL b/nt/INSTALL index 21ee8367a88..8415b1893ff 100644 --- a/nt/INSTALL +++ b/nt/INSTALL | |||
| @@ -103,7 +103,7 @@ | |||
| 103 | If you use the MinGW port of GCC and GNU Make to build Emacs, there | 103 | If you use the MinGW port of GCC and GNU Make to build Emacs, there |
| 104 | are some compatibility issues wrt Make and the shell that is run by | 104 | are some compatibility issues wrt Make and the shell that is run by |
| 105 | Make, either the standard COMMAND.COM/CMD.EXE supplied with Windows | 105 | Make, either the standard COMMAND.COM/CMD.EXE supplied with Windows |
| 106 | or sh.exe., a port of a Unixy shell. For reference, here is a list | 106 | or sh.exe., a port of a Unixy shell. For reference, below is a list |
| 107 | of which builds of GNU Make are known to work or not, and whether | 107 | of which builds of GNU Make are known to work or not, and whether |
| 108 | they work in the presence and/or absence of sh.exe, the Cygwin port | 108 | they work in the presence and/or absence of sh.exe, the Cygwin port |
| 109 | of Bash. Note that any version of Make that is compiled with Cygwin | 109 | of Bash. Note that any version of Make that is compiled with Cygwin |
| @@ -129,6 +129,8 @@ | |||
| 129 | cygwin compiled gmake 3.77: fails[1, 5] fails[2, 5] | 129 | cygwin compiled gmake 3.77: fails[1, 5] fails[2, 5] |
| 130 | cygwin compiled make 3.78.1: fails[5] fails[2, 5] | 130 | cygwin compiled make 3.78.1: fails[5] fails[2, 5] |
| 131 | cygwin compiled make 3.79.1: fails[3, 5] fails[2?, 5] | 131 | cygwin compiled make 3.79.1: fails[3, 5] fails[2?, 5] |
| 132 | cygwin compiled make 3.80: fails?[6] fails?[6] | ||
| 133 | cygwin compiled make 3.81: fails fails?[6] | ||
| 132 | mingw32 compiled make 3.79.1: okay okay | 134 | mingw32 compiled make 3.79.1: okay okay |
| 133 | mingw32 compiled make 3.80: okay unknown[6] | 135 | mingw32 compiled make 3.80: okay unknown[6] |
| 134 | mingw32 compiled make 3.81: okay okay[7] | 136 | mingw32 compiled make 3.81: okay okay[7] |
diff --git a/src/ChangeLog b/src/ChangeLog index 79bfe7fe4eb..8590cb57230 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,91 @@ | |||
| 1 | 2006-10-14 Richard Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * sysdep.c (init_sys_modes): Delete DEFVAR_LISP in the wrong place. | ||
| 4 | |||
| 5 | 2006-10-13 Chong Yidong <cyd@stupidchicken.com> | ||
| 6 | |||
| 7 | * xdisp.c (decode_mode_spec): Ignore %c and %l constructs in frame | ||
| 8 | title. | ||
| 9 | |||
| 10 | 2006-10-12 Chong Yidong <cyd@stupidchicken.com> | ||
| 11 | |||
| 12 | * keymap.c (Fkey_binding): Check Lisp_Object types before doing | ||
| 13 | XCAR and XINT. | ||
| 14 | |||
| 15 | 2006-10-12 Romain Francoise <romain@orebokech.com> | ||
| 16 | |||
| 17 | * image.c (xbm_read_bitmap_data): Delete extra semicolon. | ||
| 18 | |||
| 19 | 2006-10-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 20 | |||
| 21 | * eval.c: Include xterm.h for x_fully_uncatch_errors and friends. | ||
| 22 | |||
| 23 | * dispextern.h: Declare x_create_bitmap_from_xpm_data. | ||
| 24 | |||
| 25 | * xterm.c (x_check_expected_move): Remove unused var `count'. | ||
| 26 | |||
| 27 | * xmenu.c (syms_of_xmenu): Use Ffset rather than Fdefalias, since | ||
| 28 | Fdefalias is not declared in any *.h file. | ||
| 29 | |||
| 30 | 2006-10-09 Chong Yidong <cyd@stupidchicken.com> | ||
| 31 | |||
| 32 | * dispnew.c (sit_for): Sit forever if TIMEOUT is t. | ||
| 33 | |||
| 34 | * keyboard.c (command_loop_1): Handle non-number values of | ||
| 35 | `minibuffer-message-timeout'. | ||
| 36 | (Fexecute_extended_command): Fix typo. | ||
| 37 | |||
| 38 | * minibuf.c (temp_echo_area_glyphs): Sit for | ||
| 39 | `minibuffer-message-timeout' seconds. | ||
| 40 | |||
| 41 | 2006-10-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 42 | |||
| 43 | * macterm.c (mac_draw_image_string, mac_draw_image_string_16): | ||
| 44 | Add argument OVERSTRIKE_P. | ||
| 45 | (mac_draw_string_common, mac_draw_image_string_cg): Likewise. | ||
| 46 | Support overstrike. | ||
| 47 | (mac_draw_string, mac_draw_string_16): Remove functions. | ||
| 48 | (x_draw_glyph_string_foreground): Use overstrike when needed. | ||
| 49 | (x_draw_composite_glyph_string_foreground): Likewise. | ||
| 50 | Use mac_draw_image_string_16 instead of mac_draw_string_16. | ||
| 51 | (mac_load_query_font): Rename from XLoadQueryFont. Take argument F | ||
| 52 | instead of DPY. All uses changed. Don't save/restore font. | ||
| 53 | |||
| 54 | 2006-10-07 Ralf Angeli <angeli@caeruleus.net> | ||
| 55 | |||
| 56 | * w32fns.c (w32_createwindow): Honour left and top positions if | ||
| 57 | supplied explicitly. | ||
| 58 | |||
| 59 | 2006-10-06 Kim F. Storm <storm@cua.dk> | ||
| 60 | |||
| 61 | * xdisp.c (pos_visible_p): Fix value when EOB is visible. | ||
| 62 | |||
| 63 | 2006-10-05 Chong Yidong <cyd@stupidchicken.com> | ||
| 64 | |||
| 65 | * frame.c (Qinhibit_face_set_after_frame_default): New var. | ||
| 66 | (syms_of_frame): Initialize it. | ||
| 67 | (x_set_frame_parameters): Avoid resetting :font attributes to the | ||
| 68 | new-frame defaults. | ||
| 69 | |||
| 70 | 2006-10-03 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 71 | |||
| 72 | * lisp.h (clear_regexp_cache): Declare. | ||
| 73 | |||
| 74 | * search.c (compile_pattern): Only check `cp->syntax_table' if needed. | ||
| 75 | (compile_pattern_1): Remember `used_syntax' in `cp->syntax_table'. | ||
| 76 | (clear_regexp_cache): Only flush those regexps which depend on | ||
| 77 | a syntax-table. | ||
| 78 | |||
| 79 | * regex.c (regex_compile): Set the new `used_syntax' bit. | ||
| 80 | |||
| 81 | * regex.h: Remove file local variables. | ||
| 82 | (struct re_pattern_buffer): New field `used_syntax'. | ||
| 83 | |||
| 84 | 2006-10-03 Kim F. Storm <storm@cua.dk> | ||
| 85 | |||
| 86 | * process.c (list_processes_1): Run sentinels before removing dead | ||
| 87 | processes. Also remove `closed' network connections. | ||
| 88 | |||
| 1 | 2006-10-01 Stefan Monnier <monnier@iro.umontreal.ca> | 89 | 2006-10-01 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 90 | ||
| 3 | * xdisp.c (handle_fontified_prop): Don't fontify at EOB. | 91 | * xdisp.c (handle_fontified_prop): Don't fontify at EOB. |
| @@ -52,8 +140,8 @@ | |||
| 52 | 140 | ||
| 53 | 2006-09-24 Eli Zaretskii <eliz@gnu.org> | 141 | 2006-09-24 Eli Zaretskii <eliz@gnu.org> |
| 54 | 142 | ||
| 55 | * makefile.w32-in ($(BLD)/fns.$(O), $(BLD)/w32proc.$(O)): Depend | 143 | * makefile.w32-in ($(BLD)/fns.$(O), $(BLD)/w32proc.$(O)): |
| 56 | on nt/inc/langinfo.h and nt/inc/nl_types.h. | 144 | Depend on nt/inc/langinfo.h and nt/inc/nl_types.h. |
| 57 | 145 | ||
| 58 | * w32proc.c (nl_langinfo): New function. | 146 | * w32proc.c (nl_langinfo): New function. |
| 59 | 147 | ||
| @@ -235,8 +323,7 @@ | |||
| 235 | 323 | ||
| 236 | 2006-09-15 David Kastrup <dak@gnu.org> | 324 | 2006-09-15 David Kastrup <dak@gnu.org> |
| 237 | 325 | ||
| 238 | * Makefile.in (keymap.o): Add "keymap.h" and "window.h" | 326 | * Makefile.in (keymap.o): Add "keymap.h" and "window.h" dependencies. |
| 239 | dependencies. | ||
| 240 | 327 | ||
| 241 | * keymap.c: include "window.h". | 328 | * keymap.c: include "window.h". |
| 242 | (Fcommand_remapping): New optional POSITION argument. | 329 | (Fcommand_remapping): New optional POSITION argument. |
| @@ -1477,7 +1564,7 @@ | |||
| 1477 | (x_set_offset, x_check_fullscreen): Extensive changes to make | 1564 | (x_set_offset, x_check_fullscreen): Extensive changes to make |
| 1478 | frame positioning deterministic under X. | 1565 | frame positioning deterministic under X. |
| 1479 | 1566 | ||
| 1480 | * xterm.h (x_output): Added members left_before_move and | 1567 | * xterm.h (x_output): Add members left_before_move and |
| 1481 | top_before_move. Removed members expected_left and expected_top. | 1568 | top_before_move. Removed members expected_left and expected_top. |
| 1482 | 1569 | ||
| 1483 | 2006-06-16 Kim F. Storm <storm@cua.dk> | 1570 | 2006-06-16 Kim F. Storm <storm@cua.dk> |
diff --git a/src/dispextern.h b/src/dispextern.h index 1f768dd323c..5eb7ee11dea 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -2794,6 +2794,9 @@ extern void x_reference_bitmap P_ ((struct frame *, int)); | |||
| 2794 | extern int x_create_bitmap_from_data P_ ((struct frame *, char *, | 2794 | extern int x_create_bitmap_from_data P_ ((struct frame *, char *, |
| 2795 | unsigned int, unsigned int)); | 2795 | unsigned int, unsigned int)); |
| 2796 | extern int x_create_bitmap_from_file P_ ((struct frame *, Lisp_Object)); | 2796 | extern int x_create_bitmap_from_file P_ ((struct frame *, Lisp_Object)); |
| 2797 | #if defined (HAVE_XPM) && defined (HAVE_X_WINDOWS) | ||
| 2798 | extern int x_create_bitmap_from_xpm_data P_ ((struct frame *f, char **bits)); | ||
| 2799 | #endif | ||
| 2797 | #ifndef x_destroy_bitmap | 2800 | #ifndef x_destroy_bitmap |
| 2798 | extern void x_destroy_bitmap P_ ((struct frame *, int)); | 2801 | extern void x_destroy_bitmap P_ ((struct frame *, int)); |
| 2799 | #endif | 2802 | #endif |
diff --git a/src/dispnew.c b/src/dispnew.c index de8f2c1ad38..516f0b54ce6 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -6488,7 +6488,8 @@ Emacs was built without floating point support. | |||
| 6488 | /* This is just like wait_reading_process_output, except that | 6488 | /* This is just like wait_reading_process_output, except that |
| 6489 | it does redisplay. | 6489 | it does redisplay. |
| 6490 | 6490 | ||
| 6491 | TIMEOUT is number of seconds to wait (float or integer). | 6491 | TIMEOUT is number of seconds to wait (float or integer), |
| 6492 | or t to wait forever. | ||
| 6492 | READING is 1 if reading input. | 6493 | READING is 1 if reading input. |
| 6493 | If DO_DISPLAY is >0 display process output while waiting. | 6494 | If DO_DISPLAY is >0 display process output while waiting. |
| 6494 | If DO_DISPLAY is >1 perform an initial redisplay before waiting. | 6495 | If DO_DISPLAY is >1 perform an initial redisplay before waiting. |
| @@ -6521,10 +6522,15 @@ sit_for (timeout, reading, do_display) | |||
| 6521 | sec = (int) seconds; | 6522 | sec = (int) seconds; |
| 6522 | usec = (int) ((seconds - sec) * 1000000); | 6523 | usec = (int) ((seconds - sec) * 1000000); |
| 6523 | } | 6524 | } |
| 6525 | else if (EQ (timeout, Qt)) | ||
| 6526 | { | ||
| 6527 | sec = 0; | ||
| 6528 | usec = 0; | ||
| 6529 | } | ||
| 6524 | else | 6530 | else |
| 6525 | wrong_type_argument (Qnumberp, timeout); | 6531 | wrong_type_argument (Qnumberp, timeout); |
| 6526 | 6532 | ||
| 6527 | if (sec == 0 && usec == 0) | 6533 | if (sec == 0 && usec == 0 && !EQ (timeout, Qt)) |
| 6528 | return Qt; | 6534 | return Qt; |
| 6529 | 6535 | ||
| 6530 | #ifdef SIGIO | 6536 | #ifdef SIGIO |
diff --git a/src/eval.c b/src/eval.c index dbd30eac201..4e04422d2d6 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -28,6 +28,10 @@ Boston, MA 02110-1301, USA. */ | |||
| 28 | #include "dispextern.h" | 28 | #include "dispextern.h" |
| 29 | #include <setjmp.h> | 29 | #include <setjmp.h> |
| 30 | 30 | ||
| 31 | #if HAVE_X_WINDOWS | ||
| 32 | #include "xterm.h" | ||
| 33 | #endif | ||
| 34 | |||
| 31 | /* This definition is duplicated in alloc.c and keyboard.c */ | 35 | /* This definition is duplicated in alloc.c and keyboard.c */ |
| 32 | /* Putting it in lisp.h makes cc bomb out! */ | 36 | /* Putting it in lisp.h makes cc bomb out! */ |
| 33 | 37 | ||
diff --git a/src/frame.c b/src/frame.c index c57618696eb..f431dc4946d 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -116,6 +116,7 @@ Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth; | |||
| 116 | Lisp_Object Qfont_backend; | 116 | Lisp_Object Qfont_backend; |
| 117 | #endif /* USE_FONT_BACKEND */ | 117 | #endif /* USE_FONT_BACKEND */ |
| 118 | 118 | ||
| 119 | Lisp_Object Qinhibit_face_set_after_frame_default; | ||
| 119 | Lisp_Object Qface_set_after_frame_default; | 120 | Lisp_Object Qface_set_after_frame_default; |
| 120 | 121 | ||
| 121 | 122 | ||
| @@ -2742,12 +2743,20 @@ x_set_frame_parameters (f, alist) | |||
| 2742 | || EQ (prop, Qfullscreen)) | 2743 | || EQ (prop, Qfullscreen)) |
| 2743 | { | 2744 | { |
| 2744 | register Lisp_Object param_index, old_value; | 2745 | register Lisp_Object param_index, old_value; |
| 2746 | int count = SPECPDL_INDEX (); | ||
| 2745 | 2747 | ||
| 2746 | old_value = get_frame_param (f, prop); | 2748 | old_value = get_frame_param (f, prop); |
| 2747 | fullscreen_is_being_set |= EQ (prop, Qfullscreen); | 2749 | fullscreen_is_being_set |= EQ (prop, Qfullscreen); |
| 2748 | 2750 | ||
| 2749 | if (NILP (Fequal (val, old_value))) | 2751 | if (NILP (Fequal (val, old_value))) |
| 2750 | { | 2752 | { |
| 2753 | /* For :font attributes, the frame_parm_handler | ||
| 2754 | x_set_font calls `face-set-after-frame-default'. | ||
| 2755 | Unless we bind inhibit-face-set-after-frame-default | ||
| 2756 | here, this would reset the :font attribute that we | ||
| 2757 | just applied to the default value for new faces. */ | ||
| 2758 | specbind (Qinhibit_face_set_after_frame_default, Qt); | ||
| 2759 | |||
| 2751 | store_frame_param (f, prop, val); | 2760 | store_frame_param (f, prop, val); |
| 2752 | 2761 | ||
| 2753 | param_index = Fget (prop, Qx_frame_parameter); | 2762 | param_index = Fget (prop, Qx_frame_parameter); |
| @@ -2756,6 +2765,8 @@ x_set_frame_parameters (f, alist) | |||
| 2756 | < sizeof (frame_parms)/sizeof (frame_parms[0])) | 2765 | < sizeof (frame_parms)/sizeof (frame_parms[0])) |
| 2757 | && rif->frame_parm_handlers[XINT (param_index)]) | 2766 | && rif->frame_parm_handlers[XINT (param_index)]) |
| 2758 | (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value); | 2767 | (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value); |
| 2768 | |||
| 2769 | unbind_to (count, Qnil); | ||
| 2759 | } | 2770 | } |
| 2760 | } | 2771 | } |
| 2761 | } | 2772 | } |
| @@ -4112,6 +4123,10 @@ syms_of_frame () | |||
| 4112 | Qface_set_after_frame_default = intern ("face-set-after-frame-default"); | 4123 | Qface_set_after_frame_default = intern ("face-set-after-frame-default"); |
| 4113 | staticpro (&Qface_set_after_frame_default); | 4124 | staticpro (&Qface_set_after_frame_default); |
| 4114 | 4125 | ||
| 4126 | Qinhibit_face_set_after_frame_default | ||
| 4127 | = intern ("inhibit-face-set-after-frame-default"); | ||
| 4128 | staticpro (&Qinhibit_face_set_after_frame_default); | ||
| 4129 | |||
| 4115 | Qfullwidth = intern ("fullwidth"); | 4130 | Qfullwidth = intern ("fullwidth"); |
| 4116 | staticpro (&Qfullwidth); | 4131 | staticpro (&Qfullwidth); |
| 4117 | Qfullheight = intern ("fullheight"); | 4132 | Qfullheight = intern ("fullheight"); |
diff --git a/src/image.c b/src/image.c index dac896137c3..30c01702d85 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -3151,7 +3151,7 @@ xbm_read_bitmap_data (f, contents, end, width, height, data) | |||
| 3151 | expect_ident ("define"); | 3151 | expect_ident ("define"); |
| 3152 | expect (XBM_TK_IDENT); | 3152 | expect (XBM_TK_IDENT); |
| 3153 | 3153 | ||
| 3154 | if (LA1 == XBM_TK_NUMBER); | 3154 | if (LA1 == XBM_TK_NUMBER) |
| 3155 | { | 3155 | { |
| 3156 | char *p = strrchr (buffer, '_'); | 3156 | char *p = strrchr (buffer, '_'); |
| 3157 | p = p ? p + 1 : buffer; | 3157 | p = p ? p + 1 : buffer; |
diff --git a/src/keyboard.c b/src/keyboard.c index 786b3d9b556..61539a384fd 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1546,15 +1546,17 @@ command_loop_1 () | |||
| 1546 | 1546 | ||
| 1547 | if (minibuf_level | 1547 | if (minibuf_level |
| 1548 | && !NILP (echo_area_buffer[0]) | 1548 | && !NILP (echo_area_buffer[0]) |
| 1549 | && EQ (minibuf_window, echo_area_window) | 1549 | && EQ (minibuf_window, echo_area_window)) |
| 1550 | && NUMBERP (Vminibuffer_message_timeout)) | ||
| 1551 | { | 1550 | { |
| 1552 | /* Bind inhibit-quit to t so that C-g gets read in | 1551 | /* Bind inhibit-quit to t so that C-g gets read in |
| 1553 | rather than quitting back to the minibuffer. */ | 1552 | rather than quitting back to the minibuffer. */ |
| 1554 | int count = SPECPDL_INDEX (); | 1553 | int count = SPECPDL_INDEX (); |
| 1555 | specbind (Qinhibit_quit, Qt); | 1554 | specbind (Qinhibit_quit, Qt); |
| 1556 | 1555 | ||
| 1557 | sit_for (Vminibuffer_message_timeout, 0, 2); | 1556 | if (NUMBERP (Vminibuffer_message_timeout)) |
| 1557 | sit_for (Vminibuffer_message_timeout, 0, 2); | ||
| 1558 | else | ||
| 1559 | sit_for (Qt, 0, 2); | ||
| 1558 | 1560 | ||
| 1559 | /* Clear the echo area. */ | 1561 | /* Clear the echo area. */ |
| 1560 | message2 (0, 0, 0); | 1562 | message2 (0, 0, 0); |
| @@ -9981,7 +9983,7 @@ give to the command you invoke, if it asks for an argument. */) | |||
| 9981 | if (NILP (echo_area_buffer[0])) | 9983 | if (NILP (echo_area_buffer[0])) |
| 9982 | waited = sit_for (make_number (0), 0, 2); | 9984 | waited = sit_for (make_number (0), 0, 2); |
| 9983 | else if (NUMBERP (Vsuggest_key_bindings)) | 9985 | else if (NUMBERP (Vsuggest_key_bindings)) |
| 9984 | waited = sit_for (Vminibuffer_message_timeout, 0, 2); | 9986 | waited = sit_for (Vsuggest_key_bindings, 0, 2); |
| 9985 | else | 9987 | else |
| 9986 | waited = sit_for (make_number (2), 0, 2); | 9988 | waited = sit_for (make_number (2), 0, 2); |
| 9987 | 9989 | ||
diff --git a/src/keymap.c b/src/keymap.c index 237bc0db9df..f67cc109e87 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -1643,13 +1643,12 @@ specified buffer position instead of point are used. | |||
| 1643 | 1643 | ||
| 1644 | /* We are not interested in locations without event data */ | 1644 | /* We are not interested in locations without event data */ |
| 1645 | 1645 | ||
| 1646 | if (EVENT_HAS_PARAMETERS (event)) { | 1646 | if (EVENT_HAS_PARAMETERS (event)) |
| 1647 | Lisp_Object kind; | 1647 | { |
| 1648 | 1648 | Lisp_Object kind = EVENT_HEAD_KIND (EVENT_HEAD (event)); | |
| 1649 | kind = EVENT_HEAD_KIND (EVENT_HEAD (event)); | 1649 | if (CONSP (XCDR (event)) && EQ (kind, Qmouse_click)) |
| 1650 | if (EQ (kind, Qmouse_click)) | 1650 | position = EVENT_START (event); |
| 1651 | position = EVENT_START (event); | 1651 | } |
| 1652 | } | ||
| 1653 | } | 1652 | } |
| 1654 | 1653 | ||
| 1655 | /* Key sequences beginning with mouse clicks | 1654 | /* Key sequences beginning with mouse clicks |
| @@ -1742,7 +1741,8 @@ specified buffer position instead of point are used. | |||
| 1742 | 1741 | ||
| 1743 | pos = XCDR (string); | 1742 | pos = XCDR (string); |
| 1744 | string = XCAR (string); | 1743 | string = XCAR (string); |
| 1745 | if (XINT (pos) >= 0 | 1744 | if (INTEGERP (pos) |
| 1745 | && XINT (pos) >= 0 | ||
| 1746 | && XINT (pos) < SCHARS (string)) | 1746 | && XINT (pos) < SCHARS (string)) |
| 1747 | { | 1747 | { |
| 1748 | map = Fget_text_property (pos, Qlocal_map, string); | 1748 | map = Fget_text_property (pos, Qlocal_map, string); |
diff --git a/src/lisp.h b/src/lisp.h index 4421dfedf95..787eface0ee 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -2957,6 +2957,7 @@ extern int find_next_newline P_ ((int, int)); | |||
| 2957 | extern int find_next_newline_no_quit P_ ((int, int)); | 2957 | extern int find_next_newline_no_quit P_ ((int, int)); |
| 2958 | extern int find_before_next_newline P_ ((int, int, int)); | 2958 | extern int find_before_next_newline P_ ((int, int, int)); |
| 2959 | extern void syms_of_search P_ ((void)); | 2959 | extern void syms_of_search P_ ((void)); |
| 2960 | extern void clear_regexp_cache P_ ((void)); | ||
| 2960 | 2961 | ||
| 2961 | /* defined in minibuf.c */ | 2962 | /* defined in minibuf.c */ |
| 2962 | 2963 | ||
diff --git a/src/macterm.c b/src/macterm.c index 719b703a77c..126fe513533 100644 --- a/src/macterm.c +++ b/src/macterm.c | |||
| @@ -893,12 +893,13 @@ mac_invert_rectangle (f, x, y, width, height) | |||
| 893 | 893 | ||
| 894 | 894 | ||
| 895 | static void | 895 | static void |
| 896 | mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char) | 896 | mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, |
| 897 | overstrike_p, bytes_per_char) | ||
| 897 | struct frame *f; | 898 | struct frame *f; |
| 898 | GC gc; | 899 | GC gc; |
| 899 | int x, y; | 900 | int x, y; |
| 900 | char *buf; | 901 | char *buf; |
| 901 | int nchars, bg_width, bytes_per_char; | 902 | int nchars, bg_width, overstrike_p, bytes_per_char; |
| 902 | { | 903 | { |
| 903 | SetPortWindowPort (FRAME_MAC_WINDOW (f)); | 904 | SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
| 904 | 905 | ||
| @@ -948,6 +949,13 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char) | |||
| 948 | ATSUDrawText (text_layout, | 949 | ATSUDrawText (text_layout, |
| 949 | kATSUFromTextBeginning, kATSUToTextEnd, | 950 | kATSUFromTextBeginning, kATSUToTextEnd, |
| 950 | kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc); | 951 | kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc); |
| 952 | if (overstrike_p) | ||
| 953 | { | ||
| 954 | MoveTo (x + 1, y); | ||
| 955 | ATSUDrawText (text_layout, | ||
| 956 | kATSUFromTextBeginning, kATSUToTextEnd, | ||
| 957 | kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc); | ||
| 958 | } | ||
| 951 | mac_end_clip (gc); | 959 | mac_end_clip (gc); |
| 952 | #ifdef MAC_OSX | 960 | #ifdef MAC_OSX |
| 953 | } | 961 | } |
| @@ -991,9 +999,15 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char) | |||
| 991 | sizeof (tags) / sizeof (tags[0]), | 999 | sizeof (tags) / sizeof (tags[0]), |
| 992 | tags, sizes, values); | 1000 | tags, sizes, values); |
| 993 | if (err == noErr) | 1001 | if (err == noErr) |
| 994 | ATSUDrawText (text_layout, | 1002 | { |
| 995 | kATSUFromTextBeginning, kATSUToTextEnd, | 1003 | ATSUDrawText (text_layout, |
| 996 | Long2Fix (x), Long2Fix (port_height - y)); | 1004 | kATSUFromTextBeginning, kATSUToTextEnd, |
| 1005 | Long2Fix (x), Long2Fix (port_height - y)); | ||
| 1006 | if (overstrike_p) | ||
| 1007 | ATSUDrawText (text_layout, | ||
| 1008 | kATSUFromTextBeginning, kATSUToTextEnd, | ||
| 1009 | Long2Fix (x + 1), Long2Fix (port_height - y)); | ||
| 1010 | } | ||
| 997 | #if USE_CG_DRAWING | 1011 | #if USE_CG_DRAWING |
| 998 | mac_end_cg_clip (f); | 1012 | mac_end_cg_clip (f); |
| 999 | context = NULL; | 1013 | context = NULL; |
| @@ -1059,6 +1073,12 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char) | |||
| 1059 | TextFace (GC_FONT (gc)->mac_fontface); | 1073 | TextFace (GC_FONT (gc)->mac_fontface); |
| 1060 | MoveTo (x, y); | 1074 | MoveTo (x, y); |
| 1061 | DrawText (buf, 0, nchars * bytes_per_char); | 1075 | DrawText (buf, 0, nchars * bytes_per_char); |
| 1076 | if (overstrike_p) | ||
| 1077 | { | ||
| 1078 | TextMode (srcOr); | ||
| 1079 | MoveTo (x + 1, y); | ||
| 1080 | DrawText (buf, 0, nchars * bytes_per_char); | ||
| 1081 | } | ||
| 1062 | if (bg_width) | 1082 | if (bg_width) |
| 1063 | RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); | 1083 | RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
| 1064 | mac_end_clip (gc); | 1084 | mac_end_clip (gc); |
| @@ -1071,59 +1091,33 @@ mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char) | |||
| 1071 | } | 1091 | } |
| 1072 | 1092 | ||
| 1073 | 1093 | ||
| 1074 | /* Mac replacement for XDrawString. */ | ||
| 1075 | |||
| 1076 | static void | ||
| 1077 | mac_draw_string (f, gc, x, y, buf, nchars) | ||
| 1078 | struct frame *f; | ||
| 1079 | GC gc; | ||
| 1080 | int x, y; | ||
| 1081 | char *buf; | ||
| 1082 | int nchars; | ||
| 1083 | { | ||
| 1084 | mac_draw_string_common (f, gc, x, y, buf, nchars, 0, 1); | ||
| 1085 | } | ||
| 1086 | |||
| 1087 | |||
| 1088 | /* Mac replacement for XDrawString16. */ | ||
| 1089 | |||
| 1090 | static void | ||
| 1091 | mac_draw_string_16 (f, gc, x, y, buf, nchars) | ||
| 1092 | struct frame *f; | ||
| 1093 | GC gc; | ||
| 1094 | int x, y; | ||
| 1095 | XChar2b *buf; | ||
| 1096 | int nchars; | ||
| 1097 | { | ||
| 1098 | mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, 0, 2); | ||
| 1099 | } | ||
| 1100 | |||
| 1101 | |||
| 1102 | /* Mac replacement for XDrawImageString. */ | 1094 | /* Mac replacement for XDrawImageString. */ |
| 1103 | 1095 | ||
| 1104 | static void | 1096 | static void |
| 1105 | mac_draw_image_string (f, gc, x, y, buf, nchars, bg_width) | 1097 | mac_draw_image_string (f, gc, x, y, buf, nchars, bg_width, overstrike_p) |
| 1106 | struct frame *f; | 1098 | struct frame *f; |
| 1107 | GC gc; | 1099 | GC gc; |
| 1108 | int x, y; | 1100 | int x, y; |
| 1109 | char *buf; | 1101 | char *buf; |
| 1110 | int nchars, bg_width; | 1102 | int nchars, bg_width, overstrike_p; |
| 1111 | { | 1103 | { |
| 1112 | mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, 1); | 1104 | mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, |
| 1105 | overstrike_p, 1); | ||
| 1113 | } | 1106 | } |
| 1114 | 1107 | ||
| 1115 | 1108 | ||
| 1116 | /* Mac replacement for XDrawString16. */ | 1109 | /* Mac replacement for XDrawImageString16. */ |
| 1117 | 1110 | ||
| 1118 | static void | 1111 | static void |
| 1119 | mac_draw_image_string_16 (f, gc, x, y, buf, nchars, bg_width) | 1112 | mac_draw_image_string_16 (f, gc, x, y, buf, nchars, bg_width, overstrike_p) |
| 1120 | struct frame *f; | 1113 | struct frame *f; |
| 1121 | GC gc; | 1114 | GC gc; |
| 1122 | int x, y; | 1115 | int x, y; |
| 1123 | XChar2b *buf; | 1116 | XChar2b *buf; |
| 1124 | int nchars, bg_width; | 1117 | int nchars, bg_width, overstrike_p; |
| 1125 | { | 1118 | { |
| 1126 | mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, bg_width, 2); | 1119 | mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, bg_width, |
| 1120 | overstrike_p, 2); | ||
| 1127 | } | 1121 | } |
| 1128 | 1122 | ||
| 1129 | 1123 | ||
| @@ -1297,12 +1291,12 @@ init_cg_text_anti_aliasing_threshold () | |||
| 1297 | } | 1291 | } |
| 1298 | 1292 | ||
| 1299 | static int | 1293 | static int |
| 1300 | mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width) | 1294 | mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width, overstrike_p) |
| 1301 | struct frame *f; | 1295 | struct frame *f; |
| 1302 | GC gc; | 1296 | GC gc; |
| 1303 | int x, y; | 1297 | int x, y; |
| 1304 | XChar2b *buf; | 1298 | XChar2b *buf; |
| 1305 | int nchars, bg_width; | 1299 | int nchars, bg_width, overstrike_p; |
| 1306 | { | 1300 | { |
| 1307 | CGrafPtr port; | 1301 | CGrafPtr port; |
| 1308 | float port_height, gx, gy; | 1302 | float port_height, gx, gy; |
| @@ -1364,10 +1358,17 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width) | |||
| 1364 | #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 | 1358 | #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 |
| 1365 | CGContextSetTextPosition (context, gx, gy); | 1359 | CGContextSetTextPosition (context, gx, gy); |
| 1366 | CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars); | 1360 | CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars); |
| 1361 | if (overstrike_p) | ||
| 1362 | { | ||
| 1363 | CGContextSetTextPosition (context, gx + 1.0f, gy); | ||
| 1364 | CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars); | ||
| 1365 | } | ||
| 1367 | #else | 1366 | #else |
| 1368 | for (i = 0; i < nchars; i++) | 1367 | for (i = 0; i < nchars; i++) |
| 1369 | { | 1368 | { |
| 1370 | CGContextShowGlyphsAtPoint (context, gx, gy, glyphs + i, 1); | 1369 | CGContextShowGlyphsAtPoint (context, gx, gy, glyphs + i, 1); |
| 1370 | if (overstrike_p) | ||
| 1371 | CGContextShowGlyphsAtPoint (context, gx + 1.0f, gy, glyphs + i, 1); | ||
| 1371 | gx += advances[i].width; | 1372 | gx += advances[i].width; |
| 1372 | } | 1373 | } |
| 1373 | #endif | 1374 | #endif |
| @@ -2773,15 +2774,18 @@ x_draw_glyph_string_foreground (s) | |||
| 2773 | #if USE_CG_TEXT_DRAWING | 2774 | #if USE_CG_TEXT_DRAWING |
| 2774 | if (!s->two_byte_p | 2775 | if (!s->two_byte_p |
| 2775 | && mac_draw_image_string_cg (s->f, s->gc, x, s->ybase - boff, | 2776 | && mac_draw_image_string_cg (s->f, s->gc, x, s->ybase - boff, |
| 2776 | s->char2b, s->nchars, bg_width)) | 2777 | s->char2b, s->nchars, bg_width, |
| 2778 | s->face->overstrike)) | ||
| 2777 | ; | 2779 | ; |
| 2778 | else | 2780 | else |
| 2779 | #endif | 2781 | #endif |
| 2780 | mac_draw_image_string_16 (s->f, s->gc, x, s->ybase - boff, | 2782 | mac_draw_image_string_16 (s->f, s->gc, x, s->ybase - boff, |
| 2781 | s->char2b, s->nchars, bg_width); | 2783 | s->char2b, s->nchars, bg_width, |
| 2784 | s->face->overstrike); | ||
| 2782 | else | 2785 | else |
| 2783 | mac_draw_image_string (s->f, s->gc, x, s->ybase - boff, | 2786 | mac_draw_image_string (s->f, s->gc, x, s->ybase - boff, |
| 2784 | char1b, s->nchars, bg_width); | 2787 | char1b, s->nchars, bg_width, |
| 2788 | s->face->overstrike); | ||
| 2785 | } | 2789 | } |
| 2786 | } | 2790 | } |
| 2787 | 2791 | ||
| @@ -2817,10 +2821,10 @@ x_draw_composite_glyph_string_foreground (s) | |||
| 2817 | else | 2821 | else |
| 2818 | { | 2822 | { |
| 2819 | for (i = 0; i < s->nchars; i++, ++s->gidx) | 2823 | for (i = 0; i < s->nchars; i++, ++s->gidx) |
| 2820 | mac_draw_string_16 (s->f, s->gc, | 2824 | mac_draw_image_string_16 (s->f, s->gc, |
| 2821 | x + s->cmp->offsets[s->gidx * 2], | 2825 | x + s->cmp->offsets[s->gidx * 2], |
| 2822 | s->ybase - s->cmp->offsets[s->gidx * 2 + 1], | 2826 | s->ybase - s->cmp->offsets[s->gidx * 2 + 1], |
| 2823 | s->char2b + i, 1); | 2827 | s->char2b + i, 1, 0, s->face->overstrike); |
| 2824 | } | 2828 | } |
| 2825 | } | 2829 | } |
| 2826 | 2830 | ||
| @@ -7801,14 +7805,16 @@ is_fully_specified_xlfd (char *p) | |||
| 7801 | } | 7805 | } |
| 7802 | 7806 | ||
| 7803 | 7807 | ||
| 7804 | /* XLoadQueryFont creates and returns an internal representation for a | 7808 | /* mac_load_query_font creates and returns an internal representation |
| 7805 | font in a MacFontStruct struct. There is really no concept | 7809 | for a font in a MacFontStruct struct. There is really no concept |
| 7806 | corresponding to "loading" a font on the Mac. But we check its | 7810 | corresponding to "loading" a font on the Mac. But we check its |
| 7807 | existence and find the font number and all other information for it | 7811 | existence and find the font number and all other information for it |
| 7808 | and store them in the returned MacFontStruct. */ | 7812 | and store them in the returned MacFontStruct. */ |
| 7809 | 7813 | ||
| 7810 | static MacFontStruct * | 7814 | static MacFontStruct * |
| 7811 | XLoadQueryFont (Display *dpy, char *fontname) | 7815 | mac_load_query_font (f, fontname) |
| 7816 | struct frame *f; | ||
| 7817 | char *fontname; | ||
| 7812 | { | 7818 | { |
| 7813 | int size; | 7819 | int size; |
| 7814 | char *name; | 7820 | char *name; |
| @@ -8019,26 +8025,13 @@ XLoadQueryFont (Display *dpy, char *fontname) | |||
| 8019 | else | 8025 | else |
| 8020 | #endif | 8026 | #endif |
| 8021 | { | 8027 | { |
| 8022 | GrafPtr port; | ||
| 8023 | SInt16 old_fontnum, old_fontsize; | ||
| 8024 | Style old_fontface; | ||
| 8025 | FontInfo the_fontinfo; | 8028 | FontInfo the_fontinfo; |
| 8026 | int is_two_byte_font; | 8029 | int is_two_byte_font; |
| 8027 | 8030 | ||
| 8028 | #if USE_CG_DRAWING | 8031 | #if USE_CG_DRAWING |
| 8029 | mac_prepare_for_quickdraw (NULL); | 8032 | mac_prepare_for_quickdraw (f); |
| 8030 | #endif | ||
| 8031 | /* Save the current font number used. */ | ||
| 8032 | GetPort (&port); | ||
| 8033 | #if TARGET_API_MAC_CARBON | ||
| 8034 | old_fontnum = GetPortTextFont (port); | ||
| 8035 | old_fontsize = GetPortTextSize (port); | ||
| 8036 | old_fontface = GetPortTextFace (port); | ||
| 8037 | #else | ||
| 8038 | old_fontnum = port->txFont; | ||
| 8039 | old_fontsize = port->txSize; | ||
| 8040 | old_fontface = port->txFace; | ||
| 8041 | #endif | 8033 | #endif |
| 8034 | SetPortWindowPort (FRAME_MAC_WINDOW (f)); | ||
| 8042 | 8035 | ||
| 8043 | TextFont (fontnum); | 8036 | TextFont (fontnum); |
| 8044 | TextSize (size); | 8037 | TextSize (size); |
| @@ -8120,11 +8113,6 @@ XLoadQueryFont (Display *dpy, char *fontname) | |||
| 8120 | for (c = 0x21, pcm = space_bounds + 1; c <= 0xff; c++, pcm++) | 8113 | for (c = 0x21, pcm = space_bounds + 1; c <= 0xff; c++, pcm++) |
| 8121 | mac_query_char_extents (NULL, c, NULL, NULL, pcm, NULL); | 8114 | mac_query_char_extents (NULL, c, NULL, NULL, pcm, NULL); |
| 8122 | } | 8115 | } |
| 8123 | |||
| 8124 | /* Restore previous font number, size and face. */ | ||
| 8125 | TextFont (old_fontnum); | ||
| 8126 | TextSize (old_fontsize); | ||
| 8127 | TextFace (old_fontface); | ||
| 8128 | } | 8116 | } |
| 8129 | 8117 | ||
| 8130 | if (space_bounds) | 8118 | if (space_bounds) |
| @@ -8264,7 +8252,7 @@ x_load_font (f, fontname, size) | |||
| 8264 | fontname = (char *) SDATA (XCAR (font_names)); | 8252 | fontname = (char *) SDATA (XCAR (font_names)); |
| 8265 | 8253 | ||
| 8266 | BLOCK_INPUT; | 8254 | BLOCK_INPUT; |
| 8267 | font = (MacFontStruct *) XLoadQueryFont (FRAME_MAC_DISPLAY (f), fontname); | 8255 | font = mac_load_query_font (f, fontname); |
| 8268 | UNBLOCK_INPUT; | 8256 | UNBLOCK_INPUT; |
| 8269 | if (!font) | 8257 | if (!font) |
| 8270 | return NULL; | 8258 | return NULL; |
diff --git a/src/minibuf.c b/src/minibuf.c index 9505c22d39e..a61d61221a6 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -2683,6 +2683,8 @@ If no minibuffer is active, return nil. */) | |||
| 2683 | that has no possible completions, and other quick, unobtrusive | 2683 | that has no possible completions, and other quick, unobtrusive |
| 2684 | messages. */ | 2684 | messages. */ |
| 2685 | 2685 | ||
| 2686 | extern Lisp_Object Vminibuffer_message_timeout; | ||
| 2687 | |||
| 2686 | void | 2688 | void |
| 2687 | temp_echo_area_glyphs (string) | 2689 | temp_echo_area_glyphs (string) |
| 2688 | Lisp_Object string; | 2690 | Lisp_Object string; |
| @@ -2701,7 +2703,12 @@ temp_echo_area_glyphs (string) | |||
| 2701 | insert_from_string (string, 0, 0, SCHARS (string), SBYTES (string), 0); | 2703 | insert_from_string (string, 0, 0, SCHARS (string), SBYTES (string), 0); |
| 2702 | SET_PT_BOTH (opoint, opoint_byte); | 2704 | SET_PT_BOTH (opoint, opoint_byte); |
| 2703 | Vinhibit_quit = Qt; | 2705 | Vinhibit_quit = Qt; |
| 2704 | sit_for (make_number (2), 0, 2); | 2706 | |
| 2707 | if (NUMBERP (Vminibuffer_message_timeout)) | ||
| 2708 | sit_for (Vminibuffer_message_timeout, 0, 2); | ||
| 2709 | else | ||
| 2710 | sit_for (Qt, 0, 2); | ||
| 2711 | |||
| 2705 | del_range_both (osize, osize_byte, ZV, ZV_BYTE, 1); | 2712 | del_range_both (osize, osize_byte, ZV, ZV_BYTE, 1); |
| 2706 | SET_PT_BOTH (opoint, opoint_byte); | 2713 | SET_PT_BOTH (opoint, opoint_byte); |
| 2707 | if (!NILP (Vquit_flag)) | 2714 | if (!NILP (Vquit_flag)) |
diff --git a/src/process.c b/src/process.c index c3bbb33509d..4497c1d38c0 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -1313,6 +1313,7 @@ list_processes_1 (query_only) | |||
| 1313 | register struct Lisp_Process *p; | 1313 | register struct Lisp_Process *p; |
| 1314 | char tembuf[300]; | 1314 | char tembuf[300]; |
| 1315 | int w_proc, w_buffer, w_tty; | 1315 | int w_proc, w_buffer, w_tty; |
| 1316 | int exited = 0; | ||
| 1316 | Lisp_Object i_status, i_buffer, i_tty, i_command; | 1317 | Lisp_Object i_status, i_buffer, i_tty, i_command; |
| 1317 | 1318 | ||
| 1318 | w_proc = 4; /* Proc */ | 1319 | w_proc = 4; /* Proc */ |
| @@ -1439,8 +1440,8 @@ list_processes_1 (query_only) | |||
| 1439 | } | 1440 | } |
| 1440 | } | 1441 | } |
| 1441 | 1442 | ||
| 1442 | if (EQ (symbol, Qsignal) || EQ (symbol, Qexit)) | 1443 | if (EQ (symbol, Qsignal) || EQ (symbol, Qexit) || EQ (symbol, Qclosed)) |
| 1443 | remove_process (proc); | 1444 | exited++; |
| 1444 | 1445 | ||
| 1445 | Findent_to (i_buffer, minspace); | 1446 | Findent_to (i_buffer, minspace); |
| 1446 | if (NILP (p->buffer)) | 1447 | if (NILP (p->buffer)) |
| @@ -1504,6 +1505,8 @@ list_processes_1 (query_only) | |||
| 1504 | insert_string ("\n"); | 1505 | insert_string ("\n"); |
| 1505 | } | 1506 | } |
| 1506 | } | 1507 | } |
| 1508 | if (exited) | ||
| 1509 | status_notify (NULL); | ||
| 1507 | return Qnil; | 1510 | return Qnil; |
| 1508 | } | 1511 | } |
| 1509 | 1512 | ||
diff --git a/src/regex.c b/src/regex.c index 09776848220..2eca58c23e8 100644 --- a/src/regex.c +++ b/src/regex.c | |||
| @@ -2589,6 +2589,7 @@ regex_compile (pattern, size, syntax, bufp) | |||
| 2589 | bufp->syntax = syntax; | 2589 | bufp->syntax = syntax; |
| 2590 | bufp->fastmap_accurate = 0; | 2590 | bufp->fastmap_accurate = 0; |
| 2591 | bufp->not_bol = bufp->not_eol = 0; | 2591 | bufp->not_bol = bufp->not_eol = 0; |
| 2592 | bufp->used_syntax = 0; | ||
| 2592 | 2593 | ||
| 2593 | /* Set `used' to zero, so that if we return an error, the pattern | 2594 | /* Set `used' to zero, so that if we return an error, the pattern |
| 2594 | printer (for debugging) will think there's no pattern. We reset it | 2595 | printer (for debugging) will think there's no pattern. We reset it |
| @@ -3014,6 +3015,14 @@ regex_compile (pattern, size, syntax, bufp) | |||
| 3014 | } | 3015 | } |
| 3015 | } | 3016 | } |
| 3016 | 3017 | ||
| 3018 | /* In most cases the matching rule for char classes | ||
| 3019 | only uses the syntax table for multibyte chars, | ||
| 3020 | so that the content of the syntax-table it is not | ||
| 3021 | hardcoded in the range_table. SPACE and WORD are | ||
| 3022 | the two exceptions. */ | ||
| 3023 | if ((1 << cc) & ((1 << RECC_SPACE) | (1 << RECC_WORD))) | ||
| 3024 | bufp->used_syntax = 1; | ||
| 3025 | |||
| 3017 | /* Repeat the loop. */ | 3026 | /* Repeat the loop. */ |
| 3018 | continue; | 3027 | continue; |
| 3019 | } | 3028 | } |
diff --git a/src/regex.h b/src/regex.h index efae7749f31..e065c597d49 100644 --- a/src/regex.h +++ b/src/regex.h | |||
| @@ -392,6 +392,10 @@ struct re_pattern_buffer | |||
| 392 | /* Similarly for an end-of-line anchor. */ | 392 | /* Similarly for an end-of-line anchor. */ |
| 393 | unsigned not_eol : 1; | 393 | unsigned not_eol : 1; |
| 394 | 394 | ||
| 395 | /* If true, the compilation of the pattern had to look up the syntax table, | ||
| 396 | so the compiled pattern is only valid for the current syntax table. */ | ||
| 397 | unsigned used_syntax : 1; | ||
| 398 | |||
| 395 | #ifdef emacs | 399 | #ifdef emacs |
| 396 | /* If true, multi-byte form in the regexp pattern should be | 400 | /* If true, multi-byte form in the regexp pattern should be |
| 397 | recognized as a multibyte character. When the pattern is | 401 | recognized as a multibyte character. When the pattern is |
| @@ -620,13 +624,5 @@ extern void re_set_whitespace_regexp (const char *regexp); | |||
| 620 | 624 | ||
| 621 | #endif /* regex.h */ | 625 | #endif /* regex.h */ |
| 622 | 626 | ||
| 623 | /* | ||
| 624 | Local variables: | ||
| 625 | make-backup-files: t | ||
| 626 | version-control: t | ||
| 627 | trim-versions-without-asking: nil | ||
| 628 | End: | ||
| 629 | */ | ||
| 630 | |||
| 631 | /* arch-tag: bda6e3ec-3c02-4237-a55a-01ad2e120083 | 627 | /* arch-tag: bda6e3ec-3c02-4237-a55a-01ad2e120083 |
| 632 | (do not change this comment) */ | 628 | (do not change this comment) */ |
diff --git a/src/search.c b/src/search.c index 5f3f953595b..7c1090aa2bf 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -43,7 +43,8 @@ struct regexp_cache | |||
| 43 | struct regexp_cache *next; | 43 | struct regexp_cache *next; |
| 44 | Lisp_Object regexp, whitespace_regexp; | 44 | Lisp_Object regexp, whitespace_regexp; |
| 45 | /* Syntax table for which the regexp applies. We need this because | 45 | /* Syntax table for which the regexp applies. We need this because |
| 46 | of character classes. */ | 46 | of character classes. If this is t, then the compiled pattern is valid |
| 47 | for any syntax-table. */ | ||
| 47 | Lisp_Object syntax_table; | 48 | Lisp_Object syntax_table; |
| 48 | struct re_pattern_buffer buf; | 49 | struct re_pattern_buffer buf; |
| 49 | char fastmap[0400]; | 50 | char fastmap[0400]; |
| @@ -137,7 +138,6 @@ compile_pattern_1 (cp, pattern, translate, regp, posix, multibyte) | |||
| 137 | cp->buf.multibyte = STRING_MULTIBYTE (pattern); | 138 | cp->buf.multibyte = STRING_MULTIBYTE (pattern); |
| 138 | cp->buf.target_multibyte = multibyte; | 139 | cp->buf.target_multibyte = multibyte; |
| 139 | cp->whitespace_regexp = Vsearch_spaces_regexp; | 140 | cp->whitespace_regexp = Vsearch_spaces_regexp; |
| 140 | cp->syntax_table = current_buffer->syntax_table; | ||
| 141 | /* rms: I think BLOCK_INPUT is not needed here any more, | 141 | /* rms: I think BLOCK_INPUT is not needed here any more, |
| 142 | because regex.c defines malloc to call xmalloc. | 142 | because regex.c defines malloc to call xmalloc. |
| 143 | Using BLOCK_INPUT here means the debugger won't run if an error occurs. | 143 | Using BLOCK_INPUT here means the debugger won't run if an error occurs. |
| @@ -151,6 +151,10 @@ compile_pattern_1 (cp, pattern, translate, regp, posix, multibyte) | |||
| 151 | val = (char *) re_compile_pattern ((char *) SDATA (pattern), | 151 | val = (char *) re_compile_pattern ((char *) SDATA (pattern), |
| 152 | SBYTES (pattern), &cp->buf); | 152 | SBYTES (pattern), &cp->buf); |
| 153 | 153 | ||
| 154 | /* If the compiled pattern hard codes some of the contents of the | ||
| 155 | syntax-table, it can only be reused with *this* syntax table. */ | ||
| 156 | cp->syntax_table = cp->buf.used_syntax ? current_buffer->syntax_table : Qt; | ||
| 157 | |||
| 154 | re_set_whitespace_regexp (NULL); | 158 | re_set_whitespace_regexp (NULL); |
| 155 | 159 | ||
| 156 | re_set_syntax (old); | 160 | re_set_syntax (old); |
| @@ -178,7 +182,8 @@ shrink_regexp_cache () | |||
| 178 | } | 182 | } |
| 179 | } | 183 | } |
| 180 | 184 | ||
| 181 | /* Clear the regexp cache. | 185 | /* Clear the regexp cache w.r.t. a particular syntax table, |
| 186 | because it was changed. | ||
| 182 | There is no danger of memory leak here because re_compile_pattern | 187 | There is no danger of memory leak here because re_compile_pattern |
| 183 | automagically manages the memory in each re_pattern_buffer struct, | 188 | automagically manages the memory in each re_pattern_buffer struct, |
| 184 | based on its `allocated' and `buffer' values. */ | 189 | based on its `allocated' and `buffer' values. */ |
| @@ -188,7 +193,11 @@ clear_regexp_cache () | |||
| 188 | int i; | 193 | int i; |
| 189 | 194 | ||
| 190 | for (i = 0; i < REGEXP_CACHE_SIZE; ++i) | 195 | for (i = 0; i < REGEXP_CACHE_SIZE; ++i) |
| 191 | searchbufs[i].regexp = Qnil; | 196 | /* It's tempting to compare with the syntax-table we've actually changd, |
| 197 | but it's not sufficient because char-table inheritance mewans that | ||
| 198 | modifying one syntax-table can change others at the same time. */ | ||
| 199 | if (!EQ (searchbufs[i].syntax_table, Qt)) | ||
| 200 | searchbufs[i].regexp = Qnil; | ||
| 192 | } | 201 | } |
| 193 | 202 | ||
| 194 | /* Compile a regexp if necessary, but first check to see if there's one in | 203 | /* Compile a regexp if necessary, but first check to see if there's one in |
| @@ -227,10 +236,8 @@ compile_pattern (pattern, regp, translate, posix, multibyte) | |||
| 227 | && EQ (cp->buf.translate, (! NILP (translate) ? translate : make_number (0))) | 236 | && EQ (cp->buf.translate, (! NILP (translate) ? translate : make_number (0))) |
| 228 | && cp->posix == posix | 237 | && cp->posix == posix |
| 229 | && cp->buf.target_multibyte == multibyte | 238 | && cp->buf.target_multibyte == multibyte |
| 230 | /* TODO: Strictly speaking, we only need to match syntax | 239 | && (EQ (cp->syntax_table, Qt) |
| 231 | tables when a character class like [[:space:]] occurs in | 240 | || EQ (cp->syntax_table, current_buffer->syntax_table)) |
| 232 | the pattern. -- cyd*/ | ||
| 233 | && EQ (cp->syntax_table, current_buffer->syntax_table) | ||
| 234 | && !NILP (Fequal (cp->whitespace_regexp, Vsearch_spaces_regexp))) | 241 | && !NILP (Fequal (cp->whitespace_regexp, Vsearch_spaces_regexp))) |
| 235 | break; | 242 | break; |
| 236 | 243 | ||
diff --git a/src/sysdep.c b/src/sysdep.c index 307f69290d6..3fd134e476d 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -1373,16 +1373,6 @@ init_sys_modes () | |||
| 1373 | { | 1373 | { |
| 1374 | struct emacs_tty tty; | 1374 | struct emacs_tty tty; |
| 1375 | 1375 | ||
| 1376 | #ifdef MAC_OS8 | ||
| 1377 | /* cus-start.el complains if delete-exited-processes is not defined */ | ||
| 1378 | #ifndef subprocesses | ||
| 1379 | DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes, | ||
| 1380 | doc: /* *Non-nil means delete processes immediately when they exit. | ||
| 1381 | nil means don't delete them until `list-processes' is run. */); | ||
| 1382 | delete_exited_processes = 0; | ||
| 1383 | #endif | ||
| 1384 | #endif /* MAC_OS8 */ | ||
| 1385 | |||
| 1386 | #ifdef VMS | 1376 | #ifdef VMS |
| 1387 | #if 0 | 1377 | #if 0 |
| 1388 | static int oob_chars[2] = {0, 1 << 7}; /* catch C-g's */ | 1378 | static int oob_chars[2] = {0, 1 << 7}; /* catch C-g's */ |
diff --git a/src/w32fns.c b/src/w32fns.c index f2e456b85bf..1381662c99c 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -2109,7 +2109,12 @@ w32_createwindow (f) | |||
| 2109 | } | 2109 | } |
| 2110 | } | 2110 | } |
| 2111 | 2111 | ||
| 2112 | if (EQ (left, Qunbound) && EQ (top, Qunbound)) | 2112 | if (f->size_hint_flags & USPosition || f->size_hint_flags & PPosition) |
| 2113 | { | ||
| 2114 | XSETINT (left, f->left_pos); | ||
| 2115 | XSETINT (top, f->top_pos); | ||
| 2116 | } | ||
| 2117 | else if (EQ (left, Qunbound) && EQ (top, Qunbound)) | ||
| 2113 | { | 2118 | { |
| 2114 | /* When called with RES_TYPE_NUMBER, w32_get_arg will return zero | 2119 | /* When called with RES_TYPE_NUMBER, w32_get_arg will return zero |
| 2115 | for anything that is not a number and is not Qunbound. */ | 2120 | for anything that is not a number and is not Qunbound. */ |
diff --git a/src/xdisp.c b/src/xdisp.c index 7ca259e2b10..fb30722d8b8 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -1355,7 +1355,8 @@ pos_visible_p (w, charpos, x, y, rtop, rbot, rowh, vpos) | |||
| 1355 | it2 = it; | 1355 | it2 = it; |
| 1356 | if (IT_CHARPOS (it) < ZV && FETCH_BYTE (IT_BYTEPOS (it)) != '\n') | 1356 | if (IT_CHARPOS (it) < ZV && FETCH_BYTE (IT_BYTEPOS (it)) != '\n') |
| 1357 | move_it_by_lines (&it, 1, 0); | 1357 | move_it_by_lines (&it, 1, 0); |
| 1358 | if (charpos < IT_CHARPOS (it)) | 1358 | if (charpos < IT_CHARPOS (it) |
| 1359 | || (it.what == IT_EOB && charpos == IT_CHARPOS (it))) | ||
| 1359 | { | 1360 | { |
| 1360 | visible_p = 1; | 1361 | visible_p = 1; |
| 1361 | move_it_to (&it2, charpos, -1, -1, -1, MOVE_TO_POS); | 1362 | move_it_to (&it2, charpos, -1, -1, -1, MOVE_TO_POS); |
| @@ -17823,12 +17824,20 @@ decode_mode_spec (w, c, field_width, precision, multibyte) | |||
| 17823 | break; | 17824 | break; |
| 17824 | 17825 | ||
| 17825 | case 'c': | 17826 | case 'c': |
| 17826 | { | 17827 | /* %c and %l are ignored in `frame-title-format'. |
| 17827 | int col = (int) current_column (); /* iftc */ | 17828 | (In redisplay_internal, the frame title is drawn _before_ the |
| 17828 | w->column_number_displayed = make_number (col); | 17829 | windows are updated, so the stuff which depends on actual |
| 17829 | pint2str (decode_mode_spec_buf, field_width, col); | 17830 | window contents (such as %l) may fail to render properly, or |
| 17830 | return decode_mode_spec_buf; | 17831 | even crash emacs.) */ |
| 17831 | } | 17832 | if (mode_line_target == MODE_LINE_TITLE) |
| 17833 | return ""; | ||
| 17834 | else | ||
| 17835 | { | ||
| 17836 | int col = (int) current_column (); /* iftc */ | ||
| 17837 | w->column_number_displayed = make_number (col); | ||
| 17838 | pint2str (decode_mode_spec_buf, field_width, col); | ||
| 17839 | return decode_mode_spec_buf; | ||
| 17840 | } | ||
| 17832 | 17841 | ||
| 17833 | case 'e': | 17842 | case 'e': |
| 17834 | #ifndef SYSTEM_MALLOC | 17843 | #ifndef SYSTEM_MALLOC |
| @@ -17870,11 +17879,16 @@ decode_mode_spec (w, c, field_width, precision, multibyte) | |||
| 17870 | 17879 | ||
| 17871 | case 'l': | 17880 | case 'l': |
| 17872 | { | 17881 | { |
| 17873 | int startpos = XMARKER (w->start)->charpos; | 17882 | int startpos, startpos_byte, line, linepos, linepos_byte; |
| 17874 | int startpos_byte = marker_byte_position (w->start); | 17883 | int topline, nlines, junk, height; |
| 17875 | int line, linepos, linepos_byte, topline; | 17884 | |
| 17876 | int nlines, junk; | 17885 | /* %c and %l are ignored in `frame-title-format'. */ |
| 17877 | int height = WINDOW_TOTAL_LINES (w); | 17886 | if (mode_line_target == MODE_LINE_TITLE) |
| 17887 | return ""; | ||
| 17888 | |||
| 17889 | startpos = XMARKER (w->start)->charpos; | ||
| 17890 | startpos_byte = marker_byte_position (w->start); | ||
| 17891 | height = WINDOW_TOTAL_LINES (w); | ||
| 17878 | 17892 | ||
| 17879 | /* If we decided that this buffer isn't suitable for line numbers, | 17893 | /* If we decided that this buffer isn't suitable for line numbers, |
| 17880 | don't forget that too fast. */ | 17894 | don't forget that too fast. */ |
| @@ -24319,9 +24333,10 @@ This variable is not guaranteed to be accurate except while processing | |||
| 24319 | DEFVAR_LISP ("frame-title-format", &Vframe_title_format, | 24333 | DEFVAR_LISP ("frame-title-format", &Vframe_title_format, |
| 24320 | doc: /* Template for displaying the title bar of visible frames. | 24334 | doc: /* Template for displaying the title bar of visible frames. |
| 24321 | \(Assuming the window manager supports this feature.) | 24335 | \(Assuming the window manager supports this feature.) |
| 24322 | This variable has the same structure as `mode-line-format' (which see), | 24336 | |
| 24323 | and is used only on frames for which no explicit name has been set | 24337 | This variable has the same structure as `mode-line-format', except that |
| 24324 | \(see `modify-frame-parameters'). */); | 24338 | the %c and %l constructs are ignored. It is used only on frames for |
| 24339 | which no explicit name has been set \(see `modify-frame-parameters'). */); | ||
| 24325 | 24340 | ||
| 24326 | DEFVAR_LISP ("icon-title-format", &Vicon_title_format, | 24341 | DEFVAR_LISP ("icon-title-format", &Vicon_title_format, |
| 24327 | doc: /* Template for displaying the title bar of an iconified frame. | 24342 | doc: /* Template for displaying the title bar of an iconified frame. |
diff --git a/src/xmenu.c b/src/xmenu.c index 080f9e819a2..be77b9fdbd4 100644 --- a/src/xmenu.c +++ b/src/xmenu.c | |||
| @@ -3776,8 +3776,7 @@ syms_of_xmenu () | |||
| 3776 | 3776 | ||
| 3777 | #if defined (USE_GTK) || defined (USE_X_TOOLKIT) | 3777 | #if defined (USE_GTK) || defined (USE_X_TOOLKIT) |
| 3778 | defsubr (&Smenu_bar_open); | 3778 | defsubr (&Smenu_bar_open); |
| 3779 | Fdefalias (intern ("accelerate-menu"), intern (Smenu_bar_open.symbol_name), | 3779 | Ffset (intern ("accelerate-menu"), intern (Smenu_bar_open.symbol_name)); |
| 3780 | Qnil); | ||
| 3781 | #endif | 3780 | #endif |
| 3782 | 3781 | ||
| 3783 | #ifdef HAVE_MENUS | 3782 | #ifdef HAVE_MENUS |
diff --git a/src/xterm.c b/src/xterm.c index a75140fb9e3..856fbef435b 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -8638,7 +8638,7 @@ x_check_expected_move (f, expected_left, expected_top) | |||
| 8638 | int expected_left; | 8638 | int expected_left; |
| 8639 | int expected_top; | 8639 | int expected_top; |
| 8640 | { | 8640 | { |
| 8641 | int count = 0, current_left = 0, current_top = 0; | 8641 | int current_left = 0, current_top = 0; |
| 8642 | 8642 | ||
| 8643 | /* x_real_positions returns the left and top offsets of the outermost | 8643 | /* x_real_positions returns the left and top offsets of the outermost |
| 8644 | window manager window around the frame. */ | 8644 | window manager window around the frame. */ |