[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#572730: xtel: Enable teleinfo mode



Package: xtel
Version: 3.3.0-6
Severity: wishlist
Tags: patch

Hello,

Xtel has some support for teleinfo mode, but this is currently disabled
in xtel.c.  This is useful for e.g. the Sirene service.  The attached
patch enables it, and fixes a couple display glitches.

Samuel

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.33 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages xtel depends on:
ii  lesstif2                  1:0.95.2-1     OSF/Motif 2.1 implementation relea
ii  libc6                     2.10.2-6       Embedded GNU C Library: Shared lib
ii  libice6                   2:1.0.6-1      X11 Inter-Client Exchange library
ii  libjpeg62                 6b-16.1        The Independent JPEG Group's JPEG 
ii  libsm6                    2:1.1.1-1      X11 Session Management library
ii  libx11-6                  2:1.3.3-1      X11 client-side library
ii  libxext6                  2:1.1.1-2      X11 miscellaneous extension librar
ii  libxp6                    1:1.0.0.xsf1-2 X Printing Extension (Xprint) clie
ii  libxpm4                   1:3.5.8-1      X11 pixmap library
ii  libxt6                    1:1.0.7-1      X11 toolkit intrinsics library
ii  openbsd-inetd [inet-super 0.20080125-4   The OpenBSD Internet Superserver
ii  ppp                       2.4.4rel-10.1  Point-to-Point Protocol (PPP) - da
ii  x11-common                1:7.5+3        X Window System (X.Org) infrastruc
ii  xbase-clients             1:7.5+3        miscellaneous X clients - metapack
ii  xfonts-utils              1:7.5+2        X Window System font utility progr
ii  xutils                    1:7.5+3        X Window System utility programs m

Versions of packages xtel recommends:
ii  logrotate                     3.7.8-4    Log rotation utility

xtel suggests no packages.

-- debconf information excluded

-- 
Samuel Thibault <samuel.thibault@fnac.net>
�Tiens, quand j'aurai un peu de temps et une partition libre, je crois
 que je vais essayer de remplacer mes scripts de d�marrage par des
 programmes Windows lanc�s via Wine et binfmt_misc :-)�
-+- AGV in Guide du linuxien pervers - "J'sais pas quoi faire... (air connu)"
diff -ur xtel-3.3.0.original/lecteur.c xtel-3.3.0/lecteur.c
--- xtel-3.3.0.original/lecteur.c	2001-02-11 01:01:00.000000000 +0100
+++ xtel-3.3.0/lecteur.c	2010-03-06 02:28:09.000000000 +0100
@@ -100,9 +100,13 @@
 	      kill (pid_teleinfo, SIGKILL);
 	      close (fd_teleinfo);
 	    } else {
+	      char s[8];
+	      int n;
 	      if (mode_emulation == MODE_TELEINFO_FR)
 		c = conversion_teleinfo_fr (c,3);
-	      write (fd_teleinfo, &c, 1);
+	      n = snprintf (s, sizeof (s), "%lc", (unsigned char) c);
+	      if (n != -1)
+		write (fd_teleinfo, s, n);
 	    }
 	}
 	else {
diff -ur xtel-3.3.0.original/ligne.c xtel-3.3.0/ligne.c
--- xtel-3.3.0.original/ligne.c	2001-02-11 01:01:34.000000000 +0100
+++ xtel-3.3.0/ligne.c	2010-03-06 02:27:59.000000000 +0100
@@ -172,9 +172,13 @@
 		    selection_mode_emulation (ecran_minitel, "V", NULL);
 		    return;
 	      } else {
+		char s[8];
+		int n;
 		if (mode_emulation == MODE_TELEINFO_FR)
 		  c = conversion_teleinfo_fr (c,1);
-		write (fd_teleinfo, &c, 1);
+		n = snprintf (s, sizeof(s), "%lc", (unsigned char) c);
+		if (n != -1)
+		  write (fd_teleinfo, s, n);
 	      }
 	    } else {
 	      videotexDecode (ecran_minitel, c);
diff -ur xtel-3.3.0.original/teleinfo.c xtel-3.3.0/teleinfo.c
--- xtel-3.3.0.original/teleinfo.c	2010-03-06 01:55:42.000000000 +0100
+++ xtel-3.3.0/teleinfo.c	2010-03-06 02:29:31.000000000 +0100
@@ -279,7 +279,8 @@
 	  break;
 
       case 0x0e :
-          c = 0xef ;
+          //c = 0xef ;
+          c = 0;
 	break ;
 	  
       case 0x1b :
@@ -310,11 +311,17 @@
     if (read (*fid, &c, 1) == 1)  {
         if (mode_emulation == MODE_TELEINFO_FR)
 	     c = conversion_teleinfo_fr (c,2);
-      
+
 	if (flag_connexion)
 	    write (socket_xteld, &c, 1);
-	else
-	    write (fd_teleinfo, &c, 1);
+	else {
+	    char s[8];
+	    int n;
+
+	    n = sprintf(s, sizeof(s), "%lc", (unsigned char) c);
+	    if (n != -1)
+	      write (fd_teleinfo, s, n);
+	}
     }
 }
 
diff -ur xtel-3.3.0.original/xtel.c xtel-3.3.0/xtel.c
--- xtel-3.3.0.original/xtel.c	2001-02-13 10:49:30.000000000 +0100
+++ xtel-3.3.0/xtel.c	2010-03-06 02:13:28.000000000 +0100
@@ -42,6 +42,8 @@
 #include "pixmaps/xtel.xpm"
 #endif /* NO_XPM */
 
+#include <locale.h>
+
 static Colormap current_cmap;
 static Cursor teleph_cursor;
 static Pixmap pixmap_icone = None;
@@ -446,6 +448,8 @@
     int i;
     Widget topLevel;
 
+    setlocale(LC_ALL, "");
+
     if (prototype_xtel == 0) {
 	if (PATCHLEVEL != 0)
 	    printf ("XTEL %d.%d.%d, Emulateur MINITEL/I-MINITEL\n", version_xtel, revision_xtel, PATCHLEVEL);
@@ -639,9 +643,9 @@
 
     XtRealizeWidget(topLevel);
 
-    /*
     XtAddCallback (ecran_minitel, XtNmodeCallback, (XtCallbackProc)selection_mode_emulation, (XtPointer)"A");
     XtAddCallback (ecran_minitel, XtNmodefrCallback, (XtCallbackProc)selection_mode_emulation, (XtPointer)"F");
+    /*
     XtAddCallback (ecran_minitel, XtNenregCallback, (XtCallbackProc)enregistre_caractere, (XtPointer)NULL);
     */
     init_xtel ();

Reply to: