mirror of
https://github.com/moparisthebest/hexchat
synced 2024-12-22 23:58:52 -05:00
split dirent.h and more xtray support
This commit is contained in:
parent
1effb26d5f
commit
e26a1c5f7a
@ -61,7 +61,7 @@ copy ..\plugins\python\xcpython.dll %XCHAT_DEST%\plugins
|
|||||||
copy ..\plugins\tcl\xctcl.dll %XCHAT_DEST%\plugins
|
copy ..\plugins\tcl\xctcl.dll %XCHAT_DEST%\plugins
|
||||||
copy ..\plugins\upd\xcupd.dll %XCHAT_DEST%\plugins
|
copy ..\plugins\upd\xcupd.dll %XCHAT_DEST%\plugins
|
||||||
::copy ..\plugins\xdcc\xcxdcc.dll %XCHAT_DEST%\plugins
|
::copy ..\plugins\xdcc\xcxdcc.dll %XCHAT_DEST%\plugins
|
||||||
::copy ..\plugins\xtray\xtray.dll %XCHAT_DEST%\plugins
|
copy ..\plugins\xtray\xtray.dll %XCHAT_DEST%\plugins
|
||||||
copy ..\plugins\winamp\xcwinamp.dll %XCHAT_DEST%\plugins
|
copy ..\plugins\winamp\xcwinamp.dll %XCHAT_DEST%\plugins
|
||||||
copy %DEPS_ROOT%\bin\lua51.dll %XCHAT_DEST%
|
copy %DEPS_ROOT%\bin\lua51.dll %XCHAT_DEST%
|
||||||
pause
|
pause
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
include "..\..\src\makeinc.mak"
|
include "..\..\src\makeinc.mak"
|
||||||
|
|
||||||
|
DIRENTLIB = ..\..\src\common\dirent.lib
|
||||||
|
|
||||||
all: lua.obj lua.def
|
all: lua.obj lua.def
|
||||||
link $(LDFLAGS) $(LIBS) /dll /out:xclua.dll $(LUALIB).lib /def:lua.def lua.obj
|
link $(LDFLAGS) $(LIBS) /dll /out:xclua.dll $(LUALIB).lib $(DIRENTLIB) /def:lua.def lua.obj
|
||||||
|
|
||||||
lua.def:
|
lua.def:
|
||||||
echo EXPORTS > lua.def
|
echo EXPORTS > lua.def
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
include "..\..\src\makeinc.mak"
|
include "..\..\src\makeinc.mak"
|
||||||
|
|
||||||
|
DIRENTLIB = ..\..\src\common\dirent.lib
|
||||||
TARGET = $(PYTHONOUTPUT)
|
TARGET = $(PYTHONOUTPUT)
|
||||||
|
|
||||||
all: $(TARGET)
|
all: $(TARGET)
|
||||||
@ -14,7 +15,7 @@ python.obj: python.c
|
|||||||
$(CC) $(CFLAGS) /I.. /Dusleep=_sleep /DPATH_MAX=255 python.c $(GLIB) /I$(PYTHONPATH)\include /DPYTHON_DLL=\"$(PYTHONLIB).dll\"
|
$(CC) $(CFLAGS) /I.. /Dusleep=_sleep /DPATH_MAX=255 python.c $(GLIB) /I$(PYTHONPATH)\include /DPYTHON_DLL=\"$(PYTHONLIB).dll\"
|
||||||
|
|
||||||
$(TARGET): python.obj python.def
|
$(TARGET): python.obj python.def
|
||||||
$(LINK) /dll /out:$(TARGET) $(LDFLAGS) python.obj /libpath:$(PYTHONPATH)\libs $(PYTHONLIB).lib $(LIBS) /def:python.def
|
$(LINK) /dll /out:$(TARGET) $(LDFLAGS) python.obj /libpath:$(PYTHONPATH)\libs $(PYTHONLIB).lib $(DIRENTLIB) $(LIBS) /def:python.def
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
del $(TARGET)
|
del $(TARGET)
|
||||||
|
199
src/common/dirent.c
Normal file
199
src/common/dirent.c
Normal file
@ -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;
|
||||||
|
}
|
@ -1,60 +1,3 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* 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.
|
|
||||||
*****************************************************************************/
|
|
||||||
#ifndef DIRENT_H
|
#ifndef DIRENT_H
|
||||||
#define DIRENT_H
|
#define DIRENT_H
|
||||||
|
|
||||||
@ -62,14 +5,12 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
|
||||||
typedef struct dirent
|
typedef struct dirent
|
||||||
{
|
{
|
||||||
char d_name[MAX_PATH + 1]; /* current dir entry (multi-byte char string) */
|
char d_name[MAX_PATH + 1]; /* current dir entry (multi-byte char string) */
|
||||||
WIN32_FIND_DATAA data; /* file attributes */
|
WIN32_FIND_DATAA data; /* file attributes */
|
||||||
} dirent;
|
} dirent;
|
||||||
|
|
||||||
|
|
||||||
typedef struct DIR
|
typedef struct DIR
|
||||||
{
|
{
|
||||||
dirent current; /* Current directory entry */
|
dirent current; /* Current directory entry */
|
||||||
@ -78,153 +19,10 @@ typedef struct DIR
|
|||||||
char patt[MAX_PATH + 3]; /* search pattern (3 = pattern + "\\*\0") */
|
char patt[MAX_PATH + 3]; /* search pattern (3 = pattern + "\\*\0") */
|
||||||
} DIR;
|
} DIR;
|
||||||
|
|
||||||
|
|
||||||
/* Forward declarations */
|
/* Forward declarations */
|
||||||
static DIR *opendir (const char *dirname);
|
DIR *opendir (const char *dirname);
|
||||||
static struct dirent *readdir (DIR *dirp);
|
struct dirent *readdir (DIR *dirp);
|
||||||
static int closedir (DIR *dirp);
|
int closedir (DIR *dirp);
|
||||||
static void rewinddir(DIR* dirp);
|
void rewinddir(DIR* dirp);
|
||||||
|
|
||||||
|
|
||||||
/* 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.
|
|
||||||
*/
|
|
||||||
static 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.
|
|
||||||
*/
|
|
||||||
static 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.
|
|
||||||
*/
|
|
||||||
static 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.
|
|
||||||
*/
|
|
||||||
static 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif /*DIRENT_H*/
|
#endif /*DIRENT_H*/
|
||||||
|
@ -5,6 +5,7 @@ cfgfiles.obj \
|
|||||||
chanopt.obj \
|
chanopt.obj \
|
||||||
ctcp.obj \
|
ctcp.obj \
|
||||||
dcc.obj \
|
dcc.obj \
|
||||||
|
dirent.obj \
|
||||||
history.obj \
|
history.obj \
|
||||||
ignore.obj \
|
ignore.obj \
|
||||||
inbound.obj \
|
inbound.obj \
|
||||||
@ -14,7 +15,6 @@ notify.obj \
|
|||||||
outbound.obj \
|
outbound.obj \
|
||||||
plugin.obj \
|
plugin.obj \
|
||||||
plugin-timer.obj \
|
plugin-timer.obj \
|
||||||
portable.obj \
|
|
||||||
proto-irc.obj \
|
proto-irc.obj \
|
||||||
server.obj \
|
server.obj \
|
||||||
servlist.obj \
|
servlist.obj \
|
||||||
@ -25,16 +25,21 @@ tree.obj \
|
|||||||
url.obj \
|
url.obj \
|
||||||
userlist.obj \
|
userlist.obj \
|
||||||
util.obj \
|
util.obj \
|
||||||
|
wdkutil.obj \
|
||||||
xchat.obj
|
xchat.obj
|
||||||
|
|
||||||
all: $(COMMON_OBJECTS) xchatcommon.lib
|
all: $(COMMON_OBJECTS) xchatcommon.lib dirent.lib
|
||||||
|
|
||||||
xchatcommon.lib: $(COMMON_OBJECTS)
|
xchatcommon.lib: $(COMMON_OBJECTS)
|
||||||
lib /nologo /out:xchatcommon.lib $(COMMON_OBJECTS)
|
lib /nologo /out:xchatcommon.lib $(COMMON_OBJECTS)
|
||||||
|
|
||||||
|
dirent.lib: dirent.obj
|
||||||
|
lib /nologo /out:dirent.lib dirent.obj
|
||||||
|
|
||||||
.c.obj::
|
.c.obj::
|
||||||
$(CC) $(CFLAGS) $(GLIB) $<
|
$(CC) $(CFLAGS) $(GLIB) $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@del *.obj
|
@del *.obj
|
||||||
@del xchatcommon.lib
|
@del xchatcommon.lib
|
||||||
|
@del dirent.lib
|
||||||
|
@ -12,3 +12,16 @@ portable_mode ()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
xtray_mode ()
|
||||||
|
{
|
||||||
|
if ((_access( "plugins/xtray.dll", 0 )) != -1)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
@ -1 +1,2 @@
|
|||||||
int portable_mode ();
|
int portable_mode ();
|
||||||
|
int xtray_mode ();
|
130
xchat-wdk.patch
130
xchat-wdk.patch
@ -103,7 +103,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/plugins/xdcc/xdcc.c xchat-wdk/plugi
|
|||||||
|
|
||||||
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/cfgfiles.c xchat-wdk/src/common/cfgfiles.c
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/cfgfiles.c xchat-wdk/src/common/cfgfiles.c
|
||||||
--- xchat-wdk.orig/src/common/cfgfiles.c 2010-08-07 09:14:45 +0200
|
--- xchat-wdk.orig/src/common/cfgfiles.c 2010-08-07 09:14:45 +0200
|
||||||
+++ xchat-wdk/src/common/cfgfiles.c 2011-01-09 22:15:18 +0100
|
+++ xchat-wdk/src/common/cfgfiles.c 2011-01-14 05:44:35 +0100
|
||||||
@@ -17,7 +17,6 @@
|
@@ -17,7 +17,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/cfgfiles.c xchat-wdk/src
|
|||||||
#include "fe.h"
|
#include "fe.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
#include "xchatc.h"
|
#include "xchatc.h"
|
||||||
+#include "portable.h"
|
+#include "wdkutil.h"
|
||||||
|
|
||||||
-#ifdef WIN32
|
-#ifdef WIN32
|
||||||
-#define XCHAT_DIR "X-Chat 2"
|
-#define XCHAT_DIR "X-Chat 2"
|
||||||
@ -844,12 +844,12 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/xchat.h xchat-wdk/src/co
|
|||||||
unsigned int ctcp_time_limit; /*seconds of floods */
|
unsigned int ctcp_time_limit; /*seconds of floods */
|
||||||
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/about.c xchat-wdk/src/fe-gtk/about.c
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/about.c xchat-wdk/src/fe-gtk/about.c
|
||||||
--- xchat-wdk.orig/src/fe-gtk/about.c 2010-05-16 09:43:49 +0200
|
--- xchat-wdk.orig/src/fe-gtk/about.c 2010-05-16 09:43:49 +0200
|
||||||
+++ xchat-wdk/src/fe-gtk/about.c 2011-01-13 02:40:11 +0100
|
+++ xchat-wdk/src/fe-gtk/about.c 2011-01-14 05:44:48 +0100
|
||||||
@@ -39,6 +39,7 @@
|
@@ -39,6 +39,7 @@
|
||||||
|
|
||||||
#include "../common/xchat.h"
|
#include "../common/xchat.h"
|
||||||
#include "../common/util.h"
|
#include "../common/util.h"
|
||||||
+#include "../common/portable.h"
|
+#include "../common/wdkutil.h"
|
||||||
#include "palette.h"
|
#include "palette.h"
|
||||||
#include "pixmaps.h"
|
#include "pixmaps.h"
|
||||||
#include "gtkutil.h"
|
#include "gtkutil.h"
|
||||||
@ -1491,8 +1491,16 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/joind.c xchat-wdk/src/fe
|
|||||||
|
|
||||||
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/maingui.c xchat-wdk/src/fe-gtk/maingui.c
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/maingui.c xchat-wdk/src/fe-gtk/maingui.c
|
||||||
--- xchat-wdk.orig/src/fe-gtk/maingui.c 2010-12-28 04:16:34 +0100
|
--- xchat-wdk.orig/src/fe-gtk/maingui.c 2010-12-28 04:16:34 +0100
|
||||||
+++ xchat-wdk/src/fe-gtk/maingui.c 2010-12-28 14:57:33 +0100
|
+++ xchat-wdk/src/fe-gtk/maingui.c 2011-01-14 06:24:27 +0100
|
||||||
@@ -214,60 +214,10 @@
|
@@ -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 @@
|
||||||
away_list = mg_attr_list_create (&colors[COL_AWAY], FALSE);
|
away_list = mg_attr_list_create (&colors[COL_AWAY], FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1554,7 +1562,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/maingui.c xchat-wdk/src/
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -281,18 +231,14 @@
|
@@ -281,18 +232,14 @@
|
||||||
{
|
{
|
||||||
set_window_urgency (win, FALSE);
|
set_window_urgency (win, FALSE);
|
||||||
}
|
}
|
||||||
@ -1573,7 +1581,16 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/maingui.c xchat-wdk/src/
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* set a tab plain, red, light-red, or blue */
|
/* set a tab plain, red, light-red, or blue */
|
||||||
@@ -2972,11 +2918,7 @@
|
@@ -1334,7 +1281,7 @@
|
||||||
|
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 @@
|
||||||
gtk_xtext_check_marker_visibility (GTK_XTEXT (current_sess->gui->xtext));
|
gtk_xtext_check_marker_visibility (GTK_XTEXT (current_sess->gui->xtext));
|
||||||
plugin_emit_dummy_print (current_sess, "Focus Window");
|
plugin_emit_dummy_print (current_sess, "Focus Window");
|
||||||
}
|
}
|
||||||
@ -1585,7 +1602,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/maingui.c xchat-wdk/src/
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2987,11 +2929,7 @@
|
@@ -2987,11 +2930,7 @@
|
||||||
if (!sess->server->server_session)
|
if (!sess->server->server_session)
|
||||||
sess->server->server_session = sess;
|
sess->server->server_session = sess;
|
||||||
gtk_xtext_check_marker_visibility(GTK_XTEXT (current_sess->gui->xtext));
|
gtk_xtext_check_marker_visibility(GTK_XTEXT (current_sess->gui->xtext));
|
||||||
@ -1653,8 +1670,8 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/palette.c xchat-wdk/src/
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/src/fe-gtk/plugin-tray.c
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/src/fe-gtk/plugin-tray.c
|
||||||
--- xchat-wdk.orig/src/fe-gtk/plugin-tray.c 2010-11-16 09:26:23 +0100
|
--- xchat-wdk.orig/src/fe-gtk/plugin-tray.c 2010-11-16 09:26:23 +0100
|
||||||
+++ xchat-wdk/src/fe-gtk/plugin-tray.c 2011-01-11 00:16:30 +0100
|
+++ xchat-wdk/src/fe-gtk/plugin-tray.c 2011-01-14 05:52:36 +0100
|
||||||
@@ -1,8 +1,7 @@
|
@@ -1,14 +1,14 @@
|
||||||
/* Copyright (C) 2006-2007 Peter Zelezny. */
|
/* Copyright (C) 2006-2007 Peter Zelezny. */
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -1664,7 +1681,14 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
#include "../common/xchat.h"
|
#include "../common/xchat.h"
|
||||||
#include "../common/xchatc.h"
|
#include "../common/xchatc.h"
|
||||||
#include "../common/inbound.h"
|
#include "../common/inbound.h"
|
||||||
@@ -297,10 +296,10 @@
|
#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 @@
|
||||||
nets = tray_count_networks ();
|
nets = tray_count_networks ();
|
||||||
chans = tray_count_channels ();
|
chans = tray_count_channels ();
|
||||||
if (nets)
|
if (nets)
|
||||||
@ -1677,7 +1701,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (custom_icon1)
|
if (custom_icon1)
|
||||||
@@ -450,7 +449,7 @@
|
@@ -450,7 +450,7 @@
|
||||||
/* ph may have an invalid context now */
|
/* ph may have an invalid context now */
|
||||||
xchat_set_context (ph, xchat_find_context (ph, NULL, NULL));
|
xchat_set_context (ph, xchat_find_context (ph, NULL, NULL));
|
||||||
|
|
||||||
@ -1686,7 +1710,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
|
|
||||||
tray_stop_flash ();
|
tray_stop_flash ();
|
||||||
tray_reset_counts ();
|
tray_reset_counts ();
|
||||||
@@ -585,11 +584,12 @@
|
@@ -585,11 +585,12 @@
|
||||||
/*gtk_menu_set_screen (GTK_MENU (menu), gtk_widget_get_screen (widget));*/
|
/*gtk_menu_set_screen (GTK_MENU (menu), gtk_widget_get_screen (widget));*/
|
||||||
|
|
||||||
if (tray_get_window_status () == WS_HIDDEN)
|
if (tray_get_window_status () == WS_HIDDEN)
|
||||||
@ -1701,7 +1725,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
submenu = mg_submenu (menu, _("_Blink on"));
|
submenu = mg_submenu (menu, _("_Blink on"));
|
||||||
blink_item (&prefs.input_tray_chans, submenu, _("Channel Message"));
|
blink_item (&prefs.input_tray_chans, submenu, _("Channel Message"));
|
||||||
blink_item (&prefs.input_tray_priv, submenu, _("Private Message"));
|
blink_item (&prefs.input_tray_priv, submenu, _("Private Message"));
|
||||||
@@ -606,6 +606,7 @@
|
@@ -606,6 +607,7 @@
|
||||||
gtk_widget_set_sensitive (item, FALSE);
|
gtk_widget_set_sensitive (item, FALSE);
|
||||||
|
|
||||||
tray_make_item (menu, NULL, tray_menu_quit_cb, NULL);
|
tray_make_item (menu, NULL, tray_menu_quit_cb, NULL);
|
||||||
@ -1709,7 +1733,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
mg_create_icon_item (_("_Quit"), GTK_STOCK_QUIT, menu, tray_menu_quit_cb, NULL);
|
mg_create_icon_item (_("_Quit"), GTK_STOCK_QUIT, menu, tray_menu_quit_cb, NULL);
|
||||||
|
|
||||||
menu_add_plugin_items (menu, "\x5$TRAY", NULL);
|
menu_add_plugin_items (menu, "\x5$TRAY", NULL);
|
||||||
@@ -631,8 +632,8 @@
|
@@ -631,8 +633,8 @@
|
||||||
sticon = gtk_status_icon_new_from_pixbuf (ICON_NORMAL);
|
sticon = gtk_status_icon_new_from_pixbuf (ICON_NORMAL);
|
||||||
if (!sticon)
|
if (!sticon)
|
||||||
return;
|
return;
|
||||||
@ -1720,7 +1744,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
g_signal_connect (G_OBJECT (sticon), "activate",
|
g_signal_connect (G_OBJECT (sticon), "activate",
|
||||||
G_CALLBACK (tray_menu_restore_cb), NULL);
|
G_CALLBACK (tray_menu_restore_cb), NULL);
|
||||||
}
|
}
|
||||||
@@ -650,15 +651,15 @@
|
@@ -650,15 +652,15 @@
|
||||||
/* FIXME: hides any previous private messages */
|
/* FIXME: hides any previous private messages */
|
||||||
tray_hilight_count++;
|
tray_hilight_count++;
|
||||||
if (tray_hilight_count == 1)
|
if (tray_hilight_count == 1)
|
||||||
@ -1739,7 +1763,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
word[1], xchat_get_info (ph, "channel"));
|
word[1], xchat_get_info (ph, "channel"));
|
||||||
|
|
||||||
return XCHAT_EAT_NONE;
|
return XCHAT_EAT_NONE;
|
||||||
@@ -676,14 +677,14 @@
|
@@ -676,14 +678,14 @@
|
||||||
|
|
||||||
tray_pub_count++;
|
tray_pub_count++;
|
||||||
if (tray_pub_count == 1)
|
if (tray_pub_count == 1)
|
||||||
@ -1757,7 +1781,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
word[1], xchat_get_info (ph, "channel"));
|
word[1], xchat_get_info (ph, "channel"));
|
||||||
|
|
||||||
return XCHAT_EAT_NONE;
|
return XCHAT_EAT_NONE;
|
||||||
@@ -705,14 +706,14 @@
|
@@ -705,14 +707,14 @@
|
||||||
|
|
||||||
tray_priv_count++;
|
tray_priv_count++;
|
||||||
if (tray_priv_count == 1)
|
if (tray_priv_count == 1)
|
||||||
@ -1775,7 +1799,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
from, network);
|
from, network);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -758,15 +759,15 @@
|
@@ -758,15 +760,15 @@
|
||||||
|
|
||||||
tray_file_count++;
|
tray_file_count++;
|
||||||
if (tray_file_count == 1)
|
if (tray_file_count == 1)
|
||||||
@ -1794,6 +1818,24 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/
|
|||||||
word[1], network);
|
word[1], network);
|
||||||
|
|
||||||
return XCHAT_EAT_NONE;
|
return XCHAT_EAT_NONE;
|
||||||
|
@@ -802,7 +804,7 @@
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
- if (prefs.gui_tray)
|
||||||
|
+ if (prefs.gui_tray && !xtray_mode ())
|
||||||
|
tray_init ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -834,7 +836,7 @@
|
||||||
|
|
||||||
|
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 -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugingui.c xchat-wdk/src/fe-gtk/plugingui.c
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugingui.c xchat-wdk/src/fe-gtk/plugingui.c
|
||||||
--- xchat-wdk.orig/src/fe-gtk/plugingui.c 2010-05-16 05:20:22 +0200
|
--- xchat-wdk.orig/src/fe-gtk/plugingui.c 2010-05-16 05:20:22 +0200
|
||||||
+++ xchat-wdk/src/fe-gtk/plugingui.c 2010-12-28 14:57:33 +0100
|
+++ xchat-wdk/src/fe-gtk/plugingui.c 2010-12-28 14:57:33 +0100
|
||||||
@ -1854,7 +1896,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/servlistgui.c xchat-wdk/
|
|||||||
gtk_box_set_spacing (GTK_BOX (vbuttonbox2), 3);
|
gtk_box_set_spacing (GTK_BOX (vbuttonbox2), 3);
|
||||||
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/setup.c xchat-wdk/src/fe-gtk/setup.c
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/setup.c xchat-wdk/src/fe-gtk/setup.c
|
||||||
--- xchat-wdk.orig/src/fe-gtk/setup.c 2008-02-08 10:04:45 +0100
|
--- xchat-wdk.orig/src/fe-gtk/setup.c 2008-02-08 10:04:45 +0100
|
||||||
+++ xchat-wdk/src/fe-gtk/setup.c 2011-01-10 06:58:17 +0100
|
+++ xchat-wdk/src/fe-gtk/setup.c 2011-01-14 06:37:24 +0100
|
||||||
@@ -109,19 +109,32 @@
|
@@ -109,19 +109,32 @@
|
||||||
N_("Give each person on IRC a different color"),0,0},
|
N_("Give each person on IRC a different color"),0,0},
|
||||||
{ST_TOGGLR, N_("Indent nick names"), P_OFFINTNL(indent_nicks),
|
{ST_TOGGLR, N_("Indent nick names"), P_OFFINTNL(indent_nicks),
|
||||||
@ -1892,7 +1934,32 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/setup.c xchat-wdk/src/fe
|
|||||||
{ST_END, 0, 0, 0, 0, 0}
|
{ST_END, 0, 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -363,7 +376,6 @@
|
@@ -348,6 +361,24 @@
|
||||||
|
{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 @@
|
||||||
{ST_END, 0, 0, 0, 0, 0}
|
{ST_END, 0, 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1900,7 +1967,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/setup.c xchat-wdk/src/fe
|
|||||||
static const setting advanced_settings[] =
|
static const setting advanced_settings[] =
|
||||||
{
|
{
|
||||||
{ST_HEADER, N_("Advanced Settings"),0,0,0},
|
{ST_HEADER, N_("Advanced Settings"),0,0,0},
|
||||||
@@ -378,7 +390,6 @@
|
@@ -378,7 +408,6 @@
|
||||||
|
|
||||||
{ST_END, 0, 0, 0, 0, 0}
|
{ST_END, 0, 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
@ -1908,7 +1975,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/setup.c xchat-wdk/src/fe
|
|||||||
|
|
||||||
static const setting logging_settings[] =
|
static const setting logging_settings[] =
|
||||||
{
|
{
|
||||||
@@ -1708,7 +1719,7 @@
|
@@ -1708,7 +1737,7 @@
|
||||||
N_("General"),
|
N_("General"),
|
||||||
N_("Logging"),
|
N_("Logging"),
|
||||||
N_("Sound"),
|
N_("Sound"),
|
||||||
@ -1917,7 +1984,20 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/setup.c xchat-wdk/src/fe
|
|||||||
NULL,
|
NULL,
|
||||||
N_("Network"),
|
N_("Network"),
|
||||||
N_("Network setup"),
|
N_("Network setup"),
|
||||||
@@ -1733,6 +1744,7 @@
|
@@ -1729,10 +1758,19 @@
|
||||||
|
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[9], book, setup_create_page (general_settings));
|
||||||
setup_add_page (cata[10], book, setup_create_page (logging_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[11], book, setup_create_sound_page ());
|
||||||
|
Loading…
Reference in New Issue
Block a user