all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Need review of emacs-25-merge branch
@ 2015-12-30  5:50 John Wiegley
  2015-12-30  7:46 ` Paul Eggert
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: John Wiegley @ 2015-12-30  5:50 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1819 bytes --]

Bear with me, this is my first merge attempt, after a long period of no
merging having happened...

To make things easier on myself, I used git-imerge, which is a power tool for
managing large scale forks:

  http://softwareswirl.blogspot.com/2013/05/git-imerge-practical-introduction.html

My experiences using it for this merge were:

  1. It's slow. It took 1.5 hours to do the merge.

  2. It's FAST. 98% of that time was spent watching it do automated bisecting,
     so I was able to read Emacs bug mail for most of that time.

  3. I was presented with a total of, I think, 16 conflicts. Except for one,
     each of these conflicts was a single, small conflict region within a
     single file.

     The problem is, each one was a genuine conflict, and I wasn't sure how to
     intelligently merge the two pieces of work. I did my best, but I'm sure I
     got it wrong in several places.

  4. It didn't take "back-port" markers into account, and yet it didn't run
     into conflicts because of them either. I'd like to know if this mattered,
     how you checked that it mattered, and based on that feedback I'll make
     changes to git-imerge to choose the "ours" strategy automatically for
     such commit pairs.

In all, this was an awesome experience -- if it actually worked. The amount of
intellectual effort was tiny compared to the scope of the merge, and noting
Stefan's experience. If this works, it's a huge win in the git-imerge column;
if it did a hatchet job, maybe not.

The resulting merge fails to build for me for the same reason that emacs-25
does: the ucs-normalize.el build failure.

Thanks,
-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 629 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30  5:50 Need review of emacs-25-merge branch John Wiegley
@ 2015-12-30  7:46 ` Paul Eggert
  2015-12-30 17:23   ` Eli Zaretskii
  2015-12-30 16:20 ` Eli Zaretskii
       [not found] ` <CABr8ebbF7JYoGPV5gtmAuVsOWamoCdmpq+tqoLqyuoM8OYOCcg@mail.gmail.com>
  2 siblings, 1 reply; 20+ messages in thread
From: Paul Eggert @ 2015-12-30  7:46 UTC (permalink / raw)
  To: emacs-devel

John Wiegley wrote:
> The resulting merge fails to build for me for the same reason that emacs-25
> does: the ucs-normalize.el build failure.

That build failure was fixed in emacs-25 on Fri Dec 25 13:23:17 2015 +0200, by 
Eli in commit 94a3606243d3923ac457aeff33f3ce82b65ef6cd “Fix bootstrap broken by 
changes related to OS X file-name encoding”. I don’t observe it in a fresh build 
now on either emacs-25 (commit ce106f3de6b016a474e2591dea9226a3741effee) or 
emacs-25-merge (commit ec0a80cc283badc7f7fd5ef78512dde6d34b1355). My guess is 
that you need to build from scratch rather than rely on ‘make’ to figure out 
exactly which files are obsolete.

One problem I noticed with the merge is ChangeLog.2. I don't see how ‘make 
change-history’ will work in the master branch now. For example, if you are in a 
directory where emacs-25-merge is current and rename that branch to master with 
‘git branch -m emacs-25-merge master’ and then run ‘make 
change-history-nocommit’, you should observe duplicate entries in ChangeLog.2, 
which is not good.



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30  5:50 Need review of emacs-25-merge branch John Wiegley
  2015-12-30  7:46 ` Paul Eggert
@ 2015-12-30 16:20 ` Eli Zaretskii
  2015-12-30 19:07   ` John Wiegley
       [not found] ` <CABr8ebbF7JYoGPV5gtmAuVsOWamoCdmpq+tqoLqyuoM8OYOCcg@mail.gmail.com>
  2 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2015-12-30 16:20 UTC (permalink / raw)
  To: John Wiegley; +Cc: emacs-devel

> From: John Wiegley <jwiegley@gmail.com>
> Date: Tue, 29 Dec 2015 21:50:16 -0800
> 
> Bear with me, this is my first merge attempt, after a long period of no
> merging having happened...

It's hard to look at the humongous diffs without some focus.  It would
be better if you told where did the conflicts occur, so that only
those parts could be eyeballed.

One thing I noticed is that the merges in the tests/ directory didn't
go well: look inside there and you will see that Git brought back
several directories whose contents were moved on master.  These need
to be fixed manually, I guess.

> To make things easier on myself, I used git-imerge, which is a power tool for
> managing large scale forks:

I guess that's okay for such a problematic merge, but in the future I
think we should insist on using gitmerge.el.  We must make sure it
does its job, and does it well, or else we will have no control on
what's going on in the repository.

>   4. It didn't take "back-port" markers into account, and yet it didn't run
>      into conflicts because of them either. I'd like to know if this mattered,
>      how you checked that it mattered, and based on that feedback I'll make
>      changes to git-imerge to choose the "ours" strategy automatically for
>      such commit pairs.

How does one go about this?



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30  7:46 ` Paul Eggert
@ 2015-12-30 17:23   ` Eli Zaretskii
  0 siblings, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2015-12-30 17:23 UTC (permalink / raw)
  To: Paul Eggert; +Cc: emacs-devel

> From: Paul Eggert <eggert@cs.ucla.edu>
> Date: Tue, 29 Dec 2015 23:46:59 -0800
> 
> One problem I noticed with the merge is ChangeLog.2. I don't see how ‘make 
> change-history’ will work in the master branch now. For example, if you are in a 
> directory where emacs-25-merge is current and rename that branch to master with 
> ‘git branch -m emacs-25-merge master’ and then run ‘make 
> change-history-nocommit’, you should observe duplicate entries in ChangeLog.2, 
> which is not good.

I guess the first merge should be fixed manually, and we should
hopefully have a better procedure some time soon.



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
       [not found]   ` <m2vb7gml15.fsf@newartisans.com>
@ 2015-12-30 17:38     ` Eli Zaretskii
       [not found]     ` <CABr8ebacCsM15oWN55Zhg9ACBh-iy5n9nTF5wDj53=F7Ns25Jw@mail.gmail.com>
  1 sibling, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2015-12-30 17:38 UTC (permalink / raw)
  To: John Wiegley; +Cc: andlind, emacs-devel

> From: John Wiegley <jwiegley@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>
> Date: Tue, 29 Dec 2015 23:51:34 -0800
> 
> >>>>> Anders Lindgren <andlind@gmail.com> writes:
> 
> > If not we need to investigate why. John, can you make sure your "emacs-25"
> > branch is up to date and do a rebuild. If it still fails, can you send me
> > and Eli the log?
> 
> I did a pull and build, and the same error happened. I'm deleting all .elc
> files before doing the build.  The log is attached.  You can see which commit
> I'm on at the bottom.
> 
> 23:48:25 Vulcan:~/.emacs.d/devel $ time nix-build ~/nixpkgs --cores 8 -A emacsHEAD

I have no idea what nix-build does.  Are you sure it isn't the source
of the trouble?

> configure flags: --disable-dependency-tracking --prefix=/nix/store/cgkpd0zwm4mypw45rr0dq9lx58ndm8pj-emacs-HEAD --with-ns --disable-ns-self-contained

The --disable-dependency-tracking switch is another suspect; why do
you use it?

> Loading term/common-win...
> Loading international/ucs-normalize.el (source)...
> Eager macro-expansion failure: (error "(require cl-lib) while preparing to dump")
> Eager macro-expansion failure: (error "(require cl-lib) while preparing to dump")
> (require cl-lib) while preparing to dump
> Makefile:519: recipe for target 'emacs' failed

ucs-normalize.el shouldn't be loaded in source form at this stage, it
should have been byte-compiled already.  My crystal balls says that it
doesn't appear in src/lisp.mk, most probably because you run a partial
build, where the rule that updates lisp.mk is somehow bypassed
(perhaps because of the --disable-dependency-tracking switch, or maybe
something else, like maybe nix-build, whatever that is, doesn't
faithfully emulate GNU Make, or doesn't run GNU Make if it's supposed
to).

If nothing else helps, I suggest a "make bootstrap" from the shell
command line, and make sure your 'make' command is a GNU Make.



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 16:20 ` Eli Zaretskii
@ 2015-12-30 19:07   ` John Wiegley
  2015-12-30 19:15     ` Lars Magne Ingebrigtsen
  2015-12-30 19:26     ` Eli Zaretskii
  0 siblings, 2 replies; 20+ messages in thread
From: John Wiegley @ 2015-12-30 19:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 4237 bytes --]

>>>>> Eli Zaretskii <eliz@gnu.org> writes:

> It's hard to look at the humongous diffs without some focus. It would be
> better if you told where did the conflicts occur, so that only those parts
> could be eyeballed.

I would have to redo the merge again to know exactly what those conflicts
were. Several were in ERC, some in the NEWS file, some in eww, some in
autoloads, and a few in configuration file (.gitignore, etc).

If that's really what is needed, I can do that; however, then I'd need to redo
it to incorporate the correct changes. On the other hand, I could make the
change I propose below before re-attempting it, and maybe that will resolve
some of the problems I had.

>> 4. It didn't take "back-port" markers into account, and yet it didn't run
>> into conflicts because of them either. I'd like to know if this mattered,
>> how you checked that it mattered, and based on that feedback I'll make
>> changes to git-imerge to choose the "ours" strategy automatically for such
>> commit pairs.

> How does one go about this?

git-imerge is a Python script.  It does the following:

  1. The number of new commits on master   is X.
     The number of new commits on emacs-25 is Y.

     This means there is a matrix of X*Y possible "merge points".

  2. git-imerge searches the space of these merge points by bisection, to find
     the bottom-right-most point in the matrix that merges automatically. This
     then defines a "space below" and a "space to the right" within which the
     merge might not proceed automatically.

     Note that this is equivalent to having done the clean merge at that point
     earlier, and then moving forward through time from that moment.

  3. It presents this bottom-right-most conflict in the form of a conflicted
     merge between X' and Y', where X' < X and Y' < Y.

  4. After you resolve this conflict, you resume the matrix-based merge. Now
     you have two areas in which to repeat the same process: (X - X') * Y, and
     X * (Y - Y') [each starting from X' and Y', respectively].

     git-imerge attempts to "fill in" as much of these squares as possible via
     automated merge, to reduce the candidate surface area.

  5. Now the algorithm proceeds recursively in each sub-square, etc., until
     the final squares are 1 commit tall and wide, such that they either pass
     automatically, or require manual resolution. Then you are done.

How do we change this algorithm to support gitmerge.el style merging?

  a. Whenever a merge is to be attempted between two points X' and Y' in the
     graph (the Python function in git-imerge that does this is called
     "automerge"), we check the commit message for a back-port marker, and a
     skip list. If we find it, we pass the strategy option to indicate an
     "ours" merge, which always succeed by definition.

Not only will this conform git-imerge to our process, but it accelerates the
merge process by reducing the number of potential conflicting merges.

In fact, now that I think about it, I can unite these two approaches by
changing gitmerge.el to use git-imerge instead of git-merge in
`gitmerge-apply' when available (and if customized to do so). After all, the
end result of either approach should, in theory, be the same. The main
advantages of git-imerge are:

  1. It automates finding the smallest possible conflict surface (trading
     compute time for human time).

  2. It guarantees you won't ever fix the same conflict twice, without using
     rerere (which can sometimes be too automatic, since it's pattern-based).

  3. It allows intermediate merge states to be communicated and resumed by
     another, and also built and tested, if desired.

  4. It allows the final merge state to be simplified in various ways, making
     it also useful for feature branch development where rebasing is used.

So, I guess the question now is: Do you want me to make these changes to the
script and redo the merge, or should we just fix this mega-merge by hand?

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 629 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
       [not found]     ` <CABr8ebacCsM15oWN55Zhg9ACBh-iy5n9nTF5wDj53=F7Ns25Jw@mail.gmail.com>
@ 2015-12-30 19:10       ` John Wiegley
  0 siblings, 0 replies; 20+ messages in thread
From: John Wiegley @ 2015-12-30 19:10 UTC (permalink / raw)
  To: Anders Lindgren; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 513 bytes --]

>>>>> Anders Lindgren <andlind@gmail.com> writes:

> I just checked out the emacs-25 branch from scratch and it built correctly.
> Try to remove more intermediate files, especially those related to the
> bootstrap process.

Ok, doing a "git clean -dfx" as part of the build process caused things to
build correctly, both emacs-25 and emacs-25-merge.

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 629 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:07   ` John Wiegley
@ 2015-12-30 19:15     ` Lars Magne Ingebrigtsen
  2015-12-30 19:26     ` Eli Zaretskii
  1 sibling, 0 replies; 20+ messages in thread
From: Lars Magne Ingebrigtsen @ 2015-12-30 19:15 UTC (permalink / raw)
  To: emacs-devel

John Wiegley <jwiegley@gmail.com> writes:

> I would have to redo the merge again to know exactly what those conflicts
> were. Several were in ERC, some in the NEWS file, some in eww, some in
> autoloads, and a few in configuration file (.gitignore, etc).

I had a peek at the megapatch and skimmed the erc and eww changes, and
nothing stood out as being obviously incorrect.  :-)  But it's hard to
tell just by reading a patch, of course.

Applying and then dealing with any fall-out seems the way to go...
(After fixing the issues previously noted about the test/automated
thing, which is my fault.  I was trying to cherry-pick, but it didn't go
that well...)

(And ChangeLog.2.)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:07   ` John Wiegley
  2015-12-30 19:15     ` Lars Magne Ingebrigtsen
@ 2015-12-30 19:26     ` Eli Zaretskii
  2015-12-30 19:35       ` John Wiegley
  2015-12-30 19:49       ` John Wiegley
  1 sibling, 2 replies; 20+ messages in thread
From: Eli Zaretskii @ 2015-12-30 19:26 UTC (permalink / raw)
  To: John Wiegley; +Cc: emacs-devel

> From: John Wiegley <jwiegley@gmail.com>
> Cc: emacs-devel@gnu.org
> Date: Wed, 30 Dec 2015 11:07:30 -0800
> 
> > It's hard to look at the humongous diffs without some focus. It would be
> > better if you told where did the conflicts occur, so that only those parts
> > could be eyeballed.
> 
> I would have to redo the merge again to know exactly what those conflicts
> were.

(I miss Bazaar's ~/.bzr.log file where everything was logged, and
could be readily produced for inspection many moons after stuff
happened.)

If recovering the conflicts is that much effort, then I guess there's
no point in reviewing the merge any longer.  Just push it, and let's
see who hollers.

> >> 4. It didn't take "back-port" markers into account, and yet it didn't run
> >> into conflicts because of them either. I'd like to know if this mattered,
> >> how you checked that it mattered, and based on that feedback I'll make
> >> changes to git-imerge to choose the "ours" strategy automatically for such
> >> commit pairs.
> 
> > How does one go about this?
> 
> git-imerge is a Python script.  It does the following:

Sorry, it seems I didn't make myself clear again.  I was asking about
this part:

    I'd like to know if this mattered

IOW, I thought you were asking to see if the fact that the backports
were not taken into account actually did some damage, and I was asking
what should one look for to find any such damage.

>   1. The number of new commits on master   is X.
>      The number of new commits on emacs-25 is Y.
> 
>      This means there is a matrix of X*Y possible "merge points".
> 
>   2. git-imerge searches the space of these merge points by bisection, to find
>      the bottom-right-most point in the matrix that merges automatically. This
>      then defines a "space below" and a "space to the right" within which the
>      merge might not proceed automatically.
> 
>      Note that this is equivalent to having done the clean merge at that point
>      earlier, and then moving forward through time from that moment.
> 
>   3. It presents this bottom-right-most conflict in the form of a conflicted
>      merge between X' and Y', where X' < X and Y' < Y.
> 
>   4. After you resolve this conflict, you resume the matrix-based merge. Now
>      you have two areas in which to repeat the same process: (X - X') * Y, and
>      X * (Y - Y') [each starting from X' and Y', respectively].
> 
>      git-imerge attempts to "fill in" as much of these squares as possible via
>      automated merge, to reduce the candidate surface area.
> 
>   5. Now the algorithm proceeds recursively in each sub-square, etc., until
>      the final squares are 1 commit tall and wide, such that they either pass
>      automatically, or require manual resolution. Then you are done.
> 
> How do we change this algorithm to support gitmerge.el style merging?

Frankly, I don't see how that would be needed, in the simple workflow
we use around here.  AFAIU, git-imerge was designed for much more
complex workflows, with many branches that merge back and forth.  We
just have 2 branches whose fork point is well known, and which
basically fork once and then never join.  So, item 2 is known in
advance, for example: it is currently the point where emacs-25 was
created.  (Once the merge is actually done, the next such point is
where that merge happened.)

And the commits to merge are all those made after the fork point on
emacs-25, sans the "backports" and a few others that gitmerge.el knows
about.  That's all there is to it, I think.

> Not only will this conform git-imerge to our process, but it accelerates the
> merge process by reducing the number of potential conflicting merges.

IME, if we merge, say, once a week or two, there are almost no
conflicts at all.

> In fact, now that I think about it, I can unite these two approaches by
> changing gitmerge.el to use git-imerge instead of git-merge in
> `gitmerge-apply' when available (and if customized to do so).

Then you'd require everyone who uses gitmerge.el to have a working
Python installation, and one that is compatible with Git.  That's not
a trivial requirement; e.g., Git for Windows is shipped without Python
support.

> So, I guess the question now is: Do you want me to make these changes to the
> script and redo the merge, or should we just fix this mega-merge by hand?

The latter, of course.  If there's any trouble, we will know shortly.
However, please do fix the problems I reported about, in the test/
directory, as I think it should be easy.

Thanks.



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:26     ` Eli Zaretskii
@ 2015-12-30 19:35       ` John Wiegley
  2015-12-30 19:39         ` Lars Magne Ingebrigtsen
  2015-12-30 19:49       ` John Wiegley
  1 sibling, 1 reply; 20+ messages in thread
From: John Wiegley @ 2015-12-30 19:35 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, emacs-devel

>>>>> Eli Zaretskii <eliz@gnu.org> writes:

> If recovering the conflicts is that much effort, then I guess there's no
> point in reviewing the merge any longer. Just push it, and let's see who
> hollers.

It's already up, in origin/emacs-25-merge. Perhaps you'd like to run some
tests on your machine locally, and then can you merge that branch into
'master' when you also feel it's ready?

> IOW, I thought you were asking to see if the fact that the backports were
> not taken into account actually did some damage, and I was asking what
> should one look for to find any such damage.

Ah, yes, that was my question. I suspect the only "damage" possible is changes
now on master, as a result of the merge, that shouldn't be there, since they
should have remained on emacs-25 exclusively.

> And the commits to merge are all those made after the fork point on
> emacs-25, sans the "backports" and a few others that gitmerge.el knows
> about. That's all there is to it, I think.

When emacs-25 merges into master, it is a merge of all the work done since the
last merge, minus those commits that should be skipped. This then defines a
new baseline against which the future merge occurs. This is the same workflow
that both merging and git-imerge are designed for. So I think we are on the
same page.

> IME, if we merge, say, once a week or two, there are almost no conflicts at
> all.

Either way, git-imerge should be equivalent in the end result to git-merge,
once I change it to take skips into account. So I guess it doesn't matter
semantically whether it is used or not; it helps me, personally, to reduce the
conflict surface I have to consider, by automating as much of the process as
possible. It may end up being something that only I use.

> Then you'd require everyone who uses gitmerge.el to have a working Python
> installation, and one that is compatible with Git. That's not a trivial
> requirement; e.g., Git for Windows is shipped without Python support.

No, it would be optional. Since they should be equivalent in the end result,
there is no requirement to use it.

>> So, I guess the question now is: Do you want me to make these changes to
>> the script and redo the merge, or should we just fix this mega-merge by
>> hand?

> The latter, of course. If there's any trouble, we will know shortly.
> However, please do fix the problems I reported about, in the test/
> directory, as I think it should be easy.

Thanks, I think Lars is looking into that now.

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:35       ` John Wiegley
@ 2015-12-30 19:39         ` Lars Magne Ingebrigtsen
  2015-12-30 19:59           ` Eli Zaretskii
  0 siblings, 1 reply; 20+ messages in thread
From: Lars Magne Ingebrigtsen @ 2015-12-30 19:39 UTC (permalink / raw)
  To: emacs-devel

John Wiegley <jwiegley@gmail.com> writes:

>> The latter, of course. If there's any trouble, we will know shortly.
>> However, please do fix the problems I reported about, in the test/
>> directory, as I think it should be easy.
>
> Thanks, I think Lars is looking into that now.

Well, just remove the test/ directory after merging.  :-)  The test that
ended up there in emacs-25 is already in master (at the correct
location), so just removing it is fine.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:26     ` Eli Zaretskii
  2015-12-30 19:35       ` John Wiegley
@ 2015-12-30 19:49       ` John Wiegley
  2015-12-30 19:52         ` Lars Magne Ingebrigtsen
  2015-12-30 19:53         ` Paul Eggert
  1 sibling, 2 replies; 20+ messages in thread
From: John Wiegley @ 2015-12-30 19:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Lars Ingebrigtsen, Paul Eggert, emacs-devel

>>>>> Eli Zaretskii <eliz@gnu.org> writes:

> Frankly, I don't see how that would be needed, in the simple workflow we use
> around here.

You know, I think now you may be right, as much as I love technology. I just
did a plain "git merge emacs-25", in the same master branch as yesterday.

I was presented with the same 12 merge conflicts; it took all of 1 second to
perform that merge; and I would have had to resolve the same conflicts in the
same way I did when using git-imerge. Only, it would have proceeded in a
fraction of the time.

So, no actual win for git-imerge, I was just scared off by what Stefan wrote
that I didn't even try the standard method to compare.

I'll stick with gitmerge.el and just being more regular, until the complexity
becomes a real problem. The main thing now is ChangeLog-2. Paul, would you be
willing to help with that one this time?

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:49       ` John Wiegley
@ 2015-12-30 19:52         ` Lars Magne Ingebrigtsen
  2015-12-30 19:59           ` John Wiegley
  2015-12-30 19:53         ` Paul Eggert
  1 sibling, 1 reply; 20+ messages in thread
From: Lars Magne Ingebrigtsen @ 2015-12-30 19:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Paul Eggert, emacs-devel

John Wiegley <jwiegley@gmail.com> writes:

> I was presented with the same 12 merge conflicts; it took all of 1 second to
> perform that merge; and I would have had to resolve the same conflicts in the
> same way I did when using git-imerge. Only, it would have proceeded in a
> fraction of the time.

:-)

Can you post the twelve merge conflicts?  That would make it easier to
see whether the results are what we want...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:49       ` John Wiegley
  2015-12-30 19:52         ` Lars Magne Ingebrigtsen
@ 2015-12-30 19:53         ` Paul Eggert
  2015-12-30 19:59           ` John Wiegley
  1 sibling, 1 reply; 20+ messages in thread
From: Paul Eggert @ 2015-12-30 19:53 UTC (permalink / raw)
  To: Eli Zaretskii, emacs-devel, Lars Ingebrigtsen

John Wiegley wrote:
> The main thing now is ChangeLog-2. Paul, would you be
> willing to help with that one this time?

Sure, though I can't do it right this minute. My most-recent published proposal 
is here:

https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02546.html

