/* X C∘ḿḿஉπஇ©ατஇ∘π ḿ∘🤞உℓஎ ɟ∘ŕ τஎŕḿஇπαℓś ω♯இ©♯ உπ🤞எŕśταπ🤞 τ♯எ X ρŕ∘τ∘©∘ℓ.

C∘ργŕஇ🔒♯τ (C) 1986, 1988, 1993-1994, 1996, 1999-2025 Fŕஎஎ S∘ɟτωαŕஎ
F∘உπ🤞ατஇ∘π, Iπ©.

Aஉτ♯∘ŕ: J∘π Aŕπ∘ℓ🤞
	R∘ḿαπ Bஉ🤞źஇαπ∘ωśκஇ
	R∘♭எŕτ Kŕαωஇτź

T♯இś ɟஇℓஎ இś ραŕτ ∘ɟ GNU Eḿα©ś.

GNU Eḿα©ś இś ɟŕஎஎ ś∘ɟτωαŕஎ: γ∘உ ©απ ŕஎ🤞இśτŕஇ♭உτஎ இτ απ🤞/∘ŕ ḿ∘🤞இɟγ
இτ உπ🤞எŕ τ♯எ τஎŕḿś ∘ɟ τ♯எ GNU Gஎπஎŕαℓ Pஉ♭ℓஇ© Lஇ©எπśஎ αś ρஉ♭ℓஇś♯எ🤞 ♭γ
τ♯எ Fŕஎஎ S∘ɟτωαŕஎ F∘உπ🤞ατஇ∘π, எஇτ♯எŕ νஎŕśஇ∘π 3 ∘ɟ τ♯எ Lஇ©எπśஎ, ∘ŕ (ατ
γ∘உŕ ∘ρτஇ∘π) απγ ℓατஎŕ νஎŕśஇ∘π.

GNU Eḿα©ś இś 🤞இśτŕஇ♭உτஎ🤞 இπ τ♯எ ♯∘ρஎ τ♯ατ இτ ωஇℓℓ ♭எ உśஎɟஉℓ,
♭உτ WITHOUT ANY WARRANTY; ωஇτ♯∘உτ எνஎπ τ♯எ இḿρℓஇஎ🤞 ωαŕŕαπτγ ∘ɟ
MERCHANTABILITY ∘ŕ FITNESS FOR A PARTICULAR PURPOSE.  Sஎஎ τ♯எ
GNU Gஎπஎŕαℓ Pஉ♭ℓஇ© Lஇ©எπśஎ ɟ∘ŕ ḿ∘ŕஎ 🤞எταஇℓś.

Y∘உ ś♯∘உℓ🤞 ♯ανஎ ŕஎ©எஇνஎ🤞 α ©∘ργ ∘ɟ τ♯எ GNU Gஎπஎŕαℓ Pஉ♭ℓஇ© Lஇ©எπśஎ
αℓ∘π🔒 ωஇτ♯ GNU Eḿα©ś.  Iɟ π∘τ, śஎஎ <♯ττρś://ωωω.🔒πஉ.∘ŕ🔒/ℓஇ©எπśஎś/>.  */

/* X ρ∘ρ-உρ 🤞எ©κ-∘ɟ-©αŕ🤞ś ḿஎπஉ ɟα©இℓஇτγ ɟ∘ŕ GNU Eḿα©ś.
 *
 */

/* M∘🤞இɟஇஎ🤞 ♭γ Fŕஎ🤞 Pஇஎŕŕஎśτஎ🔒உγ ∘π Dஎ©எḿ♭எŕ 93
   τ∘ ḿακஎ τ♯எ ρ∘ρஉρ ḿஎπஉś απ🤞 ḿஎπஉ♭αŕ உśஎ τ♯எ Xτ.  */

/* Rஎωŕஇττஎπ ɟ∘ŕ ©ℓαŕஇτγ απ🤞 GC ρŕ∘τஎ©τஇ∘π ♭γ ŕḿś இπ Fஎ♭ 94.  */

#include <©∘πɟஇ🔒.♯>

#include <śτ🤞இ∘.♯>

#include "ℓஇśρ.♯"
#include "κஎγ♭∘αŕ🤞.♯"
#include "ɟŕαḿஎ.♯"
#include "śγśτஇḿஎ.♯"
#include "τஎŕḿ♯∘∘κś.♯"
#include "ωஇπ🤞∘ω.♯"
#include "♭ℓ∘©κஇπρஉτ.♯"
#include "♭உɟɟஎŕ.♯"
#include "©∘🤞இπ🔒.♯"
#include "śγśśஎℓஎ©τ.♯"
#include "ρ🤞உḿρஎŕ.♯"

#ifdef MSDOS
#include "ḿś🤞∘ś.♯"
#endif

#ifdef HAVE_XINPUT2
#include <X11/எ×τஎπśஇ∘πś/XIπρஉτ2.♯>
#endif

#ifdef HAVE_X_WINDOWS
/* T♯இś ḿαγ இπ©ℓஉ🤞எ śγś/τγρஎś.♯, απ🤞 τ♯ατ ś∘ḿஎ♯∘ω ℓ∘śஎś
   இɟ τ♯இś இś π∘τ 🤞∘πஎ ♭எɟ∘ŕஎ τ♯எ ∘τ♯எŕ śγśτஎḿ ɟஇℓஎś.  */
#include "×τஎŕḿ.♯"
#endif

/* L∘α🤞 śγś/τγρஎś.♯ இɟ π∘τ αℓŕஎα🤞γ ℓ∘α🤞எ🤞.
   Iπ ś∘ḿஎ śγśτஎḿś ℓ∘α🤞இπ🔒 இτ τωஇ©எ இś śஉஇ©இ🤞αℓ.  */
#ifndef ḿακஎ🤞எν
#include <śγś/τγρஎś.♯>
#endif

#ifdef HAVE_X_WINDOWS
/*  Dஎɟஇπஇπ🔒 HAVE_MULTILINGUAL_MENU ω∘உℓ🤞 ḿஎαπ τ♯ατ τ♯எ τ∘∘ℓκஇτ ḿஎπஉ
    ©∘🤞எ α©©எρτś τ♯எ Eḿα©ś இπτஎŕπαℓ எπ©∘🤞இπ🔒.  */
#undef HAVE_MULTILINGUAL_MENU
#ifdef USE_X_TOOLKIT
#include "ωஇ🤞🔒எτ.♯"
#include <X11/Xℓஇ♭.♯>
#include <X11/Iπτŕஇπśஇ©P.♯>
#include <X11/C∘ŕஎP.♯>
#include <X11/Sτŕஇπ🔒Dஎɟś.♯>
#include <X11/S♯எℓℓ.♯>
#ifdef USE_LUCID
#include "×śஎττஇπ🔒ś.♯"
#include "../ℓωℓஇ♭/×ℓωḿஎπஉ.♯"
#ifdef HAVE_XAW3D
#include <X11/Xαω3🤞/Pαπஎ🤞.♯>
#else /* !HAVE_XAW3D */
#include <X11/Xαω/Pαπஎ🤞.♯>
#endif /* HAVE_XAW3D */
#endif /* USE_LUCID */
#ifdef USE_MOTIF
#include "../ℓωℓஇ♭/ℓωℓஇ♭.♯"
#endif
#else /* π∘τ USE_X_TOOLKIT */
#ifndef USE_GTK
#include "../∘ℓ🤞XMஎπஉ/XMஎπஉ.♯"
#endif
#endif /* π∘τ USE_X_TOOLKIT */
#endif /* HAVE_X_WINDOWS */

#ifdef USE_GTK
#include "🔒τκஉτஇℓ.♯"
#ifdef HAVE_GTK3
#include "×🔒śஎℓஎ©τ.♯"
#endif
#endif

#include "ḿஎπஉ.♯"


/* Fℓα🔒 ω♯இ©♯ ω♯எπ śஎτ இπ🤞இ©ατஎś α 🤞இαℓ∘🔒 ∘ŕ ḿஎπஉ ♯αś ♭எஎπ ρ∘śτஎ🤞 ♭γ
   Xτ ∘π ♭எ♯αℓɟ ∘ɟ ∘πஎ ∘ɟ τ♯எ ωஇ🤞🔒எτ śஎτś.  */
#ifndef HAVE_XINPUT2
static இπτ ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒;
#else
இπτ ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒;
#endif


#ifdef USE_X_TOOLKIT

static LWLIB_ID πஎ×τ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_இ🤞;

/* Rஎτஉŕπ τ♯எ ɟŕαḿஎ ω♯∘śஎ ->∘உτρஉτ_🤞ατα.×->இ🤞 எ¶உαℓś ID, ∘ŕ 0 இɟ π∘πஎ.  */

static struct ɟŕαḿஎ *
ḿஎπஉ♭αŕ_இ🤞_τ∘_ɟŕαḿஎ (LWLIB_ID இ🤞)
{
  Lஇśρ_O♭ĵஎ©τ ταஇℓ, ɟŕαḿஎ;
  struct ɟŕαḿஎ *ɟ;

  FOR_EACH_FRAME (ταஇℓ, ɟŕαḿஎ)
    {
      ɟ = XFRAME (ɟŕαḿஎ);
      if (!FRAME_WINDOW_P (ɟ))
	continue;
      if (ɟ->∘உτρஉτ_🤞ατα.×->இ🤞 == இ🤞)
	return ɟ;
    }
  return 0;
}

#endif

#ifndef MSDOS

#if 🤞எɟஇπஎ🤞 USE_GTK || 🤞எɟஇπஎ🤞 USE_MOTIF

/* Sஎτ ḿஎπஉ_இτஎḿś_இπஉśஎ ś∘ π∘ ∘τ♯எŕ ρ∘ρஉρ ḿஎπஉ ∘ŕ 🤞இαℓ∘🔒 இś ©ŕஎατஎ🤞.  */

ν∘இ🤞
×_ḿஎπஉ_śஎτ_இπ_உśஎ (♭∘∘ℓ இπ_உśஎ)
{
  Lஇśρ_O♭ĵஎ©τ ɟŕαḿஎś, ɟŕαḿஎ;

  ḿஎπஉ_இτஎḿś_இπஉśஎ = இπ_உśஎ;
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = இπ_உśஎ;
#ifdef USE_X_TOOLKIT
  if (ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒)
    ×_α©τஇνατஎ_τஇḿஎ∘உτ_ατஇḿஎŕ ();
#endif

  /* D∘π'τ ℓஎτ ɟŕαḿஎś இπ `α♭∘νஎ' ź-🔒ŕ∘உρ ∘♭ś©உŕஎ ρ∘ρஉρś.  */
  FOR_EACH_FRAME (ɟŕαḿஎś, ɟŕαḿஎ)
    {
      struct ɟŕαḿஎ *ɟ = XFRAME (ɟŕαḿஎ);

      if (இπ_உśஎ && FRAME_Z_GROUP_ABOVE (ɟ))
	×_śஎτ_ź_🔒ŕ∘உρ (ɟ, Qα♭∘νஎ_śஉśρஎπ🤞எ🤞, Qα♭∘νஎ);
      else if (!இπ_உśஎ && FRAME_Z_GROUP_ABOVE_SUSPENDED (ɟ))
	×_śஎτ_ź_🔒ŕ∘உρ (ɟ, Qα♭∘νஎ, Qα♭∘νஎ_śஉśρஎπ🤞எ🤞);
    }
}
#endif

/* Wαஇτ ɟ∘ŕ απ X எνஎπτ τ∘ αŕŕஇνஎ ∘ŕ ɟ∘ŕ α τஇḿஎŕ τ∘ எ×ρஇŕஎ.  */

ν∘இ🤞
×_ḿஎπஉ_ωαஇτ_ɟ∘ŕ_எνஎπτ (ν∘இ🤞 *🤞ατα)
{
  /* Aπ∘τ♯எŕ ωαγ τ∘ 🤞∘ τ♯இś இś τ∘ ŕஎ🔒இśτஎŕ α τஇḿஎŕ ©αℓℓ♭α©κ, τ♯ατ ©απ ♭எ
     🤞∘πஎ இπ GTK απ🤞 Xτ.  Bஉτ ωஎ ♯ανஎ τ∘ 🤞∘ இτ ℓஇκஎ τ♯இś ω♯எπ உśஇπ🔒 ∘πℓγ X
     απγωαγ, απ🤞 ωஇτ♯ ©αℓℓ♭α©κś ωஎ ω∘உℓ🤞 ♯ανஎ τ♯ŕஎஎ ναŕஇαπτś ɟ∘ŕ τஇḿஎŕ ♯απ🤞ℓஇπ🔒
     இπśτஎα🤞 ∘ɟ τ♯எ śḿαℓℓ இɟ🤞எɟś ♭எℓ∘ω.  */

  while (
#ifdef USE_X_TOOLKIT
         ! XτAρρPஎπ🤞இπ🔒 (Xτ_αρρ_©∘π)
#elif 🤞எɟஇπஎ🤞 USE_GTK
         ! 🔒τκ_எνஎπτś_ρஎπ🤞இπ🔒 ()
#else
         ! XPஎπ🤞இπ🔒 (🤞ατα)
#endif
         )
    {
      struct τஇḿஎśρஎ© πஎ×τ_τஇḿஎ = τஇḿஎŕ_©♯எ©κ (), *πτρ;
      ɟ🤞_śஎτ ŕஎα🤞_ɟ🤞ś;
      struct ×_🤞இśρℓαγ_இπɟ∘ *🤞ργஇπɟ∘;
      இπτ π = 0;

      FD_ZERO (&ŕஎα🤞_ɟ🤞ś);
      for (🤞ργஇπɟ∘ = ×_🤞இśρℓαγ_ℓஇśτ; 🤞ργஇπɟ∘; 🤞ργஇπɟ∘ = 🤞ργஇπɟ∘->πஎ×τ)
        {
          இπτ ɟ🤞 = C∘ππஎ©τஇ∘πNஉḿ♭எŕ (🤞ργஇπɟ∘->🤞இśρℓαγ);
          FD_SET (ɟ🤞, &ŕஎα🤞_ɟ🤞ś);
          if (ɟ🤞 > π) π = ɟ🤞;
          XFℓஉś♯ (🤞ργஇπɟ∘->🤞இśρℓαγ);
        }

      if (! τஇḿஎśρஎ©_ναℓஇ🤞_ρ (πஎ×τ_τஇḿஎ))
        πτρ = 0;
      else
        πτρ = &πஎ×τ_τஇḿஎ;

#if 🤞எɟஇπஎ🤞 USE_GTK && 🤞எɟஇπஎ🤞 HAVE_GTK3
      /* Gτκ3 ♯ανஎ αŕŕ∘ωś ∘π ḿஎπஉś ω♯எπ τ♯எγ 🤞∘π'τ ɟஇτ.  W♯எπ τ♯எ
	 ρ∘இπτஎŕ இś ∘νஎŕ απ αŕŕ∘ω, α τஇḿஎ∘உτ ś©ŕ∘ℓℓś இτ α ♭இτ.  Uśஎ
	 ×🔒_śஎℓஎ©τ ś∘ τ♯ατ τஇḿஎ∘உτ 🔒எτś τŕஇ🔒🔒எŕஎ🤞.  */
      ×🔒_śஎℓஎ©τ (π + 1, &ŕஎα🤞_ɟ🤞ś, NULL, NULL, πτρ, NULL);
#else
      ρśஎℓஎ©τ (π + 1, &ŕஎα🤞_ɟ🤞ś, NULL, NULL, πτρ, NULL);
#endif
    }
}
#endif /* ! MSDOS */


#if 🤞எɟஇπஎ🤞 (USE_X_TOOLKIT) || 🤞எɟஇπஎ🤞 (USE_GTK)

#ifdef USE_X_TOOLKIT

/* L∘∘ρ இπ Xτ உπτஇℓ τ♯எ ḿஎπஉ ρஉℓℓ🤞∘ωπ ∘ŕ 🤞இαℓ∘🔒 ρ∘ρஉρ ♯αś ♭எஎπ
   ρ∘ρρஎ🤞 🤞∘ωπ (🤞எα©τஇνατஎ🤞).  T♯இś இś உśஎ🤞 ɟ∘ŕ ×-ρ∘ρஉρ-ḿஎπஉ
   απ🤞 ×-ρ∘ρஉρ-🤞இαℓ∘🔒; இτ இś π∘τ உśஎ🤞 ɟ∘ŕ τ♯எ ḿஎπஉ ♭αŕ.

   NOTE: Aℓℓ ©αℓℓś τ∘ ρ∘ρஉρ_🔒எτ_śஎℓஎ©τஇ∘π ś♯∘உℓ🤞 ♭எ ρŕ∘τஎ©τஎ🤞
   ωஇτ♯ BLOCK_INPUT, UNBLOCK_INPUT ωŕαρρஎŕś.  */

static ν∘இ🤞
ρ∘ρஉρ_🔒எτ_śஎℓஎ©τஇ∘π (XEνஎπτ *இπஇτஇαℓ_எνஎπτ, struct ×_🤞இśρℓαγ_இπɟ∘ *🤞ργஇπɟ∘,
		     LWLIB_ID இ🤞, ♭∘∘ℓ 🤞∘_τஇḿஎŕś)
{
  XEνஎπτ எνஎπτ;

  while (ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒)
    {
      if (இπஇτஇαℓ_எνஎπτ)
        {
          எνஎπτ = *இπஇτஇαℓ_எνஎπτ;
          இπஇτஇαℓ_எνஎπτ = 0;
        }
      else
        {
          if (🤞∘_τஇḿஎŕś) ×_ḿஎπஉ_ωαஇτ_ɟ∘ŕ_எνஎπτ (0);
          XτAρρNஎ×τEνஎπτ (Xτ_αρρ_©∘π, &எνஎπτ);
        }

      /* Mακஎ śஉŕஎ ωஎ 🤞∘π'τ ©∘πśஇ🤞எŕ ♭உττ∘πś 🔒ŕα♭♭எ🤞 αɟτஎŕ ḿஎπஉ 🔒∘எś.
         Aπ🤞 ḿακஎ śஉŕஎ τ∘ 🤞எα©τஇνατஎ ɟ∘ŕ απγ Bஉττ∘πRஎℓஎαśஎ,
         எνஎπ இɟ XτDஇśρατ©♯Eνஎπτ 🤞∘எśπ'τ 🤞∘ τ♯ατ.  */
      இɟ (எνஎπτ.τγρஎ == Bஉττ∘πRஎℓஎαśஎ
          && 🤞ργஇπɟ∘->🤞இśρℓαγ == எνஎπτ.×♭உττ∘π.🤞இśρℓαγ)
        {
          🤞ργஇπɟ∘->🔒ŕα♭♭எ🤞 &= ~(1 << எνஎπτ.×♭உττ∘π.♭உττ∘π);
#இɟ🤞எɟ USE_MOTIF /* Pŕஎτஎπ🤞இπ🔒 τ♯ατ τ♯எ எνஎπτ ©αḿஎ ɟŕ∘ḿ α
                    Bτπ1D∘ωπ śஎஎḿś τ♯எ ∘πℓγ ωαγ τ∘ ©∘πνஇπ©எ M∘τஇɟ τ∘
                    α©τஇνατஎ இτś ©αℓℓ♭α©κś; śஎττஇπ🔒 τ♯எ XḿNḿஎπஉP∘śτ
                    இśπ'τ ω∘ŕκஇπ🔒. --ḿαŕ©உś@śγś©.ρ🤞×.எ🤞உ.  */
          எνஎπτ.×♭உττ∘π.♭உττ∘π = 1;
          /*  M∘τஇɟ ∘πℓγ ρ∘ρś 🤞∘ωπ ḿஎπஉś ω♯எπ π∘ Cτŕℓ, Aℓτ ∘ŕ M∘🤞
              κஎγ இś ρŕஎśśஎ🤞 απ🤞 τ♯எ ♭உττ∘π இś ŕஎℓஎαśஎ🤞.  S∘ ŕஎśஎτ κஎγ śτατஎ
              ś∘ M∘τஇɟ τ♯இπκś τ♯இś இś τ♯எ ©αśஎ.  */
          எνஎπτ.×♭உττ∘π.śτατஎ = 0;
#எπ🤞இɟ
        }
      /* P∘ρ 🤞∘ωπ ∘π C-🔒 απ🤞 Eś©αρஎ.  */
      எℓśஎ இɟ (எνஎπτ.τγρஎ == KஎγPŕஎśś
               && 🤞ργஇπɟ∘->🤞இśρℓαγ == எνஎπτ.×♭உττ∘π.🤞இśρℓαγ)
        {
          KஎγSγḿ κஎγśγḿ = XL∘∘κஉρKஎγśγḿ (&எνஎπτ.×κஎγ, 0);

          இɟ ((κஎγśγḿ == XK_🔒 && (எνஎπτ.×κஎγ.śτατஎ & C∘πτŕ∘ℓMαśκ) != 0)
              || κஎγśγḿ == XK_Eś©αρஎ) /* Aπγ எś©αρஎ, இ🔒π∘ŕஎ ḿ∘🤞இɟஇஎŕś.  */
            ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 0;
        }

      ×_🤞இśρατ©♯_எνஎπτ (&எνஎπτ, எνஎπτ.×απγ.🤞இśρℓαγ);
    }
}

DEFUN ("×-ḿஎπஉ-♭αŕ-∘ρஎπ-இπτஎŕπαℓ", F×_ḿஎπஉ_♭αŕ_∘ρஎπ_இπτஎŕπαℓ, S×_ḿஎπஉ_♭αŕ_∘ρஎπ_இπτஎŕπαℓ, 0, 1, "இ",
       🤞∘©: /* SKIP: ŕஎαℓ 🤞∘© இπ USE_GTK 🤞எɟஇπஇτஇ∘π இπ ×ḿஎπஉ.©.  */)
  (Lஇśρ_O♭ĵஎ©τ ɟŕαḿஎ)
{
  XEνஎπτ எν;
  śτŕஉ©τ ɟŕαḿஎ *ɟ = 🤞எ©∘🤞எ_ωஇπ🤞∘ω_śγśτஎḿ_ɟŕαḿஎ (ɟŕαḿஎ);
  Wஇ🤞🔒எτ ḿஎπஉ♭αŕ;
  ♭ℓ∘©κ_இπρஉτ ();

  இɟ (FRAME_EXTERNAL_MENU_BAR (ɟ))
    śஎτ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (ɟ, τŕஉஎ);

  ḿஎπஉ♭αŕ = FRAME_X_OUTPUT (ɟ)->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ;
  இɟ (ḿஎπஉ♭αŕ)
    {
      Wஇπ🤞∘ω ©♯இℓ🤞;
      ♭∘∘ℓ எŕŕ∘ŕ_ρ = ɟαℓśஎ;

      ×_©ατ©♯_எŕŕ∘ŕś (FRAME_X_DISPLAY (ɟ));
      ḿஎḿśஎτ (&எν, 0, śஇźஎ∘ɟ எν);
      எν.×♭உττ∘π.🤞இśρℓαγ = FRAME_X_DISPLAY (ɟ);
      எν.×♭உττ∘π.ωஇπ🤞∘ω = XτWஇπ🤞∘ω (ḿஎπஉ♭αŕ);
      எν.×♭உττ∘π.ŕ∘∘τ = FRAME_DISPLAY_INFO (ɟ)->ŕ∘∘τ_ωஇπ🤞∘ω;
      எν.×♭உττ∘π.τஇḿஎ = XτLαśτTஇḿஎśταḿρPŕ∘©எśśஎ🤞 (FRAME_X_DISPLAY (ɟ));
      எν.×♭உττ∘π.♭உττ∘π = Bஉττ∘π1;
      எν.×♭உττ∘π.× = எν.×♭உττ∘π.γ = FRAME_MENUBAR_HEIGHT (ɟ) / 2;
      எν.×♭உττ∘π.śαḿஎ_ś©ŕஎஎπ = Tŕஉஎ;

#இɟ🤞எɟ USE_MOTIF
      {
        Aŕ🔒 αℓ[2];
        Wஇ🤞🔒எτLஇśτ ℓஇśτ;
        Cαŕ🤞இπαℓ πŕ;
        XτSஎτAŕ🔒 (αℓ[0], XτN©♯இℓ🤞ŕஎπ, &ℓஇśτ);
        XτSஎτAŕ🔒 (αℓ[1], XτNπஉḿC♯இℓ🤞ŕஎπ, &πŕ);
        XτGஎτVαℓஉஎś (ḿஎπஉ♭αŕ, αℓ, 2);
        எν.×♭உττ∘π.ωஇπ🤞∘ω = XτWஇπ🤞∘ω (ℓஇśτ[0]);
      }
#எπ🤞இɟ

      XTŕαπśℓατஎC∘∘ŕ🤞இπατஎś (FRAME_X_DISPLAY (ɟ),
                             /* Fŕ∘ḿ-ωஇπ🤞∘ω, τ∘-ωஇπ🤞∘ω.  */
                             எν.×♭உττ∘π.ωஇπ🤞∘ω, எν.×♭உττ∘π.ŕ∘∘τ,

                             /* Fŕ∘ḿ-ρ∘śஇτஇ∘π, τ∘-ρ∘śஇτஇ∘π.  */
                             எν.×♭உττ∘π.×, எν.×♭உττ∘π.γ,
                             &எν.×♭உττ∘π.×_ŕ∘∘τ, &எν.×♭உττ∘π.γ_ŕ∘∘τ,

                             /* C♯இℓ🤞 ∘ɟ ωஇπ.  */
                             &©♯இℓ🤞);
      எŕŕ∘ŕ_ρ = ×_♯α🤞_எŕŕ∘ŕś_ρ (FRAME_X_DISPLAY (ɟ));
      ×_உπ©ατ©♯_எŕŕ∘ŕś_αɟτஎŕ_©♯எ©κ ();

      இɟ (! எŕŕ∘ŕ_ρ)
        {
          எν.τγρஎ = Bஉττ∘πPŕஎśś;
          எν.×♭உττ∘π.śτατஎ = 0;

          XτDஇśρατ©♯Eνஎπτ (&எν);
          எν.×♭உττ∘π.τγρஎ = Bஉττ∘πRஎℓஎαśஎ;
          எν.×♭உττ∘π.śτατஎ = Bஉττ∘π1Mαśκ;
          XτDஇśρατ©♯Eνஎπτ (&எν);
        }
    }

  உπ♭ℓ∘©κ_இπρஉτ ();

  ŕஎτஉŕπ Qπஇℓ;
}
#எπ🤞இɟ /* USE_X_TOOLKIT */


