From d03d6e606b40157d910ddf99ab018156abeb8ef0 Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Mon, 28 Feb 2011 18:59:32 +0100 Subject: add wdk changes to named branch --- src/common/cfgfiles.c | 37 ++-- src/common/chanopt.c | 1 - src/common/ctcp.c | 3 +- src/common/dcc.c | 6 +- src/common/dirent.c | 199 ++++++++++++++++++ src/common/dirent.h | 28 +++ src/common/ignore.c | 1 - src/common/inbound.c | 1 - src/common/inet.h | 3 +- src/common/makefile.mak | 45 ++++ src/common/msproxy.c | 1 - src/common/network.c | 1 - src/common/notify.c | 1 - src/common/outbound.c | 1 - src/common/plugin-timer.c | 2 +- src/common/plugin.c | 7 +- src/common/proto-irc.c | 1 - src/common/server.c | 38 +--- src/common/servlist.c | 1 - src/common/ssl.c | 2 +- src/common/text.c | 33 +-- src/common/thread.c | 33 +++ src/common/thread.h | 10 + src/common/util.c | 108 ++++++++-- src/common/util.h | 5 + src/common/wdkutil.c | 27 +++ src/common/wdkutil.h | 2 + src/common/xchat.c | 4 +- src/common/xchat.h | 12 +- src/fe-gtk/about.c | 59 ++++-- src/fe-gtk/banlist.c | 1 - src/fe-gtk/chanlist.c | 1 - src/fe-gtk/chanview-tabs.c | 8 +- src/fe-gtk/editlist.c | 1 - src/fe-gtk/fe-gtk.c | 87 +++++++- src/fe-gtk/fe-gtk.h | 2 +- src/fe-gtk/fkeys.c | 1 - src/fe-gtk/gtkutil.c | 248 +++++++++++++++++++++- src/fe-gtk/joind.c | 1 - src/fe-gtk/maingui.c | 67 +----- src/fe-gtk/makefile.mak | 60 ++++++ src/fe-gtk/menu.c | 12 +- src/fe-gtk/palette.c | 1 - src/fe-gtk/plugin-tray.c | 48 +++-- src/fe-gtk/plugingui.c | 6 +- src/fe-gtk/rawlog.c | 1 - src/fe-gtk/search.c | 2 +- src/fe-gtk/setup.c | 54 ++++- src/fe-gtk/sexy-spell-entry.c | 8 +- src/fe-gtk/typedef.h | 11 + src/fe-gtk/xchat.rc | 22 ++ src/fe-gtk/xtext.c | 35 +++- src/fe-gtk/xtext.h | 1 + src/fe-text/fe-text.c | 473 +++++++++++++++++++++++------------------- src/fe-text/fe-text.h | 30 +-- src/fe-text/makefile.mak | 20 ++ src/makefile.mak | 17 ++ src/makeinc.skel.mak | 44 ++++ src/pixmaps/makefile.mak | 18 ++ 59 files changed, 1439 insertions(+), 513 deletions(-) create mode 100644 src/common/dirent.c create mode 100644 src/common/dirent.h create mode 100644 src/common/makefile.mak create mode 100644 src/common/thread.c create mode 100644 src/common/thread.h create mode 100644 src/common/wdkutil.c create mode 100644 src/common/wdkutil.h create mode 100644 src/fe-gtk/makefile.mak create mode 100644 src/fe-gtk/typedef.h create mode 100644 src/fe-gtk/xchat.rc create mode 100644 src/fe-text/makefile.mak create mode 100644 src/makefile.mak create mode 100644 src/makeinc.skel.mak create mode 100644 src/pixmaps/makefile.mak (limited to 'src') diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c index 8bb2a61b..d26198ed 100644 --- a/src/common/cfgfiles.c +++ b/src/common/cfgfiles.c @@ -17,7 +17,6 @@ */ #include -#include #include #include #include @@ -30,10 +29,9 @@ #include "fe.h" #include "text.h" #include "xchatc.h" +#include "wdkutil.h" -#ifdef WIN32 -#define XCHAT_DIR "X-Chat 2" -#else +#ifndef WIN32 #define XCHAT_DIR ".xchat2" #endif #define DEF_FONT "Monospace 9" @@ -308,12 +306,19 @@ get_xdir_fs (void) { if (!xdir_fs) { - char out[256]; + if (portable_mode ()) + { + xdir_fs = ".\\config"; + } + else + { + char out[256]; - if (!get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\" - "Explorer\\Shell Folders", "AppData", out, sizeof (out))) - return "./config"; - xdir_fs = g_strdup_printf ("%s\\" XCHAT_DIR, out); + if (!get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\" + "Explorer\\Shell Folders", "AppData", out, sizeof (out))) + return "./config"; + xdir_fs = g_strdup_printf ("%s\\" "X-Chat 2", out); + } } return xdir_fs; } @@ -393,7 +398,7 @@ const struct prefs vars[] = { {"dcc_blocksize", P_OFFINT (dcc_blocksize), TYPE_INT}, {"dcc_completed_dir", P_OFFSET (dcc_completed_dir), TYPE_STR}, {"dcc_dir", P_OFFSET (dccdir), TYPE_STR}, - {"dcc_fast_send", P_OFFINT (fastdccsend), TYPE_BOOL}, + /* {"dcc_fast_send", P_OFFINT (fastdccsend), TYPE_BOOL}, */ {"dcc_global_max_get_cps", P_OFFINT (dcc_global_max_get_cps), TYPE_INT}, {"dcc_global_max_send_cps", P_OFFINT (dcc_global_max_send_cps), TYPE_INT}, {"dcc_ip", P_OFFSET (dcc_ip_str), TYPE_STR}, @@ -536,6 +541,7 @@ const struct prefs vars[] = { {"tab_chans", P_OFFINT (tabchannels), TYPE_BOOL}, {"tab_dialogs", P_OFFINT (privmsgtab), TYPE_BOOL}, + {"tab_icons", P_OFFINT (tab_icons), TYPE_BOOL}, {"tab_layout", P_OFFINT (tab_layout), TYPE_INT}, {"tab_new_to_front", P_OFFINT (newtabstofront), TYPE_INT}, {"tab_notices", P_OFFINT (notices_tabs), TYPE_BOOL}, @@ -546,9 +552,14 @@ const struct prefs vars[] = { {"tab_sort", P_OFFINT (tab_sort), TYPE_BOOL}, {"tab_trunc", P_OFFINT (truncchans), TYPE_INT}, {"tab_utils", P_OFFINT (windows_as_tabs), TYPE_BOOL}, + {"tab_xp", P_OFFINT (tab_xp), TYPE_BOOL}, + {"text_auto_copy_text", P_OFFINT (autocopy_text), TYPE_BOOL}, + {"text_auto_copy_stamp", P_OFFINT (autocopy_stamp), TYPE_BOOL}, + {"text_auto_copy_color", P_OFFINT (autocopy_color), TYPE_BOOL}, {"text_background", P_OFFSET (background), TYPE_STR}, {"text_color_nicks", P_OFFINT (colorednicks), TYPE_BOOL}, + {"text_emoticons", P_OFFINT (emoticons), TYPE_BOOL}, {"text_font", P_OFFSET (font_normal), TYPE_STR}, {"text_indent", P_OFFINT (indent_nicks), TYPE_BOOL}, {"text_max_indent", P_OFFINT (max_auto_indent), TYPE_INT}, @@ -561,7 +572,7 @@ const struct prefs vars[] = { {"text_tint_blue", P_OFFINT (tint_blue), TYPE_INT}, {"text_tint_green", P_OFFINT (tint_green), TYPE_INT}, {"text_tint_red", P_OFFINT (tint_red), TYPE_INT}, - {"text_transparent", P_OFFINT (transparent), TYPE_BOOL}, + /* {"text_transparent", P_OFFINT (transparent), TYPE_BOOL}, */ {"text_wordwrap", P_OFFINT (wordwrap), TYPE_BOOL}, {0, 0, 0}, @@ -624,13 +635,14 @@ load_config (void) prefs.indent_nicks = 1; prefs.thin_separator = 1; prefs._tabs_position = 2; /* 2 = left */ - prefs.fastdccsend = 1; + /* prefs.fastdccsend = 1; */ prefs.wordwrap = 1; prefs.autosave = 1; prefs.autodialog = 1; prefs.gui_input_spell = 1; prefs.autoreconnect = 1; prefs.recon_delay = 10; + prefs.autocopy_text = 1; prefs.text_replay = 1; prefs.tabchannels = 1; prefs.tab_layout = 2; /* 0=Tabs 1=Reserved 2=Tree */ @@ -648,6 +660,7 @@ load_config (void) prefs.dialog_height = 256; prefs.gui_join_dialog = 1; prefs.gui_quit_dialog = 1; + prefs.slist_skip = 1; prefs.dcctimeout = 180; prefs.dccstalltimeout = 60; prefs.notify_timeout = 15; diff --git a/src/common/chanopt.c b/src/common/chanopt.c index a4fd8faa..ce37157a 100644 --- a/src/common/chanopt.c +++ b/src/common/chanopt.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include diff --git a/src/common/ctcp.c b/src/common/ctcp.c index 574cda79..a1d70049 100644 --- a/src/common/ctcp.c +++ b/src/common/ctcp.c @@ -18,7 +18,6 @@ #include #include -#include #include #include "xchat.h" @@ -134,7 +133,7 @@ ctcp_handle (session *sess, char *to, char *nick, char *ip, if (!strcasecmp (msg, "VERSION") && !prefs.hidever) { - snprintf (outbuf, sizeof (outbuf), "VERSION xchat "PACKAGE_VERSION" %s", + snprintf (outbuf, sizeof (outbuf), "VERSION XChat-WDK "PACKAGE_VERSION" / %s", get_cpu_str ()); serv->p_nctcp (serv, nick, outbuf); } diff --git a/src/common/dcc.c b/src/common/dcc.c index 8f289342..9375095e 100644 --- a/src/common/dcc.c +++ b/src/common/dcc.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #define WANTSOCKET @@ -57,6 +56,7 @@ #ifdef USE_DCC64 #define BIG_STR_TO_INT(x) strtoull(x,NULL,10) +#define stat _stat64 #else #define BIG_STR_TO_INT(x) strtoul(x,NULL,10) #endif @@ -1983,9 +1983,7 @@ is_same_file (struct DCC *dcc, struct DCC *new_dcc) return TRUE; /* now handle case-insensitive Filesystems: HFS+, FAT */ -#ifdef WIN32 -#warning no win32 implementation - behaviour may be unreliable -#else +#ifndef WIN32 /* this fstat() shouldn't really fail */ if ((dcc->fp == -1 ? stat (dcc->destfile_fs, &st_a) : fstat (dcc->fp, &st_a)) == -1) return FALSE; diff --git a/src/common/dirent.c b/src/common/dirent.c new file mode 100644 index 00000000..a84f1b65 --- /dev/null +++ b/src/common/dirent.c @@ -0,0 +1,199 @@ +/***************************************************************************** + * dirent.h - dirent API for Microsoft Visual Studio + * + * Copyright (C) 2006 Toni Ronkko + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * ``Software''), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL TONI RONKKO BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Dec 15, 2009, John Cunningham + * Added rewinddir member function + * + * Jan 18, 2008, Toni Ronkko + * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string + * between multi-byte and unicode representations. This makes the + * code simpler and also allows the code to be compiled under MingW. Thanks + * to Azriel Fasten for the suggestion. + * + * Mar 4, 2007, Toni Ronkko + * Bug fix: due to the strncpy_s() function this file only compiled in + * Visual Studio 2005. Using the new string functions only when the + * compiler version allows. + * + * Nov 2, 2006, Toni Ronkko + * Major update: removed support for Watcom C, MS-DOS and Turbo C to + * simplify the file, updated the code to compile cleanly on Visual + * Studio 2005 with both unicode and multi-byte character strings, + * removed rewinddir() as it had a bug. + * + * Aug 20, 2006, Toni Ronkko + * Removed all remarks about MSVC 1.0, which is antiqued now. Simplified + * comments by removing SGML tags. + * + * May 14 2002, Toni Ronkko + * Embedded the function definitions directly to the header so that no + * source modules need to be included in the Visual Studio project. Removed + * all the dependencies to other projects so that this very header can be + * used independently. + * + * May 28 1998, Toni Ronkko + * First version. + *****************************************************************************/ + +#include "dirent.h" + +/* Use the new safe string functions introduced in Visual Studio 2005 */ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +# define STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE) +#else +# define STRNCPY(dest,src,size) strncpy((dest),(src),(size)) +#endif + + +/***************************************************************************** + * Open directory stream DIRNAME for read and return a pointer to the + * internal working area that is used to retrieve individual directory + * entries. + */ +DIR *opendir(const char *dirname) +{ + DIR *dirp; + assert (dirname != NULL); + assert (strlen (dirname) < MAX_PATH); + + /* construct new DIR structure */ + dirp = (DIR*) malloc (sizeof (struct DIR)); + if (dirp != NULL) { + char *p; + + /* take directory name... */ + STRNCPY (dirp->patt, dirname, sizeof(dirp->patt)); + dirp->patt[MAX_PATH] = '\0'; + + /* ... and append search pattern to it */ + p = strchr (dirp->patt, '\0'); + if (dirp->patt < p && *(p-1) != '\\' && *(p-1) != ':') { + *p++ = '\\'; + } + *p++ = '*'; + *p = '\0'; + + /* open stream and retrieve first file */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->current.data); + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + /* invalid search pattern? */ + free (dirp); + return NULL; + } + + /* there is an un-processed directory entry in memory now */ + dirp->cached = 1; + } + + return dirp; +} + + +/***************************************************************************** + * Read a directory entry, and return a pointer to a dirent structure + * containing the name of the entry in d_name field. Individual directory + * entries returned by this very function include regular files, + * sub-directories, pseudo-directories "." and "..", but also volume labels, + * hidden files and system files may be returned. + */ +struct dirent *readdir(DIR *dirp) +{ + assert (dirp != NULL); + + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + /* directory stream was opened/rewound incorrectly or ended normally */ + return NULL; + } + + /* get next directory entry */ + if (dirp->cached != 0) { + /* a valid directory entry already in memory */ + dirp->cached = 0; + } else { + /* read next directory entry from disk */ + if (FindNextFileA (dirp->search_handle, &dirp->current.data) == FALSE) { + /* the very last file has been processed or an error occured */ + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + return NULL; + } + } + + /* copy as a multibyte character string */ + STRNCPY ( dirp->current.d_name, + dirp->current.data.cFileName, + sizeof(dirp->current.d_name) ); + dirp->current.d_name[MAX_PATH] = '\0'; + + return &dirp->current; +} + + +/***************************************************************************** + * Close directory stream opened by opendir() function. Close of the + * directory stream invalidates the DIR structure as well as any previously + * read directory entry. + */ +int closedir(DIR *dirp) +{ + assert (dirp != NULL); + + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + } + + /* release directory handle */ + free (dirp); + return 0; +} + + +/***************************************************************************** + * Resets the position of the directory stream to which dirp refers to the + * beginning of the directory. It also causes the directory stream to refer + * to the current state of the corresponding directory, as a call to opendir() + * would have done. If dirp does not refer to a directory stream, the effect + * is undefined. + */ +void rewinddir(DIR* dirp) +{ + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + } + + /* open new search handle and retrieve first file */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->current.data); + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + /* invalid search pattern? */ + free (dirp); + return; + } + + /* there is an un-processed directory entry in memory now */ + dirp->cached = 1; +} diff --git a/src/common/dirent.h b/src/common/dirent.h new file mode 100644 index 00000000..cbb753e6 --- /dev/null +++ b/src/common/dirent.h @@ -0,0 +1,28 @@ +#ifndef DIRENT_H +#define DIRENT_H + +#include +#include +#include + +typedef struct dirent +{ + char d_name[MAX_PATH + 1]; /* current dir entry (multi-byte char string) */ + WIN32_FIND_DATAA data; /* file attributes */ +} dirent; + +typedef struct DIR +{ + dirent current; /* Current directory entry */ + int cached; /* Indicates un-processed entry in memory */ + HANDLE search_handle; /* File search handle */ + char patt[MAX_PATH + 3]; /* search pattern (3 = pattern + "\\*\0") */ +} DIR; + +/* Forward declarations */ +DIR *opendir (const char *dirname); +struct dirent *readdir (DIR *dirp); +int closedir (DIR *dirp); +void rewinddir(DIR* dirp); + +#endif /*DIRENT_H*/ diff --git a/src/common/ignore.c b/src/common/ignore.c index c3544f30..adb61f37 100644 --- a/src/common/ignore.c +++ b/src/common/ignore.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include diff --git a/src/common/inbound.c b/src/common/inbound.c index ec7dd9d0..5cd888c9 100644 --- a/src/common/inbound.c +++ b/src/common/inbound.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #define WANTARPA diff --git a/src/common/inet.h b/src/common/inet.h index b420c9c6..02473fe2 100644 --- a/src/common/inet.h +++ b/src/common/inet.h @@ -24,9 +24,8 @@ #ifdef USE_IPV6 #include #include -#include #else -#include +#include #endif #define set_blocking(sok) { \ diff --git a/src/common/makefile.mak b/src/common/makefile.mak new file mode 100644 index 00000000..424316c0 --- /dev/null +++ b/src/common/makefile.mak @@ -0,0 +1,45 @@ +include "..\makeinc.mak" + +COMMON_OBJECTS = \ +cfgfiles.obj \ +chanopt.obj \ +ctcp.obj \ +dcc.obj \ +dirent.obj \ +history.obj \ +ignore.obj \ +inbound.obj \ +modes.obj \ +network.obj \ +notify.obj \ +outbound.obj \ +plugin.obj \ +plugin-timer.obj \ +proto-irc.obj \ +server.obj \ +servlist.obj \ +ssl.obj \ +text.obj \ +thread.obj \ +tree.obj \ +url.obj \ +userlist.obj \ +util.obj \ +wdkutil.obj \ +xchat.obj + +all: $(COMMON_OBJECTS) xchatcommon.lib dirent.lib + +xchatcommon.lib: $(COMMON_OBJECTS) + lib /nologo /out:xchatcommon.lib $(COMMON_OBJECTS) + +dirent.lib: dirent.obj + lib /nologo /out:dirent.lib dirent.obj + +.c.obj:: + $(CC) $(CFLAGS) $(GLIB) $< + +clean: + @del *.obj + @del xchatcommon.lib + @del dirent.lib diff --git a/src/common/msproxy.c b/src/common/msproxy.c index 9c85394d..8ad37ffc 100644 --- a/src/common/msproxy.c +++ b/src/common/msproxy.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #define WANTSOCKET diff --git a/src/common/network.c b/src/common/network.c index 0c409506..b7d9aa1f 100644 --- a/src/common/network.c +++ b/src/common/network.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include "../../config.h" /* grab USE_IPV6 and LOOKUPD defines */ diff --git a/src/common/notify.c b/src/common/notify.c index 04795849..4aa5ea17 100644 --- a/src/common/notify.c +++ b/src/common/notify.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include "xchat.h" diff --git a/src/common/outbound.c b/src/common/outbound.c index 7c6e5e6a..df8eddbd 100644 --- a/src/common/outbound.c +++ b/src/common/outbound.c @@ -32,7 +32,6 @@ #include #endif -#include #include #include #include diff --git a/src/common/plugin-timer.c b/src/common/plugin-timer.c index f09074a8..2524439d 100644 --- a/src/common/plugin-timer.c +++ b/src/common/plugin-timer.c @@ -1,7 +1,7 @@ #include #include #include -#include "xchat-plugin.h" +#include "../../plugins/xchat-plugin.h" #ifdef WIN32 #define strcasecmp stricmp diff --git a/src/common/plugin.c b/src/common/plugin.c index ada4d3be..b40660a1 100644 --- a/src/common/plugin.c +++ b/src/common/plugin.c @@ -34,7 +34,7 @@ #include "text.h" #define PLUGIN_C typedef struct session xchat_context; -#include "xchat-plugin.h" +#include "../../plugins/xchat-plugin.h" #include "plugin.h" @@ -996,13 +996,16 @@ xchat_get_info (xchat_plugin *ph, const char *id) return XCHATLIBDIR; case 0x14f51cd8: /* version */ - return PACKAGE_VERSION; + return XCHAT_RELEASE; case 0xdd9b1abd: /* xchatdir */ return get_xdir_utf8 (); case 0xe33f6c4a: /* xchatdirfs */ return get_xdir_fs (); + + case 0x3d1e70d7: /* wdk_version */ + return PACKAGE_VERSION; } sess = ph->context; diff --git a/src/common/proto-irc.c b/src/common/proto-irc.c index f1df6ccd..3d45e1b0 100644 --- a/src/common/proto-irc.c +++ b/src/common/proto-irc.c @@ -18,7 +18,6 @@ /* IRC RFC1459(+commonly used extensions) protocol implementation */ -#include #include #include #include diff --git a/src/common/server.c b/src/common/server.c index dd43adff..e72dd24d 100644 --- a/src/common/server.c +++ b/src/common/server.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #include @@ -845,33 +844,6 @@ server_flush_queue (server *serv) fe_set_throttle (serv); } -#ifdef WIN32 - -static int -waitline2 (GIOChannel *source, char *buf, int bufsize) -{ - int i = 0; - int len; - - while (1) - { - if (g_io_channel_read (source, &buf[i], 1, &len) != G_IO_ERROR_NONE) - return -1; - if (buf[i] == '\n' || bufsize == i + 1) - { - buf[i] = 0; - return i; - } - i++; - } -} - -#else - -#define waitline2(source,buf,size) waitline(serv->childread,buf,size,0) - -#endif - /* connect() successed */ static void @@ -1395,12 +1367,7 @@ base64_encode (char *to, char *from, unsigned int len) static int http_read_line (int print_fd, int sok, char *buf, int len) { -#ifdef WIN32 - /* make sure waitline() uses recv() or it'll fail on win32 */ - len = waitline (sok, buf, len, FALSE); -#else len = waitline (sok, buf, len, TRUE); -#endif if (len >= 1) { /* print the message out (send it to the parent process) */ @@ -1524,9 +1491,10 @@ server_child (server * serv) if (!serv->dont_use_proxy) /* blocked in serverlist? */ { if (FALSE) + { ; #ifdef USE_LIBPROXY - else if (prefs.proxy_type == 5) + } else if (prefs.proxy_type == 5) { char **proxy_list; char *url, *proxy; @@ -1795,7 +1763,7 @@ server_connect (server *serv, char *hostname, int port, int no_login) } #endif serv->childpid = pid; - serv->iotag = fe_input_add (serv->childread, FIA_READ, server_read_child, + serv->iotag = fe_input_add (serv->childread, FIA_READ|FIA_FD, server_read_child, serv); } diff --git a/src/common/servlist.c b/src/common/servlist.c index 20a156a8..0f8f8048 100644 --- a/src/common/servlist.c +++ b/src/common/servlist.c @@ -21,7 +21,6 @@ #include #include #include -#include #include "xchat.h" #include diff --git a/src/common/ssl.c b/src/common/ssl.c index a18ad47c..daa7416b 100644 --- a/src/common/ssl.c +++ b/src/common/ssl.c @@ -17,12 +17,12 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ +#include "inet.h" /* make it first to avoid macro redefinitions */ #include /* SSL_() */ #include /* ERR_() */ #include /* asctime() */ #include /* strncpy() */ #include "ssl.h" /* struct cert_info */ -#include "inet.h" #include "../../config.h" /* HAVE_SNPRINTF */ #ifndef HAVE_SNPRINTF diff --git a/src/common/text.c b/src/common/text.c index a2198517..fcde5870 100644 --- a/src/common/text.c +++ b/src/common/text.c @@ -19,13 +19,11 @@ #include #include #include -#include #include #include #include #include #include -#include #include "xchat.h" #include @@ -271,9 +269,6 @@ scrollback_load (session *sess) char *text; time_t stamp; int lines; - char *map, *end_map; - struct stat statbuf; - const char *begin, *eol; if (sess->text_scrollback == SET_DEFAULT) { @@ -293,32 +288,9 @@ scrollback_load (session *sess) if (fh == -1) return; - if (fstat (fh, &statbuf) < 0) - return; - - map = mmap (NULL, statbuf.st_size, PROT_READ, MAP_PRIVATE, fh, 0); - if (map == MAP_FAILED) - return; - - end_map = map + statbuf.st_size; - lines = 0; - begin = map; - while (begin < end_map) + while (waitline (fh, buf, sizeof buf, FALSE) != -1) { - int n_bytes; - - eol = memchr (begin, '\n', end_map - begin); - - if (!eol) - eol = end_map; - - n_bytes = MIN (eol - begin, sizeof (buf) - 1); - - strncpy (buf, begin, n_bytes); - - buf[n_bytes] = 0; - if (buf[0] == 'T') { if (sizeof (time_t) == 4) @@ -334,8 +306,6 @@ scrollback_load (session *sess) } lines++; } - - begin = eol + 1; } sess->scrollwritten = lines; @@ -349,7 +319,6 @@ scrollback_load (session *sess) /*EMIT_SIGNAL (XP_TE_GENMSG, sess, "*", buf, NULL, NULL, NULL, 0);*/ } - munmap (map, statbuf.st_size); close (fh); } diff --git a/src/common/thread.c b/src/common/thread.c new file mode 100644 index 00000000..02b17cfb --- /dev/null +++ b/src/common/thread.c @@ -0,0 +1,33 @@ +#include +#include "thread.h" + +thread * +thread_new (void) +{ + thread *th; + + th = calloc (1, sizeof (*th)); + if (!th) + { + return NULL; + } + + if (_pipe (th->pipe_fd, 4096, _O_BINARY) == -1) + { + free (th); + return NULL; + } + + return th; +} + +int +thread_start (thread *th, void *(*start_routine)(void *), void *arg) +{ + DWORD id; + + CloseHandle (CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE)start_routine, arg, 0, (DWORD *)&id)); + th->threadid = id; + + return 1; +} diff --git a/src/common/thread.h b/src/common/thread.h new file mode 100644 index 00000000..7ca0f937 --- /dev/null +++ b/src/common/thread.h @@ -0,0 +1,10 @@ +#include + +typedef struct +{ + DWORD threadid; + int pipe_fd[2]; +} thread; + +thread *thread_new (void); +int thread_start (thread *th, void *(*start_routine)(void *), void *arg); diff --git a/src/common/util.c b/src/common/util.c index 49517ec4..67168a5f 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -16,11 +16,13 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ +#define WANTSOCKET +#include "inet.h" /* make it first to avoid macro redefinitions */ + #define __APPLE_API_STRICT_CONFORMANCE #define _FILE_OFFSET_BITS 64 #include -#include #include #include #include @@ -35,7 +37,7 @@ #include #endif #include -#include +#include "dirent.h" #include #include "xchat.h" #include "xchatc.h" @@ -44,9 +46,6 @@ #include "util.h" #include "../../config.h" -#define WANTSOCKET -#include "inet.h" - #if defined (USING_FREEBSD) || defined (__APPLE__) #include #endif @@ -54,9 +53,11 @@ #include #endif +#ifndef ENABLE_NLS #ifndef HAVE_SNPRINTF #define snprintf g_snprintf #endif +#endif #ifdef USE_DEBUG @@ -383,6 +384,28 @@ waitline (int sok, char *buf, int bufsize, int use_recv) } } +#ifdef WIN32 +/* waitline2 using win32 file descriptor and glib instead of _read. win32 can't _read() sok! */ +int +waitline2 (GIOChannel *source, char *buf, int bufsize) +{ + int i = 0; + int len; + + while (1) + { + if (g_io_channel_read (source, &buf[i], 1, &len) != G_IO_ERROR_NONE) + return -1; + if (buf[i] == '\n' || bufsize == i + 1) + { + buf[i] = 0; + return i; + } + i++; + } +} +#endif + /* checks for "~" in a file and expands */ char * @@ -628,26 +651,79 @@ char * get_cpu_str (void) { static char verbuf[64]; - OSVERSIONINFO osvi; - SYSTEM_INFO si; + static char winver[20]; + OSVERSIONINFOEX osvi; double mhz; - osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); + osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX); GetVersionEx (&osvi); - GetSystemInfo (&si); + + switch (osvi.dwMajorVersion) + { + case 5: + switch (osvi.dwMinorVersion) + { + case 1: + strcpy (winver, "XP"); + break; + case 2: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcpy (winver, "XP x64 Edition"); + } + else + { + if (GetSystemMetrics(SM_SERVERR2) == 0) + { + strcpy (winver, "Server 2003"); + } + else + { + strcpy (winver, "Server 2003 R2"); + } + } + break; + } + break; + case 6: + switch (osvi.dwMinorVersion) + { + case 0: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcpy (winver, "Vista"); + } + else + { + strcpy (winver, "Server 2008"); + } + break; + case 1: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcpy (winver, "7"); + } + else + { + strcpy (winver, "Server 2008 R2"); + } + break; + } + break; + } mhz = get_mhz (); if (mhz) { double cpuspeed = ( mhz > 1000 ) ? mhz / 1000 : mhz; const char *cpuspeedstr = ( mhz > 1000 ) ? "GHz" : "MHz"; - sprintf (verbuf, "Windows %ld.%ld [i%d86/%.2f%s]", - osvi.dwMajorVersion, osvi.dwMinorVersion, si.wProcessorLevel, - cpuspeed, cpuspeedstr); - } else - sprintf (verbuf, "Windows %ld.%ld [i%d86]", - osvi.dwMajorVersion, osvi.dwMinorVersion, si.wProcessorLevel); - + sprintf (verbuf, "Windows %s [%.2f%s]", winver, cpuspeed, cpuspeedstr); + } + else + { + sprintf (verbuf, "Windows %s", winver); + } + return verbuf; } diff --git a/src/common/util.h b/src/common/util.h index fce45def..cd9e1fff 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -43,6 +43,11 @@ int strip_color2 (const char *src, int len, char *dst, int flags); int strip_hidden_attribute (char *src, char *dst); char *errorstring (int err); int waitline (int sok, char *buf, int bufsize, int); +#ifdef WIN32 +int waitline2 (GIOChannel *source, char *buf, int bufsize); +#else +#define waitline2(source,buf,size) waitline(serv->childread,buf,size,0) +#endif unsigned long make_ping_time (void); void move_file_utf8 (char *src_dir, char *dst_dir, char *fname, int dccpermissions); int mkdir_utf8 (char *dir); diff --git a/src/common/wdkutil.c b/src/common/wdkutil.c new file mode 100644 index 00000000..5bf4f0c0 --- /dev/null +++ b/src/common/wdkutil.c @@ -0,0 +1,27 @@ +#include + +int +portable_mode () +{ + if ((_access( "portable-mode", 0 )) != -1) + { + return 1; + } + else + { + return 0; + } +} + +int +xtray_mode () +{ + if ((_access( "plugins/xtray.dll", 0 )) != -1) + { + return 1; + } + else + { + return 0; + } +} diff --git a/src/common/wdkutil.h b/src/common/wdkutil.h new file mode 100644 index 00000000..2e4c693a --- /dev/null +++ b/src/common/wdkutil.h @@ -0,0 +1,2 @@ +int portable_mode (); +int xtray_mode (); diff --git a/src/common/xchat.c b/src/common/xchat.c index afac9a0e..ba2f5d41 100644 --- a/src/common/xchat.c +++ b/src/common/xchat.c @@ -22,7 +22,6 @@ #include #include #include -#include #define WANTSOCKET #include "inet.h" @@ -38,7 +37,7 @@ #include "cfgfiles.h" #include "chanopt.h" #include "ignore.h" -#include "xchat-plugin.h" +#include "../../plugins/xchat-plugin.h" #include "plugin.h" #include "plugin-timer.h" #include "notify.h" @@ -590,6 +589,7 @@ static char defaultconf_commands[] = "NAME DMSG\n" "CMD msg =%2 &3\n\n"\ "NAME EXIT\n" "CMD quit\n\n"\ "NAME GREP\n" "CMD lastlog -r &2\n\n"\ + "NAME IGNALL\n" "CMD ignore %2!*@* ALL\n\n"\ "NAME J\n" "CMD join &2\n\n"\ "NAME KILL\n" "CMD quote KILL %2 :&3\n\n"\ "NAME LEAVE\n" "CMD part &2\n\n"\ diff --git a/src/common/xchat.h b/src/common/xchat.h index db7a6c4b..2f695599 100644 --- a/src/common/xchat.h +++ b/src/common/xchat.h @@ -12,12 +12,14 @@ #include "history.h" +#ifndef ENABLE_NLS #ifndef HAVE_SNPRINTF #define snprintf g_snprintf #endif #ifndef HAVE_VSNPRINTF -#define vsnprintf g_vsnprintf +#define vsnprintf _vsnprintf +#endif #endif #ifdef USE_DEBUG @@ -58,7 +60,7 @@ void *xchat_realloc (char *old, int len, char *file, int line); #ifdef WIN32 /* for win32 */ #define OFLAGS O_BINARY -#define sleep(t) _sleep(t*1000) +#define sleep(t) Sleep(t*1000) #include #define F_OK 0 #define X_OK 1 @@ -209,6 +211,9 @@ struct xchatprefs unsigned int wallops; unsigned int skipmotd; unsigned int autorejoin; + unsigned int autocopy_text; + unsigned int autocopy_stamp; + unsigned int autocopy_color; unsigned int colorednicks; unsigned int chanmodebuttons; unsigned int userlistbuttons; @@ -297,6 +302,9 @@ struct xchatprefs unsigned int confmode; unsigned int utf8_locale; unsigned int identd; + unsigned int emoticons; + unsigned int tab_icons; + unsigned int tab_xp; unsigned int ctcp_number_limit; /*flood */ unsigned int ctcp_time_limit; /*seconds of floods */ diff --git a/src/fe-gtk/about.c b/src/fe-gtk/about.c index 60700aec..453d405c 100644 --- a/src/fe-gtk/about.c +++ b/src/fe-gtk/about.c @@ -39,6 +39,7 @@ #include "../common/xchat.h" #include "../common/util.h" +#include "../common/wdkutil.h" #include "palette.h" #include "pixmaps.h" #include "gtkutil.h" @@ -87,6 +88,19 @@ menu_about (GtkWidget * wid, gpointer sess) char buf[512]; const char *locale = NULL; extern GtkWindow *parent_window; /* maingui.c */ + SYSTEM_INFO si; + unsigned short int cpu_arch; + + GetSystemInfo (&si); + + if (si.wProcessorArchitecture == 9) + { + cpu_arch = 64; + } + else + { + cpu_arch = 86; + } if (about) { @@ -95,7 +109,7 @@ menu_about (GtkWidget * wid, gpointer sess) } about = gtk_dialog_new (); - gtk_window_set_position (GTK_WINDOW (about), GTK_WIN_POS_CENTER); + gtk_window_set_position (GTK_WINDOW (about), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_resizable (GTK_WINDOW (about), FALSE); gtk_window_set_title (GTK_WINDOW (about), _("About "DISPLAY_NAME)); if (parent_window) @@ -114,35 +128,42 @@ menu_about (GtkWidget * wid, gpointer sess) g_get_charset (&locale); (snprintf) (buf, sizeof (buf), ""DISPLAY_NAME" "PACKAGE_VERSION"\n\n" - "%s\n\n" #ifdef WIN32 - /* leave this message to avoid time wasting bug reports! */ - "This version is unofficial and comes with no support.\n\n" -#endif - "%s\n" + "XChat Release: "XCHAT_RELEASE"\n\n" + "OS: %s\n" "Charset: %s " -#ifdef WIN32 "GTK+: %i.%i.%i\n" + "Compiled: "__DATE__"\n" + "Portable Mode: %s\n" + "Build Type: x%d\n\n" + "This version is unofficial and comes with no support.\n" + "\302\251 1998-2010 Peter \305\275elezn\303\275 <zed@xchat.org>" + /* "\nhttp://code.google.com/p/xchat-wdk/" this is broken in gtk ATM */ + "", + get_cpu_str (), + locale, + gtk_major_version, + gtk_minor_version, + gtk_micro_version, + (portable_mode () ? "Yes" : "No"), + cpu_arch #else + "%s\n\n" + "%s\n" + "Charset: %s " "Renderer: %s\n" -#endif "Compiled: "__DATE__"\n\n" "\302\251 1998-2010 Peter \305\275elezn\303\275 <zed@xchat.org>", - _("A multiplatform IRC Client"), - get_cpu_str(), - locale, -#ifdef WIN32 - gtk_major_version, - gtk_minor_version, - gtk_micro_version -#else + _("A multiplatform IRC Client"), + get_cpu_str (), + locale, #ifdef USE_XFT - "Xft" + "Xft" #else - "Pango" + "Pango" #endif #endif - ); + ); gtk_label_set_markup (GTK_LABEL (label), buf); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); diff --git a/src/fe-gtk/banlist.c b/src/fe-gtk/banlist.c index afaa7eb4..f587a0c0 100644 --- a/src/fe-gtk/banlist.c +++ b/src/fe-gtk/banlist.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include diff --git a/src/fe-gtk/chanlist.c b/src/fe-gtk/chanlist.c index 2f65b518..6203083b 100644 --- a/src/fe-gtk/chanlist.c +++ b/src/fe-gtk/chanlist.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include diff --git a/src/fe-gtk/chanview-tabs.c b/src/fe-gtk/chanview-tabs.c index 8e3da8e6..f99e61f1 100644 --- a/src/fe-gtk/chanview-tabs.c +++ b/src/fe-gtk/chanview-tabs.c @@ -144,8 +144,8 @@ tab_scroll_left_up_clicked (GtkWidget *widget, chanview *cv) for (i = adj->value; ((i > new_value) && (tab_left_is_moving)); i -= 0.1) { gtk_adjustment_set_value (adj, i); - while (g_main_pending ()) - g_main_iteration (TRUE); + while (g_main_context_pending (NULL)) + g_main_context_iteration (NULL, TRUE); } gtk_adjustment_set_value (adj, new_value); @@ -191,8 +191,8 @@ tab_scroll_right_down_clicked (GtkWidget *widget, chanview *cv) for (i = adj->value; ((i < new_value) && (tab_right_is_moving)); i += 0.1) { gtk_adjustment_set_value (adj, i); - while (g_main_pending ()) - g_main_iteration (TRUE); + while (g_main_context_pending (NULL)) + g_main_context_iteration (NULL, TRUE); } gtk_adjustment_set_value (adj, new_value); diff --git a/src/fe-gtk/editlist.c b/src/fe-gtk/editlist.c index 5af67e32..fd2d6810 100644 --- a/src/fe-gtk/editlist.c +++ b/src/fe-gtk/editlist.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c index 5efcaeec..3f403f94 100644 --- a/src/fe-gtk/fe-gtk.c +++ b/src/fe-gtk/fe-gtk.c @@ -19,7 +19,6 @@ #include #include #include -#include #include "fe-gtk.h" @@ -32,6 +31,8 @@ #include #include +#include + #include "../common/xchat.h" #include "../common/fe.h" #include "../common/util.h" @@ -39,6 +40,7 @@ #include "../common/cfgfiles.h" #include "../common/xchatc.h" #include "../common/plugin.h" +#include "../common/server.h" #include "gtkutil.h" #include "maingui.h" #include "pixmaps.h" @@ -136,11 +138,26 @@ static const GOptionEntry gopt_entries[] = {NULL} }; +#ifdef WIN32 +static void +create_msg_dialog (gchar *title, gchar *message) +{ + GtkWidget *dialog; + dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, message); + gtk_window_set_title (GTK_WINDOW (dialog), title); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); +} +#endif + int fe_args (int argc, char *argv[]) { GError *error = NULL; GOptionContext *context; +#ifdef WIN32 + char *buffer[2048]; +#endif #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); @@ -149,22 +166,67 @@ fe_args (int argc, char *argv[]) #endif context = g_option_context_new (NULL); +#ifdef WIN32 + g_option_context_set_help_enabled (context, FALSE); /* disable stdout help as stdout is unavailable for subsystem:windows */ +#endif g_option_context_add_main_entries (context, gopt_entries, GETTEXT_PACKAGE); g_option_context_add_group (context, gtk_get_option_group (FALSE)); g_option_context_parse (context, &argc, &argv, &error); +#ifdef WIN32 + if (error) /* workaround for argv not being available when using subsystem:windows */ + { + if (error->message) /* the error message contains argv so search for patterns in that */ + { + if (strstr (error->message, "--help-all") != NULL) + { + if (snprintf (buffer, 2048, g_option_context_get_help (context, FALSE, NULL))) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Long Help", buffer); + } + return 0; + } else if (strstr (error->message, "--help") != NULL || strstr (error->message, "-?") != NULL) + { + if (snprintf (buffer, 2048, g_option_context_get_help (context, TRUE, NULL))) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Help", buffer); + } + return 0; + } else + { + if (snprintf (buffer, 2048, "%s\n", error->message)) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Error", buffer); + } + return 1; + } + } + } +#else if (error) { if (error->message) printf ("%s\n", error->message); return 1; } +#endif g_option_context_free (context); if (arg_show_version) { +#ifdef WIN32 + if (snprintf (buffer, 2048, DISPLAY_NAME" "PACKAGE_VERSION"\n")) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Version Information", buffer); + } +#else printf (PACKAGE_TARNAME" "PACKAGE_VERSION"\n"); +#endif return 0; } @@ -177,7 +239,18 @@ fe_args (int argc, char *argv[]) if (sl) { *sl = 0; - printf ("%s\\plugins\n", exe); + if (snprintf (buffer, 2048, "%s\\plugins\n", exe)) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Plugin Auto-load Directory", buffer); + } + } else + { + if (snprintf (buffer, 2048, ".\\plugins\n")) + { + gtk_init (&argc, &argv); + create_msg_dialog ("Plugin Auto-load Directory", buffer); + } } #else printf ("%s\n", XCHATLIBDIR"/plugins"); @@ -187,7 +260,15 @@ fe_args (int argc, char *argv[]) if (arg_show_config) { +#ifdef WIN32 + if (snprintf (buffer, 2048, "%s\n", get_xdir_fs ())) + { + gtk_init (&argc, &argv); + create_msg_dialog ("User Config Directory", buffer); + } +#else printf ("%s\n", get_xdir_fs ()); +#endif return 0; } @@ -330,7 +411,7 @@ log_handler (const gchar *log_domain, { session *sess; - if (getenv ("XCHAT_WARNING_IGNORE")) + /* if (getenv ("XCHAT_WARNING_IGNORE")) */ return; sess = find_dialog (serv_list->data, "(warnings)"); diff --git a/src/fe-gtk/fe-gtk.h b/src/fe-gtk/fe-gtk.h index 12516259..4183f559 100644 --- a/src/fe-gtk/fe-gtk.h +++ b/src/fe-gtk/fe-gtk.h @@ -4,7 +4,7 @@ /* If you're compiling this for Windows, your release is un-official * and not condoned. Please don't use the XChat name. Make up your * own name! */ -#define DISPLAY_NAME "XChat-Unofficial" +#define DISPLAY_NAME "XChat-WDK" #else #define DISPLAY_NAME "XChat" #endif diff --git a/src/fe-gtk/fkeys.c b/src/fe-gtk/fkeys.c index 014b5cc3..a09c8608 100644 --- a/src/fe-gtk/fkeys.c +++ b/src/fe-gtk/fkeys.c @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include diff --git a/src/fe-gtk/gtkutil.c b/src/fe-gtk/gtkutil.c index 63ab491b..522b44df 100644 --- a/src/fe-gtk/gtkutil.c +++ b/src/fe-gtk/gtkutil.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include "fe-gtk.h" @@ -51,6 +50,10 @@ #include "../common/util.h" #include "gtkutil.h" #include "pixmaps.h" +#ifdef WIN32 +#include "../common/fe.h" +#include "../common/thread.h" +#endif /* gtkutil.c, just some gtk wrappers */ @@ -63,6 +66,13 @@ struct file_req void *userdata; filereqcallback callback; int flags; /* FRF_* flags */ + +#ifdef WIN32 + int multiple; + thread *th; + char *title; /* native locale */ + char *filter; +#endif }; static char last_dir[256] = ""; @@ -164,6 +174,190 @@ gtkutil_file_req_response (GtkWidget *dialog, gint res, struct file_req *freq) } } +#ifdef WIN32 +static int +win32_openfile (char *file_buf, int file_buf_len, char *title_text, char *filter, + int multiple) +{ + OPENFILENAME o; + + memset (&o, 0, sizeof (o)); + + o.lStructSize = sizeof (o); + o.lpstrFilter = filter; + o.lpstrFile = file_buf; + o.nMaxFile = file_buf_len; + o.lpstrTitle = title_text; + o.Flags = 0x02000000 | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | + OFN_NOCHANGEDIR | OFN_EXPLORER | OFN_LONGNAMES | OFN_NONETWORKBUTTON; + if (multiple) + { + o.Flags |= OFN_ALLOWMULTISELECT; + } + + return GetOpenFileName (&o); +} + +static int +win32_savefile (char *file_buf, int file_buf_len, char *title_text, char *filter, + int multiple) +{ + /* we need the filter to get the default filename. it is from fe-gtk.c (fe_confirm); + * but that filter is actually the whole filename, so apply an empty filter and all good. + * in win32_thread2 we copy the filter ( = the filename) after the last dir into our + * LPTSTR file buffer to make it actually work. the docs for this amazingly retard api: + * + * http://msdn.microsoft.com/en-us/library/ms646839%28VS.85%29.aspx + */ + + OPENFILENAME o; + + memset (&o, 0, sizeof (o)); + + o.lStructSize = sizeof (o); + o.lpstrFilter = "All files\0*.*\0\0"; + o.lpstrFile = file_buf; + o.nMaxFile = file_buf_len; + o.lpstrTitle = title_text; + o.Flags = 0x02000000 | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | + OFN_NOCHANGEDIR | OFN_EXPLORER | OFN_LONGNAMES | OFN_NONETWORKBUTTON; + if (multiple) + { + o.Flags |= OFN_ALLOWMULTISELECT; + } + + return GetSaveFileName (&o); +} + +static void * +win32_thread (struct file_req *freq) +{ + char buf[1024 + 32]; + char file[1024]; + + memset (file, 0, sizeof (file)); + safe_strcpy (file, last_dir, sizeof (file)); + + if (win32_openfile (file, sizeof (file), freq->title, freq->filter, freq->multiple)) + { + if (freq->multiple) + { + char *f = file; + + if (f[strlen (f) + 1] == 0) /* only selected one file */ + { + snprintf (buf, sizeof (buf), "1\n%s\n", file); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + } else + { + f += strlen (f) + 1; /* skip first, it's only the dir */ + while (f[0]) + { + snprintf (buf, sizeof (buf), "1\n%s\\%s\n", /*dir!*/file, f); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + f += strlen (f) + 1; + } + } + + } else + { + snprintf (buf, sizeof (buf), "1\n%s\n", file); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + } + } + + write (freq->th->pipe_fd[1], "0\n", 2); + Sleep (2000); + + return NULL; +} + +static void * +win32_thread2 (struct file_req *freq) +{ + char buf[1024 + 32]; + char file[1024]; + + memset (file, 0, sizeof (file)); + safe_strcpy (file, last_dir, sizeof (file)); + safe_strcpy (file, freq->filter, sizeof (file)); + + if (win32_savefile (file, sizeof (file), freq->title, NULL, freq->multiple)) + { + if (freq->multiple) + { + char *f = file; + + if (f[strlen (f) + 1] == 0) /* only selected one file */ + { + snprintf (buf, sizeof (buf), "1\n%s\n", file); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + } else + { + f += strlen (f) + 1; /* skip first, it's only the dir */ + while (f[0]) + { + snprintf (buf, sizeof (buf), "1\n%s\\%s\n", /*dir!*/file, f); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + f += strlen (f) + 1; + } + } + + } else + { + snprintf (buf, sizeof (buf), "1\n%s\n", file); + write (freq->th->pipe_fd[1], buf, strlen (buf)); + } + } + + write (freq->th->pipe_fd[1], "0\n", 2); + Sleep (2000); + + return NULL; +} + +static gboolean +win32_close_pipe (int fd) +{ + close (fd); + return 0; +} + +static gboolean +win32_read_thread (GIOChannel *source, GIOCondition cond, struct file_req *freq) +{ + char buf[512]; + char *file; + + waitline2 (source, buf, sizeof buf); + + switch (buf[0]) + { + case '0': /* filedialog has closed */ + freq->callback (freq->userdata, NULL); + break; + + case '1': /* got a filename! */ + waitline2 (source, buf, sizeof buf); + file = g_filename_to_utf8 (buf, -1, 0, 0, 0); + freq->callback (freq->userdata, file); + g_free (file); + return TRUE; + } + + /* it doesn't work to close them here, because of the weird + way giowin32 works. We must _return_ before closing them */ + g_timeout_add(3000, (GSourceFunc)win32_close_pipe, freq->th->pipe_fd[0]); + g_timeout_add(2000, (GSourceFunc)win32_close_pipe, freq->th->pipe_fd[1]); + + g_free (freq->title); + free (freq->th); + free (freq); + + return FALSE; +} +#endif + void gtkutil_file_req (const char *title, void *callback, void *userdata, char *filter, int flags) @@ -172,6 +366,58 @@ gtkutil_file_req (const char *title, void *callback, void *userdata, char *filte GtkWidget *dialog; extern char *get_xdir_fs (void); +#ifdef WIN32 + if (!(flags & FRF_WRITE)) + { + freq = malloc (sizeof (struct file_req)); + freq->th = thread_new (); + freq->flags = 0; + freq->multiple = (flags & FRF_MULTIPLE); + freq->callback = callback; + freq->userdata = userdata; + freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0); + if (!filter) + { + freq->filter = "All files\0*.*\0" + "Executables\0*.exe\0" + "ZIP files\0*.zip\0\0"; + } + else + { + freq->filter = filter; + } + + thread_start (freq->th, win32_thread, freq); + fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq); + + return; + + } + + else { + freq = malloc (sizeof (struct file_req)); + freq->th = thread_new (); + freq->flags = 0; + freq->multiple = (flags & FRF_MULTIPLE); + freq->callback = callback; + freq->userdata = userdata; + freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0); + if (!filter) + { + freq->filter = "All files\0*.*\0\0"; + } + else + { + freq->filter = filter; + } + + thread_start (freq->th, win32_thread2, freq); + fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq); + + return; + } +#endif + if (flags & FRF_WRITE) { dialog = gtk_file_chooser_dialog_new (title, NULL, diff --git a/src/fe-gtk/joind.c b/src/fe-gtk/joind.c index ee5c56d1..6cd812cf 100644 --- a/src/fe-gtk/joind.c +++ b/src/fe-gtk/joind.c @@ -9,7 +9,6 @@ #include #include -#include #include #include diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index ef269f95..27d47731 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -53,6 +53,7 @@ #include "../common/plugin.h" #include "../common/modes.h" #include "../common/url.h" +#include "../common/wdkutil.h" #include "fe-gtk.h" #include "banlist.h" #include "gtkutil.h" @@ -214,60 +215,10 @@ mg_create_tab_colors (void) away_list = mg_attr_list_create (&colors[COL_AWAY], FALSE); } -#ifdef WIN32 -#define WINVER 0x0501 /* needed for vc6? */ -#include -#include - -/* Flash the taskbar button on Windows when there's a highlight event. */ - -static void -flash_window (GtkWidget *win) -{ - FLASHWINFO fi; - static HMODULE user = NULL; - static BOOL (*flash) (PFLASHWINFO) = NULL; - - if (!user) - { - user = GetModuleHandleA ("USER32"); - if (!user) - return; /* this should never fail */ - } - - if (!flash) - { - flash = (void *)GetProcAddress (user, "FlashWindowEx"); - if (!flash) - return; /* this fails on NT4.0 and Win95 */ - } - - fi.cbSize = sizeof (fi); - fi.hwnd = GDK_WINDOW_HWND (win->window); - fi.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG; - fi.uCount = 0; - fi.dwTimeout = 500; - flash (&fi); - /*FlashWindowEx (&fi);*/ -} -#else - -#ifdef USE_XLIB -#include - static void set_window_urgency (GtkWidget *win, gboolean set) { - XWMHints *hints; - - hints = XGetWMHints(GDK_WINDOW_XDISPLAY(win->window), GDK_WINDOW_XWINDOW(win->window)); - if (set) - hints->flags |= XUrgencyHint; - else - hints->flags &= ~XUrgencyHint; - XSetWMHints(GDK_WINDOW_XDISPLAY(win->window), - GDK_WINDOW_XWINDOW(win->window), hints); - XFree(hints); + gtk_window_set_urgency_hint (GTK_WINDOW (win), set); } static void @@ -281,18 +232,14 @@ unflash_window (GtkWidget *win) { set_window_urgency (win, FALSE); } -#endif -#endif /* flash the taskbar button */ void fe_flash_window (session *sess) { -#if defined(WIN32) || defined(USE_XLIB) if (fe_gui_info (sess, 0) != 1) /* only do it if not focused */ flash_window (sess->gui->window); -#endif } /* set a tab plain, red, light-red, or blue */ @@ -1334,7 +1281,7 @@ mg_open_quit_dialog (gboolean minimize_button) gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); - if (minimize_button) + if (minimize_button && !xtray_mode ()) { button = gtk_button_new_with_mnemonic (_("_Minimize to Tray")); gtk_widget_show (button); @@ -2972,11 +2919,7 @@ mg_tabwin_focus_cb (GtkWindow * win, GdkEventFocus *event, gpointer userdata) gtk_xtext_check_marker_visibility (GTK_XTEXT (current_sess->gui->xtext)); plugin_emit_dummy_print (current_sess, "Focus Window"); } -#ifndef WIN32 -#ifdef USE_XLIB unflash_window (GTK_WIDGET (win)); -#endif -#endif return FALSE; } @@ -2987,11 +2930,7 @@ mg_topwin_focus_cb (GtkWindow * win, GdkEventFocus *event, session *sess) if (!sess->server->server_session) sess->server->server_session = sess; gtk_xtext_check_marker_visibility(GTK_XTEXT (current_sess->gui->xtext)); -#ifndef WIN32 -#ifdef USE_XLIB unflash_window (GTK_WIDGET (win)); -#endif -#endif plugin_emit_dummy_print (sess, "Focus Window"); return FALSE; } diff --git a/src/fe-gtk/makefile.mak b/src/fe-gtk/makefile.mak new file mode 100644 index 00000000..f210181a --- /dev/null +++ b/src/fe-gtk/makefile.mak @@ -0,0 +1,60 @@ +include "..\makeinc.mak" + +FEGTK_OBJECTS = \ +about.obj \ +ascii.obj \ +banlist.obj \ +chanlist.obj \ +chanview.obj \ +custom-list.obj \ +dccgui.obj \ +editlist.obj \ +fe-gtk.obj \ +fkeys.obj \ +gtkutil.obj \ +ignoregui.obj \ +joind.obj \ +maingui.obj \ +menu.obj \ +notifygui.obj \ +palette.obj \ +pixmaps.obj \ +plugingui.obj \ +plugin-tray.obj \ +rawlog.obj \ +search.obj \ +servlistgui.obj \ +setup.obj \ +sexy-spell-entry.obj \ +textgui.obj \ +urlgrab.obj \ +userlistgui.obj \ +xtext.obj + +!ifdef X64 +MACHINE_FLAG = /MACHINE:X64 +!else +MACHINE_FLAG = /MACHINE:X86 +!endif + +COMLIB = ..\common\xchatcommon.lib +PROG = xchat.exe + +all: $(PROG) + +.c.obj:: + $(CC) $(CFLAGS) -I..\..\plugins $(GLIB) $(GTK) $< + +$(PROG): $(FEGTK_OBJECTS) $(COMLIB) xchat-icon.obj + $(LINK) /out:$(PROG) /entry:mainCRTStartup $(LDFLAGS) $(LIBS) $(FEGTK_OBJECTS) $(COMLIB) xchat-icon.obj + +xchat.res: xchat.rc ../../xchat.ico + rc /nologo /r xchat.rc + +xchat-icon.obj: xchat.res + cvtres /nologo $(MACHINE_FLAG) /OUT:xchat-icon.obj xchat.res + +clean: + @del *.obj + @del $(PROG) + @del xchat.res diff --git a/src/fe-gtk/menu.c b/src/fe-gtk/menu.c index d04be222..559211c2 100644 --- a/src/fe-gtk/menu.c +++ b/src/fe-gtk/menu.c @@ -20,7 +20,6 @@ #include #include #include -#include #ifdef WIN32 #include @@ -1203,6 +1202,12 @@ menu_resetmarker (GtkWidget * wid, gpointer none) gtk_xtext_reset_marker_pos (GTK_XTEXT (current_sess->gui->xtext)); } +static void +menu_copy_selection (GtkWidget * wid, gpointer none) +{ + gtk_xtext_copy_selection (GTK_XTEXT (current_sess->gui->xtext)); +} + static void menu_flushbuffer (GtkWidget * wid, gpointer none) { @@ -1645,6 +1650,7 @@ static struct mymenu mymenu[] = { {N_("URL Grabber..."), url_opengui, 0, M_MENUITEM, 0, 0, 1}, {0, 0, 0, M_SEP, 0, 0, 0}, {N_("Reset Marker Line"), menu_resetmarker, 0, M_MENUITEM, 0, 0, 1, GDK_m}, + {N_("_Copy Selection"), menu_copy_selection, 0, M_MENUITEM, 0, 0, 1, GDK_C}, {N_("C_lear Text"), menu_flushbuffer, GTK_STOCK_CLEAR, M_MENUSTOCK, 0, 0, 1, GDK_l}, #define SEARCH_OFFSET 67 {N_("Search Text..."), menu_search, GTK_STOCK_FIND, M_MENUSTOCK, 0, 0, 1, GDK_f}, @@ -2188,7 +2194,9 @@ normalitem: mymenu[i].key, mymenu[i].key == GDK_F1 ? 0 : mymenu[i].key == GDK_w ? close_mask : - GDK_CONTROL_MASK, + (g_ascii_isupper (mymenu[i].key)) ? + GDK_SHIFT_MASK | GDK_CONTROL_MASK : + GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); if (mymenu[i].callback) g_signal_connect (G_OBJECT (item), "activate", diff --git a/src/fe-gtk/palette.c b/src/fe-gtk/palette.c index ebae92ff..8d2ee062 100644 --- a/src/fe-gtk/palette.c +++ b/src/fe-gtk/palette.c @@ -18,7 +18,6 @@ #include #include -#include #include #include #include diff --git a/src/fe-gtk/plugin-tray.c b/src/fe-gtk/plugin-tray.c index 8603abf4..eeed34fa 100644 --- a/src/fe-gtk/plugin-tray.c +++ b/src/fe-gtk/plugin-tray.c @@ -1,14 +1,14 @@ /* Copyright (C) 2006-2007 Peter Zelezny. */ #include -#include -#include "../common/xchat-plugin.h" +#include "../../plugins/xchat-plugin.h" #include "../common/xchat.h" #include "../common/xchatc.h" #include "../common/inbound.h" #include "../common/server.h" #include "../common/fe.h" #include "../common/util.h" +#include "../common/wdkutil.h" #include "fe-gtk.h" #include "pixmaps.h" #include "maingui.h" @@ -297,10 +297,10 @@ tray_stop_flash (void) nets = tray_count_networks (); chans = tray_count_channels (); if (nets) - tray_set_tipf (_("XChat: Connected to %u networks and %u channels"), + tray_set_tipf (_("XChat-WDK: Connected to %u networks and %u channels"), nets, chans); else - tray_set_tipf ("XChat: %s", _("Not connected.")); + tray_set_tipf ("XChat-WDK: %s", _("Not connected.")); } if (custom_icon1) @@ -450,7 +450,7 @@ tray_toggle_visibility (gboolean force_hide) /* ph may have an invalid context now */ xchat_set_context (ph, xchat_find_context (ph, NULL, NULL)); - win = (GtkWindow *)xchat_get_info (ph, "win_ptr"); + win = xchat_get_info (ph, "gtkwin_ptr"); tray_stop_flash (); tray_reset_counts (); @@ -585,11 +585,12 @@ tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata) /*gtk_menu_set_screen (GTK_MENU (menu), gtk_widget_get_screen (widget));*/ if (tray_get_window_status () == WS_HIDDEN) - tray_make_item (menu, _("_Restore"), tray_menu_restore_cb, NULL); + tray_make_item (menu, _("_Restore Window"), tray_menu_restore_cb, NULL); else - tray_make_item (menu, _("_Hide"), tray_menu_restore_cb, NULL); + tray_make_item (menu, _("_Hide Window"), tray_menu_restore_cb, NULL); tray_make_item (menu, NULL, tray_menu_quit_cb, NULL); +#if 0 submenu = mg_submenu (menu, _("_Blink on")); blink_item (&prefs.input_tray_chans, submenu, _("Channel Message")); blink_item (&prefs.input_tray_priv, submenu, _("Private Message")); @@ -606,6 +607,7 @@ tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata) gtk_widget_set_sensitive (item, FALSE); tray_make_item (menu, NULL, tray_menu_quit_cb, NULL); +#endif mg_create_icon_item (_("_Quit"), GTK_STOCK_QUIT, menu, tray_menu_quit_cb, NULL); menu_add_plugin_items (menu, "\x5$TRAY", NULL); @@ -631,8 +633,8 @@ tray_init (void) sticon = gtk_status_icon_new_from_pixbuf (ICON_NORMAL); if (!sticon) return; - g_signal_connect (G_OBJECT (sticon), "popup-menu", - G_CALLBACK (tray_menu_cb), sticon); + /* g_signal_connect (G_OBJECT (sticon), "popup-menu", + G_CALLBACK (tray_menu_cb), sticon); */ g_signal_connect (G_OBJECT (sticon), "activate", G_CALLBACK (tray_menu_restore_cb), NULL); } @@ -650,15 +652,15 @@ tray_hilight_cb (char *word[], void *userdata) /* FIXME: hides any previous private messages */ tray_hilight_count++; if (tray_hilight_count == 1) - tray_set_tipf (_("XChat: Highlighted message from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: Highlighted message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); else - tray_set_tipf (_("XChat: %u highlighted messages, latest from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: %u highlighted messages, latest from: %s (%s)"), tray_hilight_count, word[1], xchat_get_info (ph, "channel")); } if (prefs.input_balloon_hilight) - tray_set_balloonf (word[2], _("XChat: Highlighted message from: %s (%s)"), + tray_set_balloonf (word[2], _("XChat-WDK: Highlighted message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); return XCHAT_EAT_NONE; @@ -676,14 +678,14 @@ tray_message_cb (char *word[], void *userdata) tray_pub_count++; if (tray_pub_count == 1) - tray_set_tipf (_("XChat: New public message from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: New public message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); else - tray_set_tipf (_("XChat: %u new public messages."), tray_pub_count); + tray_set_tipf (_("XChat-WDK: %u new public messages."), tray_pub_count); } if (prefs.input_balloon_chans) - tray_set_balloonf (word[2], _("XChat: New public message from: %s (%s)"), + tray_set_balloonf (word[2], _("XChat-WDK: New public message from: %s (%s)"), word[1], xchat_get_info (ph, "channel")); return XCHAT_EAT_NONE; @@ -705,14 +707,14 @@ tray_priv (char *from, char *text) tray_priv_count++; if (tray_priv_count == 1) - tray_set_tipf (_("XChat: Private message from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: Private message from: %s (%s)"), from, network); else - tray_set_tipf (_("XChat: %u private messages, latest from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: %u private messages, latest from: %s (%s)"), tray_priv_count, from, network); if (prefs.input_balloon_priv) - tray_set_balloonf (text, _("XChat: Private message from: %s (%s)"), + tray_set_balloonf (text, _("XChat-WDK: Private message from: %s (%s)"), from, network); } @@ -758,15 +760,15 @@ tray_dcc_cb (char *word[], void *userdata) tray_file_count++; if (tray_file_count == 1) - tray_set_tipf (_("XChat: File offer from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: File offer from: %s (%s)"), word[1], network); else - tray_set_tipf (_("XChat: %u file offers, latest from: %s (%s)"), + tray_set_tipf (_("XChat-WDK: %u file offers, latest from: %s (%s)"), tray_file_count, word[1], network); } if (prefs.input_balloon_priv) - tray_set_balloonf ("", _("XChat: File offer from: %s (%s)"), + tray_set_balloonf ("", _("XChat-WDK: File offer from: %s (%s)"), word[1], network); return XCHAT_EAT_NONE; @@ -802,7 +804,7 @@ tray_apply_setup (void) } else { - if (prefs.gui_tray) + if (prefs.gui_tray && !xtray_mode ()) tray_init (); } } @@ -834,7 +836,7 @@ tray_plugin_init (xchat_plugin *plugin_handle, char **plugin_name, xchat_hook_print (ph, "Focus Window", -1, tray_focus_cb, NULL); - if (prefs.gui_tray) + if (prefs.gui_tray && !xtray_mode ()) tray_init (); return 1; /* return 1 for success */ diff --git a/src/fe-gtk/plugingui.c b/src/fe-gtk/plugingui.c index de59e649..0edfc62b 100644 --- a/src/fe-gtk/plugingui.c +++ b/src/fe-gtk/plugingui.c @@ -35,7 +35,7 @@ #include "../common/xchat.h" #define PLUGIN_C typedef struct session xchat_context; -#include "../common/xchat-plugin.h" +#include "../../plugins/xchat-plugin.h" #include "../common/plugin.h" #include "../common/util.h" #include "../common/outbound.h" @@ -147,7 +147,9 @@ void plugingui_load (void) { gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb, - current_sess, NULL, FRF_ADDFOLDER); + current_sess, + "Plugins and Scripts\0*.dll;*.lua;*.pl;*.py;*.tcl\0" + "All files\0*.*\0\0", 0); } static void diff --git a/src/fe-gtk/rawlog.c b/src/fe-gtk/rawlog.c index 56ca0510..a3e1a63b 100644 --- a/src/fe-gtk/rawlog.c +++ b/src/fe-gtk/rawlog.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include "fe-gtk.h" diff --git a/src/fe-gtk/search.c b/src/fe-gtk/search.c index d62e79c7..bbde9c5c 100644 --- a/src/fe-gtk/search.c +++ b/src/fe-gtk/search.c @@ -153,7 +153,7 @@ search_open (session * sess) _("_Find")); g_object_set_data (G_OBJECT (wid), "e", entry); - g_signal_connect (G_OBJECT (win), "key-press-event", G_CALLBACK (search_key_cb), win); + g_signal_connect (G_OBJECT (win), "key_press_event", G_CALLBACK (search_key_cb), win); gtk_widget_show (win); } diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c index 517e0944..bfa49946 100644 --- a/src/fe-gtk/setup.c +++ b/src/fe-gtk/setup.c @@ -109,19 +109,32 @@ static const setting textbox_settings[] = N_("Give each person on IRC a different color"),0,0}, {ST_TOGGLR, N_("Indent nick names"), P_OFFINTNL(indent_nicks), N_("Make nick names right-justified"),0,0}, - {ST_TOGGLE, N_("Transparent background"), P_OFFINTNL(transparent),0,0,0}, - {ST_TOGGLR, N_("Show marker line"), P_OFFINTNL(show_marker), + /* {ST_TOGGLE, N_("Transparent background"), P_OFFINTNL(transparent),0,0,0}, */ + {ST_TOGGLE, N_("Show marker line"), P_OFFINTNL(show_marker), N_("Insert a red line after the last read text."),0,0}, - {ST_HEADER, N_("Transparency Settings"), 0,0,0}, + /* {ST_HEADER, N_("Transparency Settings"), 0,0,0}, {ST_HSCALE, N_("Red:"), P_OFFINTNL(tint_red),0,0,0}, {ST_HSCALE, N_("Green:"), P_OFFINTNL(tint_green),0,0,0}, - {ST_HSCALE, N_("Blue:"), P_OFFINTNL(tint_blue),0,0,0}, + {ST_HSCALE, N_("Blue:"), P_OFFINTNL(tint_blue),0,0,0}, */ {ST_HEADER, N_("Time Stamps"),0,0,0}, {ST_TOGGLE, N_("Enable time stamps"), P_OFFINTNL(timestamp),0,0,2}, {ST_ENTRY, N_("Time stamp format:"), P_OFFSETNL(stamp_format), N_("See strftime manpage for details."),0,sizeof prefs.stamp_format}, + {ST_HEADER, N_("Auto-Copy Behavior"),0,0,0}, + {ST_TOGGLE, N_("Automatically copy selected text"), P_OFFINTNL(autocopy_text), + N_("Copy selected text to clipboard when left mouse button is released. " + "Otherwise, CONTROL-SHIFT-C will copy the " + "selected text to the clipboard."), 0, 0}, + {ST_TOGGLE, N_("Automatically include time stamps"), P_OFFINTNL(autocopy_stamp), + N_("Automatically include time stamps in copied lines of text. Otherwise, " + "include time stamps if the SHIFT key is held down while selecting."), 0, 0}, + {ST_TOGGLE, N_("Automatically include color information"), P_OFFINTNL(autocopy_color), + N_("Automatically include color information in copied lines of text. " + "Otherwise, include color information if the CONTROL key is held down " + "while selecting."), 0, 0}, + {ST_END, 0, 0, 0, 0, 0} }; @@ -348,6 +361,24 @@ static const setting alert_settings[] = {ST_END, 0, 0, 0, 0, 0} }; +static const setting alert_settings_xtray[] = +{ + {ST_HEADER, N_("Alerts"),0,0,0}, + + {ST_ALERTHEAD}, + {ST_3OGGLE, N_("Blink task bar on:"), 0, 0, (void *)taskbarlist, 0}, + {ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0}, + + {ST_HEADER, N_("Highlighted Messages"),0,0,0}, + {ST_LABEL, N_("Highlighted messages are ones where your nickname is mentioned, but also:"), 0, 0, 0, 1}, + + {ST_ENTRY, N_("Extra words to highlight:"), P_OFFSETNL(irc_extra_hilight), 0, 0, sizeof prefs.irc_extra_hilight}, + {ST_ENTRY, N_("Nick names not to highlight:"), P_OFFSETNL(irc_no_hilight), 0, 0, sizeof prefs.irc_no_hilight}, + {ST_ENTRY, N_("Nick names to always highlight:"), P_OFFSETNL(irc_nick_hilight), 0, 0, sizeof prefs.irc_nick_hilight}, + {ST_LABEL, N_("Separate multiple words with commas.\nWildcards are accepted.")}, + {ST_END, 0, 0, 0, 0, 0} +}; + static const setting general_settings[] = { {ST_HEADER, N_("Default Messages"),0,0,0}, @@ -363,7 +394,6 @@ static const setting general_settings[] = {ST_END, 0, 0, 0, 0, 0} }; -#if 0 static const setting advanced_settings[] = { {ST_HEADER, N_("Advanced Settings"),0,0,0}, @@ -378,7 +408,6 @@ static const setting advanced_settings[] = {ST_END, 0, 0, 0, 0, 0} }; -#endif static const setting logging_settings[] = { @@ -1711,7 +1740,7 @@ static const char *const cata[] = N_("General"), N_("Logging"), N_("Sound"), -/* N_("Advanced"),*/ + N_("Advanced"), NULL, N_("Network"), N_("Network setup"), @@ -1732,10 +1761,19 @@ setup_create_pages (GtkWidget *box) setup_add_page (cata[3], book, setup_create_page (userlist_settings)); setup_add_page (cata[4], book, setup_create_page (tabs_settings)); setup_add_page (cata[5], book, setup_create_color_page ()); - setup_add_page (cata[8], book, setup_create_page (alert_settings)); + + if (xtray_mode ()) + { + setup_add_page (cata[8], book, setup_create_page (alert_settings_xtray)); + } else + { + setup_add_page (cata[8], book, setup_create_page (alert_settings)); + } + setup_add_page (cata[9], book, setup_create_page (general_settings)); setup_add_page (cata[10], book, setup_create_page (logging_settings)); setup_add_page (cata[11], book, setup_create_sound_page ()); + setup_add_page (cata[12], book, setup_create_page (advanced_settings)); setup_add_page (cata[14], book, setup_create_page (network_settings)); setup_add_page (cata[15], book, setup_create_page (filexfer_settings)); diff --git a/src/fe-gtk/sexy-spell-entry.c b/src/fe-gtk/sexy-spell-entry.c index d67ffe2d..d2c6a8a8 100644 --- a/src/fe-gtk/sexy-spell-entry.c +++ b/src/fe-gtk/sexy-spell-entry.c @@ -31,6 +31,8 @@ /*#include "gtkspell-iso-codes.h" #include "sexy-marshal.h"*/ +#include "typedef.h" + /* * Bunch of poop to make enchant into a runtime dependency rather than a * compile-time dependency. This makes it so I don't have to hear the @@ -134,12 +136,10 @@ initialize_enchant () GModule *enchant; gpointer funcptr; - enchant = g_module_open("libenchant", 0); + enchant = g_module_open("libenchant.dll", 0); if (enchant == NULL) { - enchant = g_module_open("libenchant.so.1", 0); - if (enchant == NULL) - return; + return; } have_enchant = TRUE; diff --git a/src/fe-gtk/typedef.h b/src/fe-gtk/typedef.h new file mode 100644 index 00000000..b20612ea --- /dev/null +++ b/src/fe-gtk/typedef.h @@ -0,0 +1,11 @@ +#ifndef SSIZE_T_DEFINED +#ifdef ssize_t +#undef ssize_t +#endif +#ifdef _WIN64 +typedef __int64 ssize_t; +#else +typedef _W64 int ssize_t; +#endif +#define SSIZE_T_DEFINED +#endif diff --git a/src/fe-gtk/xchat.rc b/src/fe-gtk/xchat.rc new file mode 100644 index 00000000..18c209c1 --- /dev/null +++ b/src/fe-gtk/xchat.rc @@ -0,0 +1,22 @@ +#include +#include "../../config.h" + +XC_ICON ICON "../../xchat.ico" + +VS_VERSION_INFO VERSIONINFO + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + + VALUE "FileDescription", "XChat-WDK IRC Client" + VALUE "ProductName", "XChat-WDK" + VALUE "ProductVersion", PACKAGE_VERSION + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0x04B0 + END + END diff --git a/src/fe-gtk/xtext.c b/src/fe-gtk/xtext.c index fa9803c7..47d7e3ee 100644 --- a/src/fe-gtk/xtext.c +++ b/src/fe-gtk/xtext.c @@ -42,7 +42,6 @@ #include #include #include -#include #include #include #include @@ -67,6 +66,8 @@ #endif #include "xtext.h" +#include "../common/xchat.h" +#include "../common/xchatc.h" #define charlen(str) g_utf8_skip[*(guchar *)(str)] @@ -1941,7 +1942,7 @@ gtk_xtext_check_mark_stamp (GtkXText *xtext, GdkModifierType mask) { gboolean redraw = FALSE; - if ((mask & GDK_SHIFT_MASK)) + if (mask & GDK_SHIFT_MASK || prefs.autocopy_stamp) { if (!xtext->mark_stamp) { @@ -2106,7 +2107,16 @@ gtk_xtext_set_clip_owner (GtkWidget * xtext, GdkEventButton * event) free (str); } - gtk_selection_owner_set (xtext, GDK_SELECTION_PRIMARY, event->time); + if (event) + { + gtk_selection_owner_set (xtext, GDK_SELECTION_PRIMARY, event->time); + } +} + +void +gtk_xtext_copy_selection (GtkXText *xtext) +{ + gtk_xtext_set_clip_owner (xtext, NULL); } static void @@ -2182,9 +2192,12 @@ gtk_xtext_button_release (GtkWidget * widget, GdkEventButton * event) if (xtext->buffer->last_ent_start) { xtext->color_paste = FALSE; - if (event->state & GDK_CONTROL_MASK) + if (event->state & GDK_CONTROL_MASK || prefs.autocopy_color) xtext->color_paste = TRUE; - gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + if (prefs.autocopy_text) + { + gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + } } if (xtext->select_start_x == event->x && @@ -2249,7 +2262,10 @@ gtk_xtext_button_press (GtkWidget * widget, GdkEventButton * event) ent->mark_end = offset + len; gtk_xtext_selection_render (xtext, ent, offset, ent, offset + len); xtext->word_or_line_select = TRUE; - gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + if (prefs.autocopy_text) + { + gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + } } return FALSE; @@ -2265,7 +2281,10 @@ gtk_xtext_button_press (GtkWidget * widget, GdkEventButton * event) ent->mark_end = ent->str_len; gtk_xtext_selection_render (xtext, ent, 0, ent, ent->str_len); xtext->word_or_line_select = TRUE; - gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + if (prefs.autocopy_text) + { + gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event); + } } return FALSE; @@ -3836,7 +3855,7 @@ gtk_xtext_load_trans (GtkXText * xtext) PaintDesktop (hdc); ReleaseDC (hwnd, hdc); - gdk_window_get_size (GTK_WIDGET (xtext)->window, &width, &height); + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height); img = gdk_image_get (GTK_WIDGET (xtext)->window, 0, 0, width+128, height); xtext->pixmap = win32_tint (xtext, img, img->width, img->height); diff --git a/src/fe-gtk/xtext.h b/src/fe-gtk/xtext.h index a37ddc32..90fa1bca 100644 --- a/src/fe-gtk/xtext.h +++ b/src/fe-gtk/xtext.h @@ -270,6 +270,7 @@ void gtk_xtext_set_wordwrap (GtkXText *xtext, gboolean word_wrap); xtext_buffer *gtk_xtext_buffer_new (GtkXText *xtext); void gtk_xtext_buffer_free (xtext_buffer *buf); void gtk_xtext_buffer_show (GtkXText *xtext, xtext_buffer *buf, int render); +void gtk_xtext_copy_selection (GtkXText *xtext); GType gtk_xtext_get_type (void); #endif diff --git a/src/fe-text/fe-text.c b/src/fe-text/fe-text.c index 2bc2e649..f3c1ff05 100644 --- a/src/fe-text/fe-text.c +++ b/src/fe-text/fe-text.c @@ -22,60 +22,51 @@ #ifdef HAVE_STRINGS_H #include #endif +#ifdef WIN32 +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#else +#include #include +#endif #include -#include #include +#include #include "../common/xchat.h" #include "../common/xchatc.h" +#include "../common/cfgfiles.h" #include "../common/outbound.h" #include "../common/util.h" #include "../common/fe.h" #include "fe-text.h" -static GSList *tmr_list; /* timer list */ -static int tmr_list_count; -static GSList *se_list; /* socket event list */ -static int se_list_count; static int done = FALSE; /* finished ? */ static void send_command (char *cmd) { - handle_multiline (sess_list->data, cmd, TRUE, FALSE); + handle_multiline (current_tab, cmd, TRUE, FALSE); } -static void -read_stdin (void) +static gboolean +handle_line (GIOChannel *channel, GIOCondition cond, gpointer data) { - int len, i = 0; - static int pos = 0; - static char inbuf[1024]; - char tmpbuf[512]; - - len = read (STDIN_FILENO, tmpbuf, sizeof tmpbuf - 1); - - while (i < len) - { - switch (tmpbuf[i]) - { - case '\r': - break; - case '\n': - inbuf[pos] = 0; - pos = 0; - send_command (inbuf); - break; + gchar *str_return; + gsize length, terminator_pos; + GError *error = NULL; + GIOStatus result; - default: - inbuf[pos] = tmpbuf[i]; - if (pos < (sizeof inbuf - 2)) - pos++; - } - i++; + result = g_io_channel_read_line(channel, &str_return, &length, &terminator_pos, &error); + if (result == G_IO_STATUS_ERROR) { + return FALSE; + } + else { + send_command(str_return); + g_free(str_return); + return TRUE; } } @@ -87,12 +78,13 @@ fe_new_window (struct session *sess, int focus) char buf[512]; sess->gui = malloc (4); + current_sess = sess; if (!sess->server->front_session) sess->server->front_session = sess; if (!sess->server->server_session) sess->server->server_session = sess; - if (!current_tab) + if (!current_tab || focus) current_tab = sess; if (done_intro) @@ -101,7 +93,7 @@ fe_new_window (struct session *sess, int focus) snprintf (buf, sizeof (buf), "\n" - " \017xchat \00310"PACKAGE_VERSION"\n" + " \017XChat-Text \00310"PACKAGE_VERSION"\n" " \017Running on \00310%s \017glib \00310%d.%d.%d\n" " \017This binary compiled \00310"__DATE__"\017\n", get_cpu_str(), @@ -133,15 +125,21 @@ get_stamp_str (time_t tim, char *dest, int size) } static int -timecat (char *buf) +timecat (char *buf, time_t stamp) { char stampbuf[64]; - get_stamp_str (time (0), stampbuf, sizeof (stampbuf)); + /* set the stamp to the current time if not provided */ + if (!stamp) + stamp = time (0); + + get_stamp_str (stamp, stampbuf, sizeof (stampbuf)); strcat (buf, stampbuf); return strlen (stampbuf); } +/* Windows doesn't handle ANSI codes in cmd.exe, need to not display them */ +#ifndef WIN32 /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ static const short colconv[] = { 0, 7, 4, 2, 1, 3, 5, 11, 13, 12, 6, 16, 14, 15, 10, 7 }; @@ -157,7 +155,7 @@ fe_print_text (struct session *sess, char *text, time_t stamp) if (prefs.timestamp) { newtext[0] = 0; - j += timecat (newtext); + j += timecat (newtext, stamp); } while (i < len) { @@ -165,7 +163,7 @@ fe_print_text (struct session *sess, char *text, time_t stamp) { dotime = FALSE; newtext[j] = 0; - j += timecat (newtext); + j += timecat (newtext, stamp); } switch (text[i]) { @@ -179,8 +177,7 @@ fe_print_text (struct session *sess, char *text, time_t stamp) j++; newtext[j] = 'm'; j++; - i--; - goto jump2; + goto endloop; } k = 0; comma = FALSE; @@ -226,13 +223,16 @@ fe_print_text (struct session *sess, char *text, time_t stamp) comma = TRUE; break; default: - goto jump; + goto endloop; } k = 0; } i++; } break; + /* don't actually want hidden text */ + case '\010': /* hidden */ + break; case '\026': /* REVERSE */ if (reverse) { @@ -296,120 +296,246 @@ fe_print_text (struct session *sess, char *text, time_t stamp) newtext[j] = text[i]; j++; } - jump2: i++; - jump: - i += 0; + endloop: + ; } + + /* make sure last character is a new line */ + if (text[i-1] != '\n') + newtext[j++] = '\n'; + newtext[j] = 0; write (STDOUT_FILENO, newtext, j); free (newtext); } - +#else +/* The win32 version for cmd.exe */ void -fe_timeout_remove (int tag) +fe_print_text (struct session *sess, char *text, time_t stamp) { - timerevent *te; - GSList *list; + int dotime = FALSE; + int comma, k, i = 0, j = 0, len = strlen (text); + + unsigned char *newtext = malloc (len + 1024); - list = tmr_list; - while (list) + if (prefs.timestamp) { - te = (timerevent *) list->data; - if (te->tag == tag) + newtext[0] = 0; + j += timecat (newtext, stamp); + } + while (i < len) + { + if (dotime && text[i] != 0) { - tmr_list = g_slist_remove (tmr_list, te); - free (te); - return; + dotime = FALSE; + newtext[j] = 0; + j += timecat (newtext, stamp); } - list = list->next; + switch (text[i]) + { + case 3: + i++; + if (!isdigit (text[i])) + { + goto endloop; + } + k = 0; + comma = FALSE; + while (i < len) + { + if (text[i] >= '0' && text[i] <= '9' && k < 2) + { + k++; + } else + { + switch (text[i]) + { + case ',': + comma = TRUE; + break; + default: + goto endloop; + } + k = 0; + + } + i++; + } + break; + /* don't actually want hidden text */ + case '\010': /* hidden */ + case '\026': /* REVERSE */ + case '\037': /* underline */ + case '\002': /* bold */ + case '\017': /* reset all */ + break; + case '\007': + if (!prefs.filterbeep) + { + newtext[j] = text[i]; + j++; + } + break; + case '\t': + newtext[j] = ' '; + j++; + break; + case '\n': + newtext[j] = '\r'; + j++; + if (prefs.timestamp) + dotime = TRUE; + default: + newtext[j] = text[i]; + j++; + } + i++; + endloop: + ; } + + /* make sure last character is a new line */ + if (text[i-1] != '\n') + newtext[j++] = '\n'; + + newtext[j] = 0; + write (STDOUT_FILENO, newtext, j); + free (newtext); +} +#endif + +void +fe_timeout_remove (int tag) +{ + g_source_remove (tag); } int fe_timeout_add (int interval, void *callback, void *userdata) { - struct timeval now; - timerevent *te = malloc (sizeof (timerevent)); - - tmr_list_count++; /* this overflows at 2.2Billion, who cares!! */ - - te->tag = tmr_list_count; - te->interval = interval; - te->callback = callback; - te->userdata = userdata; - - gettimeofday (&now, NULL); - te->next_call = now.tv_sec * 1000 + (now.tv_usec / 1000) + te->interval; - - tmr_list = g_slist_prepend (tmr_list, te); - - return te->tag; + return g_timeout_add (interval, (GSourceFunc) callback, userdata); } void fe_input_remove (int tag) { - socketevent *se; - GSList *list; - - list = se_list; - while (list) - { - se = (socketevent *) list->data; - if (se->tag == tag) - { - se_list = g_slist_remove (se_list, se); - free (se); - return; - } - list = list->next; - } + g_source_remove (tag); } int fe_input_add (int sok, int flags, void *func, void *data) { - socketevent *se = malloc (sizeof (socketevent)); + int tag, type = 0; + GIOChannel *channel; - se_list_count++; /* this overflows at 2.2Billion, who cares!! */ + channel = g_io_channel_unix_new (sok); - se->tag = se_list_count; - se->sok = sok; - se->rread = flags & FIA_READ; - se->wwrite = flags & FIA_WRITE; - se->eexcept = flags & FIA_EX; - se->callback = func; - se->userdata = data; - se_list = g_slist_prepend (se_list, se); + if (flags & FIA_READ) + type |= G_IO_IN | G_IO_HUP | G_IO_ERR; + if (flags & FIA_WRITE) + type |= G_IO_OUT | G_IO_ERR; + if (flags & FIA_EX) + type |= G_IO_PRI; - return se->tag; + tag = g_io_add_watch (channel, type, (GIOFunc) func, data); + g_io_channel_unref (channel); + + return tag; } +/* === command-line parameter parsing : requires glib 2.6 === */ + +static char *arg_cfgdir = NULL; +static gint arg_show_autoload = 0; +static gint arg_show_config = 0; +static gint arg_show_version = 0; + +static const GOptionEntry gopt_entries[] = +{ + {"no-auto", 'a', 0, G_OPTION_ARG_NONE, &arg_dont_autoconnect, N_("Don't auto connect to servers"), NULL}, + {"cfgdir", 'd', 0, G_OPTION_ARG_STRING, &arg_cfgdir, N_("Use a different config directory"), "PATH"}, + {"no-plugins", 'n', 0, G_OPTION_ARG_NONE, &arg_skip_plugins, N_("Don't auto load any plugins"), NULL}, + {"plugindir", 'p', 0, G_OPTION_ARG_NONE, &arg_show_autoload, N_("Show plugin auto-load directory"), NULL}, + {"configdir", 'u', 0, G_OPTION_ARG_NONE, &arg_show_config, N_("Show user config directory"), NULL}, + {"url", 0, 0, G_OPTION_ARG_STRING, &arg_url, N_("Open an irc://server:port/channel URL"), "URL"}, + {"version", 'v', 0, G_OPTION_ARG_NONE, &arg_show_version, N_("Show version information"), NULL}, + {NULL} +}; + int fe_args (int argc, char *argv[]) { - if (argc > 1) + GError *error = NULL; + GOptionContext *context; + +#ifdef ENABLE_NLS + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + + context = g_option_context_new (NULL); + g_option_context_add_main_entries (context, gopt_entries, GETTEXT_PACKAGE); + g_option_context_parse (context, &argc, &argv, &error); + + if (error) + { + if (error->message) + printf ("%s\n", error->message); + return 1; + } + + g_option_context_free (context); + + if (arg_show_version) + { + printf (PACKAGE_TARNAME" "PACKAGE_VERSION"\n"); + return 0; + } + + if (arg_show_autoload) { - if (!strcasecmp (argv[1], "--version") || !strcasecmp (argv[1], "-v")) +#ifdef WIN32 + /* see the chdir() below */ + char *sl, *exe = strdup (argv[0]); + sl = strrchr (exe, '\\'); + if (sl) { - puts (PACKAGE_VERSION); - return 0; + *sl = 0; + printf ("%s\\plugins\n", exe); } +#else + printf ("%s\n", XCHATLIBDIR"/plugins"); +#endif + return 0; } + + if (arg_show_config) + { + printf ("%s\n", get_xdir_fs ()); + return 0; + } + + if (arg_cfgdir) /* we want filesystem encoding */ + { + xdir_fs = strdup (arg_cfgdir); + if (xdir_fs[strlen (xdir_fs) - 1] == '/') + xdir_fs[strlen (xdir_fs) - 1] = 0; + g_free (arg_cfgdir); + } + return -1; } void fe_init (void) { - se_list = 0; - se_list_count = 0; - tmr_list = 0; - tmr_list_count = 0; + /* the following should be default generated, not enfoced in binary */ prefs.autosave = 0; prefs.use_server_tab = 0; prefs.autodialog = 0; + /* except for these, there is no lag meter, there is no server list */ prefs.lagometer = 0; prefs.slist_skip = 1; } @@ -417,129 +543,29 @@ fe_init (void) void fe_main (void) { - struct timeval timeout, now; - socketevent *se; - timerevent *te; - fd_set rd, wd, ex; - GSList *list; - guint64 shortest, delay; + GIOChannel *keyboard_input; - if (!sess_list) - new_ircwindow (NULL, NULL, SESS_SERVER, 0); + main_loop = g_main_loop_new(NULL, FALSE); -#ifdef ENABLE_NLS - bindtextdomain (GETTEXT_PACKAGE, PREFIX"/share/locale"); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); + /* Keyboard Entry Setup */ +#ifdef G_OS_WIN32 + keyboard_input = g_io_channel_win32_new_fd(STDIN_FILENO); +#else + keyboard_input = g_io_channel_unix_new(STDIN_FILENO); #endif - while (!done) - { - FD_ZERO (&rd); - FD_ZERO (&wd); - FD_ZERO (&ex); - - list = se_list; - while (list) - { - se = (socketevent *) list->data; - if (se->rread) - FD_SET (se->sok, &rd); - if (se->wwrite) - FD_SET (se->sok, &wd); - if (se->eexcept) - FD_SET (se->sok, &ex); - list = list->next; - } - - FD_SET (STDIN_FILENO, &rd); /* for reading keyboard */ - - /* find the shortest timeout event */ - shortest = 0; - list = tmr_list; - while (list) - { - te = (timerevent *) list->data; - if (te->next_call < shortest || shortest == 0) - shortest = te->next_call; - list = list->next; - } - gettimeofday (&now, NULL); - delay = shortest - ((now.tv_sec * 1000) + (now.tv_usec / 1000)); - timeout.tv_sec = delay / 1000; - timeout.tv_usec = (delay % 1000) * 1000; - - select (FD_SETSIZE, &rd, &wd, &ex, &timeout); - - if (FD_ISSET (STDIN_FILENO, &rd)) - read_stdin (); - - /* set all checked flags to false */ - list = se_list; - while (list) - { - se = (socketevent *) list->data; - se->checked = 0; - list = list->next; - } - - /* check all the socket callbacks */ - list = se_list; - while (list) - { - se = (socketevent *) list->data; - se->checked = 1; - if (se->rread && FD_ISSET (se->sok, &rd)) - { - se->callback (NULL, 1, se->userdata); - } else if (se->wwrite && FD_ISSET (se->sok, &wd)) - { - se->callback (NULL, 2, se->userdata); - } else if (se->eexcept && FD_ISSET (se->sok, &ex)) - { - se->callback (NULL, 4, se->userdata); - } - list = se_list; - if (list) - { - se = (socketevent *) list->data; - while (se->checked) - { - list = list->next; - if (!list) - break; - se = (socketevent *) list->data; - } - } - } + g_io_add_watch(keyboard_input, G_IO_IN, handle_line, NULL); - /* now check our list of timeout events, some might need to be called! */ - gettimeofday (&now, NULL); - list = tmr_list; - while (list) - { - te = (timerevent *) list->data; - list = list->next; - if (now.tv_sec * 1000 + (now.tv_usec / 1000) >= te->next_call) - { - /* if the callback returns 0, it must be removed */ - if (te->callback (te->userdata) == 0) - { - fe_timeout_remove (te->tag); - } else - { - te->next_call = now.tv_sec * 1000 + (now.tv_usec / 1000) + te->interval; - } - } - } + g_main_loop_run(main_loop); - } + return; } void fe_exit (void) { done = TRUE; + g_main_loop_quit(main_loop); } void @@ -793,10 +819,23 @@ fe_get_int (char *prompt, int def, void *callback, void *ud) void fe_idle_add (void *func, void *data) { + g_idle_add (func, data); } void fe_ctrl_gui (session *sess, fe_gui_action action, int arg) { + /* only one action type handled for now, but could add more */ + switch (action) + { + /* gui focus is really the only case xchat-text needs to wory about */ + case FE_GUI_FOCUS: + current_sess = sess; + current_tab = sess; + sess->server->front_session = sess; + break; + default: + break; + } } int fe_gui_info (session *sess, int info_type) diff --git a/src/fe-text/fe-text.h b/src/fe-text/fe-text.h index b8afa284..e4f6f6c0 100644 --- a/src/fe-text/fe-text.h +++ b/src/fe-text/fe-text.h @@ -1,29 +1 @@ - -typedef int (*socket_callback) (void *source, int condition, void *user_data); -typedef int (*timer_callback) (void *user_data); - -struct socketeventRec -{ - socket_callback callback; - void *userdata; - int sok; - int tag; - int rread:1; - int wwrite:1; - int eexcept:1; - int checked:1; -}; - -typedef struct socketeventRec socketevent; - - -struct timerRec -{ - timer_callback callback; - void *userdata; - int interval; - int tag; - guint64 next_call; /* miliseconds */ -}; - -typedef struct timerRec timerevent; +GMainLoop *main_loop; diff --git a/src/fe-text/makefile.mak b/src/fe-text/makefile.mak new file mode 100644 index 00000000..59d277d3 --- /dev/null +++ b/src/fe-text/makefile.mak @@ -0,0 +1,20 @@ +include "..\makeinc.mak" + +COMLIB = ..\common\xchatcommon.lib +PROG = xchat-text.exe + +!ifdef X64 +PLATOBJ = msvcrt_win2003.obj +!else +PLATOBJ = msvcrt_winxp.obj +!endif + +all: fe-text.obj + link /out:$(PROG) /subsystem:console /nologo $(PLATOBJ) $(LIBS) $(COMLIB) fe-text.obj + +fe-text.obj: fe-text.c makefile.mak + cl $(CFLAGS) $(GLIB) fe-text.c + +clean: + @del *.obj + @del $(PROG) diff --git a/src/makefile.mak b/src/makefile.mak new file mode 100644 index 00000000..670774ed --- /dev/null +++ b/src/makefile.mak @@ -0,0 +1,17 @@ +all: + @cd common + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\fe-gtk + @-$(MAKE) /nologo /s /f makefile.mak $@ + @cd ..\fe-text + @-$(MAKE) /nologo /s /f makefile.mak $@ + +clean: + @del common\*.obj + @del common\xchatcommon.lib + @del fe-gtk\*.obj + @del fe-gtk\xchat.exe + @del fe-gtk\xchat.res + @del fe-text\*.obj + @del fe-text\xchat-text.exe + @del pixmaps\*.h diff --git a/src/makeinc.skel.mak b/src/makeinc.skel.mak new file mode 100644 index 00000000..17a16642 --- /dev/null +++ b/src/makeinc.skel.mak @@ -0,0 +1,44 @@ +CC = cl +LINK = link +CFLAGS = $(CFLAGS) /Ox /c /MD /MP2 /W0 /nologo +CFLAGS = $(CFLAGS) /DWIN32 /DG_DISABLE_CAST_CHECKS /DG_DISABLE_DEPRECATED /DGDK_PIXBUF_DISABLE_DEPRECATED /DGDK_DISABLE_DEPRECATED /DUSE_IPV6 /DHAVE_STRTOULL /Dstrtoull=_strtoui64 /Dstrcasecmp=stricmp /Dstrncasecmp=strnicmp /DUSE_OPENSSL +CFLAGS = $(CFLAGS) /I$(DEV)\include +CPPFLAGS = /c /MD /W0 /nologo /DWIN32 +LDFLAGS = /subsystem:windows /nologo +LIBS = $(LIBS) gdi32.lib shell32.lib user32.lib advapi32.lib imm32.lib ole32.lib winmm.lib ws2_32.lib wininet.lib comdlg32.lib libeay32.lib ssleay32.lib + +GLIB = /I$(DEV)\include\glib-2.0 /I$(DEV)\lib\glib-2.0\include +GTK = /I$(DEV)\include\gtk-2.0 /I$(DEV)\lib\gtk-2.0\include /I$(DEV)\include\atk-1.0 /I$(DEV)\include\cairo /I$(DEV)\include\pango-1.0 /I$(DEV)\include\gdk-pixbuf-2.0 +LIBS = $(LIBS) /libpath:$(DEV)\lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.lib gio-2.0.lib gdk_pixbuf-2.0.lib pangowin32-1.0.lib pangocairo-1.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib intl.lib + +LUALIB = lua51 +LUAOUTPUT = xclua.dll + +PERL510LIB = perl510 +PERL510OUTPUT = xcperl-510.dll +PERL512LIB = perl512 +PERL512OUTPUT = xcperl-512.dll + +PYTHONLIB = python27 +PYTHONOUTPUT = xcpython.dll + +TCLLIB = tcl85 +TCLOUTPUT = xctcl.dll + +!ifdef X64 +CFLAGS = $(CFLAGS) /favor:AMD64 /D_WIN64 +CPPFLAGS = $(CPPFLAGS) /favor:AMD64 /D_WIN64 +LDFLAGS = $(LDFLAGS) msvcrt_win2003.obj + +PERL510PATH = c:\mozilla-build\perl-5.10-x64\lib\CORE +PERL512PATH = c:\mozilla-build\perl-5.12-x64\lib\CORE +PYTHONPATH = c:\mozilla-build\python-2.7-x64 +TCLPATH = c:\mozilla-build\tcl-8.5-x64 +!else +LDFLAGS = $(LDFLAGS) msvcrt_winxp.obj + +PERL510PATH = c:\mozilla-build\perl-5.10-x86\lib\CORE +PERL512PATH = c:\mozilla-build\perl-5.12-x86\lib\CORE +PYTHONPATH = c:\mozilla-build\python-2.7-x86 +TCLPATH = c:\mozilla-build\tcl-8.5-x86 +!endif diff --git a/src/pixmaps/makefile.mak b/src/pixmaps/makefile.mak new file mode 100644 index 00000000..f9535dbe --- /dev/null +++ b/src/pixmaps/makefile.mak @@ -0,0 +1,18 @@ +CONV = gdk-pixbuf-csource + +LIST = bookpng book.png \ + hoppng hop.png \ + oppng op.png \ + purplepng purple.png \ + redpng red.png \ + trayfilepng fileoffer.png \ + trayhilightpng highlight.png \ + traymsgpng message.png \ + voicepng voice.png \ + xchatpng ..\..\xchat.png + +all: + @$(CONV) --build-list $(LIST) > inline_pngs.h + +clean: + @del *.h -- cgit 1.4.1 From f77baf7049c87fc88e8e476ab63c5f23bc8a949b Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Mon, 28 Mar 2011 04:19:06 +0200 Subject: don't limit the number of concurrent compiler processes (XhmikosR) --- src/makeinc.skel.mak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/makeinc.skel.mak b/src/makeinc.skel.mak index 17a16642..c9027992 100644 --- a/src/makeinc.skel.mak +++ b/src/makeinc.skel.mak @@ -1,6 +1,6 @@ CC = cl LINK = link -CFLAGS = $(CFLAGS) /Ox /c /MD /MP2 /W0 /nologo +CFLAGS = $(CFLAGS) /Ox /c /MD /MP /W0 /nologo CFLAGS = $(CFLAGS) /DWIN32 /DG_DISABLE_CAST_CHECKS /DG_DISABLE_DEPRECATED /DGDK_PIXBUF_DISABLE_DEPRECATED /DGDK_DISABLE_DEPRECATED /DUSE_IPV6 /DHAVE_STRTOULL /Dstrtoull=_strtoui64 /Dstrcasecmp=stricmp /Dstrncasecmp=strnicmp /DUSE_OPENSSL CFLAGS = $(CFLAGS) /I$(DEV)\include CPPFLAGS = /c /MD /W0 /nologo /DWIN32 -- cgit 1.4.1 From 2aed83ec82f3ccdbaa013bdf8fc4dd44d261a96f Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Sat, 16 Apr 2011 20:08:47 +0200 Subject: fix syntax error --- src/common/server.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/common/server.c b/src/common/server.c index 171b7ffd..f7347052 100644 --- a/src/common/server.c +++ b/src/common/server.c @@ -1491,7 +1491,6 @@ server_child (server * serv) if (!serv->dont_use_proxy) /* blocked in serverlist? */ { if (FALSE) - { ; #ifdef USE_LIBPROXY } else if (prefs.proxy_type == 5) -- cgit 1.4.1 From b85f311ddd7a1275e49289ba935617a163062790 Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Mon, 30 May 2011 21:15:39 +0200 Subject: move cpu arch stuff to separate function --- src/common/util.c | 18 ++++++++++++++++++ src/common/util.h | 1 + src/fe-gtk/about.c | 15 +-------------- 3 files changed, 20 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/common/util.c b/src/common/util.c index 67168a5f..5677e82a 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -647,6 +647,24 @@ get_mhz (void) return 0; /* fails on Win9x */ } +int +get_cpu_arch (void) +{ + SYSTEM_INFO si; + unsigned short int cpu_arch; + + GetSystemInfo (&si); + + if (si.wProcessorArchitecture == 9) + { + return 64; + } + else + { + return 86; + } +} + char * get_cpu_str (void) { diff --git a/src/common/util.h b/src/common/util.h index cd9e1fff..92d2a843 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -45,6 +45,7 @@ char *errorstring (int err); int waitline (int sok, char *buf, int bufsize, int); #ifdef WIN32 int waitline2 (GIOChannel *source, char *buf, int bufsize); +int get_cpu_arch (void); #else #define waitline2(source,buf,size) waitline(serv->childread,buf,size,0) #endif diff --git a/src/fe-gtk/about.c b/src/fe-gtk/about.c index 453d405c..6e69b646 100644 --- a/src/fe-gtk/about.c +++ b/src/fe-gtk/about.c @@ -88,19 +88,6 @@ menu_about (GtkWidget * wid, gpointer sess) char buf[512]; const char *locale = NULL; extern GtkWindow *parent_window; /* maingui.c */ - SYSTEM_INFO si; - unsigned short int cpu_arch; - - GetSystemInfo (&si); - - if (si.wProcessorArchitecture == 9) - { - cpu_arch = 64; - } - else - { - cpu_arch = 86; - } if (about) { @@ -146,7 +133,7 @@ menu_about (GtkWidget * wid, gpointer sess) gtk_minor_version, gtk_micro_version, (portable_mode () ? "Yes" : "No"), - cpu_arch + get_cpu_arch () #else "%s\n\n" "%s\n" -- cgit 1.4.1 From a795b5ced9815579611908e4d3f1be2557e152ef Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Mon, 30 May 2011 21:24:36 +0200 Subject: display build type in CTCP VERSION reply --- src/common/ctcp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/common/ctcp.c b/src/common/ctcp.c index a1d70049..37392372 100644 --- a/src/common/ctcp.c +++ b/src/common/ctcp.c @@ -133,8 +133,8 @@ ctcp_handle (session *sess, char *to, char *nick, char *ip, if (!strcasecmp (msg, "VERSION") && !prefs.hidever) { - snprintf (outbuf, sizeof (outbuf), "VERSION XChat-WDK "PACKAGE_VERSION" / %s", - get_cpu_str ()); + snprintf (outbuf, sizeof (outbuf), "VERSION XChat-WDK "PACKAGE_VERSION" [x%d] / %s", + get_cpu_arch (), get_cpu_str ()); serv->p_nctcp (serv, nick, outbuf); } -- cgit 1.4.1 From 24ac838543bc99ea8d289925b4c5418107d5ae1f Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Mon, 30 May 2011 22:52:02 +0200 Subject: add support for Perl 5.14 --- build/build-x64.bat | 4 ++++ build/build-x86.bat | 4 ++++ build/release-x64.bat | 1 + build/release-x86.bat | 1 + build/xchat-wdk.skel.iss | 4 ++++ plugins/perl/makefile-514.mak | 30 ++++++++++++++++++++++++++++++ src/makeinc.skel.mak | 4 ++++ 7 files changed, 48 insertions(+) create mode 100644 plugins/perl/makefile-514.mak (limited to 'src') diff --git a/build/build-x64.bat b/build/build-x64.bat index 6f49dae2..5375809e 100644 --- a/build/build-x64.bat +++ b/build/build-x64.bat @@ -1,6 +1,7 @@ @echo off set PERL_510=c:\mozilla-build\perl-5.10-x64 set PERL_512=c:\mozilla-build\perl-5.12-x64 +set PERL_514=c:\mozilla-build\perl-5.14-x64 cd .. set DEV_64=%cd%\dep-x64 cd src @@ -30,6 +31,9 @@ nmake /nologo /s /f makefile-510.mak set PATH=%OOPATH%;%PERL_512%\bin nmake /nologo /s /f makefile-512.mak clean nmake /nologo /s /f makefile-512.mak +set PATH=%OOPATH%;%PERL_514%\bin +nmake /nologo /s /f makefile-514.mak clean +nmake /nologo /s /f makefile-514.mak cd ..\..\build set PATH=%OPATH% call release-x64.bat diff --git a/build/build-x86.bat b/build/build-x86.bat index 7776ee4d..b8ee8052 100644 --- a/build/build-x86.bat +++ b/build/build-x86.bat @@ -1,6 +1,7 @@ @echo off set PERL_510=c:\mozilla-build\perl-5.10-x86 set PERL_512=c:\mozilla-build\perl-5.12-x86 +set PERL_514=c:\mozilla-build\perl-5.14-x86 echo [Setup] > xchat-wdk.iss echo WizardImageFile=%cd%\bitmaps\wizardimage.bmp >> xchat-wdk.iss echo WizardSmallImageFile=%cd%\bitmaps\wizardsmallimage.bmp >> xchat-wdk.iss @@ -31,6 +32,9 @@ nmake /nologo /s /f makefile-510.mak set PATH=%OOPATH%;%PERL_512%\bin nmake /nologo /s /f makefile-512.mak clean nmake /nologo /s /f makefile-512.mak +set PATH=%OOPATH%;%PERL_514%\bin +nmake /nologo /s /f makefile-514.mak clean +nmake /nologo /s /f makefile-514.mak cd ..\..\build call compile-po-files.bat set PATH=%OPATH% diff --git a/build/release-x64.bat b/build/release-x64.bat index ddb070b6..50ae1e64 100644 --- a/build/release-x64.bat +++ b/build/release-x64.bat @@ -36,6 +36,7 @@ copy ..\plugins\lua\xclua.dll %XCHAT_DEST%\plugins\xclua.dll.x64 copy ..\plugins\mpcinfo\xcmpcinfo.dll %XCHAT_DEST%\plugins\xcmpcinfo.dll.x64 copy ..\plugins\perl\xcperl-510.dll %XCHAT_DEST%\plugins\xcperl-510.dll.x64 copy ..\plugins\perl\xcperl-512.dll %XCHAT_DEST%\plugins\xcperl-512.dll.x64 +copy ..\plugins\perl\xcperl-514.dll %XCHAT_DEST%\plugins\xcperl-514.dll.x64 copy ..\plugins\python\xcpython.dll %XCHAT_DEST%\plugins\xcpython.dll.x64 copy ..\plugins\tcl\xctcl.dll %XCHAT_DEST%\plugins\xctcl.dll.x64 copy ..\plugins\upd\xcupd.dll %XCHAT_DEST%\plugins\xcupd.dll.x64 diff --git a/build/release-x86.bat b/build/release-x86.bat index c33e981c..05ad7df5 100644 --- a/build/release-x86.bat +++ b/build/release-x86.bat @@ -48,6 +48,7 @@ copy ..\plugins\lua\xclua.dll %XCHAT_DEST%\plugins copy ..\plugins\mpcinfo\xcmpcinfo.dll %XCHAT_DEST%\plugins copy ..\plugins\perl\xcperl-510.dll %XCHAT_DEST%\plugins copy ..\plugins\perl\xcperl-512.dll %XCHAT_DEST%\plugins +copy ..\plugins\perl\xcperl-514.dll %XCHAT_DEST%\plugins copy ..\plugins\python\xcpython.dll %XCHAT_DEST%\plugins copy ..\plugins\tcl\xctcl.dll %XCHAT_DEST%\plugins copy ..\plugins\upd\xcupd.dll %XCHAT_DEST%\plugins diff --git a/build/xchat-wdk.skel.iss b/build/xchat-wdk.skel.iss index 86b9904a..dccd58ff 100644 --- a/build/xchat-wdk.skel.iss +++ b/build/xchat-wdk.skel.iss @@ -57,6 +57,7 @@ Name: x64; Description: "x64"; GroupDescription: "XChat-WDK version:"; Flags: ex Name: perl510; Description: "5.10"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl +Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked @@ -228,6 +229,9 @@ Source: "plugins\xcperl-510.dll.x64"; DestDir: "{app}\plugins"; DestName: "xcper Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: x86 and perl512 Source: "plugins\xcperl-512.dll.x64"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: x64 and perl512 +Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: x86 and perl514 +Source: "plugins\xcperl-514.dll.x64"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: x64 and perl514 + [Icons] Name: "{group}\XChat-WDK"; Filename: "{app}\xchat.exe"; Tasks: not portable Name: "{group}\XChat-Text"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable diff --git a/plugins/perl/makefile-514.mak b/plugins/perl/makefile-514.mak new file mode 100644 index 00000000..94ee456f --- /dev/null +++ b/plugins/perl/makefile-514.mak @@ -0,0 +1,30 @@ +include "..\..\src\makeinc.mak" + +DIRENTLIB = ..\..\src\common\dirent.lib +TARGET = $(PERL514OUTPUT) + +all: $(TARGET) + +perl.def: + echo EXPORTS > perl.def + echo xchat_plugin_init >> perl.def + echo xchat_plugin_deinit >> perl.def + echo xchat_plugin_get_info >> perl.def + +perl.obj: perl.c + $(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL514PATH) /I.. /DPERL_DLL=\"$(PERL514LIB).dll\" + +perl.c: xchat.pm.h + +xchat.pm.h: lib/Xchat.pm lib/IRC.pm + perl.exe generate_header + +$(TARGET): perl.obj perl.def + $(LINK) /DLL /out:$(TARGET) perl.obj $(LDFLAGS) $(PERL514LIB).lib /libpath:$(PERL514PATH) /DELAYLOAD:$(PERL514LIB).dll $(DIRENTLIB) DELAYIMP.LIB user32.lib shell32.lib advapi32.lib /def:perl.def + +clean: + @del $(TARGET) + @del *.obj + @del perl.def + @del *.lib + @del *.exp diff --git a/src/makeinc.skel.mak b/src/makeinc.skel.mak index c9027992..f7bbeeb7 100644 --- a/src/makeinc.skel.mak +++ b/src/makeinc.skel.mak @@ -18,6 +18,8 @@ PERL510LIB = perl510 PERL510OUTPUT = xcperl-510.dll PERL512LIB = perl512 PERL512OUTPUT = xcperl-512.dll +PERL514LIB = perl514 +PERL514OUTPUT = xcperl-514.dll PYTHONLIB = python27 PYTHONOUTPUT = xcpython.dll @@ -32,6 +34,7 @@ LDFLAGS = $(LDFLAGS) msvcrt_win2003.obj PERL510PATH = c:\mozilla-build\perl-5.10-x64\lib\CORE PERL512PATH = c:\mozilla-build\perl-5.12-x64\lib\CORE +PERL514PATH = c:\mozilla-build\perl-5.14-x64\lib\CORE PYTHONPATH = c:\mozilla-build\python-2.7-x64 TCLPATH = c:\mozilla-build\tcl-8.5-x64 !else @@ -39,6 +42,7 @@ LDFLAGS = $(LDFLAGS) msvcrt_winxp.obj PERL510PATH = c:\mozilla-build\perl-5.10-x86\lib\CORE PERL512PATH = c:\mozilla-build\perl-5.12-x86\lib\CORE +PERL514PATH = c:\mozilla-build\perl-5.14-x86\lib\CORE PYTHONPATH = c:\mozilla-build\python-2.7-x86 TCLPATH = c:\mozilla-build\tcl-8.5-x86 !endif -- cgit 1.4.1 From 5e4a60debe1c3643bcc455778e2ef7f6238c71c2 Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Tue, 31 May 2011 00:40:13 +0200 Subject: support for own license text --- src/common/cfgfiles.c | 2 ++ src/common/xchat.h | 1 + src/fe-gtk/about.c | 5 ++++- src/fe-gtk/maingui.c | 14 +++++++++++++- 4 files changed, 20 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c index d26198ed..a6a75aed 100644 --- a/src/common/cfgfiles.c +++ b/src/common/cfgfiles.c @@ -421,6 +421,7 @@ const struct prefs vars[] = { {"flood_msg_num", P_OFFINT (msg_number_limit), TYPE_INT}, {"flood_msg_time", P_OFFINT (msg_time_limit), TYPE_INT}, + {"gui_license", P_OFFSET (gui_license), TYPE_STR}, {"gui_auto_open_chat", P_OFFINT (autoopendccchatwindow), TYPE_BOOL}, {"gui_auto_open_dialog", P_OFFINT (autodialog), TYPE_BOOL}, {"gui_auto_open_recv", P_OFFINT (autoopendccrecvwindow), TYPE_BOOL}, @@ -696,6 +697,7 @@ load_config (void) #ifdef WIN32 prefs.identd = 1; #endif + strcpy (prefs.gui_license, ""); strcpy (prefs.stamp_format, "[%H:%M] "); strcpy (prefs.timestamp_log_format, "%b %d %H:%M:%S "); strcpy (prefs.logmask, "%n-%c.log"); diff --git a/src/common/xchat.h b/src/common/xchat.h index 2f695599..718e0e91 100644 --- a/src/common/xchat.h +++ b/src/common/xchat.h @@ -121,6 +121,7 @@ struct xchatprefs char partreason[256]; char font_normal[FONTNAMELEN + 1]; char doubleclickuser[256]; + char gui_license[64]; char sounddir[PATHLEN + 1]; char soundcmd[PATHLEN + 1]; char background[PATHLEN + 1]; diff --git a/src/fe-gtk/about.c b/src/fe-gtk/about.c index 6e69b646..e1e5149c 100644 --- a/src/fe-gtk/about.c +++ b/src/fe-gtk/about.c @@ -40,6 +40,7 @@ #include "../common/xchat.h" #include "../common/util.h" #include "../common/wdkutil.h" +#include "../common/xchatc.h" #include "palette.h" #include "pixmaps.h" #include "gtkutil.h" @@ -114,7 +115,8 @@ menu_about (GtkWidget * wid, gpointer sess) gtk_container_add (GTK_CONTAINER (vbox), label); g_get_charset (&locale); (snprintf) (buf, sizeof (buf), - ""DISPLAY_NAME" "PACKAGE_VERSION"\n\n" + ""DISPLAY_NAME" "PACKAGE_VERSION"\n" + "%s\n\n" #ifdef WIN32 "XChat Release: "XCHAT_RELEASE"\n\n" "OS: %s\n" @@ -127,6 +129,7 @@ menu_about (GtkWidget * wid, gpointer sess) "\302\251 1998-2010 Peter \305\275elezn\303\275 <zed@xchat.org>" /* "\nhttp://code.google.com/p/xchat-wdk/" this is broken in gtk ATM */ "", + prefs.gui_license, get_cpu_str (), locale, gtk_major_version, diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index 27d47731..feea6549 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -476,10 +476,22 @@ fe_set_title (session *sess) break; default: def: - gtk_window_set_title (GTK_WINDOW (sess->gui->window), DISPLAY_NAME); + snprintf (tbuf, sizeof (tbuf), DISPLAY_NAME); + if (strcmp (prefs.gui_license, "")) /* zero means gui_license is empty */ + { + strcat (tbuf, " - "); + strcat (tbuf, prefs.gui_license); + } + gtk_window_set_title (GTK_WINDOW (sess->gui->window), tbuf); return; } + if (strcmp (prefs.gui_license, "")) /* zero means gui_license is empty */ + { + strcat (tbuf, " - "); + strcat (tbuf, prefs.gui_license); + } + gtk_window_set_title (GTK_WINDOW (sess->gui->window), tbuf); } -- cgit 1.4.1 From 5ea4855bc32844474df3f542800fcd801d1037fb Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Sun, 5 Jun 2011 04:41:33 +0200 Subject: gui support for license text --- src/fe-gtk/setup.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c index bfa49946..eef6761d 100644 --- a/src/fe-gtk/setup.c +++ b/src/fe-gtk/setup.c @@ -401,6 +401,7 @@ static const setting advanced_settings[] = {ST_TOGGLE, N_("Display MODEs in raw form"), P_OFFINTNL(raw_modes), 0, 0, 0}, {ST_TOGGLE, N_("Whois on notify"), P_OFFINTNL(whois_on_notifyonline), N_("Sends a /WHOIS when a user comes online in your notify list"), 0, 0}, {ST_TOGGLE, N_("Hide join and part messages"), P_OFFINTNL(confmode), N_("Hide channel join/part messages by default"), 0, 0}, + {ST_ENTRY, N_("License Text:"), P_OFFSETNL(gui_license), 0, 0, sizeof prefs.gui_license}, {ST_HEADER, N_("Auto Open DCC Windows"),0,0,0}, {ST_TOGGLE, N_("Send window"), P_OFFINTNL(autoopendccsendwindow), 0, 0, 0}, {ST_TOGGLE, N_("Receive window"), P_OFFINTNL(autoopendccrecvwindow), 0, 0, 0}, -- cgit 1.4.1 From 87b68a17adb0d254d56c995fbaff7a5a94175297 Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Sun, 5 Jun 2011 06:12:31 +0200 Subject: add option for changing spell checker color --- src/fe-gtk/palette.c | 3 ++- src/fe-gtk/palette.h | 1 + src/fe-gtk/setup.c | 1 + src/fe-gtk/sexy-spell-entry.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 44 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/fe-gtk/palette.c b/src/fe-gtk/palette.c index 8d2ee062..b94ac874 100644 --- a/src/fe-gtk/palette.c +++ b/src/fe-gtk/palette.c @@ -77,8 +77,9 @@ GdkColor colors[] = { {0, 0x0000, 0x0000, 0xffff}, /* 38 tab Nick Mentioned (blue) */ {0, 0xffff, 0x0000, 0x0000}, /* 39 tab New Message (red) */ {0, 0x9595, 0x9595, 0x9595}, /* 40 away user (grey) */ + {0, 0xffff, 0x0000, 0x0000}, /* 41 spell checker color (red) */ }; -#define MAX_COL 40 +#define MAX_COL 41 void diff --git a/src/fe-gtk/palette.h b/src/fe-gtk/palette.h index c97693bb..627c6963 100644 --- a/src/fe-gtk/palette.h +++ b/src/fe-gtk/palette.h @@ -9,6 +9,7 @@ extern GdkColor colors[]; #define COL_HILIGHT 38 #define COL_NEW_MSG 39 #define COL_AWAY 40 +#define COL_SPELL 41 void palette_alloc (GtkWidget * widget); void palette_load (void); diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c index eef6761d..250accc5 100644 --- a/src/fe-gtk/setup.c +++ b/src/fe-gtk/setup.c @@ -1358,6 +1358,7 @@ setup_create_color_page (void) setup_create_other_color (_("New message:"), COL_NEW_MSG, 10, tab); setup_create_other_colorR (_("Away user:"), COL_AWAY, 10, tab); setup_create_other_color (_("Highlight:"), COL_HILIGHT, 11, tab); + setup_create_other_colorR (_("Spell checker:"), COL_SPELL, 11, tab); return box; } diff --git a/src/fe-gtk/sexy-spell-entry.c b/src/fe-gtk/sexy-spell-entry.c index d2c6a8a8..6bc4f0b5 100644 --- a/src/fe-gtk/sexy-spell-entry.c +++ b/src/fe-gtk/sexy-spell-entry.c @@ -26,13 +26,17 @@ #include #include "sexy-spell-entry.h" #include +#include #include #include +#include /*#include "gtkspell-iso-codes.h" #include "sexy-marshal.h"*/ #include "typedef.h" +#include "../common/cfgfiles.h" + /* * Bunch of poop to make enchant into a runtime dependency rather than a * compile-time dependency. This makes it so I don't have to hear the @@ -260,8 +264,42 @@ gtk_entry_find_position (GtkEntry *entry, gint x) static void insert_underline(SexySpellEntry *entry, guint start, guint end) { - PangoAttribute *ucolor = pango_attr_underline_color_new (65535, 0, 0); - PangoAttribute *unline = pango_attr_underline_new (PANGO_UNDERLINE_ERROR); + int fh, l; + int red, green, blue; + struct stat st; + char *cfg; + PangoAttribute *ucolor; + PangoAttribute *unline; + + fh = xchat_open_file ("colors.conf", O_RDONLY, 0, 0); + + if (fh != -1) + { + fstat (fh, &st); + cfg = malloc (st.st_size + 1); + + if (cfg) + { + cfg[0] = '\0'; + l = read (fh, cfg, st.st_size); + if (l >= 0) + { + cfg[l] = '\0'; + } + + cfg_get_color (cfg, "color_265", &red, &green, &blue); + free (cfg); + } + + close (fh); + } else + { + red = 65535; + green = blue = 0; + } + + ucolor = pango_attr_underline_color_new (red, green, blue); + unline = pango_attr_underline_new (PANGO_UNDERLINE_ERROR); ucolor->start_index = start; unline->start_index = start; -- cgit 1.4.1 From 98999bb19d7660321c7151371def629674c5cbc0 Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Fri, 17 Jun 2011 00:01:25 +0200 Subject: add support for Windows 8 in CTCP VERSION reply --- src/common/util.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/common/util.c b/src/common/util.c index 5677e82a..b9bf3b35 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -726,6 +726,16 @@ get_cpu_str (void) strcpy (winver, "Server 2008 R2"); } break; + case 2: + if (osvi.wProductType == VER_NT_WORKSTATION) + { + strcpy (winver, "8"); + } + else + { + strcpy (winver, "8 Server"); + } + break; } break; } -- cgit 1.4.1 From 70f870fc961e9594ac41707e944b5bf364164c43 Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Wed, 27 Jul 2011 04:51:28 +0200 Subject: remove perl 5.10, migrate 5.12 to strawberry --- build/build-x64.bat | 6 +----- build/build-x86.bat | 6 +----- build/release-x64.bat | 1 - build/release-x86.bat | 1 - build/xchat-wdk.skel.iss | 4 ---- plugins/perl/makefile-510.mak | 30 ------------------------------ src/makeinc.skel.mak | 8 ++------ 7 files changed, 4 insertions(+), 52 deletions(-) delete mode 100644 plugins/perl/makefile-510.mak (limited to 'src') diff --git a/build/build-x64.bat b/build/build-x64.bat index 5375809e..29db6400 100644 --- a/build/build-x64.bat +++ b/build/build-x64.bat @@ -1,6 +1,5 @@ @echo off -set PERL_510=c:\mozilla-build\perl-5.10-x64 -set PERL_512=c:\mozilla-build\perl-5.12-x64 +set PERL_512=c:\mozilla-build\perl-5.12-x64\perl set PERL_514=c:\mozilla-build\perl-5.14-x64 cd .. set DEV_64=%cd%\dep-x64 @@ -25,9 +24,6 @@ nmake /nologo /f makefile.mak clean nmake /nologo /f makefile.mak cd perl set OOPATH=%PATH% -set PATH=%OOPATH%;%PERL_510%\bin -nmake /nologo /s /f makefile-510.mak clean -nmake /nologo /s /f makefile-510.mak set PATH=%OOPATH%;%PERL_512%\bin nmake /nologo /s /f makefile-512.mak clean nmake /nologo /s /f makefile-512.mak diff --git a/build/build-x86.bat b/build/build-x86.bat index b8ee8052..c2df1c25 100644 --- a/build/build-x86.bat +++ b/build/build-x86.bat @@ -1,6 +1,5 @@ @echo off -set PERL_510=c:\mozilla-build\perl-5.10-x86 -set PERL_512=c:\mozilla-build\perl-5.12-x86 +set PERL_512=c:\mozilla-build\perl-5.12-x86\perl set PERL_514=c:\mozilla-build\perl-5.14-x86 echo [Setup] > xchat-wdk.iss echo WizardImageFile=%cd%\bitmaps\wizardimage.bmp >> xchat-wdk.iss @@ -26,9 +25,6 @@ nmake /nologo /f makefile.mak clean nmake /nologo /f makefile.mak cd perl set OOPATH=%PATH% -set PATH=%OOPATH%;%PERL_510%\bin -nmake /nologo /s /f makefile-510.mak clean -nmake /nologo /s /f makefile-510.mak set PATH=%OOPATH%;%PERL_512%\bin nmake /nologo /s /f makefile-512.mak clean nmake /nologo /s /f makefile-512.mak diff --git a/build/release-x64.bat b/build/release-x64.bat index 50ae1e64..e22043e9 100644 --- a/build/release-x64.bat +++ b/build/release-x64.bat @@ -34,7 +34,6 @@ copy %DEPS_ROOT%\lib\enchant\libenchant_myspell.dll %XCHAT_DEST%\lib\enchant\lib copy ..\plugins\checksum\xcchecksum.dll %XCHAT_DEST%\plugins\xcchecksum.dll.x64 copy ..\plugins\lua\xclua.dll %XCHAT_DEST%\plugins\xclua.dll.x64 copy ..\plugins\mpcinfo\xcmpcinfo.dll %XCHAT_DEST%\plugins\xcmpcinfo.dll.x64 -copy ..\plugins\perl\xcperl-510.dll %XCHAT_DEST%\plugins\xcperl-510.dll.x64 copy ..\plugins\perl\xcperl-512.dll %XCHAT_DEST%\plugins\xcperl-512.dll.x64 copy ..\plugins\perl\xcperl-514.dll %XCHAT_DEST%\plugins\xcperl-514.dll.x64 copy ..\plugins\python\xcpython.dll %XCHAT_DEST%\plugins\xcpython.dll.x64 diff --git a/build/release-x86.bat b/build/release-x86.bat index 05ad7df5..b61bdbea 100644 --- a/build/release-x86.bat +++ b/build/release-x86.bat @@ -46,7 +46,6 @@ xcopy /q /s /i %DEPS_ROOT%\lib\enchant\libenchant_myspell.dll %XCHAT_DEST%\lib\e xcopy /q /s /i ..\plugins\checksum\xcchecksum.dll %XCHAT_DEST%\plugins\ copy ..\plugins\lua\xclua.dll %XCHAT_DEST%\plugins copy ..\plugins\mpcinfo\xcmpcinfo.dll %XCHAT_DEST%\plugins -copy ..\plugins\perl\xcperl-510.dll %XCHAT_DEST%\plugins copy ..\plugins\perl\xcperl-512.dll %XCHAT_DEST%\plugins copy ..\plugins\perl\xcperl-514.dll %XCHAT_DEST%\plugins copy ..\plugins\python\xcpython.dll %XCHAT_DEST%\plugins diff --git a/build/xchat-wdk.skel.iss b/build/xchat-wdk.skel.iss index 31617542..f0c0c8ad 100644 --- a/build/xchat-wdk.skel.iss +++ b/build/xchat-wdk.skel.iss @@ -55,7 +55,6 @@ Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenounins Name: x86; Description: "x86"; GroupDescription: "XChat-WDK version:"; Flags: exclusive unchecked Name: x64; Description: "x64"; GroupDescription: "XChat-WDK version:"; Flags: exclusive; Check: Is64BitInstallMode -Name: perl510; Description: "5.10"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl @@ -223,9 +222,6 @@ Source: "plugins\xctcl.dll.x64"; DestDir: "{app}\plugins"; DestName: "xctcl.dll" -Source: "plugins\xcperl-510.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: x86 and perl510 -Source: "plugins\xcperl-510.dll.x64"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: x64 and perl510 - Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: x86 and perl512 Source: "plugins\xcperl-512.dll.x64"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: x64 and perl512 diff --git a/plugins/perl/makefile-510.mak b/plugins/perl/makefile-510.mak deleted file mode 100644 index 60f6b2dc..00000000 --- a/plugins/perl/makefile-510.mak +++ /dev/null @@ -1,30 +0,0 @@ -include "..\..\src\makeinc.mak" - -DIRENTLIB = ..\..\src\common\dirent.lib -TARGET = $(PERL510OUTPUT) - -all: $(TARGET) - -perl.def: - echo EXPORTS > perl.def - echo xchat_plugin_init >> perl.def - echo xchat_plugin_deinit >> perl.def - echo xchat_plugin_get_info >> perl.def - -perl.obj: perl.c - $(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL510PATH) /I.. /DPERL_DLL=\"$(PERL510LIB).dll\" - -perl.c: xchat.pm.h - -xchat.pm.h: lib/Xchat.pm lib/IRC.pm - perl.exe generate_header - -$(TARGET): perl.obj perl.def - $(LINK) /DLL /out:$(TARGET) perl.obj $(LDFLAGS) $(PERL510LIB).lib /libpath:$(PERL510PATH) /DELAYLOAD:$(PERL510LIB).dll $(DIRENTLIB) DELAYIMP.LIB user32.lib shell32.lib advapi32.lib /def:perl.def - -clean: - @del $(TARGET) - @del *.obj - @del perl.def - @del *.lib - @del *.exp diff --git a/src/makeinc.skel.mak b/src/makeinc.skel.mak index f7bbeeb7..5c6beb6f 100644 --- a/src/makeinc.skel.mak +++ b/src/makeinc.skel.mak @@ -14,8 +14,6 @@ LIBS = $(LIBS) /libpath:$(DEV)\lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.l LUALIB = lua51 LUAOUTPUT = xclua.dll -PERL510LIB = perl510 -PERL510OUTPUT = xcperl-510.dll PERL512LIB = perl512 PERL512OUTPUT = xcperl-512.dll PERL514LIB = perl514 @@ -32,16 +30,14 @@ CFLAGS = $(CFLAGS) /favor:AMD64 /D_WIN64 CPPFLAGS = $(CPPFLAGS) /favor:AMD64 /D_WIN64 LDFLAGS = $(LDFLAGS) msvcrt_win2003.obj -PERL510PATH = c:\mozilla-build\perl-5.10-x64\lib\CORE -PERL512PATH = c:\mozilla-build\perl-5.12-x64\lib\CORE +PERL512PATH = c:\mozilla-build\perl-5.12-x64\perl\lib\CORE PERL514PATH = c:\mozilla-build\perl-5.14-x64\lib\CORE PYTHONPATH = c:\mozilla-build\python-2.7-x64 TCLPATH = c:\mozilla-build\tcl-8.5-x64 !else LDFLAGS = $(LDFLAGS) msvcrt_winxp.obj -PERL510PATH = c:\mozilla-build\perl-5.10-x86\lib\CORE -PERL512PATH = c:\mozilla-build\perl-5.12-x86\lib\CORE +PERL512PATH = c:\mozilla-build\perl-5.12-x86\perl\lib\CORE PERL514PATH = c:\mozilla-build\perl-5.14-x86\lib\CORE PYTHONPATH = c:\mozilla-build\python-2.7-x86 TCLPATH = c:\mozilla-build\tcl-8.5-x86 -- cgit 1.4.1 From 7061c055f1eb466484c7a2a561ceda5f177d203b Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Wed, 27 Jul 2011 23:13:07 +0200 Subject: remove odd ifdef --- src/fe-gtk/banlist.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src') diff --git a/src/fe-gtk/banlist.c b/src/fe-gtk/banlist.c index f587a0c0..a714d186 100644 --- a/src/fe-gtk/banlist.c +++ b/src/fe-gtk/banlist.c @@ -133,11 +133,8 @@ banlist_do_refresh (struct session *sess) gtk_list_store_clear (store); handle_command (sess, "ban", FALSE); -#ifdef WIN32 - if (0) -#else + if (supports_exempt (sess->server)) -#endif { snprintf (tbuf, sizeof (tbuf), "quote mode %s +e", sess->channel); handle_command (sess, tbuf, FALSE); -- cgit 1.4.1 From b6a0e0d086d5b314742b9ecc84f2392b5dada5c8 Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Thu, 28 Jul 2011 00:05:58 +0200 Subject: polish the building process of the perl interface --- build/strawberry-importlib.bat | 19 + plugins/perl/importlib/perl512-x64.def | 1420 -------------------------------- plugins/perl/importlib/perl512-x86.def | 1420 -------------------------------- plugins/perl/importlib/sbperl-x64.bat | 10 - plugins/perl/importlib/sbperl-x86.bat | 10 - plugins/perl/makefile-512.mak | 13 +- plugins/perl/makefile-514.mak | 2 +- plugins/perl/perl512.def | 1420 ++++++++++++++++++++++++++++++++ src/makeinc.skel.mak | 4 +- 9 files changed, 1452 insertions(+), 2866 deletions(-) create mode 100644 build/strawberry-importlib.bat delete mode 100644 plugins/perl/importlib/perl512-x64.def delete mode 100644 plugins/perl/importlib/perl512-x86.def delete mode 100644 plugins/perl/importlib/sbperl-x64.bat delete mode 100644 plugins/perl/importlib/sbperl-x86.bat create mode 100644 plugins/perl/perl512.def (limited to 'src') diff --git a/build/strawberry-importlib.bat b/build/strawberry-importlib.bat new file mode 100644 index 00000000..61da96b3 --- /dev/null +++ b/build/strawberry-importlib.bat @@ -0,0 +1,19 @@ +@echo off +set PATH=c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE +cd c:\mozilla-build\perl-5.12-x86\perl\lib\CORE +echo.Overwrite existing def file? +pause +dumpbin /exports ..\..\bin\perl512.dll > perl512.def +echo.Please adjust the resulting file manually, then hit return! +pause +lib /machine:x86 /def:perl512.def +pause +set PATH=c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 +cd c:\mozilla-build\perl-5.12-x64\perl\lib\CORE +echo.Overwrite existing def file? +pause +dumpbin /exports ..\..\bin\perl512.dll > perl512.def +echo.Please adjust the resulting file manually, then hit return! +pause +lib /machine:x64 /def:perl512.def +pause diff --git a/plugins/perl/importlib/perl512-x64.def b/plugins/perl/importlib/perl512-x64.def deleted file mode 100644 index 5cfcaa68..00000000 --- a/plugins/perl/importlib/perl512-x64.def +++ /dev/null @@ -1,1420 +0,0 @@ -LIBRARY perl512 -EXPORTS -PL_bincompat_options -PL_check -PL_fold -PL_fold_locale -PL_freq -PL_keyword_plugin -PL_memory_wrap -PL_no_aelem -PL_no_dir_func -PL_no_func -PL_no_helem_sv -PL_no_localize_ref -PL_no_mem -PL_no_modify -PL_no_myglob -PL_no_security -PL_no_sock_func -PL_no_symref -PL_no_usym -PL_no_wrongref -PL_op_desc -PL_op_name -PL_opargs -PL_perlio_mutex -PL_ppaddr -PL_reg_extflags_name -PL_reg_name -PL_regkind -PL_sig_name -PL_sig_num -PL_simple -PL_utf8skip -PL_uuemap -PL_varies -PL_vtbl_amagic -PL_vtbl_amagicelem -PL_vtbl_arylen -PL_vtbl_backref -PL_vtbl_bm -PL_vtbl_collxfrm -PL_vtbl_dbline -PL_vtbl_defelem -PL_vtbl_env -PL_vtbl_envelem -PL_vtbl_fm -PL_vtbl_isa -PL_vtbl_isaelem -PL_vtbl_mglob -PL_vtbl_nkeys -PL_vtbl_pack -PL_vtbl_packelem -PL_vtbl_pos -PL_vtbl_regdata -PL_vtbl_regdatum -PL_vtbl_regexp -PL_vtbl_sig -PL_vtbl_sigelem -PL_vtbl_substr -PL_vtbl_sv -PL_vtbl_taint -PL_vtbl_utf8 -PL_vtbl_uvar -PL_vtbl_vec -PL_warn_nl -PL_warn_nosemi -PL_warn_reserved -PL_warn_uninit -PerlIOBase_binmode -PerlIOBase_clearerr -PerlIOBase_close -PerlIOBase_dup -PerlIOBase_eof -PerlIOBase_error -PerlIOBase_fileno -PerlIOBase_noop_fail -PerlIOBase_noop_ok -PerlIOBase_popped -PerlIOBase_pushed -PerlIOBase_read -PerlIOBase_setlinebuf -PerlIOBase_unread -PerlIOBuf_bufsiz -PerlIOBuf_close -PerlIOBuf_dup -PerlIOBuf_fill -PerlIOBuf_flush -PerlIOBuf_get_base -PerlIOBuf_get_cnt -PerlIOBuf_get_ptr -PerlIOBuf_open -PerlIOBuf_popped -PerlIOBuf_pushed -PerlIOBuf_read -PerlIOBuf_seek -PerlIOBuf_set_ptrcnt -PerlIOBuf_tell -PerlIOBuf_unread -PerlIOBuf_write -PerlIO_allocate -PerlIO_apply_layera -PerlIO_apply_layers -PerlIO_arg_fetch -PerlIO_binmode -PerlIO_canset_cnt -PerlIO_debug -PerlIO_define_layer -PerlIO_exportFILE -PerlIO_fast_gets -PerlIO_fdopen -PerlIO_findFILE -PerlIO_find_layer -PerlIO_getc -PerlIO_getname -PerlIO_getpos -PerlIO_has_base -PerlIO_has_cntptr -PerlIO_importFILE -PerlIO_init -PerlIO_isutf8 -PerlIO_layer_fetch -PerlIO_list_alloc -PerlIO_list_free -PerlIO_modestr -PerlIO_open -PerlIO_parse_layers -PerlIO_pending -PerlIO_perlio -PerlIO_pop -PerlIO_printf -PerlIO_push -PerlIO_putc -PerlIO_puts -PerlIO_releaseFILE -PerlIO_reopen -PerlIO_rewind -PerlIO_setpos -PerlIO_sprintf -PerlIO_stdoutf -PerlIO_sv_dup -PerlIO_teardown -PerlIO_tmpfile -PerlIO_ungetc -PerlIO_vprintf -PerlIO_vsprintf -Perl_GNo_ptr -Perl_GYes_ptr -Perl_Gcheck_ptr -Perl_Gcsighandlerp_ptr -Perl_Gcurinterp_ptr -Perl_Gdo_undump_ptr -Perl_Gdollarzero_mutex_ptr -Perl_Gfold_locale_ptr -Perl_Ghexdigit_ptr -Perl_Ghints_mutex_ptr -Perl_Ginterp_size_5_10_0_ptr -Perl_Ginterp_size_ptr -Perl_Gkeyword_plugin_ptr -Perl_Gmy_ctx_mutex_ptr -Perl_Gmy_cxt_index_ptr -Perl_Gop_mutex_ptr -Perl_Gop_seq_ptr -Perl_Gop_sequence_ptr -Perl_Gpatleave_ptr -Perl_Gperlio_debug_fd_ptr -Perl_Gperlio_fd_refcnt_ptr -Perl_Gperlio_fd_refcnt_size_ptr -Perl_Gperlio_mutex_ptr -Perl_Gppaddr_ptr -Perl_Grevision_ptr -Perl_Grunops_dbg_ptr -Perl_Grunops_std_ptr -Perl_Gsh_path_ptr -Perl_Gsig_trapped_ptr -Perl_Gsigfpe_saved_ptr -Perl_Gsubversion_ptr -Perl_Gsv_placeholder_ptr -Perl_Gthr_key_ptr -Perl_Guse_safe_putenv_ptr -Perl_Gv_AMupdate -Perl_Gversion_ptr -Perl_Gveto_cleanup_ptr -Perl_IArgv_ptr -Perl_ICmd_ptr -Perl_IDBgv_ptr -Perl_IDBline_ptr -Perl_IDBsignal_ptr -Perl_IDBsingle_ptr -Perl_IDBsub_ptr -Perl_IDBtrace_ptr -Perl_IDir_ptr -Perl_IEnv_ptr -Perl_ILIO_ptr -Perl_IMemParse_ptr -Perl_IMemShared_ptr -Perl_IMem_ptr -Perl_IOpPtr_ptr -Perl_IOpSlab_ptr -Perl_IOpSpace_ptr -Perl_IProc_ptr -Perl_ISock_ptr -Perl_IStdIO_ptr -Perl_ISv_ptr -Perl_IXpv_ptr -Perl_Iamagic_generation_ptr -Perl_Ian_ptr -Perl_Iargvgv_ptr -Perl_Iargvout_stack_ptr -Perl_Iargvoutgv_ptr -Perl_Ibasetime_ptr -Perl_Ibeginav_ptr -Perl_Ibeginav_save_ptr -Perl_Ibody_arenas_ptr -Perl_Ibody_roots_ptr -Perl_Ibodytarget_ptr -Perl_Ibreakable_sub_gen_ptr -Perl_Icheckav_ptr -Perl_Icheckav_save_ptr -Perl_Ichopset_ptr -Perl_Iclocktick_ptr -Perl_Icollation_ix_ptr -Perl_Icollation_name_ptr -Perl_Icollation_standard_ptr -Perl_Icollxfrm_base_ptr -Perl_Icollxfrm_mult_ptr -Perl_Icolors_ptr -Perl_Icolorset_ptr -Perl_Icompcv_ptr -Perl_Icompiling_ptr -Perl_Icomppad_name_fill_ptr -Perl_Icomppad_name_floor_ptr -Perl_Icomppad_name_ptr -Perl_Icomppad_ptr -Perl_Icop_seqmax_ptr -Perl_Icurcop_ptr -Perl_Icurcopdb_ptr -Perl_Icurpad_ptr -Perl_Icurpm_ptr -Perl_Icurstack_ptr -Perl_Icurstackinfo_ptr -Perl_Icurstash_ptr -Perl_Icurstname_ptr -Perl_Icustom_op_descs_ptr -Perl_Icustom_op_names_ptr -Perl_Icv_has_eval_ptr -Perl_Idbargs_ptr -Perl_Idebstash_ptr -Perl_Idebug_pad_ptr -Perl_Idebug_ptr -Perl_Idef_layerlist_ptr -Perl_Idefgv_ptr -Perl_Idefoutgv_ptr -Perl_Idefstash_ptr -Perl_Idelaymagic_ptr -Perl_Idestroyhook_ptr -Perl_Idiehook_ptr -Perl_Idirty_ptr -Perl_Idoextract_ptr -Perl_Idoswitches_ptr -Perl_Idowarn_ptr -Perl_Idumpindent_ptr -Perl_Ie_script_ptr -Perl_Iefloatbuf_ptr -Perl_Iefloatsize_ptr -Perl_Iegid_ptr -Perl_Iencoding_ptr -Perl_Iendav_ptr -Perl_Ienvgv_ptr -Perl_Ierrgv_ptr -Perl_Ierrors_ptr -Perl_Ieuid_ptr -Perl_Ieval_root_ptr -Perl_Ieval_start_ptr -Perl_Ievalseq_ptr -Perl_Iexit_flags_ptr -Perl_Iexitlist_ptr -Perl_Iexitlistlen_ptr -Perl_Ifdpid_ptr -Perl_Ifilemode_ptr -Perl_Ifirstgv_ptr -Perl_Iforkprocess_ptr -Perl_Iformfeed_ptr -Perl_Iformtarget_ptr -Perl_Igensym_ptr -Perl_Igid_ptr -Perl_Iglob_index_ptr -Perl_Iglobalstash_ptr -Perl_Ihash_seed_ptr -Perl_Ihintgv_ptr -Perl_Ihints_ptr -Perl_Ihv_fetch_ent_mh_ptr -Perl_Iin_clean_all_ptr -Perl_Iin_clean_objs_ptr -Perl_Iin_eval_ptr -Perl_Iin_load_module_ptr -Perl_Iincgv_ptr -Perl_Iinitav_ptr -Perl_Iinplace_ptr -Perl_Iisarev_ptr -Perl_Iknown_layers_ptr -Perl_Ilast_in_gv_ptr -Perl_Ilast_swash_hv_ptr -Perl_Ilast_swash_key_ptr -Perl_Ilast_swash_klen_ptr -Perl_Ilast_swash_slen_ptr -Perl_Ilast_swash_tmps_ptr -Perl_Ilastfd_ptr -Perl_Ilastscream_ptr -Perl_Ilaststatval_ptr -Perl_Ilaststype_ptr -Perl_Ilocalizing_ptr -Perl_Ilocalpatches_ptr -Perl_Ilockhook_ptr -Perl_Imain_cv_ptr -Perl_Imain_root_ptr -Perl_Imain_start_ptr -Perl_Imainstack_ptr -Perl_Imarkstack_max_ptr -Perl_Imarkstack_ptr -Perl_Imarkstack_ptr_ptr -Perl_Imax_intro_pending_ptr -Perl_Imaxo_ptr -Perl_Imaxscream_ptr -Perl_Imaxsysfd_ptr -Perl_Imess_sv_ptr -Perl_Imin_intro_pending_ptr -Perl_Iminus_E_ptr -Perl_Iminus_F_ptr -Perl_Iminus_a_ptr -Perl_Iminus_c_ptr -Perl_Iminus_l_ptr -Perl_Iminus_n_ptr -Perl_Iminus_p_ptr -Perl_Imodglobal_ptr -Perl_Imy_cxt_list_ptr -Perl_Imy_cxt_size_ptr -Perl_Ina_ptr -Perl_Inice_chunk_ptr -Perl_Inice_chunk_size_ptr -Perl_Inomemok_ptr -Perl_Inumeric_local_ptr -Perl_Inumeric_name_ptr -Perl_Inumeric_radix_sv_ptr -Perl_Inumeric_standard_ptr -Perl_Iofsgv_ptr -Perl_Ioldname_ptr -Perl_Iop_mask_ptr -Perl_Iop_ptr -Perl_Iopfreehook_ptr -Perl_Iorigalen_ptr -Perl_Iorigargc_ptr -Perl_Iorigargv_ptr -Perl_Iorigenviron_ptr -Perl_Iorigfilename_ptr -Perl_Iors_sv_ptr -Perl_Iosname_ptr -Perl_Ipad_reset_pending_ptr -Perl_Ipadix_floor_ptr -Perl_Ipadix_ptr -Perl_Iparser_ptr -Perl_Ipatchlevel_ptr -Perl_Ipeepp_ptr -Perl_Iperl_destruct_level_ptr -Perl_Iperldb_ptr -Perl_Iperlio_ptr -Perl_Ipreambleav_ptr -Perl_Iprofiledata_ptr -Perl_Ipsig_name_ptr -Perl_Ipsig_pend_ptr -Perl_Ipsig_ptr_ptr -Perl_Iptr_table_ptr -Perl_Ireentrant_retint_ptr -Perl_Ireg_state_ptr -Perl_Iregdummy_ptr -Perl_Iregex_pad_ptr -Perl_Iregex_padav_ptr -Perl_Ireginterp_cnt_ptr -Perl_Iregistered_mros_ptr -Perl_Iregmatch_slab_ptr -Perl_Iregmatch_state_ptr -Perl_Irehash_seed_ptr -Perl_Irehash_seed_set_ptr -Perl_Ireplgv_ptr -Perl_Irestartop_ptr -Perl_Irs_ptr -Perl_Irunops_ptr -Perl_Isavebegin_ptr -Perl_Isavestack_ix_ptr -Perl_Isavestack_max_ptr -Perl_Isavestack_ptr -Perl_Isawampersand_ptr -Perl_Iscopestack_ix_ptr -Perl_Iscopestack_max_ptr -Perl_Iscopestack_name_ptr -Perl_Iscopestack_ptr -Perl_Iscreamfirst_ptr -Perl_Iscreamnext_ptr -Perl_Isecondgv_ptr -Perl_Isharehook_ptr -Perl_Isig_pending_ptr -Perl_Isighandlerp_ptr -Perl_Isignals_ptr -Perl_Isort_RealCmp_ptr -Perl_Isortcop_ptr -Perl_Isortstash_ptr -Perl_Isplitstr_ptr -Perl_Isrand_called_ptr -Perl_Istack_base_ptr -Perl_Istack_max_ptr -Perl_Istack_sp_ptr -Perl_Istart_env_ptr -Perl_Istashcache_ptr -Perl_Istatbuf_ptr -Perl_Istatcache_ptr -Perl_Istatgv_ptr -Perl_Istatname_ptr -Perl_Istatusvalue_posix_ptr -Perl_Istatusvalue_ptr -Perl_Istderrgv_ptr -Perl_Istdingv_ptr -Perl_Istrtab_ptr -Perl_Isub_generation_ptr -Perl_Isubline_ptr -Perl_Isubname_ptr -Perl_Isv_arenaroot_ptr -Perl_Isv_count_ptr -Perl_Isv_no_ptr -Perl_Isv_objcount_ptr -Perl_Isv_root_ptr -Perl_Isv_undef_ptr -Perl_Isv_yes_ptr -Perl_Isys_intern_ptr -Perl_Itaint_warn_ptr -Perl_Itainted_ptr -Perl_Itainting_ptr -Perl_Ithreadhook_ptr -Perl_Itmps_floor_ptr -Perl_Itmps_ix_ptr -Perl_Itmps_max_ptr -Perl_Itmps_stack_ptr -Perl_Itop_env_ptr -Perl_Itoptarget_ptr -Perl_Iuid_ptr -Perl_Iunicode_ptr -Perl_Iunitcheckav_ptr -Perl_Iunitcheckav_save_ptr -Perl_Iunlockhook_ptr -Perl_Iunsafe_ptr -Perl_Iutf8_X_LVT_ptr -Perl_Iutf8_X_LV_LVT_V_ptr -Perl_Iutf8_X_LV_ptr -Perl_Iutf8_X_L_ptr -Perl_Iutf8_X_T_ptr -Perl_Iutf8_X_V_ptr -Perl_Iutf8_X_begin_ptr -Perl_Iutf8_X_extend_ptr -Perl_Iutf8_X_non_hangul_ptr -Perl_Iutf8_X_prepend_ptr -Perl_Iutf8_alnum_ptr -Perl_Iutf8_alpha_ptr -Perl_Iutf8_ascii_ptr -Perl_Iutf8_cntrl_ptr -Perl_Iutf8_digit_ptr -Perl_Iutf8_graph_ptr -Perl_Iutf8_idcont_ptr -Perl_Iutf8_idstart_ptr -Perl_Iutf8_lower_ptr -Perl_Iutf8_mark_ptr -Perl_Iutf8_perl_space_ptr -Perl_Iutf8_perl_word_ptr -Perl_Iutf8_posix_digit_ptr -Perl_Iutf8_print_ptr -Perl_Iutf8_punct_ptr -Perl_Iutf8_space_ptr -Perl_Iutf8_tofold_ptr -Perl_Iutf8_tolower_ptr -Perl_Iutf8_totitle_ptr -Perl_Iutf8_toupper_ptr -Perl_Iutf8_upper_ptr -Perl_Iutf8_xdigit_ptr -Perl_Iutf8cache_ptr -Perl_Iutf8locale_ptr -Perl_Iwarnhook_ptr -Perl_PerlIO_clearerr -Perl_PerlIO_close -Perl_PerlIO_context_layers -Perl_PerlIO_eof -Perl_PerlIO_error -Perl_PerlIO_fileno -Perl_PerlIO_fill -Perl_PerlIO_flush -Perl_PerlIO_get_base -Perl_PerlIO_get_bufsiz -Perl_PerlIO_get_cnt -Perl_PerlIO_get_ptr -Perl_PerlIO_read -Perl_PerlIO_seek -Perl_PerlIO_set_cnt -Perl_PerlIO_set_ptrcnt -Perl_PerlIO_setlinebuf -Perl_PerlIO_stderr -Perl_PerlIO_stdin -Perl_PerlIO_stdout -Perl_PerlIO_tell -Perl_PerlIO_unread -Perl_PerlIO_write -Perl_Slab_Alloc -Perl_Slab_Free -Perl_amagic_call -Perl_any_dup -Perl_apply_attrs_string -Perl_atfork_lock -Perl_atfork_unlock -Perl_av_arylen_p -Perl_av_clear -Perl_av_delete -Perl_av_exists -Perl_av_extend -Perl_av_fetch -Perl_av_fill -Perl_av_iter_p -Perl_av_len -Perl_av_make -Perl_av_pop -Perl_av_push -Perl_av_reify -Perl_av_shift -Perl_av_store -Perl_av_undef -Perl_av_unshift -Perl_block_gimme -Perl_bytes_from_utf8 -Perl_bytes_to_utf8 -Perl_call_argv -Perl_call_atexit -Perl_call_list -Perl_call_method -Perl_call_pv -Perl_call_sv -Perl_calloc -Perl_cast_i32 -Perl_cast_iv -Perl_cast_ulong -Perl_cast_uv -Perl_ck_warner -Perl_ck_warner_d -Perl_ckwarn -Perl_ckwarn_d -Perl_croak -Perl_croak_nocontext -Perl_croak_xs_usage -Perl_csighandler -Perl_custom_op_desc -Perl_custom_op_name -Perl_cv_const_sv -Perl_cv_undef -Perl_cx_dump -Perl_cx_dup -Perl_cxinc -Perl_deb -Perl_deb_nocontext -Perl_delimcpy -Perl_despatch_signals -Perl_die -Perl_die_nocontext -Perl_dirp_dup -Perl_do_aexec -Perl_do_aspawn -Perl_do_binmode -Perl_do_close -Perl_do_gv_dump -Perl_do_gvgv_dump -Perl_do_hv_dump -Perl_do_join -Perl_do_magic_dump -Perl_do_op_dump -Perl_do_open -Perl_do_open9 -Perl_do_openn -Perl_do_pmop_dump -Perl_do_spawn -Perl_do_spawn_nowait -Perl_do_sprintf -Perl_do_sv_dump -Perl_doing_taint -Perl_doref -Perl_dounwind -Perl_dowantarray -Perl_dump_all -Perl_dump_eval -Perl_dump_form -Perl_dump_indent -Perl_dump_packsubs -Perl_dump_sub -Perl_dump_vindent -Perl_emulate_cop_io -Perl_eval_pv -Perl_eval_sv -Perl_fbm_compile -Perl_fbm_instr -Perl_fetch_cop_label -Perl_filter_add -Perl_filter_del -Perl_filter_read -Perl_find_runcv -Perl_find_rundefsvoffset -Perl_form -Perl_form_nocontext -Perl_fp_dup -Perl_fprintf_nocontext -Perl_free_tmps -Perl_get_av -Perl_get_context -Perl_get_cv -Perl_get_cvn_flags -Perl_get_hv -Perl_get_op_descs -Perl_get_op_names -Perl_get_ppaddr -Perl_get_re_arg -Perl_get_sv -Perl_get_vtbl -Perl_getcwd_sv -Perl_gp_dup -Perl_gp_free -Perl_gp_ref -Perl_grok_bin -Perl_grok_hex -Perl_grok_number -Perl_grok_numeric_radix -Perl_grok_oct -Perl_gv_AVadd -Perl_gv_HVadd -Perl_gv_IOadd -Perl_gv_SVadd -Perl_gv_add_by_type -Perl_gv_autoload4 -Perl_gv_check -Perl_gv_const_sv -Perl_gv_dump -Perl_gv_efullname -Perl_gv_efullname3 -Perl_gv_efullname4 -Perl_gv_fetchfile -Perl_gv_fetchfile_flags -Perl_gv_fetchmeth -Perl_gv_fetchmeth_autoload -Perl_gv_fetchmethod -Perl_gv_fetchmethod_autoload -Perl_gv_fetchmethod_flags -Perl_gv_fetchpv -Perl_gv_fetchpvn_flags -Perl_gv_fetchsv -Perl_gv_fullname -Perl_gv_fullname3 -Perl_gv_fullname4 -Perl_gv_handler -Perl_gv_init -Perl_gv_name_set -Perl_gv_stashpv -Perl_gv_stashpvn -Perl_gv_stashsv -Perl_gv_try_downgrade -Perl_he_dup -Perl_hek_dup -Perl_hv_clear -Perl_hv_clear_placeholders -Perl_hv_common -Perl_hv_common_key_len -Perl_hv_delayfree_ent -Perl_hv_delete -Perl_hv_delete_ent -Perl_hv_eiter_p -Perl_hv_eiter_set -Perl_hv_exists -Perl_hv_exists_ent -Perl_hv_fetch -Perl_hv_fetch_ent -Perl_hv_free_ent -Perl_hv_iterinit -Perl_hv_iterkey -Perl_hv_iterkeysv -Perl_hv_iternext -Perl_hv_iternext_flags -Perl_hv_iternextsv -Perl_hv_iterval -Perl_hv_ksplit -Perl_hv_magic -Perl_hv_name_set -Perl_hv_placeholders_get -Perl_hv_placeholders_p -Perl_hv_placeholders_set -Perl_hv_riter_p -Perl_hv_riter_set -Perl_hv_scalar -Perl_hv_store -Perl_hv_store_ent -Perl_hv_store_flags -Perl_hv_undef -Perl_ibcmp -Perl_ibcmp_locale -Perl_ibcmp_utf8 -Perl_init_i18nl10n -Perl_init_i18nl14n -Perl_init_os_extras -Perl_init_stacks -Perl_init_tm -Perl_instr -Perl_is_ascii_string -Perl_is_lvalue_sub -Perl_is_uni_alnum -Perl_is_uni_alnum_lc -Perl_is_uni_alpha -Perl_is_uni_alpha_lc -Perl_is_uni_ascii -Perl_is_uni_ascii_lc -Perl_is_uni_cntrl -Perl_is_uni_cntrl_lc -Perl_is_uni_digit -Perl_is_uni_digit_lc -Perl_is_uni_graph -Perl_is_uni_graph_lc -Perl_is_uni_idfirst -Perl_is_uni_idfirst_lc -Perl_is_uni_lower -Perl_is_uni_lower_lc -Perl_is_uni_print -Perl_is_uni_print_lc -Perl_is_uni_punct -Perl_is_uni_punct_lc -Perl_is_uni_space -Perl_is_uni_space_lc -Perl_is_uni_upper -Perl_is_uni_upper_lc -Perl_is_uni_xdigit -Perl_is_uni_xdigit_lc -Perl_is_utf8_X_L -Perl_is_utf8_X_LV -Perl_is_utf8_X_LVT -Perl_is_utf8_X_LV_LVT_V -Perl_is_utf8_X_T -Perl_is_utf8_X_V -Perl_is_utf8_X_begin -Perl_is_utf8_X_extend -Perl_is_utf8_X_non_hangul -Perl_is_utf8_X_prepend -Perl_is_utf8_alnum -Perl_is_utf8_alpha -Perl_is_utf8_ascii -Perl_is_utf8_char -Perl_is_utf8_cntrl -Perl_is_utf8_digit -Perl_is_utf8_graph -Perl_is_utf8_idcont -Perl_is_utf8_idfirst -Perl_is_utf8_lower -Perl_is_utf8_mark -Perl_is_utf8_perl_space -Perl_is_utf8_perl_word -Perl_is_utf8_posix_digit -Perl_is_utf8_print -Perl_is_utf8_punct -Perl_is_utf8_space -Perl_is_utf8_string -Perl_is_utf8_string_loc -Perl_is_utf8_string_loclen -Perl_is_utf8_upper -Perl_is_utf8_xdigit -Perl_leave_scope -Perl_lex_bufutf8 -Perl_lex_discard_to -Perl_lex_end -Perl_lex_grow_linestr -Perl_lex_next_chunk -Perl_lex_peek_unichar -Perl_lex_read_space -Perl_lex_read_to -Perl_lex_read_unichar -Perl_lex_stuff_pvn -Perl_lex_stuff_sv -Perl_lex_unstuff -Perl_load_module -Perl_load_module_nocontext -Perl_looks_like_number -Perl_magic_dump -Perl_malloc -Perl_markstack_grow -Perl_mess -Perl_mess_nocontext -Perl_mfree -Perl_mg_clear -Perl_mg_copy -Perl_mg_dup -Perl_mg_find -Perl_mg_free -Perl_mg_get -Perl_mg_length -Perl_mg_magical -Perl_mg_set -Perl_mg_size -Perl_mini_mktime -Perl_mod -Perl_moreswitches -Perl_mro_get_from_name -Perl_mro_get_linear_isa -Perl_mro_get_private_data -Perl_mro_meta_init -Perl_mro_method_changed_in -Perl_mro_register -Perl_mro_set_mro -Perl_mro_set_private_data -Perl_my_atof -Perl_my_atof2 -Perl_my_cxt_init -Perl_my_dirfd -Perl_my_exit -Perl_my_failure_exit -Perl_my_fflush_all -Perl_my_fork -Perl_my_lstat -Perl_my_popen_list -Perl_my_setenv -Perl_my_snprintf -Perl_my_socketpair -Perl_my_stat -Perl_my_strftime -Perl_my_strlcat -Perl_my_strlcpy -Perl_my_vsnprintf -Perl_newANONATTRSUB -Perl_newANONHASH -Perl_newANONLIST -Perl_newANONSUB -Perl_newASSIGNOP -Perl_newATTRSUB -Perl_newAV -Perl_newAVREF -Perl_newBINOP -Perl_newCONDOP -Perl_newCONSTSUB -Perl_newCVREF -Perl_newFORM -Perl_newFOROP -Perl_newGIVENOP -Perl_newGVOP -Perl_newGVREF -Perl_newGVgen -Perl_newHV -Perl_newHVREF -Perl_newHVhv -Perl_newIO -Perl_newLISTOP -Perl_newLOGOP -Perl_newLOOPEX -Perl_newLOOPOP -Perl_newMYSUB -Perl_newNULLLIST -Perl_newOP -Perl_newPADOP -Perl_newPMOP -Perl_newPROG -Perl_newPVOP -Perl_newRANGE -Perl_newRV -Perl_newRV_noinc -Perl_newSLICEOP -Perl_newSTATEOP -Perl_newSUB -Perl_newSV -Perl_newSVOP -Perl_newSVREF -Perl_newSV_type -Perl_newSVhek -Perl_newSViv -Perl_newSVnv -Perl_newSVpv -Perl_newSVpvf -Perl_newSVpvf_nocontext -Perl_newSVpvn -Perl_newSVpvn_flags -Perl_newSVpvn_share -Perl_newSVrv -Perl_newSVsv -Perl_newSVuv -Perl_newUNOP -Perl_newWHENOP -Perl_newWHILEOP -Perl_newXS -Perl_newXS_flags -Perl_new_collate -Perl_new_ctype -Perl_new_numeric -Perl_new_stackinfo -Perl_new_version -Perl_new_warnings_bitfield -Perl_ninstr -Perl_nothreadhook -Perl_op_clear -Perl_op_dump -Perl_op_free -Perl_op_null -Perl_op_refcnt_lock -Perl_op_refcnt_unlock -Perl_pack_cat -Perl_packlist -Perl_pad_findmy -Perl_pad_push -Perl_parser_dup -Perl_pmflag -Perl_pmop_dump -Perl_pop_scope -Perl_pregcomp -Perl_pregexec -Perl_pregfree -Perl_pregfree2 -Perl_prescan_version -Perl_printf_nocontext -Perl_ptr_table_clear -Perl_ptr_table_fetch -Perl_ptr_table_free -Perl_ptr_table_new -Perl_ptr_table_split -Perl_ptr_table_store -Perl_push_scope -Perl_pv_display -Perl_pv_escape -Perl_pv_pretty -Perl_pv_uni_display -Perl_qerror -Perl_re_compile -Perl_re_dup_guts -Perl_re_intuit_start -Perl_re_intuit_string -Perl_realloc -Perl_reentrant_free -Perl_reentrant_init -Perl_reentrant_retry -Perl_reentrant_size -Perl_ref -Perl_refcounted_he_chain_2hv -Perl_refcounted_he_fetch -Perl_refcounted_he_new -Perl_reg_named_buff -Perl_reg_named_buff_all -Perl_reg_named_buff_exists -Perl_reg_named_buff_fetch -Perl_reg_named_buff_firstkey -Perl_reg_named_buff_iter -Perl_reg_named_buff_nextkey -Perl_reg_named_buff_scalar -Perl_reg_numbered_buff_fetch -Perl_reg_numbered_buff_length -Perl_reg_numbered_buff_store -Perl_reg_qr_package -Perl_reg_temp_copy -Perl_regclass_swash -Perl_regcurly -Perl_regdump -Perl_regdupe_internal -Perl_regexec_flags -Perl_regfree_internal -Perl_reginitcolors -Perl_regnext -Perl_repeatcpy -Perl_report_uninit -Perl_require_pv -Perl_rninstr -Perl_rsignal -Perl_rsignal_state -Perl_runops_debug -Perl_runops_standard -Perl_rvpv_dup -Perl_safesyscalloc -Perl_safesysfree -Perl_safesysmalloc -Perl_safesysrealloc -Perl_save_I16 -Perl_save_I32 -Perl_save_I8 -Perl_save_adelete -Perl_save_aelem_flags -Perl_save_alloc -Perl_save_aptr -Perl_save_ary -Perl_save_bool -Perl_save_clearsv -Perl_save_delete -Perl_save_destructor -Perl_save_destructor_x -Perl_save_freeop -Perl_save_freepv -Perl_save_freesv -Perl_save_generic_pvref -Perl_save_generic_svref -Perl_save_gp -Perl_save_hash -Perl_save_hdelete -Perl_save_helem_flags -Perl_save_hptr -Perl_save_int -Perl_save_item -Perl_save_iv -Perl_save_list -Perl_save_long -Perl_save_mortalizesv -Perl_save_nogv -Perl_save_op -Perl_save_padsv_and_mortalize -Perl_save_pptr -Perl_save_pushptr -Perl_save_re_context -Perl_save_scalar -Perl_save_set_svflags -Perl_save_shared_pvref -Perl_save_sptr -Perl_save_svref -Perl_save_vptr -Perl_savepv -Perl_savepvn -Perl_savesharedpv -Perl_savesharedpvn -Perl_savestack_grow -Perl_savestack_grow_cnt -Perl_savesvpv -Perl_scan_bin -Perl_scan_hex -Perl_scan_num -Perl_scan_oct -Perl_scan_version -Perl_scan_vstring -Perl_screaminstr -Perl_seed -Perl_set_context -Perl_set_numeric_local -Perl_set_numeric_radix -Perl_set_numeric_standard -Perl_setdefout -Perl_share_hek -Perl_si_dup -Perl_signbit -Perl_sortsv -Perl_sortsv_flags -Perl_ss_dup -Perl_stack_grow -Perl_start_subparse -Perl_stashpv_hvname_match -Perl_str_to_version -Perl_sv_2bool -Perl_sv_2cv -Perl_sv_2io -Perl_sv_2iv -Perl_sv_2iv_flags -Perl_sv_2mortal -Perl_sv_2nv -Perl_sv_2pv -Perl_sv_2pv_flags -Perl_sv_2pv_nolen -Perl_sv_2pvbyte -Perl_sv_2pvbyte_nolen -Perl_sv_2pvutf8 -Perl_sv_2pvutf8_nolen -Perl_sv_2uv -Perl_sv_2uv_flags -Perl_sv_backoff -Perl_sv_bless -Perl_sv_cat_decode -Perl_sv_catpv -Perl_sv_catpv_mg -Perl_sv_catpvf -Perl_sv_catpvf_mg -Perl_sv_catpvf_mg_nocontext -Perl_sv_catpvf_nocontext -Perl_sv_catpvn -Perl_sv_catpvn_flags -Perl_sv_catpvn_mg -Perl_sv_catsv -Perl_sv_catsv_flags -Perl_sv_catsv_mg -Perl_sv_chop -Perl_sv_clear -Perl_sv_cmp -Perl_sv_cmp_locale -Perl_sv_collxfrm -Perl_sv_compile_2op -Perl_sv_copypv -Perl_sv_dec -Perl_sv_derived_from -Perl_sv_destroyable -Perl_sv_does -Perl_sv_dump -Perl_sv_dup -Perl_sv_eq -Perl_sv_force_normal -Perl_sv_force_normal_flags -Perl_sv_free -Perl_sv_free2 -Perl_sv_gets -Perl_sv_grow -Perl_sv_inc -Perl_sv_insert -Perl_sv_insert_flags -Perl_sv_isa -Perl_sv_isobject -Perl_sv_iv -Perl_sv_len -Perl_sv_len_utf8 -Perl_sv_magic -Perl_sv_magicext -Perl_sv_mortalcopy -Perl_sv_newmortal -Perl_sv_newref -Perl_sv_nolocking -Perl_sv_nosharing -Perl_sv_nounlocking -Perl_sv_nv -Perl_sv_peek -Perl_sv_pos_b2u -Perl_sv_pos_u2b -Perl_sv_pos_u2b_flags -Perl_sv_pv -Perl_sv_pvbyte -Perl_sv_pvbyten -Perl_sv_pvbyten_force -Perl_sv_pvn -Perl_sv_pvn_force -Perl_sv_pvn_force_flags -Perl_sv_pvn_nomg -Perl_sv_pvutf8 -Perl_sv_pvutf8n -Perl_sv_pvutf8n_force -Perl_sv_recode_to_utf8 -Perl_sv_reftype -Perl_sv_replace -Perl_sv_report_used -Perl_sv_reset -Perl_sv_rvweaken -Perl_sv_setiv -Perl_sv_setiv_mg -Perl_sv_setnv -Perl_sv_setnv_mg -Perl_sv_setpv -Perl_sv_setpv_mg -Perl_sv_setpvf -Perl_sv_setpvf_mg -Perl_sv_setpvf_mg_nocontext -Perl_sv_setpvf_nocontext -Perl_sv_setpviv -Perl_sv_setpviv_mg -Perl_sv_setpvn -Perl_sv_setpvn_mg -Perl_sv_setref_iv -Perl_sv_setref_nv -Perl_sv_setref_pv -Perl_sv_setref_pvn -Perl_sv_setref_uv -Perl_sv_setsv -Perl_sv_setsv_flags -Perl_sv_setsv_mg -Perl_sv_setuv -Perl_sv_setuv_mg -Perl_sv_taint -Perl_sv_tainted -Perl_sv_true -Perl_sv_uni_display -Perl_sv_unmagic -Perl_sv_unref -Perl_sv_unref_flags -Perl_sv_untaint -Perl_sv_upgrade -Perl_sv_usepvn -Perl_sv_usepvn_flags -Perl_sv_usepvn_mg -Perl_sv_utf8_decode -Perl_sv_utf8_downgrade -Perl_sv_utf8_encode -Perl_sv_utf8_upgrade -Perl_sv_utf8_upgrade_flags_grow -Perl_sv_uv -Perl_sv_vcatpvf -Perl_sv_vcatpvf_mg -Perl_sv_vcatpvfn -Perl_sv_vsetpvf -Perl_sv_vsetpvf_mg -Perl_sv_vsetpvfn -Perl_swash_fetch -Perl_swash_init -Perl_sys_init -Perl_sys_init3 -Perl_sys_intern_clear -Perl_sys_intern_dup -Perl_sys_intern_init -Perl_sys_term -Perl_taint_env -Perl_taint_proper -Perl_tmps_grow -Perl_to_uni_fold -Perl_to_uni_lower -Perl_to_uni_lower_lc -Perl_to_uni_title -Perl_to_uni_title_lc -Perl_to_uni_upper -Perl_to_uni_upper_lc -Perl_to_utf8_case -Perl_to_utf8_fold -Perl_to_utf8_lower -Perl_to_utf8_title -Perl_to_utf8_upper -Perl_unpack_str -Perl_unpackstring -Perl_unsharepvn -Perl_upg_version -Perl_utf16_to_utf8 -Perl_utf16_to_utf8_reversed -Perl_utf8_distance -Perl_utf8_hop -Perl_utf8_length -Perl_utf8_to_bytes -Perl_utf8_to_uvchr -Perl_utf8_to_uvuni -Perl_utf8n_to_uvchr -Perl_utf8n_to_uvuni -Perl_uvchr_to_utf8 -Perl_uvchr_to_utf8_flags -Perl_uvuni_to_utf8 -Perl_uvuni_to_utf8_flags -Perl_vcmp -Perl_vcroak -Perl_vdeb -Perl_vform -Perl_vivify_defelem -Perl_vload_module -Perl_vmess -Perl_vnewSVpvf -Perl_vnormal -Perl_vnumify -Perl_vstringify -Perl_vverify -Perl_vwarn -Perl_vwarner -Perl_warn -Perl_warn_nocontext -Perl_warner -Perl_warner_nocontext -Perl_whichsig -Perl_win32_init -Perl_win32_term -Perl_yylex -RunPerl -boot_DynaLoader -boot_Win32CORE -init_Win32CORE -perl_alloc -perl_alloc_override -perl_alloc_using -perl_clone -perl_clone_host -perl_clone_using -perl_construct -perl_destruct -perl_free -perl_get_host_info -perl_parse -perl_run -perlsio_binmode -setgid -setuid -win32_abort -win32_accept -win32_access -win32_alarm -win32_ansipath -win32_async_check -win32_bind -win32_calloc -win32_chdir -win32_chmod -win32_chsize -win32_clearenv -win32_clearerr -win32_close -win32_closedir -win32_closesocket -win32_connect -win32_crypt -win32_dup -win32_dup2 -win32_dynaload -win32_endhostent -win32_endnetent -win32_endprotoent -win32_endservent -win32_environ -win32_eof -win32_errno -win32_execv -win32_execvp -win32_fclose -win32_fcloseall -win32_fdopen -win32_feof -win32_ferror -win32_fflush -win32_fgetc -win32_fgetpos -win32_fgets -win32_fileno -win32_flock -win32_flushall -win32_fopen -win32_fprintf -win32_fputc -win32_fputs -win32_fread -win32_free -win32_free_childdir -win32_free_childenv -win32_freopen -win32_fseek -win32_fsetpos -win32_fstat -win32_ftell -win32_fwrite -win32_get_childdir -win32_get_childenv -win32_get_osfhandle -win32_getc -win32_getchar -win32_getenv -win32_gethostbyaddr -win32_gethostbyname -win32_gethostname -win32_getnetbyaddr -win32_getnetbyname -win32_getnetent -win32_getpeername -win32_getpid -win32_getprotobyname -win32_getprotobynumber -win32_getprotoent -win32_gets -win32_getservbyname -win32_getservbyport -win32_getservent -win32_getsockname -win32_getsockopt -win32_gettimeofday -win32_htonl -win32_htons -win32_inet_addr -win32_inet_ntoa -win32_ioctl -win32_ioctlsocket -win32_isatty -win32_kill -win32_link -win32_listen -win32_longpath -win32_lseek -win32_malloc -win32_mkdir -win32_ntohl -win32_ntohs -win32_open -win32_open_osfhandle -win32_opendir -win32_os_id -win32_pclose -win32_perror -win32_pipe -win32_popen -win32_printf -win32_putc -win32_putchar -win32_putenv -win32_puts -win32_read -win32_readdir -win32_realloc -win32_recv -win32_recvfrom -win32_rename -win32_rewind -win32_rewinddir -win32_rmdir -win32_seekdir -win32_select -win32_send -win32_sendto -win32_setbuf -win32_sethostent -win32_setmode -win32_setnetent -win32_setprotoent -win32_setservent -win32_setsockopt -win32_setvbuf -win32_shutdown -win32_sleep -win32_socket -win32_spawnvp -win32_stat -win32_stderr -win32_stdin -win32_stdout -win32_str_os_error -win32_strerror -win32_tell -win32_telldir -win32_times -win32_tmpfile -win32_uname -win32_ungetc -win32_unlink -win32_utime -win32_vfprintf -win32_vprintf -win32_wait -win32_waitpid -win32_write diff --git a/plugins/perl/importlib/perl512-x86.def b/plugins/perl/importlib/perl512-x86.def deleted file mode 100644 index 5cfcaa68..00000000 --- a/plugins/perl/importlib/perl512-x86.def +++ /dev/null @@ -1,1420 +0,0 @@ -LIBRARY perl512 -EXPORTS -PL_bincompat_options -PL_check -PL_fold -PL_fold_locale -PL_freq -PL_keyword_plugin -PL_memory_wrap -PL_no_aelem -PL_no_dir_func -PL_no_func -PL_no_helem_sv -PL_no_localize_ref -PL_no_mem -PL_no_modify -PL_no_myglob -PL_no_security -PL_no_sock_func -PL_no_symref -PL_no_usym -PL_no_wrongref -PL_op_desc -PL_op_name -PL_opargs -PL_perlio_mutex -PL_ppaddr -PL_reg_extflags_name -PL_reg_name -PL_regkind -PL_sig_name -PL_sig_num -PL_simple -PL_utf8skip -PL_uuemap -PL_varies -PL_vtbl_amagic -PL_vtbl_amagicelem -PL_vtbl_arylen -PL_vtbl_backref -PL_vtbl_bm -PL_vtbl_collxfrm -PL_vtbl_dbline -PL_vtbl_defelem -PL_vtbl_env -PL_vtbl_envelem -PL_vtbl_fm -PL_vtbl_isa -PL_vtbl_isaelem -PL_vtbl_mglob -PL_vtbl_nkeys -PL_vtbl_pack -PL_vtbl_packelem -PL_vtbl_pos -PL_vtbl_regdata -PL_vtbl_regdatum -PL_vtbl_regexp -PL_vtbl_sig -PL_vtbl_sigelem -PL_vtbl_substr -PL_vtbl_sv -PL_vtbl_taint -PL_vtbl_utf8 -PL_vtbl_uvar -PL_vtbl_vec -PL_warn_nl -PL_warn_nosemi -PL_warn_reserved -PL_warn_uninit -PerlIOBase_binmode -PerlIOBase_clearerr -PerlIOBase_close -PerlIOBase_dup -PerlIOBase_eof -PerlIOBase_error -PerlIOBase_fileno -PerlIOBase_noop_fail -PerlIOBase_noop_ok -PerlIOBase_popped -PerlIOBase_pushed -PerlIOBase_read -PerlIOBase_setlinebuf -PerlIOBase_unread -PerlIOBuf_bufsiz -PerlIOBuf_close -PerlIOBuf_dup -PerlIOBuf_fill -PerlIOBuf_flush -PerlIOBuf_get_base -PerlIOBuf_get_cnt -PerlIOBuf_get_ptr -PerlIOBuf_open -PerlIOBuf_popped -PerlIOBuf_pushed -PerlIOBuf_read -PerlIOBuf_seek -PerlIOBuf_set_ptrcnt -PerlIOBuf_tell -PerlIOBuf_unread -PerlIOBuf_write -PerlIO_allocate -PerlIO_apply_layera -PerlIO_apply_layers -PerlIO_arg_fetch -PerlIO_binmode -PerlIO_canset_cnt -PerlIO_debug -PerlIO_define_layer -PerlIO_exportFILE -PerlIO_fast_gets -PerlIO_fdopen -PerlIO_findFILE -PerlIO_find_layer -PerlIO_getc -PerlIO_getname -PerlIO_getpos -PerlIO_has_base -PerlIO_has_cntptr -PerlIO_importFILE -PerlIO_init -PerlIO_isutf8 -PerlIO_layer_fetch -PerlIO_list_alloc -PerlIO_list_free -PerlIO_modestr -PerlIO_open -PerlIO_parse_layers -PerlIO_pending -PerlIO_perlio -PerlIO_pop -PerlIO_printf -PerlIO_push -PerlIO_putc -PerlIO_puts -PerlIO_releaseFILE -PerlIO_reopen -PerlIO_rewind -PerlIO_setpos -PerlIO_sprintf -PerlIO_stdoutf -PerlIO_sv_dup -PerlIO_teardown -PerlIO_tmpfile -PerlIO_ungetc -PerlIO_vprintf -PerlIO_vsprintf -Perl_GNo_ptr -Perl_GYes_ptr -Perl_Gcheck_ptr -Perl_Gcsighandlerp_ptr -Perl_Gcurinterp_ptr -Perl_Gdo_undump_ptr -Perl_Gdollarzero_mutex_ptr -Perl_Gfold_locale_ptr -Perl_Ghexdigit_ptr -Perl_Ghints_mutex_ptr -Perl_Ginterp_size_5_10_0_ptr -Perl_Ginterp_size_ptr -Perl_Gkeyword_plugin_ptr -Perl_Gmy_ctx_mutex_ptr -Perl_Gmy_cxt_index_ptr -Perl_Gop_mutex_ptr -Perl_Gop_seq_ptr -Perl_Gop_sequence_ptr -Perl_Gpatleave_ptr -Perl_Gperlio_debug_fd_ptr -Perl_Gperlio_fd_refcnt_ptr -Perl_Gperlio_fd_refcnt_size_ptr -Perl_Gperlio_mutex_ptr -Perl_Gppaddr_ptr -Perl_Grevision_ptr -Perl_Grunops_dbg_ptr -Perl_Grunops_std_ptr -Perl_Gsh_path_ptr -Perl_Gsig_trapped_ptr -Perl_Gsigfpe_saved_ptr -Perl_Gsubversion_ptr -Perl_Gsv_placeholder_ptr -Perl_Gthr_key_ptr -Perl_Guse_safe_putenv_ptr -Perl_Gv_AMupdate -Perl_Gversion_ptr -Perl_Gveto_cleanup_ptr -Perl_IArgv_ptr -Perl_ICmd_ptr -Perl_IDBgv_ptr -Perl_IDBline_ptr -Perl_IDBsignal_ptr -Perl_IDBsingle_ptr -Perl_IDBsub_ptr -Perl_IDBtrace_ptr -Perl_IDir_ptr -Perl_IEnv_ptr -Perl_ILIO_ptr -Perl_IMemParse_ptr -Perl_IMemShared_ptr -Perl_IMem_ptr -Perl_IOpPtr_ptr -Perl_IOpSlab_ptr -Perl_IOpSpace_ptr -Perl_IProc_ptr -Perl_ISock_ptr -Perl_IStdIO_ptr -Perl_ISv_ptr -Perl_IXpv_ptr -Perl_Iamagic_generation_ptr -Perl_Ian_ptr -Perl_Iargvgv_ptr -Perl_Iargvout_stack_ptr -Perl_Iargvoutgv_ptr -Perl_Ibasetime_ptr -Perl_Ibeginav_ptr -Perl_Ibeginav_save_ptr -Perl_Ibody_arenas_ptr -Perl_Ibody_roots_ptr -Perl_Ibodytarget_ptr -Perl_Ibreakable_sub_gen_ptr -Perl_Icheckav_ptr -Perl_Icheckav_save_ptr -Perl_Ichopset_ptr -Perl_Iclocktick_ptr -Perl_Icollation_ix_ptr -Perl_Icollation_name_ptr -Perl_Icollation_standard_ptr -Perl_Icollxfrm_base_ptr -Perl_Icollxfrm_mult_ptr -Perl_Icolors_ptr -Perl_Icolorset_ptr -Perl_Icompcv_ptr -Perl_Icompiling_ptr -Perl_Icomppad_name_fill_ptr -Perl_Icomppad_name_floor_ptr -Perl_Icomppad_name_ptr -Perl_Icomppad_ptr -Perl_Icop_seqmax_ptr -Perl_Icurcop_ptr -Perl_Icurcopdb_ptr -Perl_Icurpad_ptr -Perl_Icurpm_ptr -Perl_Icurstack_ptr -Perl_Icurstackinfo_ptr -Perl_Icurstash_ptr -Perl_Icurstname_ptr -Perl_Icustom_op_descs_ptr -Perl_Icustom_op_names_ptr -Perl_Icv_has_eval_ptr -Perl_Idbargs_ptr -Perl_Idebstash_ptr -Perl_Idebug_pad_ptr -Perl_Idebug_ptr -Perl_Idef_layerlist_ptr -Perl_Idefgv_ptr -Perl_Idefoutgv_ptr -Perl_Idefstash_ptr -Perl_Idelaymagic_ptr -Perl_Idestroyhook_ptr -Perl_Idiehook_ptr -Perl_Idirty_ptr -Perl_Idoextract_ptr -Perl_Idoswitches_ptr -Perl_Idowarn_ptr -Perl_Idumpindent_ptr -Perl_Ie_script_ptr -Perl_Iefloatbuf_ptr -Perl_Iefloatsize_ptr -Perl_Iegid_ptr -Perl_Iencoding_ptr -Perl_Iendav_ptr -Perl_Ienvgv_ptr -Perl_Ierrgv_ptr -Perl_Ierrors_ptr -Perl_Ieuid_ptr -Perl_Ieval_root_ptr -Perl_Ieval_start_ptr -Perl_Ievalseq_ptr -Perl_Iexit_flags_ptr -Perl_Iexitlist_ptr -Perl_Iexitlistlen_ptr -Perl_Ifdpid_ptr -Perl_Ifilemode_ptr -Perl_Ifirstgv_ptr -Perl_Iforkprocess_ptr -Perl_Iformfeed_ptr -Perl_Iformtarget_ptr -Perl_Igensym_ptr -Perl_Igid_ptr -Perl_Iglob_index_ptr -Perl_Iglobalstash_ptr -Perl_Ihash_seed_ptr -Perl_Ihintgv_ptr -Perl_Ihints_ptr -Perl_Ihv_fetch_ent_mh_ptr -Perl_Iin_clean_all_ptr -Perl_Iin_clean_objs_ptr -Perl_Iin_eval_ptr -Perl_Iin_load_module_ptr -Perl_Iincgv_ptr -Perl_Iinitav_ptr -Perl_Iinplace_ptr -Perl_Iisarev_ptr -Perl_Iknown_layers_ptr -Perl_Ilast_in_gv_ptr -Perl_Ilast_swash_hv_ptr -Perl_Ilast_swash_key_ptr -Perl_Ilast_swash_klen_ptr -Perl_Ilast_swash_slen_ptr -Perl_Ilast_swash_tmps_ptr -Perl_Ilastfd_ptr -Perl_Ilastscream_ptr -Perl_Ilaststatval_ptr -Perl_Ilaststype_ptr -Perl_Ilocalizing_ptr -Perl_Ilocalpatches_ptr -Perl_Ilockhook_ptr -Perl_Imain_cv_ptr -Perl_Imain_root_ptr -Perl_Imain_start_ptr -Perl_Imainstack_ptr -Perl_Imarkstack_max_ptr -Perl_Imarkstack_ptr -Perl_Imarkstack_ptr_ptr -Perl_Imax_intro_pending_ptr -Perl_Imaxo_ptr -Perl_Imaxscream_ptr -Perl_Imaxsysfd_ptr -Perl_Imess_sv_ptr -Perl_Imin_intro_pending_ptr -Perl_Iminus_E_ptr -Perl_Iminus_F_ptr -Perl_Iminus_a_ptr -Perl_Iminus_c_ptr -Perl_Iminus_l_ptr -Perl_Iminus_n_ptr -Perl_Iminus_p_ptr -Perl_Imodglobal_ptr -Perl_Imy_cxt_list_ptr -Perl_Imy_cxt_size_ptr -Perl_Ina_ptr -Perl_Inice_chunk_ptr -Perl_Inice_chunk_size_ptr -Perl_Inomemok_ptr -Perl_Inumeric_local_ptr -Perl_Inumeric_name_ptr -Perl_Inumeric_radix_sv_ptr -Perl_Inumeric_standard_ptr -Perl_Iofsgv_ptr -Perl_Ioldname_ptr -Perl_Iop_mask_ptr -Perl_Iop_ptr -Perl_Iopfreehook_ptr -Perl_Iorigalen_ptr -Perl_Iorigargc_ptr -Perl_Iorigargv_ptr -Perl_Iorigenviron_ptr -Perl_Iorigfilename_ptr -Perl_Iors_sv_ptr -Perl_Iosname_ptr -Perl_Ipad_reset_pending_ptr -Perl_Ipadix_floor_ptr -Perl_Ipadix_ptr -Perl_Iparser_ptr -Perl_Ipatchlevel_ptr -Perl_Ipeepp_ptr -Perl_Iperl_destruct_level_ptr -Perl_Iperldb_ptr -Perl_Iperlio_ptr -Perl_Ipreambleav_ptr -Perl_Iprofiledata_ptr -Perl_Ipsig_name_ptr -Perl_Ipsig_pend_ptr -Perl_Ipsig_ptr_ptr -Perl_Iptr_table_ptr -Perl_Ireentrant_retint_ptr -Perl_Ireg_state_ptr -Perl_Iregdummy_ptr -Perl_Iregex_pad_ptr -Perl_Iregex_padav_ptr -Perl_Ireginterp_cnt_ptr -Perl_Iregistered_mros_ptr -Perl_Iregmatch_slab_ptr -Perl_Iregmatch_state_ptr -Perl_Irehash_seed_ptr -Perl_Irehash_seed_set_ptr -Perl_Ireplgv_ptr -Perl_Irestartop_ptr -Perl_Irs_ptr -Perl_Irunops_ptr -Perl_Isavebegin_ptr -Perl_Isavestack_ix_ptr -Perl_Isavestack_max_ptr -Perl_Isavestack_ptr -Perl_Isawampersand_ptr -Perl_Iscopestack_ix_ptr -Perl_Iscopestack_max_ptr -Perl_Iscopestack_name_ptr -Perl_Iscopestack_ptr -Perl_Iscreamfirst_ptr -Perl_Iscreamnext_ptr -Perl_Isecondgv_ptr -Perl_Isharehook_ptr -Perl_Isig_pending_ptr -Perl_Isighandlerp_ptr -Perl_Isignals_ptr -Perl_Isort_RealCmp_ptr -Perl_Isortcop_ptr -Perl_Isortstash_ptr -Perl_Isplitstr_ptr -Perl_Isrand_called_ptr -Perl_Istack_base_ptr -Perl_Istack_max_ptr -Perl_Istack_sp_ptr -Perl_Istart_env_ptr -Perl_Istashcache_ptr -Perl_Istatbuf_ptr -Perl_Istatcache_ptr -Perl_Istatgv_ptr -Perl_Istatname_ptr -Perl_Istatusvalue_posix_ptr -Perl_Istatusvalue_ptr -Perl_Istderrgv_ptr -Perl_Istdingv_ptr -Perl_Istrtab_ptr -Perl_Isub_generation_ptr -Perl_Isubline_ptr -Perl_Isubname_ptr -Perl_Isv_arenaroot_ptr -Perl_Isv_count_ptr -Perl_Isv_no_ptr -Perl_Isv_objcount_ptr -Perl_Isv_root_ptr -Perl_Isv_undef_ptr -Perl_Isv_yes_ptr -Perl_Isys_intern_ptr -Perl_Itaint_warn_ptr -Perl_Itainted_ptr -Perl_Itainting_ptr -Perl_Ithreadhook_ptr -Perl_Itmps_floor_ptr -Perl_Itmps_ix_ptr -Perl_Itmps_max_ptr -Perl_Itmps_stack_ptr -Perl_Itop_env_ptr -Perl_Itoptarget_ptr -Perl_Iuid_ptr -Perl_Iunicode_ptr -Perl_Iunitcheckav_ptr -Perl_Iunitcheckav_save_ptr -Perl_Iunlockhook_ptr -Perl_Iunsafe_ptr -Perl_Iutf8_X_LVT_ptr -Perl_Iutf8_X_LV_LVT_V_ptr -Perl_Iutf8_X_LV_ptr -Perl_Iutf8_X_L_ptr -Perl_Iutf8_X_T_ptr -Perl_Iutf8_X_V_ptr -Perl_Iutf8_X_begin_ptr -Perl_Iutf8_X_extend_ptr -Perl_Iutf8_X_non_hangul_ptr -Perl_Iutf8_X_prepend_ptr -Perl_Iutf8_alnum_ptr -Perl_Iutf8_alpha_ptr -Perl_Iutf8_ascii_ptr -Perl_Iutf8_cntrl_ptr -Perl_Iutf8_digit_ptr -Perl_Iutf8_graph_ptr -Perl_Iutf8_idcont_ptr -Perl_Iutf8_idstart_ptr -Perl_Iutf8_lower_ptr -Perl_Iutf8_mark_ptr -Perl_Iutf8_perl_space_ptr -Perl_Iutf8_perl_word_ptr -Perl_Iutf8_posix_digit_ptr -Perl_Iutf8_print_ptr -Perl_Iutf8_punct_ptr -Perl_Iutf8_space_ptr -Perl_Iutf8_tofold_ptr -Perl_Iutf8_tolower_ptr -Perl_Iutf8_totitle_ptr -Perl_Iutf8_toupper_ptr -Perl_Iutf8_upper_ptr -Perl_Iutf8_xdigit_ptr -Perl_Iutf8cache_ptr -Perl_Iutf8locale_ptr -Perl_Iwarnhook_ptr -Perl_PerlIO_clearerr -Perl_PerlIO_close -Perl_PerlIO_context_layers -Perl_PerlIO_eof -Perl_PerlIO_error -Perl_PerlIO_fileno -Perl_PerlIO_fill -Perl_PerlIO_flush -Perl_PerlIO_get_base -Perl_PerlIO_get_bufsiz -Perl_PerlIO_get_cnt -Perl_PerlIO_get_ptr -Perl_PerlIO_read -Perl_PerlIO_seek -Perl_PerlIO_set_cnt -Perl_PerlIO_set_ptrcnt -Perl_PerlIO_setlinebuf -Perl_PerlIO_stderr -Perl_PerlIO_stdin -Perl_PerlIO_stdout -Perl_PerlIO_tell -Perl_PerlIO_unread -Perl_PerlIO_write -Perl_Slab_Alloc -Perl_Slab_Free -Perl_amagic_call -Perl_any_dup -Perl_apply_attrs_string -Perl_atfork_lock -Perl_atfork_unlock -Perl_av_arylen_p -Perl_av_clear -Perl_av_delete -Perl_av_exists -Perl_av_extend -Perl_av_fetch -Perl_av_fill -Perl_av_iter_p -Perl_av_len -Perl_av_make -Perl_av_pop -Perl_av_push -Perl_av_reify -Perl_av_shift -Perl_av_store -Perl_av_undef -Perl_av_unshift -Perl_block_gimme -Perl_bytes_from_utf8 -Perl_bytes_to_utf8 -Perl_call_argv -Perl_call_atexit -Perl_call_list -Perl_call_method -Perl_call_pv -Perl_call_sv -Perl_calloc -Perl_cast_i32 -Perl_cast_iv -Perl_cast_ulong -Perl_cast_uv -Perl_ck_warner -Perl_ck_warner_d -Perl_ckwarn -Perl_ckwarn_d -Perl_croak -Perl_croak_nocontext -Perl_croak_xs_usage -Perl_csighandler -Perl_custom_op_desc -Perl_custom_op_name -Perl_cv_const_sv -Perl_cv_undef -Perl_cx_dump -Perl_cx_dup -Perl_cxinc -Perl_deb -Perl_deb_nocontext -Perl_delimcpy -Perl_despatch_signals -Perl_die -Perl_die_nocontext -Perl_dirp_dup -Perl_do_aexec -Perl_do_aspawn -Perl_do_binmode -Perl_do_close -Perl_do_gv_dump -Perl_do_gvgv_dump -Perl_do_hv_dump -Perl_do_join -Perl_do_magic_dump -Perl_do_op_dump -Perl_do_open -Perl_do_open9 -Perl_do_openn -Perl_do_pmop_dump -Perl_do_spawn -Perl_do_spawn_nowait -Perl_do_sprintf -Perl_do_sv_dump -Perl_doing_taint -Perl_doref -Perl_dounwind -Perl_dowantarray -Perl_dump_all -Perl_dump_eval -Perl_dump_form -Perl_dump_indent -Perl_dump_packsubs -Perl_dump_sub -Perl_dump_vindent -Perl_emulate_cop_io -Perl_eval_pv -Perl_eval_sv -Perl_fbm_compile -Perl_fbm_instr -Perl_fetch_cop_label -Perl_filter_add -Perl_filter_del -Perl_filter_read -Perl_find_runcv -Perl_find_rundefsvoffset -Perl_form -Perl_form_nocontext -Perl_fp_dup -Perl_fprintf_nocontext -Perl_free_tmps -Perl_get_av -Perl_get_context -Perl_get_cv -Perl_get_cvn_flags -Perl_get_hv -Perl_get_op_descs -Perl_get_op_names -Perl_get_ppaddr -Perl_get_re_arg -Perl_get_sv -Perl_get_vtbl -Perl_getcwd_sv -Perl_gp_dup -Perl_gp_free -Perl_gp_ref -Perl_grok_bin -Perl_grok_hex -Perl_grok_number -Perl_grok_numeric_radix -Perl_grok_oct -Perl_gv_AVadd -Perl_gv_HVadd -Perl_gv_IOadd -Perl_gv_SVadd -Perl_gv_add_by_type -Perl_gv_autoload4 -Perl_gv_check -Perl_gv_const_sv -Perl_gv_dump -Perl_gv_efullname -Perl_gv_efullname3 -Perl_gv_efullname4 -Perl_gv_fetchfile -Perl_gv_fetchfile_flags -Perl_gv_fetchmeth -Perl_gv_fetchmeth_autoload -Perl_gv_fetchmethod -Perl_gv_fetchmethod_autoload -Perl_gv_fetchmethod_flags -Perl_gv_fetchpv -Perl_gv_fetchpvn_flags -Perl_gv_fetchsv -Perl_gv_fullname -Perl_gv_fullname3 -Perl_gv_fullname4 -Perl_gv_handler -Perl_gv_init -Perl_gv_name_set -Perl_gv_stashpv -Perl_gv_stashpvn -Perl_gv_stashsv -Perl_gv_try_downgrade -Perl_he_dup -Perl_hek_dup -Perl_hv_clear -Perl_hv_clear_placeholders -Perl_hv_common -Perl_hv_common_key_len -Perl_hv_delayfree_ent -Perl_hv_delete -Perl_hv_delete_ent -Perl_hv_eiter_p -Perl_hv_eiter_set -Perl_hv_exists -Perl_hv_exists_ent -Perl_hv_fetch -Perl_hv_fetch_ent -Perl_hv_free_ent -Perl_hv_iterinit -Perl_hv_iterkey -Perl_hv_iterkeysv -Perl_hv_iternext -Perl_hv_iternext_flags -Perl_hv_iternextsv -Perl_hv_iterval -Perl_hv_ksplit -Perl_hv_magic -Perl_hv_name_set -Perl_hv_placeholders_get -Perl_hv_placeholders_p -Perl_hv_placeholders_set -Perl_hv_riter_p -Perl_hv_riter_set -Perl_hv_scalar -Perl_hv_store -Perl_hv_store_ent -Perl_hv_store_flags -Perl_hv_undef -Perl_ibcmp -Perl_ibcmp_locale -Perl_ibcmp_utf8 -Perl_init_i18nl10n -Perl_init_i18nl14n -Perl_init_os_extras -Perl_init_stacks -Perl_init_tm -Perl_instr -Perl_is_ascii_string -Perl_is_lvalue_sub -Perl_is_uni_alnum -Perl_is_uni_alnum_lc -Perl_is_uni_alpha -Perl_is_uni_alpha_lc -Perl_is_uni_ascii -Perl_is_uni_ascii_lc -Perl_is_uni_cntrl -Perl_is_uni_cntrl_lc -Perl_is_uni_digit -Perl_is_uni_digit_lc -Perl_is_uni_graph -Perl_is_uni_graph_lc -Perl_is_uni_idfirst -Perl_is_uni_idfirst_lc -Perl_is_uni_lower -Perl_is_uni_lower_lc -Perl_is_uni_print -Perl_is_uni_print_lc -Perl_is_uni_punct -Perl_is_uni_punct_lc -Perl_is_uni_space -Perl_is_uni_space_lc -Perl_is_uni_upper -Perl_is_uni_upper_lc -Perl_is_uni_xdigit -Perl_is_uni_xdigit_lc -Perl_is_utf8_X_L -Perl_is_utf8_X_LV -Perl_is_utf8_X_LVT -Perl_is_utf8_X_LV_LVT_V -Perl_is_utf8_X_T -Perl_is_utf8_X_V -Perl_is_utf8_X_begin -Perl_is_utf8_X_extend -Perl_is_utf8_X_non_hangul -Perl_is_utf8_X_prepend -Perl_is_utf8_alnum -Perl_is_utf8_alpha -Perl_is_utf8_ascii -Perl_is_utf8_char -Perl_is_utf8_cntrl -Perl_is_utf8_digit -Perl_is_utf8_graph -Perl_is_utf8_idcont -Perl_is_utf8_idfirst -Perl_is_utf8_lower -Perl_is_utf8_mark -Perl_is_utf8_perl_space -Perl_is_utf8_perl_word -Perl_is_utf8_posix_digit -Perl_is_utf8_print -Perl_is_utf8_punct -Perl_is_utf8_space -Perl_is_utf8_string -Perl_is_utf8_string_loc -Perl_is_utf8_string_loclen -Perl_is_utf8_upper -Perl_is_utf8_xdigit -Perl_leave_scope -Perl_lex_bufutf8 -Perl_lex_discard_to -Perl_lex_end -Perl_lex_grow_linestr -Perl_lex_next_chunk -Perl_lex_peek_unichar -Perl_lex_read_space -Perl_lex_read_to -Perl_lex_read_unichar -Perl_lex_stuff_pvn -Perl_lex_stuff_sv -Perl_lex_unstuff -Perl_load_module -Perl_load_module_nocontext -Perl_looks_like_number -Perl_magic_dump -Perl_malloc -Perl_markstack_grow -Perl_mess -Perl_mess_nocontext -Perl_mfree -Perl_mg_clear -Perl_mg_copy -Perl_mg_dup -Perl_mg_find -Perl_mg_free -Perl_mg_get -Perl_mg_length -Perl_mg_magical -Perl_mg_set -Perl_mg_size -Perl_mini_mktime -Perl_mod -Perl_moreswitches -Perl_mro_get_from_name -Perl_mro_get_linear_isa -Perl_mro_get_private_data -Perl_mro_meta_init -Perl_mro_method_changed_in -Perl_mro_register -Perl_mro_set_mro -Perl_mro_set_private_data -Perl_my_atof -Perl_my_atof2 -Perl_my_cxt_init -Perl_my_dirfd -Perl_my_exit -Perl_my_failure_exit -Perl_my_fflush_all -Perl_my_fork -Perl_my_lstat -Perl_my_popen_list -Perl_my_setenv -Perl_my_snprintf -Perl_my_socketpair -Perl_my_stat -Perl_my_strftime -Perl_my_strlcat -Perl_my_strlcpy -Perl_my_vsnprintf -Perl_newANONATTRSUB -Perl_newANONHASH -Perl_newANONLIST -Perl_newANONSUB -Perl_newASSIGNOP -Perl_newATTRSUB -Perl_newAV -Perl_newAVREF -Perl_newBINOP -Perl_newCONDOP -Perl_newCONSTSUB -Perl_newCVREF -Perl_newFORM -Perl_newFOROP -Perl_newGIVENOP -Perl_newGVOP -Perl_newGVREF -Perl_newGVgen -Perl_newHV -Perl_newHVREF -Perl_newHVhv -Perl_newIO -Perl_newLISTOP -Perl_newLOGOP -Perl_newLOOPEX -Perl_newLOOPOP -Perl_newMYSUB -Perl_newNULLLIST -Perl_newOP -Perl_newPADOP -Perl_newPMOP -Perl_newPROG -Perl_newPVOP -Perl_newRANGE -Perl_newRV -Perl_newRV_noinc -Perl_newSLICEOP -Perl_newSTATEOP -Perl_newSUB -Perl_newSV -Perl_newSVOP -Perl_newSVREF -Perl_newSV_type -Perl_newSVhek -Perl_newSViv -Perl_newSVnv -Perl_newSVpv -Perl_newSVpvf -Perl_newSVpvf_nocontext -Perl_newSVpvn -Perl_newSVpvn_flags -Perl_newSVpvn_share -Perl_newSVrv -Perl_newSVsv -Perl_newSVuv -Perl_newUNOP -Perl_newWHENOP -Perl_newWHILEOP -Perl_newXS -Perl_newXS_flags -Perl_new_collate -Perl_new_ctype -Perl_new_numeric -Perl_new_stackinfo -Perl_new_version -Perl_new_warnings_bitfield -Perl_ninstr -Perl_nothreadhook -Perl_op_clear -Perl_op_dump -Perl_op_free -Perl_op_null -Perl_op_refcnt_lock -Perl_op_refcnt_unlock -Perl_pack_cat -Perl_packlist -Perl_pad_findmy -Perl_pad_push -Perl_parser_dup -Perl_pmflag -Perl_pmop_dump -Perl_pop_scope -Perl_pregcomp -Perl_pregexec -Perl_pregfree -Perl_pregfree2 -Perl_prescan_version -Perl_printf_nocontext -Perl_ptr_table_clear -Perl_ptr_table_fetch -Perl_ptr_table_free -Perl_ptr_table_new -Perl_ptr_table_split -Perl_ptr_table_store -Perl_push_scope -Perl_pv_display -Perl_pv_escape -Perl_pv_pretty -Perl_pv_uni_display -Perl_qerror -Perl_re_compile -Perl_re_dup_guts -Perl_re_intuit_start -Perl_re_intuit_string -Perl_realloc -Perl_reentrant_free -Perl_reentrant_init -Perl_reentrant_retry -Perl_reentrant_size -Perl_ref -Perl_refcounted_he_chain_2hv -Perl_refcounted_he_fetch -Perl_refcounted_he_new -Perl_reg_named_buff -Perl_reg_named_buff_all -Perl_reg_named_buff_exists -Perl_reg_named_buff_fetch -Perl_reg_named_buff_firstkey -Perl_reg_named_buff_iter -Perl_reg_named_buff_nextkey -Perl_reg_named_buff_scalar -Perl_reg_numbered_buff_fetch -Perl_reg_numbered_buff_length -Perl_reg_numbered_buff_store -Perl_reg_qr_package -Perl_reg_temp_copy -Perl_regclass_swash -Perl_regcurly -Perl_regdump -Perl_regdupe_internal -Perl_regexec_flags -Perl_regfree_internal -Perl_reginitcolors -Perl_regnext -Perl_repeatcpy -Perl_report_uninit -Perl_require_pv -Perl_rninstr -Perl_rsignal -Perl_rsignal_state -Perl_runops_debug -Perl_runops_standard -Perl_rvpv_dup -Perl_safesyscalloc -Perl_safesysfree -Perl_safesysmalloc -Perl_safesysrealloc -Perl_save_I16 -Perl_save_I32 -Perl_save_I8 -Perl_save_adelete -Perl_save_aelem_flags -Perl_save_alloc -Perl_save_aptr -Perl_save_ary -Perl_save_bool -Perl_save_clearsv -Perl_save_delete -Perl_save_destructor -Perl_save_destructor_x -Perl_save_freeop -Perl_save_freepv -Perl_save_freesv -Perl_save_generic_pvref -Perl_save_generic_svref -Perl_save_gp -Perl_save_hash -Perl_save_hdelete -Perl_save_helem_flags -Perl_save_hptr -Perl_save_int -Perl_save_item -Perl_save_iv -Perl_save_list -Perl_save_long -Perl_save_mortalizesv -Perl_save_nogv -Perl_save_op -Perl_save_padsv_and_mortalize -Perl_save_pptr -Perl_save_pushptr -Perl_save_re_context -Perl_save_scalar -Perl_save_set_svflags -Perl_save_shared_pvref -Perl_save_sptr -Perl_save_svref -Perl_save_vptr -Perl_savepv -Perl_savepvn -Perl_savesharedpv -Perl_savesharedpvn -Perl_savestack_grow -Perl_savestack_grow_cnt -Perl_savesvpv -Perl_scan_bin -Perl_scan_hex -Perl_scan_num -Perl_scan_oct -Perl_scan_version -Perl_scan_vstring -Perl_screaminstr -Perl_seed -Perl_set_context -Perl_set_numeric_local -Perl_set_numeric_radix -Perl_set_numeric_standard -Perl_setdefout -Perl_share_hek -Perl_si_dup -Perl_signbit -Perl_sortsv -Perl_sortsv_flags -Perl_ss_dup -Perl_stack_grow -Perl_start_subparse -Perl_stashpv_hvname_match -Perl_str_to_version -Perl_sv_2bool -Perl_sv_2cv -Perl_sv_2io -Perl_sv_2iv -Perl_sv_2iv_flags -Perl_sv_2mortal -Perl_sv_2nv -Perl_sv_2pv -Perl_sv_2pv_flags -Perl_sv_2pv_nolen -Perl_sv_2pvbyte -Perl_sv_2pvbyte_nolen -Perl_sv_2pvutf8 -Perl_sv_2pvutf8_nolen -Perl_sv_2uv -Perl_sv_2uv_flags -Perl_sv_backoff -Perl_sv_bless -Perl_sv_cat_decode -Perl_sv_catpv -Perl_sv_catpv_mg -Perl_sv_catpvf -Perl_sv_catpvf_mg -Perl_sv_catpvf_mg_nocontext -Perl_sv_catpvf_nocontext -Perl_sv_catpvn -Perl_sv_catpvn_flags -Perl_sv_catpvn_mg -Perl_sv_catsv -Perl_sv_catsv_flags -Perl_sv_catsv_mg -Perl_sv_chop -Perl_sv_clear -Perl_sv_cmp -Perl_sv_cmp_locale -Perl_sv_collxfrm -Perl_sv_compile_2op -Perl_sv_copypv -Perl_sv_dec -Perl_sv_derived_from -Perl_sv_destroyable -Perl_sv_does -Perl_sv_dump -Perl_sv_dup -Perl_sv_eq -Perl_sv_force_normal -Perl_sv_force_normal_flags -Perl_sv_free -Perl_sv_free2 -Perl_sv_gets -Perl_sv_grow -Perl_sv_inc -Perl_sv_insert -Perl_sv_insert_flags -Perl_sv_isa -Perl_sv_isobject -Perl_sv_iv -Perl_sv_len -Perl_sv_len_utf8 -Perl_sv_magic -Perl_sv_magicext -Perl_sv_mortalcopy -Perl_sv_newmortal -Perl_sv_newref -Perl_sv_nolocking -Perl_sv_nosharing -Perl_sv_nounlocking -Perl_sv_nv -Perl_sv_peek -Perl_sv_pos_b2u -Perl_sv_pos_u2b -Perl_sv_pos_u2b_flags -Perl_sv_pv -Perl_sv_pvbyte -Perl_sv_pvbyten -Perl_sv_pvbyten_force -Perl_sv_pvn -Perl_sv_pvn_force -Perl_sv_pvn_force_flags -Perl_sv_pvn_nomg -Perl_sv_pvutf8 -Perl_sv_pvutf8n -Perl_sv_pvutf8n_force -Perl_sv_recode_to_utf8 -Perl_sv_reftype -Perl_sv_replace -Perl_sv_report_used -Perl_sv_reset -Perl_sv_rvweaken -Perl_sv_setiv -Perl_sv_setiv_mg -Perl_sv_setnv -Perl_sv_setnv_mg -Perl_sv_setpv -Perl_sv_setpv_mg -Perl_sv_setpvf -Perl_sv_setpvf_mg -Perl_sv_setpvf_mg_nocontext -Perl_sv_setpvf_nocontext -Perl_sv_setpviv -Perl_sv_setpviv_mg -Perl_sv_setpvn -Perl_sv_setpvn_mg -Perl_sv_setref_iv -Perl_sv_setref_nv -Perl_sv_setref_pv -Perl_sv_setref_pvn -Perl_sv_setref_uv -Perl_sv_setsv -Perl_sv_setsv_flags -Perl_sv_setsv_mg -Perl_sv_setuv -Perl_sv_setuv_mg -Perl_sv_taint -Perl_sv_tainted -Perl_sv_true -Perl_sv_uni_display -Perl_sv_unmagic -Perl_sv_unref -Perl_sv_unref_flags -Perl_sv_untaint -Perl_sv_upgrade -Perl_sv_usepvn -Perl_sv_usepvn_flags -Perl_sv_usepvn_mg -Perl_sv_utf8_decode -Perl_sv_utf8_downgrade -Perl_sv_utf8_encode -Perl_sv_utf8_upgrade -Perl_sv_utf8_upgrade_flags_grow -Perl_sv_uv -Perl_sv_vcatpvf -Perl_sv_vcatpvf_mg -Perl_sv_vcatpvfn -Perl_sv_vsetpvf -Perl_sv_vsetpvf_mg -Perl_sv_vsetpvfn -Perl_swash_fetch -Perl_swash_init -Perl_sys_init -Perl_sys_init3 -Perl_sys_intern_clear -Perl_sys_intern_dup -Perl_sys_intern_init -Perl_sys_term -Perl_taint_env -Perl_taint_proper -Perl_tmps_grow -Perl_to_uni_fold -Perl_to_uni_lower -Perl_to_uni_lower_lc -Perl_to_uni_title -Perl_to_uni_title_lc -Perl_to_uni_upper -Perl_to_uni_upper_lc -Perl_to_utf8_case -Perl_to_utf8_fold -Perl_to_utf8_lower -Perl_to_utf8_title -Perl_to_utf8_upper -Perl_unpack_str -Perl_unpackstring -Perl_unsharepvn -Perl_upg_version -Perl_utf16_to_utf8 -Perl_utf16_to_utf8_reversed -Perl_utf8_distance -Perl_utf8_hop -Perl_utf8_length -Perl_utf8_to_bytes -Perl_utf8_to_uvchr -Perl_utf8_to_uvuni -Perl_utf8n_to_uvchr -Perl_utf8n_to_uvuni -Perl_uvchr_to_utf8 -Perl_uvchr_to_utf8_flags -Perl_uvuni_to_utf8 -Perl_uvuni_to_utf8_flags -Perl_vcmp -Perl_vcroak -Perl_vdeb -Perl_vform -Perl_vivify_defelem -Perl_vload_module -Perl_vmess -Perl_vnewSVpvf -Perl_vnormal -Perl_vnumify -Perl_vstringify -Perl_vverify -Perl_vwarn -Perl_vwarner -Perl_warn -Perl_warn_nocontext -Perl_warner -Perl_warner_nocontext -Perl_whichsig -Perl_win32_init -Perl_win32_term -Perl_yylex -RunPerl -boot_DynaLoader -boot_Win32CORE -init_Win32CORE -perl_alloc -perl_alloc_override -perl_alloc_using -perl_clone -perl_clone_host -perl_clone_using -perl_construct -perl_destruct -perl_free -perl_get_host_info -perl_parse -perl_run -perlsio_binmode -setgid -setuid -win32_abort -win32_accept -win32_access -win32_alarm -win32_ansipath -win32_async_check -win32_bind -win32_calloc -win32_chdir -win32_chmod -win32_chsize -win32_clearenv -win32_clearerr -win32_close -win32_closedir -win32_closesocket -win32_connect -win32_crypt -win32_dup -win32_dup2 -win32_dynaload -win32_endhostent -win32_endnetent -win32_endprotoent -win32_endservent -win32_environ -win32_eof -win32_errno -win32_execv -win32_execvp -win32_fclose -win32_fcloseall -win32_fdopen -win32_feof -win32_ferror -win32_fflush -win32_fgetc -win32_fgetpos -win32_fgets -win32_fileno -win32_flock -win32_flushall -win32_fopen -win32_fprintf -win32_fputc -win32_fputs -win32_fread -win32_free -win32_free_childdir -win32_free_childenv -win32_freopen -win32_fseek -win32_fsetpos -win32_fstat -win32_ftell -win32_fwrite -win32_get_childdir -win32_get_childenv -win32_get_osfhandle -win32_getc -win32_getchar -win32_getenv -win32_gethostbyaddr -win32_gethostbyname -win32_gethostname -win32_getnetbyaddr -win32_getnetbyname -win32_getnetent -win32_getpeername -win32_getpid -win32_getprotobyname -win32_getprotobynumber -win32_getprotoent -win32_gets -win32_getservbyname -win32_getservbyport -win32_getservent -win32_getsockname -win32_getsockopt -win32_gettimeofday -win32_htonl -win32_htons -win32_inet_addr -win32_inet_ntoa -win32_ioctl -win32_ioctlsocket -win32_isatty -win32_kill -win32_link -win32_listen -win32_longpath -win32_lseek -win32_malloc -win32_mkdir -win32_ntohl -win32_ntohs -win32_open -win32_open_osfhandle -win32_opendir -win32_os_id -win32_pclose -win32_perror -win32_pipe -win32_popen -win32_printf -win32_putc -win32_putchar -win32_putenv -win32_puts -win32_read -win32_readdir -win32_realloc -win32_recv -win32_recvfrom -win32_rename -win32_rewind -win32_rewinddir -win32_rmdir -win32_seekdir -win32_select -win32_send -win32_sendto -win32_setbuf -win32_sethostent -win32_setmode -win32_setnetent -win32_setprotoent -win32_setservent -win32_setsockopt -win32_setvbuf -win32_shutdown -win32_sleep -win32_socket -win32_spawnvp -win32_stat -win32_stderr -win32_stdin -win32_stdout -win32_str_os_error -win32_strerror -win32_tell -win32_telldir -win32_times -win32_tmpfile -win32_uname -win32_ungetc -win32_unlink -win32_utime -win32_vfprintf -win32_vprintf -win32_wait -win32_waitpid -win32_write diff --git a/plugins/perl/importlib/sbperl-x64.bat b/plugins/perl/importlib/sbperl-x64.bat deleted file mode 100644 index a27ab442..00000000 --- a/plugins/perl/importlib/sbperl-x64.bat +++ /dev/null @@ -1,10 +0,0 @@ -@echo off -set PATH=c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 -cd c:\mozilla-build\perl-5.12-x64\perl\lib\CORE -echo.Overwrite existing def file? -pause -dumpbin /exports ..\..\bin\perl512.dll > perl512.def -echo.Please adjust the resulting file manually, then hit return! -pause -lib /machine:x64 /def:perl512.def -pause diff --git a/plugins/perl/importlib/sbperl-x86.bat b/plugins/perl/importlib/sbperl-x86.bat deleted file mode 100644 index e0b1a3dd..00000000 --- a/plugins/perl/importlib/sbperl-x86.bat +++ /dev/null @@ -1,10 +0,0 @@ -@echo off -set PATH=c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE -cd c:\mozilla-build\perl-5.12-x86\perl\lib\CORE -echo.Overwrite existing def file? -pause -dumpbin /exports ..\..\bin\perl512.dll > perl512.def -echo.Please adjust the resulting file manually, then hit return! -pause -lib /machine:x86 /def:perl512.def -pause diff --git a/plugins/perl/makefile-512.mak b/plugins/perl/makefile-512.mak index 15f78a23..a77dc145 100644 --- a/plugins/perl/makefile-512.mak +++ b/plugins/perl/makefile-512.mak @@ -12,15 +12,22 @@ perl.def: echo xchat_plugin_get_info >> perl.def perl.obj: perl.c - $(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL512PATH) /I.. /DPERL_DLL=\"$(PERL512LIB).dll\" + $(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL512PATH)\perl\lib\CORE /I.. /DPERL_DLL=\"$(PERL512LIB).dll\" + +$(PERL512LIB).lib: perl512.def +!ifdef X64 + lib /machine:x64 /def:perl512.def +!else + lib /machine:x86 /def:perl512.def +!endif perl.c: xchat.pm.h xchat.pm.h: lib/Xchat.pm lib/IRC.pm perl.exe generate_header -$(TARGET): perl.obj perl.def - $(LINK) /DLL /out:$(TARGET) perl.obj $(LDFLAGS) $(PERL512LIB).lib /libpath:$(PERL512PATH) /delayload:$(PERL512LIB).dll $(DIRENTLIB) delayimp.lib user32.lib shell32.lib advapi32.lib /def:perl.def +$(TARGET): perl.obj perl.def $(PERL512LIB).lib + $(LINK) /DLL /out:$(TARGET) perl.obj $(LDFLAGS) $(PERL512LIB).lib /delayload:$(PERL512LIB).dll $(DIRENTLIB) delayimp.lib user32.lib shell32.lib advapi32.lib /def:perl.def clean: @del $(TARGET) diff --git a/plugins/perl/makefile-514.mak b/plugins/perl/makefile-514.mak index 8c689979..4d8181dd 100644 --- a/plugins/perl/makefile-514.mak +++ b/plugins/perl/makefile-514.mak @@ -12,7 +12,7 @@ perl.def: echo xchat_plugin_get_info >> perl.def perl.obj: perl.c - $(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL514PATH) /I.. /DPERL_DLL=\"$(PERL514LIB).dll\" + $(CC) $(CFLAGS) perl.c $(GLIB) /I$(PERL514PATH)\lib\CORE /I.. /DPERL_DLL=\"$(PERL514LIB).dll\" perl.c: xchat.pm.h diff --git a/plugins/perl/perl512.def b/plugins/perl/perl512.def new file mode 100644 index 00000000..5cfcaa68 --- /dev/null +++ b/plugins/perl/perl512.def @@ -0,0 +1,1420 @@ +LIBRARY perl512 +EXPORTS +PL_bincompat_options +PL_check +PL_fold +PL_fold_locale +PL_freq +PL_keyword_plugin +PL_memory_wrap +PL_no_aelem +PL_no_dir_func +PL_no_func +PL_no_helem_sv +PL_no_localize_ref +PL_no_mem +PL_no_modify +PL_no_myglob +PL_no_security +PL_no_sock_func +PL_no_symref +PL_no_usym +PL_no_wrongref +PL_op_desc +PL_op_name +PL_opargs +PL_perlio_mutex +PL_ppaddr +PL_reg_extflags_name +PL_reg_name +PL_regkind +PL_sig_name +PL_sig_num +PL_simple +PL_utf8skip +PL_uuemap +PL_varies +PL_vtbl_amagic +PL_vtbl_amagicelem +PL_vtbl_arylen +PL_vtbl_backref +PL_vtbl_bm +PL_vtbl_collxfrm +PL_vtbl_dbline +PL_vtbl_defelem +PL_vtbl_env +PL_vtbl_envelem +PL_vtbl_fm +PL_vtbl_isa +PL_vtbl_isaelem +PL_vtbl_mglob +PL_vtbl_nkeys +PL_vtbl_pack +PL_vtbl_packelem +PL_vtbl_pos +PL_vtbl_regdata +PL_vtbl_regdatum +PL_vtbl_regexp +PL_vtbl_sig +PL_vtbl_sigelem +PL_vtbl_substr +PL_vtbl_sv +PL_vtbl_taint +PL_vtbl_utf8 +PL_vtbl_uvar +PL_vtbl_vec +PL_warn_nl +PL_warn_nosemi +PL_warn_reserved +PL_warn_uninit +PerlIOBase_binmode +PerlIOBase_clearerr +PerlIOBase_close +PerlIOBase_dup +PerlIOBase_eof +PerlIOBase_error +PerlIOBase_fileno +PerlIOBase_noop_fail +PerlIOBase_noop_ok +PerlIOBase_popped +PerlIOBase_pushed +PerlIOBase_read +PerlIOBase_setlinebuf +PerlIOBase_unread +PerlIOBuf_bufsiz +PerlIOBuf_close +PerlIOBuf_dup +PerlIOBuf_fill +PerlIOBuf_flush +PerlIOBuf_get_base +PerlIOBuf_get_cnt +PerlIOBuf_get_ptr +PerlIOBuf_open +PerlIOBuf_popped +PerlIOBuf_pushed +PerlIOBuf_read +PerlIOBuf_seek +PerlIOBuf_set_ptrcnt +PerlIOBuf_tell +PerlIOBuf_unread +PerlIOBuf_write +PerlIO_allocate +PerlIO_apply_layera +PerlIO_apply_layers +PerlIO_arg_fetch +PerlIO_binmode +PerlIO_canset_cnt +PerlIO_debug +PerlIO_define_layer +PerlIO_exportFILE +PerlIO_fast_gets +PerlIO_fdopen +PerlIO_findFILE +PerlIO_find_layer +PerlIO_getc +PerlIO_getname +PerlIO_getpos +PerlIO_has_base +PerlIO_has_cntptr +PerlIO_importFILE +PerlIO_init +PerlIO_isutf8 +PerlIO_layer_fetch +PerlIO_list_alloc +PerlIO_list_free +PerlIO_modestr +PerlIO_open +PerlIO_parse_layers +PerlIO_pending +PerlIO_perlio +PerlIO_pop +PerlIO_printf +PerlIO_push +PerlIO_putc +PerlIO_puts +PerlIO_releaseFILE +PerlIO_reopen +PerlIO_rewind +PerlIO_setpos +PerlIO_sprintf +PerlIO_stdoutf +PerlIO_sv_dup +PerlIO_teardown +PerlIO_tmpfile +PerlIO_ungetc +PerlIO_vprintf +PerlIO_vsprintf +Perl_GNo_ptr +Perl_GYes_ptr +Perl_Gcheck_ptr +Perl_Gcsighandlerp_ptr +Perl_Gcurinterp_ptr +Perl_Gdo_undump_ptr +Perl_Gdollarzero_mutex_ptr +Perl_Gfold_locale_ptr +Perl_Ghexdigit_ptr +Perl_Ghints_mutex_ptr +Perl_Ginterp_size_5_10_0_ptr +Perl_Ginterp_size_ptr +Perl_Gkeyword_plugin_ptr +Perl_Gmy_ctx_mutex_ptr +Perl_Gmy_cxt_index_ptr +Perl_Gop_mutex_ptr +Perl_Gop_seq_ptr +Perl_Gop_sequence_ptr +Perl_Gpatleave_ptr +Perl_Gperlio_debug_fd_ptr +Perl_Gperlio_fd_refcnt_ptr +Perl_Gperlio_fd_refcnt_size_ptr +Perl_Gperlio_mutex_ptr +Perl_Gppaddr_ptr +Perl_Grevision_ptr +Perl_Grunops_dbg_ptr +Perl_Grunops_std_ptr +Perl_Gsh_path_ptr +Perl_Gsig_trapped_ptr +Perl_Gsigfpe_saved_ptr +Perl_Gsubversion_ptr +Perl_Gsv_placeholder_ptr +Perl_Gthr_key_ptr +Perl_Guse_safe_putenv_ptr +Perl_Gv_AMupdate +Perl_Gversion_ptr +Perl_Gveto_cleanup_ptr +Perl_IArgv_ptr +Perl_ICmd_ptr +Perl_IDBgv_ptr +Perl_IDBline_ptr +Perl_IDBsignal_ptr +Perl_IDBsingle_ptr +Perl_IDBsub_ptr +Perl_IDBtrace_ptr +Perl_IDir_ptr +Perl_IEnv_ptr +Perl_ILIO_ptr +Perl_IMemParse_ptr +Perl_IMemShared_ptr +Perl_IMem_ptr +Perl_IOpPtr_ptr +Perl_IOpSlab_ptr +Perl_IOpSpace_ptr +Perl_IProc_ptr +Perl_ISock_ptr +Perl_IStdIO_ptr +Perl_ISv_ptr +Perl_IXpv_ptr +Perl_Iamagic_generation_ptr +Perl_Ian_ptr +Perl_Iargvgv_ptr +Perl_Iargvout_stack_ptr +Perl_Iargvoutgv_ptr +Perl_Ibasetime_ptr +Perl_Ibeginav_ptr +Perl_Ibeginav_save_ptr +Perl_Ibody_arenas_ptr +Perl_Ibody_roots_ptr +Perl_Ibodytarget_ptr +Perl_Ibreakable_sub_gen_ptr +Perl_Icheckav_ptr +Perl_Icheckav_save_ptr +Perl_Ichopset_ptr +Perl_Iclocktick_ptr +Perl_Icollation_ix_ptr +Perl_Icollation_name_ptr +Perl_Icollation_standard_ptr +Perl_Icollxfrm_base_ptr +Perl_Icollxfrm_mult_ptr +Perl_Icolors_ptr +Perl_Icolorset_ptr +Perl_Icompcv_ptr +Perl_Icompiling_ptr +Perl_Icomppad_name_fill_ptr +Perl_Icomppad_name_floor_ptr +Perl_Icomppad_name_ptr +Perl_Icomppad_ptr +Perl_Icop_seqmax_ptr +Perl_Icurcop_ptr +Perl_Icurcopdb_ptr +Perl_Icurpad_ptr +Perl_Icurpm_ptr +Perl_Icurstack_ptr +Perl_Icurstackinfo_ptr +Perl_Icurstash_ptr +Perl_Icurstname_ptr +Perl_Icustom_op_descs_ptr +Perl_Icustom_op_names_ptr +Perl_Icv_has_eval_ptr +Perl_Idbargs_ptr +Perl_Idebstash_ptr +Perl_Idebug_pad_ptr +Perl_Idebug_ptr +Perl_Idef_layerlist_ptr +Perl_Idefgv_ptr +Perl_Idefoutgv_ptr +Perl_Idefstash_ptr +Perl_Idelaymagic_ptr +Perl_Idestroyhook_ptr +Perl_Idiehook_ptr +Perl_Idirty_ptr +Perl_Idoextract_ptr +Perl_Idoswitches_ptr +Perl_Idowarn_ptr +Perl_Idumpindent_ptr +Perl_Ie_script_ptr +Perl_Iefloatbuf_ptr +Perl_Iefloatsize_ptr +Perl_Iegid_ptr +Perl_Iencoding_ptr +Perl_Iendav_ptr +Perl_Ienvgv_ptr +Perl_Ierrgv_ptr +Perl_Ierrors_ptr +Perl_Ieuid_ptr +Perl_Ieval_root_ptr +Perl_Ieval_start_ptr +Perl_Ievalseq_ptr +Perl_Iexit_flags_ptr +Perl_Iexitlist_ptr +Perl_Iexitlistlen_ptr +Perl_Ifdpid_ptr +Perl_Ifilemode_ptr +Perl_Ifirstgv_ptr +Perl_Iforkprocess_ptr +Perl_Iformfeed_ptr +Perl_Iformtarget_ptr +Perl_Igensym_ptr +Perl_Igid_ptr +Perl_Iglob_index_ptr +Perl_Iglobalstash_ptr +Perl_Ihash_seed_ptr +Perl_Ihintgv_ptr +Perl_Ihints_ptr +Perl_Ihv_fetch_ent_mh_ptr +Perl_Iin_clean_all_ptr +Perl_Iin_clean_objs_ptr +Perl_Iin_eval_ptr +Perl_Iin_load_module_ptr +Perl_Iincgv_ptr +Perl_Iinitav_ptr +Perl_Iinplace_ptr +Perl_Iisarev_ptr +Perl_Iknown_layers_ptr +Perl_Ilast_in_gv_ptr +Perl_Ilast_swash_hv_ptr +Perl_Ilast_swash_key_ptr +Perl_Ilast_swash_klen_ptr +Perl_Ilast_swash_slen_ptr +Perl_Ilast_swash_tmps_ptr +Perl_Ilastfd_ptr +Perl_Ilastscream_ptr +Perl_Ilaststatval_ptr +Perl_Ilaststype_ptr +Perl_Ilocalizing_ptr +Perl_Ilocalpatches_ptr +Perl_Ilockhook_ptr +Perl_Imain_cv_ptr +Perl_Imain_root_ptr +Perl_Imain_start_ptr +Perl_Imainstack_ptr +Perl_Imarkstack_max_ptr +Perl_Imarkstack_ptr +Perl_Imarkstack_ptr_ptr +Perl_Imax_intro_pending_ptr +Perl_Imaxo_ptr +Perl_Imaxscream_ptr +Perl_Imaxsysfd_ptr +Perl_Imess_sv_ptr +Perl_Imin_intro_pending_ptr +Perl_Iminus_E_ptr +Perl_Iminus_F_ptr +Perl_Iminus_a_ptr +Perl_Iminus_c_ptr +Perl_Iminus_l_ptr +Perl_Iminus_n_ptr +Perl_Iminus_p_ptr +Perl_Imodglobal_ptr +Perl_Imy_cxt_list_ptr +Perl_Imy_cxt_size_ptr +Perl_Ina_ptr +Perl_Inice_chunk_ptr +Perl_Inice_chunk_size_ptr +Perl_Inomemok_ptr +Perl_Inumeric_local_ptr +Perl_Inumeric_name_ptr +Perl_Inumeric_radix_sv_ptr +Perl_Inumeric_standard_ptr +Perl_Iofsgv_ptr +Perl_Ioldname_ptr +Perl_Iop_mask_ptr +Perl_Iop_ptr +Perl_Iopfreehook_ptr +Perl_Iorigalen_ptr +Perl_Iorigargc_ptr +Perl_Iorigargv_ptr +Perl_Iorigenviron_ptr +Perl_Iorigfilename_ptr +Perl_Iors_sv_ptr +Perl_Iosname_ptr +Perl_Ipad_reset_pending_ptr +Perl_Ipadix_floor_ptr +Perl_Ipadix_ptr +Perl_Iparser_ptr +Perl_Ipatchlevel_ptr +Perl_Ipeepp_ptr +Perl_Iperl_destruct_level_ptr +Perl_Iperldb_ptr +Perl_Iperlio_ptr +Perl_Ipreambleav_ptr +Perl_Iprofiledata_ptr +Perl_Ipsig_name_ptr +Perl_Ipsig_pend_ptr +Perl_Ipsig_ptr_ptr +Perl_Iptr_table_ptr +Perl_Ireentrant_retint_ptr +Perl_Ireg_state_ptr +Perl_Iregdummy_ptr +Perl_Iregex_pad_ptr +Perl_Iregex_padav_ptr +Perl_Ireginterp_cnt_ptr +Perl_Iregistered_mros_ptr +Perl_Iregmatch_slab_ptr +Perl_Iregmatch_state_ptr +Perl_Irehash_seed_ptr +Perl_Irehash_seed_set_ptr +Perl_Ireplgv_ptr +Perl_Irestartop_ptr +Perl_Irs_ptr +Perl_Irunops_ptr +Perl_Isavebegin_ptr +Perl_Isavestack_ix_ptr +Perl_Isavestack_max_ptr +Perl_Isavestack_ptr +Perl_Isawampersand_ptr +Perl_Iscopestack_ix_ptr +Perl_Iscopestack_max_ptr +Perl_Iscopestack_name_ptr +Perl_Iscopestack_ptr +Perl_Iscreamfirst_ptr +Perl_Iscreamnext_ptr +Perl_Isecondgv_ptr +Perl_Isharehook_ptr +Perl_Isig_pending_ptr +Perl_Isighandlerp_ptr +Perl_Isignals_ptr +Perl_Isort_RealCmp_ptr +Perl_Isortcop_ptr +Perl_Isortstash_ptr +Perl_Isplitstr_ptr +Perl_Isrand_called_ptr +Perl_Istack_base_ptr +Perl_Istack_max_ptr +Perl_Istack_sp_ptr +Perl_Istart_env_ptr +Perl_Istashcache_ptr +Perl_Istatbuf_ptr +Perl_Istatcache_ptr +Perl_Istatgv_ptr +Perl_Istatname_ptr +Perl_Istatusvalue_posix_ptr +Perl_Istatusvalue_ptr +Perl_Istderrgv_ptr +Perl_Istdingv_ptr +Perl_Istrtab_ptr +Perl_Isub_generation_ptr +Perl_Isubline_ptr +Perl_Isubname_ptr +Perl_Isv_arenaroot_ptr +Perl_Isv_count_ptr +Perl_Isv_no_ptr +Perl_Isv_objcount_ptr +Perl_Isv_root_ptr +Perl_Isv_undef_ptr +Perl_Isv_yes_ptr +Perl_Isys_intern_ptr +Perl_Itaint_warn_ptr +Perl_Itainted_ptr +Perl_Itainting_ptr +Perl_Ithreadhook_ptr +Perl_Itmps_floor_ptr +Perl_Itmps_ix_ptr +Perl_Itmps_max_ptr +Perl_Itmps_stack_ptr +Perl_Itop_env_ptr +Perl_Itoptarget_ptr +Perl_Iuid_ptr +Perl_Iunicode_ptr +Perl_Iunitcheckav_ptr +Perl_Iunitcheckav_save_ptr +Perl_Iunlockhook_ptr +Perl_Iunsafe_ptr +Perl_Iutf8_X_LVT_ptr +Perl_Iutf8_X_LV_LVT_V_ptr +Perl_Iutf8_X_LV_ptr +Perl_Iutf8_X_L_ptr +Perl_Iutf8_X_T_ptr +Perl_Iutf8_X_V_ptr +Perl_Iutf8_X_begin_ptr +Perl_Iutf8_X_extend_ptr +Perl_Iutf8_X_non_hangul_ptr +Perl_Iutf8_X_prepend_ptr +Perl_Iutf8_alnum_ptr +Perl_Iutf8_alpha_ptr +Perl_Iutf8_ascii_ptr +Perl_Iutf8_cntrl_ptr +Perl_Iutf8_digit_ptr +Perl_Iutf8_graph_ptr +Perl_Iutf8_idcont_ptr +Perl_Iutf8_idstart_ptr +Perl_Iutf8_lower_ptr +Perl_Iutf8_mark_ptr +Perl_Iutf8_perl_space_ptr +Perl_Iutf8_perl_word_ptr +Perl_Iutf8_posix_digit_ptr +Perl_Iutf8_print_ptr +Perl_Iutf8_punct_ptr +Perl_Iutf8_space_ptr +Perl_Iutf8_tofold_ptr +Perl_Iutf8_tolower_ptr +Perl_Iutf8_totitle_ptr +Perl_Iutf8_toupper_ptr +Perl_Iutf8_upper_ptr +Perl_Iutf8_xdigit_ptr +Perl_Iutf8cache_ptr +Perl_Iutf8locale_ptr +Perl_Iwarnhook_ptr +Perl_PerlIO_clearerr +Perl_PerlIO_close +Perl_PerlIO_context_layers +Perl_PerlIO_eof +Perl_PerlIO_error +Perl_PerlIO_fileno +Perl_PerlIO_fill +Perl_PerlIO_flush +Perl_PerlIO_get_base +Perl_PerlIO_get_bufsiz +Perl_PerlIO_get_cnt +Perl_PerlIO_get_ptr +Perl_PerlIO_read +Perl_PerlIO_seek +Perl_PerlIO_set_cnt +Perl_PerlIO_set_ptrcnt +Perl_PerlIO_setlinebuf +Perl_PerlIO_stderr +Perl_PerlIO_stdin +Perl_PerlIO_stdout +Perl_PerlIO_tell +Perl_PerlIO_unread +Perl_PerlIO_write +Perl_Slab_Alloc +Perl_Slab_Free +Perl_amagic_call +Perl_any_dup +Perl_apply_attrs_string +Perl_atfork_lock +Perl_atfork_unlock +Perl_av_arylen_p +Perl_av_clear +Perl_av_delete +Perl_av_exists +Perl_av_extend +Perl_av_fetch +Perl_av_fill +Perl_av_iter_p +Perl_av_len +Perl_av_make +Perl_av_pop +Perl_av_push +Perl_av_reify +Perl_av_shift +Perl_av_store +Perl_av_undef +Perl_av_unshift +Perl_block_gimme +Perl_bytes_from_utf8 +Perl_bytes_to_utf8 +Perl_call_argv +Perl_call_atexit +Perl_call_list +Perl_call_method +Perl_call_pv +Perl_call_sv +Perl_calloc +Perl_cast_i32 +Perl_cast_iv +Perl_cast_ulong +Perl_cast_uv +Perl_ck_warner +Perl_ck_warner_d +Perl_ckwarn +Perl_ckwarn_d +Perl_croak +Perl_croak_nocontext +Perl_croak_xs_usage +Perl_csighandler +Perl_custom_op_desc +Perl_custom_op_name +Perl_cv_const_sv +Perl_cv_undef +Perl_cx_dump +Perl_cx_dup +Perl_cxinc +Perl_deb +Perl_deb_nocontext +Perl_delimcpy +Perl_despatch_signals +Perl_die +Perl_die_nocontext +Perl_dirp_dup +Perl_do_aexec +Perl_do_aspawn +Perl_do_binmode +Perl_do_close +Perl_do_gv_dump +Perl_do_gvgv_dump +Perl_do_hv_dump +Perl_do_join +Perl_do_magic_dump +Perl_do_op_dump +Perl_do_open +Perl_do_open9 +Perl_do_openn +Perl_do_pmop_dump +Perl_do_spawn +Perl_do_spawn_nowait +Perl_do_sprintf +Perl_do_sv_dump +Perl_doing_taint +Perl_doref +Perl_dounwind +Perl_dowantarray +Perl_dump_all +Perl_dump_eval +Perl_dump_form +Perl_dump_indent +Perl_dump_packsubs +Perl_dump_sub +Perl_dump_vindent +Perl_emulate_cop_io +Perl_eval_pv +Perl_eval_sv +Perl_fbm_compile +Perl_fbm_instr +Perl_fetch_cop_label +Perl_filter_add +Perl_filter_del +Perl_filter_read +Perl_find_runcv +Perl_find_rundefsvoffset +Perl_form +Perl_form_nocontext +Perl_fp_dup +Perl_fprintf_nocontext +Perl_free_tmps +Perl_get_av +Perl_get_context +Perl_get_cv +Perl_get_cvn_flags +Perl_get_hv +Perl_get_op_descs +Perl_get_op_names +Perl_get_ppaddr +Perl_get_re_arg +Perl_get_sv +Perl_get_vtbl +Perl_getcwd_sv +Perl_gp_dup +Perl_gp_free +Perl_gp_ref +Perl_grok_bin +Perl_grok_hex +Perl_grok_number +Perl_grok_numeric_radix +Perl_grok_oct +Perl_gv_AVadd +Perl_gv_HVadd +Perl_gv_IOadd +Perl_gv_SVadd +Perl_gv_add_by_type +Perl_gv_autoload4 +Perl_gv_check +Perl_gv_const_sv +Perl_gv_dump +Perl_gv_efullname +Perl_gv_efullname3 +Perl_gv_efullname4 +Perl_gv_fetchfile +Perl_gv_fetchfile_flags +Perl_gv_fetchmeth +Perl_gv_fetchmeth_autoload +Perl_gv_fetchmethod +Perl_gv_fetchmethod_autoload +Perl_gv_fetchmethod_flags +Perl_gv_fetchpv +Perl_gv_fetchpvn_flags +Perl_gv_fetchsv +Perl_gv_fullname +Perl_gv_fullname3 +Perl_gv_fullname4 +Perl_gv_handler +Perl_gv_init +Perl_gv_name_set +Perl_gv_stashpv +Perl_gv_stashpvn +Perl_gv_stashsv +Perl_gv_try_downgrade +Perl_he_dup +Perl_hek_dup +Perl_hv_clear +Perl_hv_clear_placeholders +Perl_hv_common +Perl_hv_common_key_len +Perl_hv_delayfree_ent +Perl_hv_delete +Perl_hv_delete_ent +Perl_hv_eiter_p +Perl_hv_eiter_set +Perl_hv_exists +Perl_hv_exists_ent +Perl_hv_fetch +Perl_hv_fetch_ent +Perl_hv_free_ent +Perl_hv_iterinit +Perl_hv_iterkey +Perl_hv_iterkeysv +Perl_hv_iternext +Perl_hv_iternext_flags +Perl_hv_iternextsv +Perl_hv_iterval +Perl_hv_ksplit +Perl_hv_magic +Perl_hv_name_set +Perl_hv_placeholders_get +Perl_hv_placeholders_p +Perl_hv_placeholders_set +Perl_hv_riter_p +Perl_hv_riter_set +Perl_hv_scalar +Perl_hv_store +Perl_hv_store_ent +Perl_hv_store_flags +Perl_hv_undef +Perl_ibcmp +Perl_ibcmp_locale +Perl_ibcmp_utf8 +Perl_init_i18nl10n +Perl_init_i18nl14n +Perl_init_os_extras +Perl_init_stacks +Perl_init_tm +Perl_instr +Perl_is_ascii_string +Perl_is_lvalue_sub +Perl_is_uni_alnum +Perl_is_uni_alnum_lc +Perl_is_uni_alpha +Perl_is_uni_alpha_lc +Perl_is_uni_ascii +Perl_is_uni_ascii_lc +Perl_is_uni_cntrl +Perl_is_uni_cntrl_lc +Perl_is_uni_digit +Perl_is_uni_digit_lc +Perl_is_uni_graph +Perl_is_uni_graph_lc +Perl_is_uni_idfirst +Perl_is_uni_idfirst_lc +Perl_is_uni_lower +Perl_is_uni_lower_lc +Perl_is_uni_print +Perl_is_uni_print_lc +Perl_is_uni_punct +Perl_is_uni_punct_lc +Perl_is_uni_space +Perl_is_uni_space_lc +Perl_is_uni_upper +Perl_is_uni_upper_lc +Perl_is_uni_xdigit +Perl_is_uni_xdigit_lc +Perl_is_utf8_X_L +Perl_is_utf8_X_LV +Perl_is_utf8_X_LVT +Perl_is_utf8_X_LV_LVT_V +Perl_is_utf8_X_T +Perl_is_utf8_X_V +Perl_is_utf8_X_begin +Perl_is_utf8_X_extend +Perl_is_utf8_X_non_hangul +Perl_is_utf8_X_prepend +Perl_is_utf8_alnum +Perl_is_utf8_alpha +Perl_is_utf8_ascii +Perl_is_utf8_char +Perl_is_utf8_cntrl +Perl_is_utf8_digit +Perl_is_utf8_graph +Perl_is_utf8_idcont +Perl_is_utf8_idfirst +Perl_is_utf8_lower +Perl_is_utf8_mark +Perl_is_utf8_perl_space +Perl_is_utf8_perl_word +Perl_is_utf8_posix_digit +Perl_is_utf8_print +Perl_is_utf8_punct +Perl_is_utf8_space +Perl_is_utf8_string +Perl_is_utf8_string_loc +Perl_is_utf8_string_loclen +Perl_is_utf8_upper +Perl_is_utf8_xdigit +Perl_leave_scope +Perl_lex_bufutf8 +Perl_lex_discard_to +Perl_lex_end +Perl_lex_grow_linestr +Perl_lex_next_chunk +Perl_lex_peek_unichar +Perl_lex_read_space +Perl_lex_read_to +Perl_lex_read_unichar +Perl_lex_stuff_pvn +Perl_lex_stuff_sv +Perl_lex_unstuff +Perl_load_module +Perl_load_module_nocontext +Perl_looks_like_number +Perl_magic_dump +Perl_malloc +Perl_markstack_grow +Perl_mess +Perl_mess_nocontext +Perl_mfree +Perl_mg_clear +Perl_mg_copy +Perl_mg_dup +Perl_mg_find +Perl_mg_free +Perl_mg_get +Perl_mg_length +Perl_mg_magical +Perl_mg_set +Perl_mg_size +Perl_mini_mktime +Perl_mod +Perl_moreswitches +Perl_mro_get_from_name +Perl_mro_get_linear_isa +Perl_mro_get_private_data +Perl_mro_meta_init +Perl_mro_method_changed_in +Perl_mro_register +Perl_mro_set_mro +Perl_mro_set_private_data +Perl_my_atof +Perl_my_atof2 +Perl_my_cxt_init +Perl_my_dirfd +Perl_my_exit +Perl_my_failure_exit +Perl_my_fflush_all +Perl_my_fork +Perl_my_lstat +Perl_my_popen_list +Perl_my_setenv +Perl_my_snprintf +Perl_my_socketpair +Perl_my_stat +Perl_my_strftime +Perl_my_strlcat +Perl_my_strlcpy +Perl_my_vsnprintf +Perl_newANONATTRSUB +Perl_newANONHASH +Perl_newANONLIST +Perl_newANONSUB +Perl_newASSIGNOP +Perl_newATTRSUB +Perl_newAV +Perl_newAVREF +Perl_newBINOP +Perl_newCONDOP +Perl_newCONSTSUB +Perl_newCVREF +Perl_newFORM +Perl_newFOROP +Perl_newGIVENOP +Perl_newGVOP +Perl_newGVREF +Perl_newGVgen +Perl_newHV +Perl_newHVREF +Perl_newHVhv +Perl_newIO +Perl_newLISTOP +Perl_newLOGOP +Perl_newLOOPEX +Perl_newLOOPOP +Perl_newMYSUB +Perl_newNULLLIST +Perl_newOP +Perl_newPADOP +Perl_newPMOP +Perl_newPROG +Perl_newPVOP +Perl_newRANGE +Perl_newRV +Perl_newRV_noinc +Perl_newSLICEOP +Perl_newSTATEOP +Perl_newSUB +Perl_newSV +Perl_newSVOP +Perl_newSVREF +Perl_newSV_type +Perl_newSVhek +Perl_newSViv +Perl_newSVnv +Perl_newSVpv +Perl_newSVpvf +Perl_newSVpvf_nocontext +Perl_newSVpvn +Perl_newSVpvn_flags +Perl_newSVpvn_share +Perl_newSVrv +Perl_newSVsv +Perl_newSVuv +Perl_newUNOP +Perl_newWHENOP +Perl_newWHILEOP +Perl_newXS +Perl_newXS_flags +Perl_new_collate +Perl_new_ctype +Perl_new_numeric +Perl_new_stackinfo +Perl_new_version +Perl_new_warnings_bitfield +Perl_ninstr +Perl_nothreadhook +Perl_op_clear +Perl_op_dump +Perl_op_free +Perl_op_null +Perl_op_refcnt_lock +Perl_op_refcnt_unlock +Perl_pack_cat +Perl_packlist +Perl_pad_findmy +Perl_pad_push +Perl_parser_dup +Perl_pmflag +Perl_pmop_dump +Perl_pop_scope +Perl_pregcomp +Perl_pregexec +Perl_pregfree +Perl_pregfree2 +Perl_prescan_version +Perl_printf_nocontext +Perl_ptr_table_clear +Perl_ptr_table_fetch +Perl_ptr_table_free +Perl_ptr_table_new +Perl_ptr_table_split +Perl_ptr_table_store +Perl_push_scope +Perl_pv_display +Perl_pv_escape +Perl_pv_pretty +Perl_pv_uni_display +Perl_qerror +Perl_re_compile +Perl_re_dup_guts +Perl_re_intuit_start +Perl_re_intuit_string +Perl_realloc +Perl_reentrant_free +Perl_reentrant_init +Perl_reentrant_retry +Perl_reentrant_size +Perl_ref +Perl_refcounted_he_chain_2hv +Perl_refcounted_he_fetch +Perl_refcounted_he_new +Perl_reg_named_buff +Perl_reg_named_buff_all +Perl_reg_named_buff_exists +Perl_reg_named_buff_fetch +Perl_reg_named_buff_firstkey +Perl_reg_named_buff_iter +Perl_reg_named_buff_nextkey +Perl_reg_named_buff_scalar +Perl_reg_numbered_buff_fetch +Perl_reg_numbered_buff_length +Perl_reg_numbered_buff_store +Perl_reg_qr_package +Perl_reg_temp_copy +Perl_regclass_swash +Perl_regcurly +Perl_regdump +Perl_regdupe_internal +Perl_regexec_flags +Perl_regfree_internal +Perl_reginitcolors +Perl_regnext +Perl_repeatcpy +Perl_report_uninit +Perl_require_pv +Perl_rninstr +Perl_rsignal +Perl_rsignal_state +Perl_runops_debug +Perl_runops_standard +Perl_rvpv_dup +Perl_safesyscalloc +Perl_safesysfree +Perl_safesysmalloc +Perl_safesysrealloc +Perl_save_I16 +Perl_save_I32 +Perl_save_I8 +Perl_save_adelete +Perl_save_aelem_flags +Perl_save_alloc +Perl_save_aptr +Perl_save_ary +Perl_save_bool +Perl_save_clearsv +Perl_save_delete +Perl_save_destructor +Perl_save_destructor_x +Perl_save_freeop +Perl_save_freepv +Perl_save_freesv +Perl_save_generic_pvref +Perl_save_generic_svref +Perl_save_gp +Perl_save_hash +Perl_save_hdelete +Perl_save_helem_flags +Perl_save_hptr +Perl_save_int +Perl_save_item +Perl_save_iv +Perl_save_list +Perl_save_long +Perl_save_mortalizesv +Perl_save_nogv +Perl_save_op +Perl_save_padsv_and_mortalize +Perl_save_pptr +Perl_save_pushptr +Perl_save_re_context +Perl_save_scalar +Perl_save_set_svflags +Perl_save_shared_pvref +Perl_save_sptr +Perl_save_svref +Perl_save_vptr +Perl_savepv +Perl_savepvn +Perl_savesharedpv +Perl_savesharedpvn +Perl_savestack_grow +Perl_savestack_grow_cnt +Perl_savesvpv +Perl_scan_bin +Perl_scan_hex +Perl_scan_num +Perl_scan_oct +Perl_scan_version +Perl_scan_vstring +Perl_screaminstr +Perl_seed +Perl_set_context +Perl_set_numeric_local +Perl_set_numeric_radix +Perl_set_numeric_standard +Perl_setdefout +Perl_share_hek +Perl_si_dup +Perl_signbit +Perl_sortsv +Perl_sortsv_flags +Perl_ss_dup +Perl_stack_grow +Perl_start_subparse +Perl_stashpv_hvname_match +Perl_str_to_version +Perl_sv_2bool +Perl_sv_2cv +Perl_sv_2io +Perl_sv_2iv +Perl_sv_2iv_flags +Perl_sv_2mortal +Perl_sv_2nv +Perl_sv_2pv +Perl_sv_2pv_flags +Perl_sv_2pv_nolen +Perl_sv_2pvbyte +Perl_sv_2pvbyte_nolen +Perl_sv_2pvutf8 +Perl_sv_2pvutf8_nolen +Perl_sv_2uv +Perl_sv_2uv_flags +Perl_sv_backoff +Perl_sv_bless +Perl_sv_cat_decode +Perl_sv_catpv +Perl_sv_catpv_mg +Perl_sv_catpvf +Perl_sv_catpvf_mg +Perl_sv_catpvf_mg_nocontext +Perl_sv_catpvf_nocontext +Perl_sv_catpvn +Perl_sv_catpvn_flags +Perl_sv_catpvn_mg +Perl_sv_catsv +Perl_sv_catsv_flags +Perl_sv_catsv_mg +Perl_sv_chop +Perl_sv_clear +Perl_sv_cmp +Perl_sv_cmp_locale +Perl_sv_collxfrm +Perl_sv_compile_2op +Perl_sv_copypv +Perl_sv_dec +Perl_sv_derived_from +Perl_sv_destroyable +Perl_sv_does +Perl_sv_dump +Perl_sv_dup +Perl_sv_eq +Perl_sv_force_normal +Perl_sv_force_normal_flags +Perl_sv_free +Perl_sv_free2 +Perl_sv_gets +Perl_sv_grow +Perl_sv_inc +Perl_sv_insert +Perl_sv_insert_flags +Perl_sv_isa +Perl_sv_isobject +Perl_sv_iv +Perl_sv_len +Perl_sv_len_utf8 +Perl_sv_magic +Perl_sv_magicext +Perl_sv_mortalcopy +Perl_sv_newmortal +Perl_sv_newref +Perl_sv_nolocking +Perl_sv_nosharing +Perl_sv_nounlocking +Perl_sv_nv +Perl_sv_peek +Perl_sv_pos_b2u +Perl_sv_pos_u2b +Perl_sv_pos_u2b_flags +Perl_sv_pv +Perl_sv_pvbyte +Perl_sv_pvbyten +Perl_sv_pvbyten_force +Perl_sv_pvn +Perl_sv_pvn_force +Perl_sv_pvn_force_flags +Perl_sv_pvn_nomg +Perl_sv_pvutf8 +Perl_sv_pvutf8n +Perl_sv_pvutf8n_force +Perl_sv_recode_to_utf8 +Perl_sv_reftype +Perl_sv_replace +Perl_sv_report_used +Perl_sv_reset +Perl_sv_rvweaken +Perl_sv_setiv +Perl_sv_setiv_mg +Perl_sv_setnv +Perl_sv_setnv_mg +Perl_sv_setpv +Perl_sv_setpv_mg +Perl_sv_setpvf +Perl_sv_setpvf_mg +Perl_sv_setpvf_mg_nocontext +Perl_sv_setpvf_nocontext +Perl_sv_setpviv +Perl_sv_setpviv_mg +Perl_sv_setpvn +Perl_sv_setpvn_mg +Perl_sv_setref_iv +Perl_sv_setref_nv +Perl_sv_setref_pv +Perl_sv_setref_pvn +Perl_sv_setref_uv +Perl_sv_setsv +Perl_sv_setsv_flags +Perl_sv_setsv_mg +Perl_sv_setuv +Perl_sv_setuv_mg +Perl_sv_taint +Perl_sv_tainted +Perl_sv_true +Perl_sv_uni_display +Perl_sv_unmagic +Perl_sv_unref +Perl_sv_unref_flags +Perl_sv_untaint +Perl_sv_upgrade +Perl_sv_usepvn +Perl_sv_usepvn_flags +Perl_sv_usepvn_mg +Perl_sv_utf8_decode +Perl_sv_utf8_downgrade +Perl_sv_utf8_encode +Perl_sv_utf8_upgrade +Perl_sv_utf8_upgrade_flags_grow +Perl_sv_uv +Perl_sv_vcatpvf +Perl_sv_vcatpvf_mg +Perl_sv_vcatpvfn +Perl_sv_vsetpvf +Perl_sv_vsetpvf_mg +Perl_sv_vsetpvfn +Perl_swash_fetch +Perl_swash_init +Perl_sys_init +Perl_sys_init3 +Perl_sys_intern_clear +Perl_sys_intern_dup +Perl_sys_intern_init +Perl_sys_term +Perl_taint_env +Perl_taint_proper +Perl_tmps_grow +Perl_to_uni_fold +Perl_to_uni_lower +Perl_to_uni_lower_lc +Perl_to_uni_title +Perl_to_uni_title_lc +Perl_to_uni_upper +Perl_to_uni_upper_lc +Perl_to_utf8_case +Perl_to_utf8_fold +Perl_to_utf8_lower +Perl_to_utf8_title +Perl_to_utf8_upper +Perl_unpack_str +Perl_unpackstring +Perl_unsharepvn +Perl_upg_version +Perl_utf16_to_utf8 +Perl_utf16_to_utf8_reversed +Perl_utf8_distance +Perl_utf8_hop +Perl_utf8_length +Perl_utf8_to_bytes +Perl_utf8_to_uvchr +Perl_utf8_to_uvuni +Perl_utf8n_to_uvchr +Perl_utf8n_to_uvuni +Perl_uvchr_to_utf8 +Perl_uvchr_to_utf8_flags +Perl_uvuni_to_utf8 +Perl_uvuni_to_utf8_flags +Perl_vcmp +Perl_vcroak +Perl_vdeb +Perl_vform +Perl_vivify_defelem +Perl_vload_module +Perl_vmess +Perl_vnewSVpvf +Perl_vnormal +Perl_vnumify +Perl_vstringify +Perl_vverify +Perl_vwarn +Perl_vwarner +Perl_warn +Perl_warn_nocontext +Perl_warner +Perl_warner_nocontext +Perl_whichsig +Perl_win32_init +Perl_win32_term +Perl_yylex +RunPerl +boot_DynaLoader +boot_Win32CORE +init_Win32CORE +perl_alloc +perl_alloc_override +perl_alloc_using +perl_clone +perl_clone_host +perl_clone_using +perl_construct +perl_destruct +perl_free +perl_get_host_info +perl_parse +perl_run +perlsio_binmode +setgid +setuid +win32_abort +win32_accept +win32_access +win32_alarm +win32_ansipath +win32_async_check +win32_bind +win32_calloc +win32_chdir +win32_chmod +win32_chsize +win32_clearenv +win32_clearerr +win32_close +win32_closedir +win32_closesocket +win32_connect +win32_crypt +win32_dup +win32_dup2 +win32_dynaload +win32_endhostent +win32_endnetent +win32_endprotoent +win32_endservent +win32_environ +win32_eof +win32_errno +win32_execv +win32_execvp +win32_fclose +win32_fcloseall +win32_fdopen +win32_feof +win32_ferror +win32_fflush +win32_fgetc +win32_fgetpos +win32_fgets +win32_fileno +win32_flock +win32_flushall +win32_fopen +win32_fprintf +win32_fputc +win32_fputs +win32_fread +win32_free +win32_free_childdir +win32_free_childenv +win32_freopen +win32_fseek +win32_fsetpos +win32_fstat +win32_ftell +win32_fwrite +win32_get_childdir +win32_get_childenv +win32_get_osfhandle +win32_getc +win32_getchar +win32_getenv +win32_gethostbyaddr +win32_gethostbyname +win32_gethostname +win32_getnetbyaddr +win32_getnetbyname +win32_getnetent +win32_getpeername +win32_getpid +win32_getprotobyname +win32_getprotobynumber +win32_getprotoent +win32_gets +win32_getservbyname +win32_getservbyport +win32_getservent +win32_getsockname +win32_getsockopt +win32_gettimeofday +win32_htonl +win32_htons +win32_inet_addr +win32_inet_ntoa +win32_ioctl +win32_ioctlsocket +win32_isatty +win32_kill +win32_link +win32_listen +win32_longpath +win32_lseek +win32_malloc +win32_mkdir +win32_ntohl +win32_ntohs +win32_open +win32_open_osfhandle +win32_opendir +win32_os_id +win32_pclose +win32_perror +win32_pipe +win32_popen +win32_printf +win32_putc +win32_putchar +win32_putenv +win32_puts +win32_read +win32_readdir +win32_realloc +win32_recv +win32_recvfrom +win32_rename +win32_rewind +win32_rewinddir +win32_rmdir +win32_seekdir +win32_select +win32_send +win32_sendto +win32_setbuf +win32_sethostent +win32_setmode +win32_setnetent +win32_setprotoent +win32_setservent +win32_setsockopt +win32_setvbuf +win32_shutdown +win32_sleep +win32_socket +win32_spawnvp +win32_stat +win32_stderr +win32_stdin +win32_stdout +win32_str_os_error +win32_strerror +win32_tell +win32_telldir +win32_times +win32_tmpfile +win32_uname +win32_ungetc +win32_unlink +win32_utime +win32_vfprintf +win32_vprintf +win32_wait +win32_waitpid +win32_write diff --git a/src/makeinc.skel.mak b/src/makeinc.skel.mak index 5c6beb6f..1d6d23cc 100644 --- a/src/makeinc.skel.mak +++ b/src/makeinc.skel.mak @@ -30,8 +30,8 @@ CFLAGS = $(CFLAGS) /favor:AMD64 /D_WIN64 CPPFLAGS = $(CPPFLAGS) /favor:AMD64 /D_WIN64 LDFLAGS = $(LDFLAGS) msvcrt_win2003.obj -PERL512PATH = c:\mozilla-build\perl-5.12-x64\perl\lib\CORE -PERL514PATH = c:\mozilla-build\perl-5.14-x64\lib\CORE +PERL512PATH = c:\mozilla-build\perl-5.12-x64 +PERL514PATH = c:\mozilla-build\perl-5.14-x64 PYTHONPATH = c:\mozilla-build\python-2.7-x64 TCLPATH = c:\mozilla-build\tcl-8.5-x64 !else -- cgit 1.4.1 From b1665136f88074fba731ac898308162f4b81c5db Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Thu, 28 Jul 2011 00:10:14 +0200 Subject: forgot to update perl path for x86 --- src/makeinc.skel.mak | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/makeinc.skel.mak b/src/makeinc.skel.mak index 1d6d23cc..ad737b38 100644 --- a/src/makeinc.skel.mak +++ b/src/makeinc.skel.mak @@ -37,8 +37,8 @@ TCLPATH = c:\mozilla-build\tcl-8.5-x64 !else LDFLAGS = $(LDFLAGS) msvcrt_winxp.obj -PERL512PATH = c:\mozilla-build\perl-5.12-x86\perl\lib\CORE -PERL514PATH = c:\mozilla-build\perl-5.14-x86\lib\CORE +PERL512PATH = c:\mozilla-build\perl-5.12-x86 +PERL514PATH = c:\mozilla-build\perl-5.14-x86 PYTHONPATH = c:\mozilla-build\python-2.7-x86 TCLPATH = c:\mozilla-build\tcl-8.5-x86 !endif -- cgit 1.4.1