though it still needs work, I expect.



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:52         ` Lars Magne Ingebrigtsen
@ 2015-12-30 19:59           ` John Wiegley
  2016-01-02  3:32             ` Lars Magne Ingebrigtsen
  0 siblings, 1 reply; 20+ messages in thread
From: John Wiegley @ 2015-12-30 19:59 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: Eli Zaretskii, Paul Eggert, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 242 bytes --]

>>>>> Lars Magne Ingebrigtsen <larsi@gnus.org> writes:

> Can you post the twelve merge conflicts? That would make it easier to see
> whether the results are what we want...

Sure, here is the entire set of conflicts I dealt with yesterday:


[-- Attachment #2: emacs-25-merge.patch --]
[-- Type: text/x-patch, Size: 153065 bytes --]

diff --cc .gitignore
index 6821791,34b0c02..0000000
--- a/.gitignore
+++ b/.gitignore
@@@ -42,10 -42,11 +42,23 @@@ InfoPlist.string
  Makefile
  makefile
  !etc/refcards/Makefile
++<<<<<<< HEAD
 +!test/lisp/progmodes/flymake-resources/Makefile
 +!test/manual/indent/Makefile
 +!test/manual/etags/Makefile
 +!test/manual/etags/make-src/Makefile
++||||||| merged common ancestors
++!test/automated/data/flymake/Makefile
++!test/indent/Makefile
++!test/etags/Makefile
++!test/etags/make-src/Makefile
++=======
+ !modules/mod-test/Makefile
+ !test/automated/data/flymake/Makefile
+ !test/indent/Makefile
+ !test/etags/Makefile
+ !test/etags/make-src/Makefile
++>>>>>>> emacs-25
  /*.cache
  /confdefs.h
  /config.status
diff --cc admin/release-process
index 1cfcf54,d0b55ba..0000000
--- a/admin/release-process
+++ b/admin/release-process
@@@ -1,45 -1,56 +1,103 @@@
++<<<<<<< HEAD:admin/release-process
 +This document describes the release process used by GNU Emacs.
 +
 +* RELEASE CYCLE
 +
 +Each release cycle will be split into two periods.
 +
 +** Phase one: development
 +
 +The first phase of the release schedule is the "heads-down" working
 +period for new features, on the `master' branch and several feature
 +branches.
 +
 +** Phase two: bugfixes
 +
 +Shortly before this phase, Emacs developers will be devoted to
 +figuring out what features to include in the next release and what
 +features to defer to a later release.
 +
 +At the beginning of this phase, a release branch called "emacs-NN"
 +("NN" represents the major version number of the new Emacs release)
 +will be cut from `master'.
 +
 +This phase is spent fixing bugs and eliminating undocumented new
 +features on the "emacs-NN" branch.
 +
 +In parallel to this phase, `master' can receive new features, to be
 +released in the next release cycle.  From time to time, the master
 +branches merges bugfix commits from the "emacs-NN" branch.
 +
 +* RELEASE-CRITICAL BUGS
 +
 +Emacs uses the "blocking bug(s)" feature of Debbugs for bugs need to
 +be addressed in the next release.
 +
 +Currently, bug#19759 is the tracking bug for release of 25.1 and
 +bug#21966 is the tracking bug for release of 25.2.  Say bug#123 needs
 +to be fixed for Emacs 25.1.  Send a message to control@debbugs.gnu.org
 +that says:
 +
 +   block 19759 by 123
 +
 +Change "block" to "unblock" to unblock the bug.
++||||||| merged common ancestors
++Tasks needed before the next release.
++=======
+ This document describes the release process used by GNU Emacs.
+ 
+ * RELEASE CYCLE
+ 
+ Each release cycle will be split into two periods.
+ 
+ ** Phase one: development
+ 
+ The first phase of the release schedule is the "heads-down" working
+ period for new features, on the `master' branch and several feature
+ branches.
+ 
+ ** Phase two: fixing and stabilizing the release branch
+ 
+ Shortly before this phase, Emacs developers will be devoted to
+ figuring out what features to include in the next release and what
+ features to defer to a later release.
+ 
+ This phase is mostly spent fixing bugs and documenting new features
+ and changes on the "emacs-NN" branch.  Actually, the default branch
+ for pushing any work in this phase should be "emacs-NN", except for
+ new features.
+ 
+ At the beginning of this phase, a release branch called "emacs-NN"
+ ("NN" represents the major version number of the new Emacs release)
+ will be cut from `master'.  When that happens, the version number on
+ `master' should be incremented; use admin/admin.el's `set-version'
+ command to do that, then commit the changes it made and push to
+ `master'.  For major releases, also update the value of
+ `customize-changed-options-previous-release'.
+ 
+ The 2 main manuals, the User Manual and the Emacs Lisp Manual, need to
+ be proofread, preferably by at least 2 different persons, and any
+ uncovered problems fixed.  This is a lot of work, so it is advisable
+ to divide the job between several people (see the checklist near the
+ end of this file).
+ 
+ In parallel to this phase, `master' can receive new features, to be
+ released in the next release cycle.  From time to time, the master
+ branches merges bugfix commits from the "emacs-NN" branch.
+ 
+ * RELEASE-CRITICAL BUGS
+ 
+ Emacs uses the "blocking bug(s)" feature of Debbugs for bugs need to
+ be addressed in the next release.
+ 
+ Currently, bug#19759 is the tracking bug for release of 25.1.  Say
+ bug#123 needs to be fixed for Emacs 25.1.  Send a message to
+ control@debbugs.gnu.org that says:
+ 
+    block 19759 by 123
+ 
+ Change "block" to "unblock" to unblock the bug.
++>>>>>>> emacs-25:admin/release-process
  
  * TO BE DONE SHORTLY BEFORE RELEASE
  
@@@ -133,21 -163,13 +210,47 @@@ csplain -output-format=pdf cs-refcar
  Emacs 22 translators:
  
  LANG	Translator            Status
++<<<<<<< HEAD:admin/release-process
 +cs	Pavel Janík
 +de	Sven Joachim
 +fr	Eric Jacoboni
 +pl	Włodek Bzyl
 +pt-br	Rodrigo Real
 +ru	Alex Ott
 +sk	Miroslav Vaško
 +
 +** For a major release, add a "New in Emacs XX" section to faq.texi.
 +
 +** Remove temporary +++/--- lines in NEWS.
 +
 +** Try to reorder NEWS: most important things first, related items together.
 +
 +** Consider bumping customize-changed-options-previous-release.
++||||||| merged common ancestors
++cs	Pavel Janík           
++de	Sven Joachim          
++fr	Eric Jacoboni         
++pl	Włodek Bzyl           
++pt-br	Rodrigo Real          
++ru	Alex Ott              
++sk	Miroslav Vaško        
++
++** For a major release, add a "New in Emacs XX" section to faq.texi.
++
++** Remove temporary +++/--- lines in NEWS.
++
++** Try to reorder NEWS: most important things first, related items together.
++
++** Consider bumping customize-changed-options-previous-release.
++=======
+ cs	Pavel Janík
+ de	Sven Joachim
+ fr	Eric Jacoboni
+ pl	Włodek Bzyl
+ pt-br	Rodrigo Real
+ ru	Alex Ott
+ sk	Miroslav Vaško
++>>>>>>> emacs-25:admin/release-process
  
  ** cusver-check from admin.el can help find new defcustoms missing
  :version tags.
diff --cc etc/NEWS
index e4db425,10d516b..0000000
--- a/etc/NEWS
+++ b/etc/NEWS
@@@ -166,19 -161,18 +174,38 @@@ the variable `dir-locals-file' for mor
  added via the new Network Security Manager (NSM) and controlled via
  the `network-security-level' variable.
  
++<<<<<<< HEAD
 +---
 +** International domain names (IDNA) are now encoded via the new
 +puny.el library, so that one can visit web sites like
 +"http://méxico.icom.museum".
 +
 +** C-h l now also lists the commands that were run.
- 
++||||||| merged common ancestors
++** C-h l now also lists the commands that were run.
++=======
+ ** If Emacs isn't built with TLS support, an external TLS-capable
+ program is used instead.  This program used to be run in --insecure
+ mode by default, but has now changed to be secure instead, and will
+ fail if you try to connect to non-verifiable hosts.  This is
+ controlled by the `tls-program' variable.
++>>>>>>> emacs-25
+ 
++<<<<<<< HEAD
 +** The new M-s M-w key binding uses eww to search the web for the
 +text in the region.
++||||||| merged common ancestors
++---
++** The new M-s M-w key binding uses eww to search the web for the
++text in the region.
++=======
+ +++
+ ** C-h l now also lists the commands that were run.
++>>>>>>> emacs-25
  
- ** M-x suggests shorthands and ignores obsolete commands for completion.
- ** x-select-enable-clipboard is renamed select-enable-clipboard.
- x-select-enable-primary and renamed select-enable-primary.
+ +++
+ ** x-select-enable-clipboard is renamed select-enable-clipboard
+ and x-select-enable-primary is renamed select-enable-primary.
  Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
  name it), with the proviso that on some systems (e.g. Windows)
  select-enable-primary is ineffective since the system doesn't
@@@ -369,25 -354,18 +387,49 @@@ is suitable for most programming langua
  *** Symbols can be unprettified while point is inside them.
  New variable `prettify-symbols-unprettify-at-point' configures this.
  
- ** New `xterm-screen-extra-capabilities' config.
+ ** Enhanced xterm support
  
++<<<<<<< HEAD
 +** The `save-place' variable is replaced by a `save-place-mode'.
 +
 +** ERC
 +
 +*** Hide message types by network or channel.  `erc-hide-list' will
 +hide all messages of the specified type, where `erc-network-hide-list'
 +and `erc-channel-hide-list' will only hide the specified message types
 +for the respective specified targets.
 +
 +*** New variable `erc-default-port-tls' used to connect to TLS IRC
 +servers.
 +
 +** Midnight-mode
 +*** `midnight-mode' is a proper minor mode.
 +*** clean-buffer-*-regexps can now specify buffers via predicate functions.
++||||||| merged common ancestors
++** The `save-place' variable is replaced by a `save-place-mode'.
++
++** ERC
++
++*** Hide message types by network or channel.  `erc-hide-list' will
++hide all messages of the specified type, where `erc-network-hide-list'
++and `erc-channel-hide-list' will only hide the specified message types
++for the respective specified targets.
++
++** Midnight-mode
++*** `midnight-mode' is a proper minor mode.
++*** clean-buffer-*-regexps can now specify buffers via predicate functions.
++=======
+ ---
+ *** The new variable `xterm-screen-extra-capabilities' for configuring xterm.
+ This variable tells Emacs which advanced capabilities are available in
+ the xterm terminal emulator used to display Emacs text-mode frames.
+ The default is to check each capability, and use it if available.
+ (This variable was introduced in Emacs 24.1, but was not announced in
+ its NEWS.)
++>>>>>>> emacs-25
  
- ** In xterms, killing text now also sets the CLIPBOARD/PRIMARY selection
+ ---
+ *** Killing text now also sets the CLIPBOARD/PRIMARY selection
  in the surrounding GUI (using the OSC-52 escape sequence).  This only works
  if your xterm supports it and enables the `allowWindowOps' options (disabled
  by default at least in Debian, for security reasons).
@@@ -907,10 -1027,18 +1096,26 @@@ compress many marked files into a singl
  compression command is determined from the new
  `dired-compress-files-alist' variable.
  
++<<<<<<< HEAD
 ++++
 +*** `W' is now bound to `browse-url-of-dired-file', and is useful for
 +viewing HTML files and the like.
 +