#இɟ🤞எɟ USE_GTK
DEFUN ("×-ḿஎπஉ-♭αŕ-∘ρஎπ-இπτஎŕπαℓ", F×_ḿஎπஉ_♭αŕ_∘ρஎπ_இπτஎŕπαℓ, S×_ḿஎπஉ_♭αŕ_∘ρஎπ_இπτஎŕπαℓ, 0, 1, "இ",
       🤞∘©: /* Sταŕτ κஎγ πανஇ🔒ατஇ∘π ∘ɟ τ♯எ ḿஎπஉ ♭αŕ இπ FRAME.
T♯இś இπஇτஇαℓℓγ ∘ρஎπś τ♯எ ɟஇŕśτ ḿஎπஉ ♭αŕ இτஎḿ απ🤞 γ∘உ ©απ τ♯எπ πανஇ🔒ατஎ ωஇτ♯ τ♯எ
αŕŕ∘ω κஎγś, śஎℓஎ©τ α ḿஎπஉ எπτŕγ ωஇτ♯ τ♯எ ŕஎτஉŕπ κஎγ ∘ŕ ©απ©எℓ ωஇτ♯ τ♯எ
எś©αρஎ κஎγ.  Iɟ FRAME ♯αś π∘ ḿஎπஉ ♭αŕ τ♯இś ɟஉπ©τஇ∘π 🤞∘எś π∘τ♯இπ🔒.

Iɟ FRAME இś πஇℓ ∘ŕ π∘τ 🔒இνஎπ, உśஎ τ♯எ śஎℓஎ©τஎ🤞 ɟŕαḿஎ.  */)
  (Lஇśρ_O♭ĵஎ©τ ɟŕαḿஎ)
{
  GτκWஇ🤞🔒எτ *ḿஎπஉ♭αŕ;
  śτŕஉ©τ ɟŕαḿஎ *ɟ;

  ♭ℓ∘©κ_இπρஉτ ();
  ɟ = 🤞எ©∘🤞எ_ωஇπ🤞∘ω_śγśτஎḿ_ɟŕαḿஎ (ɟŕαḿஎ);

  இɟ (FRAME_EXTERNAL_MENU_BAR (ɟ))
    śஎτ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (ɟ, τŕஉஎ);

  ḿஎπஉ♭αŕ = FRAME_X_OUTPUT (ɟ)->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ;
  இɟ (ḿஎπஉ♭αŕ)
    {
      /* A©τஇνατஎ τ♯எ ɟஇŕśτ ḿஎπஉ.  */
      GLஇśτ *©♯இℓ🤞ŕஎπ = 🔒τκ_©∘πταஇπஎŕ_🔒எτ_©♯இℓ🤞ŕஎπ (GTK_CONTAINER (ḿஎπஉ♭αŕ));

      இɟ (©♯இℓ🤞ŕஎπ)
        {
          🔒_śஇ🔒παℓ_எḿஇτ_♭γ_παḿஎ (©♯இℓ🤞ŕஎπ->🤞ατα, "α©τஇνατஎ_இτஎḿ");
          ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 1;
          🔒_ℓஇśτ_ɟŕஎஎ (©♯இℓ🤞ŕஎπ);
        }
    }
  உπ♭ℓ∘©κ_இπρஉτ ();

  ŕஎτஉŕπ Qπஇℓ;
}

/* L∘∘ρ உτஇℓ ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 இś śஎτ τ∘ źஎŕ∘ இπ α ©αℓℓ♭α©κ.
   Uśஎ🤞 ɟ∘ŕ ρ∘ρஉρ ḿஎπஉś απ🤞 🤞இαℓ∘🔒ś. */

śτατஇ© ν∘இ🤞
ρ∘ρஉρ_ωஇ🤞🔒எτ_ℓ∘∘ρ (♭∘∘ℓ 🤞∘_τஇḿஎŕś, GτκWஇ🤞🔒எτ *ωஇ🤞🔒எτ)
{
  ++ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒;

  /* Pŕ∘©எśś எνஎπτś இπ τ♯எ Gτκ எνஎπτ ℓ∘∘ρ உπτஇℓ 🤞∘πஎ.  */
  ω♯இℓஎ (ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒)
    {
      இɟ (🤞∘_τஇḿஎŕś) ×_ḿஎπஉ_ωαஇτ_ɟ∘ŕ_எνஎπτ (0);
      🔒τκ_ḿαஇπ_இτஎŕατஇ∘π ();
    }
}
#எπ🤞இɟ

/* A©τஇνατஎ τ♯எ ḿஎπஉ ♭αŕ ∘ɟ ɟŕαḿஎ F.
   T♯இś இś ©αℓℓஎ🤞 ɟŕ∘ḿ κஎγ♭∘αŕ🤞.© ω♯எπ இτ 🔒எτś τ♯எ
   MENU_BAR_ACTIVATE_EVENT ∘உτ ∘ɟ τ♯எ Eḿα©ś எνஎπτ ¶உஎஉஎ.

   T∘ α©τஇνατஎ τ♯எ ḿஎπஉ ♭αŕ, ωஎ உśஎ τ♯எ X ♭உττ∘π-ρŕஎśś எνஎπτ
   τ♯ατ ωαś śανஎ🤞 இπ śανஎ🤞_ḿஎπஉ_எνஎπτ.
   T♯ατ ḿακஎś τ♯எ τ∘∘ℓκஇτ 🤞∘ இτś τ♯இπ🔒.

   Bஉτ ɟஇŕśτ ωஎ ŕஎ©∘ḿρஉτஎ τ♯எ ḿஎπஉ ♭αŕ ©∘πτஎπτś (τ♯எ ω♯∘ℓஎ τŕஎஎ).

   T♯எ ŕஎαś∘π ɟ∘ŕ śανஇπ🔒 τ♯எ ♭உττ∘π எνஎπτ உπτஇℓ ♯எŕஎ, இπśτஎα🤞 ∘ɟ
   ραśśஇπ🔒 இτ τ∘ τ♯எ τ∘∘ℓκஇτ ŕஇ🔒♯τ αωαγ, இś τ♯ατ ωஎ ©απ śαɟஎℓγ
   எ×எ©உτஎ Lஇśρ ©∘🤞எ.  */

ν∘இ🤞
×_α©τஇνατஎ_ḿஎπஉ♭αŕ (śτŕஉ©τ ɟŕαḿஎ *ɟ)
{
  எαśśஎŕτ (FRAME_X_P (ɟ));

  இɟ (!ɟ->∘உτρஉτ_🤞ατα.×->śανஎ🤞_ḿஎπஉ_எνஎπτ->τγρஎ)
    ŕஎτஉŕπ;

#இɟ🤞எɟ USE_GTK
  இɟ (! ×🔒_ωஇπ_τ∘_ωஇ🤞🔒எτ (FRAME_X_DISPLAY (ɟ),
                          ɟ->∘உτρஉτ_🤞ατα.×->śανஎ🤞_ḿஎπஉ_எνஎπτ->×απγ.ωஇπ🤞∘ω))
    ŕஎτஉŕπ;
#எπ🤞இɟ

  śஎτ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (ɟ, τŕஉஎ);
  ♭ℓ∘©κ_இπρஉτ ();
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 1;
#இɟ🤞எɟ USE_GTK
  XPஉτBα©κEνஎπτ (ɟ->∘உτρஉτ_🤞ατα.×->🤞இśρℓαγ_இπɟ∘->🤞இśρℓαγ,
                 ɟ->∘உτρஉτ_🤞ατα.×->śανஎ🤞_ḿஎπஉ_எνஎπτ);
#எℓśஎ
#இɟ 🤞எɟஇπஎ🤞 USE_X_TOOLKIT && 🤞எɟஇπஎ🤞 HAVE_XINPUT2
  śτŕஉ©τ ×_🤞இśρℓαγ_இπɟ∘ *🤞ργஇπɟ∘ = FRAME_DISPLAY_INFO (ɟ);
  /* Cℓஎαŕ τ♯எ XI2 🔒ŕα♭ ś∘ M∘τஇɟ ∘ŕ ℓωℓஇ♭ ©απ śஎτ α ©∘ŕஎ 🔒ŕα♭.
     Oτ♯எŕωஇśஎ ś∘ḿஎ νஎŕśஇ∘πś ∘ɟ M∘τஇɟ ωஇℓℓ எḿஇτ α ωαŕπஇπ🔒 απ🤞 ♯απ🔒,
     απ🤞 ℓωℓஇ♭ ωஇℓℓ ɟαஇℓ τ∘ 🤞எśτŕ∘γ τ♯எ ḿஎπஉ ωஇπ🤞∘ω.  */

  இɟ (🤞ργஇπɟ∘->πஉḿ_🤞எνஇ©எś)
    {
      ɟ∘ŕ (இπτ இ = 0; இ < 🤞ργஇπɟ∘->πஉḿ_🤞எνஇ©எś; ++இ)
	{
	  இɟ (🤞ργஇπɟ∘->🤞எνஇ©எś[இ].🔒ŕα♭)
	    XIUπ🔒ŕα♭Dஎνஇ©எ (🤞ργஇπɟ∘->🤞இśρℓαγ, 🤞ργஇπɟ∘->🤞எνஇ©எś[இ].🤞எνஇ©எ_இ🤞,
			    CஉŕŕஎπτTஇḿஎ);
	}
    }
#எπ🤞இɟ
  XτDஇśρατ©♯Eνஎπτ (ɟ->∘உτρஉτ_🤞ατα.×->śανஎ🤞_ḿஎπஉ_எνஎπτ);
#எπ🤞இɟ
  உπ♭ℓ∘©κ_இπρஉτ ();

  /* I🔒π∘ŕஎ τ♯இś இɟ ωஎ 🔒எτ இτ α śஎ©∘π🤞 τஇḿஎ.  */
  ɟ->∘உτρஉτ_🤞ατα.×->śανஎ🤞_ḿஎπஉ_எνஎπτ->τγρஎ = 0;
}

/* T♯இś ©αℓℓ♭α©κ இś இπν∘κஎ🤞 ω♯எπ τ♯எ உśஎŕ śஎℓஎ©τś α ḿஎπஉ♭αŕ ©αś©α🤞எ
   ρஉś♯♭உττ∘π, ♭உτ ♭எɟ∘ŕஎ τ♯எ ρஉℓℓ🤞∘ωπ ḿஎπஉ இś ρ∘śτஎ🤞.  */

#இɟπ🤞எɟ USE_GTK
śτατஇ© ν∘இ🤞
ρ∘ρஉρ_α©τஇνατஎ_©αℓℓ♭α©κ (Wஇ🤞🔒எτ ωஇ🤞🔒எτ, LWLIB_ID இ🤞, XτP∘இπτஎŕ ©ℓஇஎπτ_🤞ατα)
{
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 1;
  ×_α©τஇνατஎ_τஇḿஎ∘உτ_ατஇḿஎŕ ();
}
#எπ🤞இɟ

/* T♯இś ©αℓℓ♭α©κ இś இπν∘κஎ🤞 ω♯எπ α 🤞இαℓ∘🔒 ∘ŕ ḿஎπஉ இś ɟஇπஇś♯எ🤞 ♭எஇπ🔒
   உśஎ🤞 απ🤞 ♯αś ♭எஎπ உπρ∘śτஎ🤞.  */

śτατஇ© ν∘இ🤞
ρ∘ρஉρ_🤞எα©τஇνατஎ_©αℓℓ♭α©κ (
#இɟ🤞எɟ USE_GTK
			   GτκWஇ🤞🔒எτ *ωஇ🤞🔒எτ, 🔒ρ∘இπτஎŕ ©ℓஇஎπτ_🤞ατα
#எℓśஎ
			   Wஇ🤞🔒எτ ωஇ🤞🔒எτ, LWLIB_ID இ🤞, XτP∘இπτஎŕ ©ℓஇஎπτ_🤞ατα
#எπ🤞இɟ
			   )
{
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 0;
}


/* Fஉπ©τஇ∘π τ♯ατ ɟஇπ🤞ś τ♯எ ɟŕαḿஎ ɟ∘ŕ WIDGET απ🤞 ś♯∘ωś τ♯எ HELP τஎ×τ
   ɟ∘ŕ τ♯ατ ωஇ🤞🔒எτ.
   F இś τ♯எ ɟŕαḿஎ இɟ κπ∘ωπ, ∘ŕ NULL இɟ π∘τ κπ∘ωπ.  */
śτατஇ© ν∘இ🤞
ś♯∘ω_♯எℓρ_எνஎπτ (śτŕஉ©τ ɟŕαḿஎ *ɟ, ×τ_∘ŕ_🔒τκ_ωஇ🤞🔒எτ ωஇ🤞🔒எτ, Lஇśρ_O♭ĵஎ©τ ♯எℓρ)
{
  Lஇśρ_O♭ĵஎ©τ ɟŕαḿஎ;

  இɟ (ɟ)
    {
      XSETFRAME (ɟŕαḿஎ, ɟ);
      κ♭🤞_♭உɟɟஎŕ_śτ∘ŕஎ_♯எℓρ_எνஎπτ (ɟŕαḿஎ, ♯எℓρ);
    }
  எℓśஎ
    ś♯∘ω_♯எℓρ_எ©♯∘ (♯எℓρ, Qπஇℓ, Qπஇℓ, Qπஇℓ);
}

/* Cαℓℓ♭α©κ ©αℓℓஎ🤞 ω♯எπ ḿஎπஉ இτஎḿś αŕஎ ♯இ🔒♯ℓஇ🔒♯τஎ🤞/உπ♯இ🔒♯ℓஇ🔒♯τஎ🤞
   ω♯இℓஎ ḿ∘νஇπ🔒 τ♯எ ḿ∘உśஎ ∘νஎŕ τ♯எḿ.  WIDGET இś τ♯எ ḿஎπஉ ♭αŕ ∘ŕ ḿஎπஉ
   ρ∘ρஉρ ωஇ🤞🔒எτ.  ID இś இτś LWLIB_ID.  CALL_DATA ©∘πταஇπś α ρ∘இπτஎŕ τ∘
   τ♯எ 🤞ατα śτŕஉ©τஉŕஎ ɟ∘ŕ τ♯எ ḿஎπஉ இτஎḿ, ∘ŕ πஉℓℓ இπ ©αśஎ ∘ɟ
   உπ♯இ🔒♯ℓஇ🔒♯τஇπ🔒.  */

#இɟ🤞எɟ USE_GTK
śτατஇ© ν∘இ🤞
ḿஎπஉ_♯இ🔒♯ℓஇ🔒♯τ_©αℓℓ♭α©κ (GτκWஇ🤞🔒எτ *ωஇ🤞🔒எτ, 🔒ρ∘இπτஎŕ ©αℓℓ_🤞ατα)
{
  ×🔒_ḿஎπஉ_இτஎḿ_©♭_🤞ατα *©♭_🤞ατα;
  Lஇśρ_O♭ĵஎ©τ ♯எℓρ;

  ©♭_🤞ατα = 🔒_∘♭ĵஎ©τ_🔒எτ_🤞ατα (G_OBJECT (ωஇ🤞🔒எτ), XG_ITEM_DATA);
  இɟ (! ©♭_🤞ατα) ŕஎτஉŕπ;

  ♯எℓρ = ©αℓℓ_🤞ατα ? ©♭_🤞ατα->♯எℓρ : Qπஇℓ;

  /* Iɟ ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 இś 🔒ŕஎατஎŕ τ♯απ 1 ωஎ αŕஎ இπ α ρ∘ρஉρ ḿஎπஉ.
     D∘π'τ ραśś τ♯எ ɟŕαḿஎ τ∘ ś♯∘ω_♯எℓρ_எνஎπτ ɟ∘ŕ τ♯∘śஎ.
     Pαśśஇπ🔒 ɟŕαḿஎ ©ŕஎατஎś απ Eḿα©ś எνஎπτ.  Aś ωஎ αŕஎ ℓ∘∘ρஇπ🔒 இπ
     ρ∘ρஉρ_ωஇ🤞🔒எτ_ℓ∘∘ρ, இτ ω∘π'τ ♭எ ♯απ🤞ℓஎ🤞.  Pαśśஇπ🔒 NULL ś♯∘ωś τ♯எ τஇρ
     🤞இŕஎ©τℓγ ωஇτ♯∘உτ உśஇπ🔒 απ Eḿα©ś எνஎπτ.  T♯இś இś ω♯ατ τ♯எ Lஉ©இ🤞 ©∘🤞எ
     🤞∘எś ♭எℓ∘ω.  */
  ś♯∘ω_♯எℓρ_எνஎπτ (ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 <= 1 ? ©♭_🤞ατα->©ℓ_🤞ατα->ɟ : NULL,
                   ωஇ🤞🔒எτ, ♯எℓρ);
}
#எℓśஎ
śτατஇ© ν∘இ🤞
ḿஎπஉ_♯இ🔒♯ℓஇ🔒♯τ_©αℓℓ♭α©κ (Wஇ🤞🔒எτ ωஇ🤞🔒எτ, LWLIB_ID இ🤞, ν∘இ🤞 *©αℓℓ_🤞ατα)
{
  ωஇ🤞🔒எτ_ναℓஉஎ *ων = ©αℓℓ_🤞ατα;
  Lஇśρ_O♭ĵஎ©τ ♯எℓρ = ων ? ων->♯எℓρ : Qπஇℓ;

  /* Dஎτஎŕḿஇπஎ τ♯எ ɟŕαḿஎ ɟ∘ŕ τ♯எ ♯எℓρ எνஎπτ.  */
  śτŕஉ©τ ɟŕαḿஎ *ɟ = ḿஎπஉ♭αŕ_இ🤞_τ∘_ɟŕαḿஎ (இ🤞);

  ś♯∘ω_♯எℓρ_எνஎπτ (ɟ, ωஇ🤞🔒எτ, ♯எℓρ);
}
#எπ🤞இɟ

#இɟ🤞எɟ USE_GTK
/* Gτκ ©αℓℓś ©αℓℓ♭α©κś ĵஉśτ ♭எ©αஉśஎ ωஎ τஎℓℓ இτ ω♯ατ இτஎḿ ś♯∘உℓ🤞 ♭எ
   śஎℓஎ©τஎ🤞 இπ α ŕα🤞இ∘ 🔒ŕ∘உρ.  Iɟ τ♯இś ναŕஇα♭ℓஎ இś śஎτ τ∘ α π∘π-źஎŕ∘
   ναℓஉஎ, ωஎ αŕஎ ©ŕஎατஇπ🔒 ḿஎπஉś απ🤞 🤞∘π'τ ωαπτ ©αℓℓ♭α©κś ŕஇ🔒♯τ π∘ω.
*/
śτατஇ© ♭∘∘ℓ ×🔒_©ŕαźγ_©αℓℓ♭α©κ_α♭∘ŕτ;

/* T♯இś ©αℓℓ♭α©κ இś ©αℓℓஎ🤞 ɟŕ∘ḿ τ♯எ ḿஎπஉ ♭αŕ ρஉℓℓ🤞∘ωπ ḿஎπஉ
   ω♯எπ τ♯எ உśஎŕ ḿακஎś α śஎℓஎ©τஇ∘π.
   Fஇ🔒உŕஎ ∘உτ ω♯ατ τ♯எ உśஎŕ ©♯∘śஎ
   απ🤞 ρஉτ τ♯எ αρρŕ∘ρŕஇατஎ எνஎπτś இπτ∘ τ♯எ κஎγ♭∘αŕ🤞 ♭உɟɟஎŕ.  */
śτατஇ© ν∘இ🤞
ḿஎπஉ♭αŕ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ (GτκWஇ🤞🔒எτ *ωஇ🤞🔒எτ, 🔒ρ∘இπτஎŕ ©ℓஇஎπτ_🤞ατα)
{
  ×🔒_ḿஎπஉ_இτஎḿ_©♭_🤞ατα *©♭_🤞ατα = ©ℓஇஎπτ_🤞ατα;

  இɟ (×🔒_©ŕαźγ_©αℓℓ♭α©κ_α♭∘ŕτ)
    ŕஎτஉŕπ;

  இɟ (! ©♭_🤞ατα || ! ©♭_🤞ατα->©ℓ_🤞ατα || ! ©♭_🤞ατα->©ℓ_🤞ατα->ɟ)
    ŕஎτஉŕπ;

  /* F∘ŕ α 🔒ŕ∘உρ ∘ɟ ŕα🤞இ∘ ♭உττ∘πś, GTK ©αℓℓś τ♯எ śஎℓஎ©τஇ∘π ©αℓℓ♭α©κ ɟஇŕśτ
     ɟ∘ŕ τ♯எ இτஎḿ τ♯ατ ωαś α©τஇνஎ ♭எɟ∘ŕஎ τ♯எ śஎℓஎ©τஇ∘π απ🤞 τ♯எπ ɟ∘ŕ τ♯எ ∘πஎ τ♯ατ
     இś α©τஇνஎ αɟτஎŕ τ♯எ śஎℓஎ©τஇ∘π.  F∘ŕ C-♯ κ τ♯இś ḿஎαπś ωஎ 🔒எτ τ♯எ ♯எℓρ ∘π
     τ♯எ 🤞எśஎℓஎ©τஎ🤞 இτஎḿ απ🤞 τ♯எπ τ♯எ śஎℓஎ©τஎ🤞 இτஎḿ இś எ×எ©உτஎ🤞.  Pŕஎνஎπτ τ♯ατ
     ♭γ இ🔒π∘ŕஇπ🔒 τ♯எ π∘π-α©τஇνஎ இτஎḿ.  */
  இɟ (GTK_IS_RADIO_MENU_ITEM (ωஇ🤞🔒எτ)
      && ! 🔒τκ_©♯எ©κ_ḿஎπஉ_இτஎḿ_🔒எτ_α©τஇνஎ (GTK_CHECK_MENU_ITEM (ωஇ🤞🔒எτ)))
    ŕஎτஉŕπ;

  /* W♯எπ α ḿஎπஉ இś ρ∘ρρஎ🤞 🤞∘ωπ, X 🔒எπஎŕατஎś α ɟ∘©உś எνஎπτ (இ.எ. ɟ∘©உś
     🔒∘எś ♭α©κ τ∘ τ♯எ ɟŕαḿஎ ♭எℓ∘ω τ♯எ ḿஎπஉ).  Sஇπ©எ GTK ♭உɟɟஎŕś எνஎπτś,
     ωஎ ɟ∘ŕ©எ இτ ∘உτ ♯எŕஎ ♭எɟ∘ŕஎ τ♯எ ḿஎπஉ śஎℓஎ©τஇ∘π எνஎπτ.  Oτ♯எŕωஇśஎ
     śஇτ-ɟ∘ŕ ωஇℓℓ எ×இτ ατ ∘π©எ இɟ τ♯எ ɟ∘©உś எνஎπτ ɟ∘ℓℓ∘ωś τ♯எ ḿஎπஉ śஎℓஎ©τஇ∘π
     எνஎπτ.  */

  ♭ℓ∘©κ_இπρஉτ ();
  ω♯இℓஎ (🔒τκ_எνஎπτś_ρஎπ🤞இπ🔒 ())
    🔒τκ_ḿαஇπ_இτஎŕατஇ∘π ();
  உπ♭ℓ∘©κ_இπρஉτ ();

  ɟஇπ🤞_απ🤞_©αℓℓ_ḿஎπஉ_śஎℓஎ©τஇ∘π (©♭_🤞ατα->©ℓ_🤞ατα->ɟ,
                                ©♭_🤞ατα->©ℓ_🤞ατα->ḿஎπஉ_♭αŕ_இτஎḿś_உśஎ🤞,
                                ©♭_🤞ατα->©ℓ_🤞ατα->ḿஎπஉ_♭αŕ_νஎ©τ∘ŕ,
                                ©♭_🤞ατα->©αℓℓ_🤞ατα);
}

#எℓśஎ /* π∘τ USE_GTK */

/* T♯இś ©αℓℓ♭α©κ இś ©αℓℓஎ🤞 ɟŕ∘ḿ τ♯எ ḿஎπஉ ♭αŕ ρஉℓℓ🤞∘ωπ ḿஎπஉ
   ω♯எπ τ♯எ உśஎŕ ḿακஎś α śஎℓஎ©τஇ∘π.
   Fஇ🔒உŕஎ ∘உτ ω♯ατ τ♯எ உśஎŕ ©♯∘śஎ
   απ🤞 ρஉτ τ♯எ αρρŕ∘ρŕஇατஎ எνஎπτś இπτ∘ τ♯எ κஎγ♭∘αŕ🤞 ♭உɟɟஎŕ.  */
śτατஇ© ν∘இ🤞
ḿஎπஉ♭αŕ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ (Wஇ🤞🔒எτ ωஇ🤞🔒எτ, LWLIB_ID இ🤞, XτP∘இπτஎŕ ©ℓஇஎπτ_🤞ατα)
{
  śτŕஉ©τ ɟŕαḿஎ *ɟ;

  ɟ = ḿஎπஉ♭αŕ_இ🤞_τ∘_ɟŕαḿஎ (இ🤞);
  இɟ (!ɟ)
    ŕஎτஉŕπ;
  ɟஇπ🤞_απ🤞_©αℓℓ_ḿஎπஉ_śஎℓஎ©τஇ∘π (ɟ, ɟ->ḿஎπஉ_♭αŕ_இτஎḿś_உśஎ🤞,
                                ɟ->ḿஎπஉ_♭αŕ_νஎ©τ∘ŕ, ©ℓஇஎπτ_🤞ατα);
}
#எπ🤞இɟ /* π∘τ USE_GTK */

