ShellBanner
System:Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686
Software:Apache. PHP/5.3.6-13ubuntu3.10
ID:uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
Safe Mode:OFF
Open_Basedir:OFF
Freespace:23.56 GB of 70.42 GB (33.45%)
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

/ usr/ src/ maildrop-2.2.0/ unicode/ - drwxr-xr-x

Directory:
Viewing file:     ksx1001.pl (4.39 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#! /usr/bin/perl

# USAGE: perl ksx1001.pl > ksx1001.h

# Requires CP949.TXT, found on:
#   http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT"

require "cjkcompat.pl";

$cp949 = 'CP949.TXT';
$perline = 8;

die "${cp949}: File not found.\n" if (!(-f $cp949));
open (SET, $cp949) or die "${cp949}: $!\n";

while (<SET>) {
    chomp;

    s/\#.*//;

    next unless /^0x([0-9A-F]{2,4})\s+0x([0-9A-F]{4})\s*$/;

    my ($code, $ucode) = (hex($1), hex($2));

    if ($code > 0x8000) {
        print STDERR "Warning: duplicated: $code->$k2u{$code},$ucode\n"
            if defined $k2u{$code};
        $k2u{$code} = $ucode;
    }
}

close SET;

# make reversal map.

foreach (keys %k2u) {
    print STDERR "Warning: duplicated: $u2k{$k2u{$_}},$_<-$k2u{$_}\n"
        if defined $u2k{$k2u{$_}};
    $c1 = $_ >> 8;
    $c2 = $_ & 0x00FF;
    if ($c1 >= 0xA1 && $c2 >= 0xA1) {
        $u2k_ksx1001{$k2u{$_}} = $_;
    } else {
        $u2k_cp949{$k2u{$_}} = $_;
    }
}

# Add maps for CJK compatibility ideographs of Unicode.
####&add_cjkcompat(%compat_ksx1001);
&add_cjkcompat(%compat_big5);
&add_cjkcompat(%compat_ibm32);
&add_cjkcompat(%compat_jisx0213);
&add_cjkcompat(%compat_cns11643);

sub add_cjkcompat {
local(%compat) = @_;
  foreach (keys %compat) {
    if (defined $u2k_ksx1001{$compat{$_}}) {
      $u2k_ksx1001{$_} = $u2k_ksx1001{$compat{$_}};
    }
    if (defined $u2k_cp949{$compat{$_}}) {
      $u2k_cp949{$_} = $u2k_cp949{$compat{$_}};
    }
  }
}


print <<"EOF";
#ifndef _KSX1001_HDR_
#define _KSX1001_HDR_
/*
 * KS X 1001 and CP949 (UHC) support
 *  by Hatuka*nezumi - IKEDA Soji <nezumi\@jca.apc.org>
 * $Id: ksx1001.pl,v 1.1 2004/02/03 02:00:00 mrsam Exp $
 *
 */

#include "unicode.h"

#define KS_CHAR_SO    0x0E
#define KS_CHAR_SI    0x0F
#define KS_CHAR_ESC    0x1B

/* ISOREG #1/#3: US-ASCII (identical to ISO 646 IRV) */
#define KS_STATE_ASCII        0x0
/* ISOREG #149: KS X 1001:1992 Wansung */
#define KS_STATE_KSX1001    0x4
/* Unknown state */
#define KS_STATE_BINARY        0xF

EOF

print "/* map: CP949 to Unicode */\n";
for ($hb = 0x81; $hb <= 0xFE; $hb++) {
    $items = 0;
    for ($lb = 0x41; $lb <= 0xFE; $lb++) {
        $items++ if $k2u{$hb*256 + $lb};
    }
    if ($items) {
        $items = 0;
        printf "static const unicode_char cp949_to_uni_tbl_%02x[] = {", $hb;
        for ($lb = 0x41; $lb <= 0xFE; $lb++) {
            $code = $hb*256 + $lb;
            print ", " if ($items > 0);
            print "\n  " if ($items % $perline == 0);
            $k2u{$code} = 0xFFFD unless $k2u{$code};
            printf("0x%04X", $k2u{$code});
            $items++;
        }
        print "\n};\n";
        $k2uout{$hb} = 1;
    }
}

print "const unicode_char * cp949_to_uni_tbls[] = {\n";
for ($hb=0x81; $hb <= 0xFE; $hb++) {
    print (($hb > 0x81) ? ",\n  " : "  ");
    if ($k2uout{$hb}) {
        printf "cp949_to_uni_tbl_%02x", $hb;
    } else {
        print "NULL";
    }
}

print "\n};\n";
print "\n\n";


%u2kout = ();
print "/* map: Unicode to KS X 1001 */\n";
for ($hb = 0x00; $hb <= 0xFF; $hb++) {
    $items = 0;
    for ($lb = 0x00; $lb <= 0xFF; $lb++) {
        $items++ if $u2k_ksx1001{$hb*256 + $lb};
    }
    if ($items) {
        $items = 0;
        printf "static const unicode_char uni_to_ksx1001_tbl_%02x[] = {", $hb;
        for ($lb = 0x00; $lb <= 0xFF; $lb++) {
            $code = $hb*256 + $lb;
            print ", " if ($items > 0);
            print "\n  " if ($items % $perline == 0);
            $u2k_ksx1001{$code} = 0x003F unless $u2k_ksx1001{$code};
            printf("0x%04X", $u2k_ksx1001{$code});
            $items++;
        }
        print "\n};\n";
        $u2kout{$hb} = 1;
    }
}

print "const unicode_char * uni_to_ksx1001_tbls[] = {\n";
for ($hb=0x00; $hb <= 0xFF; $hb++) {
    print (($hb > 0x00) ? ",\n  " : "  ");
    if ($u2kout{$hb}) {
        printf "uni_to_ksx1001_tbl_%02x", $hb;
    } else {
        print "NULL";
    }
}

print "\n};\n";
print "\n\n";

%u2kout = ();
print "/* map: Unicode to CP949 extension */\n";
for ($hb = 0x00; $hb <= 0xFF; $hb++) {
    $items = 0;
    for ($lb = 0x00; $lb <= 0xFF; $lb++) {
        $items++ if $u2k_cp949{$hb*256 + $lb};
    }
    if ($items) {
        $items = 0;
        printf "static const unicode_char uni_to_cp949_tbl_%02x[] = {", $hb;
        for ($lb = 0x00; $lb <= 0xFF; $lb++) {
            $code = $hb*256 + $lb;
            print ", " if ($items > 0);
            print "\n  " if ($items % $perline == 0);
            $u2k_cp949{$code} = 0x003F unless $u2k_cp949{$code};
            printf("0x%04X", $u2k_cp949{$code});
            $items++;
        }
        print "\n};\n";
        $u2kout{$hb} = 1;
    }
}

print "const unicode_char * uni_to_cp949_tbls[] = {\n";
for ($hb=0x00; $hb <= 0xFF; $hb++) {
    print (($hb > 0x00) ? ",\n  " : "  ");
    if ($u2kout{$hb}) {
        printf "uni_to_cp949_tbl_%02x", $hb;
    } else {
        print "NULL";
    }
}

print "\n};\n";
print "\n\n";


print "#endif /* _KSX1001_HDR_ */\n";
Command:
Quick Commands:
Upload:
[Read-Only] Max size: 100MB
PHP Filesystem: <@ Ú
Search File:
regexp
Create File:
Overwrite [Read-Only]
View File:
Mass Defacement:
[+] Main Directory: [+] Defacement Url:
LmfaoX Shell - Private Build [BETA] - v0.1 -; Generated: 0.8291 seconds