++||||||| merged common ancestors
++=======
+ ** Tabulated List Mode
+ 
+ +++
+ *** It is now safe for a mode that derives `tabulated-list-mode' to not
+ call `tabulated-list-init-header', in which case it will have no
+ header.
+ 
+ +++
+ *** `tabulated-list-print' takes a second optional argument, update,
+ which specifies an alternative printing method which is faster when
+ few or no entries have changed.
+ 
++>>>>>>> emacs-25
  ** Obsolete packages
  
  ---
diff --cc lisp/emacs-lisp/eieio-core.el
index 61d076d,f524c17..0000000
--- a/lisp/emacs-lisp/eieio-core.el
+++ b/lisp/emacs-lisp/eieio-core.el
@@@ -1095,6 -1100,98 +1095,194 @@@ method invocation orders of the involve
  (cl-defmethod cl-generic-generalizers ((_specializer (head subclass)))
    (list eieio--generic-subclass-generalizer))
  
++<<<<<<< HEAD
++||||||| merged common ancestors
++\f
++;;;### (autoloads nil "eieio-compat" "eieio-compat.el" "11dd361fd4c1c625de90a39977936236")
++;;; Generated autoloads from eieio-compat.el
++
++(autoload 'eieio--defalias "eieio-compat" "\
++Like `defalias', but with less side-effects.
++More specifically, it has no side-effects at all when the new function
++definition is the same (`eq') as the old one.
++
++\(fn NAME BODY)" nil nil)
++
++(autoload 'defgeneric "eieio-compat" "\
++Create a generic function METHOD.
++DOC-STRING is the base documentation for this class.  A generic
++function has no body, as its purpose is to decide which method body
++is appropriate to use.  Uses `defmethod' to create methods, and calls
++`defgeneric' for you.  With this implementation the ARGS are
++currently ignored.  You can use `defgeneric' to apply specialized
++top level documentation to a method.
++
++\(fn METHOD ARGS &optional DOC-STRING)" nil t)
++
++(function-put 'defgeneric 'doc-string-elt '3)
++
++(make-obsolete 'defgeneric 'cl-defgeneric '"25.1")
++
++(autoload 'defmethod "eieio-compat" "\
++Create a new METHOD through `defgeneric' with ARGS.
++
++The optional second argument KEY is a specifier that
++modifies how the method is called, including:
++   :before  - Method will be called before the :primary
++   :primary - The default if not specified
++   :after   - Method will be called after the :primary
++   :static  - First arg could be an object or class
++The next argument is the ARGLIST.  The ARGLIST specifies the arguments
++to the method as with `defun'.  The first argument can have a type
++specifier, such as:
++  ((VARNAME CLASS) ARG2 ...)
++where VARNAME is the name of the local variable for the method being
++created.  The CLASS is a class symbol for a class made with `defclass'.
++A DOCSTRING comes after the ARGLIST, and is optional.
++All the rest of the args are the BODY of the method.  A method will
++return the value of the last form in the BODY.
++
++Summary:
++
++ (defmethod mymethod [:before | :primary | :after | :static]
++                     ((typearg class-name) arg2 &optional opt &rest rest)
++    \"doc-string\"
++     body)
++
++\(fn METHOD &rest ARGS)" nil t)
++
++(function-put 'defmethod 'doc-string-elt '3)
++
++(make-obsolete 'defmethod 'cl-defmethod '"25.1")
++
++(autoload 'eieio--defgeneric-init-form "eieio-compat" "\
++
++
++\(fn METHOD DOC-STRING)" nil nil)
++
++(autoload 'eieio--defmethod "eieio-compat" "\
++
++
++\(fn METHOD KIND ARGCLASS CODE)" nil nil)
++
++(autoload 'eieio-defmethod "eieio-compat" "\
++Obsolete work part of an old version of the `defmethod' macro.
++
++\(fn METHOD ARGS)" nil nil)
++
++(make-obsolete 'eieio-defmethod 'cl-defmethod '"24.1")
++
++(autoload 'eieio-defgeneric "eieio-compat" "\
++Obsolete work part of an old version of the `defgeneric' macro.
++
++\(fn METHOD DOC-STRING)" nil nil)
++
++(make-obsolete 'eieio-defgeneric 'cl-defgeneric '"24.1")
++
++(autoload 'eieio-defclass "eieio-compat" "\
++
++
++\(fn CNAME SUPERCLASSES SLOTS OPTIONS)" nil nil)
++
++(make-obsolete 'eieio-defclass 'eieio-defclass-internal '"25.1")
++
++;;;***
++\f
++
++=======
+ \f
+ ;;;### (autoloads nil "eieio-compat" "eieio-compat.el" "52d481d50642de76b077ba0bafdd2cd4")
+ ;;; Generated autoloads from eieio-compat.el
+ 
+ (autoload 'eieio--defalias "eieio-compat" "\
+ Like `defalias', but with less side-effects.
+ More specifically, it has no side-effects at all when the new function
+ definition is the same (`eq') as the old one.
+ 
+ \(fn NAME BODY)" nil nil)
+ 
+ (autoload 'defgeneric "eieio-compat" "\
+ Create a generic function METHOD.
+ DOC-STRING is the base documentation for this class.  A generic
+ function has no body, as its purpose is to decide which method body
+ is appropriate to use.  Uses `defmethod' to create methods, and calls
+ `defgeneric' for you.  With this implementation the ARGS are
+ currently ignored.  You can use `defgeneric' to apply specialized
+ top level documentation to a method.
+ 
+ \(fn METHOD ARGS &optional DOC-STRING)" nil t)
+ 
+ (function-put 'defgeneric 'doc-string-elt '3)
+ 
+ (make-obsolete 'defgeneric 'cl-defgeneric '"25.1")
+ 
+ (autoload 'defmethod "eieio-compat" "\
+ Create a new METHOD through `defgeneric' with ARGS.
+ 
+ The optional second argument KEY is a specifier that
+ modifies how the method is called, including:
+    :before  - Method will be called before the :primary
+    :primary - The default if not specified
+    :after   - Method will be called after the :primary
+    :static  - First arg could be an object or class
+ The next argument is the ARGLIST.  The ARGLIST specifies the arguments
+ to the method as with `defun'.  The first argument can have a type
+ specifier, such as:
+   ((VARNAME CLASS) ARG2 ...)
+ where VARNAME is the name of the local variable for the method being
+ created.  The CLASS is a class symbol for a class made with `defclass'.
+ A DOCSTRING comes after the ARGLIST, and is optional.
+ All the rest of the args are the BODY of the method.  A method will
+ return the value of the last form in the BODY.
+ 
+ Summary:
+ 
+  (defmethod mymethod [:before | :primary | :after | :static]
+                      ((typearg class-name) arg2 &optional opt &rest rest)
+     \"doc-string\"
+      body)
+ 
+ \(fn METHOD &rest ARGS)" nil t)
+ 
+ (function-put 'defmethod 'doc-string-elt '3)
+ 
+ (make-obsolete 'defmethod 'cl-defmethod '"25.1")
+ 
+ (autoload 'eieio--defgeneric-init-form "eieio-compat" "\
+ 
+ 
+ \(fn METHOD DOC-STRING)" nil nil)
+ 
+ (autoload 'eieio--defmethod "eieio-compat" "\
+ 
+ 
+ \(fn METHOD KIND ARGCLASS CODE)" nil nil)
+ 
+ (autoload 'eieio-defmethod "eieio-compat" "\
+ Obsolete work part of an old version of the `defmethod' macro.
+ 
+ \(fn METHOD ARGS)" nil nil)
+ 
+ (make-obsolete 'eieio-defmethod 'cl-defmethod '"24.1")
+ 
+ (autoload 'eieio-defgeneric "eieio-compat" "\
+ Obsolete work part of an old version of the `defgeneric' macro.
+ 
+ \(fn METHOD DOC-STRING)" nil nil)
+ 
+ (make-obsolete 'eieio-defgeneric 'cl-defgeneric '"24.1")
+ 
+ (autoload 'eieio-defclass "eieio-compat" "\
+ 
+ 
+ \(fn CNAME SUPERCLASSES SLOTS OPTIONS)" nil nil)
+ 
+ (make-obsolete 'eieio-defclass 'eieio-defclass-internal '"25.1")
+ 
+ ;;;***
+ \f
+ 
++>>>>>>> emacs-25
  (provide 'eieio-core)
  
  ;;; eieio-core.el ends here
diff --cc lisp/emacs-lisp/package.el
index fdad84a,f60bff4..0000000
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@@ -1136,52 -1131,56 +1132,147 @@@ buffer is killed afterwards.  Return th
         (insert-file-contents (expand-file-name ,file ,location)))
       ,@body))
  
++<<<<<<< HEAD
 +(cl-defmacro package--with-response-buffer (url &rest body &key async file error-form noerror &allow-other-keys)
 +  "Access URL and run BODY in a buffer containing the response.
 +Point is after the headers when BODY runs.
 +FILE, if provided, is added to URL.
 +URL can be a local file name, which must be absolute.
 +ASYNC, if non-nil, runs the request asynchronously.
 +ERROR-FORM is run only if an error occurs.  If NOERROR is
 +non-nil, don't propagate errors caused by the connection or by
 +BODY (does not apply to errors signaled by ERROR-FORM).
 +
 +\(fn URL &key ASYNC FILE ERROR-FORM NOERROR &rest BODY)"
 +  (declare (indent defun) (debug t))
 +  (while (keywordp (car body))
 +    (setq body (cdr (cdr body))))
 +  (macroexp-let2* nil ((url-1 url))
 +    `(cl-macrolet ((wrap-errors (&rest bodyforms)
 +                                (let ((err (make-symbol "err")))
 +                                  `(condition-case ,err
 +                                       ,(macroexp-progn bodyforms)
 +                                     ,(list 'error ',error-form
 +                                            (list 'unless ',noerror
 +                                                  `(signal (car ,err) (cdr ,err))))))))
 +       (if (string-match-p "\\`https?:" ,url-1)
 +           (let* ((url (concat ,url-1 ,file))
 +                  (callback (lambda (status)
 +                              (let ((b (current-buffer)))
 +                                (unwind-protect (wrap-errors
 +                                                 (when-let ((er (plist-get status :error)))
 +                                                   (error "Error retrieving: %s %S" url er))
 +                                                 (unless (search-forward-regexp "^\r?\n\r?" nil 'noerror)
 +                                                   (error "Error retrieving: %s %S" url "incomprehensible buffer"))
 +                                                 (with-temp-buffer
 +                                                   (url-insert-buffer-contents b url)
 +                                                   (kill-buffer b)
 +                                                   (goto-char (point-min))
 +                                                   ,@body)))))))
 +             (if ,async
 +                 (wrap-errors (url-retrieve url callback nil 'silent))
 +               (with-current-buffer (wrap-errors (url-retrieve-synchronously url 'silent))
 +                 (funcall callback nil))))
 +         (wrap-errors (with-temp-buffer
 +                        (let ((url (expand-file-name ,file ,url-1)))
 +                          (unless (file-name-absolute-p url)
 +                            (error "Location %s is not a url nor an absolute file name" url))
 +                          (insert-file-contents url))
 +                        ,@body))))))
++||||||| merged common ancestors
++(defmacro package--with-work-buffer-async (location file async &rest body)
++  "Run BODY in a buffer containing the contents of FILE at LOCATION.
++If ASYNC is non-nil, and if it is possible, run BODY
++asynchronously.  If an error is encountered and ASYNC is a
++function, call it with no arguments (instead of executing BODY).
++If it returns non-nil, or if it wasn't a function, propagate the
++error.
++
++For a description of the other arguments see
++`package--with-work-buffer'."
++  (declare (indent 3) (debug t))
++  (macroexp-let2* macroexp-copyable-p
++      ((async-1 async)
++       (file-1 file)
++       (location-1 location))
++    `(if (or (not ,async-1)
++             (not (string-match-p "\\`https?:" ,location-1)))
++         (package--with-work-buffer ,location-1 ,file-1 ,@body)
++       ;; This `condition-case' is to catch connection errors.
++       (condition-case error-signal
++           (url-retrieve (concat ,location-1 ,file-1)
++                         ;; This is to catch execution errors.
++                         (lambda (status)
++                           (condition-case error-signal
++                               (progn
++                                 (when-let ((er (plist-get status :error)))
++                                   (error "Error retrieving: %s %S" (concat ,location-1 ,file-1) er))
++                                 (goto-char (point-min))
++                                 (unless (search-forward "\n\n" nil 'noerror)
++                                   (error "Invalid url response in buffer %s"
++                                          (current-buffer)))
++                                 (delete-region (point-min) (point))
++                                 ,@body
++                                 (kill-buffer (current-buffer)))
++                             (error (when (if (functionp ,async-1) (funcall ,async-1) t)
++                                      (signal (car error-signal) (cdr error-signal))))))
++                         nil
++                         'silent)
++         (error (when (if (functionp ,async-1) (funcall ,async-1) t)
++                  (message "Error contacting: %s" (concat ,location-1 ,file-1))
++                  (signal (car error-signal) (cdr error-signal))))))))
++=======
+ (cl-defmacro package--with-response-buffer (url &rest body &key async file error-form noerror &allow-other-keys)
+   "Access URL and run BODY in a buffer containing the response.
+ Point is after the headers when BODY runs.
+ FILE, if provided, is added to URL.
+ URL can be a local file name, which must be absolute.
+ ASYNC, if non-nil, runs the request asynchronously.
+ ERROR-FORM is run only if a connection error occurs.  If NOERROR
+ is non-nil, don't propagate connection errors (does not apply to
+ errors signaled by ERROR-FORM or by BODY).
+ 
+ \(fn URL &key ASYNC FILE ERROR-FORM NOERROR &rest BODY)"
+   (declare (indent defun) (debug t))
+   (while (keywordp (car body))
+     (setq body (cdr (cdr body))))
+   (macroexp-let2* nil ((url-1 url)
+                        (noerror-1 noerror))
+     `(cl-macrolet ((unless-error (body-2 &rest before-body)
+                                  (let ((err (make-symbol "err")))
+                                    `(with-temp-buffer
+                                       (when (condition-case ,err
+                                                 (progn ,@before-body t)
+                                               ,(list 'error ',error-form
+                                                      (list 'unless ',noerror-1
+                                                            `(signal (car ,err) (cdr ,err)))))
+                                         ,@body-2)))))
+        (if (string-match-p "\\`https?:" ,url-1)
+            (let* ((url (concat ,url-1 ,file))
+                   (callback (lambda (status)
+                               (let ((b (current-buffer)))
+                                 (require 'url-handlers)
+                                 (unless-error ,body
+                                               (when-let ((er (plist-get status :error)))
+                                                 (error "Error retrieving: %s %S" url er))
+                                               (with-current-buffer b
+                                                 (goto-char (point-min))
+                                                 (unless (search-forward-regexp "^\r?\n\r?" nil 'noerror)
+                                                   (error "Error retrieving: %s %S" url "incomprehensible buffer")))
+                                               (url-insert-buffer-contents b url)
+                                               (kill-buffer b)
+                                               (goto-char (point-min)))))))
+              (if ,async
+                  (unless-error nil (url-retrieve url callback nil 'silent))
+                (unless-error ,body (url-insert-file-contents url))))
+          (unless-error ,body
+                        (let ((url (expand-file-name ,file ,url-1)))
+                          (unless (file-name-absolute-p url)
+                            (error "Location %s is not a url nor an absolute file name" url))
+                          (insert-file-contents url)))))))
+ 
+ (define-error 'bad-signature "Failed to verify signature")
++>>>>>>> emacs-25
  
  (defun package--check-signature-content (content string &optional sig-file)
    "Check signature CONTENT against STRING.
@@@ -1221,18 -1220,35 +1312,54 @@@ STRING is the string to verify, it defa
  If ASYNC is non-nil, the download of the signature file is
  done asynchronously.
  
- If the signature is verified and CALLBACK was provided, CALLBACK
- is `funcall'ed with the list of good signatures as argument (the
- list can be empty).  If the signatures file is not found,
- CALLBACK is called with no arguments."
+ If the signature does not verify, signal an error.
+ If the signature is verified and CALLBACK was provided, `funcall'
+ CALLBACK with the list of good signatures as argument (the list
+ can be empty).
+ If no signatures file is found, and `package-check-signature' is
+ `allow-unsigned', call CALLBACK with a nil argument.
+ Otherwise, an error is signaled.
+ 
+ UNWIND, if provided, is a function to be called after everything
+ else, even if an error is signaled."
    (let ((sig-file (concat file ".sig"))
          (string (or string (buffer-string))))
++<<<<<<< HEAD
 +    (package--with-response-buffer location :file sig-file
 +      :async async :noerror t
 +      :error-form (when callback (funcall callback nil))
 +      (let ((sig (package--check-signature-content (buffer-substring (point) (point-max)) string sig-file)))
 +        (when callback (funcall callback sig))
 +        sig))))
++||||||| merged common ancestors
++    (condition-case nil
++        (package--with-work-buffer-async
++            location sig-file (when async (or callback t))
++          (let ((sig (package--check-signature-content
++                      (buffer-string) string sig-file)))
++            (when callback (funcall callback sig))
++            sig))
++      (file-error (funcall callback)))))
++
++=======
+     (package--with-response-buffer location :file sig-file
+       :async async :noerror t
+       ;; Connection error is assumed to mean "no sig-file".
+       :error-form (let ((allow-unsigned (eq package-check-signature 'allow-unsigned)))
+                     (when (and callback allow-unsigned)
+                       (funcall callback nil))
+                     (when unwind (funcall unwind))
+                     (unless allow-unsigned
+                       (error "Unsigned file `%s' at %s" file location)))
+       ;; OTOH, an error here means "bad signature", which we never
+       ;; suppress.  (Bug#22089)
+       (unwind-protect
+           (let ((sig (package--check-signature-content (buffer-substring (point) (point-max))
+                                                        string sig-file)))
+             (when callback (funcall callback sig))
+             sig)
+         (when unwind (funcall unwind))))))
++>>>>>>> emacs-25
  \f
  ;;; Packages on Archives
  ;; The following variables store information about packages available
@@@ -1495,19 -1511,12 +1622,41 @@@ similar to an entry in `package-alist'
             location file content async
             ;; This function will be called after signature checking.
             (lambda (&optional good-sigs)
++<<<<<<< HEAD
 +             (unless (or good-sigs (eq package-check-signature 'allow-unsigned))
 +               ;; Even if the sig fails, this download is done, so
 +               ;; remove it from the in-progress list.
 +               (package--update-downloads-in-progress archive)
 +               (error "Unsigned archive `%s'" name))
 +             ;; Either everything worked or we don't mind not signing.
 +             ;; Write out the archives file.
++||||||| merged common ancestors
++             (unless (or good-sigs (eq package-check-signature 'allow-unsigned))
++               ;; Even if the sig fails, this download is done, so
++               ;; remove it from the in-progress list.
++               (package--update-downloads-in-progress archive)
++               (error "Unsigned archive `%s'" name))
++             ;; Write out the archives file.
++=======
++>>>>>>> emacs-25
               (write-region content nil local-file nil 'silent)
               ;; Write out good signatures into archive-contents.signed file.
               (when good-sigs
                 (write-region (mapconcat #'epg-signature-to-string good-sigs "\n")
++<<<<<<< HEAD
 +                             nil (concat local-file ".signed") nil 'silent))
 +             (package--update-downloads-in-progress archive))))))))
++||||||| merged common ancestors
++                             nil (concat local-file ".signed") nil 'silent))
++             (package--update-downloads-in-progress archive)
++             ;; If we got this far, either everything worked or we don't mind
++             ;; not signing, so tell `package--with-work-buffer-async' to not
++             ;; propagate errors.
++             nil)))))))
++=======
+                              nil (concat local-file ".signed") nil 'silent)))
+            (lambda () (package--update-downloads-in-progress archive))))))))
++>>>>>>> emacs-25
  
  (defun package--download-and-read-archives (&optional async)
    "Download descriptions of all `package-archives' and read them.
diff --cc lisp/erc/erc-backend.el
index 1ef2fac,06a23e8..0000000
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@@ -604,21 -621,20 +619,53 @@@ Make sure you are in an ERC buffer whe
  (defsubst erc-server-reconnect-p (event)
    "Return non-nil if ERC should attempt to reconnect automatically.
  EVENT is the message received from the closed connection process."
++<<<<<<< HEAD
 +  (and (not erc-server-quitting)   ;; user issued an explicit quit, give up now
 +       (or erc-server-reconnecting ;; user issued explicit reconnect
 +           ;; otherwise go through the full spectrum of checks:
 +           (and erc-server-auto-reconnect
 +                (not erc-server-banned)
 +                ;; make sure we don't infinitely try to reconnect, unless the
 +                ;; user wants that
 +                (or (eq erc-server-reconnect-attempts t)
 +                    (and (integerp erc-server-reconnect-attempts)
 +                         (< erc-server-reconnect-count
 +                            erc-server-reconnect-attempts)))
 +                (or erc-server-timed-out
 +                    (not (string-match "^deleted" event)))
 +                ;; open-network-stream-nowait error for connection refused
 +                (not (string-match "^failed with code 111" event))))))
++||||||| merged common ancestors
++  (or erc-server-reconnecting
++      (and erc-server-auto-reconnect
++           (not erc-server-banned)
++           (not erc-server-error-occurred)
++           ;; make sure we don't infinitely try to reconnect, unless the
++           ;; user wants that
++           (or (eq erc-server-reconnect-attempts t)
++               (and (integerp erc-server-reconnect-attempts)
++                    (< erc-server-reconnect-count
++                       erc-server-reconnect-attempts)))
++           (or erc-server-timed-out
++               (not (string-match "^deleted" event)))
++           ;; open-network-stream-nowait error for connection refused
++           (not (string-match "^failed with code 111" event)))))
++=======
+   (or erc-server-reconnecting
+       (and erc-server-auto-reconnect
+            (not erc-server-banned)
+            (not erc-server-error-occurred)
+            ;; make sure we don't infinitely try to reconnect, unless the
+            ;; user wants that
+            (or (eq erc-server-reconnect-attempts t)
+                (and (integerp erc-server-reconnect-attempts)
+                     (< erc-server-reconnect-count
+                        erc-server-reconnect-attempts)))
+            (or erc-server-timed-out
+                (not (string-match "^deleted" event)))
+            ;; open-network-stream-nowait error for connection refused
+            (if (string-match "^failed with code 111" event) 'nonblocking t))))
++>>>>>>> emacs-25
  
  (defun erc-process-sentinel-2 (event buffer)
    "Called when `erc-process-sentinel-1' has detected an unexpected disconnect."
@@@ -640,21 -655,16 +686,52 @@@
            ;; reconnect
            (condition-case err
                (progn
++<<<<<<< HEAD
 +                (setq erc-server-reconnecting nil)
 +                (setq erc-server-reconnect-count (1+ erc-server-reconnect-count))
 +                (erc-server-reconnect))
 +            (error (when (buffer-live-p buffer)
 +                     (set-buffer buffer)
 +                     (unless (integerp erc-server-reconnect-attempts)
 +                       (message "%s ... %s"
 +                                "Reconnecting until we succeed"
 +                                "kill the ERC server buffer to stop"))
 +                     (if (numberp erc-server-reconnect-timeout)
 +                         (run-at-time erc-server-reconnect-timeout nil
 +                                      #'erc-process-sentinel-2
 +                                      event buffer)
 +                       (error (concat "`erc-server-reconnect-timeout'"
 +                                      " must be a number")))))))))))
++||||||| merged common ancestors
++                (setq erc-server-reconnecting nil)
++                (erc-server-reconnect)
++                (setq erc-server-reconnect-count 0))
++            (error (when (buffer-live-p buffer)
++                     (set-buffer buffer)
++                     (if (integerp erc-server-reconnect-attempts)
++                         (setq erc-server-reconnect-count
++                               (1+ erc-server-reconnect-count))
++                       (message "%s ... %s"
++                                "Reconnecting until we succeed"
++                                "kill the ERC server buffer to stop"))
++                     (if (numberp erc-server-reconnect-timeout)
++                         (run-at-time erc-server-reconnect-timeout nil
++                                      #'erc-process-sentinel-2
++                                      event buffer)
++                       (error (concat "`erc-server-reconnect-timeout'"
++                                      " must be a number")))))))))))
++=======
+                 (setq erc-server-reconnecting   nil
+                       erc-server-reconnect-count (1+ erc-server-reconnect-count))
+                 (setq delay erc-server-reconnect-timeout)
+                 (run-at-time delay nil
+                              #'erc-server-delayed-reconnect event buffer))
+             (error (unless (integerp erc-server-reconnect-attempts)
+                      (message "%s ... %s"
+                               "Reconnecting until we succeed"
+                               "kill the ERC server buffer to stop"))
+                    (erc-server-delayed-reconnect event buffer))))))))
++>>>>>>> emacs-25
  
  (defun erc-process-sentinel-1 (event buffer)
    "Called when `erc-process-sentinel' has decided that we're disconnecting.
diff --cc lisp/ldefs-boot.el
index 4691056,3d1f6d2..0000000
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@@ -1153,8 -1153,8 +1153,16 @@@ Returns list of symbols and documentati
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "arc-mode" "arc-mode.el" (22085 50883 177731
 +;;;;;;  271000))
++||||||| merged common ancestors
++;;;### (autoloads nil "arc-mode" "arc-mode.el" (22027 46774 644310
++;;;;;;  591000))
++=======
+ ;;;### (autoloads nil "arc-mode" "arc-mode.el" (22086 11929 494062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from arc-mode.el
  
  (autoload 'archive-mode "arc-mode" "\
@@@ -2123,8 -2123,8 +2131,16 @@@ a reflection
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "bookmark" "bookmark.el" (22081 53819 631137
 +;;;;;;  351000))
++||||||| merged common ancestors
++;;;### (autoloads nil "bookmark" "bookmark.el" (22011 58553 109858
++;;;;;;  469000))
++=======
+ ;;;### (autoloads nil "bookmark" "bookmark.el" (22086 11929 498062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from bookmark.el
   (define-key ctl-x-r-map "b" 'bookmark-jump)
   (define-key ctl-x-r-map "m" 'bookmark-set)
@@@ -2929,7 -2929,7 +2945,13 @@@ from the cursor position
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "calc" "calc/calc.el" (22073 59712 746803 451000))
++||||||| merged common ancestors
++;;;### (autoloads nil "calc" "calc/calc.el" (22039 37934 737599 199000))
++=======
+ ;;;### (autoloads nil "calc" "calc/calc.el" (22086 11929 522062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from calc/calc.el
   (define-key ctl-x-map "*" 'calc-dispatch)
  
@@@ -3015,8 -3015,8 +3037,16 @@@ See Info node `(calc)Defining Functions
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (22073 59712
 +;;;;;;  730803 451000))
++||||||| merged common ancestors
++;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (21670 32330
++;;;;;;  885624 725000))
++=======
+ ;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (22086 11929
+ ;;;;;;  518062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from calc/calc-undo.el
  
  (autoload 'calc-undo "calc-undo" "\
@@@ -3026,8 -3026,8 +3056,16 @@@
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "calculator" "calculator.el" (22109 33223 416655
 +;;;;;;  811000))
++||||||| merged common ancestors
++;;;### (autoloads nil "calculator" "calculator.el" (21993 28595 966597
++;;;;;;  473000))
++=======
+ ;;;### (autoloads nil "calculator" "calculator.el" (22092 27717 520268
+ ;;;;;;  464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from calculator.el
  
  (autoload 'calculator "calculator" "\
@@@ -3100,8 -3100,8 +3138,16 @@@ it fails
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22084
 +;;;;;;  30014 95762 3000))
++||||||| merged common ancestors
++;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22011
++;;;;;;  58553 881858 469000))
++=======
+ ;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22108
+ ;;;;;;  15942 570032 987000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from progmodes/cc-engine.el
  
  (autoload 'c-guess-basic-syntax "cc-engine" "\
@@@ -3210,8 -3210,8 +3256,16 @@@ the absolute file name of the file if S
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22084 30014
 +;;;;;;  99762 3000))
++||||||| merged common ancestors
++;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22040 58794
++;;;;;;  688259 771000))
++=======
+ ;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22101 42694
+ ;;;;;;  157526 804000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from progmodes/cc-mode.el
  
  (autoload 'c-initialize-cc-mode "cc-mode" "\
@@@ -5148,8 -5154,8 +5208,16 @@@ Enable CUA selection mode without the C
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (22087 6213
 +;;;;;;  764351 952000))
++||||||| merged common ancestors
++;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (21670 32330
++;;;;;;  885624 725000))
++=======
+ ;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (22087 9807
+ ;;;;;;  178279 951000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from emulation/cua-rect.el
  
  (autoload 'cua-rectangle-mark-mode "cua-rect" "\
@@@ -5181,8 -5187,8 +5249,16 @@@ entering the area covered by the text-p
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "cus-edit" "cus-edit.el" (22087 6213 748351
 +;;;;;;  952000))
++||||||| merged common ancestors
++;;;### (autoloads nil "cus-edit" "cus-edit.el" (21993 28596 22597
++;;;;;;  473000))
++=======
+ ;;;### (autoloads nil "cus-edit" "cus-edit.el" (22086 11929 590062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from cus-edit.el
  
  (defvar custom-browse-sort-alphabetically nil "\
@@@ -6398,8 -6404,8 +6474,16 @@@ This requires the external program `dif
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22087 6213 816351
 +;;;;;;  952000))
++||||||| merged common ancestors
++;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22011 58554
++;;;;;;  89858 469000))
++=======
+ ;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22087 9807 430279
+ ;;;;;;  951000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from vc/diff-mode.el
  
  (autoload 'diff-mode "diff-mode" "\
@@@ -6442,7 -6448,7 +6526,13 @@@ Optional arguments are passed to `dig-i
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "dired" "dired.el" (22085 50883 181731 271000))
++||||||| merged common ancestors
++;;;### (autoloads nil "dired" "dired.el" (22067 17342 118157 143000))
++=======
+ ;;;### (autoloads nil "dired" "dired.el" (22086 11929 598062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from dired.el
  
  (defvar dired-listing-switches (purecopy "-al") "\
@@@ -8149,15 -8155,15 +8239,31 @@@ BUFFER is put back into its original ma
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (22102 59970
 +;;;;;;  680776 103000))
++||||||| merged common ancestors
++;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (21998 46624
++;;;;;;  898024 649000))
++=======
+ ;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (22086 11929
+ ;;;;;;  674062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from emacs-lisp/eieio.el
  (push (purecopy '(eieio 1 4)) package--builtin-versions)
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22102
 +;;;;;;  59970 668776 103000))
++||||||| merged common ancestors
++;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22067
++;;;;;;  17342 150157 143000))
++=======
+ ;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22086
+ ;;;;;;  11929 670062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from emacs-lisp/eieio-core.el
  (push (purecopy '(eieio-core 1 4)) package--builtin-versions)
  
@@@ -8441,7 -8447,7 +8547,13 @@@ Commands
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "epa" "epa.el" (22093 44991 758016 539000))
++||||||| merged common ancestors
++;;;### (autoloads nil "epa" "epa.el" (21980 16567 517544 893000))
++=======
+ ;;;### (autoloads nil "epa" "epa.el" (22086 11929 698062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from epa.el
  
  (autoload 'epa-list-keys "epa" "\
@@@ -8754,7 -8760,7 +8866,13 @@@ if ARG is omitted or nil
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "epg" "epg.el" (22076 35900 86633 595000))
++||||||| merged common ancestors
++;;;### (autoloads nil "epg" "epg.el" (22011 58553 461858 469000))
++=======
+ ;;;### (autoloads nil "epg" "epg.el" (22092 27717 648268 464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from epg.el
  (push (purecopy '(epg 1 0 0)) package--builtin-versions)
  
@@@ -9163,8 -9169,8 +9281,16 @@@ with args, toggle notify status of peop
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (22079
 +;;;;;;  12092 327174 267000))
++||||||| merged common ancestors
++;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (21855
++;;;;;;  576 787951 155000))
++=======
+ ;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (22086
+ ;;;;;;  11929 710062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from erc/erc-pcomplete.el
   (autoload 'erc-completion-mode "erc-pcomplete" nil t)
  
@@@ -9423,8 -9429,8 +9549,16 @@@ corresponding to a successful execution
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "etags" "progmodes/etags.el" (22087 6213 768351
 +;;;;;;  952000))
++||||||| merged common ancestors
++;;;### (autoloads nil "etags" "progmodes/etags.el" (21998 46517 206024
++;;;;;;  649000))
++=======
+ ;;;### (autoloads nil "etags" "progmodes/etags.el" (22105 39773 947886
+ ;;;;;;  896000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from progmodes/etags.el
  
  (defvar tags-file-name nil "\
@@@ -9734,10 -9740,15 +9868,24 @@@ for \\[find-tag] (which see)
  
  \(fn)" t nil)
  
++<<<<<<< HEAD
++||||||| merged common ancestors
++(autoload 'etags-xref-find "etags" "\
++
++
++\(fn ACTION ID)" nil nil)
++
++=======
+ (autoload 'etags--xref-backend "etags" "\
+ 
+ 
+ \(fn)" nil nil)
+ 
++>>>>>>> emacs-25
  ;;;***
  \f
- ;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (21862
- ;;;;;;  60209 768658 443000))
+ ;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (22086
+ ;;;;;;  11929 894062 731000))
  ;;; Generated autoloads from language/ethio-util.el
  
  (autoload 'setup-ethiopic-environment-internal "ethio-util" "\
@@@ -10182,8 -10193,8 +10330,16 @@@ This is used only in conjunction with `
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "f90" "progmodes/f90.el" (22071 17982 246921
 +;;;;;;  531000))
++||||||| merged common ancestors
++;;;### (autoloads nil "f90" "progmodes/f90.el" (22026 25907 635502
++;;;;;;  692000))
++=======
+ ;;;### (autoloads nil "f90" "progmodes/f90.el" (22092 27718 152268
+ ;;;;;;  464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from progmodes/f90.el
  
  (autoload 'f90-mode "f90" "\
@@@ -10586,8 -10597,8 +10742,16 @@@ the name is considered already unique; 
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "filenotify" "filenotify.el" (22102 59970 680776
 +;;;;;;  103000))
++||||||| merged common ancestors
++;;;### (autoloads nil "filenotify" "filenotify.el" (22069 62806 562804
++;;;;;;  836000))
++=======
+ ;;;### (autoloads nil "filenotify" "filenotify.el" (22086 11929 734062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from filenotify.el
  
  (autoload 'file-notify-handle-event "filenotify" "\
@@@ -10602,7 -10613,8 +10766,14 @@@ Otherwise, signal a `file-notify-error'
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "files-x" "files-x.el" (22083 9150 136915 960000))
++||||||| merged common ancestors
++;;;### (autoloads nil "files-x" "files-x.el" (21998 46517 38024 649000))
++=======
+ ;;;### (autoloads nil "files-x" "files-x.el" (22086 11929 734062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from files-x.el
  
  (autoload 'add-file-local-variable "files-x" "\
@@@ -12644,8 -12656,8 +12815,16 @@@ Declare back end NAME with ABILITIES a
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (22080 32958
 +;;;;;;  2580 652000))
++||||||| merged common ancestors
++;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21993 28596
++;;;;;;  110597 473000))
++=======
+ ;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (22086 11929
+ ;;;;;;  802062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from gnus/gnus-sum.el
  
  (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\
@@@ -13383,8 -13395,8 +13562,16 @@@ different regions.  With numeric argume
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "help-fns" "help-fns.el" (22083 9150 144915
 +;;;;;;  960000))
++||||||| merged common ancestors
++;;;### (autoloads nil "help-fns" "help-fns.el" (22067 17342 162157
++;;;;;;  143000))
++=======
+ ;;;### (autoloads nil "help-fns" "help-fns.el" (22101 42694 89526
+ ;;;;;;  804000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from help-fns.el
  
  (autoload 'describe-function "help-fns" "\
@@@ -13601,7 -13616,7 +13791,13 @@@ Provide help for current mode
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "hexl" "hexl.el" (22079 12092 331174 267000))
++||||||| merged common ancestors
++;;;### (autoloads nil "hexl" "hexl.el" (22056 47028 723798 795000))
++=======
+ ;;;### (autoloads nil "hexl" "hexl.el" (22086 11929 858062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from hexl.el
  
  (autoload 'hexl-mode "hexl" "\
@@@ -15463,8 -15478,8 +15659,16 @@@ An image file is one whose name has an 
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "image-mode" "image-mode.el" (22091 3267 895306
 +;;;;;;  892000))
++||||||| merged common ancestors
++;;;### (autoloads nil "image-mode" "image-mode.el" (21716 41663 456033
++;;;;;;  27000))
++=======
+ ;;;### (autoloads nil "image-mode" "image-mode.el" (22091 6875 287217
+ ;;;;;;  891000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from image-mode.el
  
  (autoload 'image-mode "image-mode" "\
@@@ -16616,7 -16631,7 +16820,13 @@@ locally, like so
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "json" "json.el" (22085 50883 185731 271000))
++||||||| merged common ancestors
++;;;### (autoloads nil "json" "json.el" (22064 41137 993468 395000))
++=======
+ ;;;### (autoloads nil "json" "json.el" (22101 42694 105526 804000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from json.el
  (push (purecopy '(json 1 4)) package--builtin-versions)
  
@@@ -17026,7 -17041,7 +17236,13 @@@ generations (this defaults to 1)
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "linum" "linum.el" (22092 24132 128832 464000))
++||||||| merged common ancestors
++;;;### (autoloads nil "linum" "linum.el" (21855 577 57945 485000))
++=======
+ ;;;### (autoloads nil "linum" "linum.el" (22086 11929 930062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from linum.el
  (push (purecopy '(linum 0 9 24)) package--builtin-versions)
  
@@@ -17849,8 -17864,8 +18065,16 @@@ Default bookmark handler for Man buffer
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "map" "emacs-lisp/map.el" (22084 30014 55762
 +;;;;;;  3000))
++||||||| merged common ancestors
++;;;### (autoloads nil "map" "emacs-lisp/map.el" (22063 20273 739891
++;;;;;;  395000))
++=======
+ ;;;### (autoloads nil "map" "emacs-lisp/map.el" (22086 11929 678062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from emacs-lisp/map.el
  (push (purecopy '(map 1 0)) package--builtin-versions)
  
@@@ -18573,8 -18589,8 +18798,16 @@@ If NO-DISPLAY is nil, display it. Other
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (22084 30014 55762
 +;;;;;;  3000))
++||||||| merged common ancestors
++;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (21670 32331 385639
++;;;;;;  720000))
++=======
+ ;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (22086 11929 818062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from gnus/mm-url.el
  
  (autoload 'mm-url-insert-file-contents "mm-url" "\
@@@ -18808,7 -18824,7 +19041,13 @@@ To test this function, evaluate
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "mpc" "mpc.el" (22093 44991 770016 539000))
++||||||| merged common ancestors
++;;;### (autoloads nil "mpc" "mpc.el" (22050 8240 94934 108000))
++=======
+ ;;;### (autoloads nil "mpc" "mpc.el" (22105 39773 859886 896000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from mpc.el
  
  (autoload 'mpc "mpc" "\
@@@ -20375,8 -20391,8 +20614,16 @@@ See the command `outline-mode' for mor
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "package" "emacs-lisp/package.el" (22104 15298
 +;;;;;;  466671 488000))
++||||||| merged common ancestors
++;;;### (autoloads nil "package" "emacs-lisp/package.el" (22059 23214
++;;;;;;  33660 839000))
++=======
+ ;;;### (autoloads nil "package" "emacs-lisp/package.el" (22092 27717
+ ;;;;;;  636268 464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from emacs-lisp/package.el
  (push (purecopy '(package 1 0 1)) package--builtin-versions)
  
@@@ -20603,8 -20619,8 +20850,16 @@@ Check if KEY is in the cache
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22073 59712
 +;;;;;;  774803 451000))
++||||||| merged common ancestors
++;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22026 25907
++;;;;;;  583502 692000))
++=======
+ ;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22091 6875 247217
+ ;;;;;;  891000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from emacs-lisp/pcase.el
  
  (autoload 'pcase "pcase" "\
@@@ -21142,8 -21158,8 +21397,16 @@@ they are not by default assigned to key
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "pinentry" "net/pinentry.el" (22076 35900 90633
 +;;;;;;  595000))