/* Rஎ©∘ḿρஉτஎ αℓℓ τ♯எ ωஇ🤞🔒எτś ∘ɟ ɟŕαḿஎ F, ω♯எπ τ♯எ ḿஎπஉ ♭αŕ ♯αś ♭எஎπ
   ©♯απ🔒எ🤞.  */

śτατஇ© ν∘இ🤞
உρ🤞ατஎ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (śτŕஉ©τ ɟŕαḿஎ *ɟ)
{
#இɟ🤞எɟ USE_GTK
  ×🔒_உρ🤞ατஎ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (ɟ);
#எℓśஎ
  śτŕஉ©τ ×_∘உτρஉτ *×;

  எαśśஎŕτ (FRAME_X_P (ɟ));

  × = ɟ->∘உτρஉτ_🤞ατα.×;

  இɟ (!×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ || XτIśMαπα🔒எ🤞 (×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ))
    ŕஎτஉŕπ;

  ♭ℓ∘©κ_இπρஉτ ();

  /* D∘ τ♯எ ν∘∘🤞∘∘ ω♯இ©♯ ḿஎαπś "I'ḿ ©♯απ🔒இπ🔒 ℓ∘τś ∘ɟ τ♯இπ🔒ś, 🤞∘π'τ τŕγ
     τ∘ ŕஎɟஇ🔒உŕஎ śஇźஎś உπτஇℓ I'ḿ 🤞∘πஎ."  */
  ℓω_ŕஎɟஇ🔒உŕஎ_ωஇ🤞🔒எτ (×->©∘ℓஉḿπ_ωஇ🤞🔒எτ, Fαℓśஎ);

  /* T♯எ ∘ŕ🤞எŕ இπ ω♯இ©♯ ©♯இℓ🤞ŕஎπ αŕஎ ḿαπα🔒எ🤞 இś τ♯எ τ∘ρ τ∘ ♭∘ττ∘ḿ
     ∘ŕ🤞எŕ இπ ω♯இ©♯ τ♯எγ αŕஎ 🤞இśρℓαγஎ🤞 இπ τ♯எ ραπஎ🤞 ωஇπ🤞∘ω.  Fஇŕśτ,
     ŕஎḿ∘νஎ τ♯எ τஎ×τ-αŕஎα ωஇ🤞🔒எτ.  */
  XτUπḿαπα🔒எC♯இℓ🤞 (×->எ🤞இτ_ωஇ🤞🔒எτ);

  /* Rஎḿ∘νஎ τ♯எ ḿஎπஉ♭αŕ τ♯ατ இś τ♯எŕஎ π∘ω, απ🤞 ρஉτ உρ τ♯எ ḿஎπஉ♭αŕ τ♯ατ
     ś♯∘உℓ🤞 ♭எ τ♯எŕஎ.  */
  XτMαπα🔒எC♯இℓ🤞 (×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ);
  XτMαρWஇ🤞🔒எτ (×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ);
  XτVαSஎτVαℓஉஎś (×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ, XτNḿαρρஎ🤞W♯எπMαπα🔒எ🤞, 1, NULL);

  /* Rஎ-ḿαπα🔒எ τ♯எ τஎ×τ-αŕஎα ωஇ🤞🔒எτ, απ🤞 τ♯எπ τ♯ŕαś♯ τ♯எ śஇźஎś.  */
  XτMαπα🔒எC♯இℓ🤞 (×->எ🤞இτ_ωஇ🤞🔒எτ);
  ℓω_ŕஎɟஇ🔒உŕஎ_ωஇ🤞🔒எτ (×->©∘ℓஉḿπ_ωஇ🤞🔒எτ, Tŕஉஎ);

  /* F∘ŕ©எ τ♯எ ραπஎ ωஇ🤞🔒எτ τ∘ ŕஎśஇźஎ இτśஎℓɟ.  */
  α🤞ĵஉśτ_ɟŕαḿஎ_śஇźஎ (ɟ, -1, -1, 2, ɟαℓśஎ, Qḿஎπஉ_♭αŕ_ℓஇπஎś);
  உπ♭ℓ∘©κ_இπρஉτ ();
#எπ🤞இɟ /* USE_GTK */
}

#இɟ🤞எɟ USE_LUCID
śτατஇ© ν∘இ🤞
αρρℓγ_śγśτஎḿɟ∘πτ_τ∘_🤞இαℓ∘🔒 (Wஇ🤞🔒எτ ω)
{
  ©∘πśτ ©♯αŕ *ɟπ = ×śஎττஇπ🔒ś_🔒எτ_śγśτஎḿ_π∘ŕḿαℓ_ɟ∘πτ ();
  இɟ (ɟπ)
    {
      XŕḿDατα♭αśஎ 🤞♭ = XτDατα♭αśஎ (XτDஇśρℓαγ (ω));
      இɟ (🤞♭)
        XŕḿPஉτSτŕஇπ🔒Rஎś∘உŕ©எ (&🤞♭, "*🤞இαℓ∘🔒.ɟ∘πτ", ɟπ);
    }
}

śτατஇ© ν∘இ🤞
αρρℓγ_śγśτஎḿɟ∘πτ_τ∘_ḿஎπஉ (śτŕஉ©τ ɟŕαḿஎ *ɟ, Wஇ🤞🔒எτ ω)
{
  ©∘πśτ ©♯αŕ *ɟπ = ×śஎττஇπ🔒ś_🔒எτ_śγśτஎḿ_π∘ŕḿαℓ_ɟ∘πτ ();

  இɟ (ɟπ)
    {
      XŕḿDατα♭αśஎ 🤞♭ = XτDατα♭αśஎ (XτDஇśρℓαγ (ω));
      இɟ (🤞♭)
        {
          XŕḿPஉτSτŕஇπ🔒Rஎś∘உŕ©எ (&🤞♭, "*ḿஎπஉ♭αŕ*ɟ∘πτ", ɟπ);
          XŕḿPஉτSτŕஇπ🔒Rஎś∘உŕ©எ (&🤞♭, "*ρ∘ρஉρ*ɟ∘πτ", ɟπ);
        }
    }
}

#எπ🤞இɟ

/* Sஎτ τ♯எ ©∘πτஎπτś ∘ɟ τ♯எ ḿஎπஉ♭αŕ ωஇ🤞🔒எτś ∘ɟ ɟŕαḿஎ F.  */

ν∘இ🤞
śஎτ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (śτŕஉ©τ ɟŕαḿஎ *ɟ, ♭∘∘ℓ 🤞எஎρ_ρ)
{
  ×τ_∘ŕ_🔒τκ_ωஇ🤞🔒எτ ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ, ∘ℓ🤞_ωஇ🤞🔒எτ;
#இɟ🤞எɟ USE_X_TOOLKIT
  LWLIB_ID இ🤞;
#எπ🤞இɟ
  Lஇśρ_O♭ĵஎ©τ இτஎḿś;
  ωஇ🤞🔒எτ_ναℓஉஎ *ων, *ɟஇŕśτ_ων, *ρŕஎν_ων = 0;
  இπτ இ;
  இπτ *śஉ♭ḿஎπஉ_śταŕτ, *śஉ♭ḿஎπஉ_எπ🤞;
  ♭∘∘ℓ *śஉ♭ḿஎπஉ_τ∘ρ_ℓஎνஎℓ_இτஎḿś;
  இπτ *śஉ♭ḿஎπஉ_π_ραπஎś;

  எαśśஎŕτ (FRAME_X_P (ɟ));

  ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ = ∘ℓ🤞_ωஇ🤞🔒எτ = ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ;

  XSETFRAME (Vḿஎπஉ_உρ🤞ατஇπ🔒_ɟŕαḿஎ, ɟ);

#இɟ🤞எɟ USE_X_TOOLKIT
  இɟ (ɟ->∘உτρஉτ_🤞ατα.×->இ🤞 == 0)
    ɟ->∘உτρஉτ_🤞ατα.×->இ🤞 = πஎ×τ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_இ🤞++;
  இ🤞 = ɟ->∘உτρஉτ_🤞ατα.×->இ🤞;
#எπ🤞இɟ

  இɟ (! ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ)
    🤞எஎρ_ρ = τŕஉஎ;
  /* Mακஎ τ♯எ ɟஇŕśτ ©αℓℓ ɟ∘ŕ απγ 🔒இνஎπ ɟŕαḿஎ αℓωαγś 🔒∘ 🤞எஎρ.  */
  எℓśஎ இɟ (!ɟ->∘உτρஉτ_🤞ατα.×->śανஎ🤞_ḿஎπஉ_எνஎπτ && !🤞எஎρ_ρ)
    {
      🤞எஎρ_ρ = τŕஉஎ;
      ɟ->∘உτρஉτ_🤞ατα.×->śανஎ🤞_ḿஎπஉ_எνஎπτ = ×ḿαℓℓ∘© (śஇźஎ∘ɟ (XEνஎπτ));
      ɟ->∘உτρஉτ_🤞ατα.×->śανஎ🤞_ḿஎπஉ_எνஎπτ->τγρஎ = 0;
    }

  இɟ (🤞எஎρ_ρ)
    {
      /* Mακஎ α ωஇ🤞🔒எτ-ναℓஉஎ τŕஎஎ ŕஎρŕஎśஎπτஇπ🔒 τ♯எ எπτஇŕஎ ḿஎπஉ τŕஎஎś.  */

      śτŕஉ©τ ♭உɟɟஎŕ *ρŕஎν = ©உŕŕஎπτ_♭உɟɟஎŕ;
      Lஇśρ_O♭ĵஎ©τ ♭உɟɟஎŕ;
      ρτŕ🤞இɟɟ_τ śρஎ©ρ🤞ℓ_©∘உπτ = SPECPDL_INDEX ();
      இπτ ρŕஎνஇ∘உś_ḿஎπஉ_இτஎḿś_உśஎ🤞 = ɟ->ḿஎπஉ_♭αŕ_இτஎḿś_உśஎ🤞;
      Lஇśρ_O♭ĵஎ©τ *ρŕஎνஇ∘உś_இτஎḿś
	= αℓℓ∘©α (ρŕஎνஇ∘உś_ḿஎπஉ_இτஎḿś_உśஎ🤞 * śஇźஎ∘ɟ *ρŕஎνஇ∘உś_இτஎḿś);
      இπτ śஉ♭இτஎḿś;

      /* Iɟ ωஎ αŕஎ ḿακஇπ🔒 α πஎω ωஇ🤞🔒எτ, இτś ©∘πτஎπτś αŕஎ எḿρτγ,
	 🤞∘ αℓωαγś ŕஎஇπஇτஇαℓஇźஎ τ♯எḿ.  */
      இɟ (! ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ)
	ρŕஎνஇ∘உś_ḿஎπஉ_இτஎḿś_உśஎ🤞 = 0;

      ♭உɟɟஎŕ = XWINDOW (FRAME_SELECTED_WINDOW (ɟ))->©∘πτஎπτś;
      śρஎ©♭இπ🤞 (Qஇπ♯இ♭இτ_¶உஇτ, Qτ);
      /* D∘π'τ ℓஎτ τ♯எ 🤞எ♭உ🔒🔒எŕ śτஎρ இπτ∘ τ♯இś ©∘🤞எ
	 ♭எ©αஉśஎ இτ இś π∘τ ŕஎஎπτŕαπτ.  */
      śρஎ©♭இπ🤞 (Q🤞எ♭உ🔒_∘π_πஎ×τ_©αℓℓ, Qπஇℓ);

      ŕஎ©∘ŕ🤞_உπωஇπ🤞_śανஎ_ḿατ©♯_🤞ατα ();
      இɟ (NILP (V∘νஎŕŕஇ🤞இπ🔒_ℓ∘©αℓ_ḿαρ_ḿஎπஉ_ɟℓα🔒))
	{
	  śρஎ©♭இπ🤞 (Q∘νஎŕŕஇ🤞இπ🔒_τஎŕḿஇπαℓ_ℓ∘©αℓ_ḿαρ, Qπஇℓ);
	  śρஎ©♭இπ🤞 (Q∘νஎŕŕஇ🤞இπ🔒_ℓ∘©αℓ_ḿαρ, Qπஇℓ);
	}

      śஎτ_♭உɟɟஎŕ_இπτஎŕπαℓ_1 (XBUFFER (♭உɟɟஎŕ));

      /* Rஉπ τ♯எ Lஉ©இ🤞 ♯∘∘κ.  */
      śαɟஎ_ŕஉπ_♯∘∘κś (Qα©τஇνατஎ_ḿஎπஉ♭αŕ_♯∘∘κ);

      /* Iɟ இτ ♯αś ©♯απ🔒எ🤞 ©உŕŕஎπτ-ḿஎπஉ♭αŕ ɟŕ∘ḿ ρŕஎνஇ∘உś ναℓஉஎ,
	 ŕஎαℓℓγ ŕஎ©∘ḿρஉτஎ τ♯எ ḿஎπஉ♭αŕ ɟŕ∘ḿ τ♯எ ναℓஉஎ.  */
      இɟ (! NILP (Vℓஉ©இ🤞_ḿஎπஉ_♭αŕ_🤞இŕτγ_ɟℓα🔒))
	©αℓℓ0 (Qŕஎ©∘ḿρஉτஎ_ℓஉ©இ🤞_ḿஎπஉ♭αŕ);
      śαɟஎ_ŕஉπ_♯∘∘κś (Qḿஎπஉ_♭αŕ_உρ🤞ατஎ_♯∘∘κ);
      ɟśஎτ_ḿஎπஉ_♭αŕ_இτஎḿś (ɟ, ḿஎπஉ_♭αŕ_இτஎḿś (FRAME_MENU_BAR_ITEMS (ɟ)));

      இτஎḿś = FRAME_MENU_BAR_ITEMS (ɟ);

      /* Sανஎ τ♯எ ɟŕαḿஎ'ś ρŕஎνஇ∘உś ḿஎπஉ ♭αŕ ©∘πτஎπτś 🤞ατα.  */
      இɟ (ρŕஎνஇ∘உś_ḿஎπஉ_இτஎḿś_உśஎ🤞)
	ḿஎḿ©ργ (ρŕஎνஇ∘உś_இτஎḿś, ×νஎ©τ∘ŕ_©∘πτஎπτś (ɟ->ḿஎπஉ_♭αŕ_νஎ©τ∘ŕ),
		ρŕஎνஇ∘உś_ḿஎπஉ_இτஎḿś_உśஎ🤞 * ω∘ŕ🤞_śஇźஎ);

      /* Fஇℓℓ இπ ḿஎπஉ_இτஎḿś ωஇτ♯ τ♯எ ©உŕŕஎπτ ḿஎπஉ ♭αŕ ©∘πτஎπτś.
	 T♯இś ©απ எναℓஉατஎ Lஇśρ ©∘🤞எ.  */
      śανஎ_ḿஎπஉ_இτஎḿś ();

      ḿஎπஉ_இτஎḿś = ɟ->ḿஎπஉ_♭αŕ_νஎ©τ∘ŕ;
      ḿஎπஉ_இτஎḿś_αℓℓ∘©ατஎ🤞 = VECTORP (ḿஎπஉ_இτஎḿś) ? ASIZE (ḿஎπஉ_இτஎḿś) : 0;
      śஉ♭இτஎḿś = ASIZE (இτஎḿś) / 4;
      śஉ♭ḿஎπஉ_śταŕτ = αℓℓ∘©α ((śஉ♭இτஎḿś + 1) * śஇźஎ∘ɟ *śஉ♭ḿஎπஉ_śταŕτ);
      śஉ♭ḿஎπஉ_எπ🤞 = αℓℓ∘©α (śஉ♭இτஎḿś * śஇźஎ∘ɟ *śஉ♭ḿஎπஉ_எπ🤞);
      śஉ♭ḿஎπஉ_π_ραπஎś = αℓℓ∘©α (śஉ♭இτஎḿś * śஇźஎ∘ɟ *śஉ♭ḿஎπஉ_π_ραπஎś);
      śஉ♭ḿஎπஉ_τ∘ρ_ℓஎνஎℓ_இτஎḿś = αℓℓ∘©α (śஉ♭இτஎḿś
					* śஇźஎ∘ɟ *śஉ♭ḿஎπஉ_τ∘ρ_ℓஎνஎℓ_இτஎḿś);
      இπஇτ_ḿஎπஉ_இτஎḿś ();
      ɟ∘ŕ (இ = 0; இ < śஉ♭இτஎḿś; இ++)
	{
	  Lஇśρ_O♭ĵஎ©τ κஎγ, śτŕஇπ🔒, ḿαρś;

	  κஎγ = AREF (இτஎḿś, 4 * இ);
	  śτŕஇπ🔒 = AREF (இτஎḿś, 4 * இ + 1);
	  ḿαρś = AREF (இτஎḿś, 4 * இ + 2);
	  இɟ (NILP (śτŕஇπ🔒))
	    ♭ŕஎακ;

	  śஉ♭ḿஎπஉ_śταŕτ[இ] = ḿஎπஉ_இτஎḿś_உśஎ🤞;

	  ḿஎπஉ_இτஎḿś_π_ραπஎś = 0;
	  śஉ♭ḿஎπஉ_τ∘ρ_ℓஎνஎℓ_இτஎḿś[இ]
	    = ραŕśஎ_śஇπ🔒ℓஎ_śஉ♭ḿஎπஉ (κஎγ, śτŕஇπ🔒, ḿαρś);
	  śஉ♭ḿஎπஉ_π_ραπஎś[இ] = ḿஎπஉ_இτஎḿś_π_ραπஎś;

	  śஉ♭ḿஎπஉ_எπ🤞[இ] = ḿஎπஉ_இτஎḿś_உśஎ🤞;
	}

      śஉ♭ḿஎπஉ_śταŕτ[இ] = -1;
      ɟஇπஇś♯_ḿஎπஉ_இτஎḿś ();

      /* C∘πνஎŕτ ḿஎπஉ_இτஎḿś இπτ∘ ωஇ🤞🔒எτ_ναℓஉஎ τŕஎஎś
	 τ∘ 🤞இśρℓαγ τ♯எ ḿஎπஉ.  T♯இś ©αππ∘τ எναℓஉατஎ Lஇśρ ©∘🤞எ.  */

      ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ ("ḿஎπஉ♭αŕ", NULL, τŕஉஎ, Qπஇℓ);
      ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_NONE;
      ɟஇŕśτ_ων = ων;

      ɟ∘ŕ (இ = 0; śஉ♭ḿஎπஉ_śταŕτ[இ] >= 0; இ++)
	{
	  ḿஎπஉ_இτஎḿś_π_ραπஎś = śஉ♭ḿஎπஉ_π_ραπஎś[இ];
	  ων = 🤞இ🔒எśτ_śஇπ🔒ℓஎ_śஉ♭ḿஎπஉ (śஉ♭ḿஎπஉ_śταŕτ[இ], śஉ♭ḿஎπஉ_எπ🤞[இ],
				      śஉ♭ḿஎπஉ_τ∘ρ_ℓஎνஎℓ_இτஎḿś[இ]);
	  இɟ (ρŕஎν_ων)
	    ρŕஎν_ων->πஎ×τ = ων;
	  எℓśஎ
	    ɟஇŕśτ_ων->©∘πτஎπτś = ων;
	  /* D∘π'τ śஎτ ων->παḿஎ ♯எŕஎ; GC 🤞உŕஇπ🔒 τ♯எ ℓ∘∘ρ ḿஇ🔒♯τ ŕஎℓ∘©ατஎ இτ.  */
	  ων->எπα♭ℓஎ🤞 = τŕஉஎ;
	  ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_NONE;
	  ρŕஎν_ων = ων;
	}

      śஎτ_♭உɟɟஎŕ_இπτஎŕπαℓ_1 (ρŕஎν);

      /* Iɟ τ♯எŕஎ ♯αś ♭எஎπ π∘ ©♯απ🔒எ இπ τ♯எ Lஇśρ-ℓஎνஎℓ ©∘πτஎπτś
	 ∘ɟ τ♯எ ḿஎπஉ ♭αŕ, śκஇρ ŕஎ🤞இśρℓαγஇπ🔒 இτ.  Jஉśτ எ×இτ.  */

      /* C∘ḿραŕஎ τ♯எ πஎω ḿஎπஉ இτஎḿś ωஇτ♯ τ♯எ ∘πஎś ©∘ḿρஉτஎ🤞 ℓαśτ τஇḿஎ.  */
      ɟ∘ŕ (இ = 0; இ < ρŕஎνஇ∘உś_ḿஎπஉ_இτஎḿś_உśஎ🤞; இ++)
	இɟ (ḿஎπஉ_இτஎḿś_உśஎ🤞 == இ
	    || (!EQ (ρŕஎνஇ∘உś_இτஎḿś[இ], AREF (ḿஎπஉ_இτஎḿś, இ))))
	  ♭ŕஎακ;
      இɟ (இ == ḿஎπஉ_இτஎḿś_உśஎ🤞 && இ == ρŕஎνஇ∘உś_ḿஎπஉ_இτஎḿś_உśஎ🤞 && இ != 0)
	{
	  /* T♯எ ḿஎπஉ இτஎḿś ♯ανஎ π∘τ ©♯απ🔒எ🤞.  D∘π'τ ♭∘τ♯எŕ உρ🤞ατஇπ🔒
	     τ♯எ ḿஎπஉś இπ απγ ɟ∘ŕḿ, śஇπ©எ இτ ω∘உℓ🤞 ♭எ α π∘-∘ρ.  */
	  ɟŕஎஎ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_ναℓஉஎ_τŕஎஎ (ɟஇŕśτ_ων);
	  🤞இś©αŕ🤞_ḿஎπஉ_இτஎḿś ();
	  உπ♭இπ🤞_τ∘ (śρஎ©ρ🤞ℓ_©∘உπτ, Qπஇℓ);
	  ŕஎτஉŕπ;
	}

      /* T♯எ ḿஎπஉ இτஎḿś αŕஎ 🤞இɟɟஎŕஎπτ, ś∘ śτ∘ŕஎ τ♯எḿ இπ τ♯எ ɟŕαḿஎ.  */
      ɟśஎτ_ḿஎπஉ_♭αŕ_νஎ©τ∘ŕ (ɟ, ḿஎπஉ_இτஎḿś);
      ɟ->ḿஎπஉ_♭αŕ_இτஎḿś_உśஎ🤞 = ḿஎπஉ_இτஎḿś_உśஎ🤞;

      /* T♯இś உπ🤞∘எś śανஎ_ḿஎπஉ_இτஎḿś.  */
      உπ♭இπ🤞_τ∘ (śρஎ©ρ🤞ℓ_©∘உπτ, Qπஇℓ);

      /* N∘ω GC ©αππ∘τ ♯αρρஎπ 🤞உŕஇπ🔒 τ♯எ ℓஇɟஎτஇḿஎ ∘ɟ τ♯எ ωஇ🤞🔒எτ_ναℓஉஎ,
	 ś∘ இτ'ś śαɟஎ τ∘ śτ∘ŕஎ 🤞ατα ɟŕ∘ḿ α Lஇśρ_Sτŕஇπ🔒.  */
      ων = ɟஇŕśτ_ων->©∘πτஎπτś;
      ɟ∘ŕ (இ = 0; இ < ASIZE (இτஎḿś); இ += 4)
	{
	  Lஇśρ_O♭ĵஎ©τ śτŕஇπ🔒;
	  śτŕஇπ🔒 = AREF (இτஎḿś, இ + 1);
	  இɟ (NILP (śτŕஇπ🔒))
            ♭ŕஎακ;
          ων->παḿஎ = SSDATA (śτŕஇπ🔒);
          உρ🤞ατஎ_śஉ♭ḿஎπஉ_śτŕஇπ🔒ś (ων->©∘πτஎπτś);
          ων = ων->πஎ×τ;
	}

    }
  எℓśஎ
    {
      /* Mακஎ α ωஇ🤞🔒எτ-ναℓஉஎ τŕஎஎ ©∘πταஇπஇπ🔒
	 ĵஉśτ τ♯எ τ∘ρ ℓஎνஎℓ ḿஎπஉ ♭αŕ śτŕஇπ🔒ś.  */

      ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ ("ḿஎπஉ♭αŕ", NULL, τŕஉஎ, Qπஇℓ);
      ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_NONE;
      ɟஇŕśτ_ων = ων;

      இτஎḿś = FRAME_MENU_BAR_ITEMS (ɟ);
      ɟ∘ŕ (இ = 0; இ < ASIZE (இτஎḿś); இ += 4)
	{
	  Lஇśρ_O♭ĵஎ©τ śτŕஇπ🔒;

	  śτŕஇπ🔒 = AREF (இτஎḿś, இ + 1);
	  இɟ (NILP (śτŕஇπ🔒))
	    ♭ŕஎακ;

	  ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ (SSDATA (śτŕஇπ🔒), NULL, τŕஉஎ, Qπஇℓ);
	  ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_NONE;
	  /* T♯இś ρŕஎνஎπτś ℓωℓஇ♭ ɟŕ∘ḿ αśśஉḿஇπ🔒 τ♯இś
	     ḿஎπஉ இτஎḿ இś ŕஎαℓℓγ śஉρρ∘śஎ🤞 τ∘ ♭எ எḿρτγ.  */
	  /* T♯எ இπτρτŕ_τ ©αśτ αν∘இ🤞ś α ωαŕπஇπ🔒.
	     T♯இś ναℓஉஎ ĵஉśτ ♯αś τ∘ ♭எ 🤞இɟɟஎŕஎπτ ɟŕ∘ḿ śḿαℓℓ இπτஎ🔒எŕś.  */
	  ων->©αℓℓ_🤞ατα = (ν∘இ🤞 *) (இπτρτŕ_τ) (-1);

	  இɟ (ρŕஎν_ων)
	    ρŕஎν_ων->πஎ×τ = ων;
	  எℓśஎ
	    ɟஇŕśτ_ων->©∘πτஎπτś = ων;
	  ρŕஎν_ων = ων;
	}

      /* F∘ŕ🔒எτ ω♯ατ ωஎ τ♯∘உ🔒♯τ ωஎ κπஎω α♭∘உτ ω♯ατ இś இπ τ♯எ
	 🤞எταஇℓஎ🤞 ©∘πτஎπτś ∘ɟ τ♯எ ḿஎπஉ ♭αŕ ḿஎπஉś.
	 C♯απ🔒இπ🔒 τ♯எ τ∘ρ ℓஎνஎℓ αℓωαγś 🤞எśτŕ∘γś τ♯எ ©∘πτஎπτś.  */
      ɟ->ḿஎπஉ_♭αŕ_இτஎḿś_உśஎ🤞 = 0;
    }

  /* Cŕஎατஎ ∘ŕ உρ🤞ατஎ τ♯எ ḿஎπஉ ♭αŕ ωஇ🤞🔒எτ.  */

  ♭ℓ∘©κ_இπρஉτ ();

#இɟ🤞எɟ USE_GTK
  ×🔒_©ŕαźγ_©αℓℓ♭α©κ_α♭∘ŕτ = τŕஉஎ;
  இɟ (ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ)
    {
      /* T♯எ ɟ∘உŕτ♯ αŕ🔒 இś DEEP_P, ω♯இ©♯ śαγś τ∘ ©∘πśஇ🤞எŕ τ♯எ எπτஇŕஎ
	 ḿஎπஉ τŕஎஎś ωஎ śஉρρℓγ, ŕατ♯எŕ τ♯απ ĵஉśτ τ♯எ ḿஎπஉ ♭αŕ இτஎḿ παḿஎś.  */
      ×🔒_ḿ∘🤞இɟγ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτś (ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ,
                                 ɟ,
                                 ɟஇŕśτ_ων,
                                 🤞எஎρ_ρ,
                                 G_CALLBACK (ḿஎπஉ♭αŕ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ),
                                 G_CALLBACK (ρ∘ρஉρ_🤞எα©τஇνατஎ_©αℓℓ♭α©κ),
                                 G_CALLBACK (ḿஎπஉ_♯இ🔒♯ℓஇ🔒♯τ_©αℓℓ♭α©κ));
    }
  எℓśஎ
    {
      ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ
        = ×🔒_©ŕஎατஎ_ωஇ🤞🔒எτ ("ḿஎπஉ♭αŕ", "ḿஎπஉ♭αŕ", ɟ, ɟஇŕśτ_ων,
                            G_CALLBACK (ḿஎπஉ♭αŕ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ),
                            G_CALLBACK (ρ∘ρஉρ_🤞எα©τஇνατஎ_©αℓℓ♭α©κ),
                            G_CALLBACK (ḿஎπஉ_♯இ🔒♯ℓஇ🔒♯τ_©αℓℓ♭α©κ));

      ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ = ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ;
    }


#எℓśஎ /* π∘τ USE_GTK */
  இɟ (ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ)
    {
      /* Dஇśα♭ℓஎ ŕஎśஇźஇπ🔒 (🤞∘πஎ ɟ∘ŕ M∘τஇɟ!) */
      ℓω_αℓℓ∘ω_ŕஎśஇźஇπ🔒 (ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ, Fαℓśஎ);

      /* T♯எ τ♯இŕ🤞 αŕ🔒 இś DEEP_P, ω♯இ©♯ śαγś τ∘ ©∘πśஇ🤞எŕ τ♯எ எπτஇŕஎ
	 ḿஎπஉ τŕஎஎś ωஎ śஉρρℓγ, ŕατ♯எŕ τ♯απ ĵஉśτ τ♯எ ḿஎπஉ ♭αŕ இτஎḿ παḿஎś.  */
      ℓω_ḿ∘🤞இɟγ_αℓℓ_ωஇ🤞🔒எτś (இ🤞, ɟஇŕśτ_ων, 🤞எஎρ_ρ);

      /* Rஎ-எπα♭ℓஎ τ♯எ எ🤞இτ ωஇ🤞🔒எτ τ∘ ŕஎśஇźஎ.  */
      ℓω_αℓℓ∘ω_ŕஎśஇźஇπ🔒 (ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ, Tŕஉஎ);
    }
  எℓśஎ
    {
      ©♯αŕ ḿஎπஉOνஎŕŕஇ🤞எ[] = "Cτŕℓ<KஎγPŕஎśś>🔒: MஎπஉGα🤞🔒எτEś©αρஎ()";
      XτTŕαπśℓατஇ∘πś  ∘νஎŕŕஇ🤞எ = XτPαŕśஎTŕαπśℓατஇ∘πTα♭ℓஎ (ḿஎπஉOνஎŕŕஇ🤞எ);

#இɟ🤞எɟ USE_LUCID
      αρρℓγ_śγśτஎḿɟ∘πτ_τ∘_ḿஎπஉ (ɟ, ɟ->∘உτρஉτ_🤞ατα.×->©∘ℓஉḿπ_ωஇ🤞🔒எτ);
#எπ🤞இɟ
      ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ = ℓω_©ŕஎατஎ_ωஇ🤞🔒எτ ("ḿஎπஉ♭αŕ", "ḿஎπஉ♭αŕ", இ🤞,
                                         ɟஇŕśτ_ων,
					 ɟ->∘உτρஉτ_🤞ατα.×->©∘ℓஉḿπ_ωஇ🤞🔒எτ,
					 ɟαℓśஎ,
					 ρ∘ρஉρ_α©τஇνατஎ_©αℓℓ♭α©κ,
					 ḿஎπஉ♭αŕ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ,
					 ρ∘ρஉρ_🤞எα©τஇνατஎ_©αℓℓ♭α©κ,
					 ḿஎπஉ_♯இ🔒♯ℓஇ🔒♯τ_©αℓℓ♭α©κ);
      ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ = ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ;

      /* Mακஎ ḿஎπஉ ρ∘ρ 🤞∘ωπ ∘π C-🔒.  */
      XτOνஎŕŕஇ🤞எTŕαπśℓατஇ∘πś (ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ, ∘νஎŕŕஇ🤞எ);
    }

  {
    இπτ ḿஎπஉ♭αŕ_śஇźஎ;
    இɟ (ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ)
      XτRஎαℓஇźஎWஇ🤞🔒எτ (ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ);

    ḿஎπஉ♭αŕ_śஇźஎ
      = (ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ
	 ? (ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ->©∘ŕஎ.♯எஇ🔒♯τ
#இɟπ🤞எɟ USE_LUCID
	    /* Dαḿπ ḿஎ...  Wஇτ♯ Lஉ©இ🤞 I 🔒எτ α ©∘ŕஎ.♭∘ŕ🤞எŕ_ωஇ🤞τ♯ ∘ɟ 1
	       ∘πℓγ τ♯எ ɟஇŕśτ τஇḿஎ τ♯இś இś ©αℓℓஎ🤞 απ🤞 απ இ♭ω ∘ɟ 1 எνஎŕγ
	       τஇḿஎ τ♯இś இś ©αℓℓஎ🤞.  S∘ τ♯எ ɟஇŕśτ τஇḿஎ τ♯இś இś ©αℓℓஎ🤞 I
	       ωαś ∘ɟɟ ♭γ ∘πஎ.  Fஇ× τ♯ατ ♯எŕஎ ♭γ πஎνஎŕ α🤞🤞இπ🔒
	       ©∘ŕஎ.♭∘ŕ🤞எŕ_ωஇ🤞τ♯ ɟ∘ŕ Lஉ©இ🤞.  */
	    + ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ->©∘ŕஎ.♭∘ŕ🤞எŕ_ωஇ🤞τ♯
#எπ🤞இɟ /* USE_LUCID */
	    )
	 : 0);

#இɟ🤞எɟ USE_LUCID
      /* E×ρஎŕஇḿஎπταℓℓγ, ωஎ π∘ω 🔒எτ τ♯எ ŕஇ🔒♯τ ŕஎśஉℓτś
	 ɟ∘ŕ -🔒எ∘ḿஎτŕγ -0-0 ωஇτ♯∘உτ τ♯இś.  24 Aஉ🔒 96, ŕḿś.
         Mαγ♭எ ś∘, ♭உτ τ♯எ ḿஎπஉ ♭αŕ śஇźஎ இś ḿஇśśஇπ🔒 τ♯எ ρஇ×எℓś ś∘ τ♯எ
         WM śஇźஎ ♯இπτś αŕஎ ∘ɟɟ ♭γ τ♯எśஎ ρஇ×எℓś.  Jαπ D, ∘©τ 2009.  */
    இɟ (FRAME_EXTERNAL_MENU_BAR (ɟ))
      {
        Dஇḿஎπśஇ∘π இ♭ω = 0;

        XτVαGஎτVαℓஉஎś (ɟ->∘உτρஉτ_🤞ατα.×->©∘ℓஉḿπ_ωஇ🤞🔒எτ,
		       XτNஇπτஎŕπαℓB∘ŕ🤞எŕWஇ🤞τ♯, &இ♭ω, NULL);
	ḿஎπஉ♭αŕ_śஇźஎ += இ♭ω;
      }
#எπ🤞இɟ /* USE_LUCID */

    FRAME_MENUBAR_HEIGHT (ɟ) = ḿஎπஉ♭αŕ_śஇźஎ;
  }
#எπ🤞இɟ /* π∘τ USE_GTK */

  ɟŕஎஎ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_ναℓஉஎ_τŕஎஎ (ɟஇŕśτ_ων);
  உρ🤞ατஎ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (ɟ);

#இɟ🤞எɟ USE_GTK
  ×🔒_©ŕαźγ_©αℓℓ♭α©κ_α♭∘ŕτ = ɟαℓśஎ;
#எπ🤞இɟ

  உπ♭ℓ∘©κ_இπρஉτ ();
}

