OBS User unknown 2007-01-15 23:16:41 +00:00 committed by Git OBS Bridge
commit b653ac64ff
7 changed files with 508 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

364
hmconv.c Normal file
View File

@ -0,0 +1,364 @@
/* EUC-KR < - > ISO-2022-KR code converter for Hangul Mail Exchange
with non-localized MTA(e.g. sendmail )
version 1.0pl5 ( Nov. 30, 1997) : Comment and help change
version 1.0pl4 ( March 11,1997) : modified to make use of
__STDC__ defined by
most ISO/ANSI C compiler
version 1.0pl3 ( July 11, 1996) : Thanks to D. Lim,
1. change in cmd line argument parsing
2. more portability issues addressed
3. now exits gracefully as required in
some OS : 'return(0)' at the end,
which solves problem in Solaris
when used as a filter for Pine.
version 1.0pl2 ( July 9, 1996) : 1.portability issue related
to 'char' type range addressed.
2. another portability issue
resolved : To compile with
pre-ANSI C compiler, give
'-DKNR' option at the cmd line
for c compiler or uncomment
'#define KNR'.(See below)
version 1.0pl1 ( June, 8, 1996) : supercedes one included in hmconv.tar.gz
now is a bit more robust
and works better in Emacs.
version 1.0 ( May, 1996)
By Jungshik Shin(jshin@pantheon.yale.edu)
For details on Hangul mail exchange with this filter,
see documents included in hmconv.tar.gz and
references there. You may also subscribe to
han.comp.mail and han.comp.hangul for further
development in Hangul mail exchange including
customization for Emacs+Rmail (.emacs setting)
I plan to post.
*/
/* Uncomment following line if pre-ANSI C compiler is used */
/*
#define KNR
*/
#include <stdio.h>
#include <string.h>
#if ! defined(KNR) || defined(__STDC__)
#include <stdlib.h>
#endif
#define isksc(c) ( (unsigned char) (c) > (unsigned char) '\240' && \
(unsigned char) (c) < (unsigned char) '\377' )
#define is7ksc(c) ( (unsigned char) (c) > (unsigned char) '\040' && \
(unsigned char) (c) < (unsigned char) '\177' )
#define BUF 4096
#define SI '\017'
#define SO '\016'
FILE *in,*out;
int isdecode;
unsigned char line[BUF];
int ishangul;
#if defined(KNR) && ! defined(__STDC__)
int openfile();
int convert();
int getoption();
#else
int openfile(char *,char *,FILE **);
int convert();
int getoption(int argc, char *argv[], char *optstring);
#endif
/*************************************************************
*** getoption() parses command line options. *
*** This was adapted from the code written by Henry Spencer, *
*** University of Toronto. *
*** --- D. Lim --- *
**************************************************************/
char *optarg; /* Global argument pointer. */
int optind = 0; /* Global argv index. */
#if defined(KNR) && ! defined(__STDC__)
int getoption (argc, argv, optstring)
int argc;
char *argv[];
char *optstring;
#else
int getoption (int argc, char *argv[], char *optstring)
#endif
{
register int c;
register char *place;
static char *scan = NULL;
optarg = NULL;
if (!scan || !*scan) {
if (optind == 0) optind++;
if (optind >= argc) return EOF;
place = argv[optind];
if (place[0] != '-' || place[1] == '\0') return EOF;
optind++;
if (place[1] == '-' && place[2] == '\0') return EOF;
scan = place+1;
}
c = *scan++;
place = strchr(optstring, c);
if (place == NULL || c == ':') {
fprintf(stderr, "%s: unknown option %c\n", argv[0], c);
return '?';
}
if (*++place == ':') {
if (*scan != '\0') {
optarg = scan, scan = NULL;
} else {
optarg = argv[optind], optind++;
}
}
return c;
}
#if defined(KNR) && ! defined(__STDC__)
main (argc,argv)
int argc;
char **argv;
#else
main (int argc, char **argv)
#endif
{
int opt;
char *p;
isdecode = 0;
ishangul = 0;
in = stdin;
out = stdout;
while ((opt = getoption(argc, argv, "hu")) != EOF ) {
switch (opt) {
case '?':
case 'h':
if ((p = strrchr(argv[0], '/'))) p++; else p = argv[0];
fprintf(stderr,"Usage: %s [-h] [-u] [input file [output file] ]\n", p);
fputs("\t -h : prints this help\n",stderr);
fputs("\t -u : ISO-2022-KR -> EUC-KR\n",stderr);
fputs("\t without '-u', EUC-KR -> ISO-2022-KR\n",stderr);
fputs("\t standard input(output) is assumed when\n",stderr);
fputs("\t input(output) file isn't specified.\n",stderr);
exit(-1);
case 'u':
isdecode = 1;
break;
}
}
if (argc - optind > 0) openfile(argv[optind],"r",&in);
if (argc - optind > 1) openfile(argv[optind+1],"w",&out);
while (fgets((char *) line,BUF,in)) convert();
if (in != stdin) fclose(in);
if (out != stdout) fclose(out);
exit (EXIT_SUCCESS);
/* return(0); */
}
#define KSC 1
#define ASCII 0
int convert()
{
int mode=ASCII;
int i=0;
int c;
if ( !isdecode ) {
if ( !ishangul )
/* search for KSC 5601 character(s) in line */
while (line[i] != '\n' && line[i] != (unsigned char) EOF &&
line[i] != '\0' ) {
/* the last case for buffer fill or
input from emacs which doesn't
pad the region with EOF or '\n'
when handing it over to a filter
( 'shell-command-on-region) */
if ( isksc(line[i]) ) {
ishangul = 1; /* found KSC 5601 */
fprintf(out,"\033$)C\n"); /* put out the designator */
break;
/* fprintf(out,"\033$)C"); */
/* RFC 1557 does not require '\n' after the designator
and Hangul sendmail and cvt8.exe work fine without it,
but 'hcode' expects '\n' and breaks a few characters
after the designator if it's not followed by '\n'
*/
}
i++;
}
if ( !ishangul) { /* KSC 5601 doesn't appear, yet */
fputs((char *) line,out); /* no conversion */
return;
}
i = 0 ; /* back to the beginning of the line */
while ( line[i] != '\n' && line[i] != (unsigned char) EOF &&
line[i] != '\0' ) {
/* the last case for buffer fill or
input from emacs which doesn't
pad the region with EOF or '\n'
when handing it over to a filter
( 'shell-command-on-region) */
if ( mode == ASCII && isksc(line[i])) {
fputc(SO,out);
fputc(0x7f & line[i],out);
mode = KSC;
}
else if ( mode == ASCII && !isksc(line[i]) )
fputc(line[i],out);
else if ( mode == KSC && isksc(line[i]) )
/* else if ( mode == KSC && ( isksc(line[i] || line[i] == ' ' ) ) */
fputc(0x7f & line[i],out);
else {
fputc(SI,out);
fputc(line[i],out);
mode = ASCII;
}
i++;
}
if ( mode == KSC)
fputc(SI,out);
if ( line[i] == '\n' || ( line[i] == '\0' && i == BUF ) )
fputc('\n',out);
/* added after testing with emacs. EOF is added by fclose.
no need to add it manually. '\0' is replaced by '\n' only in
case of buffer fill */
} /* end of if for EUC-KR -> ISO-2022-KR */
else {
/* It is more economical and strictly conforms to ISO-2022-KR,
but some programs (e.g. Mule) seem to use 'ESC $ ) C'
as the character-set switcher instead of the designator.
Hence, these lines were commented out, and routine to work with
embeded designator was put in, instead */
/* if ( ! strncmp(line,"\033$)C",4) ) {
ishangul = 1;
i+=4;
}
if ( !ishangul) {
fputs(line,out);
return(0);
}
*/
while ( line[i] != '\n' && line[i] != (unsigned char) EOF &&
line[i] != '\0' ) {
/* the last case for buffer fill or
input from emacs which doesn't
pad the region with EOF or '\n'
when handing it over to a filter
(shell-command-on-region) */
if ( ! strncmp((char *) &line[i],"\033$)C",4) ) {
ishangul = 1;
i+=4;
if ( line[i] == '\n' && i == 4 )
/* remove '\n' from lines containing */
return(0); /* only the designator ESC+$)C */
continue;
}
if ( ! ishangul )
fputc(line[i],out);
else {
switch( line[i] ) {
case SO:
mode=KSC;
break;
case SI:
mode=ASCII;
break;
default:
if ( mode==ASCII)
fputc(line[i],out);
else
/* space and tab can be embeded among KSC 5601 */
if ( line[i] != '\040' && line[i] != '\011' )
/* Or is it more reasonable to weed out characters outside [0x21,0x7e] ? */
/* if ( is7ksc(line[i]) ) */
fputc(line[i] | 0x80,out);
else
fputc(line[i],out);
} /* end of switch */
}
i++;
} /* end of while */
if ( line[i] == '\n' ) /* added after testing with emacs */
fputc(line[i],out); /* EOF is added by fclose.
no need to add it manually
The same is true of '\0' */
} /* end of else for ISO-2022-KR -> EUC-KR */
return(0);
}
#if defined(KNR) && ! defined(__STDC__)
int openfile(name,mode,fp)
char *name;
char *mode;
FILE **fp;
#else
int openfile(char *name,char *mode,FILE **fp)
#endif
{
if ( (*fp=fopen(name,mode)) == NULL ) {
fprintf(stderr,"File %s open error !\n", name);
exit(-1);
}
return (0);
}