++||||||| merged common ancestors
++;;;### (autoloads nil "pinentry" "net/pinentry.el" (21972 22452 338264
++;;;;;;  357000))
++=======
+ ;;;### (autoloads nil "pinentry" "net/pinentry.el" (22086 11930 2062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from net/pinentry.el
  (push (purecopy '(pinentry 0 1)) package--builtin-versions)
  
@@@ -21855,7 -21871,7 +22118,13 @@@ are both set to t
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "proced" "proced.el" (22085 50883 209731 271000))
++||||||| merged common ancestors
++;;;### (autoloads nil "proced" "proced.el" (21998 46517 190024 649000))
++=======
+ ;;;### (autoloads nil "proced" "proced.el" (22092 27718 128268 464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from proced.el
  
  (autoload 'proced "proced" "\
@@@ -21902,30 -21918,30 +22171,64 @@@ Open profile FILENAME
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "project" "progmodes/project.el" (22083 9150
 +;;;;;;  180915 960000))
++||||||| merged common ancestors
++;;;### (autoloads nil "project" "progmodes/project.el" (21960 31281
++;;;;;;  344212 153000))
++=======
+ ;;;### (autoloads nil "project" "progmodes/project.el" (22088 30660
+ ;;;;;;  79412 927000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from progmodes/project.el
  
  (autoload 'project-current "project" "\
  Return the project instance in DIR or `default-directory'.
++<<<<<<< HEAD
 +When no project found in DIR, and MAYBE-PROMPT is non-nil, ask
 +the user for a different directory to look in.
++||||||| merged common ancestors
++=======
+ When no project found in DIR, and MAYBE-PROMPT is non-nil, ask
+ the user for a different directory to look in.
+ 
+ \(fn &optional MAYBE-PROMPT DIR)" nil nil)
+ 
+ (autoload 'project-find-regexp "project" "\
+ Find all matches for REGEXP in the current project.
+ With \\[universal-argument] prefix, you can specify the directory
+ to search in, and the file name pattern to search for.
++>>>>>>> emacs-25
 +
++<<<<<<< HEAD
 +\(fn &optional MAYBE-PROMPT DIR)" nil nil)
 +
 +(autoload 'project-find-regexp "project" "\
 +Find all matches for REGEXP in the current project.
 +With \\[universal-argument] prefix, you can specify the directory
 +to search in, and the file name pattern to search for.
 +
 +\(fn REGEXP)" t nil)
 +
 +(autoload 'project-or-libraries-find-regexp "project" "\
 +Find all matches for REGEXP in the current project or libraries.
 +With \\[universal-argument] prefix, you can specify the file name
 +pattern to search for.
  
  \(fn REGEXP)" t nil)
++||||||| merged common ancestors
++\(fn &optional DIR)" nil nil)
++=======
++\(fn REGEXP)" t nil)
+ 
+ (autoload 'project-or-libraries-find-regexp "project" "\
+ Find all matches for REGEXP in the current project or libraries.
+ With \\[universal-argument] prefix, you can specify the file name
+ pattern to search for.
+ 
+ \(fn REGEXP)" t nil)
++>>>>>>> emacs-25
  
  ;;;***
  \f
@@@ -22711,7 -22727,7 +23014,13 @@@ were operated on recently
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "rect" "rect.el" (22087 6213 796351 952000))
++||||||| merged common ancestors
++;;;### (autoloads nil "rect" "rect.el" (21803 38823 44085 519000))
++=======
+ ;;;### (autoloads nil "rect" "rect.el" (22087 9807 394279 951000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from rect.el
  
  (autoload 'delete-rectangle "rect" "\
@@@ -24532,8 -24548,8 +24841,16 @@@ Like `mail' command, but display mail b
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22084 30014 55762
 +;;;;;;  3000))
++||||||| merged common ancestors
++;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22065 61995 842407
++;;;;;;  852000))
++=======
+ ;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22086 11929 686062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from emacs-lisp/seq.el
  (push (purecopy '(seq 2 3)) package--builtin-versions)
  
@@@ -24917,7 -24933,7 +25234,13 @@@ Otherwise, one argument `-i' is passed 
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "shr" "net/shr.el" (22085 50883 205731 271000))
++||||||| merged common ancestors
++;;;### (autoloads nil "shr" "net/shr.el" (22047 32042 328736 723000))
++=======
+ ;;;### (autoloads nil "shr" "net/shr.el" (22087 9807 382279 951000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from net/shr.el
  
  (autoload 'shr-render-region "shr" "\
@@@ -25261,8 -25277,8 +25584,16 @@@ then `snmpv2-mode-hook'
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "soap-client" "net/soap-client.el" (22084 30014
 +;;;;;;  59762 3000))
++||||||| merged common ancestors
++;;;### (autoloads nil "soap-client" "net/soap-client.el" (22061 64938
++;;;;;;  516287 963000))
++=======
+ ;;;### (autoloads nil "soap-client" "net/soap-client.el" (22092 27717
+ ;;;;;;  988268 464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from net/soap-client.el
  (push (purecopy '(soap-client 3 0 2)) package--builtin-versions)
  
@@@ -27228,8 -27244,8 +27559,16 @@@ tetris-mode keybindings
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22076 35900
 +;;;;;;  118633 595000))
++||||||| merged common ancestors
++;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22064 41138
++;;;;;;  13468 395000))
++=======
+ ;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22092 27718
+ ;;;;;;  524268 464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from textmodes/tex-mode.el
  
  (defvar tex-shell-file-name nil "\
@@@ -28511,7 -28527,7 +28850,13 @@@ the output buffer or changing the windo
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "tramp" "net/tramp.el" (22083 9150 180915 960000))
++||||||| merged common ancestors
++;;;### (autoloads nil "tramp" "net/tramp.el" (22064 41138 9468 395000))
++=======
+ ;;;### (autoloads nil "tramp" "net/tramp.el" (22092 27718 8268 464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from net/tramp.el
  
  (defvar tramp-mode t "\
@@@ -29178,8 -29194,8 +29523,16 @@@ overriding the value of `url-gateway-me
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22089
 +;;;;;;  47939 367694 315000))
++||||||| merged common ancestors
++;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22065
++;;;;;;  61995 878407 852000))
++=======
+ ;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22089
+ ;;;;;;  51528 372929 316000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from url/url-handlers.el
  
  (defvar url-handler-mode nil "\
@@@ -29732,7 -29748,7 +30085,13 @@@ If FILE-NAME is non-nil, save the resul
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "vc" "vc/vc.el" (22083 9150 184915 960000))
++||||||| merged common ancestors
++;;;### (autoloads nil "vc" "vc/vc.el" (22014 34736 871840 613000))
++=======
+ ;;;### (autoloads nil "vc" "vc/vc.el" (22093 48588 592393 539000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from vc/vc.el
  
  (defvar vc-checkout-hook nil "\
@@@ -30084,8 -30100,8 +30443,16 @@@ should be applied to the background or 
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22081 53819 655137
 +;;;;;;  351000))
++||||||| merged common ancestors
++;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22064 41138 13468
++;;;;;;  395000))
++=======
+ ;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22086 11930 382062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from vc/vc-bzr.el
  
  (defconst vc-bzr-admin-dirname ".bzr" "\
@@@ -30113,8 -30129,8 +30480,16 @@@ Name of the format file in a .bzr direc
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22085 50883 245731
 +;;;;;;  271000))
++||||||| merged common ancestors
++;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22055 26158 818447
++;;;;;;  352000))
++=======
+ ;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22086 11930 386062
+ ;;;;;;  731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from vc/vc-dir.el
  
  (autoload 'vc-dir "vc-dir" "\
@@@ -30162,8 -30178,8 +30537,16 @@@ case, and the process object in the asy
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22081 53819 659137
 +;;;;;;  351000))
++||||||| merged common ancestors
++;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22064 41138 17468
++;;;;;;  395000))
++=======
+ ;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22097 45637 495432
+ ;;;;;;  455000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from vc/vc-git.el
   (defun vc-git-registered (file)
    "Return non-nil if FILE is registered with git."
@@@ -30174,7 -30190,7 +30557,13 @@@
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22081 53819 659137 351000))
++||||||| merged common ancestors
++;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22064 41138 21468 395000))
++=======
+ ;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22097 45637 503432 455000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from vc/vc-hg.el
   (defun vc-hg-registered (file)
    "Return non-nil if FILE is registered with hg."
@@@ -30249,8 -30265,8 +30638,16 @@@ For a description of possible values, s
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22081 53819 663137
 +;;;;;;  351000))
++||||||| merged common ancestors
++;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22064 41138 21468
++;;;;;;  395000))
++=======
+ ;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22101 42694 157526
+ ;;;;;;  804000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from vc/vc-svn.el
   (defun vc-svn-registered (f)
    (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
@@@ -30323,7 -30339,7 +30720,13 @@@ Key bindings
  ;;;***
  \f
  ;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el"
++<<<<<<< HEAD
 +;;;;;;  (22097 42046 455599 456000))
++||||||| merged common ancestors
++;;;;;;  (22015 55603 833705 321000))
++=======
+ ;;;;;;  (22092 27718 348268 464000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from progmodes/verilog-mode.el
  
  (autoload 'verilog-mode "verilog-mode" "\
@@@ -31462,8 -31478,8 +31865,16 @@@ Please submit bug reports and other fee
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "which-func" "progmodes/which-func.el" (22109
 +;;;;;;  33223 420655 811000))
++||||||| merged common ancestors
++;;;### (autoloads nil "which-func" "progmodes/which-func.el" (21986
++;;;;;;  55346 292512 613000))
++=======
+ ;;;### (autoloads nil "which-func" "progmodes/which-func.el" (22086
+ ;;;;;;  11930 242062 731000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from progmodes/which-func.el
   (put 'which-func-format 'risky-local-variable t)
   (put 'which-func-current 'risky-local-variable t)
@@@ -32134,10 -32150,15 +32545,23 @@@ If LIMIT is non-nil, then do not consid
  
  ;;;***
  \f
++<<<<<<< HEAD
 +;;;### (autoloads nil "xref" "progmodes/xref.el" (22087 6213 784351
 +;;;;;;  952000))
++||||||| merged common ancestors
++;;;### (autoloads nil "xref" "progmodes/xref.el" (21993 28596 366597
++;;;;;;  473000))
++=======
+ ;;;### (autoloads nil "xref" "progmodes/xref.el" (22105 39773 959886
+ ;;;;;;  896000))
++>>>>>>> emacs-25
  ;;; Generated autoloads from progmodes/xref.el
  