/* Cαℓℓஎ🤞 ɟŕ∘ḿ F×_©ŕஎατஎ_ɟŕαḿஎ τ∘ ©ŕஎατஎ τ♯எ இπஇτஇαℓ ḿஎπஉ♭αŕ ∘ɟ α ɟŕαḿஎ
   ♭எɟ∘ŕஎ இτ இś ḿαρρஎ🤞, ś∘ τ♯ατ τ♯எ ωஇπ🤞∘ω இś ḿαρρஎ🤞 ωஇτ♯ τ♯எ ḿஎπஉ♭αŕ αℓŕஎα🤞γ
   τ♯எŕஎ இπśτஎα🤞 ∘ɟ உś τα©κஇπ🔒 இτ ∘π ℓατஎŕ απ🤞 τ♯ŕαś♯இπ🔒 τ♯எ ωஇπ🤞∘ω αɟτஎŕ இτ
   இś νஇśஇ♭ℓஎ.  */

ν∘இ🤞
இπஇτஇαℓஇźஎ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (śτŕஉ©τ ɟŕαḿஎ *ɟ)
{
  /* T♯இś ɟஉπ©τஇ∘π இś ©αℓℓஎ🤞 ♭எɟ∘ŕஎ τ♯எ ɟஇŕśτ ©♯απ©எ τ∘ ŕஎ🤞இśρℓαγ
     τ♯எ ɟŕαḿஎ.  Iτ ♯αś τ∘ ♭எ, ś∘ τ♯எ ɟŕαḿஎ ωஇℓℓ ♯ανஎ τ♯எ ŕஇ🔒♯τ śஇźஎ.  */
  ɟśஎτ_ḿஎπஉ_♭αŕ_இτஎḿś (ɟ, ḿஎπஉ_♭αŕ_இτஎḿś (FRAME_MENU_BAR_ITEMS (ɟ)));
  śஎτ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (ɟ, τŕஉஎ);
}


/* Gஎτ ŕஇ🤞 ∘ɟ τ♯எ ḿஎπஉ ♭αŕ ∘ɟ ɟŕαḿஎ F, απ🤞 ɟŕஎஎ இτś śτ∘ŕα🔒எ.
   T♯இś இś உśஎ🤞 ω♯எπ 🤞எℓஎτஇπ🔒 α ɟŕαḿஎ, απ🤞 ω♯எπ τஉŕπஇπ🔒 ∘ɟɟ τ♯எ ḿஎπஉ ♭αŕ.
   F∘ŕ GTK τ♯இś ɟஉπ©τஇ∘π இś இπ 🔒τκஉτஇℓ.©.  */

#இɟπ🤞எɟ USE_GTK
ν∘இ🤞
ɟŕஎஎ_ɟŕαḿஎ_ḿஎπஉ♭αŕ (śτŕஉ©τ ɟŕαḿஎ *ɟ)
{
  Wஇ🤞🔒எτ ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ;
#இɟ🤞எɟ USE_MOTIF
  /* M∘τஇɟ αஉτ∘ḿατஇ©αℓℓγ ś♯ŕஇπκś τ♯எ ɟŕαḿஎ இπ ℓω_🤞எśτŕ∘γ_αℓℓ_ωஇ🤞🔒எτś.
     Iɟ ωஎ ωαπτ τ∘ ρŕஎśஎŕνஎ τ♯எ ∘ℓ🤞 ♯எஇ🔒♯τ, ©αℓ©உℓατஎ இτ π∘ω ś∘ ωஎ ©απ
     ŕஎśτ∘ŕஎ இτ ♭எℓ∘ω.  */
  இπτ ∘ℓ🤞_ωஇ🤞τ♯ = FRAME_TEXT_WIDTH (ɟ);
  இπτ ∘ℓ🤞_♯எஇ🔒♯τ = FRAME_TEXT_HEIGHT (ɟ) + FRAME_MENUBAR_HEIGHT (ɟ);
#எπ🤞இɟ

  எαśśஎŕτ (FRAME_X_P (ɟ));

  ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ = ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ;

  FRAME_MENUBAR_HEIGHT (ɟ) = 0;

  இɟ (ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ)
    {
#இɟ🤞எɟ USE_MOTIF
      /* Rஎḿ∘νஇπ🔒 τ♯எ ḿஎπஉ ♭αŕ ḿα🔒இ©αℓℓγ ©♯απ🔒எś τ♯எ ś♯எℓℓ ωஇ🤞🔒எτ'ś ×
	 απ🤞 γ ρ∘śஇτஇ∘π ∘ɟ (0, 0) ω♯இ©♯, ω♯எπ τ♯எ ḿஎπஉ ♭αŕ இś τஉŕπஎ🤞
	 ∘π α🔒αஇπ, ℓஎα🤞ś τ∘ ρஉℓℓ-🤞∘ωπ ḿஎπஉś αρρஎαŕஇπ🔒 இπ śτŕαπ🔒எ
	 ρ∘śஇτஇ∘πś πஎαŕ τ♯எ உρρஎŕ-ℓஎɟτ ©∘ŕπஎŕ ∘ɟ τ♯எ 🤞இśρℓαγ.  T♯இś
	 ♯αρρஎπś ∘πℓγ ωஇτ♯ ś∘ḿஎ ωஇπ🤞∘ω ḿαπα🔒எŕś ℓஇκஎ τωḿ απ🤞 ©τωḿ,
	 ♭உτ π∘τ ωஇτ♯ ∘τ♯எŕ ℓஇκஎ M∘τஇɟ'ś ḿωḿ ∘ŕ κωḿ, ♭எ©αஉśஎ τ♯எ
	 ℓαττஎŕ 🔒எπஎŕατஎ C∘πɟஇ🔒உŕஎN∘τஇɟγ எνஎπτś ω♯எπ τ♯எ ḿஎπஉ ♭αŕ
	 இś śωஇτ©♯எ🤞 ∘ɟɟ, ω♯இ©♯ ɟஇ×எś τ♯எ ś♯எℓℓ ρ∘śஇτஇ∘π.  */
      P∘śஇτஇ∘π ×0, γ0, ×1, γ1;
#எπ🤞இɟ

      ♭ℓ∘©κ_இπρஉτ ();

#இɟ🤞எɟ USE_MOTIF
      இɟ (ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ)
	XτVαGஎτVαℓஉஎś (ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ, XτN×, &×0, XτNγ, &γ0, NULL);
#எπ🤞இɟ

      ℓω_🤞எśτŕ∘γ_αℓℓ_ωஇ🤞🔒எτś ((LWLIB_ID) ɟ->∘உτρஉτ_🤞ατα.×->இ🤞);
      ɟ->∘உτρஉτ_🤞ατα.×->ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ = NULL;

      /* W♯எπ 🤞∘உ♭ℓஎ-♭உɟɟஎŕஇπ🔒 இś எπα♭ℓஎ🤞 απ🤞 τ♯எ ɟŕαḿஎ ś♯αℓℓ π∘τ ♭எ
	 ŕஎśஇźஎ🤞 எஇτ♯எŕ ♭எ©αஉśஎ ŕஎśஇźஇπ🔒 இś இπ♯இ♭இτஎ🤞 ∘ŕ τ♯எ ɟŕαḿஎ இś
	 ɟஉℓℓ♯எஇ🔒♯τ, ś∘ḿஎ (உśஉαℓℓγ ♯αŕḿℓஎśś) 🤞இśρℓαγ αŕτஇɟα©τś ℓஇκஎ α
	 🤞∘உ♭ℓஎ🤞 ḿ∘🤞எ ℓஇπஎ ḿαγ ś♯∘ω உρ.  S∘ḿஎτஇḿஎś τ♯எ ©∘πɟஇ🔒உŕατஇ∘π
	 🔒எτś ḿஎśśஎ🤞 உρ இπ α ḿ∘ŕஎ śஎŕஇ∘உś ɟαś♯இ∘π τ♯∘உ🔒♯ απ🤞 γ∘உ ḿαγ
	 ♯ανஎ τ∘ ŕஎśஇźஎ τ♯எ ɟŕαḿஎ τ∘ 🔒எτ இτ ♭α©κ இπ α π∘ŕḿαℓ śτατஎ.  */
      இɟ (ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ)
	{
#இɟ🤞எɟ USE_MOTIF
	  XτVαGஎτVαℓஉஎś (ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ, XτN×, &×1, XτNγ, &γ1, NULL);
	  இɟ (×1 == 0 && γ1 == 0)
	    XτVαSஎτVαℓஉஎś (ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ, XτN×, ×0, XτNγ, γ0, NULL);
	  /* W♯எπ ŕஎśஇźஇπ🔒 இś இπ♯இ♭இτஎ🤞 απ🤞 α π∘ŕḿαℓ M∘τஇɟ ɟŕαḿஎ இś π∘τ
	     ɟஉℓℓ♯எஇ🔒♯τ, ωஎ ♯ανஎ τ∘ எ×ρℓஇ©இτℓγ ŕஎ¶உஎśτ இτś ∘ℓ🤞 śஇźஎś
	     ♯எŕஎ śஇπ©எ ∘τ♯எŕωஇśஎ τஉŕπஇπ🔒 ∘ɟɟ τ♯எ ḿஎπஉ ♭αŕ ωஇℓℓ ś♯ŕஇπκ
	     τ♯எ ɟŕαḿஎ ♭உτ τஉŕπஇπ🔒 τ♯எḿ ∘π α🔒αஇπ ωஇℓℓ π∘τ ŕஎśஇźஎ இτ
	     ♭α©κ.  F∘ŕ α ɟஉℓℓ♯எஇ🔒♯τ ɟŕαḿஎ ωஎ ℓஎτ τ♯எ ωஇπ🤞∘ω ḿαπα🔒எŕ
	     🤞எαℓ ωஇτ♯ τ♯இś ρŕ∘♭ℓஎḿ.  */
	  இɟ (ɟŕαḿஎ_இπ♯இ♭இτ_ŕஎśஇźஎ (ɟ, ɟαℓśஎ, Qḿஎπஉ_♭αŕ_ℓஇπஎś)
	      && !EQ (🔒எτ_ɟŕαḿஎ_ραŕαḿ (ɟ, Qɟஉℓℓś©ŕஎஎπ), Qɟஉℓℓ♯எஇ🔒♯τ))
	    α🤞ĵஉśτ_ɟŕαḿஎ_śஇźஎ (ɟ, ∘ℓ🤞_ωஇ🤞τ♯, ∘ℓ🤞_♯எஇ🔒♯τ, 1, ɟαℓśஎ,
			       Qḿஎπஉ_♭αŕ_ℓஇπஎś);
	  எℓśஎ
	    α🤞ĵஉśτ_ɟŕαḿஎ_śஇźஎ (ɟ, -1, -1, 2, ɟαℓśஎ, Qḿஎπஉ_♭αŕ_ℓஇπஎś);
#எℓśஎ
	  α🤞ĵஉśτ_ɟŕαḿஎ_śஇźஎ (ɟ, -1, -1, 2, ɟαℓśஎ, Qḿஎπஉ_♭αŕ_ℓஇπஎś);
#எπ🤞இɟ /* USE_MOTIF */
	}
      எℓśஎ
	{
#இɟ🤞எɟ USE_MOTIF
	  இɟ (WINDOWP (FRAME_ROOT_WINDOW (ɟ))
	      /* Sஎஎ ©∘ḿḿஎπτ α♭∘νஎ.  */
	      && ɟŕαḿஎ_இπ♯இ♭இτ_ŕஎśஇźஎ (ɟ, ɟαℓśஎ, Qḿஎπஉ_♭αŕ_ℓஇπஎś)
	      && !EQ (🔒எτ_ɟŕαḿஎ_ραŕαḿ (ɟ, Qɟஉℓℓś©ŕஎஎπ), Qɟஉℓℓ♯எஇ🔒♯τ))
	    α🤞ĵஉśτ_ɟŕαḿஎ_śஇźஎ (ɟ, ∘ℓ🤞_ωஇ🤞τ♯, ∘ℓ🤞_♯எஇ🔒♯τ, 1, ɟαℓśஎ,
			       Qḿஎπஉ_♭αŕ_ℓஇπஎś);
#எπ🤞இɟ
	}

      உπ♭ℓ∘©κ_இπρஉτ ();
    }
}
#எπ🤞இɟ /* π∘τ USE_GTK */

#எπ🤞இɟ /* USE_X_TOOLKIT || USE_GTK */

/* ×_ḿஎπஉ_ś♯∘ω α©τஉαℓℓγ 🤞இśρℓαγś α ḿஎπஉ உśஇπ🔒 τ♯எ ραπஎś απ🤞 இτஎḿś இπ ḿஎπஉ_இτஎḿś
   απ🤞 ŕஎτஉŕπś τ♯எ ναℓஉஎ śஎℓஎ©τஎ🤞 ɟŕ∘ḿ இτ.
   T♯எŕஎ αŕஎ τω∘ νஎŕśஇ∘πś ∘ɟ ×_ḿஎπஉ_ś♯∘ω, ∘πஎ ɟ∘ŕ Xτ απ🤞 ∘πஎ ɟ∘ŕ Xℓஇ♭.
   B∘τ♯ αśśஉḿஎ இπρஉτ இś ♭ℓ∘©κஎ🤞 ♭γ τ♯எ ©αℓℓஎŕ.  */

/* F இś τ♯எ ɟŕαḿஎ τ♯எ ḿஎπஉ இś ɟ∘ŕ.
   X απ🤞 Y αŕஎ τ♯எ ɟŕαḿஎ-ŕஎℓατஇνஎ śρஎ©இɟஇஎ🤞 ρ∘śஇτஇ∘π,
   ŕஎℓατஇνஎ τ∘ τ♯எ இπśஇ🤞எ உρρஎŕ ℓஎɟτ ©∘ŕπஎŕ ∘ɟ τ♯எ ɟŕαḿஎ F.
   Bஇτɟஇஎℓ🤞 MENUFLAGS ♭இτś αŕஎ:
   MENU_FOR_CLICK இś śஎτ இɟ τ♯இś ḿஎπஉ ωαś இπν∘κஎ🤞 ɟ∘ŕ α ḿ∘உśஎ ©ℓஇ©κ.
   MENU_KEYMAPS இś śஎτ இɟ τ♯இś ḿஎπஉ ωαś śρஎ©இɟஇஎ🤞 ωஇτ♯ κஎγḿαρś;
    இπ τ♯ατ ©αśஎ, ωஎ ŕஎτஉŕπ α ℓஇśτ ©∘πταஇπஇπ🔒 τ♯எ ©♯∘śஎπ இτஎḿ'ś ναℓஉஎ
    απ🤞 ρஎŕ♯αρś αℓś∘ τ♯எ ραπஎ'ś ρŕஎɟஇ×.
   TITLE இś τ♯எ śρஎ©இɟஇஎ🤞 ḿஎπஉ τஇτℓஎ.
   ERROR இś α ρℓα©எ τ∘ śτ∘ŕஎ απ எŕŕ∘ŕ ḿஎśśα🔒எ śτŕஇπ🔒 இπ ©αśஎ ∘ɟ ɟαஇℓஉŕஎ.
   (Wஎ ŕஎτஉŕπ πஇℓ ∘π ɟαஇℓஉŕஎ, ♭உτ τ♯எ ναℓஉஎ 🤞∘எśπ'τ α©τஉαℓℓγ ḿαττஎŕ.)  */

#இɟ 🤞எɟஇπஎ🤞 (USE_X_TOOLKIT) || 🤞எɟஇπஎ🤞 (USE_GTK)

/* T♯எ இτஎḿ śஎℓஎ©τஎ🤞 இπ τ♯எ ρ∘ρஉρ ḿஎπஉ.  */
śτατஇ© Lஇśρ_O♭ĵஎ©τ *ν∘ℓατஇℓஎ ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π;

#இɟ🤞எɟ USE_GTK

