* [devel] libnatspec, catpkt и o3read
@ 2005-09-15 20:38 Igor Zubkov
2005-09-20 21:28 ` Vitaly Lipatov
0 siblings, 1 reply; 2+ messages in thread
From: Igor Zubkov @ 2005-09-15 20:38 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 548 bytes --]
Привет, Всем!
Началось всё с того что Vitaly Lipatov повесил FR на o3read по поводу
перекодировки в текущую локаль. И патч для уверености приложил. После
небольшой правки патча я выложу выпрямленную версию o3read, но не сейчас.
По мотивам этого патча я сделал такой же для catpkt. Патч прилагается (может
его стоит положить в libnatspec examples?). Лицензия BSD. Обновлённый пакет
catpkt скоро ляжет в /i/S/. В качестве теста я спользовался pkt файл размером
37 метров. Работает.
p.s.: спасибо Vitaly Lipatov за natspec.
--
Now playing:
[-- Attachment #2: catpkt-1.0-alt-natspec.patch --]
[-- Type: text/x-diff, Size: 5489 bytes --]
diff -urN catpkt-1.0.orig/catpkt.c catpkt-1.0/catpkt.c
--- catpkt-1.0.orig/catpkt.c 1999-04-03 21:14:51 +0300
+++ catpkt-1.0/catpkt.c 2005-09-15 22:29:21 +0300
@@ -5,6 +5,9 @@
#include <unistd.h>
#include <sys/types.h>
+#include <natspec.h>
+#include <locale.h>
+
#include "pkt.h" // packet header structure
FILE *fname; // current pkt
@@ -22,7 +25,7 @@
char mTOPT[]=".0 ", // ready to print ToPoint information
mFMPT[]=".0 "; // ready to print FromPoint information
int mesc=1; // message counter
-int flagI=0, flagC=0, flag1=0, flagM=0, flagK=0; // comand line params
+int flagI=0, flag1=0, flagM=0, flagK=0; // comand line params
char *Attrset[16] = { // attributes
@@ -253,28 +256,32 @@
printf( "Msg: %-10d%64s\n", mesc, Attrs );
// print "From" name & time
- if ( !flagC )
- dos2koi( FromUser, FromUser );
+// if ( !flagC )
+// dos2koi( FromUser, FromUser );
+ char *newFromUser = natspec_convert_with_translit(FromUser, NULL, "CP866");
printf( "From: %-32s 2:%i/%i%s %s\n",
- FromUser, pm.pmONet, pm.pmONode, mFMPT, DateTime );
+ newFromUser, pm.pmONet, pm.pmONode, mFMPT, DateTime );
// print "To" name
- if ( !flagC )
- dos2koi( ToUser, ToUser );
+// if ( !flagC )
+// dos2koi( ToUser, ToUser );
+ char *newToUser = natspec_convert_with_translit(ToUser, NULL, "CP866");
printf( "To: %-32s 2:%i/%i%s\n",
- ToUser, pm.pmDNet, pm.pmDNode, mTOPT) ;
+ newToUser, pm.pmDNet, pm.pmDNode, mTOPT) ;
// printf subject
- if ( !flagC )
- dos2koi( Subject, Subject );
- printf( "Subj: %-74s\n", Subject );
+// if ( !flagC )
+// dos2koi( Subject, Subject );
+ char *newSubject = natspec_convert_with_translit(Subject, NULL, "CP866");
+ printf( "Subj: %-74s\n", newSubject );
deline( '-' ); // draw delimiter line
- if ( !flagC )
- dos2koi( Text, Text ); // decode text, if needed
+// if ( !flagC )
+// dos2koi( Text, Text ); // decode text, if needed
+ char *newText = natspec_convert_with_translit(Text, NULL, "CP866");
- xprintf( Text ); // print body of message
+ xprintf( newText ); // print body of message
deline( '=' ); // draw delimiter line
@@ -307,7 +314,7 @@
printf( "FTS Packet Viewer, v.%s\n", VERSION );
printf( "usage: %s [i c 1 k] filename\n", argv[0] );
printf( "i - print packet header info\n" );
- printf( "c - do not recode text from cp866 (alt) to koi8-r\n" );
+// printf( "c - do not recode text from cp866 (alt) to koi8-r\n" );
printf( "1 - print only first message\n" );
printf( "k - show kludges\n" );
printf( "\n" );
@@ -319,8 +326,8 @@
for ( i = 1; i < (argc-1); i++) {
if ( strcmp( argv[i], "i" ) == 0 )
flagI = 1;
- if ( strcmp( argv[i], "c" ) == 0 )
- flagC = 1;
+// if ( strcmp( argv[i], "c" ) == 0 )
+// flagC = 1;
if ( strcmp( argv[i], "1" ) == 0 )
flag1 = 1;
if ( strcmp( argv[i], "m" ) == 0 )
@@ -335,6 +342,9 @@
return 1;
}
+ // set locale
+ setlocale(LC_ALL, "");
+
// now we have to define the size of pkt
if ( fseek( fname, 0, SEEK_END ) == -1 ) {
perror( "can't define pkt size" );
Файлы catpkt-1.0.orig/catpkt.o и catpkt-1.0/catpkt.o различаются
diff -urN catpkt-1.0.orig/dos2koi.c catpkt-1.0/dos2koi.c
--- catpkt-1.0.orig/dos2koi.c 1999-04-03 21:13:36 +0300
+++ catpkt-1.0/dos2koi.c 1970-01-01 03:00:00 +0300
@@ -1,38 +0,0 @@
-/* 'bsd-style-copyrights' must be placed here */
-
-#include <stdio.h>
-#include <string.h>
-
-#include "pkt.h"
-
-
-static unsigned char cp866[] = {
-0000,0001,0002,0003,0004,0005,0006,0007,0010,0011,0012,0013,0014,0015,0016,0017,
-0020,0021,0022,0023,0024,0025,0026,0027,0030,0031,0032,0033,0034,0035,0036,0037,
-0040,0041,0042,0043,0044,0045,0046,0047,0050,0051,0052,0053,0054,0055,0056,0057,
-0060,0061,0062,0063,0064,0065,0066,0067,0070,0071,0072,0073,0074,0075,0076,0077,
-0100,0101,0102,0103,0104,0105,0106,0107,0110,0111,0112,0113,0114,0115,0116,0117,
-0120,0121,0122,0123,0124,0125,0126,0127,0130,0131,0132,0133,0134,0135,0136,0137,
-0140,0141,0142,0143,0144,0145,0146,0147,0150,0151,0152,0153,0154,0155,0156,0157,
-0160,0161,0162,0163,0164,0165,0166,0167,0170,0171,0172,0173,0174,0175,0176,0177,
-0341,0342,0367,0347,0344,0345,0366,0372,0351,0352,0353,0354,0355,0356,0357,0360,
-0362,0363,0364,0365,0346,0350,0343,0376,0373,0375,0377,0371,0370,0374,0340,0361,
-0301,0302,0327,0307,0304,0305,0326,0332,0311,0312,0313,0314,0315,0316,0317,0320,
-0260,0261,0262,0266,0246,0265,0270,0271,0244,0272,0273,0274,0275,0276,0247,0277,
-0341,0342,0367,0347,0344,0345,0366,0372,0351,0352,0353,0354,0355,0356,0357,0360,
-0362,0363,0364,0365,0346,0350,0343,0376,0373,0375,0377,0371,0370,0374,0340,0361,
-0322,0323,0324,0325,0306,0310,0303,0336,0333,0335,0337,0331,0330,0334,0300,0321
-};
-
-
-void dos2koi( unsigned char *Field, unsigned char *Out )
-{
- unsigned char *zzz = cp866;
- unsigned char *Source = Field;
- unsigned char *Dest = Out;
-
- while ( *Source )
- *Dest++ = zzz[*Source++];
-
- return;
-}
diff -urN catpkt-1.0.orig/Makefile catpkt-1.0/Makefile
--- catpkt-1.0.orig/Makefile 1999-04-03 21:16:12 +0300
+++ catpkt-1.0/Makefile 2005-09-15 22:04:53 +0300
@@ -1,15 +1,14 @@
FLAGS = -O3
-OBJS = catpkt.o dos2koi.o
+OBJS = catpkt.o
+LDFLAGS = -lnatspec
all: $(OBJS)
- gcc $(FLAGS) -o catpkt $(OBJS)
+ gcc $(FLAGS) $(LDFLAGS) -o catpkt $(OBJS)
strip catpkt
catpkt.o: catpkt.c pkt.h
gcc $(FLAGS) -c catpkt.c
-dos2koi.o: dos2koi.c pkt.h
- gcc $(FLAGS) -c dos2koi.c
dos: catpkt.c pkt.h
@echo "After 'make dos' do not forget to run 'make all'!"
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [devel] libnatspec, catpkt и o3read
2005-09-15 20:38 [devel] libnatspec, catpkt и o3read Igor Zubkov
@ 2005-09-20 21:28 ` Vitaly Lipatov
0 siblings, 0 replies; 2+ messages in thread
From: Vitaly Lipatov @ 2005-09-20 21:28 UTC (permalink / raw)
To: ALT Devel discussion list
On Friday 16 September 2005 00:38, Igor Zubkov wrote:
> Привет, Всем!
>
> Началось всё с того что Vitaly Lipatov повесил FR на o3read по
> поводу перекодировки в текущую локаль. И патч для уверености
> приложил. После небольшой правки патча я выложу выпрямленную
> версию o3read, но не сейчас.
Ждём!
Да, патч пришлите пожалуйста, я его тоже положу в examples.
> По мотивам этого патча я сделал такой же для catpkt. Патч
> прилагается (может его стоит положить в libnatspec examples?).
Положил.
> Лицензия BSD. Обновлённый пакет catpkt скоро ляжет в /i/S/. В
> качестве теста я спользовался pkt файл размером 37 метров.
> Работает.
>
> p.s.: спасибо Vitaly Lipatov за natspec.
Вам спасибо за понимание его назначения.
Вот бы такую работу по исправлению программ с кодировочными
хаками провели над каждым подобным приложением...
--
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! WINE! LaTeX! LyX! http://freesource.info
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-09-20 21:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-15 20:38 [devel] libnatspec, catpkt и o3read Igor Zubkov
2005-09-20 21:28 ` Vitaly Lipatov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git