+ (autoload 'xref-find-backend "xref" "\
+ 
+ 
+ \(fn)" nil nil)
+ 
  (autoload 'xref-pop-marker-stack "xref" "\
  Pop back to where \\[xref-find-definitions] was last invoked.
  
@@@ -32314,76 -32335,69 +32738,212 @@@ Zone out, completely
  ;;;;;;  "cedet/srecode/el.el" "cedet/srecode/expandproto.el" "cedet/srecode/extract.el"
  ;;;;;;  "cedet/srecode/fields.el" "cedet/srecode/filters.el" "cedet/srecode/find.el"
  ;;;;;;  "cedet/srecode/getset.el" "cedet/srecode/insert.el" "cedet/srecode/java.el"
++<<<<<<< HEAD
 +;;;;;;  "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el"
 +;;;;;;  "cedet/srecode/semantic.el" "cedet/srecode/srt.el" "cedet/srecode/table.el"
 +;;;;;;  "cedet/srecode/template.el" "cedet/srecode/texi.el" "cus-dep.el"
 +;;;;;;  "dframe.el" "dired-aux.el" "dired-x.el" "dom.el" "dos-fns.el"
 +;;;;;;  "dos-vars.el" "dos-w32.el" "dynamic-setting.el" "emacs-lisp/avl-tree.el"
 +;;;;;;  "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el"
 +;;;;;;  "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el"
 +;;;;;;  "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-compat.el"
 +;;;;;;  "emacs-lisp/eieio-custom.el" "emacs-lisp/eieio-datadebug.el"
 +;;;;;;  "emacs-lisp/eieio-opt.el" "emacs-lisp/eieio-speedbar.el"
 +;;;;;;  "emacs-lisp/generator.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el"
 +;;;;;;  "emacs-lisp/smie.el" "emacs-lisp/subr-x.el" "emacs-lisp/tcover-ses.el"
 +;;;;;;  "emacs-lisp/tcover-unsafep.el" "emulation/cua-gmrk.el" "emulation/edt-lk201.el"
 +;;;;;;  "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el"
 +;;;;;;  "emulation/viper-cmd.el" "emulation/viper-ex.el" "emulation/viper-init.el"
 +;;;;;;  "emulation/viper-keym.el" "emulation/viper-macs.el" "emulation/viper-mous.el"
 +;;;;;;  "emulation/viper-util.el" "erc/erc-backend.el" "erc/erc-goodies.el"
 +;;;;;;  "erc/erc-ibuffer.el" "erc/erc-lang.el" "eshell/em-alias.el"
 +;;;;;;  "eshell/em-banner.el" "eshell/em-basic.el" "eshell/em-cmpl.el"
 +;;;;;;  "eshell/em-dirs.el" "eshell/em-glob.el" "eshell/em-hist.el"
 +;;;;;;  "eshell/em-ls.el" "eshell/em-pred.el" "eshell/em-prompt.el"
 +;;;;;;  "eshell/em-rebind.el" "eshell/em-script.el" "eshell/em-smart.el"
 +;;;;;;  "eshell/em-term.el" "eshell/em-tramp.el" "eshell/em-unix.el"
 +;;;;;;  "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el"
 +;;;;;;  "eshell/esh-ext.el" "eshell/esh-groups.el" "eshell/esh-io.el"
 +;;;;;;  "eshell/esh-module.el" "eshell/esh-opt.el" "eshell/esh-proc.el"
 +;;;;;;  "eshell/esh-util.el" "eshell/esh-var.el" "ezimage.el" "format-spec.el"
 +;;;;;;  "fringe.el" "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el"
 +;;;;;;  "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" "gnus/gnus-cloud.el"
 +;;;;;;  "gnus/gnus-cus.el" "gnus/gnus-demon.el" "gnus/gnus-dup.el"
 +;;;;;;  "gnus/gnus-eform.el" "gnus/gnus-ems.el" "gnus/gnus-icalendar.el"
 +;;;;;;  "gnus/gnus-int.el" "gnus/gnus-logic.el" "gnus/gnus-mh.el"
 +;;;;;;  "gnus/gnus-salt.el" "gnus/gnus-score.el" "gnus/gnus-srvr.el"
 +;;;;;;  "gnus/gnus-topic.el" "gnus/gnus-undo.el" "gnus/gnus-util.el"
 +;;;;;;  "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el"
 +;;;;;;  "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el" "gnus/mail-prsvr.el"
 +;;;;;;  "gnus/mail-source.el" "gnus/mailcap.el" "gnus/messcompat.el"
 +;;;;;;  "gnus/mm-archive.el" "gnus/mm-bodies.el" "gnus/mm-decode.el"
 +;;;;;;  "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el"
 +;;;;;;  "gnus/nnagent.el" "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el"
 +;;;;;;  "gnus/nneething.el" "gnus/nngateway.el" "gnus/nnheader.el"
 +;;;;;;  "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el" "gnus/nnmaildir.el"
 +;;;;;;  "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el" "gnus/nnnil.el"
 +;;;;;;  "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el" "gnus/nnspool.el"
 +;;;;;;  "gnus/nntp.el" "gnus/nnvirtual.el" "gnus/nnweb.el" "gnus/registry.el"
 +;;;;;;  "gnus/rfc1843.el" "gnus/rfc2045.el" "gnus/rfc2047.el" "gnus/rfc2231.el"
 +;;;;;;  "gnus/rtree.el" "gnus/sieve-manage.el" "gnus/smime.el" "gnus/spam-stat.el"
 +;;;;;;  "gnus/spam-wash.el" "hex-util.el" "hfy-cmap.el" "ibuf-ext.el"
 +;;;;;;  "international/charscript.el" "international/fontset.el"
 +;;;;;;  "international/iso-ascii.el" "international/ja-dic-cnv.el"
 +;;;;;;  "international/ja-dic-utl.el" "international/ogonek.el" "international/uni-bidi.el"
 +;;;;;;  "international/uni-brackets.el" "international/uni-category.el"
 +;;;;;;  "international/uni-combining.el" "international/uni-comment.el"
 +;;;;;;  "international/uni-decimal.el" "international/uni-decomposition.el"
 +;;;;;;  "international/uni-digit.el" "international/uni-lowercase.el"
 +;;;;;;  "international/uni-mirrored.el" "international/uni-name.el"
 +;;;;;;  "international/uni-numeric.el" "international/uni-old-name.el"
 +;;;;;;  "international/uni-titlecase.el" "international/uni-uppercase.el"
 +;;;;;;  "kermit.el" "language/hanja-util.el" "language/thai-word.el"
 +;;;;;;  "ldefs-boot.el" "leim/quail/arabic.el" "leim/quail/croatian.el"
 +;;;;;;  "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el" "leim/quail/czech.el"
 +;;;;;;  "leim/quail/ethiopic.el" "leim/quail/georgian.el" "leim/quail/greek.el"
 +;;;;;;  "leim/quail/hanja-jis.el" "leim/quail/hanja.el" "leim/quail/hanja3.el"
 +;;;;;;  "leim/quail/hebrew.el" "leim/quail/indian.el" "leim/quail/ipa-praat.el"
 +;;;;;;  "leim/quail/ipa.el" "leim/quail/japanese.el" "leim/quail/lao.el"
 +;;;;;;  "leim/quail/latin-alt.el" "leim/quail/latin-ltx.el" "leim/quail/latin-post.el"
 +;;;;;;  "leim/quail/latin-pre.el" "leim/quail/lrt.el" "leim/quail/persian.el"
 +;;;;;;  "leim/quail/py-punct.el" "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el"
 +;;;;;;  "leim/quail/sgml-input.el" "leim/quail/sisheng.el" "leim/quail/slovak.el"
 +;;;;;;  "leim/quail/symbol-ksc.el" "leim/quail/thai.el" "leim/quail/tibetan.el"
++||||||| merged common ancestors
++;;;;;;  "cedet/srecode/map.el" "cedet/srecode/mode.el" "cedet/srecode/semantic.el"
++;;;;;;  "cedet/srecode/srt.el" "cedet/srecode/table.el" "cedet/srecode/template.el"
++;;;;;;  "cedet/srecode/texi.el" "cus-dep.el" "dframe.el" "dired-aux.el"
++;;;;;;  "dired-x.el" "dom.el" "dos-fns.el" "dos-vars.el" "dos-w32.el"
++;;;;;;  "dynamic-setting.el" "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el"
++;;;;;;  "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el" "emacs-lisp/cl-macs.el"
++;;;;;;  "emacs-lisp/cl-seq.el" "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el"
++;;;;;;  "emacs-lisp/eieio-compat.el" "emacs-lisp/eieio-custom.el"
++;;;;;;  "emacs-lisp/eieio-datadebug.el" "emacs-lisp/eieio-opt.el"
++;;;;;;  "emacs-lisp/eieio-speedbar.el" "emacs-lisp/generator.el"
++;;;;;;  "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/smie.el"
++;;;;;;  "emacs-lisp/subr-x.el" "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el"
++;;;;;;  "emulation/cua-gmrk.el" "emulation/edt-lk201.el" "emulation/edt-mapper.el"
++;;;;;;  "emulation/edt-pc.el" "emulation/edt-vt100.el" "emulation/viper-cmd.el"
++;;;;;;  "emulation/viper-ex.el" "emulation/viper-init.el" "emulation/viper-keym.el"
++;;;;;;  "emulation/viper-macs.el" "emulation/viper-mous.el" "emulation/viper-util.el"
++;;;;;;  "erc/erc-backend.el" "erc/erc-goodies.el" "erc/erc-ibuffer.el"
++;;;;;;  "erc/erc-lang.el" "eshell/em-alias.el" "eshell/em-banner.el"
++;;;;;;  "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el"
++;;;;;;  "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el"
++;;;;;;  "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el"
++;;;;;;  "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el"
++;;;;;;  "eshell/em-tramp.el" "eshell/em-unix.el" "eshell/em-xtra.el"
++;;;;;;  "eshell/esh-arg.el" "eshell/esh-cmd.el" "eshell/esh-ext.el"
++;;;;;;  "eshell/esh-io.el" "eshell/esh-module.el" "eshell/esh-opt.el"
++;;;;;;  "eshell/esh-proc.el" "eshell/esh-util.el" "eshell/esh-var.el"
++;;;;;;  "ezimage.el" "format-spec.el" "fringe.el" "generic-x.el"
++;;;;;;  "gnus/compface.el" "gnus/gnus-async.el" "gnus/gnus-bcklg.el"
++;;;;;;  "gnus/gnus-cite.el" "gnus/gnus-cloud.el" "gnus/gnus-cus.el"
++;;;;;;  "gnus/gnus-demon.el" "gnus/gnus-dup.el" "gnus/gnus-eform.el"
++;;;;;;  "gnus/gnus-ems.el" "gnus/gnus-icalendar.el" "gnus/gnus-int.el"
++;;;;;;  "gnus/gnus-logic.el" "gnus/gnus-mh.el" "gnus/gnus-salt.el"
++;;;;;;  "gnus/gnus-score.el" "gnus/gnus-srvr.el" "gnus/gnus-topic.el"
++;;;;;;  "gnus/gnus-undo.el" "gnus/gnus-util.el" "gnus/gnus-uu.el"
++;;;;;;  "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el" "gnus/legacy-gnus-agent.el"
++;;;;;;  "gnus/mail-parse.el" "gnus/mail-prsvr.el" "gnus/mail-source.el"
++;;;;;;  "gnus/mailcap.el" "gnus/messcompat.el" "gnus/mm-archive.el"
++;;;;;;  "gnus/mm-bodies.el" "gnus/mm-decode.el" "gnus/mm-util.el"
++;;;;;;  "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el" "gnus/nnagent.el"
++;;;;;;  "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el" "gnus/nneething.el"
++;;;;;;  "gnus/nngateway.el" "gnus/nnheader.el" "gnus/nnimap.el" "gnus/nnir.el"
++;;;;;;  "gnus/nnmail.el" "gnus/nnmaildir.el" "gnus/nnmairix.el" "gnus/nnmbox.el"
++;;;;;;  "gnus/nnmh.el" "gnus/nnnil.el" "gnus/nnoo.el" "gnus/nnregistry.el"
++;;;;;;  "gnus/nnrss.el" "gnus/nnspool.el" "gnus/nntp.el" "gnus/nnvirtual.el"
++;;;;;;  "gnus/nnweb.el" "gnus/registry.el" "gnus/rfc1843.el" "gnus/rfc2045.el"
++;;;;;;  "gnus/rfc2047.el" "gnus/rfc2231.el" "gnus/rtree.el" "gnus/sieve-manage.el"
++;;;;;;  "gnus/smime.el" "gnus/spam-stat.el" "gnus/spam-wash.el" "hex-util.el"
++;;;;;;  "hfy-cmap.el" "ibuf-ext.el" "international/charscript.el"
++;;;;;;  "international/fontset.el" "international/iso-ascii.el" "international/ja-dic-cnv.el"
++;;;;;;  "international/ja-dic-utl.el" "international/ogonek.el" "international/uni-bidi.el"
++;;;;;;  "international/uni-brackets.el" "international/uni-category.el"
++;;;;;;  "international/uni-combining.el" "international/uni-comment.el"
++;;;;;;  "international/uni-decimal.el" "international/uni-decomposition.el"
++;;;;;;  "international/uni-digit.el" "international/uni-lowercase.el"
++;;;;;;  "international/uni-mirrored.el" "international/uni-name.el"
++;;;;;;  "international/uni-numeric.el" "international/uni-old-name.el"
++;;;;;;  "international/uni-titlecase.el" "international/uni-uppercase.el"
++;;;;;;  "kermit.el" "language/hanja-util.el" "language/thai-word.el"
++;;;;;;  "ldefs-boot.el" "leim/quail/arabic.el" "leim/quail/croatian.el"
++;;;;;;  "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el" "leim/quail/czech.el"
++;;;;;;  "leim/quail/ethiopic.el" "leim/quail/georgian.el" "leim/quail/greek.el"
++;;;;;;  "leim/quail/hanja-jis.el" "leim/quail/hanja.el" "leim/quail/hanja3.el"
++;;;;;;  "leim/quail/hebrew.el" "leim/quail/indian.el" "leim/quail/ipa-praat.el"
++;;;;;;  "leim/quail/ipa.el" "leim/quail/japanese.el" "leim/quail/lao.el"
++;;;;;;  "leim/quail/latin-alt.el" "leim/quail/latin-ltx.el" "leim/quail/latin-post.el"
++;;;;;;  "leim/quail/latin-pre.el" "leim/quail/lrt.el" "leim/quail/persian.el"
++;;;;;;  "leim/quail/py-punct.el" "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el"
++;;;;;;  "leim/quail/sgml-input.el" "leim/quail/sisheng.el" "leim/quail/slovak.el"
++;;;;;;  "leim/quail/symbol-ksc.el" "leim/quail/thai.el" "leim/quail/tibetan.el"
++=======
+ ;;;;;;  "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el"
+ ;;;;;;  "cedet/srecode/semantic.el" "cedet/srecode/srt.el" "cedet/srecode/table.el"
+ ;;;;;;  "cedet/srecode/template.el" "cedet/srecode/texi.el" "cus-dep.el"
+ ;;;;;;  "dframe.el" "dired-aux.el" "dired-x.el" "dom.el" "dos-fns.el"
+ ;;;;;;  "dos-vars.el" "dos-w32.el" "dynamic-setting.el" "emacs-lisp/avl-tree.el"
+ ;;;;;;  "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el"
+ ;;;;;;  "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el"
+ ;;;;;;  "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-compat.el"
+ ;;;;;;  "emacs-lisp/eieio-custom.el" "emacs-lisp/eieio-datadebug.el"
+ ;;;;;;  "emacs-lisp/eieio-opt.el" "emacs-lisp/eieio-speedbar.el"
+ ;;;;;;  "emacs-lisp/generator.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el"
+ ;;;;;;  "emacs-lisp/smie.el" "emacs-lisp/subr-x.el" "emacs-lisp/tcover-ses.el"
+ ;;;;;;  "emacs-lisp/tcover-unsafep.el" "emulation/cua-gmrk.el" "emulation/edt-lk201.el"
+ ;;;;;;  "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el"
+ ;;;;;;  "emulation/viper-cmd.el" "emulation/viper-ex.el" "emulation/viper-init.el"
+ ;;;;;;  "emulation/viper-keym.el" "emulation/viper-macs.el" "emulation/viper-mous.el"
+ ;;;;;;  "emulation/viper-util.el" "erc/erc-backend.el" "erc/erc-goodies.el"
+ ;;;;;;  "erc/erc-ibuffer.el" "erc/erc-lang.el" "eshell/em-alias.el"
+ ;;;;;;  "eshell/em-banner.el" "eshell/em-basic.el" "eshell/em-cmpl.el"
+ ;;;;;;  "eshell/em-dirs.el" "eshell/em-glob.el" "eshell/em-hist.el"
+ ;;;;;;  "eshell/em-ls.el" "eshell/em-pred.el" "eshell/em-prompt.el"
+ ;;;;;;  "eshell/em-rebind.el" "eshell/em-script.el" "eshell/em-smart.el"
+ ;;;;;;  "eshell/em-term.el" "eshell/em-tramp.el" "eshell/em-unix.el"
+ ;;;;;;  "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el"
+ ;;;;;;  "eshell/esh-ext.el" "eshell/esh-groups.el" "eshell/esh-io.el"
+ ;;;;;;  "eshell/esh-module.el" "eshell/esh-opt.el" "eshell/esh-proc.el"
+ ;;;;;;  "eshell/esh-util.el" "eshell/esh-var.el" "ezimage.el" "format-spec.el"
+ ;;;;;;  "fringe.el" "generic-x.el" "gnus/compface.el" "gnus/gnus-async.el"
+ ;;;;;;  "gnus/gnus-bcklg.el" "gnus/gnus-cite.el" "gnus/gnus-cloud.el"
+ ;;;;;;  "gnus/gnus-cus.el" "gnus/gnus-demon.el" "gnus/gnus-dup.el"
+ ;;;;;;  "gnus/gnus-eform.el" "gnus/gnus-ems.el" "gnus/gnus-icalendar.el"
+ ;;;;;;  "gnus/gnus-int.el" "gnus/gnus-logic.el" "gnus/gnus-mh.el"
+ ;;;;;;  "gnus/gnus-salt.el" "gnus/gnus-score.el" "gnus/gnus-srvr.el"
+ ;;;;;;  "gnus/gnus-topic.el" "gnus/gnus-undo.el" "gnus/gnus-util.el"
+ ;;;;;;  "gnus/gnus-uu.el" "gnus/gnus-vm.el" "gnus/gssapi.el" "gnus/ietf-drums.el"
+ ;;;;;;  "gnus/legacy-gnus-agent.el" "gnus/mail-parse.el" "gnus/mail-prsvr.el"
+ ;;;;;;  "gnus/mail-source.el" "gnus/mailcap.el" "gnus/messcompat.el"
+ ;;;;;;  "gnus/mm-archive.el" "gnus/mm-bodies.el" "gnus/mm-decode.el"
+ ;;;;;;  "gnus/mm-util.el" "gnus/mm-view.el" "gnus/mml-sec.el" "gnus/mml-smime.el"
+ ;;;;;;  "gnus/nnagent.el" "gnus/nnbabyl.el" "gnus/nndir.el" "gnus/nndraft.el"
+ ;;;;;;  "gnus/nneething.el" "gnus/nngateway.el" "gnus/nnheader.el"
+ ;;;;;;  "gnus/nnimap.el" "gnus/nnir.el" "gnus/nnmail.el" "gnus/nnmaildir.el"
+ ;;;;;;  "gnus/nnmairix.el" "gnus/nnmbox.el" "gnus/nnmh.el" "gnus/nnnil.el"
+ ;;;;;;  "gnus/nnoo.el" "gnus/nnregistry.el" "gnus/nnrss.el" "gnus/nnspool.el"
+ ;;;;;;  "gnus/nntp.el" "gnus/nnvirtual.el" "gnus/nnweb.el" "gnus/registry.el"
+ ;;;;;;  "gnus/rfc1843.el" "gnus/rfc2045.el" "gnus/rfc2047.el" "gnus/rfc2231.el"
+ ;;;;;;  "gnus/rtree.el" "gnus/sieve-manage.el" "gnus/smime.el" "gnus/spam-stat.el"
+ ;;;;;;  "gnus/spam-wash.el" "hex-util.el" "hfy-cmap.el" "ibuf-ext.el"
+ ;;;;;;  "international/charscript.el" "international/fontset.el"
+ ;;;;;;  "international/iso-ascii.el" "international/ja-dic-cnv.el"
+ ;;;;;;  "international/ja-dic-utl.el" "international/ogonek.el" "kermit.el"
+ ;;;;;;  "language/hanja-util.el" "language/thai-word.el" "ldefs-boot.el"
+ ;;;;;;  "leim/quail/arabic.el" "leim/quail/croatian.el" "leim/quail/cyril-jis.el"
+ ;;;;;;  "leim/quail/cyrillic.el" "leim/quail/czech.el" "leim/quail/ethiopic.el"
+ ;;;;;;  "leim/quail/georgian.el" "leim/quail/greek.el" "leim/quail/hanja-jis.el"
+ ;;;;;;  "leim/quail/hanja.el" "leim/quail/hanja3.el" "leim/quail/hebrew.el"
+ ;;;;;;  "leim/quail/indian.el" "leim/quail/ipa-praat.el" "leim/quail/ipa.el"
+ ;;;;;;  "leim/quail/japanese.el" "leim/quail/lao.el" "leim/quail/latin-alt.el"
+ ;;;;;;  "leim/quail/latin-ltx.el" "leim/quail/latin-post.el" "leim/quail/latin-pre.el"
+ ;;;;;;  "leim/quail/lrt.el" "leim/quail/persian.el" "leim/quail/py-punct.el"
+ ;;;;;;  "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el" "leim/quail/sgml-input.el"
+ ;;;;;;  "leim/quail/sisheng.el" "leim/quail/slovak.el" "leim/quail/symbol-ksc.el"
+ ;;;;;;  "leim/quail/tamil-dvorak.el" "leim/quail/thai.el" "leim/quail/tibetan.el"
++>>>>>>> emacs-25
  ;;;;;;  "leim/quail/viqr.el" "leim/quail/vntelex.el" "leim/quail/vnvni.el"
  ;;;;;;  "leim/quail/welsh.el" "loadup.el" "mail/blessmail.el" "mail/mailheader.el"
  ;;;;;;  "mail/mspools.el" "mail/rfc2368.el" "mail/rfc822.el" "mail/rmail-spam-filter.el"
@@@ -32411,34 -32425,34 +32971,94 @@@
  ;;;;;;  "nxml/nxml-rap.el" "nxml/nxml-util.el" "nxml/rng-dt.el" "nxml/rng-loc.el"
  ;;;;;;  "nxml/rng-maint.el" "nxml/rng-match.el" "nxml/rng-parse.el"
  ;;;;;;  "nxml/rng-pttrn.el" "nxml/rng-uri.el" "nxml/rng-util.el"
++<<<<<<< HEAD
 +;;;;;;  "nxml/xsd-regexp.el" "org/ob-C.el" "org/ob-R.el" "org/ob-asymptote.el"
 +;;;;;;  "org/ob-awk.el" "org/ob-calc.el" "org/ob-clojure.el" "org/ob-comint.el"
 +;;;;;;  "org/ob-core.el" "org/ob-css.el" "org/ob-ditaa.el" "org/ob-dot.el"
 +;;;;;;  "org/ob-emacs-lisp.el" "org/ob-eval.el" "org/ob-exp.el" "org/ob-fortran.el"
 +;;;;;;  "org/ob-gnuplot.el" "org/ob-haskell.el" "org/ob-io.el" "org/ob-java.el"
 +;;;;;;  "org/ob-js.el" "org/ob-keys.el" "org/ob-latex.el" "org/ob-ledger.el"
 +;;;;;;  "org/ob-lilypond.el" "org/ob-lisp.el" "org/ob-lob.el" "org/ob-makefile.el"
 +;;;;;;  "org/ob-matlab.el" "org/ob-maxima.el" "org/ob-mscgen.el"
 +;;;;;;  "org/ob-ocaml.el" "org/ob-octave.el" "org/ob-org.el" "org/ob-perl.el"
 +;;;;;;  "org/ob-picolisp.el" "org/ob-plantuml.el" "org/ob-python.el"
 +;;;;;;  "org/ob-ref.el" "org/ob-ruby.el" "org/ob-sass.el" "org/ob-scala.el"
 +;;;;;;  "org/ob-scheme.el" "org/ob-screen.el" "org/ob-sh.el" "org/ob-shen.el"
 +;;;;;;  "org/ob-sql.el" "org/ob-sqlite.el" "org/ob-table.el" "org/ob-tangle.el"
 +;;;;;;  "org/ob.el" "org/org-archive.el" "org/org-attach.el" "org/org-bbdb.el"
 +;;;;;;  "org/org-bibtex.el" "org/org-clock.el" "org/org-crypt.el"
 +;;;;;;  "org/org-ctags.el" "org/org-datetree.el" "org/org-docview.el"
 +;;;;;;  "org/org-element.el" "org/org-entities.el" "org/org-eshell.el"
 +;;;;;;  "org/org-faces.el" "org/org-feed.el" "org/org-footnote.el"
 +;;;;;;  "org/org-gnus.el" "org/org-habit.el" "org/org-id.el" "org/org-indent.el"
 +;;;;;;  "org/org-info.el" "org/org-inlinetask.el" "org/org-install.el"
 +;;;;;;  "org/org-irc.el" "org/org-list.el" "org/org-loaddefs.el"
 +;;;;;;  "org/org-macro.el" "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el"
 +;;;;;;  "org/org-pcomplete.el" "org/org-plot.el" "org/org-protocol.el"
 +;;;;;;  "org/org-rmail.el" "org/org-src.el" "org/org-table.el" "org/org-timer.el"
 +;;;;;;  "org/org-w3m.el" "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el"
 +;;;;;;  "org/ox-icalendar.el" "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el"
 +;;;;;;  "org/ox-odt.el" "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el"
 +;;;;;;  "org/ox.el" "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el"
++||||||| merged common ancestors
++;;;;;;  "nxml/xsd-regexp.el" "org/ob-C.el" "org/ob-R.el" "org/ob-asymptote.el"
++;;;;;;  "org/ob-awk.el" "org/ob-calc.el" "org/ob-clojure.el" "org/ob-comint.el"
++;;;;;;  "org/ob-core.el" "org/ob-css.el" "org/ob-ditaa.el" "org/ob-dot.el"
++;;;;;;  "org/ob-emacs-lisp.el" "org/ob-eval.el" "org/ob-exp.el" "org/ob-fortran.el"
++;;;;;;  "org/ob-gnuplot.el" "org/ob-haskell.el" "org/ob-io.el" "org/ob-java.el"
++;;;;;;  "org/ob-js.el" "org/ob-keys.el" "org/ob-latex.el" "org/ob-ledger.el"
++;;;;;;  "org/ob-lilypond.el" "org/ob-lisp.el" "org/ob-lob.el" "org/ob-makefile.el"
++;;;;;;  "org/ob-matlab.el" "org/ob-maxima.el" "org/ob-mscgen.el"
++;;;;;;  "org/ob-ocaml.el" "org/ob-octave.el" "org/ob-org.el" "org/ob-perl.el"
++;;;;;;  "org/ob-picolisp.el" "org/ob-plantuml.el" "org/ob-python.el"
++;;;;;;  "org/ob-ref.el" "org/ob-ruby.el" "org/ob-sass.el" "org/ob-scala.el"
++;;;;;;  "org/ob-scheme.el" "org/ob-screen.el" "org/ob-sh.el" "org/ob-shen.el"
++;;;;;;  "org/ob-sql.el" "org/ob-sqlite.el" "org/ob-table.el" "org/ob-tangle.el"
++;;;;;;  "org/ob.el" "org/org-archive.el" "org/org-attach.el" "org/org-bbdb.el"
++;;;;;;  "org/org-bibtex.el" "org/org-clock.el" "org/org-crypt.el"
++;;;;;;  "org/org-ctags.el" "org/org-datetree.el" "org/org-docview.el"
++;;;;;;  "org/org-element.el" "org/org-entities.el" "org/org-eshell.el"
++;;;;;;  "org/org-faces.el" "org/org-feed.el" "org/org-footnote.el"
++;;;;;;  "org/org-gnus.el" "org/org-habit.el" "org/org-id.el" "org/org-indent.el"
++;;;;;;  "org/org-info.el" "org/org-inlinetask.el" "org/org-install.el"
++;;;;;;  "org/org-irc.el" "org/org-list.el" "org/org-macro.el" "org/org-mhe.el"
++;;;;;;  "org/org-mobile.el" "org/org-mouse.el" "org/org-pcomplete.el"
++;;;;;;  "org/org-plot.el" "org/org-protocol.el" "org/org-rmail.el"
++;;;;;;  "org/org-src.el" "org/org-table.el" "org/org-timer.el" "org/org-w3m.el"
++;;;;;;  "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el" "org/ox-icalendar.el"
++;;;;;;  "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el" "org/ox-odt.el"
++;;;;;;  "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el" "org/ox.el"
++;;;;;;  "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el"
++=======
+ ;;;;;;  "nxml/xsd-regexp.el" "obarray.el" "org/ob-C.el" "org/ob-R.el"
+ ;;;;;;  "org/ob-asymptote.el" "org/ob-awk.el" "org/ob-calc.el" "org/ob-clojure.el"
+ ;;;;;;  "org/ob-comint.el" "org/ob-core.el" "org/ob-css.el" "org/ob-ditaa.el"
+ ;;;;;;  "org/ob-dot.el" "org/ob-emacs-lisp.el" "org/ob-eval.el" "org/ob-exp.el"
+ ;;;;;;  "org/ob-fortran.el" "org/ob-gnuplot.el" "org/ob-haskell.el"
+ ;;;;;;  "org/ob-io.el" "org/ob-java.el" "org/ob-js.el" "org/ob-keys.el"
+ ;;;;;;  "org/ob-latex.el" "org/ob-ledger.el" "org/ob-lilypond.el"
+ ;;;;;;  "org/ob-lisp.el" "org/ob-lob.el" "org/ob-makefile.el" "org/ob-matlab.el"
+ ;;;;;;  "org/ob-maxima.el" "org/ob-mscgen.el" "org/ob-ocaml.el" "org/ob-octave.el"
+ ;;;;;;  "org/ob-org.el" "org/ob-perl.el" "org/ob-picolisp.el" "org/ob-plantuml.el"
+ ;;;;;;  "org/ob-python.el" "org/ob-ref.el" "org/ob-ruby.el" "org/ob-sass.el"
+ ;;;;;;  "org/ob-scala.el" "org/ob-scheme.el" "org/ob-screen.el" "org/ob-sh.el"
+ ;;;;;;  "org/ob-shen.el" "org/ob-sql.el" "org/ob-sqlite.el" "org/ob-table.el"
+ ;;;;;;  "org/ob-tangle.el" "org/ob.el" "org/org-archive.el" "org/org-attach.el"
+ ;;;;;;  "org/org-bbdb.el" "org/org-bibtex.el" "org/org-clock.el"
+ ;;;;;;  "org/org-crypt.el" "org/org-ctags.el" "org/org-datetree.el"
+ ;;;;;;  "org/org-docview.el" "org/org-element.el" "org/org-entities.el"
+ ;;;;;;  "org/org-eshell.el" "org/org-faces.el" "org/org-feed.el"
+ ;;;;;;  "org/org-footnote.el" "org/org-gnus.el" "org/org-habit.el"
+ ;;;;;;  "org/org-id.el" "org/org-indent.el" "org/org-info.el" "org/org-inlinetask.el"
+ ;;;;;;  "org/org-install.el" "org/org-irc.el" "org/org-list.el" "org/org-loaddefs.el"
+ ;;;;;;  "org/org-macro.el" "org/org-mhe.el" "org/org-mobile.el" "org/org-mouse.el"
+ ;;;;;;  "org/org-pcomplete.el" "org/org-plot.el" "org/org-protocol.el"
+ ;;;;;;  "org/org-rmail.el" "org/org-src.el" "org/org-table.el" "org/org-timer.el"
+ ;;;;;;  "org/org-w3m.el" "org/ox-ascii.el" "org/ox-beamer.el" "org/ox-html.el"
+ ;;;;;;  "org/ox-icalendar.el" "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el"
+ ;;;;;;  "org/ox-odt.el" "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el"
+ ;;;;;;  "org/ox.el" "play/gametree.el" "progmodes/ada-prj.el" "progmodes/cc-align.el"
++>>>>>>> emacs-25
  ;;;;;;  "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el"
  ;;;;;;  "progmodes/cc-defs.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el"
  ;;;;;;  "progmodes/cc-menus.el" "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el"
@@@ -32461,7 -32475,7 +33081,13 @@@
  ;;;;;;  "vc/ediff-vers.el" "vc/ediff-wind.el" "vc/pcvs-info.el" "vc/pcvs-parse.el"
  ;;;;;;  "vc/pcvs-util.el" "vc/vc-dav.el" "vc/vc-filewise.el" "vcursor.el"
  ;;;;;;  "vt-control.el" "vt100-led.el" "w32-fns.el" "w32-vars.el"
++<<<<<<< HEAD
 +;;;;;;  "x-dnd.el") (22106 57434 227149 199000))
