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: