Generally, search commands in Emacs by default perform character
folding, thus matching equivalent character sequences. You can
disable this behavior by customizing the variable
-@code{search-default-regexp-mode} to @code{nil}. @xref{Search
+@code{search-default-mode} to @code{nil}. @xref{Search
Customizations}. Within an incremental search, typing @kbd{M-s '}
(@code{isearch-toggle-character-fold}) toggles character folding, but
only for that search. (Replace commands have a different default,
@cindex default search mode
@cindex search mode, default
The default search mode for the incremental search is specified by
-the variable @code{search-default-regexp-mode}. It can be @code{nil},
+the variable @code{search-default-mode}. It can be @code{nil},
@code{t}, or a function. If it is @code{nil}, the default mode is to
do literal searches without character folding, but with case folding
and lax-whitespace matches as determined by @code{case-fold-search}
** Search and Replace
+++
-*** New user option `search-default-regexp-mode'
+*** New user option `search-default-mode'
specifies the default mode for I-search.
+++
tv.bo
// br : http://registro.br/dominio/categoria.html
-// Submitted by registry <fneves@registro.br> 2014-08-11
+// Submitted by registry <fneves@registro.br>
br
adm.br
adv.br
org.bt
// bv : No registrations at this time.
-// Submitted by registry <jarle@uninett.no> 2006-06-16
+// Submitted by registry <jarle@uninett.no>
bv
// bw : http://en.wikipedia.org/wiki/.bw
net.cm
// cn : http://en.wikipedia.org/wiki/.cn
-// Submitted by registry <tanyaling@cnnic.cn> 2008-06-11
+// Submitted by registry <tanyaling@cnnic.cn>
cn
ac.cn
com.cn
tw.cn
// co : http://en.wikipedia.org/wiki/.co
-// Submitted by registry <tecnico@uniandes.edu.co> 2008-06-11
+// Submitted by registry <tecnico@uniandes.edu.co>
co
arts.co
com.co
art.dz
// ec : http://www.nic.ec/reg/paso1.asp
-// Submitted by registry <vabboud@nic.ec> 2008-07-04
+// Submitted by registry <vabboud@nic.ec>
ec
com.ec
info.ec
ga
// gb : This registry is effectively dormant
-// Submitted by registry <Damien.Shaw@ja.net> 2008-06-12
+// Submitted by registry <Damien.Shaw@ja.net>
gb
// gd : http://en.wikipedia.org/wiki/.gd
gm
// gn : http://psg.com/dns/gn/gn.txt
-// Submitted by registry <randy@psg.com> 2008-06-17
+// Submitted by registry <randy@psg.com>
gn
ac.gn
com.gn
gq
// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html
-// Submitted by registry <segred@ics.forth.gr> 2008-06-09
+// Submitted by registry <segred@ics.forth.gr>
gr
com.gr
edu.gr
org.gy
// hk : https://www.hkdnr.hk
-// Submitted by registry <hk.tech@hkirc.hk> 2008-06-11
+// Submitted by registry <hk.tech@hkirc.hk>
hk
com.hk
edu.hk
org.il
// im : https://www.nic.im/
-// Submitted by registry <info@nic.im> 2013-11-15
+// Submitted by registry <info@nic.im>
im
ac.im
co.im
// jp : http://en.wikipedia.org/wiki/.jp
// http://jprs.co.jp/en/jpdomain.html
-// Submitted by registry <info@jprs.jp> 2014-10-30
+// Submitted by registry <info@jprs.jp>
jp
// jp organizational type names
ac.jp
com.kz
// la : http://en.wikipedia.org/wiki/.la
-// Submitted by registry <gavin.brown@nic.la> 2008-06-10
+// Submitted by registry <gavin.brown@nic.la>
la
int.la
net.la
org.la
// lb : http://en.wikipedia.org/wiki/.lb
-// Submitted by registry <randy@psg.com> 2008-06-17
+// Submitted by registry <randy@psg.com>
lb
com.lb
edu.lb
ac.lk
// lr : http://psg.com/dns/lr/lr.txt
-// Submitted by registry <randy@psg.com> 2008-06-17
+// Submitted by registry <randy@psg.com>
lr
com.lr
edu.lr
org.ms
// mt : https://www.nic.org.mt/go/policy
-// Submitted by registry <help@nic.org.mt> 2013-11-19
+// Submitted by registry <help@nic.org.mt>
mt
com.mt
edu.mt
org.mw
// mx : http://www.nic.mx/
-// Submitted by registry <farias@nic.mx> 2008-06-19
+// Submitted by registry <farias@nic.mx>
mx
com.mx
org.mx
other.nf
store.nf
-// ng : http://psg.com/dns/ng/
+// ng : http://www.nira.org.ng/index.php/join-us/register-ng-domain/189-nira-slds
ng
com.ng
edu.ng
+gov.ng
+i.ng
+mil.ng
+mobi.ng
name.ng
net.ng
org.ng
sch.ng
-gov.ng
-mil.ng
-mobi.ng
// ni : http://www.nic.ni/
com.ni
*.np
// nr : http://cenpac.net.nr/dns/index.html
-// Confirmed by registry <technician@cenpac.net.nr> 2008-06-17
+// Submitted by registry <technician@cenpac.net.nr>
nr
biz.nr
info.nr
nu
// nz : http://en.wikipedia.org/wiki/.nz
-// Confirmed by registry <jay@nzrs.net.nz> 2014-05-19
+// Submitted by registry <jay@nzrs.net.nz>
nz
ac.nz
co.nz
*.pg
// ph : http://www.domains.ph/FAQ2.asp
-// Submitted by registry <jed@email.com.ph> 2008-06-13
+// Submitted by registry <jed@email.com.ph>
ph
com.ph
net.ph
info.pk
// pl http://www.dns.pl/english/index.html
-// updated by .PL registry on 2015-04-28
+// Submitted by registry
pl
com.pl
net.pl
belau.pw
// py : http://www.nic.py/pautas.html#seccion_9
-// Confirmed by registry 2012-10-03
+// Submitted by registry
py
com.py
coop.py
// re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs
re
-com.re
asso.re
+com.re
nom.re
// ro : http://www.rotld.ro/
ro
+arts.ro
com.ro
-org.ro
-tm.ro
-nt.ro
-nom.ro
+firm.ro
info.ro
+nom.ro
+nt.ro
+org.ro
rec.ro
-arts.ro
-firm.ro
store.ro
+tm.ro
www.ro
-// rs : http://en.wikipedia.org/wiki/.rs
+// rs : https://www.rnids.rs/en/domains/national-domains
rs
+ac.rs
co.rs
-org.rs
edu.rs
-ac.rs
gov.rs
in.rs
+org.rs
// ru : http://www.cctld.ru/ru/docs/aktiv_8.php
// Industry domains
sch.sa
// sb : http://www.sbnic.net.sb/
-// Submitted by registry <lee.humphries@telekom.com.sb> 2008-06-08
+// Submitted by registry <lee.humphries@telekom.com.sb>
sb
com.sb
edu.sb
edu.sc
// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm
-// Submitted by registry <admin@isoc.sd> 2008-06-17
+// Submitted by registry <admin@isoc.sd>
sd
com.sd
net.sd
info.sd
// se : http://en.wikipedia.org/wiki/.se
-// Submitted by registry <patrik.wallstrom@iis.se> 2014-03-18
+// Submitted by registry <patrik.wallstrom@iis.se>
se
a.se
ac.se
si
// sj : No registrations at this time.
-// Submitted by registry <jarle@uninett.no> 2008-06-16
+// Submitted by registry <jarle@uninett.no>
sj
// sk : http://en.wikipedia.org/wiki/.sk
sk
// sl : http://www.nic.sl
-// Submitted by registry <adam@neoip.com> 2008-06-12
+// Submitted by registry <adam@neoip.com>
sl
com.sl
net.sl
red.sv
// sx : http://en.wikipedia.org/wiki/.sx
-// Confirmed by registry <jcvignes@openregistry.com> 2012-05-31
+// Submitted by registry <jcvignes@openregistry.com>
sx
gov.sx
tg
// th : http://en.wikipedia.org/wiki/.th
-// Submitted by registry <krit@thains.co.th> 2008-06-17
+// Submitted by registry <krit@thains.co.th>
th
ac.th
co.th
turen.tn
// to : http://en.wikipedia.org/wiki/.to
-// Submitted by registry <egullich@colo.to> 2008-06-17
+// Submitted by registry <egullich@colo.to>
to
com.to
gov.to
// subTLDs: https://www.nic.tr/forms/eng/policies.pdf
// and: https://www.nic.tr/forms/politikalar.pdf
-// Submitted by <mehmetgurevin@gmail.com> 2014-07-19
+// Submitted by <mehmetgurevin@gmail.com>
tr
com.tr
info.tr
商業.tw
// tz : http://www.tznic.or.tz/index.php/domains
-// Confirmed by registry <manager@tznic.or.tz> 2013-01-22
+// Submitted by registry <manager@tznic.or.tz>
tz
ac.tz
co.tz
tv.tz
// ua : https://hostmaster.ua/policy/?ua
-// Submitted by registry <dk@cctld.ua> 2012-04-27
+// Submitted by registry <dk@cctld.ua>
ua
// ua 2LD
com.ua
va
// vc : http://en.wikipedia.org/wiki/.vc
-// Submitted by registry <kshah@ca.afilias.info> 2008-06-13
+// Submitted by registry <kshah@ca.afilias.info>
vc
com.vc
net.vc
edu.vc
// ve : https://registro.nic.ve/
-// Confirmed by registry 2012-10-04
-// Updated 2014-05-20 - Bug 940478
+// Submitted by registry
ve
arts.ve
co.ve
فلسطين
// xn--90a3ac ("srb", Cyrillic) : RS
-// http://www.rnids.rs/en/the-.срб-domain
+// https://www.rnids.rs/en/domains/national-domains
срб
пр.срб
орг.срб
// za : http://www.zadna.org.za/content/page/domain-information
ac.za
-agrica.za
+agric.za
alt.za
co.za
edu.za
// (Note: these are in alphabetical order by company name)
// Amazon CloudFront : https://aws.amazon.com/cloudfront/
-// Submitted by Donavan Miller <donavanm@amazon.com> 2013-03-22
+// Submitted by Donavan Miller <donavanm@amazon.com>
cloudfront.net
// Amazon Elastic Compute Cloud: https://aws.amazon.com/ec2/
-// Submitted by Osman Surkatty <osmans@amazon.com> 2014-12-16
+// Submitted by Osman Surkatty <osmans@amazon.com>
ap-northeast-1.compute.amazonaws.com
ap-southeast-1.compute.amazonaws.com
ap-southeast-2.compute.amazonaws.com
z-2.compute-1.amazonaws.com
// Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/
-// Submitted by Adam Stein <astein@amazon.com> 2013-04-02
+// Submitted by Adam Stein <astein@amazon.com>
elasticbeanstalk.com
// Amazon Elastic Load Balancing : https://aws.amazon.com/elasticloadbalancing/
-// Submitted by Scott Vidmar <svidmar@amazon.com> 2013-03-27
+// Submitted by Scott Vidmar <svidmar@amazon.com>
elb.amazonaws.com
// Amazon S3 : https://aws.amazon.com/s3/
-// Submitted by Eric Kinolik <kilo@amazon.com> 2015-04-08
+// Submitted by Eric Kinolik <kilo@amazon.com>
s3.amazonaws.com
s3-ap-northeast-1.amazonaws.com
s3-ap-southeast-1.amazonaws.com
s3.eu-central-1.amazonaws.com
// BetaInABox
-// Submitted by adrian@betainabox.com 2012-09-13
+// Submitted by Adrian <adrian@betainabox.com>
betainabox.com
// CentralNic : http://www.centralnic.com/names/domains
-// Submitted by registry <gavin.brown@centralnic.com> 2012-09-27
+// Submitted by registry <gavin.brown@centralnic.com>
ae.org
ar.com
br.com
za.com
// Africa.com Web Solutions Ltd : https://registry.africa.com
-// Submitted by Gavin Brown <gavin.brown@centralnic.com> 2014-02-04
+// Submitted by Gavin Brown <gavin.brown@centralnic.com>
africa.com
// iDOT Services Limited : http://www.domain.gr.com
-// Submitted by Gavin Brown <gavin.brown@centralnic.com> 2014-02-04
+// Submitted by Gavin Brown <gavin.brown@centralnic.com>
gr.com
// Radix FZC : http://domains.in.net
-// Submitted by Gavin Brown <gavin.brown@centralnic.com> 2014-02-04
+// Submitted by Gavin Brown <gavin.brown@centralnic.com>
in.net
// US REGISTRY LLC : http://us.org
-// Submitted by Gavin Brown <gavin.brown@centralnic.com> 2014-02-04
+// Submitted by Gavin Brown <gavin.brown@centralnic.com>
us.org
// co.com Registry, LLC : https://registry.co.com
-// Submitted by Gavin Brown <gavin.brown@centralnic.com> 2014-02-04
+// Submitted by Gavin Brown <gavin.brown@centralnic.com>
co.com
// c.la : http://www.c.la/
c.la
// cloudControl : https://www.cloudcontrol.com/
-// Submitted by Tobias Wilken <tw@cloudcontrol.com> 2013-07-23
+// Submitted by Tobias Wilken <tw@cloudcontrol.com>
cloudcontrolled.com
cloudcontrolapp.com
// co.ca : http://registry.co.ca/
co.ca
+// i-registry s.r.o. : http://www.i-registry.cz/
+// Submitted by Martin Semrad <semrad@i-registry.cz>
+co.cz
+
// CDN77.com : http://www.cdn77.com
-// Submitted by Jan Krpes <jan.krpes@cdn77.com> 2015-07-13
+// Submitted by Jan Krpes <jan.krpes@cdn77.com>
c.cdn77.org
cdn77-ssl.net
r.cdn77.net
co.no
// Commerce Guys, SAS
-// Submitted by Damien Tournoud <damien@commerceguys.com> 2015-01-22
+// Submitted by Damien Tournoud <damien@commerceguys.com>
*.platform.sh
// Cupcake : https://cupcake.io/
-// Submitted by Jonathan Rudenberg <jonathan@cupcake.io> 2013-10-08
+// Submitted by Jonathan Rudenberg <jonathan@cupcake.io>
cupcake.is
// DreamHost : http://www.dreamhost.com/
-// Submitted by Andrew Farmer <andrew.farmer@dreamhost.com> 2012-10-02
+// Submitted by Andrew Farmer <andrew.farmer@dreamhost.com>
dreamhosters.com
+// Drobo : http://www.drobo.com/
+// Submitted by Ricardo Padilha <rpadilha@drobo.com>
+mydrobo.com
+
// DuckDNS : http://www.duckdns.org/
-// Submitted by Richard Harper <richard@duckdns.org> 2015-05-17
+// Submitted by Richard Harper <richard@duckdns.org>
duckdns.org
// DynDNS.com : http://www.dyndns.com/services/dns/dyndns/
writesthisblog.com
// EU.org https://eu.org/
-// Submitted by Pierre Beyssac <hostmaster@eu.org> 2015-04-17
-
+// Submitted by Pierre Beyssac <hostmaster@eu.org>
eu.org
al.eu.org
asso.eu.org
us.eu.org
// Fastly Inc. http://www.fastly.com/
-// Submitted by Vladimir Vuksan <vladimir@fastly.com> 2013-05-31
+// Submitted by Vladimir Vuksan <vladimir@fastly.com>
a.ssl.fastly.net
b.ssl.fastly.net
global.ssl.fastly.net
global.prod.fastly.net
// Firebase, Inc.
-// Submitted by Chris Raynor <chris@firebase.com> 2014-01-21
+// Submitted by Chris Raynor <chris@firebase.com>
firebaseapp.com
// Flynn : https://flynn.io
-// Submitted by Jonathan Rudenberg <jonathan@flynn.io> 2014-07-12
+// Submitted by Jonathan Rudenberg <jonathan@flynn.io>
flynnhub.com
// GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains
-// Submitted by David Illsley <david.illsley@digital.cabinet-office.gov.uk> 2014-08-28
+// Submitted by David Illsley <david.illsley@digital.cabinet-office.gov.uk>
service.gov.uk
// GitHub, Inc.
-// Submitted by Ben Toews <btoews@github.com> 2014-02-06
+// Submitted by Ben Toews <btoews@github.com>
github.io
githubusercontent.com
// GlobeHosting, Inc.
-// Submitted by Zoltan Egresi <egresi@globehosting.com> 2013-07-12
+// Submitted by Zoltan Egresi <egresi@globehosting.com>
ro.com
// Google, Inc.
-// Submitted by Eduardo Vela <evn@google.com> 2014-12-19
+// Submitted by Eduardo Vela <evn@google.com>
appspot.com
blogspot.ae
blogspot.al
hashbang.sh
// Heroku : https://www.heroku.com/
-// Submitted by Tom Maher <tmaher@heroku.com> 2013-05-02
+// Submitted by Tom Maher <tmaher@heroku.com>
herokuapp.com
herokussl.com
// iki.fi
-// Submitted by Hannu Aronsson <haa@iki.fi> 2009-11-05
+// Submitted by Hannu Aronsson <haa@iki.fi>
iki.fi
// info.at : http://www.info.at/
co.pl
// Microsoft : http://microsoft.com
-// Submitted by Barry Dorrans <bdorrans@microsoft.com> 2014-01-24
+// Submitted by Barry Dorrans <bdorrans@microsoft.com>
azurewebsites.net
azure-mobile.net
cloudapp.net
// Mozilla Foundation : https://mozilla.org/
-// Submited by glob <glob@mozilla.com> 2015-07-06
+// Submitted by glob <glob@mozilla.com>
bmoattachments.org
// Neustar Inc.
-// Submitted by Trung Tran <Trung.Tran@neustar.biz> 2015-04-23
+// Submitted by Trung Tran <Trung.Tran@neustar.biz>
4u.com
// ngrok : https://ngrok.com/
-// Submitted by Alan Shreve <alan@ngrok.com> 2015-11-10
+// Submitted by Alan Shreve <alan@ngrok.com>
ngrok.io
// NFSN, Inc. : https://www.NearlyFreeSpeech.NET/
-// Submitted by Jeff Wheelhouse <support@nearlyfreespeech.net> 2014-02-02
+// Submitted by Jeff Wheelhouse <support@nearlyfreespeech.net>
nfshost.com
// NYC.mn : http://www.information.nyc.mn
-// Submitted by Matthew Brown <mattbrown@nyc.mn> 2013-03-11
+// Submitted by Matthew Brown <mattbrown@nyc.mn>
nyc.mn
// One Fold Media : http://www.onefoldmedia.com/
-// Submitted by Eddie Jones <eddie@onefoldmedia.com> 2014-06-10
+// Submitted by Eddie Jones <eddie@onefoldmedia.com>
nid.io
// Opera Software, A.S.A.
-// Submitted by Yngve Pettersen <yngve@opera.com> 2009-11-26
+// Submitted by Yngve Pettersen <yngve@opera.com>
operaunite.com
// OutSystems
-// Submitted by Duarte Santos <domain-admin@outsystemscloud.com> 2014-03-11
+// Submitted by Duarte Santos <domain-admin@outsystemscloud.com>
outsystemscloud.com
// Pagefront : https://www.pagefronthq.com/
-// Submitted by Jason Kriss <jason@pagefronthq.com> 2015-12-02
+// Submitted by Jason Kriss <jason@pagefronthq.com>
pagefrontapp.com
// .pl domains (grandfathered)
zakopane.pl
// Pantheon Systems, Inc. : https://pantheon.io/
-// Submitted by Gary Dylina <gary@pantheon.io> 2015-09-14
+// Submitted by Gary Dylina <gary@pantheon.io>
pantheon.io
gotpantheon.com
+// prgmr.com : https://prgmr.com/
+// Submitted by Sarah Newman <owner@prgmr.com>
+xen.prgmr.com
+
// priv.at : http://www.nic.priv.at/
-// Submitted by registry <lendl@nic.at> 2008-06-09
+// Submitted by registry <lendl@nic.at>
priv.at
// QA2
-// Submitted by Daniel Dent (https://www.danieldent.com/) 2015-07-16
+// Submitted by Daniel Dent (https://www.danieldent.com/)
qa2.com
// Rackmaze LLC : https://www.rackmaze.com
-// Submitted by Kirill Pertsev <kika@rackmaze.com> 2015-12-02
+// Submitted by Kirill Pertsev <kika@rackmaze.com>
rackmaze.com
rackmaze.net
// Red Hat, Inc. OpenShift : https://openshift.redhat.com/
-// Submitted by Tim Kramer <tkramer@rhcloud.com> 2012-10-24
+// Submitted by Tim Kramer <tkramer@rhcloud.com>
rhcloud.com
// Sandstorm Development Group, Inc. : https://sandcats.io/
-// Submitted by Asheesh Laroia <asheesh@sandstorm.io> 2015-07-21
+// Submitted by Asheesh Laroia <asheesh@sandstorm.io>
sandcats.io
// Service Online LLC : http://drs.ua/
-// Submitted by Serhii Bulakh <support@drs.ua> 2015-07-30
+// Submitted by Serhii Bulakh <support@drs.ua>
biz.ua
co.ua
pp.ua
// SinaAppEngine : http://sae.sina.com.cn/
-// Submitted by SinaAppEngine <saesupport@sinacloud.com> 2015-02-02
+// Submitted by SinaAppEngine <saesupport@sinacloud.com>
sinaapp.com
vipsinaapp.com
1kapp.com
// Synology, Inc. : https://www.synology.com/
-// Submitted by Rony Weng <ronyweng@synology.com> 2015-12-02
+// Submitted by Rony Weng <ronyweng@synology.com>
diskstation.me
dscloud.biz
dscloud.me
sopot.pl
// UDR Limited : http://www.udr.hk.com
-// Submitted by registry <hostmaster@udr.hk.com> 2014-11-07
+// Submitted by registry <hostmaster@udr.hk.com>
hk.com
hk.org
ltd.hk
inc.hk
// Yola : https://www.yola.com/
-// Submitted by Stefano Rivera <stefano@yola.com> 2014-07-09
+// Submitted by Stefano Rivera <stefano@yola.com>
yolasite.com
// ZaNiC : http://www.za.net/
-// Submitted by registry <hostmaster@nic.za.net> 2009-10-03
+// Submitted by registry <hostmaster@nic.za.net>
za.net
za.org
if (reader || writer || alias)
{
do {
- char *np = cp;
+ char *np;
+ cp = skip_spaces (cp);
+ if (*cp == '(')
+ cp = skip_spaces (cp + 1);
+ np = cp;
cp = skip_name (cp);
if (*np != ':')
continue;
(define-key map "\C-c\C-u" 'erc-kill-input)
(define-key map "\C-c\C-x" 'erc-quit-server)
(define-key map "\M-\t" 'ispell-complete-word)
- (define-key map "\t" 'erc-completion-at-point)
+ (define-key map "\t" 'completion-at-point)
;; Suppress `font-lock-fontify-block' key binding since it
;; destroys face properties.
(concat "\C-l\\|\\(^" (regexp-quote (erc-prompt)) "\\)"))
(set (make-local-variable 'paragraph-start)
(concat "\\(" (regexp-quote (erc-prompt)) "\\)"))
+ (setq-local completion-ignore-case t)
(add-hook 'completion-at-point-functions 'erc-complete-word-at-point nil t))
;; activation
(format "MODE %s +k %s" tgt key)
(format "MODE %s -k" tgt)))))
-(defun erc-completion-at-point ()
- "Perform completion on the text around point case-insensitively.
-See `completion-at-point'."
- (interactive)
- (let ((completion-ignore-case t))
- (completion-at-point)))
-
(defun erc-quit-server (reason)
"Disconnect from current server after prompting for REASON.
`erc-quit-reason' works with this just like with `erc-cmd-QUIT'."
(goto-char (match-beginning 0))
(delete-region (point-at-bol) end))))
(goto-char (point-max))
- (insert string "\n")
+ ;; Make sure that each dribble entry is a single line, so that
+ ;; the "remove" code above works.
+ (insert (replace-regexp-in-string "\n" "\\\\n" string) "\n")
;; This has been commented by Josh Huber <huber@alum.wpi.edu>
;; It causes problems with both XEmacs and Emacs 21, and doesn't
;; seem to be of much value. (FIXME: remove this after we make sure
(gnus-group-next-unread-group 1))
(gnus-handle-ephemeral-exit quit-config)))
(if (null (gnus-list-of-unread-articles group))
- (gnus-message 3 "Group %s contains no messages" group)
+ (gnus-message 3 "Group %s contains no messages"
+ (gnus-group-decoded-name group))
(gnus-message 3 "Can't select group"))
nil)
;; The user did a `C-g' while prompting for number of articles,
(defvoo nnimap-current-infos nil)
+(defun nnimap-decode-gnus-group (group)
+ (decode-coding-string group 'utf-8))
+
+(defun nnimap-encode-gnus-group (group)
+ (encode-coding-string group 'utf-8))
+
(defvoo nnimap-fetch-partial-articles nil
"If non-nil, Gnus will fetch partial articles.
If t, Gnus will fetch only the first part. If a string, it
(incf num)))
(nreverse parts)))
-(defun nnimap-decode-gnus-group (group)
- (decode-coding-string group 'utf-8))
-
(deffoo nnimap-request-group (group &optional server dont-check info)
(setq group (nnimap-decode-gnus-group group))
(let ((result (nnimap-change-group
(- (cdr active) (car active))
(car active)
(cdr active)
- group))
+ (nnimap-encode-gnus-group group)))
t))))
(deffoo nnimap-request-group-scan (group &optional server info)
(erase-buffer)
(insert
(format
- "211 %d %d %d %S\n" (1+ (- high low)) low high group))
+ "211 %d %d %d %S\n" (1+ (- high low)) low high
+ (nnimap-encode-gnus-group group)))
t))))
(deffoo nnimap-request-create-group (group &optional server _args)
(let* ((sequence (car response))
(response (cadr response))
(group (cadr (assoc sequence sequences)))
- (egroup (encode-coding-string group 'utf-8)))
+ (egroup (nnimap-encode-gnus-group group)))
(when (and group
(equal (caar response) "OK"))
(let ((uidnext (nnimap-find-parameter "UIDNEXT" response))
(nnimap-get-groups)))
(unless (assoc group nnimap-current-infos)
;; Insert dummy numbers here -- they don't matter.
- (insert (format "%S 0 1 y\n" (encode-coding-string group 'utf-8)))))
+ (insert (format "%S 0 1 y\n" (nnimap-encode-gnus-group group)))))
t)))
(deffoo nnimap-retrieve-group-data-early (server infos)
(active (gnus-active group)))
(when active
(insert (format "%S %d %d y\n"
- (decode-coding-string
- (gnus-group-real-name group) 'utf-8)
+ (nnimap-encode-gnus-group
+ (nnimap-decode-gnus-group
+ (gnus-group-real-name group)))
(cdr active)
(car active))))))))))))
(nreverse result))))
(defun nnimap-store-info (info active)
- (let* ((group (gnus-group-real-name (gnus-info-group info)))
+ (let* ((group (nnimap-decode-gnus-group
+ (gnus-group-real-name (gnus-info-group info))))
(entry (assoc group nnimap-current-infos)))
(if entry
(setcdr entry (list info active))
(autoload 'character-fold-to-regexp "character-fold")
-(defcustom search-default-regexp-mode #'character-fold-to-regexp
+(defcustom search-default-mode #'character-fold-to-regexp
"Default mode to use when starting isearch.
Value is nil, t, or a function.
isearch).
If a function, use that function as an `isearch-regexp-function'.
-Example functions are `word-search-regexp' \(`\\[isearch-toggle-word]'),
-`isearch-symbol-regexp' \(`\\[isearch-toggle-symbol]'), and
-`character-fold-to-regexp' \(`\\[isearch-toggle-character-fold]')."
+Example functions (and the keys to toggle them during isearch)
+are `word-search-regexp' \(`\\[isearch-toggle-word]'), `isearch-symbol-regexp'
+\(`\\[isearch-toggle-symbol]'), and `character-fold-to-regexp' \(`\\[isearch-toggle-character-fold]')."
;; :type is set below by `isearch-define-mode-toggle'.
:type '(choice (const :tag "Literal search" nil)
(const :tag "Regexp search" t)
called to convert a plain search string to a regexp used by
regexp search functions.
The symbol property `isearch-message-prefix' put on this function
-specifies the prefix string displayed in the search message.")
+specifies the prefix string displayed in the search message.
+
+This variable is set and changed during isearch. To change the
+default behaviour used for searches, see `search-default-mode'
+instead.")
;; We still support setting this to t for backwards compatibility.
(define-obsolete-variable-alias 'isearch-word
'isearch-regexp-function "25.1")
(setq isearch-forward forward
isearch-regexp (or regexp
(and (not regexp-function)
- (eq search-default-regexp-mode t)))
+ (eq search-default-mode t)))
isearch-regexp-function (or regexp-function
- (and (functionp search-default-regexp-mode)
+ (and (functionp search-default-mode)
(not regexp)
- search-default-regexp-mode))
+ search-default-mode))
isearch-op-fun op-fun
isearch-last-case-fold-search isearch-case-fold-search
isearch-case-fold-search case-fold-search
(isearch-repeat 'backward))
\f
-;;; Toggles for `isearch-regexp-function' and `search-default-regexp-mode'.
+;;; Toggles for `isearch-regexp-function' and `search-default-mode'.
(defmacro isearch-define-mode-toggle (mode key function &optional docstring &rest body)
"Define a command called `isearch-toggle-MODE' and bind it to `M-s KEY'.
The first line of the command's docstring is auto-generated, the
(if docstring (concat "\n" docstring) ""))
(interactive)
,@(when function
- `((setq isearch-regexp-function
- (unless (eq isearch-regexp-function #',function)
- #',function))
- (when isearch-regexp-function (setq isearch-regexp nil))))
+ `((setq isearch-regexp-function #',function)
+ (setq isearch-regexp nil)))
,@body
(setq isearch-success t isearch-adjusted t)
(isearch-update))
(define-key isearch-mode-map ,key #',command-name)
- ,@(when (symbolp function)
+ ,@(when (and function (symbolp function))
`((put ',function 'isearch-message-prefix ,(format "%s " mode))
(put ',function :advertised-binding ,key)
(cl-callf (lambda (types) (cons 'choice
(cons '(const :tag ,(capitalize (format "%s search" mode)) ,function)
(cdr types))))
- (get 'search-default-regexp-mode 'custom-type)))))))
+ (get 'search-default-mode 'custom-type)))))))
(isearch-define-mode-toggle word "w" word-search-regexp "\
Turning on word search turns off regexp mode.")
(setq regexp-function #'word-search-regexp))
(let ((description
;; Don't use a description on the default search mode.
- (cond ((equal regexp-function search-default-regexp-mode) "")
+ (cond ((equal regexp-function search-default-mode) "")
(regexp-function
(and (symbolp regexp-function)
(or (get regexp-function 'isearch-message-prefix)
(isearch-regexp "regexp ")
;; We're in literal mode. If the default mode is not
;; literal, then describe it.
- ((functionp search-default-regexp-mode) "literal "))))
+ ((functionp search-default-mode) "literal "))))
(if space-before
;; Move space from the end to the beginning.
(replace-regexp-in-string "\\(.*\\) \\'" " \\1" description)
(setq menu-bar-last-search-type 'string)
;; Ideally, this whole command would be equivalent to `C-s RET'.
(let ((isearch-forward (not backward))
- (isearch-regexp-function search-default-regexp-mode)
+ (isearch-regexp-function search-default-mode)
(isearch-regexp nil))
(if (or (equal string "") (not string))
(funcall (isearch-search-fun-default) (car search-ring))
:enable (not (truncated-partial-width-window-p))))
menu))
+(defvar menu-bar-search-options-menu
+ (let ((menu (make-sparse-keymap "Search Options")))
+
+ (dolist (x '((character-fold-to-regexp "Fold Characters" "Character folding")
+ (isearch-symbol-regexp "Whole Symbols" "Whole symbol")
+ (word-search-regexp "Whole Words" "Whole word")))
+ (bindings--define-key menu (vector (nth 0 x))
+ `(menu-item ,(nth 1 x)
+ (lambda ()
+ (interactive)
+ (setq search-default-mode #',(nth 0 x))
+ (message ,(format "%s search enabled" (nth 2 x))))
+ :help ,(format "Enable %s search" (downcase (nth 2 x)))
+ :button (:radio . (eq search-default-mode #',(nth 0 x))))))
+
+ (bindings--define-key menu [regexp-search]
+ '(menu-item "Regular Expression"
+ (lambda ()
+ (interactive)
+ (setq search-default-mode t)
+ (message "Regular-expression search enabled"))
+ :help "Enable regular-expression search"
+ :button (:radio . (eq search-default-mode t))))
+
+ (bindings--define-key menu [regular-search]
+ '(menu-item "Literal Search"
+ (lambda ()
+ (interactive)
+ (when search-default-mode
+ (setq search-default-mode nil)
+ (when (symbolp search-default-mode)
+ (message "Literal search enabled"))))
+ :help "Disable special search modes"
+ :button (:radio . (not search-default-mode))))
+
+ (bindings--define-key menu [custom-separator]
+ menu-bar-separator)
+ (bindings--define-key menu [case-fold-search]
+ (menu-bar-make-toggle
+ toggle-case-fold-search case-fold-search
+ "Ignore Case"
+ "Case-Insensitive Search %s"
+ "Ignore letter-case in search commands"))
+
+ menu))
+
(defvar menu-bar-options-menu
(let ((menu (make-sparse-keymap "Options")))
(bindings--define-key menu [customize]
(:visible (and (boundp 'cua-enable-cua-keys)
(not cua-enable-cua-keys)))))
- (bindings--define-key menu [case-fold-search]
- (menu-bar-make-toggle
- toggle-case-fold-search case-fold-search
- "Ignore Case for Search"
- "Case-Insensitive Search %s"
- "Ignore letter-case in search commands"))
+ (bindings--define-key menu [search-options]
+ `(menu-item "Default Search Options"
+ ,menu-bar-search-options-menu))
(bindings--define-key menu [line-wrapping]
`(menu-item "Line Wrapping in This Buffer"
inev.arg = list3 (make_pointer_integer (notifications_desc),
action, fname);
kbd_buffer_store_event_hold (&inev, hold_quit);
+ nevents++;
if (!fni->NextEntryOffset)
break;
if (!notification_buffer_in_use)
{
if (info_size)
- memcpy (file_notifications, info, info_size);
- notifications_size = info_size;
+ memcpy (file_notifications, info,
+ min (info_size, sizeof (file_notifications)));
+ notifications_size = min (info_size, sizeof (file_notifications));
notifications_desc = desc;
/* If PostMessage fails, the message queue is full. If that
happens, the last thing they will worry about is file
int win_x, win_y;
Window root, child;
unsigned pmask;
+ int min_x, min_y, max_x, max_y = -1;
/* User-specified position? */
left = Fcdr (Fassq (Qleft, parms));
if ((!INTEGERP (left) && !INTEGERP (right))
|| (!INTEGERP (top) && !INTEGERP (bottom)))
{
+ Lisp_Object frame, attributes, monitor, geometry;
+
block_input ();
XQueryPointer (FRAME_X_DISPLAY (f), FRAME_DISPLAY_INFO (f)->root_window,
&root, &child, root_x, root_y, &win_x, &win_y, &pmask);
unblock_input ();
+
+ XSETFRAME(frame, f);
+ attributes = Fx_display_monitor_attributes_list (frame);
+
+ /* Try to determine the monitor where the mouse pointer is and
+ its geometry. See bug#22549. */
+ while (CONSP (attributes))
+ {
+ monitor = XCAR (attributes);
+ geometry = Fassq (Qgeometry, monitor);
+ if (CONSP (geometry))
+ {
+ min_x = XINT (Fnth (make_number (1), geometry));
+ min_y = XINT (Fnth (make_number (2), geometry));
+ max_x = min_x + XINT (Fnth (make_number (3), geometry));
+ max_y = min_y + XINT (Fnth (make_number (4), geometry));
+ if (min_x <= *root_x && *root_x < max_x
+ && min_y <= *root_y && *root_y < max_y)
+ {
+ break;
+ }
+ max_y = -1;
+ }
+
+ attributes = XCDR (attributes);
+ }
+ }
+
+ /* It was not possible to determine the monitor's geometry, so we
+ assign some sane defaults here: */
+ if ( max_y < 0 )
+ {
+ min_x = 0;
+ min_y = 0;
+ max_x = x_display_pixel_width (FRAME_DISPLAY_INFO (f));
+ max_y = x_display_pixel_height (FRAME_DISPLAY_INFO (f));
}
if (INTEGERP (top))
*root_y = XINT (top);
else if (INTEGERP (bottom))
*root_y = XINT (bottom) - height;
- else if (*root_y + XINT (dy) <= 0)
- *root_y = 0; /* Can happen for negative dy */
- else if (*root_y + XINT (dy) + height
- <= x_display_pixel_height (FRAME_DISPLAY_INFO (f)))
+ else if (*root_y + XINT (dy) <= min_y)
+ *root_y = min_y; /* Can happen for negative dy */
+ else if (*root_y + XINT (dy) + height <= max_y)
/* It fits below the pointer */
*root_y += XINT (dy);
- else if (height + XINT (dy) <= *root_y)
+ else if (height + XINT (dy) + min_y <= *root_y)
/* It fits above the pointer. */
*root_y -= height + XINT (dy);
else
/* Put it on the top. */
- *root_y = 0;
+ *root_y = min_y;
if (INTEGERP (left))
*root_x = XINT (left);
else if (INTEGERP (right))
*root_x = XINT (right) - width;
- else if (*root_x + XINT (dx) <= 0)
+ else if (*root_x + XINT (dx) <= min_x)
*root_x = 0; /* Can happen for negative dx */
- else if (*root_x + XINT (dx) + width
- <= x_display_pixel_width (FRAME_DISPLAY_INFO (f)))
+ else if (*root_x + XINT (dx) + width <= max_x)
/* It fits to the right of the pointer. */
*root_x += XINT (dx);
- else if (width + XINT (dx) <= *root_x)
+ else if (width + XINT (dx) + min_x <= *root_x)
/* It fits to the left of the pointer. */
*root_x -= width + XINT (dx);
else
- /* Put it left-justified on the screen--it ought to fit that way. */
- *root_x = 0;
+ /* Put it left justified on the screen -- it ought to fit that way. */
+ *root_x = min_x;
}
:baz,
:more
attr_accessor :tee
- alias_method :qux, :tee, attr_accessor :bogus
+ alias_method :qux, :tee, attr_accessor(:bogus)
alias_method :xyz,
:tee ; attr_reader :subtle
+ attr_reader(:foo1, :bar1, # comment
+ :qux1)
+ alias_method ( :foo2, #cmmt
+ :bar2)
end
end
"Timeout to wait for arriving events, in seconds."
(cond
((file-remote-p temporary-file-directory) 6)
- ((string-equal (file-notify--test-library) "w32notify") 20)
+ ((string-equal (file-notify--test-library) "w32notify") 10)
((eq system-type 'cygwin) 10)
(t 3)))
file-notify--test-tmpfile
'(change) 'file-notify--test-event-handler)))
(unwind-protect
- ;; In case of w32notify, the upper limit of events to handle
- ;; seems to be 260. Reason unknown.
- (let ((n (if (string-equal (file-notify--test-library) "w32notify")
- 250 1000))
+ (let ((n 1000)
source-file-list target-file-list
(default-directory file-notify--test-tmpfile))
(dotimes (i n)
(let ((source-file-list source-file-list)
(target-file-list target-file-list))
(while (and source-file-list target-file-list)
- (rename-file (pop source-file-list) (pop target-file-list) t))))
+ (rename-file (pop source-file-list) (pop target-file-list) t)
+ (read-event nil nil 0.02))))
(file-notify--test-with-events (make-list n 'deleted)
(dolist (file target-file-list)
- (delete-file file))))
+ (prog1 (delete-file file) (read-event nil nil 0.02)))))
(file-notify--test-cleanup)))
(file-notify--deftest-remote file-notify-test06-many-events
Condition_Variable/t ada-src/2ataspri.ads /^ type Condition_Variable is$/
Configure pyt-src/server.py /^class Configure(Frame, ControlEdit):$/
ConfirmQuit pyt-src/server.py /^def ConfirmQuit(frame, context):$/
-Constant ruby-src/test1.ru 38
+Constant ruby-src/test1.ru 42
ControlEdit pyt-src/server.py /^class ControlEdit(Frame):$/
Controls pyt-src/server.py /^class Controls:$/
CopyTextString pas-src/common.pas /^function CopyTextString;(*($/
bar c.c 143
bar c-src/h.h 19
bar cp-src/x.cc /^XX::bar()$/
+bar1 ruby-src/test1.ru /^ attr_reader(:foo1, :bar1, # comment$/
bar= ruby-src/test1.ru /^ attr_writer :bar,$/
bas_syn prol-src/natded.prolog /^bas_syn(n(_)).$/
base c-src/emacs/src/lisp.h 2188
foo php-src/ptest.php /^foo()$/
foo ruby-src/test1.ru /^ attr_reader :foo$/
foo! ruby-src/test1.ru /^ def foo!$/
+foo1 ruby-src/test1.ru /^ attr_reader(:foo1, :bar1, # comment$/
+foo2 ruby-src/test1.ru /^ alias_method ( :foo2, #cmmt$/
foobar c-src/c.c /^int foobar() {;}$/
foobar c.c /^extern void foobar (void) __attribute__ ((section /
foobar2 c-src/h.h 20
quiettest make-src/Makefile /^quiettest:$/
quit_char c-src/emacs/src/keyboard.c 192
quit_throw_to_read_char c-src/emacs/src/keyboard.c /^quit_throw_to_read_char (bool from_signal)$/
-qux ruby-src/test1.ru /^ alias_method :qux, :tee, attr_accessor :bogus$/
+qux ruby-src/test1.ru /^ alias_method :qux, :tee, attr_accessor(:bogus)/
+qux1 ruby-src/test1.ru /^ :qux1)$/
qux= ruby-src/test1.ru /^ def qux=(tee)$/
r0 c-src/sysdep.h 54
r1 c-src/sysdep.h 55
def module_instance_method\7f46,1051
def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
\f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
class A\7f1,0
def a(\7f2,8
def b(\7f5,38
attr_accessor :tee\7ftee\ 131,382
attr_accessor :tee\7ftee=\ 131,382
alias_method :qux,\7fqux\ 132,405
- alias_method :xyz,\7fxyz\ 133,455
- :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+ alias_method :xyz,\7fxyz\ 133,456
+ :tee ; attr_reader :subtle\7fsubtle\ 134,479
+ attr_reader(:foo1,\7ffoo1\ 135,523
+ attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+ :qux1)\7fqux1\ 136,563
+ alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
\f
tex-src/testenv.tex,52
\newcommand{\nm}\7f\nm\ 14,77
def module_instance_method\7f46,1051
def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
\f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
class A\7f1,0
def a(\7f2,8
def b(\7f5,38
attr_accessor :tee\7ftee\ 131,382
attr_accessor :tee\7ftee=\ 131,382
alias_method :qux,\7fqux\ 132,405
- alias_method :xyz,\7fxyz\ 133,455
- :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+ alias_method :xyz,\7fxyz\ 133,456
+ :tee ; attr_reader :subtle\7fsubtle\ 134,479
+ attr_reader(:foo1,\7ffoo1\ 135,523
+ attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+ :qux1)\7fqux1\ 136,563
+ alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
\f
tex-src/testenv.tex,52
\newcommand{\nm}\7f\nm\ 14,77
def module_instance_method\7f46,1051
def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
\f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
class A\7f1,0
def a(\7f2,8
def b(\7f5,38
attr_accessor :tee\7ftee\ 131,382
attr_accessor :tee\7ftee=\ 131,382
alias_method :qux,\7fqux\ 132,405
- alias_method :xyz,\7fxyz\ 133,455
- :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+ alias_method :xyz,\7fxyz\ 133,456
+ :tee ; attr_reader :subtle\7fsubtle\ 134,479
+ attr_reader(:foo1,\7ffoo1\ 135,523
+ attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+ :qux1)\7fqux1\ 136,563
+ alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
\f
tex-src/testenv.tex,52
\newcommand{\nm}\7f\nm\ 14,77
def module_instance_method\7f46,1051
def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
\f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
class A\7f1,0
def a(\7f2,8
def b(\7f5,38
attr_accessor :tee\7ftee\ 131,382
attr_accessor :tee\7ftee=\ 131,382
alias_method :qux,\7fqux\ 132,405
- alias_method :xyz,\7fxyz\ 133,455
- :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+ alias_method :xyz,\7fxyz\ 133,456
+ :tee ; attr_reader :subtle\7fsubtle\ 134,479
+ attr_reader(:foo1,\7ffoo1\ 135,523
+ attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+ :qux1)\7fqux1\ 136,563
+ alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
\f
tex-src/testenv.tex,52
\newcommand{\nm}\7f\nm\ 14,77
def module_instance_method\7f46,1051
def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
\f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
class A\7f1,0
def a(\7f2,8
def b(\7f5,38
attr_accessor :tee\7ftee\ 131,382
attr_accessor :tee\7ftee=\ 131,382
alias_method :qux,\7fqux\ 132,405
- alias_method :xyz,\7fxyz\ 133,455
- :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+ alias_method :xyz,\7fxyz\ 133,456
+ :tee ; attr_reader :subtle\7fsubtle\ 134,479
+ attr_reader(:foo1,\7ffoo1\ 135,523
+ attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+ :qux1)\7fqux1\ 136,563
+ alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
\f
tex-src/testenv.tex,52
\newcommand{\nm}\7f\nm\ 14,77
def module_instance_method\7f46,1051
def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
\f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
class A\7f1,0
def a(\7f2,8
def b(\7f5,38
attr_accessor :tee\7ftee\ 131,382
attr_accessor :tee\7ftee=\ 131,382
alias_method :qux,\7fqux\ 132,405
- alias_method :xyz,\7fxyz\ 133,455
- :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+ alias_method :xyz,\7fxyz\ 133,456
+ :tee ; attr_reader :subtle\7fsubtle\ 134,479
+ attr_reader(:foo1,\7ffoo1\ 135,523
+ attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+ :qux1)\7fqux1\ 136,563
+ alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
\f
tex-src/testenv.tex,52
\newcommand{\nm}\7f\nm\ 14,77