++||||||| merged common ancestors
++;;;;;;  "x-dnd.el") (22069 63623 894804 836000))
++=======
+ ;;;;;;  "x-dnd.el") (22108 15942 558032 987000))
++>>>>>>> emacs-25
  
  ;;;***
  \f
diff --cc lisp/net/eww.el
index 7ec58f1,e8fdc97..0000000
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@@ -407,8 -408,7 +408,9 @@@ Currently this means either text/html o
  	    (inhibit-modification-hooks t)
  	    (shr-target-id (url-target (url-generic-parse-url url)))
  	    (shr-external-rendering-functions
++<<<<<<< HEAD
               (append
 +              shr-external-rendering-functions
                '((title . eww-tag-title)
                  (form . eww-tag-form)
                  (input . eww-tag-input)
@@@ -418,6 -417,6 +420,25 @@@
                  (link . eww-tag-link)
                  (meta . eww-tag-meta)
                  (a . eww-tag-a)))))
++||||||| merged common ancestors
++	     '((title . eww-tag-title)
++	       (form . eww-tag-form)
++	       (input . eww-tag-input)
++	       (textarea . eww-tag-textarea)
++	       (select . eww-tag-select)
++	       (link . eww-tag-link)
++	       (a . eww-tag-a))))
++=======
++             (append
++              '((title . eww-tag-title)
++                (form . eww-tag-form)
++                (input . eww-tag-input)
++                (textarea . eww-tag-textarea)
++                (select . eww-tag-select)
++                (link . eww-tag-link)
++                (meta . eww-tag-meta)
++                (a . eww-tag-a)))))
++>>>>>>> emacs-25
  	(erase-buffer)
  	(shr-insert-document document)
  	(cond
diff --cc lisp/textmodes/reftex.el
index b29a56a,4ee3658..0000000
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@@ -2395,6 -2394,702 +2395,1402 @@@ Your bug report will be posted to the A
  
  (setq reftex-tables-dirty t)  ; in case this file is evaluated by hand
  
++<<<<<<< HEAD
++||||||| merged common ancestors
++\f
++;;; Start of automatically extracted autoloads.
++\f
++;;;### (autoloads nil "reftex-auc" "reftex-auc.el" "cf606f7918831321cb46f254436dc66e")
++;;; Generated autoloads from reftex-auc.el
++
++(autoload 'reftex-arg-label "reftex-auc" "\
++Use `reftex-label', `reftex-reference' or AUCTeX's code to insert label arg.
++What is being used depends upon `reftex-plug-into-AUCTeX'.
++
++\(fn OPTIONAL &optional PROMPT DEFINITION)" nil nil)
++
++(autoload 'reftex-arg-cite "reftex-auc" "\
++Use `reftex-citation' or AUCTeX's code to insert a cite-key macro argument.
++What is being used depends upon `reftex-plug-into-AUCTeX'.
++
++\(fn OPTIONAL &optional PROMPT DEFINITION)" nil nil)
++
++(autoload 'reftex-arg-index-tag "reftex-auc" "\
++Prompt for an index tag with completion.
++This is the name of an index, not the entry.
++
++\(fn OPTIONAL &optional PROMPT &rest ARGS)" nil nil)
++
++(autoload 'reftex-arg-index "reftex-auc" "\
++Prompt for an index entry completing with known entries.
++Completion is specific for just one index, if the macro or a tag
++argument identify one of multiple indices.
++
++\(fn OPTIONAL &optional PROMPT &rest ARGS)" nil nil)
++
++(autoload 'reftex-plug-into-AUCTeX "reftex-auc" "\
++
++
++\(fn)" nil nil)
++
++(autoload 'reftex-toggle-plug-into-AUCTeX "reftex-auc" "\
++Toggle Interface between AUCTeX and RefTeX on and off.
++
++\(fn)" t nil)
++
++(autoload 'reftex-add-label-environments "reftex-auc" "\
++Add label environment descriptions to `reftex-label-alist-style'.
++The format of ENTRY-LIST is exactly like `reftex-label-alist'.  See there
++for details.
++This function makes it possible to support RefTeX from AUCTeX style files.
++The entries in ENTRY-LIST will be processed after the user settings in
++`reftex-label-alist', and before the defaults (specified in
++`reftex-default-label-alist-entries').  Any changes made to
++`reftex-label-alist-style' will raise a flag to the effect that
++the label information is recompiled on next use.
++
++\(fn ENTRY-LIST)" nil nil)
++
++(defalias 'reftex-add-to-label-alist 'reftex-add-label-environments)
++
++(autoload 'reftex-add-section-levels "reftex-auc" "\
++Add entries to the value of `reftex-section-levels'.
++The added values are kept local to the current document.  The format
++of ENTRY-LIST is a list of cons cells (\"MACRONAME\" . LEVEL).  See
++`reftex-section-levels' for an example.
++
++\(fn ENTRY-LIST)" nil nil)
++
++(autoload 'reftex-notice-new-section "reftex-auc" "\
++
++
++\(fn)" nil nil)
++
++;;;***
++\f
++;;;### (autoloads nil "reftex-cite" "reftex-cite.el" "7eaa61c05a6578999ea68f1be0fbcf49")
++;;; Generated autoloads from reftex-cite.el
++
++(autoload 'reftex-default-bibliography "reftex-cite" "\
++Return the expanded value of variable `reftex-default-bibliography'.
++The expanded value is cached.
++
++\(fn)" nil nil)
++
++(autoload 'reftex-bib-or-thebib "reftex-cite" "\
++Test if BibTeX or \begin{thebibliography} should be used for the citation.
++Find the bof of the current file
++
++\(fn)" nil nil)
++
++(autoload 'reftex-get-bibfile-list "reftex-cite" "\
++Return list of bibfiles for current document.
++When using the chapterbib or bibunits package you should either
++use the same database files everywhere, or separate parts using
++different databases into different files (included into the mater file).
++Then this function will return the applicable database files.
++
++\(fn)" nil nil)
++
++(autoload 'reftex-pop-to-bibtex-entry "reftex-cite" "\
++Find BibTeX KEY in any file in FILE-LIST in another window.
++If MARK-TO-KILL is non-nil, mark new buffer to kill.
++If HIGHLIGHT is non-nil, highlight the match.
++If ITEM in non-nil, search for bibitem instead of database entry.
++If RETURN is non-nil, just return the entry and restore point.
++
++\(fn KEY FILE-LIST &optional MARK-TO-KILL HIGHLIGHT ITEM RETURN)" nil nil)
++
++(autoload 'reftex-end-of-bib-entry "reftex-cite" "\
++
++
++\(fn ITEM)" nil nil)
++
++(autoload 'reftex-parse-bibtex-entry "reftex-cite" "\
++Parse BibTeX ENTRY.
++If ENTRY is nil then parse the entry in current buffer between FROM and TO.
++If RAW is non-nil, keep double quotes/curly braces delimiting fields.
++
++\(fn ENTRY &optional FROM TO RAW)" nil nil)
++
++(autoload 'reftex-citation "reftex-cite" "\
++Make a citation using BibTeX database files.
++After prompting for a regular expression, scans the buffers with
++bibtex entries (taken from the \\bibliography command) and offers the
++matching entries for selection.  The selected entry is formatted according
++to `reftex-cite-format' and inserted into the buffer.
++
++If NO-INSERT is non-nil, nothing is inserted, only the selected key returned.
++
++FORMAT-KEY can be used to pre-select a citation format.
++
++When called with a `C-u' prefix, prompt for optional arguments in
++cite macros.  When called with a numeric prefix, make that many
++citations.  When called with point inside the braces of a `\\cite'
++command, it will add another key, ignoring the value of
++`reftex-cite-format'.
++
++The regular expression uses an expanded syntax: && is interpreted as `and'.
++Thus, `aaaa&&bbb' matches entries which contain both `aaaa' and `bbb'.
++While entering the regexp, completion on knows citation keys is possible.
++`=' is a good regular expression to match all entries in all files.
++
++\(fn &optional NO-INSERT FORMAT-KEY)" t nil)
++
++(autoload 'reftex-citep "reftex-cite" "\
++Call `reftex-citation' with a format selector `?p'.
++
++\(fn)" t nil)
++
++(autoload 'reftex-citet "reftex-cite" "\
++Call `reftex-citation' with a format selector `?t'.
++
++\(fn)" t nil)
++
++(autoload 'reftex-make-cite-echo-string "reftex-cite" "\
++Format a bibtex ENTRY for the echo area and cache the result.
++
++\(fn ENTRY DOCSTRUCT-SYMBOL)" nil nil)
++
++(autoload 'reftex-create-bibtex-file "reftex-cite" "\
++Create a new BibTeX database BIBFILE with all entries referenced in document.
++The command prompts for a filename and writes the collected
++entries to that file.  Only entries referenced in the current
++document with any \\cite-like macros are used.  The sequence in
++the new file is the same as it was in the old database.
++
++Entries referenced from other entries must appear after all
++referencing entries.
++
++You can define strings to be used as header or footer for the
++created files in the variables `reftex-create-bibtex-header' or
++`reftex-create-bibtex-footer' respectively.
++
++\(fn BIBFILE)" t nil)
++
++;;;***
++\f
++;;;### (autoloads nil "reftex-dcr" "reftex-dcr.el" "08fc5bd6c35f9d6ab4a6ad336d3769c0")
++;;; Generated autoloads from reftex-dcr.el
++
++(autoload 'reftex-view-crossref "reftex-dcr" "\
++View cross reference of macro at point.  Point must be on the KEY
++argument.  When at a `\\ref' macro, show corresponding `\\label'
++definition, also in external documents (`xr').  When on a label, show
++a locations where KEY is referenced.  Subsequent calls find additional
++locations.  When on a `\\cite', show the associated `\\bibitem' macro or
++the BibTeX database entry.  When on a `\\bibitem', show a `\\cite' macro
++which uses this KEY. When on an `\\index', show other locations marked
++by the same index entry.
++To define additional cross referencing items, use the option
++`reftex-view-crossref-extra'.  See also `reftex-view-crossref-from-bibtex'.
++With one or two C-u prefixes, enforce rescanning of the document.
++With argument 2, select the window showing the cross reference.
++AUTO-HOW is only for the automatic crossref display and is handed through
++to the functions `reftex-view-cr-cite' and `reftex-view-cr-ref'.
++
++\(fn &optional ARG AUTO-HOW FAIL-QUIETLY)" t nil)
++
++(autoload 'reftex-mouse-view-crossref "reftex-dcr" "\
++View cross reference of \\ref or \\cite macro where you click.
++If the macro at point is a \\ref, show the corresponding label definition.
++If it is a \\cite, show the BibTeX database entry.
++If there is no such macro at point, search forward to find one.
++With argument, actually select the window showing the cross reference.
++
++\(fn EV)" t nil)
++
++(autoload 'reftex-toggle-auto-view-crossref "reftex-dcr" "\
++Toggle the automatic display of crossref information in the echo area.
++When active, leaving point idle in the argument of a \\ref or \\cite macro
++will display info in the echo area.
++
++\(fn)" t nil)
++
++(autoload 'reftex-view-crossref-from-bibtex "reftex-dcr" "\
++View location in a LaTeX document which cites the BibTeX entry at point.
++Since BibTeX files can be used by many LaTeX documents, this function
++prompts upon first use for a buffer in RefTeX mode.  To reset this
++link to a document, call the function with a prefix arg.
++Calling this function several times find successive citation locations.
++
++\(fn &optional ARG)" t nil)
++
++;;;***
++\f
++;;;### (autoloads nil "reftex-global" "reftex-global.el" "5fdd9c2edced0882471f86baf4b4b234")
++;;; Generated autoloads from reftex-global.el
++
++(autoload 'reftex-create-tags-file "reftex-global" "\
++Create TAGS file by running `etags' on the current document.
++The TAGS file is also immediately visited with `visit-tags-table'.
++
++\(fn)" t nil)
++
++(autoload 'reftex-grep-document "reftex-global" "\
++Run grep query through all files related to this document.
++With prefix arg, force to rescan document.
++No active TAGS table is required.
++
++\(fn GREP-CMD)" t nil)
++
++(autoload 'reftex-search-document "reftex-global" "\
++Regexp search through all files of the current document.
++Starts always in the master file.  Stops when a match is found.
++To continue searching for next match, use command \\[tags-loop-continue].
++No active TAGS table is required.
++
++\(fn &optional REGEXP)" t nil)
++
++(autoload 'reftex-query-replace-document "reftex-global" "\
++Do `query-replace-regexp' of FROM with TO over the entire document.
++Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
++If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
++with the command \\[tags-loop-continue].
++No active TAGS table is required.
++
++\(fn &optional FROM TO DELIMITED)" t nil)
++
++(autoload 'reftex-find-duplicate-labels "reftex-global" "\
++Produce a list of all duplicate labels in the document.
++
++\(fn)" t nil)
++
++(autoload 'reftex-change-label "reftex-global" "\
++Run `query-replace-regexp' of FROM with TO in all macro arguments.
++Works on the entire multifile document.
++If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
++with the command \\[tags-loop-continue].
++No active TAGS table is required.
++
++\(fn &optional FROM TO)" t nil)
++
++(autoload 'reftex-renumber-simple-labels "reftex-global" "\
++Renumber all simple labels in the document to make them sequentially.
++Simple labels are the ones created by RefTeX, consisting only of the
++prefix and a number.  After the command completes, all these labels will
++have sequential numbers throughout the document.  Any references to
++the labels will be changed as well.  For this, RefTeX looks at the
++arguments of any macros which either start or end in the string `ref'.
++This command should be used with care, in particular in multifile
++documents.  You should not use it if another document refers to this
++one with the `xr' package.
++
++\(fn)" t nil)
++
++(autoload 'reftex-save-all-document-buffers "reftex-global" "\
++Save all documents associated with the current document.
++The function is useful after a global action like replacing or renumbering
++labels.
++
++\(fn)" t nil)
++
++(autoload 'reftex-isearch-minor-mode "reftex-global" "\
++When on, isearch searches the whole document, not only the current file.
++This minor mode allows isearch to search through all the files of
++the current TeX document.
++
++With no argument, this command toggles
++`reftex-isearch-minor-mode'.  With a prefix argument ARG, turn
++`reftex-isearch-minor-mode' on if ARG is positive, otherwise turn it off.
++
++\(fn &optional ARG)" t nil)
++
++;;;***
++\f
++;;;### (autoloads nil "reftex-index" "reftex-index.el" "29cb6e91c2e06592053e9d543f30f0ea")
++;;; Generated autoloads from reftex-index.el
++
++(autoload 'reftex-index-selection-or-word "reftex-index" "\
++Put selection or the word near point into the default index macro.
++This uses the information in `reftex-index-default-macro' to make an index
++entry.  The phrase indexed is the current selection or the word near point.
++When called with one `C-u' prefix, let the user have a chance to edit the
++index entry.  When called with 2 `C-u' as prefix, also ask for the index
++macro and other stuff.
++When called inside TeX math mode as determined by the `texmathp.el' library
++which is part of AUCTeX, the string is first processed with the
++`reftex-index-math-format', which see.
++
++\(fn &optional ARG PHRASE)" t nil)
++
++(autoload 'reftex-index "reftex-index" "\
++Query for an index macro and insert it along with its arguments.
++The index macros available are those defined in `reftex-index-macro' or
++by a call to `reftex-add-index-macros', typically from an AUCTeX style file.
++RefteX provides completion for the index tag and the index key, and
++will prompt for other arguments.
++
++\(fn &optional CHAR KEY TAG SEL NO-INSERT)" t nil)
++
++(autoload 'reftex-index-complete-tag "reftex-index" "\
++
++
++\(fn &optional ITAG OPT-ARGS)" nil nil)
++
++(autoload 'reftex-index-select-tag "reftex-index" "\
++
++
++\(fn)" nil nil)
++
++(autoload 'reftex-index-complete-key "reftex-index" "\
++
++
++\(fn &optional TAG OPTIONAL INITIAL)" nil nil)
++
++(autoload 'reftex-index-show-entry "reftex-index" "\
++
++
++\(fn DATA &optional NO-REVISIT)" nil nil)
++
++(autoload 'reftex-display-index "reftex-index" "\
++Display a buffer with an index compiled from the current document.
++When the document has multiple indices, first prompts for the correct one.
++When index support is turned off, offer to turn it on.
++With one or two `C-u' prefixes, rescan document first.
++With prefix 2, restrict index to current document section.
++With prefix 3, restrict index to region.
++
++\(fn &optional TAG OVERRIDING-RESTRICTION REDO &rest LOCATIONS)" t nil)
++
++(autoload 'reftex-index-phrase-selection-or-word "reftex-index" "\
++Add current selection or word at point to the phrases buffer.
++When you are in transient-mark-mode and the region is active, the
++selection will be used - otherwise the word at point.
++You get a chance to edit the entry in the phrases buffer - finish with
++`C-c C-c'.
++
++\(fn ARG)" t nil)
++
++(autoload 'reftex-index-visit-phrases-buffer "reftex-index" "\
++Switch to the phrases buffer, initialize if empty.
++
++\(fn)" t nil)
++
++(autoload 'reftex-index-phrases-mode "reftex-index" "\
++Major mode for managing the Index phrases of a LaTeX document.
++This buffer was created with RefTeX.
++
++To insert new phrases, use
++ - `C-c \\' in the LaTeX document to copy selection or word
++ - `\\[reftex-index-new-phrase]' in the phrases buffer.
++
++To index phrases use one of:
++
++\\[reftex-index-this-phrase]     index current phrase
++\\[reftex-index-next-phrase]     index next phrase (or N with prefix arg)
++\\[reftex-index-all-phrases]     index all phrases
++\\[reftex-index-remaining-phrases]     index current and following phrases
++\\[reftex-index-region-phrases]     index the phrases in the region
++
++You can sort the phrases in this buffer with \\[reftex-index-sort-phrases].
++To display information about the phrase at point, use \\[reftex-index-phrases-info].
++
++For more information see the RefTeX User Manual.
++
++Here are all local bindings.
++
++\\{reftex-index-phrases-mode-map}
++
++\(fn)" t nil)
++
++;;;***
++\f
++;;;### (autoloads nil "reftex-parse" "reftex-parse.el" "7bfdcb2f040dbe9a08d2c38c005c8f21")
++;;; Generated autoloads from reftex-parse.el
++
++(autoload 'reftex-parse-one "reftex-parse" "\
++Re-parse this file.
++
++\(fn)" t nil)
++
++(autoload 'reftex-parse-all "reftex-parse" "\
++Re-parse entire document.
++
++\(fn)" t nil)
++
++(autoload 'reftex-do-parse "reftex-parse" "\
++Do a document rescan.
++When allowed, do only a partial scan from FILE.
++
++\(fn RESCAN &optional FILE)" nil nil)
++
++(autoload 'reftex-everything-regexp "reftex-parse" "\
++
++
++\(fn)" nil nil)
++
++(autoload 'reftex-all-document-files "reftex-parse" "\
++Return a list of all files belonging to the current document.
++When RELATIVE is non-nil, give file names relative to directory
++of master file.
++
++\(fn &optional RELATIVE)" nil nil)
++
++(autoload 'reftex-locate-bibliography-files "reftex-parse" "\
++Scan buffer for bibliography macros and return file list.
++
++\(fn MASTER-DIR &optional FILES)" nil nil)
++
++(autoload 'reftex-section-info "reftex-parse" "\
++Return a section entry for the current match.
++Careful: This function expects the match-data to be still in place!
++
++\(fn FILE)" nil nil)
++
++(autoload 'reftex-ensure-index-support "reftex-parse" "\
++When index support is turned off, ask to turn it on and
++set the current prefix argument so that `reftex-access-scan-info'
++will rescan the entire document.
++
++\(fn &optional ABORT)" nil nil)
++
++(autoload 'reftex-index-info-safe "reftex-parse" "\
++
++
++\(fn FILE)" nil nil)
++
++(autoload 'reftex-index-info "reftex-parse" "\
++Return an index entry for the current match.
++Careful: This function expects the match-data to be still in place!
++
++\(fn FILE)" nil nil)
++
++(autoload 'reftex-short-context "reftex-parse" "\
++Get about one line of useful context for the label definition at point.
++
++\(fn ENV PARSE &optional BOUND DERIVE)" nil nil)
++
++(autoload 'reftex-where-am-I "reftex-parse" "\
++Return the docstruct entry above point.
++Actually returns a cons cell in which the cdr is a flag indicating
++if the information is exact (t) or approximate (nil).
++
++\(fn)" nil nil)
++
++(autoload 'reftex-notice-new "reftex-parse" "\
++Hook to handshake with RefTeX after something new has been inserted.
++
++\(fn &optional N FORCE)" nil nil)
++
++(autoload 'reftex-what-macro-safe "reftex-parse" "\
++Call `reftex-what-macro' with special syntax table.
++
++\(fn WHICH &optional BOUND)" nil nil)
++
++(autoload 'reftex-what-macro "reftex-parse" "\
++Find out if point is within the arguments of any TeX-macro.
++The return value is either (\"\\macro\" . (point)) or a list of them.
++
++If WHICH is nil, immediately return nil.
++If WHICH is 1, return innermost enclosing macro.
++If WHICH is t, return list of all macros enclosing point.
++If WHICH is a list of macros, look only for those macros and return the
++  name of the first macro in this list found to enclose point.
++If the optional BOUND is an integer, bound backwards directed
++  searches to this point.  If it is nil, limit to nearest \\section -
++  like statement.
++
++This function is pretty stable, but can be fooled if the text contains
++things like \\macro{aa}{bb} where \\macro is defined to take only one
++argument.  As RefTeX cannot know this, the string \"bb\" would still be
++considered an argument of macro \\macro.
++
++\(fn WHICH &optional BOUND)" nil nil)
++
++(autoload 'reftex-what-environment "reftex-parse" "\
++Find out if point is inside a LaTeX environment.
++The return value is (e.g.) either (\"equation\" . (point)) or a list of
++them.
++
++If WHICH is nil, immediately return nil.
++If WHICH is 1, return innermost enclosing environment.
++If WHICH is t, return list of all environments enclosing point.
++If WHICH is a list of environments, look only for those environments and
++  return the name of the first environment in this list found to enclose
++  point.
++
++If the optional BOUND is an integer, bound backwards directed searches to
++this point.  If it is nil, limit to nearest \\section - like statement.
++
++\(fn WHICH &optional BOUND)" nil nil)
++
++(autoload 'reftex-what-special-env "reftex-parse" "\
++Run the special environment parsers and return the matches.
++
++The return value is (e.g.) either (\"my-parser-function\" . (point))
++or a list of them.
++
++If WHICH is nil, immediately return nil.
++If WHICH is 1, return innermost enclosing environment.
++If WHICH is t, return list of all environments enclosing point.
++If WHICH is a list of environments, look only for those environments and
++  return the name of the first environment in this list found to enclose
++  point.
++
++\(fn WHICH &optional BOUND)" nil nil)
++
++(autoload 'reftex-nth-arg "reftex-parse" "\
++Return the Nth following {} or [] parentheses content.
++OPT-ARGS is a list of argument numbers which are optional.
++
++\(fn N &optional OPT-ARGS)" nil nil)
++
++(autoload 'reftex-move-over-touching-args "reftex-parse" "\
++
++
++\(fn)" nil nil)
++
++(autoload 'reftex-init-section-numbers "reftex-parse" "\
++Initialize the section numbers with zeros or with what is found in the TOC-ENTRY.
++
++\(fn &optional TOC-ENTRY APPENDIX)" nil nil)
++
++(autoload 'reftex-section-number "reftex-parse" "\
++Return a string with the current section number.
++When LEVEL is non-nil, increase section numbers on that level.
++
++\(fn &optional LEVEL STAR)" nil nil)
++
++;;;***
++\f
++;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "86c0a243e49d55bb33a32ddac613e189")
++;;; Generated autoloads from reftex-ref.el
++
++(autoload 'reftex-label-location "reftex-ref" "\
++Return the environment or macro which determines the label type at point.
++If optional BOUND is an integer, limit backward searches to that point.
++
++\(fn &optional BOUND)" nil nil)
++
++(autoload 'reftex-label-info-update "reftex-ref" "\
++
++
++\(fn CELL)" nil nil)
++
++(autoload 'reftex-label-info "reftex-ref" "\
++
++
++\(fn LABEL &optional FILE BOUND DERIVE ENV-OR-MAC)" nil nil)
++
++(autoload 'reftex-label "reftex-ref" "\
++Insert a unique label.  Return the label.
++If ENVIRONMENT is given, don't bother to find out yourself.
++If NO-INSERT is non-nil, do not insert label into buffer.
++With prefix arg, force to rescan document first.
++When you are prompted to enter or confirm a label, and you reply with
++just the prefix or an empty string, no label at all will be inserted.
++A new label is also recorded into the label list.
++This function is controlled by the settings of reftex-insert-label-flags.
++
++\(fn &optional ENVIRONMENT NO-INSERT)" t nil)
++
++(autoload 'reftex-reference "reftex-ref" "\
++Make a LaTeX reference.  Look only for labels of a certain TYPE.
++With prefix arg, force to rescan buffer for labels.  This should only be
++necessary if you have recently entered labels yourself without using
++reftex-label.  Rescanning of the buffer can also be requested from the
++label selection menu.
++The function returns the selected label or nil.
++If NO-INSERT is non-nil, do not insert \\ref command, just return label.
++When called with 2 C-u prefix args, disable magic word recognition.
++
++\(fn &optional TYPE NO-INSERT CUT)" t nil)
++
++(autoload 'reftex-query-label-type "reftex-ref" "\
++
++
++\(fn)" nil nil)
++
++(autoload 'reftex-show-label-location "reftex-ref" "\
++
++
++\(fn DATA FORWARD NO-REVISIT &optional STAY ERROR)" nil nil)
++
++(autoload 'reftex-goto-label "reftex-ref" "\
++Prompt for a label (with completion) and jump to the location of this label.
++Optional prefix argument OTHER-WINDOW goes to the label in another window.
++
++\(fn &optional OTHER-WINDOW)" t nil)
++
++;;;***
++\f
++;;;### (autoloads nil "reftex-sel" "reftex-sel.el" "faea36cbe37033efd3f9063187eef7ee")
++;;; Generated autoloads from reftex-sel.el
++
++(autoload 'reftex-select-label-mode "reftex-sel" "\
++Major mode for selecting a label in a LaTeX document.
++This buffer was created with RefTeX.
++It only has a meaningful keymap when you are in the middle of a
++selection process.
++To select a label, move the cursor to it and press RET.
++Press `?' for a summary of important key bindings.
++
++During a selection process, these are the local bindings.
++
++\\{reftex-select-label-mode-map}
++
++\(fn)" t nil)
++
++(autoload 'reftex-select-bib-mode "reftex-sel" "\
++Major mode for selecting a citation key in a LaTeX document.
++This buffer was created with RefTeX.
++It only has a meaningful keymap when you are in the middle of a
++selection process.
++In order to select a citation, move the cursor to it and press RET.
++Press `?' for a summary of important key bindings.
++
++During a selection process, these are the local bindings.
++
++\\{reftex-select-label-mode-map}
++
++\(fn)" t nil)
++
++(autoload 'reftex-get-offset "reftex-sel" "\
++
++
++\(fn BUF HERE-AM-I &optional TYPEKEY TOC INDEX FILE)" nil nil)
++
++(autoload 'reftex-insert-docstruct "reftex-sel" "\
++
++
++\(fn BUF TOC LABELS INDEX-ENTRIES FILES CONTEXT COUNTER SHOW-COMMENTED HERE-I-AM XR-PREFIX TOC-BUFFER)" nil nil)
++
++(autoload 'reftex-find-start-point "reftex-sel" "\
++
++
++\(fn FALLBACK &rest LOCATIONS)" nil nil)
++
++(autoload 'reftex-select-item "reftex-sel" "\
++
++
++\(fn REFTEX-SELECT-PROMPT HELP-STRING KEYMAP &optional OFFSET CALL-BACK CB-FLAG)" nil nil)
++
++;;;***
++\f
++;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "db9b727d89e2a6ff01986e7c6aff1058")
++;;; Generated autoloads from reftex-toc.el
++
++(autoload 'reftex-toc "reftex-toc" "\
++Show the table of contents for the current document.
++When called with a raw C-u prefix, rescan the document first.
++
++\(fn &optional REBUILD REUSE)" t nil)
++
++(autoload 'reftex-toc-recenter "reftex-toc" "\
++Display the TOC window and highlight line corresponding to current position.
++
++\(fn &optional ARG)" t nil)
++
++(autoload 'reftex-toggle-auto-toc-recenter "reftex-toc" "\
++Toggle the automatic recentering of the TOC window.
++When active, leaving point idle will make the TOC window jump to the correct
++section.
++
++\(fn)" t nil)
++
++;;;***
++\f
++;;; End of automatically extracted autoloads.
++
++=======
+ \f
+ ;;; Start of automatically extracted autoloads.
+ \f
+ ;;;### (autoloads nil "reftex-auc" "reftex-auc.el" "7c0e0b46919f4ceefe1026e31e73ebcd")
+ ;;; Generated autoloads from reftex-auc.el
+ 
+ (autoload 'reftex-arg-label "reftex-auc" "\
+ Use `reftex-label', `reftex-reference' or AUCTeX's code to insert label arg.
+ What is being used depends upon `reftex-plug-into-AUCTeX'.
+ 
+ \(fn OPTIONAL &optional PROMPT DEFINITION)" nil nil)
+ 
+ (autoload 'reftex-arg-cite "reftex-auc" "\
+ Use `reftex-citation' or AUCTeX's code to insert a cite-key macro argument.
+ What is being used depends upon `reftex-plug-into-AUCTeX'.
+ 
+ \(fn OPTIONAL &optional PROMPT DEFINITION)" nil nil)
+ 
+ (autoload 'reftex-arg-index-tag "reftex-auc" "\
+ Prompt for an index tag with completion.
+ This is the name of an index, not the entry.
+ 
+ \(fn OPTIONAL &optional PROMPT &rest ARGS)" nil nil)
+ 
+ (autoload 'reftex-arg-index "reftex-auc" "\
+ Prompt for an index entry completing with known entries.
+ Completion is specific for just one index, if the macro or a tag
+ argument identify one of multiple indices.
+ 
+ \(fn OPTIONAL &optional PROMPT &rest ARGS)" nil nil)
+ 
+ (autoload 'reftex-plug-into-AUCTeX "reftex-auc" "\
+ 
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-toggle-plug-into-AUCTeX "reftex-auc" "\
+ Toggle Interface between AUCTeX and RefTeX on and off.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-add-label-environments "reftex-auc" "\
+ Add label environment descriptions to `reftex-label-alist-style'.
+ The format of ENTRY-LIST is exactly like `reftex-label-alist'.  See there
+ for details.
+ This function makes it possible to support RefTeX from AUCTeX style files.
+ The entries in ENTRY-LIST will be processed after the user settings in
+ `reftex-label-alist', and before the defaults (specified in
+ `reftex-default-label-alist-entries').  Any changes made to
+ `reftex-label-alist-style' will raise a flag to the effect that
+ the label information is recompiled on next use.
+ 
+ \(fn ENTRY-LIST)" nil nil)
+ 
+ (defalias 'reftex-add-to-label-alist 'reftex-add-label-environments)
+ 
+ (autoload 'reftex-add-section-levels "reftex-auc" "\
+ Add entries to the value of `reftex-section-levels'.
+ The added values are kept local to the current document.  The format
+ of ENTRY-LIST is a list of cons cells (\"MACRONAME\" . LEVEL).  See
+ `reftex-section-levels' for an example.
+ 
+ \(fn ENTRY-LIST)" nil nil)
+ 
+ (autoload 'reftex-notice-new-section "reftex-auc" "\
+ 
+ 
+ \(fn)" nil nil)
+ 
+ ;;;***
+ \f
+ ;;;### (autoloads nil "reftex-cite" "reftex-cite.el" "7eaa61c05a6578999ea68f1be0fbcf49")
+ ;;; Generated autoloads from reftex-cite.el
+ 
+ (autoload 'reftex-default-bibliography "reftex-cite" "\
+ Return the expanded value of variable `reftex-default-bibliography'.
+ The expanded value is cached.
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-bib-or-thebib "reftex-cite" "\
+ Test if BibTeX or \begin{thebibliography} should be used for the citation.
+ Find the bof of the current file
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-get-bibfile-list "reftex-cite" "\
+ Return list of bibfiles for current document.
+ When using the chapterbib or bibunits package you should either
+ use the same database files everywhere, or separate parts using
+ different databases into different files (included into the mater file).
+ Then this function will return the applicable database files.
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-pop-to-bibtex-entry "reftex-cite" "\
+ Find BibTeX KEY in any file in FILE-LIST in another window.
+ If MARK-TO-KILL is non-nil, mark new buffer to kill.
+ If HIGHLIGHT is non-nil, highlight the match.
+ If ITEM in non-nil, search for bibitem instead of database entry.
+ If RETURN is non-nil, just return the entry and restore point.
+ 
+ \(fn KEY FILE-LIST &optional MARK-TO-KILL HIGHLIGHT ITEM RETURN)" nil nil)
+ 
+ (autoload 'reftex-end-of-bib-entry "reftex-cite" "\
+ 
+ 
+ \(fn ITEM)" nil nil)
+ 
+ (autoload 'reftex-parse-bibtex-entry "reftex-cite" "\
+ Parse BibTeX ENTRY.
+ If ENTRY is nil then parse the entry in current buffer between FROM and TO.
+ If RAW is non-nil, keep double quotes/curly braces delimiting fields.
+ 
+ \(fn ENTRY &optional FROM TO RAW)" nil nil)
+ 
+ (autoload 'reftex-citation "reftex-cite" "\
+ Make a citation using BibTeX database files.
+ After prompting for a regular expression, scans the buffers with
+ bibtex entries (taken from the \\bibliography command) and offers the
+ matching entries for selection.  The selected entry is formatted according
+ to `reftex-cite-format' and inserted into the buffer.
+ 
+ If NO-INSERT is non-nil, nothing is inserted, only the selected key returned.
+ 
+ FORMAT-KEY can be used to pre-select a citation format.
+ 
+ When called with a `C-u' prefix, prompt for optional arguments in
+ cite macros.  When called with a numeric prefix, make that many
+ citations.  When called with point inside the braces of a `\\cite'
+ command, it will add another key, ignoring the value of
+ `reftex-cite-format'.
+ 
+ The regular expression uses an expanded syntax: && is interpreted as `and'.
+ Thus, `aaaa&&bbb' matches entries which contain both `aaaa' and `bbb'.
+ While entering the regexp, completion on knows citation keys is possible.
+ `=' is a good regular expression to match all entries in all files.
+ 
+ \(fn &optional NO-INSERT FORMAT-KEY)" t nil)
+ 
+ (autoload 'reftex-citep "reftex-cite" "\
+ Call `reftex-citation' with a format selector `?p'.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-citet "reftex-cite" "\
+ Call `reftex-citation' with a format selector `?t'.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-make-cite-echo-string "reftex-cite" "\
+ Format a bibtex ENTRY for the echo area and cache the result.
+ 
+ \(fn ENTRY DOCSTRUCT-SYMBOL)" nil nil)
+ 
+ (autoload 'reftex-create-bibtex-file "reftex-cite" "\
+ Create a new BibTeX database BIBFILE with all entries referenced in document.
+ The command prompts for a filename and writes the collected
+ entries to that file.  Only entries referenced in the current
+ document with any \\cite-like macros are used.  The sequence in
+ the new file is the same as it was in the old database.
+ 
+ Entries referenced from other entries must appear after all
+ referencing entries.
+ 
+ You can define strings to be used as header or footer for the
+ created files in the variables `reftex-create-bibtex-header' or
+ `reftex-create-bibtex-footer' respectively.
+ 
+ \(fn BIBFILE)" t nil)
+ 
+ ;;;***
+ \f
+ ;;;### (autoloads nil "reftex-dcr" "reftex-dcr.el" "08fc5bd6c35f9d6ab4a6ad336d3769c0")
+ ;;; Generated autoloads from reftex-dcr.el
+ 
+ (autoload 'reftex-view-crossref "reftex-dcr" "\
+ View cross reference of macro at point.  Point must be on the KEY
+ argument.  When at a `\\ref' macro, show corresponding `\\label'
+ definition, also in external documents (`xr').  When on a label, show
+ a locations where KEY is referenced.  Subsequent calls find additional
+ locations.  When on a `\\cite', show the associated `\\bibitem' macro or
+ the BibTeX database entry.  When on a `\\bibitem', show a `\\cite' macro
+ which uses this KEY. When on an `\\index', show other locations marked
+ by the same index entry.
+ To define additional cross referencing items, use the option
+ `reftex-view-crossref-extra'.  See also `reftex-view-crossref-from-bibtex'.
+ With one or two C-u prefixes, enforce rescanning of the document.
+ With argument 2, select the window showing the cross reference.
+ AUTO-HOW is only for the automatic crossref display and is handed through
+ to the functions `reftex-view-cr-cite' and `reftex-view-cr-ref'.
+ 
+ \(fn &optional ARG AUTO-HOW FAIL-QUIETLY)" t nil)
+ 
+ (autoload 'reftex-mouse-view-crossref "reftex-dcr" "\
+ View cross reference of \\ref or \\cite macro where you click.
+ If the macro at point is a \\ref, show the corresponding label definition.
+ If it is a \\cite, show the BibTeX database entry.
+ If there is no such macro at point, search forward to find one.
+ With argument, actually select the window showing the cross reference.
+ 
+ \(fn EV)" t nil)
+ 
+ (autoload 'reftex-toggle-auto-view-crossref "reftex-dcr" "\
+ Toggle the automatic display of crossref information in the echo area.
+ When active, leaving point idle in the argument of a \\ref or \\cite macro
+ will display info in the echo area.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-view-crossref-from-bibtex "reftex-dcr" "\
+ View location in a LaTeX document which cites the BibTeX entry at point.
+ Since BibTeX files can be used by many LaTeX documents, this function
+ prompts upon first use for a buffer in RefTeX mode.  To reset this
+ link to a document, call the function with a prefix arg.
+ Calling this function several times find successive citation locations.
+ 
+ \(fn &optional ARG)" t nil)
+ 
+ ;;;***
+ \f
+ ;;;### (autoloads nil "reftex-global" "reftex-global.el" "5fdd9c2edced0882471f86baf4b4b234")
+ ;;; Generated autoloads from reftex-global.el
+ 
+ (autoload 'reftex-create-tags-file "reftex-global" "\
+ Create TAGS file by running `etags' on the current document.
+ The TAGS file is also immediately visited with `visit-tags-table'.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-grep-document "reftex-global" "\
+ Run grep query through all files related to this document.
+ With prefix arg, force to rescan document.
+ No active TAGS table is required.
+ 
+ \(fn GREP-CMD)" t nil)
+ 
+ (autoload 'reftex-search-document "reftex-global" "\
+ Regexp search through all files of the current document.
+ Starts always in the master file.  Stops when a match is found.
+ To continue searching for next match, use command \\[tags-loop-continue].
+ No active TAGS table is required.
+ 
+ \(fn &optional REGEXP)" t nil)
+ 
+ (autoload 'reftex-query-replace-document "reftex-global" "\
+ Do `query-replace-regexp' of FROM with TO over the entire document.
+ Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
+ If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
+ with the command \\[tags-loop-continue].
+ No active TAGS table is required.
+ 
+ \(fn &optional FROM TO DELIMITED)" t nil)
+ 
+ (autoload 'reftex-find-duplicate-labels "reftex-global" "\
+ Produce a list of all duplicate labels in the document.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-change-label "reftex-global" "\
+ Run `query-replace-regexp' of FROM with TO in all macro arguments.
+ Works on the entire multifile document.
+ If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
+ with the command \\[tags-loop-continue].
+ No active TAGS table is required.
+ 
+ \(fn &optional FROM TO)" t nil)
+ 
+ (autoload 'reftex-renumber-simple-labels "reftex-global" "\
+ Renumber all simple labels in the document to make them sequentially.
+ Simple labels are the ones created by RefTeX, consisting only of the
+ prefix and a number.  After the command completes, all these labels will
+ have sequential numbers throughout the document.  Any references to
+ the labels will be changed as well.  For this, RefTeX looks at the
+ arguments of any macros which either start or end in the string `ref'.
+ This command should be used with care, in particular in multifile
+ documents.  You should not use it if another document refers to this
+ one with the `xr' package.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-save-all-document-buffers "reftex-global" "\
+ Save all documents associated with the current document.
+ The function is useful after a global action like replacing or renumbering
+ labels.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-isearch-minor-mode "reftex-global" "\
+ When on, isearch searches the whole document, not only the current file.
+ This minor mode allows isearch to search through all the files of
+ the current TeX document.
+ 
+ With no argument, this command toggles
+ `reftex-isearch-minor-mode'.  With a prefix argument ARG, turn
+ `reftex-isearch-minor-mode' on if ARG is positive, otherwise turn it off.
+ 
+ \(fn &optional ARG)" t nil)
+ 
+ ;;;***
+ \f
+ ;;;### (autoloads nil "reftex-index" "reftex-index.el" "29cb6e91c2e06592053e9d543f30f0ea")
+ ;;; Generated autoloads from reftex-index.el
+ 
+ (autoload 'reftex-index-selection-or-word "reftex-index" "\
+ Put selection or the word near point into the default index macro.
+ This uses the information in `reftex-index-default-macro' to make an index
+ entry.  The phrase indexed is the current selection or the word near point.
+ When called with one `C-u' prefix, let the user have a chance to edit the
+ index entry.  When called with 2 `C-u' as prefix, also ask for the index
+ macro and other stuff.
+ When called inside TeX math mode as determined by the `texmathp.el' library
+ which is part of AUCTeX, the string is first processed with the
+ `reftex-index-math-format', which see.
+ 
+ \(fn &optional ARG PHRASE)" t nil)
+ 
+ (autoload 'reftex-index "reftex-index" "\
+ Query for an index macro and insert it along with its arguments.
+ The index macros available are those defined in `reftex-index-macro' or
+ by a call to `reftex-add-index-macros', typically from an AUCTeX style file.
+ RefteX provides completion for the index tag and the index key, and
+ will prompt for other arguments.
+ 
+ \(fn &optional CHAR KEY TAG SEL NO-INSERT)" t nil)
+ 
+ (autoload 'reftex-index-complete-tag "reftex-index" "\
+ 
+ 
+ \(fn &optional ITAG OPT-ARGS)" nil nil)
+ 
+ (autoload 'reftex-index-select-tag "reftex-index" "\
+ 
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-index-complete-key "reftex-index" "\
+ 
+ 
+ \(fn &optional TAG OPTIONAL INITIAL)" nil nil)
+ 
+ (autoload 'reftex-index-show-entry "reftex-index" "\
+ 
+ 
+ \(fn DATA &optional NO-REVISIT)" nil nil)
+ 
+ (autoload 'reftex-display-index "reftex-index" "\
+ Display a buffer with an index compiled from the current document.
+ When the document has multiple indices, first prompts for the correct one.
+ When index support is turned off, offer to turn it on.
+ With one or two `C-u' prefixes, rescan document first.
+ With prefix 2, restrict index to current document section.
+ With prefix 3, restrict index to region.
+ 
+ \(fn &optional TAG OVERRIDING-RESTRICTION REDO &rest LOCATIONS)" t nil)
+ 
+ (autoload 'reftex-index-phrase-selection-or-word "reftex-index" "\
+ Add current selection or word at point to the phrases buffer.
+ When you are in transient-mark-mode and the region is active, the
+ selection will be used - otherwise the word at point.
+ You get a chance to edit the entry in the phrases buffer - finish with
+ `C-c C-c'.
+ 
+ \(fn ARG)" t nil)
+ 
+ (autoload 'reftex-index-visit-phrases-buffer "reftex-index" "\
+ Switch to the phrases buffer, initialize if empty.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-index-phrases-mode "reftex-index" "\
+ Major mode for managing the Index phrases of a LaTeX document.
+ This buffer was created with RefTeX.
+ 
+ To insert new phrases, use
+  - `C-c \\' in the LaTeX document to copy selection or word
+  - `\\[reftex-index-new-phrase]' in the phrases buffer.
+ 
+ To index phrases use one of:
+ 
+ \\[reftex-index-this-phrase]     index current phrase
+ \\[reftex-index-next-phrase]     index next phrase (or N with prefix arg)
+ \\[reftex-index-all-phrases]     index all phrases
+ \\[reftex-index-remaining-phrases]     index current and following phrases
+ \\[reftex-index-region-phrases]     index the phrases in the region
+ 
+ You can sort the phrases in this buffer with \\[reftex-index-sort-phrases].
+ To display information about the phrase at point, use \\[reftex-index-phrases-info].
+ 
+ For more information see the RefTeX User Manual.
+ 
+ Here are all local bindings.
+ 
+ \\{reftex-index-phrases-mode-map}
+ 
+ \(fn)" t nil)
+ 
+ ;;;***
+ \f
+ ;;;### (autoloads nil "reftex-parse" "reftex-parse.el" "7bfdcb2f040dbe9a08d2c38c005c8f21")
+ ;;; Generated autoloads from reftex-parse.el
+ 
+ (autoload 'reftex-parse-one "reftex-parse" "\
+ Re-parse this file.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-parse-all "reftex-parse" "\
+ Re-parse entire document.
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-do-parse "reftex-parse" "\
+ Do a document rescan.
+ When allowed, do only a partial scan from FILE.
+ 
+ \(fn RESCAN &optional FILE)" nil nil)
+ 
+ (autoload 'reftex-everything-regexp "reftex-parse" "\
+ 
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-all-document-files "reftex-parse" "\
+ Return a list of all files belonging to the current document.
+ When RELATIVE is non-nil, give file names relative to directory
+ of master file.
+ 
+ \(fn &optional RELATIVE)" nil nil)
+ 
+ (autoload 'reftex-locate-bibliography-files "reftex-parse" "\
+ Scan buffer for bibliography macros and return file list.
+ 
+ \(fn MASTER-DIR &optional FILES)" nil nil)
+ 
+ (autoload 'reftex-section-info "reftex-parse" "\
+ Return a section entry for the current match.
+ Careful: This function expects the match-data to be still in place!
+ 
+ \(fn FILE)" nil nil)
+ 
+ (autoload 'reftex-ensure-index-support "reftex-parse" "\
+ When index support is turned off, ask to turn it on and
+ set the current prefix argument so that `reftex-access-scan-info'
+ will rescan the entire document.
+ 
+ \(fn &optional ABORT)" nil nil)
+ 
+ (autoload 'reftex-index-info-safe "reftex-parse" "\
+ 
+ 
+ \(fn FILE)" nil nil)
+ 
+ (autoload 'reftex-index-info "reftex-parse" "\
+ Return an index entry for the current match.
+ Careful: This function expects the match-data to be still in place!
+ 
+ \(fn FILE)" nil nil)
+ 
+ (autoload 'reftex-short-context "reftex-parse" "\
+ Get about one line of useful context for the label definition at point.
+ 
+ \(fn ENV PARSE &optional BOUND DERIVE)" nil nil)
+ 
+ (autoload 'reftex-where-am-I "reftex-parse" "\
+ Return the docstruct entry above point.
+ Actually returns a cons cell in which the cdr is a flag indicating
+ if the information is exact (t) or approximate (nil).
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-notice-new "reftex-parse" "\
+ Hook to handshake with RefTeX after something new has been inserted.
+ 
+ \(fn &optional N FORCE)" nil nil)
+ 
+ (autoload 'reftex-what-macro-safe "reftex-parse" "\
+ Call `reftex-what-macro' with special syntax table.
+ 
+ \(fn WHICH &optional BOUND)" nil nil)
+ 
+ (autoload 'reftex-what-macro "reftex-parse" "\
+ Find out if point is within the arguments of any TeX-macro.
+ The return value is either (\"\\macro\" . (point)) or a list of them.
+ 
+ If WHICH is nil, immediately return nil.
+ If WHICH is 1, return innermost enclosing macro.
+ If WHICH is t, return list of all macros enclosing point.
+ If WHICH is a list of macros, look only for those macros and return the
+   name of the first macro in this list found to enclose point.
+ If the optional BOUND is an integer, bound backwards directed
+   searches to this point.  If it is nil, limit to nearest \\section -
+   like statement.
+ 
+ This function is pretty stable, but can be fooled if the text contains
+ things like \\macro{aa}{bb} where \\macro is defined to take only one
+ argument.  As RefTeX cannot know this, the string \"bb\" would still be
+ considered an argument of macro \\macro.
+ 
+ \(fn WHICH &optional BOUND)" nil nil)
+ 
+ (autoload 'reftex-what-environment "reftex-parse" "\
+ Find out if point is inside a LaTeX environment.
+ The return value is (e.g.) either (\"equation\" . (point)) or a list of
+ them.
+ 
+ If WHICH is nil, immediately return nil.
+ If WHICH is 1, return innermost enclosing environment.
+ If WHICH is t, return list of all environments enclosing point.
+ If WHICH is a list of environments, look only for those environments and
+   return the name of the first environment in this list found to enclose
+   point.
+ 
+ If the optional BOUND is an integer, bound backwards directed searches to
+ this point.  If it is nil, limit to nearest \\section - like statement.
+ 
+ \(fn WHICH &optional BOUND)" nil nil)
+ 
+ (autoload 'reftex-what-special-env "reftex-parse" "\
+ Run the special environment parsers and return the matches.
+ 
+ The return value is (e.g.) either (\"my-parser-function\" . (point))
+ or a list of them.
+ 
+ If WHICH is nil, immediately return nil.
+ If WHICH is 1, return innermost enclosing environment.
+ If WHICH is t, return list of all environments enclosing point.
+ If WHICH is a list of environments, look only for those environments and
+   return the name of the first environment in this list found to enclose
+   point.
+ 
+ \(fn WHICH &optional BOUND)" nil nil)
+ 
+ (autoload 'reftex-nth-arg "reftex-parse" "\
+ Return the Nth following {} or [] parentheses content.
+ OPT-ARGS is a list of argument numbers which are optional.
+ 
+ \(fn N &optional OPT-ARGS)" nil nil)
+ 
+ (autoload 'reftex-move-over-touching-args "reftex-parse" "\
+ 
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-init-section-numbers "reftex-parse" "\
+ Initialize the section numbers with zeros or with what is found in the TOC-ENTRY.
+ 
+ \(fn &optional TOC-ENTRY APPENDIX)" nil nil)
+ 
+ (autoload 'reftex-section-number "reftex-parse" "\
+ Return a string with the current section number.
+ When LEVEL is non-nil, increase section numbers on that level.
+ 
+ \(fn &optional LEVEL STAR)" nil nil)
+ 
+ ;;;***
+ \f
+ ;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "86c0a243e49d55bb33a32ddac613e189")
+ ;;; Generated autoloads from reftex-ref.el
+ 
+ (autoload 'reftex-label-location "reftex-ref" "\
+ Return the environment or macro which determines the label type at point.
+ If optional BOUND is an integer, limit backward searches to that point.
+ 
+ \(fn &optional BOUND)" nil nil)
+ 
+ (autoload 'reftex-label-info-update "reftex-ref" "\
+ 
+ 
+ \(fn CELL)" nil nil)
+ 
+ (autoload 'reftex-label-info "reftex-ref" "\
+ 
+ 
+ \(fn LABEL &optional FILE BOUND DERIVE ENV-OR-MAC)" nil nil)
+ 
+ (autoload 'reftex-label "reftex-ref" "\
+ Insert a unique label.  Return the label.
+ If ENVIRONMENT is given, don't bother to find out yourself.
+ If NO-INSERT is non-nil, do not insert label into buffer.
+ With prefix arg, force to rescan document first.
+ When you are prompted to enter or confirm a label, and you reply with
+ just the prefix or an empty string, no label at all will be inserted.
+ A new label is also recorded into the label list.
+ This function is controlled by the settings of reftex-insert-label-flags.
+ 
+ \(fn &optional ENVIRONMENT NO-INSERT)" t nil)
+ 
+ (autoload 'reftex-reference "reftex-ref" "\
+ Make a LaTeX reference.  Look only for labels of a certain TYPE.
+ With prefix arg, force to rescan buffer for labels.  This should only be
+ necessary if you have recently entered labels yourself without using
+ reftex-label.  Rescanning of the buffer can also be requested from the
+ label selection menu.
+ The function returns the selected label or nil.
+ If NO-INSERT is non-nil, do not insert \\ref command, just return label.
+ When called with 2 C-u prefix args, disable magic word recognition.
+ 
+ \(fn &optional TYPE NO-INSERT CUT)" t nil)
+ 
+ (autoload 'reftex-query-label-type "reftex-ref" "\
+ 
+ 
+ \(fn)" nil nil)
+ 
+ (autoload 'reftex-show-label-location "reftex-ref" "\
+ 
+ 
+ \(fn DATA FORWARD NO-REVISIT &optional STAY ERROR)" nil nil)
+ 
+ (autoload 'reftex-goto-label "reftex-ref" "\
+ Prompt for a label (with completion) and jump to the location of this label.
+ Optional prefix argument OTHER-WINDOW goes to the label in another window.
+ 
+ \(fn &optional OTHER-WINDOW)" t nil)
+ 
+ ;;;***
+ \f
+ ;;;### (autoloads nil "reftex-sel" "reftex-sel.el" "faea36cbe37033efd3f9063187eef7ee")
+ ;;; Generated autoloads from reftex-sel.el
+ 
+ (autoload 'reftex-select-label-mode "reftex-sel" "\
+ Major mode for selecting a label in a LaTeX document.
+ This buffer was created with RefTeX.
+ It only has a meaningful keymap when you are in the middle of a
+ selection process.
+ To select a label, move the cursor to it and press RET.
+ Press `?' for a summary of important key bindings.
+ 
+ During a selection process, these are the local bindings.
+ 
+ \\{reftex-select-label-mode-map}
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-select-bib-mode "reftex-sel" "\
+ Major mode for selecting a citation key in a LaTeX document.
+ This buffer was created with RefTeX.
+ It only has a meaningful keymap when you are in the middle of a
+ selection process.
+ In order to select a citation, move the cursor to it and press RET.
+ Press `?' for a summary of important key bindings.
+ 
+ During a selection process, these are the local bindings.
+ 
+ \\{reftex-select-label-mode-map}
+ 
+ \(fn)" t nil)
+ 
+ (autoload 'reftex-get-offset "reftex-sel" "\
+ 
+ 
+ \(fn BUF HERE-AM-I &optional TYPEKEY TOC INDEX FILE)" nil nil)
+ 
+ (autoload 'reftex-insert-docstruct "reftex-sel" "\
+ 
+ 
+ \(fn BUF TOC LABELS INDEX-ENTRIES FILES CONTEXT COUNTER SHOW-COMMENTED HERE-I-AM XR-PREFIX TOC-BUFFER)" nil nil)
+ 
+ (autoload 'reftex-find-start-point "reftex-sel" "\
+ 
+ 
+ \(fn FALLBACK &rest LOCATIONS)" nil nil)
+ 
+ (autoload 'reftex-select-item "reftex-sel" "\
+ 
+ 
+ \(fn REFTEX-SELECT-PROMPT HELP-STRING KEYMAP &optional OFFSET CALL-BACK CB-FLAG)" nil nil)
+ 
+ ;;;***
+ \f
+ ;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "db9b727d89e2a6ff01986e7c6aff1058")
+ ;;; Generated autoloads from reftex-toc.el
+ 
+ (autoload 'reftex-toc "reftex-toc" "\
+ Show the table of contents for the current document.
+ When called with a raw C-u prefix, rescan the document first.
+ 
+ \(fn &optional REBUILD REUSE)" t nil)
+ 
+ (autoload 'reftex-toc-recenter "reftex-toc" "\
+ Display the TOC window and highlight line corresponding to current position.
+ 
+ \(fn &optional ARG)" t nil)
+ 
+ (autoload 'reftex-toggle-auto-toc-recenter "reftex-toc" "\
+ Toggle the automatic recentering of the TOC window.
+ When active, leaving point idle will make the TOC window jump to the correct
+ section.
+ 
+ \(fn)" t nil)
+ 
+ ;;;***
+ \f
+ ;;; End of automatically extracted autoloads.
+ 
++>>>>>>> emacs-25
  (provide 'reftex)
  
  ;;; reftex.el ends here
diff --cc src/Makefile.in
index d7ad395,8357655..0000000
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@@ -469,7 -473,7 +474,13 @@@ LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUS
     $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \
     $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \
     $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) \
++<<<<<<< HEAD
 +   $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ)
++||||||| merged common ancestors
++   $(GFILENOTIFY_LIBS) $(LIB_MATH) $(LIBZ)
++=======
+    $(GFILENOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES)
++>>>>>>> emacs-25
  
  $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT)
  	$(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)"
diff --cc test/lisp/abbrev-tests.el
index 17aea5d,6163e0b..0000000
--- a/test/lisp/abbrev-tests.el
+++ b/test/lisp/abbrev-tests.el
@@@ -20,43 -20,24 +20,60 @@@
  ;; You should have received a copy of the GNU General Public License
  ;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
  
++<<<<<<< HEAD:test/lisp/abbrev-tests.el
 +;;; Commentary:
 +
++||||||| merged common ancestors
++=======
+ ;;; Commentary:
+ 
+ ;; `kill-all-abbrevs-test' will remove all user *and* system abbrevs
+ ;; if called noninteractively with the init file loaded.
+ 
++>>>>>>> emacs-25:test/automated/abbrev-tests.el
  ;;; Code:
  
  (require 'ert)
  (require 'abbrev)
+ (require 'seq)
+ 
+ ;; set up test abbrev table and abbrev entry
+ (defun setup-test-abbrev-table ()
+   (defvar ert-test-abbrevs nil)
+   (define-abbrev-table 'ert-test-abbrevs '(("a-e-t" "abbrev-ert-test")))
+   (abbrev-table-put ert-test-abbrevs :ert-test "ert-test-value")
+   ert-test-abbrevs)
  
 +(ert-deftest abbrev-table-p-test ()
 +  (should-not (abbrev-table-p 42))
 +  (should-not (abbrev-table-p "aoeu"))
 +  (should-not (abbrev-table-p '()))
 +  (should-not (abbrev-table-p []))
 +  ;; Missing :abbrev-table-modiff counter:
 +  (should-not (abbrev-table-p (obarray-make)))
 +  (let* ((table (obarray-make)))
 +    (abbrev-table-put table :abbrev-table-modiff 42)
 +    (should (abbrev-table-p table))))
 +
 +(ert-deftest abbrev-make-abbrev-table-test ()
 +  ;; Table without properties:
 +  (let ((table (make-abbrev-table)))
 +    (should (abbrev-table-p table))
 +    (should (= (length table) obarray-default-size)))
 +  ;; Table with one property 'foo with value 'bar:
 +  (let ((table (make-abbrev-table '(foo bar))))
 +    (should (abbrev-table-p table))
 +    (should (= (length table) obarray-default-size))
 +    (should (eq (abbrev-table-get table 'foo) 'bar))))
 +
 +(ert-deftest abbrev-table-get-put-test ()
 +  (let ((table (make-abbrev-table)))
 +    (should-not (abbrev-table-get table 'foo))
 +    (should (= (abbrev-table-put table 'foo 42) 42))
 +    (should (= (abbrev-table-get table 'foo) 42))
 +    (should (eq (abbrev-table-put table 'foo 'bar) 'bar))
 +    (should (eq (abbrev-table-get table 'foo) 'bar))))
 +
  (ert-deftest copy-abbrev-table-test ()
    (defvar foo-abbrev-table nil)         ; Avoid compiler warning
    (define-abbrev-table 'foo-abbrev-table
@@@ -70,5 -51,48 +87,47 @@@
      (should (abbrev-table-p new-foo-abbrev-table)))
    (should-not (string-equal (buffer-name) "*Backtrace*")))
  
+ (ert-deftest kill-all-abbrevs-test ()
+   "Test undefining all defined abbrevs"
+   (unless noninteractive
+     (ert-skip "Cannot test kill-all-abbrevs in interactive mode"))
+ 
+   (let ((num-tables 0))
+     ;; ensure at least one abbrev exists
+     (should (abbrev-table-p (setup-test-abbrev-table)))
+     (setf num-tables (length abbrev-table-name-list))
+     (kill-all-abbrevs)
+ 
+     ;; no tables should have been removed/added
+     (should (= num-tables (length abbrev-table-name-list)))
+     ;; number of empty tables should be the same as number of tables
+     (should (= num-tables (length (seq-filter
+                                    (lambda (table)
+                                        (abbrev-table-empty-p (symbol-value table)))
+                                    abbrev-table-name-list))))))
+ 
+ (ert-deftest abbrev-table-name-test ()
+   "Test returning name of abbrev-table"
+   (let ((ert-test-abbrevs (setup-test-abbrev-table))
+         (no-such-table nil))
+     (should (equal 'ert-test-abbrevs (abbrev-table-name ert-test-abbrevs)))
+     (should (equal nil (abbrev-table-name no-such-table)))))
+ 
+ (ert-deftest clear-abbrev-table-test ()
+   "Test clearing single abbrev table"
+   (let ((ert-test-abbrevs (setup-test-abbrev-table)))
+     (should (equal "a-e-t" (symbol-name
+                             (abbrev-symbol "a-e-t" ert-test-abbrevs))))
+     (should (equal "abbrev-ert-test" (symbol-value
+                                       (abbrev-symbol "a-e-t" ert-test-abbrevs))))
+ 
+     (clear-abbrev-table ert-test-abbrevs)
+ 
+     (should (equal "nil" (symbol-name
+                           (abbrev-symbol "a-e-t" ert-test-abbrevs))))
+     (should (equal nil (symbol-value
+                         (abbrev-symbol "a-e-t" ert-test-abbrevs))))
+     (should (equal t (abbrev-table-empty-p ert-test-abbrevs)))))
+ 
  (provide 'abbrev-tests)
 -
  ;;; abbrev-tests.el ends here
diff --cc test/lisp/progmodes/elisp-mode-tests.el
index 97f86a9,b44e549..0000000
--- a/test/lisp/progmodes/elisp-mode-tests.el
+++ b/test/lisp/progmodes/elisp-mode-tests.el
@@@ -543,7 -543,7 +543,13 @@@ to (xref-elisp-test-descr-to-target xre
  ;; FIXME: deftype
  
  (xref-elisp-deftest find-defs-defun-c-defvar-c
++<<<<<<< HEAD:test/lisp/progmodes/elisp-mode-tests.el
 +  (elisp--xref-find-definitions 'system-name)
++||||||| merged common ancestors
++  (elisp-xref-find 'definitions "system-name")
++=======
+   (xref-backend-definitions 'elisp "system-name")
++>>>>>>> emacs-25:test/automated/elisp-mode-tests.el
    (list
     (xref-make "(defvar system-name)"
  	      (xref-make-elisp-location 'system-name 'defvar "src/editfns.c"))
@@@ -552,7 -552,7 +558,13 @@@
    )
  
  (xref-elisp-deftest find-defs-defun-el-defvar-c
++<<<<<<< HEAD:test/lisp/progmodes/elisp-mode-tests.el
 +  (elisp--xref-find-definitions 'abbrev-mode)
++||||||| merged common ancestors
++  (elisp-xref-find 'definitions "abbrev-mode")
++=======
+   (xref-backend-definitions 'elisp "abbrev-mode")
++>>>>>>> emacs-25:test/automated/elisp-mode-tests.el
    ;; It's a minor mode, but the variable is defined in buffer.c
    (list
     (xref-make "(defvar abbrev-mode)"

[-- Attachment #3: emacs-25-merge.patch.sig --]
[-- Type: application/octet-stream, Size: 415 bytes --]

[-- Attachment #4: Type: text/plain, Size: 151 bytes --]


-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:39         ` Lars Magne Ingebrigtsen
@ 2015-12-30 19:59           ` Eli Zaretskii
  2015-12-30 20:17             ` Lars Magne Ingebrigtsen
  0 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2015-12-30 19:59 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: emacs-devel

> From: Lars Magne Ingebrigtsen <larsi@gnus.org>
> Date: Wed, 30 Dec 2015 20:39:52 +0100
> 
> Well, just remove the test/ directory after merging.  :-)  The test that
> ended up there in emacs-25 is already in master (at the correct
> location), so just removing it is fine.

The "test", in singular?  I've seen there more than one: there's the
etags directory.



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:53         ` Paul Eggert
@ 2015-12-30 19:59           ` John Wiegley
  0 siblings, 0 replies; 20+ messages in thread
From: John Wiegley @ 2015-12-30 19:59 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Eli Zaretskii, Lars Ingebrigtsen, emacs-devel

>>>>> Paul Eggert <eggert@cs.ucla.edu> writes:

> Sure, though I can't do it right this minute. My most-recent published
> proposal is here:
> https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02546.html
> though it still needs work, I expect.

Anytime this week would be fine. I'm around to help you out; we could even
pair-debug it on the phone if you'd like.

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:59           ` Eli Zaretskii
@ 2015-12-30 20:17             ` Lars Magne Ingebrigtsen
  2015-12-30 20:52               ` Eli Zaretskii
  0 siblings, 1 reply; 20+ messages in thread
From: Lars Magne Ingebrigtsen @ 2015-12-30 20:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Lars Magne Ingebrigtsen <larsi@gnus.org>
>> Date: Wed, 30 Dec 2015 20:39:52 +0100
>> 
>> Well, just remove the test/ directory after merging.  :-)  The test that
>> ended up there in emacs-25 is already in master (at the correct
>> location), so just removing it is fine.
>
> The "test", in singular?  I've seen there more than one: there's the
> etags directory.

Oh, right:

 test/{lisp/url => automated}/url-expand-tests.el   |    0
 test/automated/url-parse-tests.el                  |  167 +
 test/etags/lua-src/test.lua                        |   36 +
 test/etags/ruby-src/test.rb                        |   54 +
 test/etags/ruby-src/test1.ruby                     |    7 +

I don't know what's up with the etags directory, but that rename in
automated should be renamed back...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 20:17             ` Lars Magne Ingebrigtsen
@ 2015-12-30 20:52               ` Eli Zaretskii
  0 siblings, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2015-12-30 20:52 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: emacs-devel

> From: Lars Magne Ingebrigtsen <larsi@gnus.org>
> Cc: emacs-devel@gnu.org
> Date: Wed, 30 Dec 2015 21:17:52 +0100
> 
>  test/{lisp/url => automated}/url-expand-tests.el   |    0
>  test/automated/url-parse-tests.el                  |  167 +
>  test/etags/lua-src/test.lua                        |   36 +
>  test/etags/ruby-src/test.rb                        |   54 +
>  test/etags/ruby-src/test1.ruby                     |    7 +
> 
> I don't know what's up with the etags directory

They are tests that were added on the release branch.  They should be
put under test/manual/etags/, if they aren't there yet, and otherwise
deleted.



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Need review of emacs-25-merge branch
  2015-12-30 19:59           ` John Wiegley
@ 2016-01-02  3:32             ` Lars Magne Ingebrigtsen
  0 siblings, 0 replies; 20+ messages in thread
From: Lars Magne Ingebrigtsen @ 2016-01-02  3:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Paul Eggert, emacs-devel

John Wiegley <jwiegley@gmail.com> writes:

>>>>>> Lars Magne Ingebrigtsen <larsi@gnus.org> writes:
>
>> Can you post the twelve merge conflicts? That would make it easier to see
>> whether the results are what we want...
>
> Sure, here is the entire set of conflicts I dealt with yesterday:

Thanks.  Looking over the conflicts and your resolutions, it looks to me
like you did the merges the right way.  :-)  I think.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2016-01-02  3:32 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-30  5:50 Need review of emacs-25-merge branch John Wiegley
2015-12-30  7:46 ` Paul Eggert
2015-12-30 17:23   ` Eli Zaretskii
2015-12-30 16:20 ` Eli Zaretskii
2015-12-30 19:07   ` John Wiegley
2015-12-30 19:15     ` Lars Magne Ingebrigtsen
2015-12-30 19:26     ` Eli Zaretskii
2015-12-30 19:35       ` John Wiegley
2015-12-30 19:39         ` Lars Magne Ingebrigtsen
2015-12-30 19:59           ` Eli Zaretskii
2015-12-30 20:17             ` Lars Magne Ingebrigtsen
2015-12-30 20:52               ` Eli Zaretskii
2015-12-30 19:49       ` John Wiegley
2015-12-30 19:52         ` Lars Magne Ingebrigtsen
2015-12-30 19:59           ` John Wiegley
2016-01-02  3:32             ` Lars Magne Ingebrigtsen
2015-12-30 19:53         ` Paul Eggert
2015-12-30 19:59           ` John Wiegley
     [not found] ` <CABr8ebbF7JYoGPV5gtmAuVsOWamoCdmpq+tqoLqyuoM8OYOCcg@mail.gmail.com>
     [not found]   ` <m2vb7gml15.fsf@newartisans.com>
2015-12-30 17:38     ` Eli Zaretskii
     [not found]     ` <CABr8ebacCsM15oWN55Zhg9ACBh-iy5n9nTF5wDj53=F7Ns25Jw@mail.gmail.com>
2015-12-30 19:10       ` John Wiegley

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.