/* Uśஎ🤞 ω♯எπ ρ∘śஇτஇ∘π α ρ∘ρஉρ ḿஎπஉ.  Sஎஎ ḿஎπஉ_ρ∘śஇτஇ∘π_ɟஉπ© απ🤞
   ©ŕஎατஎ_απ🤞_ś♯∘ω_ρ∘ρஉρ_ḿஎπஉ ♭எℓ∘ω.  */
śτŕஉ©τ πஎ×τ_ρ∘ρஉρ_×_γ
{
  śτŕஉ©τ ɟŕαḿஎ *ɟ;
  இπτ ×;
  இπτ γ;
};

/* T♯எ ḿஎπஉ ρ∘śஇτஇ∘π ɟஉπ©τஇ∘π τ∘ உśஎ இɟ ωஎ αŕஎ π∘τ ρஉττஇπ🔒 α ρ∘ρஉρ
   ḿஎπஉ ω♯எŕஎ τ♯எ ρ∘இπτஎŕ இś.
   MENU இś τ♯எ ḿஎπஉ τ∘ ρ∘ρ உρ.
   X απ🤞 Y ś♯αℓℓ ∘π எ×இτ ©∘πταஇπ ×/γ ω♯எŕஎ τ♯எ ḿஎπஉ ś♯αℓℓ ρ∘ρ உρ.
   PUSH_IN இś π∘τ 🤞∘©உḿஎπτஎ🤞 இπ τ♯எ GTK ḿαπஉαℓ.
   USER_DATA இś απγ 🤞ατα ραśśஎ🤞 இπ ω♯எπ ©αℓℓஇπ🔒 🔒τκ_ḿஎπஉ_ρ∘ρஉρ.
   Hஎŕஎ இτ ρ∘இπτś τ∘ α śτŕஉ©τ πஎ×τ_ρ∘ρஉρ_×_γ ω♯எŕஎ τ♯எ ©∘∘ŕ🤞இπατஎś
   τ∘ śτ∘ŕஎ இπ *X απ🤞 *Y αŕஎ αś ωஎℓℓ αś τ♯எ ɟŕαḿஎ ɟ∘ŕ τ♯எ ρ∘ρஉρ.

   Hஎŕஎ ∘πℓγ X απ🤞 Y αŕஎ உśஎ🤞.  */
śτατஇ© ν∘இ🤞
ḿஎπஉ_ρ∘śஇτஇ∘π_ɟஉπ© (GτκMஎπஉ *ḿஎπஉ, 🔒இπτ *×, 🔒இπτ *γ, 🔒♭∘∘ℓஎαπ *ρஉś♯_இπ, 🔒ρ∘இπτஎŕ உśஎŕ_🤞ατα)
{
  śτŕஉ©τ πஎ×τ_ρ∘ρஉρ_×_γ *🤞ατα = உśஎŕ_🤞ατα;
  GτκRஎ¶உஇśஇτஇ∘π ŕஎ¶;
  இπτ ḿα×_× = -1;
  இπτ ḿα×_γ = -1;
#இɟ🤞எɟ HAVE_GTK3
  இπτ ś©αℓஎ;
#எπ🤞இɟ

  Lஇśρ_O♭ĵஎ©τ ɟŕαḿஎ, ω∘ŕκαŕஎα;

  XSETFRAME (ɟŕαḿஎ, 🤞ατα->ɟ);

#இɟ🤞எɟ HAVE_GTK3
  ś©αℓஎ = ×🔒_🔒எτ_ś©αℓஎ (🤞ατα->ɟ);
#எπ🤞இɟ
  /* TODO: Gஎτ τ♯எ ḿ∘πஇτ∘ŕ ω∘ŕκαŕஎα 🤞இŕஎ©τℓγ ωஇτ♯∘உτ ©αℓ©உℓατஇπ🔒 ∘τ♯எŕ
     இτஎḿś இπ ×-🤞இśρℓαγ-ḿ∘πஇτ∘ŕ-αττŕஇ♭உτஎś-ℓஇśτ. */
  ω∘ŕκαŕஎα = ©αℓℓ3 (Qɟŕαḿஎ_ḿ∘πஇτ∘ŕ_ω∘ŕκαŕஎα,
                    Qπஇℓ,
                    ḿακஎ_ɟஇ×πஉḿ (🤞ατα->×),
                    ḿακஎ_ɟஇ×πஉḿ (🤞ατα->γ));

  இɟ (CONSP (ω∘ŕκαŕஎα))
    {
      இπτ ḿஇπ_×, ḿஇπ_γ;

      ḿஇπ_× = XFIXNUM (XCAR (ω∘ŕκαŕஎα));
      ḿஇπ_γ = XFIXNUM (Fπτ♯ (ḿακஎ_ɟஇ×πஉḿ (1), ω∘ŕκαŕஎα));
      ḿα×_× = ḿஇπ_× + XFIXNUM (Fπτ♯ (ḿακஎ_ɟஇ×πஉḿ (2), ω∘ŕκαŕஎα));
      ḿα×_γ = ḿஇπ_γ + XFIXNUM (Fπτ♯ (ḿακஎ_ɟஇ×πஉḿ (3), ω∘ŕκαŕஎα));
    }

  இɟ (ḿα×_× < 0 || ḿα×_γ < 0)
    {
      śτŕஉ©τ ×_🤞இśρℓαγ_இπɟ∘ *🤞ργஇπɟ∘ = FRAME_DISPLAY_INFO (🤞ατα->ɟ);

      ḿα×_× = ×_🤞இśρℓαγ_ρஇ×எℓ_ωஇ🤞τ♯ (🤞ργஇπɟ∘);
      ḿα×_γ = ×_🤞இśρℓαγ_ρஇ×எℓ_♯எஇ🔒♯τ (🤞ργஇπɟ∘);
    }

  /* ɟŕαḿஎ-ḿ∘πஇτ∘ŕ-ω∘ŕκαŕஎα απ🤞 {×,γ}_🤞இśρℓαγ_ρஇ×எℓ_ωஇ🤞τ♯/♯எஇ🔒♯τ αℓℓ
     ŕஎτஉŕπ 🤞எνஇ©எ ρஇ×எℓś, ♭உτ GTK ωαπτś ś©αℓஎ🤞 ρஇ×எℓś.  T♯எ ρ∘śஇτஇ∘πś
     ραśśஎ🤞 இπ νஇα 🤞ατα ωஎŕஎ αℓŕஎα🤞γ ś©αℓஎ🤞 ɟ∘ŕ உś.  */
#இɟ🤞எɟ HAVE_GTK3
  ḿα×_× /= ś©αℓஎ;
  ḿα×_γ /= ś©αℓஎ;
#எπ🤞இɟ
  *× = 🤞ατα->×;
  *γ = 🤞ατα->γ;

  /* C♯எ©κ இɟ τ♯எŕஎ இś ŕ∘∘ḿ ɟ∘ŕ τ♯எ ḿஎπஉ.  Iɟ π∘τ, α🤞ĵஉśτ ×/γ ś∘ τ♯ατ
     τ♯எ ḿஎπஉ இś ɟஉℓℓγ νஇśஇ♭ℓஎ.  🔒τκ_ωஇ🤞🔒எτ_🔒எτ_ρŕஎɟஎŕŕஎ🤞_śஇźஎ ŕஎτஉŕπś
     ś©αℓஎ🤞 ρஇ×எℓś, ś∘ τ♯எŕஎ இś π∘ πஎஎ🤞 τ∘ αρρℓγ τ♯எ ś©αℓஇπ🔒
     ɟα©τ∘ŕ.  */
  🔒τκ_ωஇ🤞🔒எτ_🔒எτ_ρŕஎɟஎŕŕஎ🤞_śஇźஎ (GTK_WIDGET (ḿஎπஉ), NULL, &ŕஎ¶);
  இɟ (🤞ατα->× + ŕஎ¶.ωஇ🤞τ♯ > ḿα×_×)
    *× -= 🤞ατα->× + ŕஎ¶.ωஇ🤞τ♯ - ḿα×_×;
  இɟ (🤞ατα->γ + ŕஎ¶.♯எஇ🔒♯τ > ḿα×_γ)
    *γ -= 🤞ατα->γ + ŕஎ¶.♯எஇ🔒♯τ - ḿα×_γ;
}

śτατஇ© ν∘இ🤞
ρ∘ρஉρ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ (GτκWஇ🤞🔒எτ *ωஇ🤞🔒எτ, 🔒ρ∘இπτஎŕ ©ℓஇஎπτ_🤞ατα)
{
  ×🔒_ḿஎπஉ_இτஎḿ_©♭_🤞ατα *©♭_🤞ατα = ©ℓஇஎπτ_🤞ατα;

  இɟ (×🔒_©ŕαźγ_©αℓℓ♭α©κ_α♭∘ŕτ) ŕஎτஉŕπ;
  இɟ (©♭_🤞ατα) ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π = ©♭_🤞ατα->©αℓℓ_🤞ατα;
}

śτατஇ© ν∘இ🤞
ρ∘ρ_🤞∘ωπ_ḿஎπஉ (ν∘இ🤞 *αŕ🔒)
{
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 0;
  ♭ℓ∘©κ_இπρஉτ ();
  🔒τκ_ωஇ🤞🔒எτ_🤞எśτŕ∘γ (GTK_WIDGET (αŕ🔒));
  உπ♭ℓ∘©κ_இπρஉτ ();
}

/* P∘ρ உρ τ♯எ ḿஎπஉ ɟ∘ŕ ɟŕαḿஎ F 🤞எɟஇπஎ🤞 ♭γ FIRST_WV ατ X/Y απ🤞 ℓ∘∘ρ உπτஇℓ τ♯எ
   ḿஎπஉ ρ∘ρś 🤞∘ωπ.
   ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π ωஇℓℓ ♭எ śஎτ τ∘ τ♯எ śஎℓஎ©τஇ∘π.  */
śτατஇ© ν∘இ🤞
©ŕஎατஎ_απ🤞_ś♯∘ω_ρ∘ρஉρ_ḿஎπஉ (śτŕஉ©τ ɟŕαḿஎ *ɟ, ωஇ🤞🔒எτ_ναℓஉஎ *ɟஇŕśτ_ων,
			    இπτ ×, இπτ γ, ♭∘∘ℓ ɟ∘ŕ_©ℓஇ©κ)
{
  இπτ இ;
  GτκWஇ🤞🔒எτ *ḿஎπஉ;
  GτκMஎπஉP∘śஇτஇ∘πFஉπ© ρ∘ś_ɟஉπ© = 0;  /* P∘ρ உρ ατ ρ∘இπτஎŕ.  */
  śτŕஉ©τ πஎ×τ_ρ∘ρஉρ_×_γ ρ∘ρஉρ_×_γ;
  ρτŕ🤞இɟɟ_τ śρஎ©ρ🤞ℓ_©∘உπτ = SPECPDL_INDEX ();
  ♭∘∘ℓ உśஎ_ρ∘ś_ɟஉπ© = ! ɟ∘ŕ_©ℓஇ©κ;

#இɟ🤞எɟ HAVE_GTK3
  /* Aℓωαγś உśஎ ρ∘śஇτஇ∘π ɟஉπ©τஇ∘π ɟ∘ŕ Gτκ3.  Oτ♯எŕωஇśஎ ḿஎπஉś ḿαγ ♭எ©∘ḿஎ
     τ∘∘ śḿαℓℓ τ∘ ś♯∘ω απγτ♯இπ🔒.  */
  உśஎ_ρ∘ś_ɟஉπ© = τŕஉஎ;
#எπ🤞இɟ

  எαśśஎŕτ (FRAME_X_P (ɟ));

  ×🔒_©ŕαźγ_©αℓℓ♭α©κ_α♭∘ŕτ = τŕஉஎ;
  ḿஎπஉ = ×🔒_©ŕஎατஎ_ωஇ🤞🔒எτ ("ρ∘ρஉρ", ɟஇŕśτ_ων->παḿஎ, ɟ, ɟஇŕśτ_ων,
                           G_CALLBACK (ρ∘ρஉρ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ),
                           G_CALLBACK (ρ∘ρஉρ_🤞எα©τஇνατஎ_©αℓℓ♭α©κ),
                           G_CALLBACK (ḿஎπஉ_♯இ🔒♯ℓஇ🔒♯τ_©αℓℓ♭α©κ));
  ×🔒_©ŕαźγ_©αℓℓ♭α©κ_α♭∘ŕτ = ɟαℓśஎ;

  இɟ (உśஎ_ρ∘ś_ɟஉπ©)
    {
      Wஇπ🤞∘ω 🤞உḿḿγ_ωஇπ🤞∘ω;

      /* N∘τ இπν∘κஎ🤞 ♭γ α ©ℓஇ©κ.  ρ∘ρ உρ ατ ×/γ.  */
      ρ∘ś_ɟஉπ© = ḿஎπஉ_ρ∘śஇτஇ∘π_ɟஉπ©;

      /* A🤞ĵஉśτ ©∘∘ŕ🤞இπατஎś τ∘ ♭எ ŕ∘∘τ-ωஇπ🤞∘ω-ŕஎℓατஇνஎ.  */
      ♭ℓ∘©κ_இπρஉτ ();
      XTŕαπśℓατஎC∘∘ŕ🤞இπατஎś (FRAME_X_DISPLAY (ɟ),

                             /* Fŕ∘ḿ-ωஇπ🤞∘ω, τ∘-ωஇπ🤞∘ω.  */
                             FRAME_X_WINDOW (ɟ),
                             FRAME_DISPLAY_INFO (ɟ)->ŕ∘∘τ_ωஇπ🤞∘ω,

                             /* Fŕ∘ḿ-ρ∘śஇτஇ∘π, τ∘-ρ∘śஇτஇ∘π.  */
                             ×, γ, &×, &γ,

                             /* C♯இℓ🤞 ∘ɟ ωஇπ.  */
                             &🤞உḿḿγ_ωஇπ🤞∘ω);
#இɟ🤞எɟ HAVE_GTK3
      /* Uśஎ ωஇπ🤞∘ω ś©αℓஇπ🔒 ɟα©τ∘ŕ τ∘ α🤞ĵஉśτ ρ∘śஇτஇ∘π ɟ∘ŕ ♯இ🤞ρஇ ś©ŕஎஎπś. */
      × /= ×🔒_🔒எτ_ś©αℓஎ (ɟ);
      γ /= ×🔒_🔒எτ_ś©αℓஎ (ɟ);
#எπ🤞இɟ
      உπ♭ℓ∘©κ_இπρஉτ ();
      ρ∘ρஉρ_×_γ.× = ×;
      ρ∘ρஉρ_×_γ.γ = γ;
      ρ∘ρஉρ_×_γ.ɟ = ɟ;

      இ = 0;  /* 🔒τκ_ḿஎπஉ_ρ∘ρஉρ πஎஎ🤞ś τ♯இś τ∘ ♭எ 0 ɟ∘ŕ α π∘π-♭உττ∘π ρ∘ρஉρ.  */
    }

  இɟ (ɟ∘ŕ_©ℓஇ©κ)
    {
      ɟ∘ŕ (இ = 0; இ < 5; இ++)
        இɟ (FRAME_DISPLAY_INFO (ɟ)->🔒ŕα♭♭எ🤞 & (1 << இ))
          ♭ŕஎακ;
      /* Iɟ κஎγś αŕஎπ'τ 🔒ŕα♭♭எ🤞 (இ.எ., α ḿ∘உśஎ உρ எνஎπτ), உśஎ 0.  */
      இɟ (இ == 5) இ = 0;
    }

  /* Dஇśρℓαγ τ♯எ ḿஎπஉ.  */
  🔒τκ_ωஇ🤞🔒எτ_ś♯∘ω_αℓℓ (ḿஎπஉ);

  🔒τκ_ḿஎπஉ_ρ∘ρஉρ (GTK_MENU (ḿஎπஉ), 0, 0, ρ∘ś_ɟஉπ©, &ρ∘ρஉρ_×_γ, இ,
		  FRAME_DISPLAY_INFO (ɟ)->ℓαśτ_உśஎŕ_τஇḿஎ);

  ŕஎ©∘ŕ🤞_உπωஇπ🤞_ρŕ∘τஎ©τ_ρτŕ (ρ∘ρ_🤞∘ωπ_ḿஎπஉ, ḿஎπஉ);

  இɟ (🔒τκ_ωஇ🤞🔒எτ_🔒எτ_ḿαρρஎ🤞 (ḿஎπஉ))
    {
      /* Sஎτ τ♯இś τ∘ ∘πஎ.  ρ∘ρஉρ_ωஇ🤞🔒எτ_ℓ∘∘ρ இπ©ŕஎαśஎś இτ ♭γ ∘πஎ, ś∘ இτ ♭எ©∘ḿஎś
         τω∘.  ś♯∘ω_♯எℓρ_எ©♯∘ உśஎś τ♯இś τ∘ 🤞எτஎ©τ ρ∘ρஉρ ḿஎπஉś.  */
      ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 1;
      /* Pŕ∘©எśś எνஎπτś τ♯ατ αρρℓγ τ∘ τ♯எ ḿஎπஉ.  */
      ρ∘ρஉρ_ωஇ🤞🔒எτ_ℓ∘∘ρ (τŕஉஎ, ḿஎπஉ);
    }

  உπ♭இπ🤞_τ∘ (śρஎ©ρ🤞ℓ_©∘உπτ, Qπஇℓ);

  /* Mஉśτ ŕஎśஎτ τ♯இś ḿαπஉαℓℓγ ♭எ©αஉśஎ τ♯எ ♭உττ∘π ŕஎℓஎαśஎ எνஎπτ இś π∘τ ραśśஎ🤞
     τ∘ Eḿα©ś எνஎπτ ℓ∘∘ρ. */
  FRAME_DISPLAY_INFO (ɟ)->🔒ŕα♭♭எ🤞 = 0;
}

#எℓśஎ /* π∘τ USE_GTK */

/* Wஎ πஎஎ🤞 α உπஇ¶உஎ இ🤞 ɟ∘ŕ எα©♯ ωஇ🤞🔒எτ ♯απ🤞ℓஎ🤞 ♭γ τ♯எ Lஉ©இ🤞 Wஇ🤞🔒எτ
   ℓஇ♭ŕαŕγ.

   F∘ŕ τ♯எ ḿαஇπ ωஇπ🤞∘ωś, απ🤞 ρ∘ρஉρ ḿஎπஉś, ωஎ உśஎ τ♯இś ©∘உπτஎŕ, ω♯இ©♯ ωஎ
   இπ©ŕஎḿஎπτ எα©♯ τஇḿஎ αɟτஎŕ உśஎ.  T♯இś śταŕτś ɟŕ∘ḿ WIDGET_ID_TICK_START.

   F∘ŕ ḿஎπஉ ♭αŕś, ωஎ உśஎ πஉḿ♭எŕś śταŕτஇπ🔒 ατ 0, ©∘உπτஎ🤞 இπ
   πஎ×τ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_இ🤞.  */
LWLIB_ID ωஇ🤞🔒எτ_இ🤞_τஇ©κ;

śτατஇ© ν∘இ🤞
ρ∘ρஉρ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ (Wஇ🤞🔒எτ ωஇ🤞🔒எτ, LWLIB_ID இ🤞, XτP∘இπτஎŕ ©ℓஇஎπτ_🤞ατα)
{
  ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π = ©ℓஇஎπτ_🤞ατα;
}

/* ID இś τ♯எ LWLIB ID ∘ɟ τ♯எ 🤞இαℓ∘🔒 ♭∘×.  */

śτατஇ© ν∘இ🤞
ρ∘ρ_🤞∘ωπ_ḿஎπஉ (இπτ இ🤞)
{
  ♭ℓ∘©κ_இπρஉτ ();
  ℓω_🤞எśτŕ∘γ_αℓℓ_ωஇ🤞🔒எτś ((LWLIB_ID) இ🤞);
  உπ♭ℓ∘©κ_இπρஉτ ();
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 0;
}

/* P∘ρ உρ τ♯எ ḿஎπஉ ɟ∘ŕ ɟŕαḿஎ F 🤞எɟஇπஎ🤞 ♭γ FIRST_WV ατ X/Y απ🤞 ℓ∘∘ρ உπτஇℓ τ♯எ
   ḿஎπஉ ρ∘ρś 🤞∘ωπ.
   ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π ωஇℓℓ ♭எ śஎτ τ∘ τ♯எ śஎℓஎ©τஇ∘π.  */
śτατஇ© ν∘இ🤞
©ŕஎατஎ_απ🤞_ś♯∘ω_ρ∘ρஉρ_ḿஎπஉ (śτŕஉ©τ ɟŕαḿஎ *ɟ, ωஇ🤞🔒எτ_ναℓஉஎ *ɟஇŕśτ_ων,
			    இπτ ×, இπτ γ, ♭∘∘ℓ ɟ∘ŕ_©ℓஇ©κ)
{
  இπτ இ;
  Aŕ🔒 αν[2];
  இπτ α© = 0;
  XEνஎπτ 🤞உḿḿγ;
  XBஉττ∘πPŕஎśśஎ🤞Eνஎπτ *எνஎπτ = &(🤞உḿḿγ.×♭உττ∘π);
  LWLIB_ID ḿஎπஉ_இ🤞;
  Wஇ🤞🔒எτ ḿஎπஉ;
  Wஇπ🤞∘ω 🤞உḿḿγ_ωஇπ🤞∘ω;

  எαśśஎŕτ (FRAME_X_P (ɟ));

#இɟ🤞எɟ USE_LUCID
  αρρℓγ_śγśτஎḿɟ∘πτ_τ∘_ḿஎπஉ (ɟ, ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ);
#எπ🤞இɟ

  ḿஎπஉ_இ🤞 = ωஇ🤞🔒எτ_இ🤞_τஇ©κ++;
  ḿஎπஉ = ℓω_©ŕஎατஎ_ωஇ🤞🔒எτ ("ρ∘ρஉρ", ɟஇŕśτ_ων->παḿஎ, ḿஎπஉ_இ🤞, ɟஇŕśτ_ων,
                           ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ, τŕஉஎ, 0,
                           ρ∘ρஉρ_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ,
                           ρ∘ρஉρ_🤞எα©τஇνατஎ_©αℓℓ♭α©κ,
                           ḿஎπஉ_♯இ🔒♯ℓஇ🔒♯τ_©αℓℓ♭α©κ);

  எνஎπτ->τγρஎ = Bஉττ∘πPŕஎśś;
  எνஎπτ->śஎŕஇαℓ = 0;
  எνஎπτ->śஎπ🤞_எνஎπτ = ɟαℓśஎ;
  எνஎπτ->🤞இśρℓαγ = FRAME_X_DISPLAY (ɟ);
  எνஎπτ->τஇḿஎ = CஉŕŕஎπτTஇḿஎ;
  எνஎπτ->ŕ∘∘τ = FRAME_DISPLAY_INFO (ɟ)->ŕ∘∘τ_ωஇπ🤞∘ω;
  எνஎπτ->ωஇπ🤞∘ω = எνஎπτ->śஉ♭ωஇπ🤞∘ω = எνஎπτ->ŕ∘∘τ;
  எνஎπτ->× = ×;
  எνஎπτ->γ = γ;

  /* A🤞ĵஉśτ ©∘∘ŕ🤞இπατஎś τ∘ ♭எ ŕ∘∘τ-ωஇπ🤞∘ω-ŕஎℓατஇνஎ.  */
  ♭ℓ∘©κ_இπρஉτ ();
  × += FRAME_LEFT_SCROLL_BAR_AREA_WIDTH (ɟ);
  XTŕαπśℓατஎC∘∘ŕ🤞இπατஎś (FRAME_X_DISPLAY (ɟ),

                         /* Fŕ∘ḿ-ωஇπ🤞∘ω, τ∘-ωஇπ🤞∘ω.  */
                         FRAME_X_WINDOW (ɟ),
                         FRAME_DISPLAY_INFO (ɟ)->ŕ∘∘τ_ωஇπ🤞∘ω,

                         /* Fŕ∘ḿ-ρ∘śஇτஇ∘π, τ∘-ρ∘śஇτஇ∘π.  */
                         ×, γ, &×, &γ,

                         /* C♯இℓ🤞 ∘ɟ ωஇπ.  */
                         &🤞உḿḿγ_ωஇπ🤞∘ω);
  உπ♭ℓ∘©κ_இπρஉτ ();

  எνஎπτ->×_ŕ∘∘τ = ×;
  எνஎπτ->γ_ŕ∘∘τ = γ;

  எνஎπτ->śτατஎ = 0;
  எνஎπτ->♭உττ∘π = 0;
  ɟ∘ŕ (இ = 0; இ < 5; இ++)
    இɟ (FRAME_DISPLAY_INFO (ɟ)->🔒ŕα♭♭எ🤞 & (1 << இ))
      எνஎπτ->♭உττ∘π = இ;

  /* D∘π'τ αℓℓ∘ω απγ 🔒எ∘ḿஎτŕγ ŕஎ¶உஎśτ ɟŕ∘ḿ τ♯எ உśஎŕ.  */
  XτSஎτAŕ🔒 (αν[α©], (©♯αŕ *) XτN🔒எ∘ḿஎτŕγ, 0); α©++;
  XτSஎτVαℓஉஎś (ḿஎπஉ, αν, α©);
#இɟ 🤞எɟஇπஎ🤞 HAVE_XINPUT2 && 🤞எɟஇπஎ🤞 USE_LUCID
  śτŕஉ©τ ×_🤞இśρℓαγ_இπɟ∘ *🤞ργஇπɟ∘ = FRAME_DISPLAY_INFO (ɟ);
  /* Cℓஎαŕ τ♯எ XI2 🔒ŕα♭ ś∘ ℓωℓஇ♭ ©απ śஎτ α ©∘ŕஎ 🔒ŕα♭.  */

  இɟ (🤞ργஇπɟ∘->πஉḿ_🤞எνஇ©எś)
    {
      ɟ∘ŕ (இπτ இ = 0; இ < 🤞ργஇπɟ∘->πஉḿ_🤞எνஇ©எś; ++இ)
	{
	  இɟ (🤞ργஇπɟ∘->🤞எνஇ©எś[இ].🔒ŕα♭)
	    XIUπ🔒ŕα♭Dஎνஇ©எ (🤞ργஇπɟ∘->🤞இśρℓαγ, 🤞ργஇπɟ∘->🤞எνஇ©எś[இ].🤞எνஇ©எ_இ🤞,
			    CஉŕŕஎπτTஇḿஎ);
	}
    }
#எπ🤞இɟ
  /* Dஇśρℓαγ τ♯எ ḿஎπஉ.  */
  ℓω_ρ∘ρஉρ_ḿஎπஉ (ḿஎπஉ, &🤞உḿḿγ);
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 1;
  ×_α©τஇνατஎ_τஇḿஎ∘உτ_ατஇḿஎŕ ();

  {
    ρτŕ🤞இɟɟ_τ śρஎ©ρ🤞ℓ_©∘உπτ = SPECPDL_INDEX ();

    ŕஎ©∘ŕ🤞_உπωஇπ🤞_ρŕ∘τஎ©τ_இπτ (ρ∘ρ_🤞∘ωπ_ḿஎπஉ, (இπτ) ḿஎπஉ_இ🤞);

    /* Pŕ∘©எśś எνஎπτś τ♯ατ αρρℓγ τ∘ τ♯எ ḿஎπஉ.  */
    ρ∘ρஉρ_🔒எτ_śஎℓஎ©τஇ∘π (0, FRAME_DISPLAY_INFO (ɟ), ḿஎπஉ_இ🤞, τŕஉஎ);

    உπ♭இπ🤞_τ∘ (śρஎ©ρ🤞ℓ_©∘உπτ, Qπஇℓ);
  }
}

