J'ai déjà pesté contre le bogue du bip de la console (voir ici) qui affecte certaines distributions Linux.
Ayant constaté que la fonction gdk_beep() n'est pas affectée par ce bogue, je l'ai donc utilisée dans GraceGTK.
J'ai voulu ensuite obtenir une version d'Emacs capable de faire bip sous Debian 6 Squeeze et pour cela, fourré mon nez dans le code source.
J'en ai déduit que c'était la fonction XTring_bell() dans le fichier xterm.c qui était en cause et je l'ai modifiée en conséquence:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
/* Make audible bell.  */
 
void
XTring_bell ()
{
  struct frame *f = SELECTED_FRAME ();
 
  if (FRAME_X_DISPLAY (f))
    {
#if defined (HAVE_TIMEVAL) && defined (HAVE_SELECT)
      if (visible_bell)
	XTflash (f);
      else
#endif
	{
	  BLOCK_INPUT;
#ifdef USE_GTK           	     // P.VINCENT
	  gdk_beep ();   	     // P.VINCENT
#else			 	     // P.VINCENT
	  XBell (FRAME_X_DISPLAY (f), 0);
	  XFlush (FRAME_X_DISPLAY (f));
#endif                   	     // P.VINCENT
	  UNBLOCK_INPUT;
	}
    }
}
En recompilant Emacs, on obtient le résultat souhaité, mais encore plus intéressant, ceci laisse penser que c'est la fonction XBell du serveur X11 qui est en cause.
J'ai donc envoyé cette suggestion à bug-gnu-emacs@gnu.org.
Je continue la discussion sur ce site dans le forum Linux qui me semble plus approprié.