If @var{action} is @var{private}, then it means the program that
initiated the drop wants Emacs to perform an unspecified action with
-the URL; a reasonable action to perform that case is to open the URL
+the URL; a reasonable action to perform in that case is to open the URL
or copy its contents into the current buffer. Otherwise, @var{action}
has the same meaning as the @var{action} argument to
@code{dnd-begin-file-drag}.
determine what to reply to any such inquiry. The default value is
@code{x-dnd-default-test-function}, which accepts drops if the type of
the data to be dropped is present in @code{x-dnd-known-types}.
-Changing the the variables @code{x-dnd-test-function} and
+Changing the variables @code{x-dnd-test-function} and
@code{x-dnd-known-types} can make Emacs accept or reject drops based
on some other criteria.
@vindex x-dnd-types-alist
If you want to change the way Emacs receives drops of different data
-types, or enable it to understand a new type, change the variable
+types, or you want to enable it to understand a new type, change the variable
@code{x-dnd-types-alist}. Doing so correctly requires detailed
knowledge of what data types other applications use for drag and drop.
@code{"STRING"} or @code{"text/plain"}.
@vindex x-dnd-direct-save-function
+@c FIXME: This description is overly-complicated and confusing. In
+@c particular, the two calls to the function basically sound
+@c identical, so it is unclear how should the function distinguish
+@c between the first and the second one. The description of who asks
+@c whom to do what is also very hard to understand. Needs rewording,
+@c and needs shorter sentences. Perhaps examples could help.
However, @code{x-dnd-types-alist} does not handle a special kind of
drop sent by a program that wants Emacs to tell it where to save a
file in a specific location determined by the user. These drops are
-instead handled by a function set as the value of the variable
-@code{x-dnd-direct-save-function}, which should accept two arguments.
+instead handled by a function that is the value of the variable
+@code{x-dnd-direct-save-function}. This function should accept two arguments.
If the first argument is non-@code{nil}, then the second argument is a
-string describing the name (with no directory name) that the other
-program recommends that the file should be saved under, and the
+file name to save (with leading directories) that the other
+program recommends, and the
function should return the full file name under which it should be
saved. After the function completes, Emacs will ask the other program
to save the file under the name that was returned, and if the file was