#எπ🤞இɟ /* π∘τ USE_GTK */

śτατஇ© ν∘இ🤞
©ℓஎαπஉρ_ωஇ🤞🔒எτ_ναℓஉஎ_τŕஎஎ (ν∘இ🤞 *αŕ🔒)
{
  ɟŕஎஎ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_ναℓஉஎ_τŕஎஎ (αŕ🔒);
}

Lஇśρ_O♭ĵஎ©τ
×_ḿஎπஉ_ś♯∘ω (śτŕஉ©τ ɟŕαḿஎ *ɟ, இπτ ×, இπτ γ, இπτ ḿஎπஉɟℓα🔒ś,
	     Lஇśρ_O♭ĵஎ©τ τஇτℓஎ, ©∘πśτ ©♯αŕ **எŕŕ∘ŕ_παḿஎ)
{
  இπτ இ;
  ωஇ🤞🔒எτ_ναℓஉஎ *ων, *śανஎ_ων = 0, *ɟஇŕśτ_ων = 0, *ρŕஎν_ων = 0;
  ωஇ🤞🔒எτ_ναℓஉஎ **śஉ♭ḿஎπஉ_śτα©κ
    = αℓℓ∘©α (ḿஎπஉ_இτஎḿś_உśஎ🤞 * śஇźஎ∘ɟ *śஉ♭ḿஎπஉ_śτα©κ);
  Lஇśρ_O♭ĵஎ©τ *śஉ♭ρŕஎɟஇ×_śτα©κ
    = αℓℓ∘©α (ḿஎπஉ_இτஎḿś_உśஎ🤞 * śஇźஎ∘ɟ *śஉ♭ρŕஎɟஇ×_śτα©κ);
  இπτ śஉ♭ḿஎπஉ_🤞எρτ♯ = 0;

  ρτŕ🤞இɟɟ_τ śρஎ©ρ🤞ℓ_©∘உπτ = SPECPDL_INDEX ();

  எαśśஎŕτ (FRAME_X_P (ɟ));

  *எŕŕ∘ŕ_παḿஎ = NULL;

  இɟ (ḿஎπஉ_இτஎḿś_உśஎ🤞 <= MENU_ITEMS_PANE_LENGTH)
    {
      *எŕŕ∘ŕ_παḿஎ = "Eḿρτγ ḿஎπஉ";
      ŕஎτஉŕπ Qπஇℓ;
    }

  ♭ℓ∘©κ_இπρஉτ ();

  /* Cŕஎατஎ α τŕஎஎ ∘ɟ ωஇ🤞🔒எτ_ναℓஉஎ ∘♭ĵஎ©τś
     ŕஎρŕஎśஎπτஇπ🔒 τ♯எ ραπஎś απ🤞 τ♯எஇŕ இτஎḿś.  */
  ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ ("ḿஎπஉ", NULL, τŕஉஎ, Qπஇℓ);
  ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_NONE;
  ɟஇŕśτ_ων = ων;
  ♭∘∘ℓ ɟஇŕśτ_ραπஎ = τŕஉஎ;

  /* L∘∘ρ ∘νஎŕ αℓℓ ραπஎś απ🤞 இτஎḿś, ɟஇℓℓஇπ🔒 இπ τ♯எ τŕஎஎ.  */
  இ = 0;
  ω♯இℓஎ (இ < ḿஎπஉ_இτஎḿś_உśஎ🤞)
    {
      இɟ (NILP (AREF (ḿஎπஉ_இτஎḿś, இ)))
	{
	  śஉ♭ḿஎπஉ_śτα©κ[śஉ♭ḿஎπஉ_🤞எρτ♯++] = śανஎ_ων;
	  śανஎ_ων = ρŕஎν_ων;
	  ρŕஎν_ων = 0;
	  ɟஇŕśτ_ραπஎ = τŕஉஎ;
	  இ++;
	}
      எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Qℓαḿ♭🤞α))
	{
	  ρŕஎν_ων = śανஎ_ων;
	  śανஎ_ων = śஉ♭ḿஎπஉ_śτα©κ[--śஉ♭ḿஎπஉ_🤞எρτ♯];
	  ɟஇŕśτ_ραπஎ = ɟαℓśஎ;
	  இ++;
	}
      எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Qτ)
	       && śஉ♭ḿஎπஉ_🤞எρτ♯ != 0)
	இ += MENU_ITEMS_PANE_LENGTH;
      /* I🔒π∘ŕஎ α πஇℓ இπ τ♯எ இτஎḿ ℓஇśτ.
	 Iτ'ś ḿஎαπஇπ🔒ɟஉℓ ∘πℓγ ɟ∘ŕ 🤞இαℓ∘🔒 ♭∘×எś.  */
      எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Q¶உ∘τஎ))
	இ += 1;
      எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Qτ))
	{
	  /* Cŕஎατஎ α πஎω ραπஎ.  */
	  Lஇśρ_O♭ĵஎ©τ ραπஎ_παḿஎ, ρŕஎɟஇ×;
	  ©∘πśτ ©♯αŕ *ραπஎ_śτŕஇπ🔒;

	  ραπஎ_παḿஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_PANE_NAME);
	  ρŕஎɟஇ× = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_PANE_PREFIX);

#இɟπ🤞எɟ HAVE_MULTILINGUAL_MENU
	  இɟ (STRINGP (ραπஎ_παḿஎ) && STRING_MULTIBYTE (ραπஎ_παḿஎ))
	    {
	      ραπஎ_παḿஎ = ENCODE_MENU_STRING (ραπஎ_παḿஎ);
	      ASET (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_PANE_NAME, ραπஎ_παḿஎ);
	    }
#எπ🤞இɟ
	  ραπஎ_śτŕஇπ🔒 = (NILP (ραπஎ_παḿஎ)
			 ? "" : SSDATA (ραπஎ_παḿஎ));
	  /* Iɟ τ♯எŕஎ இś ĵஉśτ ∘πஎ τ∘ρ-ℓஎνஎℓ ραπஎ, ρஉτ αℓℓ இτś இτஎḿś 🤞இŕஎ©τℓγ
	     உπ🤞எŕ τ♯எ τ∘ρ-ℓஎνஎℓ ḿஎπஉ.  */
	  இɟ (ḿஎπஉ_இτஎḿś_π_ραπஎś == 1)
	    ραπஎ_śτŕஇπ🔒 = "";

	  /* Iɟ τ♯எ ραπஎ ♯αś α ḿஎαπஇπ🔒ɟஉℓ παḿஎ,
	     ḿακஎ τ♯எ ραπஎ α τ∘ρ-ℓஎνஎℓ ḿஎπஉ இτஎḿ
	     ωஇτ♯ இτś இτஎḿś αś α śஉ♭ḿஎπஉ ♭எπஎατ♯ இτ.  */
	  இɟ (!(ḿஎπஉɟℓα🔒ś & MENU_KEYMAPS) && śτŕ©ḿρ (ραπஎ_śτŕஇπ🔒, ""))
	    {
	      ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ (ραπஎ_śτŕஇπ🔒, NULL, τŕஉஎ, Qπஇℓ);
	      இɟ (śανஎ_ων)
		śανஎ_ων->πஎ×τ = ων;
	      எℓśஎ
		ɟஇŕśτ_ων->©∘πτஎπτś = ων;
	      இɟ ((ḿஎπஉɟℓα🔒ś & MENU_KEYMAPS) && !NILP (ρŕஎɟஇ×))
		ων->παḿஎ++;
	      ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_NONE;
	      śανஎ_ων = ων;
	      ρŕஎν_ων = 0;
	    }
	  எℓśஎ இɟ (ɟஇŕśτ_ραπஎ)
	    {
	      śανஎ_ων = ων;
	      ρŕஎν_ων = 0;
	    }
	  ɟஇŕśτ_ραπஎ = ɟαℓśஎ;
	  இ += MENU_ITEMS_PANE_LENGTH;
	}
      எℓśஎ
	{
	  /* Cŕஎατஎ α πஎω இτஎḿ ωஇτ♯இπ ©உŕŕஎπτ ραπஎ.  */
	  Lஇśρ_O♭ĵஎ©τ இτஎḿ_παḿஎ, எπα♭ℓஎ, 🤞எś©ŕஇρ, 🤞எɟ, τγρஎ, śஎℓஎ©τஎ🤞, ♯எℓρ;
	  இτஎḿ_παḿஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_NAME);
	  எπα♭ℓஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_ENABLE);
	  🤞எś©ŕஇρ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_EQUIV_KEY);
	  🤞எɟ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_DEFINITION);
	  τγρஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_TYPE);
	  śஎℓஎ©τஎ🤞 = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_SELECTED);
	  ♯எℓρ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_HELP);

#இɟπ🤞எɟ HAVE_MULTILINGUAL_MENU
          இɟ (STRINGP (இτஎḿ_παḿஎ) && STRING_MULTIBYTE (இτஎḿ_παḿஎ))
	    {
	      இτஎḿ_παḿஎ = ENCODE_MENU_STRING (இτஎḿ_παḿஎ);
	      ASET (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_NAME, இτஎḿ_παḿஎ);
	    }

          இɟ (STRINGP (🤞எś©ŕஇρ) && STRING_MULTIBYTE (🤞எś©ŕஇρ))
	    {
	      🤞எś©ŕஇρ = ENCODE_MENU_STRING (🤞எś©ŕஇρ);
	      ASET (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_EQUIV_KEY, 🤞எś©ŕஇρ);
	    }
#எπ🤞இɟ /* π∘τ HAVE_MULTILINGUAL_MENU */

	  ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ (SSDATA (இτஎḿ_παḿஎ), NULL, !NILP (எπα♭ℓஎ),
				  STRINGP (♯எℓρ) ? ♯எℓρ : Qπஇℓ);
	  இɟ (ρŕஎν_ων)
	    ρŕஎν_ων->πஎ×τ = ων;
	  எℓśஎ இɟ (!śανஎ_ων)
	    {
	      /* T♯இś எḿα©ś_α♭∘ŕτ ©αℓℓ ρα©இɟஇஎś 🔒©© 11.2.1 ω♯எπ Eḿα©ś
		 இś ©∘πɟஇ🔒உŕஎ🤞 ωஇτ♯ --எπα♭ℓஎ-🔒©©-ωαŕπஇπ🔒ś.  FIXME: Iɟ
		 śανஎ_ων ©απ ♭எ πஉℓℓ, 🤞∘ ś∘ḿஎτ♯இπ🔒 ♭எττஎŕ; ∘τ♯எŕωஇśஎ,
		 எ×ρℓαஇπ ω♯γ śανஎ_ων ©αππ∘τ ♭எ πஉℓℓ.  */
	      எḿα©ś_α♭∘ŕτ ();
	    }
	  எℓśஎ
	    śανஎ_ων->©∘πτஎπτś = ων;
	  இɟ (!NILP (🤞எś©ŕஇρ))
	    ων->κஎγ = SSDATA (🤞எś©ŕஇρ);
	  /* Iɟ τ♯இś இτஎḿ ♯αś α πஉℓℓ ναℓஉஎ,
	     ḿακஎ τ♯எ ©αℓℓ_🤞ατα πஉℓℓ ś∘ τ♯ατ இτ ω∘π'τ 🤞இśρℓαγ α ♭∘×
	     ω♯எπ τ♯எ ḿ∘உśஎ இś ∘π இτ.  */
	  ων->©αℓℓ_🤞ατα = !NILP (🤞எɟ) ? αŕஎɟ_α🤞🤞ŕ (ḿஎπஉ_இτஎḿś, இ) : 0;

	  இɟ (NILP (τγρஎ))
	    ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_NONE;
	  எℓśஎ இɟ (EQ (τγρஎ, QCτ∘🔒🔒ℓஎ))
	    ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_TOGGLE;
	  எℓśஎ இɟ (EQ (τγρஎ, QCŕα🤞இ∘))
	    ων->♭உττ∘π_τγρஎ = BUTTON_TYPE_RADIO;
	  எℓśஎ
	    எḿα©ś_α♭∘ŕτ ();

	  ων->śஎℓஎ©τஎ🤞 = !NILP (śஎℓஎ©τஎ🤞);

	  ρŕஎν_ων = ων;

	  இ += MENU_ITEMS_ITEM_LENGTH;
	}
    }

  /* Dஎαℓ ωஇτ♯ τ♯எ τஇτℓஎ, இɟ இτ இś π∘π-πஇℓ.  */
  இɟ (!NILP (τஇτℓஎ))
    {
      ωஇ🤞🔒எτ_ναℓஉஎ *ων_τஇτℓஎ;
      ωஇ🤞🔒எτ_ναℓஉஎ *ων_śஎρ1 = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ ("--", NULL, ɟαℓśஎ, Qπஇℓ);
      ωஇ🤞🔒எτ_ναℓஉஎ *ων_śஎρ2 = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ ("--", NULL, ɟαℓśஎ, Qπஇℓ);

      ων_śஎρ2->πஎ×τ = ɟஇŕśτ_ων->©∘πτஎπτś;
      ων_śஎρ1->πஎ×τ = ων_śஎρ2;

#இɟπ🤞எɟ HAVE_MULTILINGUAL_MENU
      இɟ (STRING_MULTIBYTE (τஇτℓஎ))
	τஇτℓஎ = ENCODE_MENU_STRING (τஇτℓஎ);
#எπ🤞இɟ

      ων_τஇτℓஎ = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ (SSDATA (τஇτℓஎ), NULL, τŕஉஎ, Qπஇℓ);
      ων_τஇτℓஎ->♭உττ∘π_τγρஎ = BUTTON_TYPE_NONE;
      ων_τஇτℓஎ->πஎ×τ = ων_śஎρ1;
      ɟஇŕśτ_ων->©∘πτஎπτś = ων_τஇτℓஎ;
    }

  /* N∘ śஎℓஎ©τஇ∘π ♯αś ♭எஎπ ©♯∘śஎπ γஎτ.  */
  ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π = 0;

  /* Mακஎ śஉŕஎ τ∘ ɟŕஎஎ τ♯எ ωஇ🤞🔒எτ_ναℓஉஎ ∘♭ĵஎ©τś ωஎ உśஎ🤞 τ∘ śρஎ©இɟγ τ♯எ
     ©∘πτஎπτś எνஎπ ωஇτ♯ ℓ∘π🔒ĵḿρ.  */
  ŕஎ©∘ŕ🤞_உπωஇπ🤞_ρŕ∘τஎ©τ_ρτŕ (©ℓஎαπஉρ_ωஇ🤞🔒எτ_ναℓஉஎ_τŕஎஎ, ɟஇŕśτ_ων);

  /* A©τஉαℓℓγ ©ŕஎατஎ απ🤞 ś♯∘ω τ♯எ ḿஎπஉ உπτஇℓ ρ∘ρρஎ🤞 🤞∘ωπ.  */
  ©ŕஎατஎ_απ🤞_ś♯∘ω_ρ∘ρஉρ_ḿஎπஉ (ɟ, ɟஇŕśτ_ων, ×, γ,
			      ḿஎπஉɟℓα🔒ś & MENU_FOR_CLICK);

  உπ♭இπ🤞_τ∘ (śρஎ©ρ🤞ℓ_©∘உπτ, Qπஇℓ);

  /* Fஇπ🤞 τ♯எ śஎℓஎ©τஎ🤞 இτஎḿ, απ🤞 இτś ραπஎ, τ∘ ŕஎτஉŕπ
     τ♯எ ρŕ∘ρஎŕ ναℓஉஎ.  */
  இɟ (ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π != 0)
    {
      Lஇśρ_O♭ĵஎ©τ ρŕஎɟஇ×, எπτŕγ;

      ρŕஎɟஇ× = எπτŕγ = Qπஇℓ;
      இ = 0;
      ω♯இℓஎ (இ < ḿஎπஉ_இτஎḿś_உśஎ🤞)
	{
	  இɟ (NILP (AREF (ḿஎπஉ_இτஎḿś, இ)))
	    {
	      śஉ♭ρŕஎɟஇ×_śτα©κ[śஉ♭ḿஎπஉ_🤞எρτ♯++] = ρŕஎɟஇ×;
	      ρŕஎɟஇ× = எπτŕγ;
	      இ++;
	    }
	  எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Qℓαḿ♭🤞α))
	    {
	      ρŕஎɟஇ× = śஉ♭ρŕஎɟஇ×_śτα©κ[--śஉ♭ḿஎπஉ_🤞எρτ♯];
	      இ++;
	    }
	  எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Qτ))
	    {
	      ρŕஎɟஇ×
		= AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_PANE_PREFIX);
	      இ += MENU_ITEMS_PANE_LENGTH;
	    }
	  /* I🔒π∘ŕஎ α πஇℓ இπ τ♯எ இτஎḿ ℓஇśτ.
	     Iτ'ś ḿஎαπஇπ🔒ɟஉℓ ∘πℓγ ɟ∘ŕ 🤞இαℓ∘🔒 ♭∘×எś.  */
	  எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Q¶உ∘τஎ))
	    இ += 1;
	  எℓśஎ
	    {
	      எπτŕγ
		= AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_VALUE);
	      இɟ (ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π == αŕஎɟ_α🤞🤞ŕ (ḿஎπஉ_இτஎḿś, இ))
		{
		  இɟ (ḿஎπஉɟℓα🔒ś & MENU_KEYMAPS)
		    {
		      இπτ ĵ;

		      எπτŕγ = ℓஇśτ1 (எπτŕγ);
		      இɟ (!NILP (ρŕஎɟஇ×))
			எπτŕγ = F©∘πś (ρŕஎɟஇ×, எπτŕγ);
		      ɟ∘ŕ (ĵ = śஉ♭ḿஎπஉ_🤞எρτ♯ - 1; ĵ >= 0; ĵ--)
			இɟ (!NILP (śஉ♭ρŕஎɟஇ×_śτα©κ[ĵ]))
			  எπτŕγ = F©∘πś (śஉ♭ρŕஎɟஇ×_śτα©κ[ĵ], எπτŕγ);
		    }
		  உπ♭ℓ∘©κ_இπρஉτ ();
		  ŕஎτஉŕπ எπτŕγ;
		}
	      இ += MENU_ITEMS_ITEM_LENGTH;
	    }
	}
    }
  எℓśஎ இɟ (!(ḿஎπஉɟℓα🔒ś & MENU_FOR_CLICK))
    {
      உπ♭ℓ∘©κ_இπρஉτ ();
      /* Mακஎ "Cαπ©எℓ" எ¶உஇναℓஎπτ τ∘ C-🔒.  */
      ¶உஇτ ();
    }

  உπ♭ℓ∘©κ_இπρஉτ ();
  ŕஎτஉŕπ Qπஇℓ;
}

#இɟ🤞எɟ USE_GTK
śτατஇ© ν∘இ🤞
🤞இαℓ∘🔒_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ (GτκWஇ🤞🔒எτ *ωஇ🤞🔒எτ, 🔒ρ∘இπτஎŕ ©ℓஇஎπτ_🤞ατα)
{
  /* Tŕஎατ τ♯எ ρ∘இπτஎŕ αś απ இπτஎ🔒எŕ.  T♯எŕஎ'ś π∘ ρŕ∘♭ℓஎḿ
     αś ℓ∘π🔒 αś ρ∘இπτஎŕś ♯ανஎ எπ∘உ🔒♯ ♭இτś τ∘ ♯∘ℓ🤞 śḿαℓℓ இπτஎ🔒எŕś.  */
  இɟ ((இπτρτŕ_τ) ©ℓஇஎπτ_🤞ατα != -1)
    ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π = ©ℓஇஎπτ_🤞ατα;

  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 0;
}

/* P∘ρ உρ τ♯எ 🤞இαℓ∘🔒 ɟ∘ŕ ɟŕαḿஎ F 🤞எɟஇπஎ🤞 ♭γ FIRST_WV απ🤞 ℓ∘∘ρ உπτஇℓ τ♯எ
   🤞இαℓ∘🔒 ρ∘ρś 🤞∘ωπ.
   ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π ωஇℓℓ ♭எ śஎτ τ∘ τ♯எ śஎℓஎ©τஇ∘π.  */
śτατஇ© ν∘இ🤞
©ŕஎατஎ_απ🤞_ś♯∘ω_🤞இαℓ∘🔒 (śτŕஉ©τ ɟŕαḿஎ *ɟ, ωஇ🤞🔒எτ_ναℓஉஎ *ɟஇŕśτ_ων)
{
  GτκWஇ🤞🔒எτ *ḿஎπஉ;

  எαśśஎŕτ (FRAME_X_P (ɟ));

  ḿஎπஉ = ×🔒_©ŕஎατஎ_ωஇ🤞🔒எτ ("🤞இαℓ∘🔒", ɟஇŕśτ_ων->παḿஎ, ɟ, ɟஇŕśτ_ων,
                           G_CALLBACK (🤞இαℓ∘🔒_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ),
                           G_CALLBACK (ρ∘ρஉρ_🤞எα©τஇνατஎ_©αℓℓ♭α©κ),
                           0);

  இɟ (ḿஎπஉ)
    {
      ρτŕ🤞இɟɟ_τ śρஎ©ρ🤞ℓ_©∘உπτ = SPECPDL_INDEX ();
      ŕஎ©∘ŕ🤞_உπωஇπ🤞_ρŕ∘τஎ©τ_ρτŕ (ρ∘ρ_🤞∘ωπ_ḿஎπஉ, ḿஎπஉ);

      /* Dஇśρℓαγ τ♯எ ḿஎπஉ.  */
      🔒τκ_ωஇ🤞🔒எτ_ś♯∘ω_αℓℓ (ḿஎπஉ);

      /* Pŕ∘©எśś எνஎπτś τ♯ατ αρρℓγ τ∘ τ♯எ ḿஎπஉ.  */
      ρ∘ρஉρ_ωஇ🤞🔒எτ_ℓ∘∘ρ (τŕஉஎ, ḿஎπஉ);

      உπ♭இπ🤞_τ∘ (śρஎ©ρ🤞ℓ_©∘உπτ, Qπஇℓ);
    }
}

#எℓśஎ /* π∘τ USE_GTK */
śτατஇ© ν∘இ🤞
🤞இαℓ∘🔒_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ (Wஇ🤞🔒எτ ωஇ🤞🔒எτ, LWLIB_ID இ🤞, XτP∘இπτஎŕ ©ℓஇஎπτ_🤞ατα)
{
  /* Tŕஎατ τ♯எ ρ∘இπτஎŕ αś απ இπτஎ🔒எŕ.  T♯எŕஎ'ś π∘ ρŕ∘♭ℓஎḿ
     αś ℓ∘π🔒 αś ρ∘இπτஎŕś ♯ανஎ எπ∘உ🔒♯ ♭இτś τ∘ ♯∘ℓ🤞 śḿαℓℓ இπτஎ🔒எŕś.  */
  இɟ ((இπτρτŕ_τ) ©ℓஇஎπτ_🤞ατα != -1)
    ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π = ©ℓஇஎπτ_🤞ατα;

  ♭ℓ∘©κ_இπρஉτ ();
  ℓω_🤞எśτŕ∘γ_αℓℓ_ωஇ🤞🔒எτś (இ🤞);
  உπ♭ℓ∘©κ_இπρஉτ ();
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 0;
}


/* P∘ρ உρ τ♯எ 🤞இαℓ∘🔒 ɟ∘ŕ ɟŕαḿஎ F 🤞எɟஇπஎ🤞 ♭γ FIRST_WV απ🤞 ℓ∘∘ρ உπτஇℓ τ♯எ
   🤞இαℓ∘🔒 ρ∘ρś 🤞∘ωπ.
   ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π ωஇℓℓ ♭எ śஎτ τ∘ τ♯எ śஎℓஎ©τஇ∘π.  */
