Subject: bug#14939: 24.3.50; `make-variable-frame-local' deprecation - alternative?

From: Drew Adams <[email-masked]>
Date: Tue, 23 Jul 2013 08:51:17 -0700 (PDT)

It is not clear what to use instead of `make-variable-frame-local'.  The
doc string says to "explicitly check for a frame parameter instead".

What do you mean "check" for the frame parameter?  When?

I have code that adds a variable with a nil value as a frame parameter
to a particular frame, like so:

(make-variable-frame-local 'the-variable)
(modify-frame-parameters the-frame '((the-variable)))

That still works (the function is deprecated but presumably not
desupported), but apparently I should be doing something different,
in order not to use `make-variable-frame-local'.  What should I be doing
differently?  If I remove the call to `make-variable-frame-local' then
the code no longer works - the frame parameter value is not used as
the variable value in code that tests the variable value.

Is each piece of code that uses the value of the variable supposed to
check the selected frame to see if it has a parameter, and if so, to use
that frame parameter value instead of the variable value?  That would be
ridiculously heavy-handed.

Please advise.  Is this just a problem of unclear doc (it does not
reallyh tell you what to do in place of using
`make-variable-frame-local')?  Or is the deprecation of this function
misguided, because there is no good replacement for it?

In GNU Emacs 24.3.50.1 (i686-pc-mingw32)
 of 2013-07-14 on ODIEONE
Bzr revision: 113423 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/Devel/emacs/binary --enable-checking=yes,glyphs
 CFLAGS='-O0 -g3' CPPFLAGS='-Ic:/Devel/emacs/include'
 LDFLAGS='-Lc:/Devel/emacs/lib''