31
hmconv.changes Normal file
View File

@ -0,0 +1,31 @@
-------------------------------------------------------------------
Wed Jan 25 21:36:28 CET 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
-------------------------------------------------------------------
Tue Apr 12 17:45:10 CEST 2005 - mfabian@suse.de
- fix build with gcc 4.
-------------------------------------------------------------------
Sun Jan 11 11:24:30 CET 2004 - adrian@suse.de
- add %defattr
-------------------------------------------------------------------
Fri Aug 30 08:53:59 CEST 2002 - ro@suse.de
- corrected changes file
-------------------------------------------------------------------
Thu Jan 04 12:00:00 CEST 2001 - violiet@susekorea.net
- update to 1.0p15.
- change COPYRIGHT: distributable.
-------------------------------------------------------------------
Tue Nov 28 12:00:00 CEST 2000 - violiet@susekorea.net
- initial RPM release for SuSE Linux.

20
hmconv.patch Normal file
View File

@ -0,0 +1,20 @@
--- hmconv.c 2001-01-11 15:59:43.000000000 +0100
+++ hmconv.c.new 2005-04-12 17:40:34.000000000 +0200
@@ -137,7 +137,7 @@
int argc;
char **argv;
#else
-main (int argc, char **argv)
+int main (int argc, char **argv)
#endif
{
@@ -219,7 +219,7 @@
if ( !ishangul) { /* KSC 5601 doesn't appear, yet */
fputs((char *) line,out); /* no conversion */
- return;
+ return (0);
}

67
hmconv.spec Normal file
View File

@ -0,0 +1,67 @@
#
# spec file for package hmconv (Version 1.0pl5)
#
# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://www.suse.de/feedback/
#
# norootforbuild
Name: hmconv
License: distributable
Group: System/I18n/Korean
Autoreqprov: on
Version: 1.0pl5
Release: 518
Summary: HangulCode Conversion Program
Source0: hmconv1.0pl3.tar.gz
Source1: hmconv.c
Patch0: hmconv.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
HangulCode conversion program.
Authors:
--------
Jungshik Shin &lt;jshin@pantheon.yale.edu&gt;
%prep
%setup -q -n hmconv
%build
cp %{SOURCE1} .
patch -p0 -i $RPM_SOURCE_DIR/hmconv.patch
gcc $RPM_OPT_FLAGS -o hmconv hmconv.c
%install
mkdir -p %{buildroot}%{_prefix}/bin
install -m 755 hmconv %{buildroot}%{_prefix}/bin
%clean
rm -rf %{buildroot}
%files -n hmconv
%defattr(-,root,root)
%doc CHANGES README README.elm README.pine hmailedit
%{_prefix}/bin/hmconv
%changelog -n hmconv
* Wed Jan 25 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
* Tue Apr 12 2005 - mfabian@suse.de
- fix build with gcc 4.
* Sun Jan 11 2004 - adrian@suse.de
- add %%defattr
* Fri Aug 30 2002 - ro@suse.de
- corrected changes file
* Thu Jan 04 2001 - violiet@susekorea.net
- update to 1.0p15.
- change COPYRIGHT: distributable.
* Tue Nov 28 2000 - violiet@susekorea.net
- initial RPM release for SuSE Linux.

3
hmconv1.0pl3.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da7d41b890264e3a4ed124a304aea6e97ee03efa7ff39aaf4c7aec5309779f33
size 12198

0
ready Normal file
View File