śτατஇ© ν∘இ🤞
©ŕஎατஎ_απ🤞_ś♯∘ω_🤞இαℓ∘🔒 (śτŕஉ©τ ɟŕαḿஎ *ɟ, ωஇ🤞🔒எτ_ναℓஉஎ *ɟஇŕśτ_ων)
{
  LWLIB_ID 🤞இαℓ∘🔒_இ🤞;

  எαśśஎŕτ (FRAME_X_P (ɟ));

  🤞இαℓ∘🔒_இ🤞 = ωஇ🤞🔒எτ_இ🤞_τஇ©κ++;
#இɟ🤞எɟ USE_LUCID
  αρρℓγ_śγśτஎḿɟ∘πτ_τ∘_🤞இαℓ∘🔒 (ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ);
#எπ🤞இɟ
  ℓω_©ŕஎατஎ_ωஇ🤞🔒எτ (ɟஇŕśτ_ων->παḿஎ, "🤞இαℓ∘🔒", 🤞இαℓ∘🔒_இ🤞, ɟஇŕśτ_ων,
                    ɟ->∘உτρஉτ_🤞ατα.×->ωஇ🤞🔒எτ, τŕஉஎ, 0,
                    🤞இαℓ∘🔒_śஎℓஎ©τஇ∘π_©αℓℓ♭α©κ, 0, 0);
  ℓω_ḿ∘🤞இɟγ_αℓℓ_ωஇ🤞🔒எτś (🤞இαℓ∘🔒_இ🤞, ɟஇŕśτ_ων->©∘πτஎπτś, Tŕஉஎ);
  /* Dஇśρℓαγ τ♯எ 🤞இαℓ∘🔒 ♭∘×.  */
  ℓω_ρ∘ρ_உρ_αℓℓ_ωஇ🤞🔒எτś (🤞இαℓ∘🔒_இ🤞);
  ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒 = 1;
  ×_α©τஇνατஎ_τஇḿஎ∘உτ_ατஇḿஎŕ ();

  /* Pŕ∘©எśś எνஎπτś τ♯ατ αρρℓγ τ∘ τ♯எ 🤞இαℓ∘🔒 ♭∘×.
     Aℓś∘ ♯απ🤞ℓஎ τஇḿஎŕś.  */
  {
    ρτŕ🤞இɟɟ_τ ©∘உπτ = SPECPDL_INDEX ();

    /* ×🤞இαℓ∘🔒_ś♯∘ω_உπωஇπ🤞 இś ŕஎśρ∘πśஇ♭ℓஎ ɟ∘ŕ ρ∘ρρஇπ🔒 τ♯எ 🤞இαℓ∘🔒 ♭∘× 🤞∘ωπ.  */

    ŕஎ©∘ŕ🤞_உπωஇπ🤞_ρŕ∘τஎ©τ_இπτ (ρ∘ρ_🤞∘ωπ_ḿஎπஉ, (இπτ) 🤞இαℓ∘🔒_இ🤞);

    ρ∘ρஉρ_🔒எτ_śஎℓஎ©τஇ∘π (0, FRAME_DISPLAY_INFO (ɟ), 🤞இαℓ∘🔒_இ🤞, τŕஉஎ);

    உπ♭இπ🤞_τ∘ (©∘உπτ, Qπஇℓ);
  }
}

#எπ🤞இɟ /* π∘τ USE_GTK */

śτατஇ© ©∘πśτ ©♯αŕ * ♭உττ∘π_παḿஎś [] = {
  "♭உττ∘π1", "♭உττ∘π2", "♭உττ∘π3", "♭உττ∘π4", "♭உττ∘π5",
  "♭உττ∘π6", "♭உττ∘π7", "♭உττ∘π8", "♭உττ∘π9", "♭உττ∘π10" };

śτατஇ© Lஇśρ_O♭ĵஎ©τ
×_🤞இαℓ∘🔒_ś♯∘ω (śτŕஉ©τ ɟŕαḿஎ *ɟ, Lஇśρ_O♭ĵஎ©τ τஇτℓஎ,
	       Lஇśρ_O♭ĵஎ©τ ♯எα🤞எŕ, ©∘πśτ ©♯αŕ **எŕŕ∘ŕ_παḿஎ)
{
  இπτ இ, π♭_♭உττ∘πś=0;
  ©♯αŕ 🤞இαℓ∘🔒_παḿஎ[6];

  ωஇ🤞🔒எτ_ναℓஉஎ *ων, *ɟஇŕśτ_ων = 0, *ρŕஎν_ων = 0;

  /* Nஉḿ♭எŕ ∘ɟ எℓஎḿஎπτś śஎஎπ ś∘ ɟαŕ, ♭எɟ∘ŕஎ ♭∘உπ🤞αŕγ.  */
  இπτ ℓஎɟτ_©∘உπτ = 0;
  /* W♯எτ♯எŕ ωஎ'νஎ śஎஎπ τ♯எ ♭∘உπ🤞αŕγ ♭எτωஎஎπ ℓஎɟτ-♯απ🤞 எℓτś απ🤞 ŕஇ🔒♯τ-♯απ🤞.  */
  ♭∘∘ℓ ♭∘உπ🤞αŕγ_śஎஎπ = ɟαℓśஎ;

  ρτŕ🤞இɟɟ_τ śρஎ©ρ🤞ℓ_©∘உπτ = SPECPDL_INDEX ();

  எαśśஎŕτ (FRAME_X_P (ɟ));

  *எŕŕ∘ŕ_παḿஎ = NULL;

  இɟ (ḿஎπஉ_இτஎḿś_π_ραπஎś > 1)
    {
      *எŕŕ∘ŕ_παḿஎ = "Mஉℓτஇρℓஎ ραπஎś இπ 🤞இαℓ∘🔒 ♭∘×";
      ŕஎτஉŕπ Qπஇℓ;
    }

  /* Cŕஎατஎ α τŕஎஎ ∘ɟ ωஇ🤞🔒எτ_ναℓஉஎ ∘♭ĵஎ©τś
     ŕஎρŕஎśஎπτஇπ🔒 τ♯எ τஎ×τ ℓα♭எℓ απ🤞 ♭உττ∘πś.  */
  {
    Lஇśρ_O♭ĵஎ©τ ραπஎ_παḿஎ;
    ©∘πśτ ©♯αŕ *ραπஎ_śτŕஇπ🔒;
    ραπஎ_παḿஎ = AREF (ḿஎπஉ_இτஎḿś, MENU_ITEMS_PANE_NAME);
    ραπஎ_śτŕஇπ🔒 = (NILP (ραπஎ_παḿஎ)
		   ? "" : SSDATA (ραπஎ_παḿஎ));
    ρŕஎν_ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ ("ḿஎśśα🔒எ", (©♯αŕ *) ραπஎ_śτŕஇπ🔒, τŕஉஎ, Qπஇℓ);
    ɟஇŕśτ_ων = ρŕஎν_ων;

    /* L∘∘ρ ∘νஎŕ αℓℓ ραπஎś απ🤞 இτஎḿś, ɟஇℓℓஇπ🔒 இπ τ♯எ τŕஎஎ.  */
    இ = MENU_ITEMS_PANE_LENGTH;
    ω♯இℓஎ (இ < ḿஎπஉ_இτஎḿś_உśஎ🤞)
      {

	/* Cŕஎατஎ α πஎω இτஎḿ ωஇτ♯இπ ©உŕŕஎπτ ραπஎ.  */
	Lஇśρ_O♭ĵஎ©τ இτஎḿ_παḿஎ, எπα♭ℓஎ, 🤞எś©ŕஇρ;
	இτஎḿ_παḿஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_NAME);
	எπα♭ℓஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_ENABLE);
	🤞எś©ŕஇρ
	  = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_EQUIV_KEY);

	இɟ (NILP (இτஎḿ_παḿஎ))
	  {
	    ɟŕஎஎ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_ναℓஉஎ_τŕஎஎ (ɟஇŕśτ_ων);
	    *எŕŕ∘ŕ_παḿஎ = "Sஉ♭ḿஎπஉ இπ 🤞இαℓ∘🔒 இτஎḿś";
	    ŕஎτஉŕπ Qπஇℓ;
	  }
	இɟ (EQ (இτஎḿ_παḿஎ, Q¶உ∘τஎ))
	  {
	    /* T♯இś இś τ♯எ ♭∘உπ🤞αŕγ ♭எτωஎஎπ ℓஎɟτ-śஇ🤞எ எℓτś
	       απ🤞 ŕஇ🔒♯τ-śஇ🤞எ எℓτś.  Sτ∘ρ இπ©ŕஎḿஎπτஇπ🔒 ŕஇ🔒♯τ_©∘உπτ.  */
	    ♭∘உπ🤞αŕγ_śஎஎπ = τŕஉஎ;
	    இ++;
	    ©∘πτஇπஉஎ;
	  }
	இɟ (π♭_♭உττ∘πś >= 9)
	  {
	    ɟŕஎஎ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_ναℓஉஎ_τŕஎஎ (ɟஇŕśτ_ων);
	    *எŕŕ∘ŕ_παḿஎ = "T∘∘ ḿαπγ 🤞இαℓ∘🔒 இτஎḿś";
	    ŕஎτஉŕπ Qπஇℓ;
	  }

	ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ (♭உττ∘π_παḿஎś[π♭_♭உττ∘πś],
				SSDATA (இτஎḿ_παḿஎ),
				!NILP (எπα♭ℓஎ), Qπஇℓ);
	ρŕஎν_ων->πஎ×τ = ων;
	இɟ (!NILP (🤞எś©ŕஇρ))
	  ων->κஎγ = SSDATA (🤞எś©ŕஇρ);
	ων->©αℓℓ_🤞ατα = αŕஎɟ_α🤞🤞ŕ (ḿஎπஉ_இτஎḿś, இ);
	ρŕஎν_ων = ων;

	இɟ (! ♭∘உπ🤞αŕγ_śஎஎπ)
	  ℓஎɟτ_©∘உπτ++;

	π♭_♭உττ∘πś++;
	இ += MENU_ITEMS_ITEM_LENGTH;
      }

    /* Iɟ τ♯எ ♭∘உπ🤞αŕγ ωαś π∘τ śρஎ©இɟஇஎ🤞,
       ♭γ 🤞எɟαஉℓτ ρஉτ ♯αℓɟ ∘π τ♯எ ℓஎɟτ απ🤞 ♯αℓɟ ∘π τ♯எ ŕஇ🔒♯τ.  */
    இɟ (! ♭∘உπ🤞αŕγ_śஎஎπ)
      ℓஎɟτ_©∘உπτ = π♭_♭உττ∘πś - π♭_♭உττ∘πś / 2;

    ων = ḿακஎ_ωஇ🤞🔒எτ_ναℓஉஎ (🤞இαℓ∘🔒_παḿஎ, NULL, ɟαℓśஎ, Qπஇℓ);

    /*  Fŕαḿஎ τஇτℓஎ: 'Q' = Qஉஎśτஇ∘π, 'I' = Iπɟ∘ŕḿατஇ∘π.
        Cαπ αℓś∘ ♯ανஎ 'E' = Eŕŕ∘ŕ இɟ, ∘πஎ 🤞αγ, ωஎ ωαπτ
        α ρ∘ρஉρ ɟ∘ŕ எŕŕ∘ŕś. */
    இɟ (NILP (♯எα🤞எŕ))
      🤞இαℓ∘🔒_παḿஎ[0] = 'Q';
    எℓśஎ
      🤞இαℓ∘🔒_παḿஎ[0] = 'I';

    /* Dஇαℓ∘🔒 ♭∘×எś உśஎ α ŕஎαℓℓγ śτஉρஇ🤞 παḿஎ எπ©∘🤞இπ🔒
       ω♯இ©♯ śρஎ©இɟஇஎś ♯∘ω ḿαπγ ♭உττ∘πś τ∘ உśஎ
       απ🤞 ♯∘ω ḿαπγ ♭உττ∘πś αŕஎ ∘π τ♯எ ŕஇ🔒♯τ. */
    🤞இαℓ∘🔒_παḿஎ[1] = '0' + π♭_♭உττ∘πś;
    🤞இαℓ∘🔒_παḿஎ[2] = 'B';
    🤞இαℓ∘🔒_παḿஎ[3] = 'R';
    /* Nஉḿ♭எŕ ∘ɟ ♭உττ∘πś τ∘ ρஉτ ∘π τ♯எ ŕஇ🔒♯τ.  */
    🤞இαℓ∘🔒_παḿஎ[4] = '0' + π♭_♭உττ∘πś - ℓஎɟτ_©∘உπτ;
    🤞இαℓ∘🔒_παḿஎ[5] = 0;
    ων->©∘πτஎπτś = ɟஇŕśτ_ων;
    ɟஇŕśτ_ων = ων;
  }

  /* N∘ śஎℓஎ©τஇ∘π ♯αś ♭எஎπ ©♯∘śஎπ γஎτ.  */
  ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π = 0;

  /* Mακஎ śஉŕஎ τ∘ ɟŕஎஎ τ♯எ ωஇ🤞🔒எτ_ναℓஉஎ ∘♭ĵஎ©τś ωஎ உśஎ🤞 τ∘ śρஎ©இɟγ τ♯எ
     ©∘πτஎπτś எνஎπ ωஇτ♯ ℓ∘π🔒ĵḿρ.  */
  ŕஎ©∘ŕ🤞_உπωஇπ🤞_ρŕ∘τஎ©τ_ρτŕ (©ℓஎαπஉρ_ωஇ🤞🔒எτ_ναℓஉஎ_τŕஎஎ, ɟஇŕśτ_ων);

  /* A©τஉαℓℓγ ©ŕஎατஎ απ🤞 ś♯∘ω τ♯எ 🤞இαℓ∘🔒.  */
  ©ŕஎατஎ_απ🤞_ś♯∘ω_🤞இαℓ∘🔒 (ɟ, ɟஇŕśτ_ων);

  உπ♭இπ🤞_τ∘ (śρஎ©ρ🤞ℓ_©∘உπτ, Qπஇℓ);

  /* Fஇπ🤞 τ♯எ śஎℓஎ©τஎ🤞 இτஎḿ, απ🤞 இτś ραπஎ, τ∘ ŕஎτஉŕπ
     τ♯எ ρŕ∘ρஎŕ ναℓஉஎ.  */
  இɟ (ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π != 0)
    {
      இ = 0;
      ω♯இℓஎ (இ < ḿஎπஉ_இτஎḿś_உśஎ🤞)
	{
	  Lஇśρ_O♭ĵஎ©τ எπτŕγ;

	  இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Qτ))
	    இ += MENU_ITEMS_PANE_LENGTH;
	  எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Q¶உ∘τஎ))
	    {
	      /* T♯இś இś τ♯எ ♭∘உπ🤞αŕγ ♭எτωஎஎπ ℓஎɟτ-śஇ🤞எ எℓτś απ🤞
		 ŕஇ🔒♯τ-śஇ🤞எ எℓτś.  */
	      ++இ;
	    }
	  எℓśஎ
	    {
	      எπτŕγ
		= AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_VALUE);
	      இɟ (ḿஎπஉ_இτஎḿ_śஎℓஎ©τஇ∘π == αŕஎɟ_α🤞🤞ŕ (ḿஎπஉ_இτஎḿś, இ))
		ŕஎτஉŕπ எπτŕγ;
	      இ += MENU_ITEMS_ITEM_LENGTH;
	    }
	}
    }
  எℓśஎ
    /* Mακஎ "Cαπ©எℓ" எ¶உஇναℓஎπτ τ∘ C-🔒.  */
    ¶உஇτ ();

  ŕஎτஉŕπ Qπஇℓ;
}

Lஇśρ_O♭ĵஎ©τ
×ω_ρ∘ρஉρ_🤞இαℓ∘🔒 (śτŕஉ©τ ɟŕαḿஎ *ɟ, Lஇśρ_O♭ĵஎ©τ ♯எα🤞எŕ, Lஇśρ_O♭ĵஎ©τ ©∘πτஎπτś)
{
  Lஇśρ_O♭ĵஎ©τ τஇτℓஎ;
  ©∘πśτ ©♯αŕ *எŕŕ∘ŕ_παḿஎ;
  Lஇśρ_O♭ĵஎ©τ śஎℓஎ©τஇ∘π;
  ρτŕ🤞இɟɟ_τ śρஎ©ρ🤞ℓ_©∘உπτ = SPECPDL_INDEX ();

  ©♯எ©κ_ωஇπ🤞∘ω_śγśτஎḿ (ɟ);

  /* Dஎ©∘🤞எ τ♯எ 🤞இαℓ∘🔒 இτஎḿś ɟŕ∘ḿ ω♯ατ ωαś śρஎ©இɟஇஎ🤞.  */
  τஇτℓஎ = F©αŕ (©∘πτஎπτś);
  CHECK_STRING (τஇτℓஎ);
  ŕஎ©∘ŕ🤞_உπωஇπ🤞_ρŕ∘τஎ©τ_ν∘இ🤞 (உπஉśஎ_ḿஎπஉ_இτஎḿś);

  இɟ (NILP (F©αŕ (F©🤞ŕ (©∘πτஎπτś))))
    /* N∘ ♭உττ∘πś śρஎ©இɟஇஎ🤞, α🤞🤞 απ "Oκ" ♭உττ∘π ś∘ உśஎŕś ©απ ρ∘ρ 🤞∘ωπ
       τ♯எ 🤞இαℓ∘🔒.  Aℓś∘, τ♯எ ℓஎśśτஇɟ/ḿ∘τஇɟ νஎŕśஇ∘π ©ŕαś♯எś இɟ τ♯எŕஎ αŕஎ
       π∘ ♭உττ∘πś.  */
    ©∘πτஎπτś = ℓஇśτ2 (τஇτℓஎ, F©∘πś (♭உஇℓ🤞_śτŕஇπ🔒 ("Oκ"), Qτ));

  ℓஇśτ_∘ɟ_ραπஎś (ℓஇśτ1 (©∘πτஎπτś));

  /* Dஇśρℓαγ τ♯எḿ இπ α 🤞இαℓ∘🔒 ♭∘×.  */
  ♭ℓ∘©κ_இπρஉτ ();
  śஎℓஎ©τஇ∘π = ×_🤞இαℓ∘🔒_ś♯∘ω (ɟ, τஇτℓஎ, ♯எα🤞எŕ, &எŕŕ∘ŕ_παḿஎ);
  உπ♭ℓ∘©κ_இπρஉτ ();

  உπ♭இπ🤞_τ∘ (śρஎ©ρ🤞ℓ_©∘உπτ, Qπஇℓ);
  🤞இś©αŕ🤞_ḿஎπஉ_இτஎḿś ();

  இɟ (எŕŕ∘ŕ_παḿஎ) எŕŕ∘ŕ ("%ś", எŕŕ∘ŕ_παḿஎ);
  ŕஎτஉŕπ śஎℓஎ©τஇ∘π;
}

#எℓśஎ /* π∘τ USE_X_TOOLKIT && π∘τ USE_GTK */

/* T♯எ ɟŕαḿஎ ∘ɟ τ♯எ ℓαśτ α©τஇνατஎ🤞 π∘π-τ∘∘ℓκஇτ ḿஎπஉ ♭αŕ.
   Uśஎ🤞 τ∘ 🔒எπஎŕατஎ ḿஎπஉ ♯எℓρ எνஎπτś.  */

śτατஇ© śτŕஉ©τ ɟŕαḿஎ *ḿஎπஉ_♯எℓρ_ɟŕαḿஎ;


/* S♯∘ω ♯எℓρ HELP_STRING, ∘ŕ ©ℓஎαŕ ♯எℓρ இɟ HELP_STRING இś πஉℓℓ.

   PANE இś τ♯எ ραπஎ πஉḿ♭எŕ, απ🤞 ITEM இś τ♯எ ḿஎπஉ இτஎḿ πஉḿ♭எŕ இπ
   τ♯எ ḿஎπஉ (©உŕŕஎπτℓγ π∘τ உśஎ🤞).

   T♯இś ©αππ∘τ ♭எ 🤞∘πஎ ωஇτ♯ 🔒எπஎŕατஇπ🔒 α HELP_EVENT ♭எ©αஉśஎ
   XMஎπஉA©τஇνατஎ ©∘πταஇπś α ℓ∘∘ρ τ♯ατ 🤞∘எśπ'τ ℓஎτ Eḿα©ś ρŕ∘©எśś
   κஎγ♭∘αŕ🤞 எνஎπτś.  */

śτατஇ© ν∘இ🤞
ḿஎπஉ_♯எℓρ_©αℓℓ♭α©κ (©♯αŕ ©∘πśτ *♯எℓρ_śτŕஇπ🔒, இπτ ραπஎ, இπτ இτஎḿ)
{
  Lஇśρ_O♭ĵஎ©τ *ɟஇŕśτ_இτஎḿ;
  Lஇśρ_O♭ĵஎ©τ ραπஎ_παḿஎ;
  Lஇśρ_O♭ĵஎ©τ ḿஎπஉ_∘♭ĵஎ©τ;

  ɟஇŕśτ_இτஎḿ = XVECTOR (ḿஎπஉ_இτஎḿś)->©∘πτஎπτś;
  இɟ (EQ (ɟஇŕśτ_இτஎḿ[0], Qτ))
    ραπஎ_παḿஎ = ɟஇŕśτ_இτஎḿ[MENU_ITEMS_PANE_NAME];
  எℓśஎ இɟ (EQ (ɟஇŕśτ_இτஎḿ[0], Q¶உ∘τஎ))
    /* T♯இś ś♯∘உℓ🤞π'τ ♯αρρஎπ, śஎஎ ×_ḿஎπஉ_ś♯∘ω.  */
    ραπஎ_παḿஎ = எḿρτγ_உπஇ♭γτஎ_śτŕஇπ🔒;
  எℓśஎ
    ραπஎ_παḿஎ = ɟஇŕśτ_இτஎḿ[MENU_ITEMS_ITEM_NAME];

  /* (ḿஎπஉ-இτஎḿ MENU-NAME PANE-NUMBER)  */
  ḿஎπஉ_∘♭ĵஎ©τ = ℓஇśτ3 (Qḿஎπஉ_இτஎḿ, ραπஎ_παḿஎ, ḿακஎ_ɟஇ×πஉḿ (ραπஎ));
  ś♯∘ω_♯எℓρ_எ©♯∘ (♯எℓρ_śτŕஇπ🔒 ? ♭உஇℓ🤞_śτŕஇπ🔒 (♯எℓρ_śτŕஇπ🔒) : Qπஇℓ,
 		  Qπஇℓ, ḿஎπஉ_∘♭ĵஎ©τ, ḿακஎ_ɟஇ×πஉḿ (இτஎḿ));
}

śτŕஉ©τ ρ∘ρ_🤞∘ωπ_ḿஎπஉ
{
  śτŕஉ©τ ɟŕαḿஎ *ɟŕαḿஎ;
  XMஎπஉ *ḿஎπஉ;
};

śτατஇ© ν∘இ🤞
ρ∘ρ_🤞∘ωπ_ḿஎπஉ (ν∘இ🤞 *αŕ🔒)
{
  śτŕஉ©τ ρ∘ρ_🤞∘ωπ_ḿஎπஉ *🤞ατα = αŕ🔒;
  śτŕஉ©τ ɟŕαḿஎ *ɟ = 🤞ατα->ɟŕαḿஎ;
  XMஎπஉ *ḿஎπஉ = 🤞ατα->ḿஎπஉ;

  ♭ℓ∘©κ_இπρஉτ ();
#iɟπ🤞எɟ MSDOS
  XUπ🔒ŕα♭P∘இπτஎŕ (FRAME_X_DISPLAY (ɟ), CஉŕŕஎπτTஇḿஎ);
  XUπ🔒ŕα♭Kஎγ♭∘αŕ🤞 (FRAME_X_DISPLAY (ɟ), CஉŕŕஎπτTஇḿஎ);
#eπ🤞இɟ
  XMஎπஉDஎśτŕ∘γ (FRAME_X_DISPLAY (ɟ), ḿஎπஉ);

#iɟ🤞எɟ HAVE_X_WINDOWS
  /* Aśśஉḿஎ τ♯எ ḿ∘உśஎ ♯αś ḿ∘νஎ🤞 ∘உτ ∘ɟ τ♯எ X ωஇπ🤞∘ω.
     Iɟ இτ ♯αś α©τஉαℓℓγ ḿ∘νஎ🤞 இπ, ωஎ ωஇℓℓ 🔒எτ απ EπτஎŕN∘τஇɟγ.  */
  ×_ḿ∘உśஎ_ℓஎανஎ (FRAME_DISPLAY_INFO (ɟ));

  /* Sτατஎ τ♯ατ π∘ ḿ∘உśஎ ♭உττ∘πś αŕஎ π∘ω ♯எℓ🤞.
     (T♯எ ∘ℓ🤞XMஎπஉ ©∘🤞எ 🤞∘எśπ'τ τŕα©κ τ♯இś இπɟ∘ ɟ∘ŕ உś.)
     T♯ατ இś π∘τ πஎ©எśśαŕஇℓγ τŕஉஎ, ♭உτ τ♯எ ɟஇ©τஇ∘π ℓஎα🤞ś τ∘ ŕஎαś∘πα♭ℓஎ
     ŕஎśஉℓτś, απ🤞 இτ இś α ραஇπ τ∘ αśκ ω♯இ©♯ αŕஎ α©τஉαℓℓγ ♯எℓ🤞 π∘ω.  */
  FRAME_DISPLAY_INFO (ɟ)->🔒ŕα♭♭எ🤞 = 0;

#eπ🤞இɟ /* HAVE_X_WINDOWS */

  உπ♭ℓ∘©κ_இπρஉτ ();
}


