diff options
author | Masatomo Nakano <nakano@gentoo.org> | 2005-04-20 16:44:43 +0000 |
---|---|---|
committer | Masatomo Nakano <nakano@gentoo.org> | 2005-04-20 16:44:43 +0000 |
commit | 7e0b6721dfb7d305fcf6157d90048e3fcfb8d400 (patch) | |
tree | ad0033e807627a1f01fe93c5fc0726b24abbfe3a /app-i18n/nkf/files | |
parent | New version (diff) | |
download | gentoo-2-7e0b6721dfb7d305fcf6157d90048e3fcfb8d400.tar.gz gentoo-2-7e0b6721dfb7d305fcf6157d90048e3fcfb8d400.tar.bz2 gentoo-2-7e0b6721dfb7d305fcf6157d90048e3fcfb8d400.zip |
Added python support.
(Portage version: 2.0.51.19)
Diffstat (limited to 'app-i18n/nkf/files')
-rw-r--r-- | app-i18n/nkf/files/digest-nkf-2.0.5-r1 | 1 | ||||
-rw-r--r-- | app-i18n/nkf/files/nkf-python.patch | 221 |
2 files changed, 222 insertions, 0 deletions
diff --git a/app-i18n/nkf/files/digest-nkf-2.0.5-r1 b/app-i18n/nkf/files/digest-nkf-2.0.5-r1 new file mode 100644 index 000000000000..47552ab72d5e --- /dev/null +++ b/app-i18n/nkf/files/digest-nkf-2.0.5-r1 @@ -0,0 +1 @@ +MD5 e34d936b20aaf581da5759fbaf0438f3 nkf205.tar.gz 149809 diff --git a/app-i18n/nkf/files/nkf-python.patch b/app-i18n/nkf/files/nkf-python.patch new file mode 100644 index 000000000000..daa55ebc4d2c --- /dev/null +++ b/app-i18n/nkf/files/nkf-python.patch @@ -0,0 +1,221 @@ +diff -Naur nkf205/NKF.python/NKF_python.c nkf205-py/NKF.python/NKF_python.c +--- nkf205/NKF.python/NKF_python.c Thu Jan 1 09:00:00 1970 ++++ nkf205-py/NKF.python/NKF_python.c Thu Apr 14 23:16:11 2005 +@@ -0,0 +1,185 @@ ++/** Python Interface to NKF ++*************************************************************************** ++** Copyright (c) 2005 Matsumoto, Tadashi <ma2@city.plala.jp> ++** All Rights Reserved. ++** ++** Everyone is permitted to do anything on this program ++** including copying, modifying, improving, ++** as long as you don't try to pretend that you wrote it. ++** i.e., the above copyright notice has to appear in all copies. ++** Binary distribution requires original version messages. ++** You don't have to ask before copying, redistribution or publishing. ++** THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE. ++***************************************************************************/ ++ ++#include "Python.h" ++#include <setjmp.h> ++ ++#define PYNKF_OPTSLEN 100 ++ ++#undef getc ++#undef ungetc ++#define getc(f) pynkf_getc(f) ++#define ungetc(c,f) pynkf_ungetc(c,f) ++ ++#undef putchar ++#undef TRUE ++#undef FALSE ++#define putchar(c) pynkf_putchar(c) ++ ++static char *PYNKF_ARGV[PYNKF_OPTSLEN/2 + 3]; ++static long pynkf_ibufsize, pynkf_obufsize; ++static unsigned char *pynkf_inbuf, *pynkf_outbuf; ++static int pynkf_icount,pynkf_ocount; ++static unsigned char *pynkf_iptr, *pynkf_optr; ++static jmp_buf env; ++ ++static int ++pynkf_getc(FILE *f) ++{unsigned char c; ++ if (pynkf_icount >= pynkf_ibufsize) return EOF; ++ c = *pynkf_iptr++; ++ pynkf_icount++; ++ return (int)c; ++} ++ ++static int ++pynkf_ungetc(int c, FILE *f) ++{ ++ if (pynkf_icount--){ ++ *(--pynkf_iptr) = c; ++ return c; ++ }else{ return EOF; } ++} ++ ++static void ++pynkf_putchar(int c) ++{ ++ size_t size; ++ unsigned char *p; ++ ++ if (pynkf_ocount--){ ++ *pynkf_optr++ = c; ++ }else{ ++ size = pynkf_obufsize + pynkf_obufsize; ++ p = (unsigned char *)PyMem_Realloc(pynkf_outbuf, size + 1); ++ if (pynkf_outbuf == NULL){ longjmp(env, 1); } ++ pynkf_outbuf = p; ++ pynkf_optr = pynkf_outbuf + pynkf_obufsize; ++ pynkf_ocount = pynkf_obufsize; ++ pynkf_obufsize = size; ++ *pynkf_optr++ = c; ++ pynkf_ocount--; ++ } ++} ++ ++#define PERL_XS 1 ++#include "../utf8tbl.c" ++#include "../nkf.c" ++ ++static void ++pynkf_parseopts(char *opts, int *argcp, char **argv) ++{ ++ register char *p; ++ register int argc, flg; ++ p = opts; ++ argc = 1; ++ flg = 1; ++ *argv++ = "nkf"; ++ while(*p){ ++ if (*p == ' '){ *p = '\0'; flg = 1; p++; continue; } ++ if (*p != ' ' && flg){*argv++ = p; argc++; flg = 0; } ++ p++; ++ } ++ *argcp = argc; ++} ++ ++static PyObject * ++pynkf_convert(unsigned char* str, long strlen, char* opts, int optslen) ++{ ++ unsigned char *cp; ++ int argc; ++ char **argv; ++ register char **p; ++ PyObject * res; ++ ++ if (optslen > PYNKF_OPTSLEN) { ++ PyErr_SetString(PyExc_ValueError, "Too many options."); ++ return NULL; ++ } ++ pynkf_ibufsize = strlen + 1; ++ pynkf_obufsize = pynkf_ibufsize * 1.5 + 256; ++ pynkf_outbuf = (unsigned char *)PyMem_Malloc(pynkf_obufsize); ++ if (pynkf_outbuf == NULL){ ++ PyErr_NoMemory(); ++ return NULL; ++ } ++ pynkf_outbuf[0] = '\0'; ++ pynkf_ocount = pynkf_obufsize; ++ pynkf_optr = pynkf_outbuf; ++ pynkf_icount = 0; ++ pynkf_inbuf = str; ++ pynkf_iptr = pynkf_inbuf; ++ argv = PYNKF_ARGV; ++ ++ pynkf_parseopts(opts, &argc, argv); ++ ++ if (setjmp(env) == 0){ ++ ++ reinit(); ++ ++ p = argv; ++ for (argc--,p++; (argc > 0) && **p == '-'; argc--, p++) { ++ cp = *p; ++ options(cp); ++ } ++ ++ if(x0201_f == WISH_TRUE) ++ x0201_f = ((!iso2022jp_f)? TRUE : NO_X0201); ++ ++ kanji_convert(NULL); ++ ++ }else{ ++ PyMem_Free(pynkf_outbuf); ++ PyErr_NoMemory(); ++ return NULL; ++ } ++ ++ *pynkf_optr = 0; ++ res = PyString_FromString(pynkf_outbuf); ++ PyMem_Free(pynkf_outbuf); ++ return res; ++} ++ ++#ifndef EXTERN_NKF ++static ++#endif ++PyObject *pynkf_nkf(PyObject *self, PyObject *args) ++{ ++ unsigned char *str; ++ long strlen; ++ char *opts; ++ int optslen; ++ PyObject* res; ++ ++ if (!PyArg_ParseTuple(args, "s#s#", &opts, &optslen, &str, &strlen)) { ++ return NULL; ++ } ++ res = pynkf_convert(str, strlen, opts, optslen); ++ return res; ++} ++ ++#ifndef EXTERN_NKF ++static PyMethodDef ++nkfmethods[] = { ++ {"nkf", pynkf_nkf, METH_VARARGS}, ++ {NULL, NULL} ++}; ++ ++/* Module initialization function */ ++void ++initnkf(void) ++{ ++ Py_InitModule("nkf", nkfmethods); ++} ++#endif +diff -Naur nkf205/NKF.python/README nkf205-py/NKF.python/README +--- nkf205/NKF.python/README Thu Jan 1 09:00:00 1970 ++++ nkf205-py/NKF.python/README Thu Apr 14 23:16:11 2005 +@@ -0,0 +1,12 @@ ++Python Interface to NKF ++ ++1. How to Install ++ ++ # python setup.py install ++ ++2. Usage ++ ++ from nkf import nkf ++ output = nkf(flag, input) ++ ++Matsumoto, Tadashi ma2@city.plala.jp +diff -Naur nkf205/NKF.python/setup.py nkf205-py/NKF.python/setup.py +--- nkf205/NKF.python/setup.py Thu Jan 1 09:00:00 1970 ++++ nkf205-py/NKF.python/setup.py Thu Apr 14 23:16:11 2005 +@@ -0,0 +1,12 @@ ++#!/usr/bin/env python ++ ++from distutils.core import setup, Extension ++ ++setup (name = "nkf", ++ version="1.0", ++ description="Python Interface to NKF", ++ author="Matsumoto Tadashi", ++ author_email="ma2@city.plala.jp", ++ ext_modules = [ ++ Extension("nkf", ["NKF_python.c"], ++ extra_link_args = ['-s'])]) |