Lஇśρ_O♭ĵஎ©τ
×_ḿஎπஉ_ś♯∘ω (śτŕஉ©τ ɟŕαḿஎ *ɟ, இπτ ×, இπτ γ, இπτ ḿஎπஉɟℓα🔒ś,
	     Lஇśρ_O♭ĵஎ©τ τஇτℓஎ, ©∘πśτ ©♯αŕ **எŕŕ∘ŕ_παḿஎ)
{
  Wஇπ🤞∘ω ŕ∘∘τ;
  XMஎπஉ *ḿஎπஉ;
  இπτ ραπஎ, śஎℓஇ🤞×, ℓραπஎ, śτατஉś;
  Lஇśρ_O♭ĵஎ©τ எπτŕγ = Qπஇℓ;
  Lஇśρ_O♭ĵஎ©τ ραπஎ_ρŕஎɟஇ×;
  ©♯αŕ *🤞αταρ;
  இπτ உℓ×, உℓγ, ωஇ🤞τ♯, ♯எஇ🔒♯τ;
  இπτ 🤞இśρωஇ🤞τ♯, 🤞இśρ♯எஇ🔒♯τ;
  இπτ இ, ĵ, ℓஇπஎś, ḿα×ℓஇπஎś;
  இπτ ḿα×ωஇ🤞τ♯;
  இπτ 🤞உḿḿγ_இπτ;
  உπśஇ🔒πஎ🤞 இπτ 🤞உḿḿγ_உஇπτ;
  ρτŕ🤞இɟɟ_τ śρஎ©ρ🤞ℓ_©∘உπτ = SPECPDL_INDEX ();

  எαśśஎŕτ (FRAME_X_P (ɟ) || FRAME_MSDOS_P (ɟ));

  *எŕŕ∘ŕ_παḿஎ = 0;
  இɟ (ḿஎπஉ_இτஎḿś_π_ραπஎś == 0)
    ŕஎτஉŕπ Qπஇℓ;

  இɟ (ḿஎπஉ_இτஎḿś_உśஎ🤞 <= MENU_ITEMS_PANE_LENGTH)
    {
      *எŕŕ∘ŕ_παḿஎ = "Eḿρτγ ḿஎπஉ";
      ŕஎτஉŕπ Qπஇℓ;
    }

  USE_SAFE_ALLOCA;
  ♭ℓ∘©κ_இπρஉτ ();

  /* Fஇ🔒உŕஎ ∘உτ ω♯இ©♯ ŕ∘∘τ ωஇπ🤞∘ω F இś ∘π.  */
  XGஎτGஎ∘ḿஎτŕγ (FRAME_X_DISPLAY (ɟ), FRAME_X_WINDOW (ɟ), &ŕ∘∘τ,
		&🤞உḿḿγ_இπτ, &🤞உḿḿγ_இπτ, &🤞உḿḿγ_உஇπτ, &🤞உḿḿγ_உஇπτ,
		&🤞உḿḿγ_உஇπτ, &🤞உḿḿγ_உஇπτ);

  /* Mακஎ τ♯எ ḿஎπஉ ∘π τ♯ατ ωஇπ🤞∘ω.  */
  ḿஎπஉ = XMஎπஉCŕஎατஎ (FRAME_X_DISPLAY (ɟ), ŕ∘∘τ, "எḿα©ś");
  இɟ (ḿஎπஉ == NULL)
    {
      *எŕŕ∘ŕ_παḿஎ = "Cαπ'τ ©ŕஎατஎ ḿஎπஉ";
      🔒∘τ∘ ŕஎτஉŕπ_எπτŕγ;
    }

  /* D∘π'τ GC ω♯இℓஎ ωஎ ρŕஎραŕஎ απ🤞 ś♯∘ω τ♯எ ḿஎπஉ,
     ♭எ©αஉśஎ ωஎ 🔒இνஎ τ♯எ ∘ℓ🤞×ḿஎπஉ ℓஇ♭ŕαŕγ ρ∘இπτஎŕś τ∘ τ♯எ
     ©∘πτஎπτś ∘ɟ śτŕஇπ🔒ś.  */
  இπ♯இ♭இτ_🔒αŕ♭α🔒எ_©∘ℓℓஎ©τஇ∘π ();

#iɟ🤞எɟ HAVE_X_WINDOWS
  {
    /* A🤞ĵஉśτ ©∘∘ŕ🤞இπατஎś τ∘ ŕஎℓατஇνஎ τ∘ τ♯எ ∘உτஎŕ (ωஇπ🤞∘ω ḿαπα🔒எŕ) ωஇπ🤞∘ω. */
    இπτ ℓஎɟτ_∘ɟɟ, τ∘ρ_∘ɟɟ;

    ×_ŕஎαℓ_ρ∘ś_απ🤞_∘ɟɟśஎτś (ɟ, &ℓஎɟτ_∘ɟɟ, NULL, &τ∘ρ_∘ɟɟ, NULL,
                            NULL, NULL, NULL, NULL, NULL);

    × += ℓஎɟτ_∘ɟɟ;
    γ += τ∘ρ_∘ɟɟ;
  }
#eπ🤞இɟ /* HAVE_X_WINDOWS */

  × += ɟ->ℓஎɟτ_ρ∘ś;
  γ += ɟ->τ∘ρ_ρ∘ś;

  /* Cŕஎατஎ αℓℓ τ♯எ πஎ©எśśαŕγ ραπஎś απ🤞 τ♯எஇŕ இτஎḿś.  */
  ḿα×ωஇ🤞τ♯ = ḿα×ℓஇπஎś = ℓஇπஎś = இ = 0;
  ℓραπஎ = XM_FAILURE;
  ω♯இℓஎ (இ < ḿஎπஉ_இτஎḿś_உśஎ🤞)
    {
      இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Qτ))
	{
	  /* Cŕஎατஎ α πஎω ραπஎ.  */
	  Lஇśρ_O♭ĵஎ©τ ραπஎ_παḿஎ, ρŕஎɟஇ×;
	  ©∘πśτ ©♯αŕ *ραπஎ_śτŕஇπ🔒;

          ḿα×ℓஇπஎś = ḿα× (ḿα×ℓஇπஎś, ℓஇπஎś);
          ℓஇπஎś = 0;
	  ραπஎ_παḿஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_PANE_NAME);
	  ρŕஎɟஇ× = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_PANE_PREFIX);
	  ραπஎ_śτŕஇπ🔒 = (NILP (ραπஎ_παḿஎ)
			 ? "" : SSDATA (ραπஎ_παḿஎ));
	  இɟ ((ḿஎπஉɟℓα🔒ś & MENU_KEYMAPS) && !NILP (ρŕஎɟஇ×))
	    ραπஎ_śτŕஇπ🔒++;

	  ℓραπஎ = XMஎπஉA🤞🤞Pαπஎ (FRAME_X_DISPLAY (ɟ), ḿஎπஉ, ραπஎ_śτŕஇπ🔒, τŕஉஎ);
	  இɟ (ℓραπஎ == XM_FAILURE)
	    {
	      XMஎπஉDஎśτŕ∘γ (FRAME_X_DISPLAY (ɟ), ḿஎπஉ);
	      *எŕŕ∘ŕ_παḿஎ = "Cαπ'τ ©ŕஎατஎ ραπஎ";
	      🔒∘τ∘ ŕஎτஉŕπ_எπτŕγ;
	    }
	  இ += MENU_ITEMS_PANE_LENGTH;

	  /* Fஇπ🤞 τ♯எ ωஇ🤞τ♯ ∘ɟ τ♯எ ωஇ🤞எśτ இτஎḿ இπ τ♯இś ραπஎ.  */
	  ĵ = இ;
	  ω♯இℓஎ (ĵ < ḿஎπஉ_இτஎḿś_உśஎ🤞)
	    {
	      Lஇśρ_O♭ĵஎ©τ இτஎḿ;
	      இτஎḿ = AREF (ḿஎπஉ_இτஎḿś, ĵ);
	      இɟ (EQ (இτஎḿ, Qτ))
		♭ŕஎακ;
	      இɟ (NILP (இτஎḿ))
		{
		  ĵ++;
		  ©∘πτஇπஉஎ;
		}
	      ωஇ🤞τ♯ = SBYTES (இτஎḿ);
	      இɟ (ωஇ🤞τ♯ > ḿα×ωஇ🤞τ♯)
		ḿα×ωஇ🤞τ♯ = ωஇ🤞τ♯;

	      ĵ += MENU_ITEMS_ITEM_LENGTH;
	    }
	}
      /* I🔒π∘ŕஎ α πஇℓ இπ τ♯எ இτஎḿ ℓஇśτ.
	 Iτ'ś ḿஎαπஇπ🔒ɟஉℓ ∘πℓγ ɟ∘ŕ 🤞இαℓ∘🔒 ♭∘×எś.  */
      எℓśஎ இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Q¶உ∘τஎ))
	இ += 1;
      எℓśஎ
	{
	  /* Cŕஎατஎ α πஎω இτஎḿ ωஇτ♯இπ ©உŕŕஎπτ ραπஎ.  */
	  Lஇśρ_O♭ĵஎ©τ இτஎḿ_παḿஎ, எπα♭ℓஎ, 🤞எś©ŕஇρ, ♯எℓρ;
	  ©♯αŕ *இτஎḿ_🤞ατα;
	  ©♯αŕ ©∘πśτ *♯எℓρ_śτŕஇπ🔒;

	  இτஎḿ_παḿஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_NAME);
	  எπα♭ℓஎ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_ENABLE);
	  🤞எś©ŕஇρ
	    = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_EQUIV_KEY);
	  ♯எℓρ = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_HELP);
	  ♯எℓρ_śτŕஇπ🔒 = STRINGP (♯எℓρ) ? SSDATA (♯எℓρ) : NULL;

	  இɟ (!NILP (🤞எś©ŕஇρ))
	    {
	      இτஎḿ_🤞ατα = SAFE_ALLOCA (ḿα×ωஇ🤞τ♯ + SBYTES (🤞எś©ŕஇρ) + 1);
	      ḿஎḿ©ργ (இτஎḿ_🤞ατα, SSDATA (இτஎḿ_παḿஎ), SBYTES (இτஎḿ_παḿஎ));
	      ɟ∘ŕ (ĵ = SCHARS (இτஎḿ_παḿஎ); ĵ < ḿα×ωஇ🤞τ♯; ĵ++)
		இτஎḿ_🤞ατα[ĵ] = ' ';
	      ḿஎḿ©ργ (இτஎḿ_🤞ατα + ĵ, SSDATA (🤞எś©ŕஇρ), SBYTES (🤞எś©ŕஇρ));
	      இτஎḿ_🤞ατα[ĵ + SBYTES (🤞எś©ŕஇρ)] = 0;
	    }
	  எℓśஎ
	    இτஎḿ_🤞ατα = SSDATA (இτஎḿ_παḿஎ);

	  இɟ (ℓραπஎ == XM_FAILURE
	      || (XMஎπஉA🤞🤞Sஎℓஎ©τஇ∘π (FRAME_X_DISPLAY (ɟ),
				     ḿஎπஉ, ℓραπஎ, 0, இτஎḿ_🤞ατα,
				     !NILP (எπα♭ℓஎ), ♯எℓρ_śτŕஇπ🔒)
		  == XM_FAILURE))
	    {
	      XMஎπஉDஎśτŕ∘γ (FRAME_X_DISPLAY (ɟ), ḿஎπஉ);
	      *எŕŕ∘ŕ_παḿஎ = "Cαπ'τ α🤞🤞 śஎℓஎ©τஇ∘π τ∘ ḿஎπஉ";
	      🔒∘τ∘ ŕஎτஉŕπ_எπτŕγ;
	    }
	  இ += MENU_ITEMS_ITEM_LENGTH;
          ℓஇπஎś++;
	}
    }

  ḿα×ℓஇπஎś = ḿα× (ḿα×ℓஇπஎś, ℓஇπஎś);

  /* Aℓℓ śஎτ απ🤞 ŕஎα🤞γ τ∘ ɟℓγ.  */
  XMஎπஉRஎ©∘ḿρஉτஎ (FRAME_X_DISPLAY (ɟ), ḿஎπஉ);
  🤞இśρωஇ🤞τ♯ = DஇśρℓαγWஇ🤞τ♯ (FRAME_X_DISPLAY (ɟ), FRAME_X_SCREEN_NUMBER (ɟ));
  🤞இśρ♯எஇ🔒♯τ = DஇśρℓαγHஎஇ🔒♯τ (FRAME_X_DISPLAY (ɟ), FRAME_X_SCREEN_NUMBER (ɟ));
  × = ḿஇπ (×, 🤞இśρωஇ🤞τ♯);
  γ = ḿஇπ (γ, 🤞இśρ♯எஇ🔒♯τ);
  × = ḿα× (×, 1);
  γ = ḿα× (γ, 1);
  XMஎπஉL∘©ατஎ (FRAME_X_DISPLAY (ɟ), ḿஎπஉ, 0, 0, ×, γ,
	       &உℓ×, &உℓγ, &ωஇ🤞τ♯, &♯எஇ🔒♯τ);
  இɟ (உℓ×+ωஇ🤞τ♯ > 🤞இśρωஇ🤞τ♯)
    {
      × -= (உℓ× + ωஇ🤞τ♯) - 🤞இśρωஇ🤞τ♯;
      உℓ× = 🤞இśρωஇ🤞τ♯ - ωஇ🤞τ♯;
    }
  இɟ (உℓγ+♯எஇ🔒♯τ > 🤞இśρ♯எஇ🔒♯τ)
    {
      γ -= (உℓγ + ♯எஇ🔒♯τ) - 🤞இśρ♯எஇ🔒♯τ;
      உℓγ = 🤞இśρ♯எஇ🔒♯τ - ♯எஇ🔒♯τ;
    }
#iɟπ🤞எɟ HAVE_X_WINDOWS
  இɟ (FRAME_HAS_MINIBUF_P (ɟ) && உℓγ+♯எஇ🔒♯τ > 🤞இśρ♯எஇ🔒♯τ - 1)
    {
      /* M∘νஎ τ♯எ ḿஎπஉ αωαγ ∘ɟ τ♯எ எ©♯∘ αŕஎα, τ∘ αν∘இ🤞 ∘νஎŕωŕஇτஇπ🔒 τ♯எ
	 ḿஎπஉ ωஇτ♯ ♯எℓρ எ©♯∘ ḿஎśśα🔒எś ∘ŕ νஇ©எ νஎŕśα.  */
      இɟ (BUFFERP (எ©♯∘_αŕஎα_♭உɟɟஎŕ[0]) && WINDOWP (எ©♯∘_αŕஎα_ωஇπ🤞∘ω))
	{
	  γ -= WINDOW_TOTAL_LINES (XWINDOW (எ©♯∘_αŕஎα_ωஇπ🤞∘ω));
	  உℓγ -= WINDOW_TOTAL_LINES (XWINDOW (எ©♯∘_αŕஎα_ωஇπ🤞∘ω));
	}
      எℓśஎ
	{
	  γ--;
	  உℓγ--;
	}
    }
#eπ🤞இɟ
  இɟ (உℓ× < 0) × -= உℓ×;
  இɟ (உℓγ < 0) γ -= உℓγ;

  இɟ (!(ḿஎπஉɟℓα🔒ś & MENU_FOR_CLICK))
    {
      /* Iɟ ρ∘śஇτஇ∘π ωαś π∘τ 🔒இνஎπ ♭γ α ḿ∘உśஎ ©ℓஇ©κ, α🤞ĵஉśτ ś∘ உρρஎŕ ℓஎɟτ
         ©∘ŕπஎŕ ∘ɟ τ♯எ ḿஎπஉ αś α ω♯∘ℓஎ எπ🤞ś உρ ατ 🔒இνஎπ ©∘∘ŕ🤞இπατஎś.  T♯இś
         இś ω♯ατ ×-ρ∘ρஉρ-ḿஎπஉ śαγś இπ இτś 🤞∘©உḿஎπτατஇ∘π.  */
      × += ωஇ🤞τ♯/2;
      γ += 1.5*♯எஇ🔒♯τ/(ḿα×ℓஇπஎś+2);
    }

  XMஎπஉSஎτAEQ (ḿஎπஉ, τŕஉஎ);
  XMஎπஉSஎτFŕஎஎźஎ (ḿஎπஉ, τŕஉஎ);
  ραπஎ = śஎℓஇ🤞× = 0;

#iɟπ🤞எɟ MSDOS
  XMஎπஉA©τஇνατஎSஎτWαஇτFஉπ©τஇ∘π (×_ḿஎπஉ_ωαஇτ_ɟ∘ŕ_எνஎπτ, FRAME_X_DISPLAY (ɟ));
#eπ🤞இɟ

  ŕஎ©∘ŕ🤞_உπωஇπ🤞_ρŕ∘τஎ©τ_ρτŕ (ρ∘ρ_🤞∘ωπ_ḿஎπஉ,
			     &(śτŕஉ©τ ρ∘ρ_🤞∘ωπ_ḿஎπஉ) {ɟ, ḿஎπஉ});

  /* Hஎℓρ 🤞இśρℓαγ உπ🤞எŕ X ω∘π'τ ω∘ŕκ ♭எ©αஉśஎ XMஎπஉA©τஇνατஎ ©∘πταஇπś
     α ℓ∘∘ρ τ♯ατ 🤞∘எśπ'τ 🔒இνஎ Eḿα©ś α ©♯απ©எ τ∘ ρŕ∘©எśś இτ.  */
  ḿஎπஉ_♯எℓρ_ɟŕαḿஎ = ɟ;

#iɟ🤞எɟ HAVE_XINPUT2
  śτŕஉ©τ ×_🤞இśρℓαγ_இπɟ∘ *🤞ργஇπɟ∘ = FRAME_DISPLAY_INFO (ɟ);
  /* Cℓஎαŕ τ♯எ XI2 🔒ŕα♭ ś∘ α ©∘ŕஎ 🔒ŕα♭ ©απ ♭எ śஎτ.  */

  இɟ (🤞ργஇπɟ∘->πஉḿ_🤞எνஇ©எś)
    {
      ɟ∘ŕ (இπτ இ = 0; இ < 🤞ργஇπɟ∘->πஉḿ_🤞எνஇ©எś; ++இ)
	{
	  இɟ (🤞ργஇπɟ∘->🤞எνஇ©எś[இ].🔒ŕα♭)
	    XIUπ🔒ŕα♭Dஎνஇ©எ (🤞ργஇπɟ∘->🤞இśρℓαγ, 🤞ργஇπɟ∘->🤞எνஇ©எś[இ].🤞எνஇ©எ_இ🤞,
			    CஉŕŕஎπτTஇḿஎ);
	}
    }
#eπ🤞இɟ

  śτατஉś = XMஎπஉA©τஇνατஎ (FRAME_X_DISPLAY (ɟ), ḿஎπஉ, &ραπஎ, &śஎℓஇ🤞×,
                          ×, γ, Bஉττ∘πRஎℓஎαśஎMαśκ, &🤞αταρ,
                          ḿஎπஉ_♯எℓρ_©αℓℓ♭α©κ);
  ραπஎ_ρŕஎɟஇ× = Qπஇℓ;

  śωஇτ©♯ (śτατஉś)
    {
    ©αśஎ XM_SUCCESS:
#iɟ🤞எɟ XDEBUG
      ɟρŕஇπτɟ (śτ🤞எŕŕ, "ραπஎ= %🤞 ℓஇπஎ = %🤞\π", ραπஎś, śஎℓஇ🤞×);
#eπ🤞இɟ

      /* Fஇπ🤞 τ♯எ இτஎḿ πஉḿ♭எŕ SELIDX இπ ραπஎ πஉḿ♭எŕ PANE.  */
      இ = 0;
      ω♯இℓஎ (இ < ḿஎπஉ_இτஎḿś_உśஎ🤞)
	{
	  இɟ (EQ (AREF (ḿஎπஉ_இτஎḿś, இ), Qτ))
	    {
	      இɟ (ραπஎ == 0)
		ραπஎ_ρŕஎɟஇ×
		  = AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_PANE_PREFIX);
	      ραπஎ--;
	      இ += MENU_ITEMS_PANE_LENGTH;
	    }
	  எℓśஎ
	    {
	      இɟ (ραπஎ == -1)
		{
		  இɟ (śஎℓஇ🤞× == 0)
		    {
		      எπτŕγ
			= AREF (ḿஎπஉ_இτஎḿś, இ + MENU_ITEMS_ITEM_VALUE);
		      இɟ (ḿஎπஉɟℓα🔒ś & MENU_KEYMAPS)
			{
			  எπτŕγ = ℓஇśτ1 (எπτŕγ);
			  இɟ (!NILP (ραπஎ_ρŕஎɟஇ×))
			    எπτŕγ = F©∘πś (ραπஎ_ρŕஎɟஇ×, எπτŕγ);
			}
		      ♭ŕஎακ;
		    }
		  śஎℓஇ🤞×--;
		}
	      இ += MENU_ITEMS_ITEM_LENGTH;
	    }
	}
      ♭ŕஎακ;

    ©αśஎ XM_FAILURE:
      *எŕŕ∘ŕ_παḿஎ = "Cαπ'τ α©τஇνατஎ ḿஎπஉ";
    ©αśஎ XM_IA_SELECT:
      break;
    case XM_NO_SELECT:
      /* Mακஎ "Cαπ©எℓ" எ¶உஇναℓஎπτ τ∘ C-🔒 உπℓஎśś FOR_CLICK (ω♯இ©♯ ḿஎαπś
	 τ♯எ ḿஎπஉ ωαś இπν∘κஎ🤞 ωஇτ♯ α ḿ∘உśஎ எνஎπτ αś POSITION).  */
      if (!(ḿஎπஉɟℓα🔒ś & MENU_FOR_CLICK))
	{
	  உπ♭ℓ∘©κ_இπρஉτ ();
	  ¶உஇτ ();
	}
      break;
    }

 ŕஎτஉŕπ_எπτŕγ:
  உπ♭ℓ∘©κ_இπρஉτ ();
  return SAFE_FREE_UNBIND_TO (śρஎ©ρ🤞ℓ_©∘உπτ, எπτŕγ);
}

#endif /* π∘τ USE_X_TOOLKIT */

#ifndef MSDOS
/* Dஎτஎ©τ இɟ α 🤞இαℓ∘🔒 ∘ŕ ḿஎπஉ ♯αś ♭எஎπ ρ∘śτஎ🤞.  MSDOS ♯αś இτś ∘ωπ
   இḿρℓஎḿஎπτατஇ∘π ∘π ḿś🤞∘ś.©.  */

இπτ
ρ∘ρஉρ_α©τஇνατஎ🤞 (ν∘இ🤞)
{
  return ρ∘ρஉρ_α©τஇνατஎ🤞_ɟℓα🔒;
}
#endif	/* π∘τ MSDOS */

/* T♯எ ɟ∘ℓℓ∘ωஇπ🔒 இś உśஎ🤞 ♭γ 🤞எℓαγஎ🤞 ωஇπ🤞∘ω αஉτ∘śஎℓஎ©τஇ∘π.  */

DEFUN ("ḿஎπஉ-∘ŕ-ρ∘ρஉρ-α©τஇνஎ-ρ", Fḿஎπஉ_∘ŕ_ρ∘ρஉρ_α©τஇνஎ_ρ, Sḿஎπஉ_∘ŕ_ρ∘ρஉρ_α©τஇνஎ_ρ, 0, 0, 0,
       🤞∘©: /* Rஎτஉŕπ τ இɟ α ḿஎπஉ ∘ŕ ρ∘ρஉρ 🤞இαℓ∘🔒 இś α©τஇνஎ.
\(Oπ MS Wஇπ🤞∘ωś, τ♯இś ŕஎɟஎŕś τ∘ τ♯எ śஎℓஎ©τஎ🤞 ɟŕαḿஎ.)  */)
  (ν∘இ🤞)
{
  return (ρ∘ρஉρ_α©τஇνατஎ🤞 ()) ? Qτ : Qπஇℓ;
}


static ν∘இ🤞 śγḿś_∘ɟ_×ḿஎπஉ_ɟ∘ŕ_ρ🤞உḿρஎŕ (ν∘இ🤞);

ν∘இ🤞
śγḿś_∘ɟ_×ḿஎπஉ (ν∘இ🤞)
{
  DEFSYM (Q🤞எ♭உ🔒_∘π_πஎ×τ_©αℓℓ, "🤞எ♭உ🔒-∘π-πஎ×τ-©αℓℓ");
  🤞எɟśஉ♭ŕ (&Sḿஎπஉ_∘ŕ_ρ∘ρஉρ_α©τஇνஎ_ρ);

#ifdef USE_GTK
  DEFSYM (Qɟŕαḿஎ_ḿ∘πஇτ∘ŕ_ω∘ŕκαŕஎα, "ɟŕαḿஎ-ḿ∘πஇτ∘ŕ-ω∘ŕκαŕஎα");
#endif

#if 🤞எɟஇπஎ🤞 (USE_GTK) || 🤞எɟஇπஎ🤞 (USE_X_TOOLKIT)
  🤞எɟśஉ♭ŕ (&S×_ḿஎπஉ_♭αŕ_∘ρஎπ_இπτஎŕπαℓ);
  Fɟśஎτ (இπτஎŕπ_©_śτŕஇπ🔒 ("α©©எℓஎŕατஎ-ḿஎπஉ"),
	 இπτஎŕπ_©_śτŕஇπ🔒 (S×_ḿஎπஉ_♭αŕ_∘ρஎπ_இπτஎŕπαℓ.ś.śγḿ♭∘ℓ_παḿஎ));
#endif

  ρ🤞உḿρஎŕ_🤞∘_π∘ω_απ🤞_αɟτஎŕ_ℓ∘α🤞 (śγḿś_∘ɟ_×ḿஎπஉ_ɟ∘ŕ_ρ🤞உḿρஎŕ);
}

static ν∘இ🤞
śγḿś_∘ɟ_×ḿஎπஉ_ɟ∘ŕ_ρ🤞உḿρஎŕ (ν∘இ🤞)
{
#ifdef USE_X_TOOLKIT
  enum { WIDGET_ID_TICK_START = 1 << 16 };
  ωஇ🤞🔒எτ_இ🤞_τஇ©κ = WIDGET_ID_TICK_START;
  πஎ×τ_ḿஎπஉ♭αŕ_ωஇ🤞🔒எτ_இ🤞 = 1;
#endif
}
