Compare commits

..

11 Commits

Author SHA1 Message Date
Mario Fetka 9d0ee5010b Import release 2.0rc1 2009-07-17 15:44:01 +00:00
Mario Fetka 919dbe2a0f Import release 2.0beta2 2009-05-13 18:20:42 +00:00
Mario Fetka 8c44bbd89b Import release 1.5.2 2009-03-23 23:35:55 +00:00
Mario Fetka a899084e37 Import release 2.0beta1 2009-03-23 23:26:37 +00:00
Mario Fetka 8b3dac7ce6 Import release 2.0alpha2 2008-08-10 11:56:25 +00:00
Mario Fetka 47cc8f14fa Import release 2.0alpha 2008-05-01 22:23:21 +00:00
Mario Fetka ca041a4e14 Import release 1.5.1 2008-04-06 14:46:38 +00:00
Mario Fetka 5165abf494 Import release 1.5 2008-01-09 22:42:53 +00:00
Mario Fetka 80c63a8d5b Import CVS HEAD before SVN migration 2007-03-19 12:00:00 +00:00
Mario Fetka 41192641d3 Import release 1.5pre2 2007-03-18 19:34:31 +00:00
Mario Fetka f76ea1c06e Import CVS snapshot Release-1_5_pre1 2006-10-09 21:11:54 +00:00
817 changed files with 279296 additions and 110980 deletions
-27
View File
@@ -1,27 +0,0 @@
acinclude.m4
aclocal.m4
autom4te*.cache
build-debug
build-default
config.h
config.h.in
config.log
config.status
configure
configure.files
configure.in
conftest
inst-apps
kmess.kdevelop.pcs
kmess.kdevses
libtool
Makefile
Makefile.am
Makefile.in
Makefile.rules.in
MakeVars.in
stamp-h
stamp-h1
stamp-h1.in
stamp-h.in
subdirs
+43
View File
@@ -0,0 +1,43 @@
[Buildset]
Number of Builditems=1
[Buildset][Builditem0]
Itemname=KMess
Itempath=./
Projectname=KMess
[CMake]
BuildDirs=./build
CMakeDir=/usr/share/cmake/Modules
Current CMake binary=cmake
CurrentBuildDir=./build
CurrentInstallDir=
ProjectRootRelative=./
[Chat Window debug-Run Options]
Arguments=--runtest chatwindow
Executable=./build/src/kmess
Working Directory=./build/src/
[Contact List debug-Run Options]
Arguments=--runtest contactlist
Executable=./build/src/kmess
Working Directory=./build/src/
[Debug-Run Options]
Executable=./build/src/kmess
[MakeBuilder]
Abort on First Error=false
Number Of Jobs=3
Run Multiple Jobs=true
[Project]
VersionControlSupport=kdevsubversion
[Run Options]
Run Targets=Chat Window debug,Contact List debug,Debug
[Veritas]
executables=
framework=QTest
+188 -30
View File
@@ -1,44 +1,171 @@
Developers:
-- Developers --
Mike K. Bennett <mkb137@users.sourceforge.net>
Michael Curtis <mdcurtis@users.sourceforge.net>
Jan Toenjes <jan.toenjes@web.de>
Lin Haoxiang <linhaoxiang@hotmail.com>
Jan Toenjes <jan.toenjes@web.de>
Diederik van der Boor <vdboor@codingdomain.com>
Richard Conway <richardconway@users.sourceforge.net>
Valerio Pilo <amroth@coldshock.net>
Antonio Nastasi <sifcenter@gmail.com>
Ruben Vandamme <vandammeru@gmail.com>
Sjors Gielen <dazjorz@dazjorz.com>
Adam Goossens <fontknocker@gmail.com>
Translations:
Arabic - Mohamed Aser <mohasr@link.net>
Brazilian Portuguese - Mauricio Rother <mauricio@digicomm.com.br>
Catalan - Jaume Cornadó <jaumec@lleida.net>
Danish - Lars Sommer <admin@lasg.dk>
Dutch - Arend van Beelen Jr. <arend@auton.nl>
Estonian - Jyri Toomessoo <nuubik@hotmail.com>
German - Jan Tönjes <jan.toenjes@web.de>
French - Choplair <pachilor@yahoo.co.jp>
Vincent Fretin <fretinvincent@hotmail.com>
Italian - David Vignoni <dvgn@libero.it>
Korean - Park Dong Cheon <pdc@kaist.ac.kr>
Norsk Bokmal - Øyvind Sæther <oyvind@sather.tk>
Simplified Chinese - Lin Haoxiang <linhaoxiang@hotmail.com>
Spanish - Johanna Gersch
J.C.A. Javi <yovoya30ks@hotmail.com>
Thai - Rachan Hongpairote <rachanh@yahoo.com>
Turkish - Gorkem Cetin <gorkem@gelecek.com.tr>
Barbaros Ulutas <tebarul@yahoo.com>
-- Translations --
Translations Maintainer:
Panagiotis Papadopoulos <pano_90@gmx.net>
Arabic:
Mohamed Aser <mohasr@link.net>
Youssef Chahibi <chahibi@gmail.com>
Ma'moun Diraneyya <mamoun.diraneyya@gmail.com>
Brazilian Portuguese:
Mauricio Rother <mauricio@digicomm.com.br>
Leonel Freire <leonelfreire@gmail.com>
Sergio Rafael Lemke <bedi.com@gmail.com>
Maurício Arozi Moraes
Catalan:
Jaume Cornadó <jaumec@lleida.net>
Adrià Arrufat <swiftscythe@gmail.com>
Chinese (Simplified):
Lin Haoxiang <linhaoxiang@hotmail.com>
Liu Sizhuang <chinatslsz@hotmail.com>
Cheng Yang <yangzju@gmail.com>
Chinese (Traditional):
Yen-chou Chen <yenchou.mse90@nctu.edu.tw>
Tryneeds-Chinese Translation Platform <http://tryneeds.westart.tw/tryneeds>
Danish:
Lars Sommer <admin@lasg.dk>
Pascal d'Hermilly <pascal@tipisoft.dk>
Dutch:
Arend van Beelen Jr. <arend@auton.nl>
Diederik van der Boor <vdboor@codingdomain.com>
Jaap Woldringh <jjh.woldringh@planet.nl>
Elve <elve@savage-elve.net>
Sander Pientka <cumulus0007@gmail.com>
Heimen Stoffels <djmusic121@gmail.com>
Estonian:
Jyri Toomessoo <nuubik@hotmail.com>
Finnish:
Markus Vuori <markus@vuoret.net>
Joonas Niilola <juippis@roskakori.org>
Jussi Timperi <jussi.timperi@gmail.com>
Antony Hussi <antony.hussi@tranciend.com>
French:
Choplair <pachilor@yahoo.co.jp>
Vincent Fretin <fretinvincent@hotmail.com>
Andrea Blankenstijn <darkan9el@gmail.com>
Barthe Guillaume <gu_barthe@yahoo.fr>
Scias <shining.scias@gmail.com>
German:
Jan Tönjes <jan.toenjes@web.de>
Panagiotis Papadopoulos <pano_90@gmx.net>
Greek:
Panagiotis Papadopoulos <pano_90@gmx.net>
Dimitrios Glentadakis <dglent@gmail.com>
Hungarian:
Páder Rezső <rezso@rezso.net>
Pauli Henrik <henrik.pauli@drangolin.net>
Italian:
David Vignoni <dvgn@libero.it>
Valerio Pilo <amroth@coldshock.net>
Vincenzo Reale <smart2128@baslug.org>
Andrea Decorte <adecorte@gmail.com>
Japanese:
Daniel E. Moctezuma <shinsen27@gmail.com>
Korean:
Park Dong Cheon <pdc@kaist.ac.kr>
Norsk Bokmal:
Øyvind Sæther <oyvind@sather.tk>
Serbian:
Zoran Milovanović <provalisam@gmail.com>
Slovak:
Rastislav Krupanský <ra100@atlas.sk>
Slovenian:
Matjaž Kaše <kase@g-kabel.si>
Spanish:
Johanna Gersch
J.C.A. Javi <yovoya30ks@hotmail.com>
Alejandro Araiza Alvarado <mebrelith@gmail.com>
Jaume Corbí <jaume4@gmail.com>
Christian Kaiser <k39@users.sourceforge.net>
Juan Pablo González Tognarelli <jotapesan@gmail.com>
Alexis Daniel Medina Medina <alexismedina@gmail.com>
Manuel Ramírez <elpreto@kde.org.ar>
Mauricio Muñoz Lucero <real.mml@gmail.com>
Swedish:
Christian Lundgren <zeflunk@gmail.com>
Mattias Newzella <newzella@gmail.com>
Thai:
Rachan Hongpairote <rachanh@yahoo.com>
Turkish:
Gorkem Cetin <gorkem@gelecek.com.tr>
Barbaros Ulutas <tebarul@yahoo.com>
Uğur Çetin <ugur.jnmbk@gmail.com>
-- Thanks to --
Also tranks to:
Jan Tönjes <jan.toenjes@web.de>
- testing, documentation, web master, project management, etc
Dane Harnett <dynamitedane@hotmail.com>
- web design
David Vignoni <dvgn@libero.it>
- the main yellow/blue/violet emoticon sets
Laurence Anderson <l.d.anderson@warwick.ac.uk>
- original file receive code
Scott Morgan <blumf@blumf.freeserve.co.uk>
- Xinerama fixes
@@ -50,12 +177,12 @@ Also tranks to:
Choe Hwanjin <hjchoe@hancom.com>
- Various internationalization fixes.
Vincent Fretin <fretinvincent@hotmail.com>
- MSN6 emoticon definitions
Lin Haoxiang <linhaoxiang@hotmail.com>
- Send file bugfix
- Send file bugfix, proxy code
Tobias Tönjes
- Guy with a bag over his head
@@ -63,12 +190,43 @@ Also tranks to:
Damien Sandras <dsandras@seconix.com>
- GnomeMeeting developer
Liu Sizhuang <chinatslsz@hotmail.com>
- P4-Context field support
Guido Solinas <whereismwhite@gmail.com>
- Pictures in contact list code
- Contact client info
- Chat font zoom
Pedro Ferreira <pedro.ferreira@fe.up.pt>
- File transfer thumbnails
Matteo Nardi <91.matteo@gmail.com>
- KWallet support
Andrea Decorte <adecorte@gmail.com>
- Group selection in 'contact added user' dialog
Dario Freddi <drf_av@users.sourceforge.net>
- Chat history dialog
KMerlin <http://kmerlin.olsd.de/>
- Inspiration and assorted code
Kopete <http://kopete.kde.org/>
- Popup Balloon code, initial p2p code
- Old Popup Balloon code
- Initial p2p code
- MSN Challenge handler
KScreensaver
- Idle timer code
BasKet
- Close-to-tray icon screenshot code
Amarok
- Custom crash handler implementation
- System tray icon overlay implementation
Quassel
- KNotify not giving focus bug fix and KWin focus stealing prevention workaround
+242
View File
@@ -0,0 +1,242 @@
PROJECT( kmess )
#### System checks ####
# To add checks, see in one or more of these paths
# /usr/share/cmake/Modules
# /usr/share/kde4/apps/cmake/modules
# /usr/share/apps/cmake
# Check for cmake, same as minimum for KDE 4.0.0
CMAKE_MINIMUM_REQUIRED( VERSION 2.4.5 )
# Check for KDE 4
FIND_PACKAGE( KDE4 REQUIRED )
# Check for libxml2
FIND_PACKAGE( LibXml2 )
MACRO_LOG_FEATURE( LIBXML2_FOUND "LibXML2" "Libraries used to develop XML-aware applications" "http://www.xmlsoft.org/" TRUE ""
" Required for the chat styles system.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are:
on Ubuntu: 'libxml2' and 'libxml2-dev'
on openSUSE: 'libxml2' and 'libxml2-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Check for libxslt
FIND_PACKAGE( LibXslt )
MACRO_LOG_FEATURE( LIBXSLT_FOUND "LibXSLT" "A library to transform XML into other formats" "http://www.xmlsoft.org/XSLT" TRUE ""
" Required for the chat styles system.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are:
on Ubuntu: 'libxslt' and 'libxslt-dev'
on openSUSE: 'libxslt' and 'libxslt-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Check for qca2
FIND_PACKAGE( QCA2 )
MACRO_LOG_FEATURE( QCA2_FOUND "QCA 2" "A cryptographic library written in Qt to access various encryption methods" "http://delta.affinix.com/qca/" TRUE ""
" Required for the Windows Live Messenger login process.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are:
on Ubuntu: 'libqca2', 'libqca2-dev' and 'libqca2-plugin-ossl'
on openSUSE: 'libqca2' and 'libqca2-devel'
on Fedora: 'qca2' and 'qca2-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# As far as I know, it is impossible to find out if the required QCA plugin for OpenSSL is installed:
# so we need to ask QCA itself it it's got such a plugin. Pretty darned unportable stuff.
IF( QCA2_FOUND )
IF( UNIX )
EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/check-qca2-ossl.sh OUTPUT_VARIABLE HAS_QCA2_OSSL_PLUGIN )
IF( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
SET( QCA2_OSSL_PLUGIN_FOUND TRUE )
ELSE( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
SET( QCA2_OSSL_PLUGIN_FOUND FALSE )
ENDIF( HAS_QCA2_OSSL_PLUGIN EQUAL 1 )
MACRO_LOG_FEATURE( QCA2_OSSL_PLUGIN_FOUND "QCA 2 - OpenSSL Plugin" "OpenSSL interaction library for QCA2" "http://delta.affinix.com/qca/" TRUE ""
" Required for the Windows Live Messenger login process.
* This package should have been installed along QCA2: if you have QCA2 installed
but still see this message, your distribution probably packages it separately.
Ubuntu does this, the package name is 'libqca2-plugin-ossl'.
* Please refer to the KMess forum for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
ELSE( UNIX )
# TODO: Find another *portable* way to detect the OSSL plugin.
MESSAGE( STATUS "NOTE: The qca2 OpenSSL can't be detected on this platform yet. Make sure you have it installed." )
ENDIF( UNIX )
ENDIF( QCA2_FOUND )
# Check for XScreenSaver extension
OPTION( WANT_XSCREENSAVER "Build with X11 screensaver auto-away support" ON )
IF( WANT_XSCREENSAVER )
MACRO_BOOL_TO_01( X11_Xscreensaver_FOUND HAVE_XSCREENSAVER )
MACRO_OPTIONAL_FIND_PACKAGE(X11)
IF( X11_FOUND )
MACRO_LOG_FEATURE( X11_Xscreensaver_FOUND "XScreenSaver" "X11 extension used to check idle state" "" FALSE ""
" Required for the auto-away feature.
* Usually the package names for this library are:
on Ubuntu: 'libxss-dev'
on openSUSE: 'xorg-x11-libs'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
ELSE( X11_FOUND )
MESSAGE( STATUS "NOTE: The auto-away feature is not supported on this platform yet." )
ENDIF( X11_FOUND )
ENDIF( WANT_XSCREENSAVER )
# Check for libkonq
# QUIET is to fix compiling on systems like Debian Lenny, which don't have FindLibKonq.cmake
# (for an optional feature, we don't want that to be fatal)
MACRO_OPTIONAL_FIND_PACKAGE( LibKonq QUIET )
MACRO_LOG_FEATURE( LIBKONQ_FOUND "LibKonq" "Integration with Konqueror context menu" "http://www.kde.org/" FALSE ""
" Optional context menu integration with Konqueror.
* You will need this package and the matching development package: for example, 'kmess' and 'kmess-dev' or 'kmess-devel'.
* Usually the package names for this library are:
on Ubuntu: 'libkonq5' and 'libkonq5-dev'
on openSUSE: 'libkonq5' and 'libkonq-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Check for libgif
INCLUDE( "cmake/giflib_hack.cmake" )
MACRO_OPTIONAL_FIND_PACKAGE( GIF )
MACRO_BOOL_TO_01( GIF_FOUND HAVE_LIBGIF )
MACRO_LOG_FEATURE( GIF_FOUND "GIF" "Handwriting messages support" "http://sourceforge.net/projects/giflib/" FALSE ""
" Optional support to send handwriting messages compatible with Windows Live Messenger.
* You will need to install both the library and development packages of the GIF Library, giflib.
* Usually the package names for this library are:
on Ubuntu: 'libgif4' and 'libgif-dev'
on openSUSE: 'giflib' and 'giflib-devel'
* Please refer to the KMess board for more info, and specially to this guide: http://www.kmess.org/board/viewtopic.php?t=3100" )
# Display the dependency collection results
MACRO_DISPLAY_FEATURE_LOG()
#### Configure build ####
INCLUDE( MacroLibrary )
INCLUDE( KDE4Defaults )
ADD_DEFINITIONS( ${QT_DEFINITIONS} ${KDE4_DEFINITIONS} )
INCLUDE_DIRECTORIES( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${LIBXML2_INCLUDE_DIR} )
#### Define the app version number ####
# Switch between the following two commands to force using a predefined version number
# EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/get-svn-version.sh OUTPUT_VARIABLE KMESS_VERSION )
SET( KMESS_VERSION "2.0rc1" )
#### Define compiler flags ####
# Tune the debug build with even more flags
# also see FindKDE4Internal.cmake for more defaults
IF( CMAKE_COMPILER_IS_GNUCXX )
# skipped: -ansi -pendantic -Wfatal-errors -Wold-style-cast -Wconversion
SET( CMAKE_CXX_FLAGS_DEBUG "-O0 -g -Wall" )
SET( CMAKE_CXX_FLAGS_DEBUGFULL "-O0 -g3 -fno-inline -Wall -Woverloaded-virtual -Wsign-compare -Wundef" )
# the -fvisibility option makes symbols also visible to the KDE backtrace dumper, but
# the MinGW gcc doesn't seem to understand it well, so only add it if we're not on win32
IF( NOT WIN32 )
SET( CMAKE_CXX_FLAGS_DEBUGFULL "${CMAKE_CXX_FLAGS_DEBUGFULL} -fvisibility=default" )
ENDIF( NOT WIN32 )
ENDIF( CMAKE_COMPILER_IS_GNUCXX )
# Define the default build type
# Possible values:
# - none
# - release
# - debug
# - debugfull (even fewer optimisations)
# - relwithdebinfo (release with debug info)
# - minsizerel (minsize release)
# Uncomment the next line to always force building in full debug mode
SET( CMAKE_BUILD_TYPE debugfull )
# Enable the KMess debug output when compiling a debug build
IF( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
SET( KMESS_ENABLE_DEBUG_OUTPUT "1" )
ELSE( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
SET( KMESS_ENABLE_DEBUG_OUTPUT "0" )
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull OR KMESS_DEBUG_OUTPUT EQUAL 1 )
# Change symbol visibility, to obtain clearer KDE backtraces
SET( __KDE_HAVE_GCC_VISIBILITY 0 )
# Disable LikeBack if not needed
IF( KMESS_DISABLE_LIKEBACK EQUAL 1 )
SET( KMESS_DISABLE_LIKEBACK "1" )
ELSE( KMESS_DISABLE_LIKEBACK EQUAL 1 )
SET( KMESS_DISABLE_LIKEBACK "0" )
ENDIF( KMESS_DISABLE_LIKEBACK EQUAL 1 )
# Set a default installation path
IF( NOT CMAKE_INSTALL_PREFIX )
SET( CMAKE_INSTALL_PREFIX "/usr" )
ENDIF( NOT CMAKE_INSTALL_PREFIX )
IF( CMAKE_USE_CPACK EQUAL 1 )
MESSAGE( STATUS "Enabling the CPack package target..." )
# source: http://www.vtk.org/Wiki/CMake:Packaging_With_CPack
INCLUDE( InstallRequiredSystemLibraries )
# the installer will be named ${PACKAGENAME}-{VERSIONMAJOR}.{VERSIONMINOR}.{VERSIONPATCH}-win32.exe.
# the installer will say "Welcome to the ${INSTALL_DIRECTORY} Setup Wizard and install to ${INSTALL_DIRECTORY} too, and
# put the program in start menu under the ${INSTALL_DIRECTORY} name.
# it will ask if ${PACKAGENAME} should be put in PATH.
SET( CPACK_PACKAGE_NAME "KMess" )
SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "KMess (package description)" )
SET( CPACK_PACKAGE_VENDOR "The KMess team" )
SET( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README" )
SET( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING" )
SET( CPACK_PACKAGE_VERSION_MAJOR "1" )
SET( CPACK_PACKAGE_VERSION_MINOR "0" )
SET( CPACK_PACKAGE_VERSION_PATCH "0" )
SET( CPACK_PACKAGE_INSTALL_DIRECTORY "KMess" )
IF( WIN32 AND NOT UNIX )
# There is a bug in NSI that does not handle full unix paths properly. Make
# sure there is at least one set of four (4) backslashes.
SET( CPACK_GENERATOR "NSIS" )
SET( CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/data/icons\\\\hi32-app-kmess.png" )
SET( CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\kmess.exe" )
SET( CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} KMess (display name)" )
SET( CPACK_NSIS_HELP_LINK "http:\\\\\\\\kmess.org" )
SET( CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\kmess.org" )
SET( CPACK_NSIS_CONTACT "project@kmess.org" )
SET( CPACK_NSIS_MODIFY_PATH ON )
ELSE( WIN32 AND NOT UNIX )
SET( CPACK_STRIP_FILES "bin/kmess" )
SET( CPACK_SOURCE_STRIP_FILES "" )
ENDIF( WIN32 AND NOT UNIX )
SET( CPACK_PACKAGE_EXECUTABLES "kmess" "KMess" )
INCLUDE( CPack )
ENDIF( CMAKE_USE_CPACK EQUAL 1 )
#### Other settings ####
# Generate config-kmess.h
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/config-kmess.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-kmess.h )
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
# continue in directories
ADD_SUBDIRECTORY( po )
ADD_SUBDIRECTORY( data )
ADD_SUBDIRECTORY( doc )
ADD_SUBDIRECTORY( src )
IF( LIBKONQ_FOUND )
ADD_SUBDIRECTORY( src/utils/kmess-send )
ENDIF( LIBKONQ_FOUND )
# Also add the tests if compiling in development mode
IF( CMAKE_BUILD_TYPE STREQUAL debugfull AND KMESS_DEBUG_OUTPUT EQUAL 1 )
ADD_SUBDIRECTORY( tests )
ENDIF( CMAKE_BUILD_TYPE STREQUAL debugfull AND KMESS_DEBUG_OUTPUT EQUAL 1 )
+4640 -2
View File
File diff suppressed because it is too large Load Diff
+260
View File
@@ -0,0 +1,260 @@
# Doxyfile 1.5.5-KDevelop
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = KMess
PROJECT_NUMBER = 2.0-rc1
OUTPUT_DIRECTORY = ./apidocs
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 2
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = YES
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = NO
SHOW_DIRECTORIES = NO
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ./src
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.cpp \
*.h \
*.dox
RECURSIVE = YES
EXCLUDE = *.moc \
*.moc.cpp \
*.moc.h
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */build*/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 4
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER = doc/apidocs_header.html
HTML_FOOTER = doc/apidocs_footer.html
HTML_STYLESHEET = doc/doxygen.css
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
HTML_DYNAMIC_SECTIONS = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = YES
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NONE
TREEVIEW_WIDTH = 250
FORMULA_FONTSIZE = 10
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = KMESSTEST \
KMESS_NETWORK_WINDOW
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE = kmess.tag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
DOT_FONTNAME = FreeSans
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = NO
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
+52
View File
@@ -1,5 +1,57 @@
KMess Feature list
========================
- 2.0 -
Support to receive and send Ink (hand-written) messages.
Support to send huge messages.
Options to copy a contact's email, name, message, listened music and links present in the name/message
List of contact events, such as logins and logouts.
Chat Windows can be used again when reconnecting.
Quick retype of previous sent messages, using Ctrl+Up/Ctrl+Down.
MSN connections over HTTP, to deal with corporate firewalls which only allow connections to browse the web.
Support to chat with offline and invisible contacts.
Support to search in the contact list.
Support to send bigger chat messages.
Option to choose the browser used to open web sites, Live Mail, and MSN support sites.
Option to manually send commands to the server in developer builds.
Support to group all chats in the same chat window (tabbed chatting).
Option to select a directory where all received files will be put.
Option to choose the interval of ports used for fast file transfers.
Option to keep short notes for each contact.
Support to MSN Plus text formatting.
Support for DBus remote application control.
Option to choose a previously chosen display picture.
Support for dark KDE color schemes.
More options to improve customization of the Contact List.
Support for KDE's KWallet, to store in a secure way the accounts passwords.
Automatic detection of network connection and disconnection.
Option to block notifications when the status is set to Busy.
Option to disable displaying of received winks.
Automatic reconnection to MSN after unwanted disconnections.
- 1.5.1 -
Contact's MSN client detection.
Option to view contacts' Display Pictures in the contact list.
Option to enable spell checking in the chat windows.
Disable notification popups when there's a screen saver or a full screen application.
Added option to manually set your own MSN status to Idle.
When closing KMess to tray for the first time, a little screenshot of the notification area will help finding KMess' tray icon.
- 1.5 -
Support to exchange (send and receive) custom emoticons and nudges.
Receive-only support for winks and offline-im messages.
Fast file transfers, supporting MSN6+ direct connections.
MSN7 personal status messages are supported.
The appearance of chat message and emoticons can be changed on the fly.
Users with a temporary "guest" account can upgrade to a regular "stored" account.
Messages from the same contact can be grouped.
New default chat style, 'Fresh', making chats more colorful and friendly.
Now listening information can be exchanged.
New KDE style balloon notification popups.
Right-click options for links in the chat window.
Improved and more compact visual style for the chat windows.
Automatically download the display pictures of your contacts.
Option to select an image to use as display picture and to then crop unneeded parts away.
- 1.4 -
MSN6 display picture transfers are supported
MSN6 file transfer is supported (receiving only)
+41 -189
View File
@@ -1,209 +1,61 @@
Installation Tip:
=================
Installation Hints:
===================
In order for KMess to work properly, it must be configured first.
Run the configure script like this:
NOTE: This package is used to build KMess from source code.
If you're looking for a simple way to install KMess,
take a look at http://www.kmess.org/download/.
NOTE: These instructions are meant for UNIX-like systems. If they don't
work for you, please tell us at http://www.kmess.org/board/.
For building on Windows, see this Wiki page:
http://trac.kmess.org/wiki/Compiling%20KMess%20for%20Windows
To install KMess from this source package you need to create a separate
build directory first. It must be created outside the source folder. After
that, you must configure your build using cmake.
To ease the building process, KMess comes with a 'configure' script that
creates the directory and runs CMake for you. To build this package, simply
run:
cd kmess
./configure
If the ./configure script completed with success, then type
make
and then, as root, type
To install on most systems, you can run:
make install
sudo make install
That's it.
If your system doesn't come with sudo, you can use:
su -c 'make install'
That's it!
Of course, building without the configure script is also possible:
Important:
==========
mkdir build
cd build
cmake ..
make
sudo make install
The configure script tries to detect your KDE3 directory automatically.
If configure fails to detect KDE, you should tell KMess which directory
to use. Basically, we're talking about the parent directory
of /share/apps/k~bunch of kapps~
Not doing this will result in emoticons being displayed
as text, and icons being displayed incorrectly as well.
If configure tells you you're missing something that you think you
have installed on your system, you probably need to install the
"devel" version of that thing. i.e. If it tells you you're missing
libfam, install the libfam-devel rpm.
More information can be found in the README file.
The following paragraphs below provide generic installation instructions:
Basic Installation
Useful parameters:
==================
These are generic installation instructions.
The configure script automatically makes the right build for you. For a release (non-alpha or beta)
package, the configure script builds KMess in release mode; for an alpha or beta package, KMess will
run in debug mode. When something goes wrong, debug mode will help us find the cause, and fix it. :-)
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you want to modify your build, you can try the following options to the configure script:
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
--prefix=/usr
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
Install in the /usr directory instead.
The simplest way to compile this package is:
--build-type=(one of debug,debugfull,release,relwithdebuginfo,minsizerel)
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes a while. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Type `make install' to install the programs and any data files and
documentation.
4. You can remove the program binaries and object files from the
source code directory by typing `make clean'.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made.
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.
Tell CMake to build this specific build type.
Also consider running "ccmake" for an curses-interface to cmake.
ccmake only works after the build directory has been configured with cmake before.
-24
View File
@@ -1,24 +0,0 @@
####### kdevelop will overwrite this part!!! (begin)##########
SUBDIRS = kmess po doc
EXTRA_DIST = kmess.kdevelop admin AUTHORS COPYING ChangeLog INSTALL README TODO kmess.lsm FEATURES
$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
$(top_srcdir)/subdirs:
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
@cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files
package-messages:
$(MAKE) -f admin/Makefile.common package-messages
$(MAKE) -C po merge
dist-hook:
cd $(top_distdir) && perl admin/am_edit -padmin
cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
-14
View File
@@ -1,14 +0,0 @@
all:
@echo "This Makefile is only for the CVS repository"
@echo "This will be deleted before making the distribution"
@echo ""
@if test ! -d admin; then \
echo "Please recheckout this module!" ;\
echo "for cvs: use checkout once and after that update again" ;\
echo "for cvsup: checkout kde-common from cvsup and" ;\
echo " link kde-common/admin to ./admin" ;\
exit 1 ;\
fi
$(MAKE) -f admin/Makefile.common cvs
.SILENT:
+549
View File
@@ -1,4 +1,553 @@
Changes between KMess 2.0-rc1 and 2.0-beta2:
--------------------------------------
- added Japanese translation by Daniel E. Moctezuma.
- added display of emoticons in presence messages.
- added status restoring on reconnection.
- added fading effect for long text labels and the contact list.
- changed the image used for unknown display pictures.
- changed the application windows icons.
- changed the system tray icon with one showing both the bird and the current status.
- fixed a crash triggered by clients aborting while we're sending data.
- fixed appearance when using right-to-Left languages, like Arabic.
- fixed bug preventing temporary accounts to be correctly cleaned up.
- fixed file selection errors in chat logging.
- fixed newly added contacts appearing as not having added the user in their list.
- improved appearance of the contact list when antialiasing is enabled.
- removed all experimental features which could not be finished in time.
- updated Arabic translation by Ma'moun Diraneyya.
- updated Brazilian Portuguese translation by Maurício Arozi Moraes and Sergio Rafael Lemke.
- updated Catalan translation by Adrià Arrufat.
- updated Finnish translation by Antony Hussi.
- updated Dutch translation by Sander Pientka and Sjors Gielen.
- updated French translation by Scias.
- updated German translation by Panagiotis Papadopoulos.
- updated Greek translation by Dimitrios Glentadakis.
- updated Hungarian translation by Pauli Henrik.
- updated Italian translation by Valerio Pilo.
- updated Slovak translation by Rastislav Krupanský.
- updated Spanish translation by Mauricio Muñoz Lucero.
- updated Traditional Chinese translation by Yen-chou Chen.
Changes between KMess 2.0-beta2 and 2.0-beta1:
--------------------------------------
- completed drag&drop support.
- fixed quick retype.
- fixed winks playing and naming support.
- fixed disconnections after many hours of use.
- fixed losing KDE Wallet passwords.
- fixed typing notifications not appearing in WLM 2009.
- fixed long words breaking was breaking copy-pastes.
- fixed weird characters which were breaking the chat styles.
- fixed resending messages already sent as offline messages.
- fixed searching for offline contacts.
- fixed time of arrival of offline messages.
- fixed new chat windows or tabs opened by contacts sometimes stole focus.
- fixed contact list group sorting.
- fixed many memory leaks.
- fixed overflowing contact list background picture and color.
- improved the Chat History dialog and its integration with KMess.
- improved drag and drop support in contact list.
- improved the color of the less important contact status messages in chat.
- improved client detection support.
- improved handwriting message sending.
- improved the file transfers window's behavior.
- improved chat session management.
- improved the LikeBack buttons bar.
- updated English handbook.
- updated Arabic translation by Ma'moun Diraneyya.
- updated Brazilian Portuguese translation by Sergio Rafael Lemke.
- updated Brazilian Portuguese translation by Maurício Arozi Moraes.
- updated Catalan translation by Adrià Arrufat.
- updated Dutch translation by Heimen Stoffels.
- updated Dutch translation by Sander Pientka.
- updated Finnish translation by Antony Hussi.
- updated French translation by Barthe Guillaume.
- updated French translation by Scias.
- updated German translation by Panagiotis Papadopoulos.
- updated Greek translation by Dimitrios Glentadakis.
- updated Italian translation by Andrea Decorte.
- updated Spanish translation by Manuel Ramírez.
- updated Spanish translation by Mauricio Muñoz Lucero.
- updated Traditional Chinese translation by Yen-chou Chen.
- updated Traditional Chinese translation by the Tryneeds-Chinese Translation Platform.
Changes between KMess 2.0-beta1 and 2.0-alpha2:
--------------------------------------
- added support to start chats while you're invisible.
- added automatic reconnection after unwanted disconnections.
- added IRC like command handling in the chat window (/away, etc..)
- added 'Send with KMess' menu item to Konqueror context menu's.
- added verbose status message when KMess fallbacks to the HTTP connection.
- added contact emoticon blacklist, to block annoying custom emoticons from contacts.
- added Likeback support to collect user feedback, ported from Basket of KDE 3.
- added support to configure the toolbars and menus in the chat window.
- added contact list export dialog.
- added context menu to the contact list, to open the contact menu with the left mouse too.
- added confirmation dialogs when the menu gets hidden with Ctrl+M.
- added confirmation dialogs when deleting custom emoticons.
- added confirmation dialogs when deleting old display pictures.
- added filtering options to the file transfer window, to show downloads/uploads only.
- added Greek translation by Panagiotis Papadopoulos.
- added Serbian translation by Zoran Milovanović.
- added Slovak translation by Rastislav Krupanský.
- improved protocol support, upgraded the server core protocol to MSNP15.
- improved user interface of the main login dialog, added links.
- improved overall user interface with further fine tuning.
- improved KDE session restoring; KMess will reconnect if you were connected at logout.
- improved chat notifications to be compatible with the new Plasma notifications of KDE 4.2.
- improved emoticon panels; users can choose between message editors or permanent sidebar panels.
- improved painting controls for the Ink handwriting.
- improved chat logging support (support XML, TXT output) in preparation of a chat logging browser.
- improved chat autoscroll feature.
- improved chat window status bar.
- improved several English messages in the user interface.
- improved reporting of error messages, using notifications for warnings.
- improved cmake detection of libqca2-plugin-ossl package for Ubuntu.
- changed contact sidebar, clicking the contact always shows the context menu.
- fixed multiple bugs with automatic reconnecting.
- fixed blocked login view when there is no network connection.
- fixed saving passwords when the 'save password' account option is off.
- fixed saving passwords when KWallet is not supported, or the user refused to use it.
- fixed contact list group expanding/collapsing with incremental search.
- fixed contact list sorting and grouping.
- fixed context menu to chat with a blocked/offline/allowed contact.
- fixed double error box when adding a non-existing contact to the list.
- fixed chat window focus issues.
- fixed chat tabs for contacts with HTML characters in their name.
- fixed chat tabs for contacts with long names.
- fixed chat tabs being displayed when tabbed chatting is disabled.
- fixed chat messages displayed in the wrong tab.
- fixed chat message wordwrapping for long unbreakable words.
- fixed chat spell checker setting, the setting was not remembered correctly.
- fixed typing messages for tabbed chats.
- fixed adding custom emoticons from the chat window sidebar.
- fixed and improved shortcut keys to switch between chat tabs, start a chat, etc...
- fixed layouting issue in the Classic Compact chat style.
- fixed displaying a 'contact left chat' message twice if there was no conversation in between.
- fixed unclickable display picture in the chat if the contact is offline.
- fixed invalid dates being displayed for contact properties.
- fixed updating the chat windows after an emoticon theme is changed.
- fixed updating the chat style preview when "Group follow up messages" is toggled.
- fixed start folder of the file browser for account pictures.
- fixed displaying the filename for files transferred with the old MSNFTP protocol.
- fixed cancel link not being removed when a file transfer invitation hit the timeout
- fixed notification default settings.
- fixed missing nudge event in the notification settings.
- fixed missing detection of "Windows Media Center" in the list of known MSN clients.
- fixed now listening icon, using a common icon now.
- fixed now listening support, added support for all MPris-compatible players.
- fixed inconsistent order of the artist and track title in now Listening information.
- fixed position of the red circle in the system tray screenshot.
- fixed protocol support of group chats.
- fixed protocol support of the MSN-HTTP fallback.
- fixed protocol support of MSNP2P by Windows Live Messenger 2009, should fix picture/emoticon transfers.
- fixed protocol support of MSN Plus! markup, displaying contact names incorrectly at various places.
- fixed protocol support for resetting your Personal Message, was not recognized by Windows Live Messenger 2009.
- fixed displaying of Offline-IM messages, wrong sender was displayed when receiving many messages.
- fixed error handling for SOAP protocol errors.
- fixed "view profile" pages with updated MSN website.
- fixed crashes in the contact list model code.
- fixed a crash when receiving MSN Plus! predefined messages.
- fixed a crash with receiving files with the old MSNFTP protocol.
- fixed an assertion crashing KMess caused by read-only configuration files with a KDE 4 debug build.
- fixed compiling issues with KDE 4.0, 'KDE on Windows' and MinGW32.
- fixed compiler warnings.
- fixed adblock icons showing up by the embedded KHTMLPart component in the chat window.
- fixed network code to use QNetworkAccessManager, this should give us proper Proxy support.
- fixed browser invocation code, using KToolInvocation to have instant invocation.
- fixed issues with network detection if Solid/NetworkManager is not available.
- fixed removed translator name entries in the .po files; some languages appear to have translated names.
- removed custom notification settings in favour of KNotify settings in the global settings panel.
- updated English handbook by Heimen Stoffels.
- updated Brazilian Portuguese translation by Leonel Freire.
- updated Brazilian Portuguese translation by Sergio Rafael Lemke.
- updated Dutch translation by Elve and Sander Pientka.
- updated French translation by Barthe Guillaume.
- updated German translation by Panagiotis Papadopoulos.
- updated Greek translation by Panagiotis Papadopoulos, Dimitrios Glentadakis.
- updated Hungarian translation by Pauli Henrik.
- updated Italian translation.
- updated Norsk Bokmal translation by Øyvind Sæther.
- updated Simplified Chinese translation by Cheng Yang.
- updated Spanish translation by Alexis Daniel Medina Medina, Juan Pablo González Tognarelli.
- updated Swedish translation by Mattias Newzella.
- updated Traditional Chinese translation by Yen-chou Chen, the Tryneeds-Chinese Translation Platform.
Changes between KMess 2.0-alpha2 and 2.0-alpha:
--------------------------------------
- added connecting over HTTP, to deal with corporate firewalls which only allow connections to browse the web.
- added tabbed chatting support!
- added offline messaging functionality.
- added the support to send ink messages.
- added the support to send huge messages.
- added full MSN Plus text-formatting support in chat and in the contact list.
- added application-wide settings dialog, which includes an account manager.
- added option to choose the interval of ports used for fast file transfers.
- added option to change the groups of a contact from the contact's properties dialog.
- added option to choose a previously set display picture for the account.
- added option to choose the dimensions of the pictures in the contact list.
- added option to specify where received files will be downloaded to.
- added option to display all offline contacts in a single group ("mixed" group mode).
- added option to hide currently empty groups.
- added option to block notifications when the status is set to Busy.
- added option to disable displaying of received winks.
- added option to choose a default directory where to put all received files.
- added option to choose the browser and e-mail client used to open Web links.
- added copy menu entry for the music a contact is listening.
- added a dark chat style suitable for use with dark KDE color themes.
- added ability to keep short notes for each contact.
- added a search box in the contact list.
- added an history box in the contact list, which displays recent contact events.
- added a close button on the notification popups (for people who don't know about right-click to close).
- added a DBus remote control interface, to enable interaction with KMess from other applications.
- added KWallet support to store in a secure way the passwords of the saved accounts.
- added detection of network connection availability, using Solid.
- added tracking of the 'last seen' and 'last chat message' dates for a contact.
- improved reporting of error messages.
- improved the user interface of many dialogs.
- improved the Now Playing support with Amarok 2 support. Amarok 1.4 is still supported.
- improved the file transfer messages within the chat.
- improved the auto-message feature, displays the automessage more often.
- fixed displaying old contact names and no personal messages after login.
- fixed loading emoticon themes containing non-PNG picture files.
- fixed compatibility and styling issues with dark KDE color schemes.
Changes between KMess 2.0-alpha and 1.5.1:
--------------------------------------
- ported to KDE 4.
- added support to receive ink messages.
- added ability to re-use previously opened chat windows after reconnecting.
- added a log for contact logins and logouts at the bottom of the contact list
- added copy options for name, email, personal message, and links to right-click menu of contacts.
- added fast-retype of previous sentences using Ctrl+Up.
- added group selection box to the "add contact" dialog.
- improved overall user interface.
- improved client name detection of contacts.
- improved contact properties dialog
- fixed font color chooser in the chat window, settings could be lost.
- fixed contact re-invites (chat resumes) to the chat when the first attempt failed.
Changes between KMess 1.5.2 and 1.5.1:
--------------------------------------
- added a warning message if a file transfer is started when a non-P2P capable client.
- fixed displaying passwords in the debug window, make it easier to share debug logs.
- fixed displaying old contact names after login.
- fixed enabled auto-away settings if the XScreenSaver extension was not found.
- fixed a bug which caused a disconnection when setting an extremely long nickname.
- fixed a bug which discarded saved settings for an account when quitting and when just disconnecting.
- fixed a bug which prevented non-PNG emoticon themes from loading.
- fixed a crash in debug builds for unknown contacts.
- fixed a possible crash in the passive popups.
- fixed a potential crash in background picture transfers (unlikely to occur).
- fixed a potential passport login problem, not seen yet unfortunately.
- fixed compiler warning on newer GCC.
- updated Brazilian Portuguese translation, made by Darlan Campos.
- updated Simplified Chinese translation by Liu Sizhuang.
Changes between KMess 1.5.1 and 1.5:
--------------------------------------
- added checking if a screensaver or fullscreen app is running, and disable notification popups.
- added option to show contact display pictures in the contact list.
- added spell checker to the chat window, its option is in the Settings menu.
- added a contact list popup text showing which MSN client your contacts use.
- added a little screenshot of the tray icon area when closing KMess to tray for the first time, to help finding where it is.
- added ability to manually select the Idle MSN status.
- added a warning message for broken SOCKS implementations which could cause KMess to freeze.
- fixed selecting a picture in the Autopackage version, and KDE 3.2 / KDE 3.3 installations.
- fixed a possible freeze, could only happen in developer builds (--enable-debug-output).
- fixed focus of typing area when reactivating the chat window.
- fixed the chat window title, which could continue blinking after its window had been given focus.
- updated Danish translation by Pascal d'Hermilly
- updated Traditional Chinese translation by Yen-chou Chen.
Changes between KMess 1.5 and 1.5pre2:
--------------------------------------
- added support to send custom emoticons.
- added support for P4-Context field, used for by plugins of the official client for contact aliases (i.e. Xiaoi's Qun). Patch by LiuSizhuang.
- added initial status chooser at login, and in the account settings.
- added drag&drop for files in the chat window to send files.
- added internationalization support to the service status URL.
- added automatic download of new display pictures in the background.
- added option to crop a picture before using it as display picture.
- added zoom buttons to scale the chat window text.
- added context menu to open and copy links in chat window.
- added "remove and block" option in the contact remove dialog.
- added dialog to confirm overwrite when saving a chat to file.
- added dialog to confirm overwrite when renaming custom emoticons.
- added auto clean up of the configuration files for outdated info.
- added keepalive support to see when a contact really closed the chat window, or the chat went idle.
- added a tooltip to the system tray, showing current name and status.
- added warning message when chatlogs can't be saved (e.g. wrong permissions).
- added status message upon server shutdown for maintenance notification.
- added notification balloons for contact typing and contact status changes.
- added a workaround for NAT timeouts when behind a "black hole" router.
- changed default chat style to "Fresh", old style is renamed to "Classic".
- improved notification balloons, completely new implementation using more standard KDE functionality.
- improved notifications with correct balloons when transferring files and receiving winks and nudges.
- improved taskbar notification of new messages, added asterisk in front.
- improved "Remember this profile" checkbox, it's consistent with the selected account.
- improved error messages for adding invalid MSN accounts.
- improved memory usage by reducing dependencies on QWidget.
- improved memory usage when a chat is started to download a display picture in the background.
- improved tests for invalid e-mail addresses when adding a new contacts.
- improved account settings dialog behavior when adding invalid email addresses.
- improved chat window appearance, with a new right-click menu for the listed contacts, and a resizable message box.
- improved file transfer speed over high speed links.
- improved saving of settings; save directly, not only when KMess quits.
- improved login handling to Passport 3.0 webservices.
- improved the user manual, reorganized completely.
- improved developer API documentation, especially the networking classes.
- improved transfer window's reliability.
- prepared preliminary support for tabbed chats.
- fixed multiple problems with broken file/picture transfers, especially over slow links or slow systems.
- fixed replacing of custom emoticon placeholders which contain <, > or & characters, or quotes.
- fixed support for default messages from MSN Plus!.
- fixed keyboard shortcut to insert new lines in the chat messages.
- fixed keyboard shortcut to copy text in the chat window.
- fixed background rendering in the contact list.
- fixed now playing icon, previous one was SUSE-specific.
- fixed Hotmail folders opening in wrong browser.
- fixed login selectbox, display last selected account at logout.
- fixed opening the main window when KMess is started with KDE.
- fixed missing emoticon example pictures next to the emoticons checkbox.
- fixed settings dialog height, was too big for 800x600 displays.
- fixed settings of notification balloons, balloons can be disabled again.
- fixed emoticon theme settings previews, some themes lacked a preview image.
- fixed links to account registration and verification in the settings dialog.
- fixed maximum length of displayed messages in the message balloons.
- fixed notification balloons text with special messages, like nudges or file transfers.
- fixed resuming chats when there was no connection to switchboard (gray display pictures in the chat).
- fixed raising existing chats when trying to open one from the contact list.
- fixed duplicate chat windows when clicking repeatedly on a contact in the list.
- fixed reuse of chat windows to use expected behavour.
- fixed subtle GUI flashing in the chat window for the contact picture.
- fixed changing an accounts email, it did not get reflected in the initial login UI and the menu's.
- fixed personal message being sent when the main window lost focus, not only when we confirm its change.
- fixed non working 'open inbox/send mail' links for non-Hotmail accounts, which now open the mail account specified in the settings.
- fixed broken contact images which don't get updated; added data hash check.
- fixed connection timeout error with downloading offline-im messages.
- fixed connection timeout issues during login for slow connections.
- fixed incorrect "transfer failed" message when sending files to Mercury Messenger.
- fixed internal protocol message to withdraw a started file transfer (not visible with WLM).
- fixed internal protocol encoding with commands which update groups in the contact list.
- fixed internal protocol handling to allow MSNSLP ACK messages.
- fixed invalid image when contacts don't have a display picture or it's not valid anymore.
- fixed unwanted destroying of the direct connection if a switchboard connection restarts.
- fixed handling of direct connection write errors, revering to the switchboard.
- fixed unwanted "session is cancelled" messages after completing a file transfer.
- fixed issues with aborting invitations when a chat window closes.
- fixed blocking KMess user interface with account settings dialog.
- fixed blocking user interface when the network is down or slow during the login.
- fixed 'eventsrc' file not being found by KMess.
- fixed 'eventsrc' warning, path should be 'kmess/eventsrc'.
- fixed compiling in Mac OS X (fink environment with KDE3/X11).
- fixed a series of potential crashes with closing the chat window.
- fixed a crash when closing the application.
- fixed a crash when downloading offline-im messages.
- fixed a crash when the contact was removed with it's chat window open.
- fixed a crash when the contact cancels a file transfer and the user is still choosing a destination folder.
- fixed a crash when the direct connection could not be initialized correctly.
- fixed a crash when a contact changes status but its chatwindow is not yet loaded.
- fixed a freeze when receiving custom emoticons from Kopete.
- fixed a freeze when starting/resuming multiple chats at the same time.
- fixed a freeze when there are too many unacked P2P messages in a chat.
- fixed a freeze when starting a file transfer with direct connections.
- fixed a possible freeze when inserting emoticons into the messages.
- fixed memory leaks in the chat window using Valgrind.
- fixed many compiler warnings.
- fixed word puzzles in translations with notification balloons.
- fixed translations for the Transfer Window messages.
- removed custom proxy support in favor of the global KDE settings.
- reduced the time KMess waits before detecting a connection error.
- updated Arabic translation by Youssef Chahibi.
- updated Danish translation by Pascal d'Hermilly.
- updated Dutch translation by Jaap Woldringh.
- updated Finnish translation by Jussi Timperi.
- updated French translation by Andrea Blankenstijn and Choplair.
- updated German translation.
- updated Hungarian translation by Páder Rezsõ.
- updated Italian translation by Vincento Reale.
- updated Spanish translation by Christian Kaiser.
- updated Swedish translation by Christian Lundgren.
- updated Thai translation by Rachan Hongpairote.
- updated Turkish translation by Uğur Çetin.
- updated Simplified Chinese translation by Liu Sizhuang.
- updated Traditional Chinese translation by Yen-chou Chen.
Changes between KMess 1.5pre2 and 1.5pre1:
--------------------------------------
- added "now playing" support, both sending and receiving.
- added file transfer preview support, both sending and receiving.
- added x-clientcaps message for third party client exchange.
- added option to disable the nudge shaking effect, completing the nudge support.
- added proper error message for webcam invitations, which are currently not supported yet.
- added support for an second incoming file transfer invitation to become client instead of server.
- added translation support for chat styles, fixed untranslated "says:" message in the chat window.
- added emoticon image conversion to the the personal status message.
- added warning message when KMess is installed in a folder where it can't find it's resources.
- added warning dialog when KMess can't find it's eventsrc file to handle notifications.
- improved visual *bold*, /italic/ and _underline_ effects, they don't hide the ASCII codes anymore.
- improved account menu's, display account handle instead of long friendly name.
- improved compatibility with Windows Live Messenger's protocol for client-to-client invitations.
- restored context menu in the chat window.
- fixed file transfers, a timer was not stopped to detect a direct connection timeout.
- fixed crash when a timeout occurs during a direct file transfer.
- fixed login problems with "restricted passport accounts".
- fixed image width/height of received custom emoticons.
- fixed link parsing, adding http:// before www. URL's, and fixed geek-style links (links without www. or http://).
- fixed unwanted resizing of the chat window when the statusbar text didn't fit.
- fixed unwanted resizing of the chat window sidebar.
- fixed contact window alignment, right-to-left names aligned randomly.
- fixed contact window updating when a group was succesfuly renamed.
- fixed lost personal status message when moving contacts.
- fixed own personal status message, it could literally become "<Enter your personal message here>".
- fixed missing right-to-left flag in sent chat messages.
- fixed message "<handle> has left the chat", displays contact name now.
- fixed missing contact name when adding new contacts.
- fixed missing "overwrite file" question when saving sent files.
- fixed tab order of the 'chatting' options panel.
- fixed revoking of sent invitations when a timeout occurred.
- fixed typing notification, these were not sent instantly when the user continues to type after sending a message.
- fixed emoticons support for KDE 3.3 and below.
- fixed emoticons installation with the installer.
- fixed compiling with automake 2.10.
- fixed compiling of the RPM with patch level KDE versions (e.g. 3.1-10).
- fixed character encoding problem in the desktop file.
- fixed filename of Estonian translation.
- updated website address, moved to www.kmess.org.
- updated Dutch translation by Jaap Woldringh.
- updated Danish translation by Pascal d'Hermilly.
- updated German translation.
- updated Finnish translation by Joonas Niilola.
- updated Hungarian translation by Páder Rezsõ.
- updated Italian translation by Valerio Pilo.
- updated Spanish translation by Jaume Corbí.
- updated Turkish translation by Uğur Çetin.
- updated Traditional Chinese translation, by Yen-chou Chen.
- added Hungarian translation by Páder Rezsõ.
- Removed ASL and unhappy icon because these are no longer used in Windows Live Messenger.
Changes between KMess 1.5pre1 and 1.4.3:
----------------------------------------
- added direct connection support, faster file transfers.
- added chat message styles. Styles can use all CSS2 features supported by KHTML.
- added emoticon themes to the chat window. They can be switched on-the-fly.
- added offline-im support (receiving only).
- added custom emoticon support (receiving only).
- added winks support (receiving only).
- added nudge support.
- added personal status message support.
- added grouping of chat messages from the same contact.
- added alt tags to all emoticons, for easy copy-pasting.
- added a link to "register.passport.net" for creating a new account.
- added support for file transfers between hosts of the same LAN.
- added support for parallel transfers over the same direct connection.
- added support for relaying invitations to another swichboard connection.
- added option to upgrade a temporary/guest account permanently (when "Remember this profile" was left unchecked).
- added detection of unverified passport e-mail adresses.
- added translation for Finnish.
- added Doxygen configuration to generate API docs.
- upgraded client-server protocol to MSNP12 (MSN Messenger 7.5).
- upgraded client-to-client protocol to MSNC5 (MSN Messenger 7.5).
- improved login dialog, replacing the confusing profile box.
- improved main window interface, added contact picture to main window.
- improved chat window interface, added sidebar for contacts and emoticons.
- improved settings dialog, added widgets of the "display pic" tab to the "accounts" tab.
- improved detection of login errors for problems with the MSN servers.
- improved chat message link detection with support for e-mail addresses and sftp:// links
and "geek-style" urls (urls without a http:// or www prefix, like "slashdot.org").
- improved performance for accounts with large contact lists.
- improved "connection timeout" message, with suggestions to "check the Internet connection and MSN service status".
- improved support for temporary/guest accounts (e.g. for internet cafe usage or friends visiting).
- improved right-to-left language support, chat messages are reversed in the same way 'kmess --reverse' changes the GUI.
- changed chat window title, displaying the contact name before the "KMess" part.
- changed emoticon size, emoticons are displayed at their real size instead of being scaled.
- fixed annoying error messages with picture transfers, only displayed in the console now.
- fixed repeatedly displaying "this contact is offline" warnings while typing a message.
- fixed unwanted saving of the contact list for "guest accounts", this was overlooked by a bugfix of 1.4.
- fixed minor issues that occurred when the chat connection is established but the invited contacts have not entered the chat yet.
- fixed handling of unexpected disconnections by the server, contactlist was not saved and reset, invitations were not aborted.
- fixed unwanted "Connection timed out" message when it took more then one minute to authenticate and download the contact list.
- fixed handling of connection errors, no error message was displayed except for connection timeouts.
- fixed closing the connection when 3 pings are missed.
- fixed detection of cancelled file transfers.
- fixed cancelling of file transfer invitations before the contact accepted.
- fixed cancelling of file transfer sessions by the one who didn't start the transfer.
- fixed display problems with dark color schemes.
- fixed parsing of chat messages containing both emoticons and hyperlinks.
- fixed login from main window, no longer creates a new account by default.
- fixed hanging user interface during file transfers invitations.
- fixed small memory leak, chat invitation was not removed.
- fixed title of the "save" menu item in the chat window.
- fixed error message for third-party "text/x-keepalive" message.
- fixed "&Verdana" font setting in chat messages. This was addressed in KMess 1.4,
but it could still appear if you never changed font settings.
- fixed font size of font selection buttons, as the font size is not used by the msn protocol.
- fixed race condition that could make KMess crash when a chat window was closed while a contact was leaving or typing.
- fixed overwriting chat logs when the conversation is restarted within the same minute.
- fixed saving settings of the main window menu when disconnecting/switching accounts.
- fixed e-mail notification settings, gray out options if user is not logged in with a Hotmail account.
- fixed file chooser path for display pictures, in SUSE it opened /etc/opt/kde instead of /opt/kde3
- fixed translation of Danish, renamed from "dk.po" to "da.po".
- fixed right-to-left support for translated notification/event/error messages in the chat window.
- updated Turkish translation, by Uğur Çetin.
- removed support for Qt 3.1 due the use of the QToolbox widget in the chat windows.
Changes between KMess 1.4.3 and 1.4.2:
--------------------------------------
- fixed a crash occuring when resuming a chat.
- fixed a crash at quit, caused in ContactAction disconnect code.
- fixed compilation error for KDE 3.5.1 (KURLLabel::setSizePolicy() API changed).
- fixed receiving files from Mercury Messenger, KMess responsed with an incorrect Content-Type field.
- fixed .Net messenger service status URL (was changed again).
- fixed two issues with certain unexpected MSNP2P packets:
- Bot2K3 4.1 sends the first ACK without flags.
- Encarta Instant Answers sends the data preparation message with the data flag set.
- fixed missing MSNP2P ack packets, accidently emulated a bug of MSN 7.0.
- fixed chat messages with links and emoticons (this is only a temporary fix)
- This fix disables emoticons in a chat message when there are links in the message too.
- As of 1.5 we can include a better the message parser/formatter which handles emoticons+links the right way.
- removed /debian folder as requested by Debian packagers (KMess is in Debian unstable now).
- removed --enable-phone, option is still not fully operational (needs to be replaced with libkcall).
- changed chat window statusbar to show by default, so it's more obvious why the contact picture lights up.
- added detection of https:// links
- added the (0) symbol for the clock emoticon.
- added contact status and picture to contact list tooltip.
Changes between KMess 1.4.2 and 1.4.1:
--------------------------------------
- correctly merged the patches of KMess 1.4.1 this time (sorry!)
- fixed the font selection buttons in the settings panel.
- fixed a problem with new contacts adding you while you're online.
- fixed a problem with rpm building as root in SuSE (KDE not in $PATH).
- fixed a problem and crash with display pictures when the contact has none.
- fixed a crash during KMess quit, contacts were unloaded incorrectly.
- fixed a crash after disabling the display picture.
- fixed a crash after closing the chat session with active invitations.
- added translation for Slovenian.
Changes between KMess 1.4.1 and 1.4:
------------------------------------
- fixed a crash during chat with MSN Messenger 7.5 (also fixes picture transfer).
- fixed a crash during chat with contacts that are not on your list.
Changes between KMess 1.4 and 1.4pre1:
--------------------------------------
- added translations for: German, Spanish, Swedish and Chinese Traditional.
+16 -177
View File
@@ -2,171 +2,23 @@
About KMess:
============
KMess is a MSN Messenger clone for Linux. It enables Linux users
to chat with friends online who are using MSN Messenger in
Windows or Mac OS. The strength of KMess is it's integration
with the KDE desktop environment, focus on MSN Messenger
specific features and an easy-to-use interface.
KMess is a Windows Live Messenger client for Linux. It enables
Linux, Mac and even Windows users to chat with friends online
who are using the official Messenger client for Windows. The
strengths of KMess are its integration with the KDE desktop
environment, its focus on Live Messenger specific features
and an easy-to-use interface.
Like many Linux and KDE applications, KMess is free software.
The licensing terms are the GNU General Public License.
Installation Tip:
Installing KMess:
=================
In order for KMess to work properly, it must be configured first.
Run the configure script like this:
./configure
If the ./configure script completed with success, then type
make
and then, as root, type
make install
That's it.
Important:
==========
The configure script tries to detect your KDE3 directory automatically.
If configure fails to detect KDE, you should tell KMess which directory
to use. Basically, we're talking about the parent directory
of /share/apps/k~bunch of kapps~
Not doing this will result in emoticons being displayed
as text, and icons being displayed incorrectly as well.
Troubleshooting
===============
The following packages are required to install KMess:
- make
- gcc
- gcc-c++ (if available)
- qt
- kdelibs
If your distribution uses separate "devel" or "dev" packages,
make sure you have these packages installed also:
- qt-devel (or qt3-devel)
- kdelibs-devel (or kdelibs3-devel)
- x-devel (or xfree-devel/xorg-x11-devel)
- libstdc++-devel
Likely the dependencies of these "devel" packages will
be installed automatically. Some worth mentioning are:
- fontconfig-devel
- freetype2-devel
- libfam-devel (or fam-devel)
- libjpeg-devel
- libpng-devel
- zlib-devel
- libart_lgpl-devel
If configure tells you you're missing something that you think you
have installed on your system, you probably need to install the
"devel" package of that thing.
i.e. If it tells you you're missing libfam, install the libfam-devel rpm.
If you get this error:
''configure: error: no acceptable C compiler found in $PATH''
you need to install the packages "gcc" and "make".
If you get this error:
''Your Installation isn't able to compile simple C++ programs.''
you need to install "libstdc++-devel" and some distributions
also require a "gcc-c++" package for C++ support.
If you get this error:
''error: Can't find X includes. Please check your installation [...]''
you need to install the x developer packages. Depending on your distribution,
this can be something like "x-devel", "xfree-devel", "xorg-devel".
If you get this eror:
''checking for libz... configure: error: not found.''
you need to install the "zlib-devel" package.
If you get this error:
''configure: WARNING: libjpeg not found. disable JPEG support.''
you need to install the "libjpeg-devel" package.
If you get this error:
''checking for Qt... configure: error:
Qt (>= Qt 3.1 (20021021)) (headers and libraries) not found.
Please check your installation!''
you need to install the "qt-devel" (or "qt3-devel") package.
If you get this error:
''checking for KDE... configure: error:
in the prefix, you've chosen, are no KDE headers installed. This will fail.
So, check this please and use another prefix!''
you need to make sure "kdelibs-devel" (or "kdelibs3-devel") is installed!
Installing from CVS:
====================
If there is any need to install the CVS version, read on.
The KMess CVS contains the latest changes made to KMess.
Each new feature or bugfix will be stored into CVS by developers.
The code in CVS will eventually become the new KMess release.
Note that the CVS version is the equivalent
of an "alpha" or "beta" release!
The changes made to CVS could take a few days to reach
the public servers. To install KMess from CVS you need to
have the packages "autoconf" and "automake" installed.
To download the CVS version, run these commands:
cvs -d :pserver:anonymous@cvs.sf.net/cvsroot/kmess login
(hit enter when prompted for a password)
cvs -d :pserver:anonymous@cvs.sf.net/cvsroot/kmess -z3 checkout kmess
If the download succeeds, run this command:
make -f Makefile.dist
This will generate the ./configure script and Makefile templates.
Then you can proceed with the normal installation.
Each time the CVS version is updated, you can run
cvs update
make -f Makefile.dist
./configure
make
make install
and you'll have the latest KMess version installed.
Please see the INSTALL file for help with compiling and installing
KMess from source.
@@ -183,16 +35,14 @@ This is what you need to do:
- Open the language "po" file, and start translating!
Also watch for translations marked as "fuzzy",
they often need updating.
- The the following commands in the "po" folder:
make
make install
(if this doesn't work, run configure first)
- Update the translations.
- Test the new translation.
(to test other languages, run 'KDE_LANG=<code> kmess')
- Contact the KMess developers.
- Contact the KMess developers to send your changes!
A more detailed tutorial can be found online
at http://kmess.sourceforge.net/translating/
at http://trac.kmess.org/wiki/Translating%20KMess
Building RPM Packages
@@ -207,20 +57,9 @@ To build a RPM package for your distribution, run:
Building Slackware Packages
===========================
To build a TGZ package for Slackware, also run:
To build a TGZ package for Slackware, run:
rpmbuild -tb kmess-1.4.tar.gz
Building Debian Packages
===========================
To build a DEB package for Debian, run:
tar zxf kmess-1.4.tar.gz
cd kmess-1.4/
dpkg-buildpackage
rpmbuild -tb kmess-2.0.tar.gz
@@ -228,5 +67,5 @@ More Information
================
For more information about KMess, help forums, and the latest
releases, visit the homepage at http://kmess.sourceforge.net/
releases, visit the homepage at http://www.kmess.org/
+5 -116
View File
@@ -1,120 +1,9 @@
Before release:
===============
___ Set <UI version="3.1" ..> in *.ui files
___ Verify if it compiles with KDE 3.1 (using Slackware 9.0 for example)
___ Tag version in CVS
___ Run includemocs
To do:
======
_Y_ Fix lost switchboard connection (contact types but KMess doesn't receive it..!)
_Y_ Fix contact moving to other groups (MSN6 incompatiblity?)
_Y_ New contacts are not visible in contact list (added from "x has added you to his contact list.."-dialog)
_Y_ Get MSN6 file transers operation again.
_Y_ KMess does not yet convert your MSN picture to a 96x96 PNG.
_Y_ MSN6 pictures not updated yet if the contact changes it's picture.
_Y_ MSN6 doesn't download your picture again if you changed it.
_Y_ Contactlist changes (custom name) are not saved if kmess closes during kde-logout.
___ The classic File transfer receiving blocks gui-events until a connection is made or fails.
_Y_ Login fails if you never signed on with the official MSN6 client.
___ Login blocks all gui-events.
_Y_ Fix contact picture if file can't be found.
_Y_ Fix the auto-away configure check.
_Y_ Hide the e-mail status line if "show notifications" is unchecked (or the account is not a hotmail/msn passport?)
_Y_ Fix KMess-to-KMess P2P transfers (something fails with the flag of the BYE message)
_Y_ Fix "write to disconnected socket" errors for MsnSwitchboardConnection (I guess my NAT router kills the idle connection)
For bugs, future ideas, et cetera, please check our developer site
powered by trac at http://trac.kmess.org/.
___ Fix contactlist background picture scrolling
___ Fix problem when cancelling a connection during a connection attempt.
_Y_ Fix a crash in ~ChatMaster at quit (connect to an idle contact, type something, close window, quit kmess).
_X_ configure check for rand(), in p2papplication.cpp
_Y_ get rid of the ip dialog (sending files), serious.
___ ..either support msn6 file sending, or support classic msn5 transfers
If you're looking for junior jobs, you may also contact us at the
KMess help forums: http://kmess.org/board/
___ Remove the dependency on QWidget for data-classes.
_Y_ Fix entry height of file transfer dialog item, it also changes when cancel is pressed.
___ Use kdWarning() for warning messages instead of kdDebug() << "WARNING".
_Y_ Really close the chatwindow after it's being hidden? (or after a certain time?)
___ Create an Apt repository online
___ Make sure KMess can send two files at once
_Y_ Fix P2P transfers is chats with multiple contacts.
___ Make sure ChatInfo gets deleted somewhere.
___ Restore the documentation
___ Restore the translations
___ Balloon size fix (2 contacts on baloon).
_Y_ Add 22x22 icons
_Y_ Strange effect in contactlist toolbar? (a fault of KDE 3? I don't see how it can be fixed)
_Y_ Contact logs being saved in the wrong place... (odd configuration problem where trailing slash for directory wasn't present)
_X_ Do you want to delete this *account*? Needs to be fixed. (Nope. Using "Account" now)
_X_ Specify the ping interval? (just a flag at compile time)
Post 1.4:
=========
These features require changes to the language files,
and are therefore not included yet. Let's wait until 1.4 is final,
so most translations can be up-to-date again.
___ Add a link to "register.passport.net" somewhere
___ Include a tooltip in the contact sidebar.
___ Include a contact menu in the contact sidebar (see https://www.lab.fi.uva.es/~albgonz/kmesss.jpg)
___ Improve the contact list tooltip
___ Improve the contact list contact menu
___ Include the display icon above the contact list (too bad msn7 already implemented the same idea, makes it look like copying)
___ Compact sidebar list as described in http://kmess.sourceforge.net/board/viewtopic.php?t=460
(make it optional, let the user choose between "no", "compact", "full")
___ Maybe: improve chat window layout like http://kde-apps.org/content/show.php?content=24461
(looks more clean, though it's a bit kmerlin like though, and the current pictures list is not that bad for multi-chat)
___ Chat window XML/XSLT support, like http://kde-look.org/content/show.php?content=22640
___ Add detection for empty switchboard sessions before sending file transfer invitations.
___ Add detection for NAK responses to file transfer invitations
___ Add a baloon if the contact start the chat with an invitataion.
Future ideas:
=============
* MSN Protocol support:
___ Improve old file transfer code, multiple connections like MSN5 does.
_Y_ Implement UPnP support
___ Implement a settings open ("File transfers") where the user can at least choose:
- "[x] Allow KMess to control my internet router programmatically [learn more]"
- "Use the following port to receive UPnP broadcast responses: [default 1900]"
___ Add voice (SIP) support
___ Add webcam (RTP) support, see http://www.hypothetic.org/docs/msn/phorum/read.php?f=1&i=9837&t=9837
___ Add nudge support (easy, and make the kmess-version less annoying, highlight of contact picture for example)
___ Add winks support
___ Add emoticon transfer support
___ Add Ink support?
___ Previews in msn6 image transfers
___ Implement MSN6 direct connection filetransfers
___ Fix msn remote desktop invitation support (context field with user/pass)
___ Upgrade to MSNP10 support (new LST commands for contact list, etc..)
* Invitation support:
___ Check whether gnomemeeting, krdc exists before starting/acceping a session
___ Support Konference for netmeeting invitations as well.
___ Detect whether gnomemeeting or konference exists before starting a netmeeting session.
* Interface features:
___ Drag and drop of files in the chat window.
___ Update contact edit dialog, icon button for contact icon.
___ Browse/view the contact picture cache (include meta data, like contact handle and date/time)
_Y_ Fix contact list selection bar (look how Kopete does it?)
___ Show an icon overlay for contact connected with webmessenger.msn.com / MSN Mobile
___ Add contact icon (purple?) for unknown contacts added by others in a multi-chat session.
___ Emoticon themes (instead of overwriting existing emoticons)
___ Chat style themes (XSL files)
_X_ "Who has me in his/hers contact list?" dialog (allowed/removed groups already reveal this)
___ Include the network-window as "--with-network-window" if the network-window-code displays traffic nicer.
* KDE Integration:
___ KDE-IM bridge (http://developer.kde.org/documentation/library/cvs-api/interfaces/html/classKIMIface.html)
___ GetHotNewStuff (as of KDE 3.4, either support it through a KPart, or wait for KDE 4 conversion)
___ Add "now playing" support, using dcop to query the common kde multimedia applications.
- The KMess team
-179
View File
@@ -1,179 +0,0 @@
## generate API documentation with doxygen
apidox-am-yes:
@if test "$(subdir)" != "."; then \
$(mkinstalldirs) $(top_builddir)/apidocs/$(subdir) ;\
if test ! -x $(top_builddir)/apidocs/common; then \
if test -d $(top_srcdir)/doc/common; then \
common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
else \
common_dir=$(kde_libs_htmldir)/en/common ;\
fi ;\
$(LN_S) $$common_dir $(top_builddir)/apidocs/common; \
fi ;\
cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
echo "PROJECT_NAME = \"$(subdir) Library\"" >> Doxyfile; \
echo "PROJECT_NUMBER = \"Version $(VERSION)\"" >> Doxyfile; \
echo "INPUT = $(srcdir)" >> Doxyfile; \
echo "IMAGE_PATH = $(top_srcdir)/doc/api" >> Doxyfile ;\
echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile; \
echo "HTML_OUTPUT = $(subdir)/html" >> Doxyfile; \
echo "HTML_HEADER = $(top_builddir)/apidocs/common/header.html" >> Doxyfile;\
echo "HTML_FOOTER = $(top_builddir)/apidocs/common/footer.html" >> Doxyfile;\
echo "HTML_STYLESHEET = $(top_builddir)/apidocs/common/doxygen.css" >> Doxyfile;\
echo "LATEX_OUTPUT = $(subdir)/latex" >> Doxyfile; \
echo "RTF_OUTPUT = $(subdir)/rtf" >> Doxyfile; \
echo "MAN_OUTPUT = $(subdir)/man" >> Doxyfile; \
echo "GENERATE_HTML = $(GENERATE_FLAG)" >> Doxyfile ;\
echo "GENERATE_MAN = $(GENERATE_FLAG)" >> Doxyfile ;\
echo "GENERATE_LATEX = $(GENERATE_FLAG)" >> Doxyfile ;\
if test -n "$(DOXYGEN_EXCLUDE)"; then \
patterns= ;\
dirs= ;\
for item in `echo "$(DOXYGEN_EXCLUDE)"`; do \
if test -d "$(srcdir)/$$item"; then \
dirs="$$dirs $(srcdir)/$$item/" ;\
else \
patterns="$$patterns $$item" ;\
fi ;\
done ;\
echo "EXCLUDE_PATTERNS += $$patterns" >> Doxyfile; \
echo "EXCLUDE += $$dirs" >> Doxyfile ;\
fi ;\
echo "TAGFILES = \\" >> Doxyfile; \
tags='$(DOXYGEN_REFERENCES) qt'; for tag in $$tags; do \
tagpath= ;\
path="../../$$tag" ;\
if test -f $(top_builddir)/apidocs/$$tag/$$tag.tag; then \
tagpath="$(top_builddir)/apidocs/$$tag/$$tag.tag" ;\
else \
tagpath=`ls -1 $(kde_htmldir)/en/*-apidocs/$$tag/$$tag.tag 2> /dev/null` ;\
if test -n "$$tagpath"; then \
path=`echo $$tagpath | sed -e "s,.*/\([^/]*-apidocs\)/$$tag/$$tag.tag,../../../\1/$$tag,"` ;\
fi ;\
fi ;\
if test "$$tag" = qt; then \
echo $$tagpath=$(QTDOCDIR) >> Doxyfile ;\
else if test -n "$$tagpath"; then \
echo "$$tagpath=$$path/html \\" >> Doxyfile ;\
fi ;\
fi ;\
done ;\
echo "GENERATE_TAGFILE = $(top_builddir)/apidocs/$(subdir)/`basename $(subdir)`.tag" >> Doxyfile ;\
echo "IGNORE_PREFIX = K" >> Doxyfile ;\
echo "HAVE_DOT = $(KDE_HAVE_DOT)" >> Doxyfile ;\
$(DOXYGEN) Doxyfile ;\
fi
apidox-am-no:
install-data-local: install-apidox
## install API documentation
install-apidox:
@if test "$(subdir)" != "."; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
fi; \
if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
for file in $$list; do \
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
done; \
fi; \
rm -f $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
$(LN_S) $(kde_libs_htmldir)/en/common $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \
else\
if test -d $(top_builddir)/apidocs; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
list=`cd $(top_builddir)/apidocs && ls -1`; \
echo "installing $(top_builddir)/apidocs/$$file" ;\
for file in $$list; do \
if test -f $(top_builddir)/apidocs/$$file; then \
$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
fi; \
done ; fi; \
fi
uninstall-local: uninstall-apidox
## uninstall API documentation
uninstall-apidox:
@if test "$(subdir)" != "."; then \
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
fi\
else\
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
fi\
fi
apidox:
@if test "$(subdir)" != "."; then \
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
else \
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
fi
@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
list='$(SUBDIRS)'; \
for subdir in $$list; do \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
echo "Making apidox in $$subdir"; \
if test "$$subdir" != "."; then \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no apidox) || exit 1; \
fi ; fi ;\
done; \
for subdir in $$list; do \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \
echo "Making apidox in $$subdir"; \
if test "$$subdir" != "."; then \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=yes apidox) || exit 1; \
fi ; fi ;\
done; \
fi
apidox-am-toplevel-no:
apidox-am-toplevel-yes:
@echo "*** Creating API documentation main page"; \
cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \
echo "PROJECT_NAME = \"$(DOXYGEN_PROJECT_NAME)\"" >> Doxyfile ; \
echo "PROJECT_NUMBER = \"$(DOXYGEN_PROJECT_NUMBER)\"" >> Doxyfile ; \
echo "INPUT = $(top_srcdir)" >> Doxyfile ; \
echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile ; \
echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \
echo "RECURSIVE = NO" >> Doxyfile ; \
echo "SOURCE_BROWSER = NO" >> Doxyfile ; \
echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \
echo "HTML_OUTPUT = ." >> Doxyfile ; \
echo "HTML_HEADER = apidocs/common/mainheader.html" >> Doxyfile ; \
echo "HTML_FOOTER = apidocs/common/mainfooter.html" >> Doxyfile ; \
echo "HTML_STYLESHEET = apidocs/common/doxygen.css" >> Doxyfile ; \
echo "GENERATE_LATEX = NO" >> Doxyfile ; \
echo "GENERATE_RTF = NO" >> Doxyfile ; \
echo "GENERATE_MAN = NO" >> Doxyfile ; \
echo "GENERATE_XML = NO" >> Doxyfile ; \
echo "GENERATE_AUTOGEN_DEF = NO" >> Doxyfile ; \
echo "ENABLE_PREPROCESSING = NO" >> Doxyfile ; \
echo "CLASS_DIAGRAMS = NO" >> Doxyfile ; \
echo "HAVE_DOT = NO" >> Doxyfile ; \
echo "GENERATE_HTML = YES" >> Doxyfile ;\
$(mkinstalldirs) $(top_builddir)/apidocs ; \
rm -f $(top_builddir)/apidocs/common ; \
if test -d $(top_srcdir)/doc/common; then \
common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\
else \
common_dir=$(kde_libs_htmldir)/en/common ;\
fi ;\
$(LN_S) $$common_dir $(top_builddir)/apidocs/common ;\
doxygen Doxyfile; \
rm -f Doxyfile
.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
# Local Variables:
# mode: makefile
# End:
File diff suppressed because it is too large Load Diff
-35
View File
@@ -1,35 +0,0 @@
### Makefile.common
###
### Copyright (C) 2002 by the KDE developers
### All the real work is done by the shellscript cvs.sh
SHELL=/bin/sh
cvs dist cvs-clean configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4:
@admindir=$(admindir); \
if test "x$$admindir" = x; then \
admindir=.; until test -f $$admindir/admin/cvs.sh; do \
admindir=$$admindir/..; \
if test `cd $$admindir && pwd` = / ; then break; fi; \
done; \
admindir=$$admindir/admin; \
if test -f $$admindir/cvs.sh; then :; else \
echo "Can't find the admin/ directory in any parent of the"; \
echo "current directory. Please set it with admindir=..."; \
exit 1; \
fi; \
fi; \
if test "$@" = "package-merge"; then \
MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
$(SHELL) $$admindir/cvs.sh package-merge ;\
else \
MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
fi
configure.in: configure.files subdirs
configure.files: subdirs
.SILENT:
.PHONY: cvs dist cvs-clean package-merge package-messages
File diff suppressed because it is too large Load Diff
-2442
View File
File diff suppressed because it is too large Load Diff
-156
View File
@@ -1,156 +0,0 @@
#!/usr/bin/perl -w
use DB_File;
use Fcntl ':flock';
if (!defined($ARGV[0])) {
print "usage: requires .class dump as parameter!\n";
exit;
}
sub bailout
{
untie %bcheckdb if(defined(%bcheckdb));
if(defined(MYLOCK)) {
flock MYLOCK, LOCK_UN;
close(MYLOCK);
}
print @_;
exit 5;
}
sub ask_user
{
my ($dbkey, $dbchunk) = @_;
if (defined($ENV{"BCHECK_UPDATE"})) {
$bcheckdb{$dbkey} = $dbchunk;
return;
}
&bailout("BC problem detected") if (! -t STDIN);
print "(I)gnore / (Q)uit / (U)pdate: ";
my $key;
while(defined(read STDIN, $key, 1)) {
$key = lc($key);
print "got: >$key<\n";
return if ($key eq 'i');
&bailout("BC problem. aborted") if ($key eq 'q');
if ($key eq 'u') {
$bcheckdb{$dbkey} = $dbchunk;
return;
}
print "\n(I)gnore / (Q)uit / (U)pdate: ";
}
}
sub diff_chunk($$)
{
my ($oldl, $newl) = @_;
my @old = split /^/m, $oldl;
my @new = split /^/m, $newl;
my $haschanges = 0;
my $max = $#old > $#new ? $#old : $#new;
die "whoops. key different" if ($old[0] ne $new[0]);
if ($#old != $#new) {
warn ("Structural difference.\n");
print @old;
print "-----------------------------------------------\n";
print @new;
$haschanges = 1;
return $haschanges;
}
print $old[0];
my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
my $c = 1;
while ($c < $max) {
my ($o, $n) = ($old[$c], $new[$c]);
chomp $o;
chomp $n;
$c++;
next if ($o eq $n);
if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
next if ($n eq "$1$class$2");
}
$haschanges = 1;
print "-$o\n+$n\n\n";
}
return $haschanges;
}
local $dblock = $ENV{"HOME"} . "/bcheck.lock";
my $dbfile = $ENV{"HOME"} . "/bcheck.db";
my $cdump = $ARGV[0];
die "file $cdump is not readable: $!" if (! -f $cdump);
# make sure the advisory lock exists
open(MYLOCK, ">$dblock");
print MYLOCK "";
flock MYLOCK, LOCK_EX;
tie %bcheckdb, 'DB_File', $dbfile;
my $chunk = "";
open (IN, "<$cdump") or die "cannot open $cdump: $!";
while (<IN>) {
chop;
s/0x[0-9a-fA-F]+/0x......../g;
s/base size=/size=/g;
s/base align=/align=/g;
$chunk .= $_ . "\n";
if(/^\s*$/) {
my @lines = split /^/m, $chunk;
my $key = $lines[0];
chomp $key;
if($key !~ /<anonymous struct>/ &&
$key !~ /<anonymous union>/) {
if(defined($bcheckdb{$key})) {
my $dbversion = $bcheckdb{$key};
if($dbversion ne $chunk) {
&ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
}
}
else {
$bcheckdb{$key} = $chunk;
print "NEW: $key\n";
}
}
$chunk = "";
next;
}
}
close(IN);
untie %bcheckdb;
flock MYLOCK, LOCK_UN;
close(MYLOCK);
exit 0;
-99
View File
@@ -1,99 +0,0 @@
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
# Copyright 1999, 2000 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Usage:
# compile PROGRAM [ARGS]...
# `-o FOO.o' is removed from the args passed to the actual compile.
prog=$1
shift
ofile=
cfile=
args=
while test $# -gt 0; do
case "$1" in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we do something ugly here.
ofile=$2
shift
case "$ofile" in
*.o | *.obj)
;;
*)
args="$args -o $ofile"
ofile=
;;
esac
;;
*.c)
cfile=$1
args="$args $1"
;;
*)
args="$args $1"
;;
esac
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no `-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
exec "$prog" $args
fi
# Name of file we expect compiler to create.
cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
while true; do
if mkdir $lockdir > /dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir $lockdir; exit 1" 1 2 15
# Run the compile.
"$prog" $args
status=$?
if test -f "$cofile"; then
mv "$cofile" "$ofile"
fi
rmdir $lockdir
exit $status
-191
View File
@@ -1,191 +0,0 @@
#!/usr/bin/env perl
# this script patches a config.status file, to use our own perl script
# in the main loop
# we do it this way to circumvent hacking (and thereby including)
# autoconf function (which are GPL) into our LGPL acinclude.m4.in
# written by Michael Matz <matz@kde.org>
# adapted by Dirk Mueller <mueller@kde.org>
#
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# we have to change two places
# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
# later autoconf's
# 2. the big main loop which patches all Makefile.in's
use strict;
use File::Basename;
my $ac_aux_dir = dirname($0);
my ($flag);
my $ac_version = 0;
my $vpath_seen = 0;
$flag = 0;
while (<>) {
# usage of $flag: 0 -- we have seen nothing yet
# 1 -- we are in (1)
# 2 -- we have ended (1)
# 3 -- we are in (2)
# 4 -- we ended (2)
if ($flag == 4) {
print;
} elsif ($flag == 0) {
# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
# ends with (excluding) "CONFIG_FILE=..."
# in later autoconf (2.14.1) there is no CONFIG_FILES= line,
# but instead the (2) directly follow (1)
if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
$flag = 1;
if ($1 eq 'lines') {
# lets hope its different with 2141,
# wasn't able to verify that
if ($2 eq '48') {
$ac_version = 250;
}
else {
$ac_version = 2141;
}
} elsif ($1 eq 'cmds') {
$ac_version = 213;
}
# hmm, we don't know the autoconf version, but we try anyway
} else {
print;
}
} elsif ($flag == 1) {
if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
print;
$flag = 2;
} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
$flag = 3;
}
} elsif ($flag == 2) {
# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1))
# end with: "rm -f conftest.s\*"
# on autoconf 250, it ends with '# CONFIG_HEADER section'
#
# gg: if a post-processing commands section is found first,
# stop there and insert a new loop to honour the case/esac.
# (pattern: /^\s+#\sRun the commands associated with the file./)
if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
$flag = 3;
} else {
print;
}
} elsif ($flag == 3) {
if (/^\s*rm\s+-f\s+conftest/ ) {
$flag = 4;
&insert_main_loop();
} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
$flag = 4;
&insert_main_loop();
#die "hhhhhhh";
if ($ac_version != 2141) {
print STDERR "hmm, don't know autoconf version\n";
}
} elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
$flag = 4;
my $commands = defined $2;
&insert_main_loop();
$commands && insert_command_loop();
if($ac_version != 250) {
print STDERR "hmm, something went wrong :-(\n";
}
} elsif (/VPATH/ ) {
$vpath_seen = 1;
}
}
}
die "wrong input (flag != 4)" unless $flag == 4;
print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
sub insert_main_loop {
if ($ac_version == 250) {
&insert_main_loop_250();
}
else {
&insert_main_loop_213();
}
}
sub insert_main_loop_250 {
print <<EOF;
#echo Doing the fast build of Makefiles -- autoconf $ac_version
EOF
if ($vpath_seen) {
print <<EOF;
# VPATH subst was seen in original config.status main loop
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >>\$tmp/subs.sed
EOF
}
print <<EOF;
rm -f \$tmp/subs.files
for ac_file in .. \$CONFIG_FILES ; do
if test "x\$ac_file" != x..; then
echo \$ac_file >> \$tmp/subs.files
fi
done
if test -f \$tmp/subs.files ; then
perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
fi
rm -f \$tmp/subs.files
fi
EOF
return;
}
sub insert_main_loop_213 {
print <<EOF;
#echo Doing the fast build of Makefiles -- autoconf $ac_version
if test "x\$ac_cs_root" = "x" ; then
ac_cs_root=conftest
fi
EOF
if ($vpath_seen) {
print <<EOF;
# VPATH subst was seen in original config.status main loop
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >> \$ac_cs_root.subs
EOF
}
print <<EOF;
rm -f \$ac_cs_root.sacfiles
for ac_file in .. \$CONFIG_FILES ; do
if test "x\$ac_file" != x..; then
echo \$ac_file >> \$ac_cs_root.sacfiles
fi
done
if test -f \$ac_cs_root.sacfiles ; then
perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
fi
rm -f \$ac_cs_root.s*
EOF
return;
}
sub insert_command_loop {
print <<EOF;
for ac_file in .. \$CONFIG_FILES ; do
EOF
}
-1449
View File
File diff suppressed because it is too large Load Diff
-236
View File
@@ -1,236 +0,0 @@
#!/usr/bin/env perl
# a script for use by autoconf to make the Makefiles
# from the Makefile.in's
#
# the original autoconf mechanism first splits all substitutions into groups
# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
# (so around 2-3 times per Makefile.in). So this takes forever, as sed
# has to recompile the regexps every time.
#
# this script does better. It changes all Makefile.ins in one process.
# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
#
# written by Michael Matz <matz@kde.org>
# adapted by Dirk Mueller <mueller@kde.org>
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
use strict;
use File::Path;
my $ac_subs=$ARGV[0];
my $ac_sacfiles = $ARGV[1];
my $ac_given_srcdir=$ARGV[2];
my $ac_given_INSTALL=$ARGV[3];
my @comp_match;
my @comp_subs;
#print "ac_subs=$ac_subs\n";
#print "ac_sacfiles=$ac_sacfiles\n";
#print "ac_given_srcdir=$ac_given_srcdir\n";
#print "ac_given_INSTALL=$ac_given_INSTALL\n";
my $configure_input;
my ($srcdir, $top_srcdir);
my $INSTALL;
my $bad_perl = ($] < 5.005);
my $created_file_count = 0;
open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
my @subs = <CF>;
close(CF);
chomp @subs;
@comp_match=();
@comp_subs=();
if ($bad_perl) {
print "Using perl older than version 5.005\n";
foreach my $pat (@subs) {
if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
|| ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
|| ($pat =~ m/s,([^,]*),(.*),;t/)
|| ($pat =~ m%s/([^/]*)/([^/]*)/g% )
|| ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
) {
# form : s%bla%blubb%g
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
# or s,bla,blubb,;t t (autoconf 2.52)
my $srch = $1;
my $repl = $2;
$repl =~ s/\\(.)/$1/g;
push @comp_subs, make_closure($srch, $repl);
} elsif ( ($pat =~ /%([^%]*)%d/ )
|| ($pat =~ m%/([^/]*)/d% )
) {
push @comp_subs, make_closure($1, "");
} else {
die "Uhh. Malformed pattern in $ac_subs ($pat)"
unless ( $pat =~ /^\s*$/ ); # ignore white lines
}
}
} else {
foreach my $pat (@subs) {
if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
($pat =~ /s,([^,]*),(.*),;t/) ) {
# form : s%bla%blubb%g
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
# or s,bla,blubb,;t t (autoconf 2.52)
my $srch = $1;
my $repl = $2;
push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern
$repl =~ s/\\(.)/$1/g;
push @comp_subs, $repl;
} elsif ( ($pat =~ /%([^%]*)%d/ )
|| ($pat =~ m%/([^/]*)/d% )
) {
push @comp_match, eval "qr/\Q$1\E/";
push @comp_subs, "";
} else {
die "Uhh. Malformed pattern in $ac_subs ($pat)"
unless ( $pat =~ /^\s*$/ ); # ignore white lines
}
}
}
undef @subs;
# read the list of files to be patched, form:
# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
my @ac_files = <CF>;
close(CF);
chomp @ac_files;
my $ac_file;
foreach $ac_file (@ac_files) {
next if $ac_file =~ /\.\./;
next if $ac_file =~ /^\s*$/;
my $ac_file_in;
my ($ac_dir, $ac_dots, $ac_dir_suffix);
if ($ac_file =~ /.*:.*/ ) {
($ac_file_in = $ac_file) =~ s%[^:]*:%%;
$ac_file =~ s%:.*%%;
} else {
$ac_file_in = $ac_file.".in";
}
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
# Remove last slash and all that follows it. Not all systems have dirname.
($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
# The file is in a subdirectory.
if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
($ac_dir_suffix = $ac_dir) =~ s%^./%%;
$ac_dir_suffix="/".$ac_dir_suffix;
# A "../" for each directory in $ac_dir_suffix.
($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
} else {
$ac_dir_suffix="";
$ac_dots="";
}
if ($ac_given_srcdir eq ".") {
$srcdir=".";
if ($ac_dots) {
( $top_srcdir = $ac_dots) =~ s%/$%%;
} else { $top_srcdir="."; }
} elsif ($ac_given_srcdir =~ m%^/%) {
$srcdir=$ac_given_srcdir.$ac_dir_suffix;
$top_srcdir = $ac_given_srcdir;
} else {
$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
$top_srcdir = $ac_dots.$ac_given_srcdir;
}
if ($ac_given_INSTALL) {
if ($ac_given_INSTALL =~ m%^/% ) {
$INSTALL = $ac_given_INSTALL;
} else {
$INSTALL = $ac_dots.$ac_given_INSTALL;
}
}
print "fast creating $ac_file\n";
unlink $ac_file;
my $ac_comsub="";
my $fname=$ac_file_in;
$fname =~ s%.*/%%;
$configure_input="$ac_file. Generated from $fname by config.pl.";
my $ac_file_inputs;
($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
$ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
patch_file($ac_file, $ac_file_inputs);
++$created_file_count;
}
print "config.pl: fast created $created_file_count file(s).\n";
sub patch_file {
my ($outf, $infiles) = @_;
my $filedata;
my @infiles=split(' ', $infiles);
my $i=0;
foreach my $name (@infiles) {
if (open(CF, "< $name")) {
while (<CF>) {
$filedata .= $_;
}
close(CF);
} else {
print STDERR "can't open $name: $!"."\n";
}
}
$filedata =~ s%\@configure_input\@%$configure_input%g;
$filedata =~ s%\@srcdir\@%$srcdir%g;
$filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
$filedata =~ s%\@INSTALL\@%$INSTALL%g;
if ($bad_perl) {
while ($i <= $#comp_subs) {
my $ref = $comp_subs[$i];
&$ref(\$filedata);
$i++;
}
} else {
while ($i <= $#comp_match) {
$filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
$i++;
}
}
open(CF, "> $outf") || die "can't create $outf: $!";
print CF $filedata;
close(CF);
}
sub make_closure {
my ($pat, $sub) = @_;
my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
if ($@) {
print "can't create CODE: $@\n";
}
return $ret;
}
-1552
View File
File diff suppressed because it is too large Load Diff
-30
View File
@@ -1,30 +0,0 @@
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
# And if so, warn when they don't match
if test "$kde_libs_prefix" != "$given_prefix"; then
# And if kde doesn't know about the prefix yet
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
if test $? -ne 0; then
echo ""
echo "Warning: you chose to install this package in $given_prefix,"
echo "but KDE was found in $kde_libs_prefix."
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
echo "Then restart KDE."
echo ""
fi
fi
fi
if test "$all_tests" = "bad"; then
if test ! "$cache_file" = "/dev/null"; then
echo ""
echo "Please remove the file $cache_file after changing your setup"
echo "so that configure will find the changes next time."
echo ""
fi
else
echo ""
echo "Good - your configure finished. Start make now"
echo ""
fi
-57
View File
@@ -1,57 +0,0 @@
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
dnl Boston, MA 02111-1307, USA.
# Original Author was Kalle@kde.org
# I lifted it in some mater. (Stephan Kulow)
# I used much code from Janos Farkas
dnl Process this file with autoconf to produce a configure script.
AC_INIT(acinclude.m4) dnl a source file from your sub dir
dnl This is so we can use kde-common
AC_CONFIG_AUX_DIR(admin)
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH
dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM
dnl Perform program name transformation
AC_ARG_PROGRAM
dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
KDE_SET_PREFIX
dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
dnl Checks for programs.
AC_CHECK_COMPILERS
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL
dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS
dnl KDE_USE_QT
AC_PATH_KDE
-87
View File
@@ -1,87 +0,0 @@
#! /usr/bin/perl
#
# This script recursively (beginning with the current directory)
# wipes out everything not registered in CVS.
#
# written by Oswald Buddenhagen <ossi@kde.org>
# inspired by the "old" cvs-clean target from Makefile.common
#
# This file is free software in terms of the BSD license. That means
# that you can do anything with it except removing this license or
# the above copyright notice. There is NO WARRANTY of any kind.
#
sub rmrf()
{
my $fn = shift;
lstat ($fn);
if (-d _) {
if (opendir (DIR, $fn)) {
for my $efn (grep (!/^\.\.?$/, readdir (DIR))) {
&rmrf ($fn."/".$efn);
}
closedir (DIR);
rmdir ($fn);
}
} else {
unlink ($fn);
}
}
sub newfiles()
{
my ($indir, $incvs) = @_;
for my $n (keys (%$incvs)) { delete $$indir{$n} }
return sort (keys (%$indir));
}
sub cvsclean()
{
my $dir = shift;
my (%dirsdir, %filesdir, %dirscvs, %filescvs);
my $dnam = $dir ? $dir : ".";
if (!opendir (DIR, $dnam)) {
print STDERR "Cannot enter \"".$dnam."\".\n";
return;
}
for my $fn (grep (!/^\.\.?$/, readdir (DIR))) {
if (-d $dir.$fn) {
$fn eq "CVS" or $dirsdir{$fn} = 1;
} else {
$filesdir{$fn} = 1;
}
}
closedir (DIR);
if (!open (FILE, "<".$dir."CVS/Entries")) {
print STDERR "No CVS information in \"".$dnam."\".\n";
return;
}
while (<FILE>) {
m%^D/([^/]+)/.*$% and $dirscvs{$1} = 1;
m%^/([^/]+)/.*$% and $filescvs{$1} = 1;
}
close (FILE);
if (open (FILE, "<".$dir."CVS/Entries.Log")) {
while (<FILE>) {
m%^A D/([^/]+)/.*$% and $dirscvs{$1} = 1;
m%^A /([^/]+)/.*$% and $filescvs{$1} = 1;
m%^R D/([^/]+)/.*$% and delete $dirscvs{$1};
m%^R /([^/]+)/.*$% and delete $filescvs{$1};
}
close (FILE);
}
for my $fn (&newfiles (\%filesdir, \%filescvs)) {
print ("F ".$dir.$fn."\n");
&rmrf ($dir.$fn);
}
for my $fn (&newfiles (\%dirsdir, \%dirscvs)) {
print ("D ".$dir.$fn."\n");
&rmrf ($dir.$fn);
}
for my $fn (sort (keys (%dirscvs))) {
&cvsclean ($dir.$fn."/");
}
}
&cvsclean ("");
-669
View File
@@ -1,669 +0,0 @@
#! /bin/sh
#
# cvs.sh
#
# This file contains support code from Makefile.common
# It defines a shell function for each known target
# and then does a case to call the correct function.
call_and_fix_autoconf()
{
$AUTOCONF || exit 1
if test -r configure.in.in ; then
perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
\\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
\\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
\\n rm -f \\\$CONFIG_STATUS.bak\\nfi\
\\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
fi
}
strip_makefile()
{
if test ! -f $makefile_wo; then
perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
fi
}
check_autotool_versions()
{
required_autoconf_version="2.53 or newer"
AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
case $AUTOCONF_VERSION in
Autoconf*2.5* | autoconf*2.5* ) : ;;
"" )
echo "*** AUTOCONF NOT FOUND!."
echo "*** KDE requires autoconf $required_autoconf_version"
exit 1
;;
* )
echo "*** YOU'RE USING $AUTOCONF_VERSION."
echo "*** KDE requires autoconf $required_autoconf_version"
exit 1
;;
esac
AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
case $AUTOHEADER_VERSION in
Autoconf*2.5* | autoheader*2.5* ) : ;;
"" )
echo "*** AUTOHEADER NOT FOUND!."
echo "*** KDE requires autoheader $required_autoconf_version"
exit 1
;;
* )
echo "*** YOU'RE USING $AUTOHEADER_VERSION."
echo "*** KDE requires autoheader $required_autoconf_version"
exit 1
;;
esac
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
required_automake_version="1.6.1 or newer"
case $AUTOMAKE_STRING in
automake*1.5d* | automake*1.5* | automake*1.5-* )
echo "*** YOU'RE USING $AUTOMAKE_STRING."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9*) : ;;
"" )
echo "*** AUTOMAKE NOT FOUND!."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
unsermake* ) :
echo "*** YOU'RE USING UNSERMAKE."
echo "*** GOOD LUCK!! :)"
;;
* )
echo "*** YOU'RE USING $AUTOMAKE_STRING."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
esac
unset required_automake_version
}
cvs()
{
check_autotool_versions
acinclude_m4
### Make new subdirs and configure.in.
### The make calls could be optimized away here,
### with a little thought.
if test -r configure.in.in; then
rm -f configure.in
echo "*** Creating list of subdirectories"
create_subdirs
if test -r Makefile.am.in; then
echo "*** Creating Makefile.am"
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
else
Makefile_am
fi
fi
configure_files
echo "*** Creating configure.in"
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
else
configure_in
fi
fi
echo "*** Creating aclocal.m4"
$ACLOCAL $ACLOCALFLAGS || exit 1
echo "*** Creating configure"
call_and_fix_autoconf
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
echo "*** Creating config.h template"
$AUTOHEADER || exit 1
fi
echo "*** Creating Makefile templates"
$AUTOMAKE || exit 1
if test -z "$UNSERMAKE"; then
echo "*** Postprocessing Makefile templates"
perl -w admin/am_edit || exit 1
fi
if egrep "^cvs-local:" $makefile_am >/dev/null; then \
strip_makefile
$MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
fi
echo "*** Creating date/time stamp"
touch stamp-h.in
echo "*** Finished"
echo " Don't forget to run ./configure"
echo " If you haven't done so in a while, run ./configure --help"
}
dist()
{
check_autotool_versions
###
### First build all of the files necessary to do just "make"
###
acinclude_m4
if test -r configure.in.in; then
rm -f configure.in
create_subdirs
if test -r Makefile.am.in; then
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
else
Makefile_am
fi
fi
configure_files
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
else
configure_in
fi
fi
$ACLOCAL $ACLOCALFLAGS
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
echo "*** Creating config.h template"
$AUTOHEADER || exit 1
fi
$AUTOMAKE --foreign
perl -w admin/am_edit
call_and_fix_autoconf
touch stamp-h.in
if grep "^cvs-local:" $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo cvs-local top_srcdir=.
fi
###
### Then make messages
###
if test -d po; then
LIST=`find ./po -name "*.po"`
for i in $LIST; do
file2=`echo $i | sed -e "s#\.po#\.gmo#"`
msgfmt -o $file2 $i || touch $file2
done
fi
if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
fi
}
subdir_dist()
{
$ACLOCAL $ACLOCALFLAGS
$AUTOHEADER
$AUTOMAKE
perl -w ../admin/am_edit --path=../admin
call_and_fix_autoconf
touch stamp-h.in
}
configure_in()
{
rm -f configure.in configure.in.new
kde_use_qt_param=
test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
: > configure.in.new
for file in $list; do
echo "dnl =======================================================" >> configure.in.new
echo "dnl FILE: $file" >> configure.in.new
echo "dnl =======================================================" >> configure.in.new
echo "" >> configure.in.new
cat $file >> configure.in.new
done
echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
if test -f Makefile.am.in; then
subdirs=`cat subdirs`
for dir in $subdirs; do
vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
if test -f "$dir/configure.in"; then
echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
echo "fi" >> configure.in.new
fi
done
fi
echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
if test -n "$UNSERMAKE"; then
echo "AC_CONFIG_FILES([ Makefile.rules ])" >> configure.in.new
echo "AC_CONFIG_FILES([ Makefile.calls ])" >> configure.in.new
fi
if test -f inst-apps; then
topleveldirs=`cat inst-apps`
else
topleveldirs=
for dir in `ls -1d * | sort`; do
if test "$dir" != "debian" && test -d $dir; then
topleveldirs="$topleveldirs $dir"
fi
done
fi
for topleveldir in $topleveldirs; do
if test -f $topleveldir/configure.in; then
continue
fi
if test -f $topleveldir/Makefile.am; then :; else
continue
fi
mfs=`find $topleveldir -name Makefile.am -print | fgrep -v "/." | \
sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
for i in $mfs; do
echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
if test -n "$UNSERMAKE"; then
echo "AC_CONFIG_FILES([ $i.rules ])" >> configure.in.new
echo "AC_CONFIG_FILES([ $i.calls ])" >> configure.in.new
fi
done
done
files=`cat configure.files`
list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
for file in $list; do
echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new
done
if test -n "$UNSERMAKE"; then
echo "AC_CONFIG_FILES([ MakeVars ])" >> configure.in.new
fi
midfiles=`cat configure.files | fgrep "configure.in.mid"`
test -n "$midfiles" && cat $midfiles >> configure.in.new
echo "AC_OUTPUT" >> configure.in.new
modulename=
if test -f configure.in.in; then
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
fi
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
if test -n "$line"; then
modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
fi
sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
configure.in.new > configure.in && mv configure.in configure.in.new
fi
fi
if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
VERSION="\"3.3.0\""
fi
if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
modulename=`pwd`;
modulename=`basename $modulename`
esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
fi
if test -n "$kde_use_qt_param"; then
sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
configure.in.new > configure.in && mv configure.in configure.in.new
fi
sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
sed -e "s#@VERSION@#$VERSION#" > configure.in
botfiles=`cat configure.files | egrep "configure.in.bot"`
test -n "$botfiles" && cat $botfiles >> configure.in
cat $admindir/configure.in.bot.end >> configure.in
rm -f configure.in.new
}
configure_files()
{
echo "*** Creating configure.files"
admindir=NO
for i in . .. ../.. ../../..; do
if test -x $i/admin; then admindir=$i/admin; break; fi
done
rm -f configure.files
touch configure.files
if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
echo $admindir/configure.in.min >> configure.files
fi
test -f configure.in.in && echo configure.in.in >> configure.files
# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
if test -f inst-apps; then
inst=`cat inst-apps`
list=""
for i in $inst; do
list="$list `find $i/ -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
done
else
list=`find . -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
fi
for i in $list; do if test -f $i && test `dirname $i` != "." ; then
echo $i >> configure.files
fi; done
test -f configure.in.mid && echo configure.in.mid >> configure.files
test -f configure.in.bot && echo configure.in.bot >> configure.files
if test ! -s configure.files; then
echo "There are no files to build a configure. Please check your checkout."
exit 1
fi
}
create_subdirs()
{
if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then
# as many modules contain rules to create subdirs without any
# dependencies make won't create it unless there is no file.
# so we check if that's a dummy rule or one that works
rm -f subdirs.cvs.sh.$$
if test -f subdirs; then
mv subdirs subdirs.cvs.sh.$$
fi
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
if test -f subdirs.cvs.sh.$$; then
if test -s subdirs; then
rm subdirs.cvs.sh.$$
else
mv subdirs.cvs.sh.$$ subdirs
fi
fi
else
subdirs
fi
}
subdirs()
{
dirs=
idirs=
if test -f inst-apps; then
idirs=`cat inst-apps`
else
idirs=`ls -1 | sort`
fi
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
for i in $idirs; do
if test -f $i/Makefile.am; then
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
fi
done
: > ./_SUBDIRS
for d in $compilefirst; do
echo $d >> ./_SUBDIRS
done
(for d in $dirs; do
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
for s in $list; do
echo $s $d
done
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
for s in $list; do
echo $d $s
done
echo $d $d
done ) | tsort >> ./_SUBDIRS
for d in $compilelast; do
echo $d >> ./_SUBDIRS
done
if test -r subdirs && cmp -s subdirs _SUBDIRS; then
rm -f _SUBDIRS
fi
test -r _SUBDIRS && mv _SUBDIRS subdirs || true
}
Makefile_am()
{
if test -f Makefile.am.in; then
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
idirs=
dirs=
if test -f inst-apps; then
idirs=`cat inst-apps`
else
idirs=`cat subdirs`
fi
for i in $idirs; do
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
done
adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
if echo "$adds" | fgrep "*" >/dev/null ; then
adds=`ls -d -1 $adds 2>/dev/null`
fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
str='$(top_srcdir)/acinclude.m4:'
for add in $adds; do
str="$str \$(top_srcdir)/$add"
done
echo $str >> Makefile.am.in.adds
else
cat Makefile.am.in > Makefile.am.in.adds
fi
if test -n "$UNSERMAKE"; then
cat Makefile.am.in.adds > Makefile.am
topsubdirs=
for i in $compilefirst $dirs $compilelast; do
vari=`echo $i | sed -e "s,[-+],_,g"`
echo "if $vari""_SUBDIR_included" >> Makefile.am
echo "$vari""_SUBDIR=$i" >> Makefile.am
echo "endif" >> Makefile.am
topsubdirs="$topsubdirs \$($vari""_SUBDIR)"
done
echo "SUBDIRS=$topsubdirs" >> Makefile.am
else
cat Makefile.am.in.adds | \
sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
fi
rm Makefile.am.in.adds
fi
}
acinclude_m4()
{
echo "*** Creating acinclude.m4"
adds=
if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
strip_makefile
rm -f acinclude.m4
adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
if echo $adds | fgrep "*" >/dev/null ; then
adds=`ls -d -1 $adds 2>/dev/null`
else
$MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
fi
else
rm -f acinclude.m4
fi
# if it wasn't created up to now, then we do it better
if test ! -f acinclude.m4; then
cat admin/acinclude.m4.in admin/libtool.m4.in $adds > acinclude.m4
fi
}
cvs_clean()
{
if test -d CVS; then :; else
echo "You don't have a toplevel CVS directory."
echo "You most certainly didn't use cvs to get these sources."
echo "But this function depends on cvs's information."
exit 1
fi
perl $admindir/cvs-clean.pl
}
package_merge()
{
catalogs=$POFILES
for cat in $catalogs; do
msgmerge -o $cat.new $cat $PACKAGE.pot
if test -s $cat.new; then
grep -v "\"POT-Creation" $cat.new > $cat.new.2
grep -v "\"POT-Creation" $cat >> $cat.new.1
if diff $cat.new.1 $cat.new.2; then
rm $cat.new
else
mv $cat.new $cat
fi
rm -f $cat.new.1 $cat.new.2
fi
done
}
package_messages()
{
rm -rf po.backup
mkdir po.backup
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
cat po/$i > po.backup/backup_$i
touch -r po/$i po.backup/backup_$i
rm po/$i
done
podir=${podir:-$PWD/po}
files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
dirs=`for i in $files; do echo \`dirname $i\`; done`
tmpname="$PWD/messages.log"
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
export EXTRACTRC PREPARETIPS
for subdir in $dirs; do
test -z "$VERBOSE" || echo "Making messages in $subdir"
(cd $subdir
if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
$EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
else
candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
if test -n "$candidates"; then
echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
fi
fi
if test -n "`grep -r KAboutData *.c* *.C* 2>/dev/null`"; then
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
else echo " " > _translatorinfo.cpp
fi
perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
kdepotpath=${includedir:-${KDEDIR:-`kde-config --prefix`}/include}/kde.pot
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" \
XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -kaliasLocale -x $kdepotpath" messages
exit_code=$?
if test "$exit_code" != 0; then
echo "make exit code: $exit_code"
fi
) 2>&1 | grep -v '^make\[1\]' > $tmpname
test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
rm -f $subdir/_translatorinfo.cpp
rm -f $subdir/_transMakefile
done
rm -f $tmpname
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
test -f po/$i || echo "disappeared: $i"
done
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
msgmerge -q -o po/$i po/$i po/$i
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
if test -f po.backup/$i && test -n "`diff temp.pot po.backup/$i`"; then
echo "will update $i"
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po.backup/$backup_$i > po/$i.new && mv po/$i.new po.backup/backup_$i
msgmerge -q po.backup/backup_$i po/$i > temp.pot
mv temp.pot po/$i
else
if test -f po.backup/backup_$i; then
test -z "$VERBOSE" || echo "I'm restoring $i"
mv po.backup/backup_$i po/$i
rm po.backup/$i
else
echo "will add $i"
fi
fi
done
rm -f temp.pot
rm -rf po.backup
}
unset LC_ALL || :
unset LANG || :
unset LC_CTYPE || :
unset LANGUAGE || :
unset CDPATH || :
admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
test "x$admindir" = "x$0" && admindir=.
test "x$MAKE" = x && MAKE=make
makefile_am=Makefile.am
makefile_wo=Makefile.am.wo
if test -f Makefile.am.in; then
makefile_am=Makefile.am.in
makefile_wo=Makefile.am.in.wo
rm -f $makefile_wo
fi
# Suck in the AUTOCONF detection code
. $admindir/detect-autoconf.sh
###
### Main
###
arg=`echo $1 | tr '\-.' __`
case $arg in
cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 ) $arg ;;
configure ) call_and_fix_autoconf ;;
* ) echo "Usage: cvs.sh <target>"
echo "Target can be one of:"
echo " cvs cvs-clean dist"
echo " configure.in configure.files"
echo " package-merge package-messages"
echo ""
echo "Usage: anything but $1"
exit 1 ;;
esac
if test -f $makefile_wo; then
rm $makefile_wo
fi
exit 0
-43
View File
@@ -1,43 +0,0 @@
#!/usr/bin/perl -w
use Shell qw(mv cp mkdir rm) ;
use File::Find;
use Cwd;
$origPwd = `pwd`;
chomp $origPwd;
$kde_prefix = "/usr";
$sysconfdir = "/etc";
$kde_includedir = "$kde_prefix/include/kde";
$infodir = "$kde_prefix/share/info";
$mandir = "$kde_prefix/share/man";
$qtdir = "/usr/share/qt3";
$kde_cgidir = "$kde_prefix/lib/cgi-bin";
$kde_confdir = "$sysconfdir/kde3";
$kde_htmldir = "$kde_prefix/share/doc/kde/HTML";
if (defined $ENV{DEB_BUILD_OPTIONS} &&
$ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) {
$enable_debug="--enable-debug=full";
} else {
$enable_debug="--disable-debug";
}
if (@ARGV && $ARGV[0] eq 'echodirs') {
print STDOUT "export kde_prefix=$kde_prefix\n";
print STDOUT "export sysconfdir=$sysconfdir\n";
print STDOUT "export kde_includedir=$kde_includedir\n";
print STDOUT "export infodir=$infodir\n";
print STDOUT "export mandir=$mandir\n";
print STDOUT "export qtdir=$qtdir\n";
print STDOUT "export kde_cgidir=$kde_cgidir\n";
print STDOUT "export kde_confdir=$kde_confdir\n";
print STDOUT "export kde_htmldir=$kde_htmldir\n";
print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n";
exit
}
-441
View File
@@ -1,441 +0,0 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
# Copyright 1999, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# `libtool' can also be set to `yes' or `no'.
depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. This file always lives in the current directory.
# Also, the AIX compiler puts `$object:' at the start of each line;
# $object doesn't have directory information.
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Must come before tru64.
# Intel's C compiler understands `-MD -MF file'. However
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 AIX compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
tmpdepfile1="$object.d"
tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
if test "$libtool" = yes; then
"$@" -Wc,-MD
else
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
if test -f "$tmpdepfile1"; then
tmpdepfile="$tmpdepfile1"
else
tmpdepfile="$tmpdepfile2"
fi
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a space and a tab in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
test -z "$dashmflag" && dashmflag=-M
( IFS=" "
case " $* " in
*" --mode=compile "*) # this is libtool, let us make it quiet
for arg
do # cycle over the arguments
case "$arg" in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
# X makedepend
(
shift
cleared=no
for arg in "$@"; do
case $cleared in no)
set ""; shift
cleared=yes
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift;;
-*)
;;
*)
set fnord "$@" "$arg"; shift;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tail +3 "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
( IFS=" "
case " $* " in
*" --mode=compile "*)
for arg
do # cycle over the arguments
case $arg in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" -E |
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the proprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
( IFS=" "
case " $* " in
*" --mode=compile "*)
for arg
do # cycle over the arguments
case $arg in
"--mode=compile")
# insert --quiet before "--mode=compile"
set fnord "$@" --quiet
shift # fnord
;;
esac
set fnord "$@" "$arg"
shift # fnord
shift # "$arg"
done
;;
esac
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
) &
proc=$!
"$@"
stat=$?
wait "$proc"
if test "$stat" != 0; then exit $stat; fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
-19
View File
@@ -1,19 +0,0 @@
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4
$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in
$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES)
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh
$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am
$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs
# defining default rules for files that may not be present
$(top_srcdir)/Makefile.am.in:
$(CONF_FILES):
-59
View File
@@ -1,59 +0,0 @@
#! /bin/sh
# Global variables...
AUTOCONF="autoconf"
AUTOHEADER="autoheader"
AUTOM4TE="autom4te"
AUTOMAKE="automake"
ACLOCAL="aclocal"
# Please add higher versions first. The last version number is the minimum
# needed to compile KDE. Do not forget to include the name/version #
# separator if one is present, e.g. -1.2 where - is the separator.
KDE_AUTOCONF_VERS="-2.58 -2.57 257 -2.54 -2.53a -2.53 -2.52 -2.5x"
KDE_AUTOMAKE_VERS="-1.7 17 -1.6"
# We don't use variable here for remembering the type ... strings. Local
# variables are not that portable, but we fear namespace issues with our
# includer.
checkAutoconf()
{
for kde_autoconf_version in $KDE_AUTOCONF_VERS; do
if test -x "`$WHICH $AUTOCONF$kde_autoconf_version 2>/dev/null`"; then
AUTOCONF="`$WHICH $AUTOCONF$kde_autoconf_version`"
AUTOHEADER="`$WHICH $AUTOHEADER$kde_autoconf_version`"
AUTOM4TE="`$WHICH $AUTOM4TE$kde_autoconf_version`"
break
fi
done
}
checkAutomake ()
{
for kde_automake_version in $KDE_AUTOMAKE_VERS; do
if test -x "`$WHICH $AUTOMAKE$kde_automake_version 2>/dev/null`"; then
AUTOMAKE="`$WHICH $AUTOMAKE$kde_automake_version`"
ACLOCAL="`$WHICH $ACLOCAL$kde_automake_version`"
break
fi
done
if test -n "$UNSERMAKE"; then
AUTOMAKE="$UNSERMAKE"
fi
}
checkWhich ()
{
WHICH=""
for i in "type -p" "which" "type" ; do
T=`$i sh 2> /dev/null`
test -x "$T" && WHICH="$i" && break
done
}
checkWhich
checkAutoconf
checkAutomake
export WHICH AUTOHEADER AUTOCONF AUTOM4TE AUTOMAKE ACLOCAL
-276
View File
@@ -1,276 +0,0 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd=$cpprog
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "$0: no input file specified" >&2
exit 1
else
:
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f "$src" ] || [ -d "$src" ]
then
:
else
echo "$0: $src does not exist" >&2
exit 1
fi
if [ x"$dst" = x ]
then
echo "$0: no destination specified" >&2
exit 1
else
:
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d "$dst" ]
then
dst=$dst/`basename "$src"`
else
:
fi
fi
## this sed command emulates the dirname command
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS=$oIFS
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp=$pathcomp$1
shift
if [ ! -d "$pathcomp" ] ;
then
$mkdirprog "$pathcomp"
else
:
fi
pathcomp=$pathcomp/
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd "$dst" &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename "$dst"`
else
:
fi
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/#inst.$$#
rmtmp=$dstdir/#rm.$$#
# Trap to clean up temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
# Move or copy the file name to the temp name
$doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
# Now remove or move aside any old file at destination location. We try this
# two ways since rm can't unlink itself on some systems and the destination
# file might be busy for other reasons. In this case, the final cleanup
# might fail but the new file should still install successfully.
{
if [ -f "$dstdir/$dstfile" ]
then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
{
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi &&
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit
}
-5858
View File
File diff suppressed because it is too large Load Diff
-6350
View File
File diff suppressed because it is too large Load Diff
-336
View File
@@ -1,336 +0,0 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing 0.4 - GNU automake"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them.
You can get \`$1Help2man' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
# We have makeinfo, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is missing on your system. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
tar)
shift
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
-111
View File
@@ -1,111 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
errstatus=0
dirmode=""
usage="\
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
echo "$usage" 1>&2
exit 0
;;
-m) # -m PERM arg
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
dirmode=$1
shift
;;
--) # stop option processing
shift
break
;;
-*) # unknown option
echo "$usage" 1>&2
exit 1
;;
*) # first non-opt arg
break
;;
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
case $dirmode in
'')
if mkdir -p -- . 2>/dev/null; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
fi
;;
*)
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
fi
;;
esac
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=""
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# End:
# mkinstalldirs ends here
-371
View File
@@ -1,371 +0,0 @@
#!/usr/bin/perl -w
# Check namespace cleanness of a library.
# Allowed symbols are passed as arguments.
# They may have trailing * = wildcard.
# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
# Symbols are listed as full function unmangled names without arguments,
# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
# and all symbols in namespace/class nspace.
# If an argument has comma in it, it's a filename of a file containing
# allowed symbols, one per line.
$thisProg = "$0"; # This programs name
$library = "";
$allowed_symbols = "";
$debug = 0;
$allowed_weak = "";
$weak_specified = 0;
while( defined( $ARGV[ 0 ] ))
{
$_ = shift;
if( /^--verbose$|^-v$/ )
{
$debug = 1;
}
elsif( /^--help$|^-h$/ )
{
print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
"\n",
"Check if the given library has only allowed public symbols.\n",
"\n",
" --allowweak=[symbol] allow only these weak symbols\n",
" -v, --verbose verbosely list files processed\n",
" -h, --help print this help, then exit\n";
exit 0;
}
elsif( /^--allowweak=(.*)$/ )
{
$allowed_weak .= " " . $1;
$weak_specified = 1;
}
elsif( /^--allowweak$/ ) # simply list all weak
{
$allowed_weak .= " ";
$weak_specified = 1;
}
elsif( /^--*/ )
{
die "Invalid argument!\n";
}
else
{
if( ! $library )
{
$library = $_;
}
else
{
$allowed_symbols .= " " . $_;
}
}
}
if( ! $weak_specified )
{
$allowed_weak = "*";
# allow all weak symbols by default
# instances of templates and similar stuff - unfortunately includes also things from other libraries,
# so it cannot be on by default
}
print STDERR "library:" . $library . "\n" if $debug;
print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
$default_symbols = "_fini _init"; # system symbols
# on my system, every .so has :
# A _DYNAMIC
# A _GLOBAL_OFFSET_TABLE_
# A __bss_start
# A _edata
# A _end
# T _fini
# T _init
# no need to list A symbols in $default_symbols
print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
print STDOUT "Namespace cleanness check for " . $library . " :\n";
$lib_file = "";
if( $library =~ /\.la$/ )
{
# get the real library file from .la
open( FILEIN, $library ) || die "Couldn't open $! !\n";
while( $line = <FILEIN> )
{
if( $line =~ /library_names=\'([^ ]*).*/o )
{
$lib_file = $1;
}
}
close( FILEIN );
if( ! $lib_file )
{
print STDERR "Library file not found in .la file!\n";
exit 1;
}
my $libpath = $library;
$libpath =~ s%[^/]*$%%;
if( -e $libpath . ".libs/" . $lib_file )
{
$lib_file = $libpath . ".libs/" . $lib_file;
}
else
{
$lib_file = $libpath . $lib_file;
}
}
else
{
$lib_file = $library;
}
print STDERR "libfile: ". $lib_file . "\n" if $debug;
$allowed_symbols .= " " . $default_symbols;
sub process_symbols($\@\%\@);
@wildcards = ();
%exacts = ();
@regwildcards = ();
process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
@weak_wildcards = ();
%weak_exacts = ();
@weak_regwildcards = ();
process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
# grep is for stripping not exported symbols, which don't have address (=first column)
$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
# TODO how portable is this nmcheck stuff?
print STDERR "nm command:" . $nm_command . "\n" if $debug;
open( FILEIN, $nm_command ) || die "nm command failed\n";
my $exit_code = 0;
while( $line = <FILEIN> )
{
my $type;
my $symbol;
if( $line =~ /^[^ ]* (.) (.*)$/o )
{
$type = $1;
$symbol = $2;
}
else
{
die "Invalid line: " . $line . "\n";
}
print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
if( $type eq "A" )
{ # these should be system symbols, so ignore them
next;
}
my $orig_symbol = $symbol;
if( $symbol =~ /\(anonymous namespace\)/o )
{ # TODO tell to prefer named namespaces? (shorter symbols)
next;
}
# strip prefixes
# the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
$symbol =~ s/^typeinfo for (.*)$/$1::/o;
$symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
$symbol =~ s/^typeinfo name for (.*)$/$1::/o;
$symbol =~ s/^vtable for (.*)$/$1::/o;
$symbol =~ s/^guard variable for (.*)$/$1::/o;
$symbol =~ s/^reference temporary for (.*)$/$1::/o;
$symbol =~ s/^VTT for (.*)$/$1::/o;
$symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
$symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
# templates seem to have also return types mangled in their name, and nm prints it too
# they have also template arguments in the symbol
# get rid of both of those
while( $symbol =~ /<.*>/o )
{
$symbol =~ s/<[^<>]*>//o; # strip innermost <>
}
if( $symbol !~ /operator\(\)/o )
{
$symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it
}
else
{
$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it
}
$symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc.
if( $symbol =~ /(^|:| )operator /o )
{
$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
}
else
{
$symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type)
}
# print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
my $found = 0;
if( $exacts{ $symbol } )
{
$found = 1;
}
if( ! $found )
{
for my $wild ( @wildcards )
{
if( index( $symbol, $wild ) == 0 )
{
$found = 1;
last;
}
}
}
if( ! $found )
{
for my $wild ( @regwildcards )
{
if( $symbol =~ /^$wild$/ )
{
$found = 1;
last;
}
}
}
if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
{
if( $weak_exacts{ $symbol } )
{
$found = 1;
}
if( ! $found )
{
for my $wild ( @weak_wildcards )
{
if( index( $symbol, $wild ) == 0 )
{
$found = 1;
last;
}
}
}
if( ! $found )
{
for my $wild ( @weak_regwildcards )
{
if( $symbol =~ /^$wild$/ )
{
$found = 1;
last;
}
}
}
}
if( ! $found )
{
print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
$exit_code = 1;
}
}
close( FILEIN );
print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
exit $exit_code;
sub process_symbols($\@\%\@)
{
my $allowed_symbols = $_[ 0 ];
my $wildcards_ref = $_[ 1 ];
my $exacts_ref = $_[ 2 ];
my $regwildcards_ref = $_[ 3 ];
$allowed_symbols =~ s/^ *//o; # strip whitespace
$allowed_symbols =~ s/ *$//o;
if( $allowed_symbols eq "NONE" )
{
$allowed_symbols = "";
}
my @symbols1 = split( ' ', $allowed_symbols );
my $i = 0;
my @symbols2 = ();
while( defined( $symbols1[ $i ] ))
{
my $symbol = $symbols1[ $i ];
if( $symbol =~ /\./ ) # dot in name -> file
{
open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
while( $line = <SYMIN> )
{
$line =~ s/^\s*//o; # strip whitespace
$line =~ s/\s*$//o;
if( $line !~ /^$/o # empty line
&& $line !~ /^\s*#/ ) # comment line starting with #
{
$symbols2[ $#symbols2 + 1 ] = $line;
}
}
close( SYMIN );
}
else
{
$symbols2[ $#symbols2 + 1 ] = $symbol;
}
$i++;
}
$i = 0;
while( defined( $symbols2[ $i ] ))
{
my $symbol = $symbols2[ $i ];
if( $symbol =~ /__/
|| $symbol =~ /^_[A-Z]/ )
{ # ISO C++ 2.10.2
die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
}
elsif( $symbol eq "main"
|| $symbol eq "main*" )
{
die "Symbol main is not allowed!\n";
}
if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it
&& $symbol !~ /operator\*$/o )
{
print STDERR "wildcard:" . $symbol . "\n" if $debug;
$wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
}
elsif( $symbol =~ /\*$/o
&& ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
&& $symbol !~ /^\*/o
&& $symbol !~ /operator\*$/o )
{
print STDERR "regwildcard:" . $symbol . "\n" if $debug;
$symbol =~ s/\*/\.\*/go; # change * to .* (regexp)
$regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
}
else
{
print STDERR "exact:" . $symbol . "\n" if $debug;
$exacts_ref->{ $symbol } = 1;
}
$i++;
}
}
-192
View File
@@ -1,192 +0,0 @@
### -*- autoconf -*-
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
dnl Boston, MA 02111-1307, USA.
AC_DEFUN([KDE_CHECK_MICO],
[
AC_REQUIRE([KDE_CHECK_LIBDL])
AC_REQUIRE([KDE_MISC_TESTS])
AC_MSG_CHECKING(for MICO)
if test -z "$MICODIR"; then
kde_micodir=/usr/local
else
kde_micodir="$MICODIR"
fi
AC_ARG_WITH(micodir,
[ --with-micodir=micodir where mico is installed ],
kde_micodir=$withval,
kde_micodir=$kde_micodir
)
AC_CACHE_VAL(kde_cv_mico_incdir,
[
mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes"
AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir)
])
kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'`
if test ! -r $kde_micodir/include/CORBA.h; then
AC_MSG_ERROR([No CORBA.h found, specify another micodir])
fi
AC_MSG_RESULT($kde_micodir)
MICO_INCLUDES=-I$kde_micodir/include
AC_SUBST(MICO_INCLUDES)
MICO_LDFLAGS=-L$kde_micodir/lib
AC_SUBST(MICO_LDFLAGS)
micodir=$kde_micodir
AC_SUBST(micodir)
AC_MSG_CHECKING([for MICO version])
AC_CACHE_VAL(kde_cv_mico_version,
[
AC_LANG_C
cat >conftest.$ac_ext <<EOF
#include <stdio.h>
#include <mico/version.h>
int main() {
printf("MICO_VERSION=%s\n",MICO_VERSION);
return (0);
}
EOF
ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest'
if AC_TRY_EVAL(ac_compile); then
if eval `./conftest 2>&5`; then
kde_cv_mico_version=$MICO_VERSION
else
AC_MSG_ERROR([your system is not able to execute a small application to
find MICO version! Check $kde_micodir/include/mico/version.h])
fi
else
AC_MSG_ERROR([your system is not able to compile a small application to
find MICO version! Check $kde_micodir/include/mico/version.h])
fi
])
dnl installed MICO version
mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "x$1" = "x"; then
req_version="2.3.0"
else
req_version=$1
fi
dnl required MICO version
req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "$mico_v_maj" -lt "$req_v_maj" || \
( test "$mico_v_maj" -eq "$req_v_maj" && \
test "$mico_v_mid" -lt "$req_v_mid" ) || \
( test "$mico_v_mid" -eq "$req_v_mid" && \
test "$mico_v_min" -lt "$req_v_min" )
then
AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \
at least is required. You should upgrade MICO.])
else
AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)])
fi
LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL"
AC_SUBST(LIBMICO)
if test -z "$IDL"; then
IDL='$(kde_bindir)/cuteidl'
fi
AC_SUBST(IDL)
IDL_DEPENDENCIES='$(kde_includes)/CUTE.h'
AC_SUBST(IDL_DEPENDENCIES)
idldir="\$(includedir)/idl"
AC_SUBST(idldir)
])
AC_DEFUN([KDE_CHECK_MINI_STL],
[
AC_REQUIRE([KDE_CHECK_MICO])
AC_MSG_CHECKING(if we use mico's mini-STL)
AC_CACHE_VAL(kde_cv_have_mini_stl,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
kde_save_cxxflags="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $MICO_INCLUDES"
AC_TRY_COMPILE(
[
#include <mico/config.h>
],
[
#ifdef HAVE_MINI_STL
#error "nothing"
#endif
],
kde_cv_have_mini_stl=no,
kde_cv_have_mini_stl=yes)
CXXFLAGS="$kde_save_cxxflags"
AC_LANG_RESTORE
])
if test "x$kde_cv_have_mini_stl" = "xyes"; then
AC_MSG_RESULT(yes)
$1
else
AC_MSG_RESULT(no)
$2
fi
])
])
AC_DEFUN([KDE_CHECK_ANSI],
[
])
AC_DEFUN([KDE_CHECK_INSURE],
[
AC_ARG_ENABLE(insure, [ --enable-insure use insure++ for debugging [default=no]],
[
if test $enableval = "no"; dnl
then ac_use_insure="no"
else ac_use_insure="yes"
fi
], [ac_use_insure="no"])
AC_MSG_CHECKING(if we will use Insure++ to debug)
AC_MSG_RESULT($ac_use_insure)
if test "$ac_use_insure" = "yes"; dnl
then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "????
fi
])
AC_DEFUN([KDE_CHECK_NEWLIBS],
[
])
-143
View File
@@ -1,143 +0,0 @@
#! /bin/sh
# ylwrap - wrapper for lex/yacc invocations.
# Copyright 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Usage:
# ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
# * INPUT is the input file
# * OUTPUT is file PROG generates
# * DESIRED is file we actually want
# * PROGRAM is program to run
# * ARGS are passed to PROG
# Any number of OUTPUT,DESIRED pairs may be used.
# The input.
input="$1"
shift
case "$input" in
[\\/]* | ?:[\\/]*)
# Absolute path; do nothing.
;;
*)
# Relative path. Make it absolute.
input="`pwd`/$input"
;;
esac
# The directory holding the input.
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
# Quote $INPUT_DIR so we can use it in a regexp.
# FIXME: really we should care about more than `.' and `\'.
input_rx=`echo "$input_dir" | sed -e 's,\\\\,\\\\\\\\,g' -e 's,\\.,\\\\.,g'`
echo "got $input_rx"
pairlist=
while test "$#" -ne 0; do
if test "$1" = "--"; then
shift
break
fi
pairlist="$pairlist $1"
shift
done
# The program to run.
prog="$1"
shift
# Make any relative path in $prog absolute.
case "$prog" in
[\\/]* | ?:[\\/]*) ;;
*[\\/]*) prog="`pwd`/$prog" ;;
esac
# FIXME: add hostname here for parallel makes that run commands on
# other machines. But that might take us over the 14-char limit.
dirname=ylwrap$$
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
mkdir $dirname || exit 1
cd $dirname
$prog ${1+"$@"} "$input"
status=$?
if test $status -eq 0; then
set X $pairlist
shift
first=yes
# Since DOS filename conventions don't allow two dots,
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
y_tab_nodot="no"
if test -f y_tab.c || test -f y_tab.h; then
y_tab_nodot="yes"
fi
while test "$#" -ne 0; do
from="$1"
# Handle y_tab.c and y_tab.h output by DOS
if test $y_tab_nodot = "yes"; then
if test $from = "y.tab.c"; then
from="y_tab.c"
else
if test $from = "y.tab.h"; then
from="y_tab.h"
fi
fi
fi
if test -f "$from"; then
# If $2 is an absolute path name, then just use that,
# otherwise prepend `../'.
case "$2" in
[\\/]* | ?:[\\/]*) target="$2";;
*) target="../$2";;
esac
# Edit out `#line' or `#' directives. We don't want the
# resulting debug information to point at an absolute srcdir;
# it is better for it to just mention the .y file with no
# path.
sed -e "/^#/ s,$input_rx,," "$from" > "$target" || status=$?
else
# A missing file is only an error for the first file. This
# is a blatant hack to let us support using "yacc -d". If -d
# is not specified, we don't want an error when the header
# file is "missing".
if test $first = yes; then
status=1
fi
fi
shift
shift
first=no
done
else
status=$?
fi
# Remove the directory.
cd ..
rm -rf $dirname
exit $status
-74
View File
@@ -1,74 +0,0 @@
# -*-shell-script-*-
[Meta]
RootName: @kmess.sourceforge.net/kmess:$SOFTWAREVERSION
DisplayName: KMess
ShortName: kmess
SoftwareVersion: 1.4
## didn't get this working:
# SoftwareVersion: @VERSION@
Maintainer: The KMess Developers
Packager: Diederik van der Boor
Summary: MSN Messenger client for KDE
URL: http://kmess.sourceforge.net/
License: GNU General Public License, Version 2
AutopackageTarget: 1.0
[Description]
A MSN Messenger Client for KDE
KMess is a MSN Messenger client for Linux. It enables Linux
users to chat with friends online who are using MSN Messenger
in Windows or Mac OS. The strength of KMess is it's integration
with the KDE desktop environment, focus on MSN Messenger specific
features and an easy-to-use interface.
[BuildPrepare]
# The bogus deps solve our warnings about older distro incompatiblity
export APBUILD_BOGUS_DEPS='art_lgpl art_lgpl_2 dl expat fontconfig freetype GL ICE idn kdefx kdesu kwalletclient m nsl png pthread resolv SM util X11 Xcursor Xft Xi Xinerama Xmu Xrandr Xrender'
# Xrender is suggested by makeinstaller,
# the XScreenSaver stuff can be either in libXss or libXext
export APBUILD_STATIC='Xrender Xext Xss'
prepareBuild
[BuildUnprepare]
unprepareBuild
[Imports]
# tells autopackage to include all files created by "make install"
# make sure the symlink does not get installed. recreate it during Install
find . -name common -type d -o -type l -exec rm -Rf {} \;
echo "*" | import
[Prepare]
# KMess still supports 3.1 with #ifdef KDE_IS_VERSION(..) hacks.
# Because we want to have a clean binary, use 3.2 as minimum requirement.
require @kde.org/kdelibs 3.2
[Install]
outputStatus "Installing application..."
# note: it's not possible to use deep paths like share/apps/kmess/pics,
# autopackage 1.0.4 does not handle those like I want
installExe bin/*
installData share/apps/ share/doc/ share/sounds/
linkFile --silent "`getKdePrefix`/share/doc/HTML/en/common" "$PREFIX/share/doc/HTML/en/kmess/common"
installIcon share/icons/hicolor/ share/icons/locolor/
installDesktop "Internet" share/applications/kde/kmess.desktop
installLocale share/locale/
# Make sure KDE can find our eventsrc file
outputStatus "Installing kde system notifications plugin..."
if [ "`id -u`" != 0 ]; then
# user install
linkFile --silent "$PREFIX/share/apps/kmess/eventsrc" "$HOME/.kde/share/apps/kmess/eventsrc"
else
# system wide install.
# check if we're installing to a place KDE does not look for
if ! isInList "$PREFIX" "$KDEDIRS:`getKdePrefix`"; then
linkFile --silent "$PREFIX/share/apps/kmess/eventsrc" "`getKdePrefix`/share/apps/kmess/eventsrc"
fi
fi
[Uninstall]
uninstallFromLog
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
QCATOOL_EXEC=$(which qcatool2 2>/dev/null)
if [ ! -x "$QCATOOL_EXEC" ]; then
echo 0
exit
fi
qcatool2 plugins | grep -q qca-ossl && echo 1 || echo 0
+24
View File
@@ -0,0 +1,24 @@
/**
* KMess configuration file
*
* The value for these defines is controlled by CMake at configuration time.
* NOTE: This file needs to be written in C, as it will be included by C source files too.
*/
/* Define the application version */
#define KMESS_VERSION "${KMESS_VERSION}"
/* Define if debug output should be enabled */
#define KMESS_DEBUG ${KMESS_ENABLE_DEBUG_OUTPUT}
/* Define the fallback prefix */
#define KMESS_PREFIX "${CMAKE_INSTALL_PREFIX}"
/* Define if you have the XScreenSaver extension */
#cmakedefine HAVE_XSCREENSAVER ${HAVE_XSCREENSAVER}
/* Define if LikeBack is not needed */
#define KMESS_DISABLE_LIKEBACK ${KMESS_DISABLE_LIKEBACK}
/* Define whether to enable Ink support (using GIFLib) */
#define KMESS_ENABLE_INK ${HAVE_LIBGIF}
+35
View File
@@ -0,0 +1,35 @@
#!/bin/sh
cd `dirname $0`/..
# second sed expression fixes Mac OS X 10.4
appver="`egrep 'SET.*KMESS_VERSION' CMakeLists.txt | sed -re 's/.*"([^"]+)".*/\1/'`"
date="`date +%Y%m%d`"
# Make sure we have the right repository
if [ ! -f kmess.kdevelop ]; then
echo -n "svn (unknown)"
exit
fi
# Display normal version if subversion is not installed
if [ ! -x `which svnversion 2>/dev/null` ]; then
echo -n "$appver"
exit
fi
# Display subversion version if this is a working copy
svnver=`LANG=C svnversion`
# see if this is not a repository.
if [ "$svnver" = "exported" ]; then
if [ -z "$KMESS_VER" ]; then
echo -n "$appver";
else
echo -n "$KMESS_VER";
fi
exit;
fi
# display subversion version and date
/bin/echo -n "$appver-svn (`svnversion` >= $date)"
+24
View File
@@ -0,0 +1,24 @@
# This file is included here because the standard FindGIF.cmake file
# requires the CHECK_STRUCT_MEMBER macro. It wasn't on my PC, at least, so
# I include a copy of the macro here for giflib to use.
MACRO (CHECK_STRUCT_MEMBER _STRUCT _MEMBER _HEADER _RESULT)
SET(_INCLUDE_FILES)
FOREACH (it ${_HEADER})
SET(_INCLUDE_FILES "${_INCLUDE_FILES}#include <${it}>\n")
ENDFOREACH (it)
SET(_CHECK_STRUCT_MEMBER_SOURCE_CODE "
${_INCLUDE_FILES}
int main()
{
${_STRUCT}* tmp;
tmp->${_MEMBER};
return 0;
}
")
CHECK_CXX_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT})
ENDMACRO (CHECK_STRUCT_MEMBER)
Vendored Executable
+299
View File
@@ -0,0 +1,299 @@
#!/bin/bash
#
# configure - description
# -------------------
# begin : Wed Apr 9 2008
# copyright : (C) 2008 by Diederik van der Boor
# email : "vdboor" --at-- "codingdomain.com"
#
#
# Emulation script of GNU ./configure to make compiling of KDE 4 software more standard.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Note for packagers:
# this script is only written to provide a more user friendly
# interaction between the command line and the cmake invocation.
# If you are familiar with CMake, you may call it directly too.
#
# ------------------------------
#
# Variables
#
KDE4_PREFIX=""
DEFAULT_PREFIX="/usr/local"
# auto-detect KDE Installation on the Mac.
KDE4_CONFIG=""
for i in `which kde4-config` /opt/local/bin/kde4-config
do
if [ -x "$i" ]; then
KDE4_CONFIG="$i"
break
fi
done
# auto-detect default prefix
if [ -n "$KDE4_CONFIG" ]; then
KDE4_PREFIX=`$KDE4_CONFIG --prefix`
DEFAULT_PREFIX="$KDE4_PREFIX"
fi
# To configure
PREFIX=$DEFAULT_PREFIX
BUILD_TYPE="relwithdebinfo"
BUILD_DIR="build"
REAL_BUILD_DIR=""
DEBUG=0
# Globals
cd `dirname $0`
SRC_DIR="$PWD"
KMESS_VER="`./cmake/get-svn-version.sh`"
# ------------------------------
#
# Print the help page
#
function print_help
{
echo "configure script for package: KMess $KMESS_VER
Usage: ./configure [arguments]
This is an emulation script of GNU ./configure to give compiling of KDE 4
software a more familiar usage. Experienced users are free to use cmake
instead. This configure script should provide everything you need though.
Configuration:
-h, --help display this help and exit
Installation directories:
--prefix=PREFIX install files in PREFIX. default: $DEFAULT_PREFIX
Optional Features:
--enable-debug-output enable debugging output. default=no
--build-dir=PATH path to store the build files. default: ./build
--build-type=TYPE define the build configuration to use, values:
release - standard release
relwithdebinfo - release with debug info
minsizerel - minimum size release
debug - debug build
debugfull - full debug build
After running ./configure, you can type 'make' to build this project.
"
# Hint for kde installation
if [ "$KDE4_PREFIX" != "" ]; then
if [ "$KDE4_PREFIX" != "$PREFIX" ]; then
echo " NOTICE:
The installation prefix is set to '$PREFIX'. You may want to set
the prefix to '$KDE4_PREFIX' to install the files in the KDE 4 folder.
"
fi
else
echo " WARNING:
kde4-config was not found. Please verify that
you've installed the KDE 4 development packages!
"
fi
}
# ------------------------------
#
# Run cmake
#
function run_cmake
{
# Check prefix
if [ ! -e "$PREFIX" ]; then
echo "$0: installation directory not found: $PREFIX" >&2
exit 1
fi
# Check build type
case "$BUILD_TYPE" in
debugfull) DEBUG=1 ;;
release|relwithdebinfo|minsizerel|debug) ;;
*)
echo "$0: invalid build type: $BUILD_TYPE" >&2
exit 1
;;
esac
# Make the directory,
# and switch so build messages are ok.
test -e "$BUILD_DIR" || mkdir "$BUILD_DIR" || exit 1
cd "$BUILD_DIR"
REAL_BUILD_DIR=`pwd`
# debug about cmake
echo "configuring KMess $KMESS_VER"
echo "checking build directory"
echo "running cmake from $REAL_BUILD_DIR"
echo "command: cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \ "
echo " -D CMAKE_BUILD_TYPE=$BUILD_TYPE \ "
echo " -D KMESS_DEBUG_OUTPUT=$DEBUG \ "
echo " "$SRC_DIR" "
echo ""
# finally start cmake
cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \
-D CMAKE_BUILD_TYPE=$BUILD_TYPE \
-D KMESS_DEBUG_OUTPUT=$DEBUG \
"$SRC_DIR" \
&& cmake_ok || cmake_error
}
function cmake_ok
{
# collect all settings
local HAS_XSS="no (extension not detected)"
local HAS_DEBUG="no (good!)"
if [ $DEBUG = "1" ]; then
HAS_DEBUG="yes (KMess will be slow!)"
fi
if grep -q '^#define HAVE_XSCREENSAVER 1$' "config-kmess.h"; then
HAS_XSS="yes"
fi
# create a makefile to redirect all calls to the build directory
makefile=$SRC_DIR/Makefile
targets=`grep '^[A-Za-z_\/\-]\+:' Makefile | cut -f 1 -d ':'`
echo "# Generated by ./configure: NO NOT EDIT!
# Build features:
#
# Install prefix: $PREFIX
# Auto-away feature: $HAS_XSS
# Debugging messages: $HAS_DEBUG
# Build type: $BUILD_TYPE
# Build directory: $BUILD_DIR
#
#
# cmake command:
#
# cd \"$REAL_BUILD_DIR\"
# cmake -D CMAKE_INSTALL_PREFIX=$PREFIX \\
# -D CMAKE_BUILD_TYPE=$BUILD_TYPE \\
# -D KMESS_DEBUG_OUTPUT=$DEBUG \\
# \"$SRC_DIR\"
#
" > $makefile
for target in $targets; do
echo "$target:" >> $makefile
echo -en "\t" >> $makefile
echo "@\$(MAKE) --no-print-directory -C '$BUILD_DIR' $target" >> $makefile
echo "" >> $makefile
done
# display a configure report
echo "-- configure completed
Build features:
Install prefix: $PREFIX
Auto-away feature: $HAS_XSS
Debugging messages: $HAS_DEBUG
Build type: $BUILD_TYPE
Enter the following command to continue:
make
"
}
function cmake_error
{
echo "-- cmake failed
Please fix the problems mentioned above, and run ./configure again.
For example, make sure you have the KDE 4 devel packages installed.
"
}
# ------------------------------
#
# Main
#
# parse arguments
if [ -n "$*" ]; then
# check against BSD / Mac OS getopt, which is seriously lacking.
# It does not support additional options, so it will recognize everything
# after --longoptions as the $@ input.
if ! getopt --longoptions --prefix -- "" 2>/dev/null >/dev/null; then
echo "$0: Sorry, can't handle arguments at this platform.
Your getopt version does not support long arguments.
Please run cmake directly, for example:
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr ../
make
make install
" >&2
exit 1
fi
# Parse the arguments
longopts="help,prefix:,build-type:,build-dir:,build-folder:,enable-debug-output"
TEMP=`getopt --name=configure \
--options h \
--longoptions "$longopts" -- "$@"`
case "$?" in
0) ;;
*) exit 1 ;;
esac
# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"
while true ; do
case "$1" in
-h|--help) print_help; exit 0 ;;
--prefix) PREFIX=$2; shift 2 ;;
--enable-debug-output) DEBUG=1; shift ;;
--build-type) BUILD_TYPE="$2"; shift 2 ;;
--build-dir) BUILD_DIR="$2"; shift 2 ;;
--builddir|--build-directory|--build-folder) BUILD_DIR="$2"; shift 2 ;; # be forgiving with small errors.
--) shift ; break ;;
*) echo "$0: internal error at argument '$1'!" ; exit 1 ;;
esac
done
if [ -n "$1" ]; then
echo "$0: invalid arguments: $@"
exit 1
fi
fi
# Start cmake
run_cmake
-35
View File
@@ -1,35 +0,0 @@
if test "x$all_tests" = "xbad"; then
echo ""
echo "Fix the problems, and try to run ./configure again."
echo ""
else
echo ""
echo ""
echo "Configure report:"
echo ""
echo " Install prefix: $prefix"
echo -n " Auto-away feature: "
if test -z "$LIB_XSCREENSAVER"; then
echo "no (extension not detected)"
else
echo "yes"
fi
echo -n " Debugging messages: "
if test "x$enable_debug_output" = "xyes"; then
echo "yes (KMess will be slow!)"
else
echo "no (good!)"
fi
echo -n " Binary relocatable: "
if test "x$br_cv_binreloc" = "xyes"; then
echo "yes"
else
echo "no (only supported in Linux)"
fi
echo ""
fi
-30
View File
@@ -1,30 +0,0 @@
#MIN_CONFIG(3.1)
AM_INIT_AUTOMAKE(kmess,1.4)
dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
dnl CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
dnl KDE_NEED_FLEX dnl __kdevelop__
dnl AC_PROG_YACC dnl __kdevelop__
dnl ---- Additional KMess options ----
# The syntax is: AC_ARG_ENABLE(flagname, description, if-user-desides, if-user-ignores)
AC_ARG_ENABLE(debug-output,
[ --enable-debug-output enable debugging output. [default=no]],
[ enable_debug_output = "$enableval" ],
[ enable_debug_output = "no" ] )
# -- Check for Debug build messages ---------------------------------
if test "x$enable_debug_output" = "xyes" ; then
AC_WARN(Creating debug build. This has serious implications in the performance of KMess)
AC_DEFINE_UNQUOTED(KMESS_DEBUG, 1, [output debug?])
else
AC_DEFINE_UNQUOTED(KMESS_DEBUG, 0, [output debug?])
fi
+10
View File
@@ -0,0 +1,10 @@
ADD_SUBDIRECTORY( pics )
ADD_SUBDIRECTORY( icons )
ADD_SUBDIRECTORY( sounds )
ADD_SUBDIRECTORY( emoticons )
ADD_SUBDIRECTORY( chatstyles )
INSTALL( FILES kmesschatstyles.knsrc DESTINATION ${CONFIG_INSTALL_DIR} )
INSTALL( FILES kmess.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kmess )
INSTALL( FILES kmess.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+17
View File
@@ -0,0 +1,17 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
add_subdirectory( Colourful-Enclosed )
add_subdirectory( Classic )
add_subdirectory( Classic-compact )
add_subdirectory( Dim )
add_subdirectory( Efficient )
add_subdirectory( Fresh )
add_subdirectory( Fresh-dark )
add_subdirectory( Pure )
########### install files ###############
install( FILES examplemessage.xml DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/ )
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Classic-compact.xsl Classic-compact.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Classic-compact/ )
@@ -0,0 +1,74 @@
/*
KMess Classic-compact chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/**
* Define colors for filenames.
*/
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding-bottom: 0.5em;
border-bottom: 1px solid gray;
color: purple;
}
/**
* Remaining markup is done inline in the .xsl file.
*/
@@ -0,0 +1,187 @@
<?xml version='1.0'?>
<!--
KMess Classic-compact chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
indent="no"
omit-xml-declaration="yes"
encoding="utf-8" />
<!--
Normal chat message.
This is used to process individual chat messages.
-->
<xsl:template match="message">
<xsl:choose>
<!-- incoming and outgoing chat messages -->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div dir="{body/@dir}">
<!-- contact name part -->
<span dir="{from/contact/displayName/@dir}">
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="from/contact/displayName/@dir='ltr'">padding-right: 0.3em;</xsl:when>
<xsl:otherwise>padding-left: 0.3em;</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<font>
<!-- contact name color -->
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="@type='incoming' or @type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text> says: </xsl:text>
</font>
</span>
<!-- show message -->
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</xsl:when>
<!-- application message (e.g. invite for file transfer) -->
<xsl:when test="@type='application'">
<div dir="{body/@dir}">
<font color="blue">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- presence message (e.g. contact gone offline) -->
<xsl:when test="@type='presence'">
<div dir="{body/@dir}">
<font color="gray">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- notification message (e.g. file received) -->
<xsl:when test="@type='notification'">
<div dir="{body/@dir}">
<font color="purple">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- system message (error messages, e.g. invitations KMess does not support) -->
<xsl:when test="@type='system'">
<div dir="{body/@dir}">
<hr size="2" color="red"/>
<font color="red"><xsl:value-of disable-output-escaping="yes" select="body"/></font>
<hr size="2" color="red"/>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<!-- contact name part -->
<span dir="{message[1]/from/contact/displayName/@dir}">
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="message[1]/from/contact/displayName/@dir='ltr'">float:left; clear:both; padding-right: 0.3em;</xsl:when>
<xsl:otherwise>float:right; clear:both; padding-left: 0.3em;</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<font>
<!-- contact name color -->
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="message[1]/@type='incoming' or message[1]/@type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="message[1]/@time">
<xsl:value-of select="message[1]/@time"/>
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text> says: </xsl:text>
</font>
</span>
<!-- show message -->
<xsl:for-each select="message">
<!-- show time for each followup message? -->
<!--
<xsl:if test="position() != 1 and @time">
<font>
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="@type='incoming' or @type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="@time"/>
<xsl:text>: </xsl:text>
</font>
</xsl:if>
-->
<!-- show message -->
<div dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</xsl:for-each>
</div>
</xsl:template>
</xsl:stylesheet>
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Classic.xsl Classic.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Classic/ )
+73
View File
@@ -0,0 +1,73 @@
/*
KMess Classic chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/**
* Define colors for filenames.
*/
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding-bottom: 0.5em;
border-bottom: 1px solid gray;
color: purple;
}
/**
* Remaining markup is done inline in the .xsl file.
*/
+164
View File
@@ -0,0 +1,164 @@
<?xml version='1.0'?>
<!--
KMess Classic chat style
Copyright (C) 2006, Diederik van der Boor
Based on the original KMess chat style.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes" />
<!--
Normal chat message.
This is used to process individual chat messages.
-->
<xsl:template match="message">
<xsl:choose>
<!-- incoming and outgoing chat messages -->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div style="margin-bottom: 16px">
<div dir="{from/contact/displayName/@dir}">
<font>
<!-- contact name color -->
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="@type='incoming' or @type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text kmess:translate="true"> says: </xsl:text>
<br/>
</font>
</div>
<div dir="{body/@dir}">
<!-- show message -->
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</div>
</xsl:when>
<!-- application message (e.g. invite for file transfer) -->
<xsl:when test="@type='application'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
<font color="blue">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- presence message (e.g. contact gone offline) -->
<xsl:when test="@type='presence'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
<font color="gray">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- notification message (e.g. file received) -->
<xsl:when test="@type='notification'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
<font color="purple">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</font>
</div>
</xsl:when>
<!-- system message (error messages, e.g. invitations KMess does not support) -->
<xsl:when test="@type='system'">
<div style="margin-bottom: 16px" dir="{body/@dir}">
<hr size="2" color="red"/>
<font color="red"><xsl:value-of disable-output-escaping="yes" select="body"/></font>
<hr size="2" color="red"/>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup" style="margin-bottom: 16px">
<div dir="{message[1]/from/contact/displayName/@dir}">
<font>
<!-- contact name color -->
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="message[1]/@type='incoming' or message[1]/@type='offlineIncoming'">#D60000</xsl:when>
<xsl:otherwise>#006A00</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="message[1]/@time">
<xsl:value-of select="message[1]/@time"/> <!-- - <xsl:value-of select="message[last()]/@time"/> -->
<xsl:text> </xsl:text>
</xsl:if>
<!-- show contact name -->
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text kmess:translate="true"> says: </xsl:text>
<br/>
</font>
</div>
<!-- show message -->
<xsl:for-each select="message">
<div dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</xsl:for-each>
</div>
</xsl:template>
</xsl:stylesheet>
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Colourful-Enclosed.xsl Colourful-Enclosed.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Colourful-Enclosed/ )
@@ -0,0 +1,216 @@
/*
'Colourful-Enclosed' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Jess Hall
Design based on 'Colourful enclosed' by Jess Hall
http://www.kde-look.org/content/show.php?content=19968
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins.
*/
dl, dt, dd
{
margin: 0;
padding: 0;
}
/**
* Border effect.
*/
dl
{
border: 1px solid grey;
margin: 0 0 12px 0; /* margin bottom is 12px */
background-color: #fff; /* for dark color schemes */
}
/*
* message title colors.
*/
dt
{
padding: 0 2px; /* left padding, right padding */
}
.incoming dt
{
color: #00008B;
font-weight: bold;
background-color: #d8e0ff;
}
.outgoing dt
{
color: teal;
font-weight: bold;
background-color: #c8ffd8;
}
.offlineIncoming dt
{
color: #6B10C6;
font-weight: bold;
background-color: #EBE5FF;
}
/*
* name in message title.
*/
dt span.name
{
margin-right: 100px; /* avoid overlapping the time */
}
dt.rtl span.name
{
margin-right: 0;
margin-left: 100px;
}
/*
* time in message title.
*/
dt span.time
{
float: right;
display: inline; /* typically for MSIE bugs */
margin-left: 10px;
}
dt.rtl span.time
{
float: left;
margin-left: 0;
margin-right: 10px;
}
/*
* message body.
* add some spacing, color and the bottom line.
*/
dd
{
padding: 0 15px; /* left and right 15px */
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application,
div.notification,
div.presence,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
}
div.application
{
color: blue;
}
div.presence
{
color: gray;
}
div.notification
{
color: purple;
}
div.system
{
color: red;
padding: 3px 0;
border-top: 1px solid red;
border-bottom: 1px solid red;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 3em 2em 2em 2em;
padding: 0.5em;
border: 1px solid grey;
color: purple;
text-align: center;
}
@@ -0,0 +1,189 @@
<?xml version='1.0'?>
<!--
'Colourful-Enclosed' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Jess Hall
Design based on 'Colourful enclosed' by Jess Hall
http://www.kde-look.org/content/show.php?content=19968
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Colourful-Enclosed.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}" class="{from/contact/displayName/@dir}">
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</dl>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}">
<!-- show time? -->
<xsl:if test="message[1]/@time">
<span class="time"><xsl:value-of select="message[1]/@time"/> - <xsl:value-of select="message[last()]/@time"/></span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</xsl:for-each>
</dl>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Dim.xsl Dim.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Dim/ )
+202
View File
@@ -0,0 +1,202 @@
/*
'Dim' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2004, Iori Yagami
Design based on 'Yagami' by Iori Yagami
http://www.kde-look.org/content/show.php?content=23473
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins.
*/
dl
{
/* message group */
margin: 0 0 5px 0; /* set margin bottom */
padding: 0;
}
dt
{
/* message title */
margin: 0;
padding: 0;
}
dd
{
/* message body */
margin: 0 0 0 16px; /* set left margin */
padding: 0;
}
.rtl dd
{
margin-left: 0;
margin-right: 16px;
}
/*
* message title colors.
*/
.incoming dt
{
color: #344A93;
font-style: italic;
}
.outgoing dt
{
color: #549A5C;
}
.offlineIncoming dt
{
color: #344A93;
font-style: italic;
}
/*
* name in message title.
*/
dt span.name
{
margin-right: 100px; /* avoid overlapping the time */
}
.rtl dt span.name
{
margin-right: 0;
margin-left: 100px;
}
/*
* time in message title.
*/
dt span.time
{
float: right;
display: inline; /* typically for MSIE bugs */
margin-left: 10px;
}
.rtl dt span.time
{
float: left;
margin-left: 0;
margin-right: 10px;
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application,
div.notification,
div.presence,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
}
div.application
{
color: #6172b2;
}
div.presence
{
color: #c4c4c4;
}
div.notification
{
color: #c034c9;
}
div.system
{
color: #d11313;
padding: 3px 0;
border-top: 1px solid #d11313;
border-bottom: 1px solid #d11313;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin-top: 3em;
margin-bottom: 1em;
color: purple;
}
+188
View File
@@ -0,0 +1,188 @@
<?xml version='1.0'?>
<!--
'Dim' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2004, Iori Yagami
Design based on 'Yagami' by Iori Yagami
http://www.kde-look.org/content/show.php?content=23473
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Dim.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}">
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</dl>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<dl>
<!-- message header -->
<dt>
<!-- show time? -->
<xsl:if test="message[1]/@time">
<span class="time"><xsl:value-of select="message[1]/@time"/> - <xsl:value-of select="message[last()]/@time"/></span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</xsl:for-each>
</dl>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Efficient.xsl Efficient.css DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Efficient/ )
+273
View File
@@ -0,0 +1,273 @@
/*
'Efficient' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Cies Breijs
Design based on 'Efficient' by Cies Breijs
http://www.kde-look.org/content/show.php?content=26318
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins
*/
dl
{
margin: 0 0 2px 0; /* set margin bottom */
}
dt, dd
{
margin: 0;
padding: 0;
}
/*
* message colors.
*/
.incoming dl
{
background-color: #F7F3F3;
}
.outgoing dl
{
background-color: #F4F4FB;
}
.offlineIncoming dl
{
background-color: #FFFBFB;
}
/*
* message title colors
*/
.incoming dt
{
color: #A82F2F;
font-weight: bold;
}
.outgoing dt
{
color: #16569E;
font-weight: bold;
}
.offlineIncoming dt
{
color: #C83838;
font-weight: bold;
}
/*
* column effect
*/
.incoming dt,
.outgoing dt,
.offlineIncoming dt
{
float: left;
min-width: 7em;
/* to enforce a fixed width:
width: 7em;
white-space: nowrap;
overflow: hidden;
*/
}
.rtl .incoming dt,
.rtl .outgoing dt,
.rtl .offlineIncoming dt
{
/* reverse for right-to-left */
float: right;
}
.incoming dd,
.outgoing dd,
.offlineIncoming dd
{
/* for alignment of lines under the float
using padding instead of margin to the messagegroup border also appears below the name */
padding-left: 7em;
}
.rtl .incoming dd,
.rtl .outgoing dd,
.rtl .offlineIncoming dd
{
padding-left: 0;
padding-right: 7em;
}
dl
{
position: relative;
/* new messages should appear below the float */
clear: both;
}
div.application,
div.notification,
div.presence,
div.system
{
margin-left: 7em;
}
/*
* name in message title.
*/
dt span.name
{
display: block;
text-align: right;
padding-left: 3px;
padding-right: 3px;
}
/*
* time in message title and other messages.
*/
span.time
{
float: right;
display: inline; /* typically for MSIE bugs */
color: #AAAAAA;
font-size: 6pt;
/* some margins to fix most ugly stuff when resizing */
margin-left: 5px;
margin-bottom: 1ex;
}
.rtl span.time
{
float: left;
margin-left: 0;
margin-right: 5px;
}
/*
* grouped messages splitter effect
*/
.messagegroup dd.first-child,
.messagegroup dd.middle-child
{
border-bottom: 2px dotted white;
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application
{
color: blue;
}
div.presence
{
color: gray;
}
div.notification
{
color: purple;
}
div.system
{
color: red;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
padding: 0;
margin-left: 6em;
margin-top: 3em;
margin-bottom: 1.5em;
font-size: larger;
color: purple;
}
+193
View File
@@ -0,0 +1,193 @@
<?xml version='1.0'?>
<!--
'Efficient' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Cies Breijs
Design based on 'Efficient' by Cies Breijs
http://www.kde-look.org/content/show.php?content=26318
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Efficient.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</dl>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}">
<!-- this style also displays the time for other messages -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</xsl:for-each>
</dl>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Fresh-dark.xsl Fresh-dark.css bg_gravatar.gif bg_gravatar_rtl.gif buddy_icon.png DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Fresh-dark/ )
+302
View File
@@ -0,0 +1,302 @@
/*
'Fresh Dark' style for KMess.
Copyright (C) 2008, Valerio Pilo
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2006, Benjamin Deveze
Design based on 'Fresh' by Benjamin Deveze
http://www.kde-look.org/content/show.php?content=43099
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins.
*/
dl, dt, dd
{
margin: 0;
padding: 0;
}
/*
* make sure position: absolute stays in the message (for time).
*/
.incoming,
.outgoing,
.offlineIncoming
{
position: relative;
}
/*
* general message layout and colors.
*/
.outgoing
{
background-color: #120d00;
border-top: 1px solid #010700;
border-bottom: 1px solid #010700;
}
.avatar
{
background-image: url("bg_gravatar.gif");
background-repeat: no-repeat;
float: left;
margin: 10px;
width: 93px;
height: 70px;
overflow: hidden;
/* instead of padding, use margin on img to align it.
makes the computation of width and height easier */
}
.rtl .avatar
{
float: right;
background-image: url("bg_gravatar_rtl.gif");
}
.avatar img
{
margin-left: 11px;
margin-top: 11px;
height: 48px;
width: 48px;
/* omitting the width auto scales, but it becomes ugly */
}
.rtl .avatar img
{
margin-left: 34px;
}
.incoming,
.outgoing,
.offlineIncoming
{
margin-top: 4px;
margin-bottom: 4px;
/* new messages should appear below the float */
clear: both;
}
.incoming dl,
.outgoing dl,
.offlineIncoming dl
{
/* for alignment of lines under the float */
margin-left: 113px; /* avatar width + margin */
margin-top: 11px;
padding-bottom: 0.7em;
}
div.application,
div.notification,
div.presence,
div.system
{
margin-left: 11px;
margin-top: 0.7em;
margin-bottom: 0.7em; /* no padding, so time also gets margin */
position: relative; /* for time */
}
/*
* name in message title.
*/
dt span.name
{
display: block;
color: #bbccdd;
font-weight: bold;
margin-bottom: 0.3em;
margin-right: 2px;
}
.offlineIncoming dt span.name
{
color: #485770;
}
/*
* time in message title and other messages.
*/
span.time
{
position: absolute;
right: 5px;
bottom: 0;
color: #ccddcc;
font-size: 8pt;
/* some margins to fix most ugly stuff when resizing */
margin-left: 5px;
margin-bottom: 0;
}
.rtl span.time
{
/* reverse for right-to-left */
position: absolute;
left: 5px;
right: auto;
margin-left: 0;
margin-right: 5px;
}
/*
* message body.
* reset spacing and default indent of dd element.
*/
dd
{
margin: 0;
padding: 0;
}
dd div.messageContent
{
/* avoid overlapping the time field */
padding-right: 5em;
}
/*
* grouped messages splitter effect
*/
.messagegroup dd.middle-child,
.messagegroup dd.last-child
{
margin-top: 0.4em;
padding-top: 0.4em;
border-top: 1px solid #000500;
}
.messagegroup dd.last-child
{
padding-bottom: 5px;
}
.messagegroup dd
{
position: relative; /* startpoint for absolute positions */
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application
{
color: #0b0;
}
div.presence
{
color: #bbb;
}
div.notification
{
color: #bb0;
}
div.system
{
color: #b00;
}
span.filename {
color: #0b0;
}
span.failedFilename,
div.notification .filename {
color: #b00;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Set the standard body margins.
* The extra #ChatMessageView prefix is needed to overrule
* the inline rule added by the chat window.
*/
#ChatMessageView body
{
padding: 0;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1em 1em 1em;
padding: 0.5em;
border: 1px solid #000500;
font-size: larger;
color: #bb0;
}
+234
View File
@@ -0,0 +1,234 @@
<?xml version='1.0'?>
<!--
'Fresh Dark' style for KMess.
Copyright (C) 2008, Valerio Pilo
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2006, Benjamin Deveze
Design based on 'Fresh' by Benjamin Deveze
http://www.kde-look.org/content/show.php?content=43099
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Fresh-dark.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with light color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #333; color: #eee; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<!-- user avatar -->
<div class="avatar">
<div class="avatarSpace">
<xsl:choose>
<xsl:when test="from/contact/displayPicture/@url">
<img src="{from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<!-- show time? -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</dd>
</dl>
<!-- clear all floats -->
<div class="messageFooter" style="clear:both"></div>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<!-- this style also displays the time for other messages -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<!-- user avatar -->
<div class="avatar">
<div class="avatarSpace">
<!-- use the last message, so the icon updates when the buddy changes their icon
with the commonly used "look at my icon now" message -->
<xsl:choose>
<xsl:when test="message[last()]/from/contact/displayPicture/@url">
<img src="{message[last()]/from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</dd>
</xsl:for-each>
</dl>
<!-- clear all floats -->
<div class="messageFooter" style="clear:both"></div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+8
View File
@@ -0,0 +1,8 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
install( FILES Fresh.xsl Fresh.css bg_gravatar.gif bg_gravatar_rtl.gif buddy_icon.png DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Fresh/ )
+302
View File
@@ -0,0 +1,302 @@
/*
'Fresh' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2006, Benjamin Deveze
Design based on 'Fresh' by Benjamin Deveze
http://www.kde-look.org/content/show.php?content=43099
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
/*
* reset some default margins.
*/
dl, dt, dd
{
margin: 0;
padding: 0;
}
/*
* make sure position: absolute stays in the message (for time).
*/
.incoming,
.outgoing,
.offlineIncoming
{
position: relative;
}
/*
* general message layout and colors.
*/
.outgoing
{
background-color: #edf2ff;
border-top: 1px solid #dce6ff;
border-bottom: 1px solid #dce6ff;
}
.avatar
{
background-image: url("bg_gravatar.gif");
background-repeat: no-repeat;
float: left;
margin: 10px;
width: 93px;
height: 70px;
overflow: hidden;
/* instead of padding, use margin on img to align it.
makes the computation of width and height easier */
}
.rtl .avatar
{
float: right;
background-image: url("bg_gravatar_rtl.gif");
}
.avatar img
{
margin-left: 11px;
margin-top: 11px;
height: 48px;
width: 48px;
/* omitting the width auto scales, but it becomes ugly */
}
.rtl .avatar img
{
margin-left: 34px;
}
.incoming,
.outgoing,
.offlineIncoming
{
margin-top: 4px;
margin-bottom: 4px;
/* new messages should appear below the float */
clear: both;
}
.incoming dl,
.outgoing dl,
.offlineIncoming dl
{
/* for alignment of lines under the float */
margin-left: 113px; /* avatar width + margin */
margin-top: 11px;
padding-bottom: 0.7em;
}
div.application,
div.notification,
div.presence,
div.system
{
margin-left: 11px;
margin-top: 0.7em;
margin-bottom: 0.7em; /* no padding, so time also gets margin */
position: relative; /* for time */
}
/*
* name in message title.
*/
dt span.name
{
display: block;
color: #030612;
font-weight: bold;
margin-bottom: 0.3em;
margin-right: 2px;
}
.offlineIncoming dt span.name
{
color: #485770;
}
/*
* time in message title and other messages.
*/
span.time
{
position: absolute;
right: 5px;
bottom: 0;
color: #2f63b3;
font-size: 8pt;
/* some margins to fix most ugly stuff when resizing */
margin-left: 5px;
margin-bottom: 0;
}
.rtl span.time
{
/* reverse for right-to-left */
position: absolute;
left: 5px;
right: auto;
margin-left: 0;
margin-right: 5px;
}
/*
* message body.
* reset spacing and default indent of dd element.
*/
dd
{
margin: 0;
padding: 0;
}
dd div.messageContent
{
/* avoid overlapping the time field */
padding-right: 5em;
}
/*
* grouped messages splitter effect
*/
.messagegroup dd.middle-child,
.messagegroup dd.last-child
{
margin-top: 0.4em;
padding-top: 0.4em;
border-top: 1px solid #dce6ff;
}
.messagegroup dd.last-child
{
padding-bottom: 5px;
}
.messagegroup dd
{
position: relative; /* startpoint for absolute positions */
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application
{
color: blue;
}
div.presence
{
color: gray;
}
div.notification
{
color: purple;
}
div.system
{
color: red;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Set the standard body margins.
* The extra #ChatMessageView prefix is needed to overrule
* the inline rule added by the chat window.
*/
#ChatMessageView body
{
padding: 0;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 3em 2em 2em 2em;
padding: 0.5em;
border: 1px solid #dce6ff;
font-size: larger;
color: purple;
text-align: center;
}
+233
View File
@@ -0,0 +1,233 @@
<?xml version='1.0'?>
<!--
'Fresh' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2006, Benjamin Deveze
Design based on 'Fresh' by Benjamin Deveze
http://www.kde-look.org/content/show.php?content=43099
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Fresh.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<!-- user avatar -->
<div class="avatar">
<div class="avatarSpace">
<xsl:choose>
<xsl:when test="from/contact/displayPicture/@url">
<img src="{from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<!-- show time? -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</dd>
</dl>
<!-- clear all floats -->
<div class="messageFooter" style="clear:both"></div>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<!-- this style also displays the time for other messages -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<!-- user avatar -->
<div class="avatar">
<div class="avatarSpace">
<!-- use the last message, so the icon updates when the buddy changes their icon
with the commonly used "look at my icon now" message -->
<xsl:choose>
<xsl:when test="message[last()]/from/contact/displayPicture/@url">
<img src="{message[last()]/from/contact/displayPicture/@url}" height="48" alt="" />
</xsl:when>
<xsl:otherwise>
<img src="buddy_icon.png" height="48" width="48" alt="" />
</xsl:otherwise>
</xsl:choose>
</div>
</div>
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}">
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text>:</xsl:text>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- show time? -->
<xsl:if test="@time">
<span class="time"><xsl:value-of select="@time"/></span>
</xsl:if>
<div class="messageContent">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</div>
</dd>
</xsl:for-each>
</dl>
<!-- clear all floats -->
<div class="messageFooter" style="clear:both"></div>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+24
View File
@@ -0,0 +1,24 @@
include_directories( ${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
########### install files ###############
set(kmess_pure_FILES
Pure.css
Pure.xsl
arrow0.png
arrow1.png
clock.png
contact.png
corner-bl.png
corner-br.png
corner-tl.png
corner-tr.png
important.png
myself.png
system.png
)
install( FILES ${kmess_pure_FILES} DESTINATION ${DATA_INSTALL_DIR}/kmess/styles/Pure/ )
+340
View File
@@ -0,0 +1,340 @@
/*
'Pure' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2004, Francois Chazal
Design based on 'Pure' by Francois Chazal
http://www.kde-look.org/content/show.php?content=23473
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/*
* the incoming and outgoing messages are implemented as definition-list (<dl>).
* each message type has a different background/border color.
*
* the header is added to the <dt> tag, the message body to the <dd> tag.
* this is easy to format with css, and easy to read without css markup.
*/
dl
{
margin: 0 0 16px 0; /* margin bottom is 16px */
}
/*
* message title. each child element of the title
* add a different part of the background and images.
* span.time is also given a background-color so
* it can overlap long names without having ugly text.
*/
dt
{
margin: 0;
padding: 0;
background-image: url(corner-tl.png); /* left corner part */
background-position: top left;
background-repeat: no-repeat;
}
.incoming dt,
.incoming dt span.time
{
background-color: #c9d9f0;
color: #567199;
}
.outgoing dt,
.outgoing dt span.time
{
background-color: #e1e1e1;
color: #707070;
}
.offlineIncoming dt,
.offlineIncoming dt span.time
{
background-color: #CFE0F7;
color: #6787B7;
}
dt span.wrapper
{
display: block;
height: 20px;
padding: 2px;
font-weight: bold;
font-size: 10px;
background-image: url(corner-tr.png); /* right corner part */
background-position: top right;
background-repeat: no-repeat;
position: relative; /* starting-point for absolute position below */
}
/*
* name in the message title.
* adds a small icon to the left.
*/
dt span.name
{
padding: 0 20px 0 20px; /* right and left padding */
line-height: 20px;
background-position: center left;
background-repeat: no-repeat;
white-space: nowrap; /* avoid overlapping message text */
vertical-align: top; /* makes it better in mozilla */
z-index: 1;
}
.incoming dt span.name,
.offlineIncoming dt span.name
{
background-image: url(contact.png);
}
.outgoing dt span.name
{
background-image: url(myself.png);
}
dt.rtl span.name
{
/* reverse for right-to-left names */
background-position: center right;
}
/*
* time in message title.
* adds a time icon to the right.
*/
dt span.time
{
/* align right, no float to avoid elements falling below. */
position: absolute;
right: 2px;
/* set background, give padding so text does not overlap it */
line-height: 20px;
padding-left: 5px;
padding-right: 20px;
background-image: url(clock.png);
background-position: right center;
background-repeat: no-repeat;
}
dt.rtl span.time
{
/* reverse for right-to-left names */
position: absolute;
left: 2px;
right: auto;
padding-left: 20px;
padding-right: 5px;
background-position: left center;
}
/*
* message body.
* add some spacing, color and the bottom line.
*/
dd
{
margin: 0;
padding: 5px;
}
.incoming dd
{
background-color: #f5f6fa;
border-bottom: 2px solid #c9d9f0;
}
.outgoing dd
{
background-color: #f9f9f9;
border-bottom: 2px solid #e1e1e1;
}
.offlineIncoming dd
{
background-color: #F7F8FC;
border-bottom: 2px solid #c9d9f0;
}
/*
* message footer.
* the bottom part is added to the main dl object.
*/
.incoming dl,
.offlineIncoming dl
{
background-image: url(corner-br.png);
background-repeat: no-repeat;
background-position: bottom right;
padding-bottom: 7px;
}
.outgoing dl
{
background-image: url(corner-bl.png);
background-repeat: no-repeat;
background-position: bottom left;
padding-bottom: 7px;
}
/*
* grouped messages
*/
.messagegroup .incoming dd,
.messagegroup .offlineIncoming dd
{
padding-left: 10px;
background-image: url(arrow0.png);
background-position: 0 0.9em;
background-repeat: no-repeat;
/*
display: list-item;
list-style-image: url(arrow0.png);
list-style-position: inside;
marker-offset: 0;
*/
}
.messagegroup .outgoing dd
{
padding-left: 10px;
background-image: url(arrow1.png);
background-position: 0 0.9em;
background-repeat: no-repeat;
}
.messagegroup dd.first-child,
.messagegroup dd.middle-child
{
border: 0; /* no repeated border for first and middle items */
}
/*
* other messages;
* - application message (e.g. invitation)
* - notification message (e.g. file transfer complete)
* - system message (e.g. error, invitation not supported)
*/
div.application,
div.notification,
div.presence,
div.system
{
margin: 10px 0 10px; /* top and bottom margin */
}
div.application
{
color: blue;
}
div.presence
{
color: gray;
}
div.notification
{
color: purple;
}
div.system
{
color: red;
padding: 3px 0;
border-top: 1px solid red;
border-bottom: 1px solid red;
}
span.filename {
color: blue;
}
span.failedFilename,
div.notification .filename {
color: red;
}
/**
* Draw a border arround emoticon placeholders.
*/
img.customEmoticonPlaceholder
{
border: 1px dotted #ccc;
}
/*
* fix alignment of emoticons
*/
img.standardEmoticon,
img.customEmoticon,
img.customEmoticonPlaceholder
{
vertical-align: top;
}
/*
* Set the standard body margins.
* The extra #ChatMessageView prefix is needed to overrule
* the inline rule added by the chat window.
*/
#ChatMessageView body
{
padding: 10px;
}
/*
* Separator for the various chats within HTML files
*/
div.conversation
{
margin: 2em 1.5em 1.5em 1.5em;
padding: 0.5em;
border: 1px solid #e1e1e1;
font-size: larger;
color: purple;
}
+193
View File
@@ -0,0 +1,193 @@
<?xml version='1.0'?>
<!--
'Pure' style for KMess.
Copyright (C) 2006, Diederik van der Boor
Copyright (c) 2005, Francois Chazal
Design based on 'Pure' by Francois Chazal
http://www.kde-look.org/content/show.php?content=23473
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="html"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
<!--
Declare external parameters with default values
-->
<xsl:param name="basepath" select="'.'" />
<xsl:param name="csspath" select="'Pure.css'" />
<!--
Template for the page body
-->
<xsl:template match="messageRoot">
<html id="ChatMessageView">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="{$basepath}" />
<style type="text/css">
/* standard colors for compatibility with dark color schemes */
body { font-size: 10pt; margin: 0; padding: 5px; background-color: #fff; color: #000; }
a:link { color: blue; }
a:visited { color: purple; }
a:hover { color: red; }
a:active { color: red; }
</style>
<style type="text/css">
/* import additional style */
@import "<xsl:value-of select="$csspath" />";
</style>
</head>
<body>
<div id="messageRoot">
<!-- chat messages are appended here by KMess -->
<xsl:apply-templates />
</div>
</body>
</html>
</xsl:template>
<!--
Template for normal messages
-->
<xsl:template match="message">
<xsl:choose>
<!--
normal chat message,
- incoming message from a contact.
- outgoing message from the user.
- incoming offline-im message from a contact.
-->
<xsl:when test="@type='incoming' or @type='outgoing' or @type='offlineIncoming'">
<div class="{body/@dir}">
<div class="{@type}">
<dl>
<!-- message header -->
<dt dir="{from/contact/displayName/@dir}" class="{from/contact/displayName/@dir}">
<span class="wrapper">
<!-- show time? -->
<!-- time will be floated to the right, so it must be before the other text -->
<xsl:if test="@time">
<span class="time">
<xsl:if test="@type='offlineIncoming'">
<xsl:value-of select="@date"/> &#160;
</xsl:if>
<xsl:value-of select="@time"/>
</span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="from/contact/displayName/@text"/>
<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
</span>
</span>
</dt>
<!-- message body -->
<dd dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</dl>
</div>
</div>
</xsl:when>
<!--
other messages, like:
- application message (e.g. invite for file transfer)
- notification message (e.g. file received)
- system message (error messages, e.g. invitations KMess does not support)
-->
<xsl:when test="@type='application' or @type='presence' or @type='notification' or @type='system'">
<div class="{body/@dir}">
<div class="{@type}" dir="{body/@dir}">
<xsl:value-of disable-output-escaping="yes" select="body"/>
</div>
</div>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Message group template
This is used to group follow-up messages from the same contact.
-->
<xsl:template match="messagegroup">
<div class="messagegroup">
<div class="{message[1]/body/@dir}">
<div class="{message[1]/@type}">
<dl>
<!-- message header -->
<dt dir="{message[1]/from/contact/displayName/@dir}" class="{message[1]/from/contact/displayName/@dir}">
<span class="wrapper">
<!-- show time? -->
<xsl:if test="message[1]/@time">
<span class="time"><xsl:value-of select="message[1]/@time"/> - <xsl:value-of select="message[last()]/@time"/></span>
</xsl:if>
<!-- show name -->
<span class="name">
<xsl:value-of disable-output-escaping="yes" select="message[1]/from/contact/displayName/@text"/>
<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
</span>
</span>
</dt>
<!-- message body -->
<xsl:for-each select="message">
<dd dir="{body/@dir}">
<!-- add extra attribute for css -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() = last()"><xsl:text>last-child</xsl:text></xsl:when>
<xsl:when test="position() = 1"><xsl:text>first-child</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>middle-child</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of disable-output-escaping="yes" select="body/@fontBefore"/>
<xsl:value-of disable-output-escaping="yes" select="body"/>
<xsl:value-of disable-output-escaping="yes" select="body/@fontAfter"/>
</dd>
</xsl:for-each>
</dl>
</div>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1017 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

+295
View File
@@ -0,0 +1,295 @@
<?xml version='1.0'?>
<!--
This is an example chat conversation.
It contains the common message types and variations.
To view the HTML result of a chat style, use:
xsltproc Themedir/theme.xsl examplemessage.xml > Themedir/test.html
To view all chat styles, use:
for i in */*.xsl; do name=`dirname $i`; xsltproc $i examplemessage.xml > $name/test.html; done
konqueror */test.html &
To cleanup everything, use:
rm */test.html
-->
<messageRoot>
<!--
Incoming message from another contact
When the "Show time in messages" option in unchecked,
the 'time' attribute won't be added to messages.
-->
<message type='incoming'><!-- time may be omitted -->
<from>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
<body color='#0033cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0033cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>Aren't you going to open your gift? &lt;img src="/opt/kde3/share/apps/kmess/emoticons/regular.png" height="29" width="29" alt=":)" title="" valign="top" class="standardEmoticon"&gt;&lt;br&gt;&lt;br&gt;This is an example chat message.&lt;br&gt;Use &lt;code&gt;xsltproc &lt;var&gt;theme&lt;/var&gt;.xsl examplemessage.xml &amp;gt; test.html&lt;/code&gt; to see the HTML result.</body>
</message>
<!--
More incoming messages, this time with
longer names to test the layout.
-->
<message type='incoming' time='10:30:23'>
<from>
<contact contactId='carol@kmess.org'>
<displayPicture url='' />
<displayName text='Carol with longer name' dir='ltr' />
</contact>
</from>
<body color='#0099cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0099cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>Hello there!</body>
</message>
<message type='incoming' time='10:30:59'>
<from>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
<body color='#0033cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0033cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>Welcome to the chat Carol</body>
</message>
<!--
Outgoing message to another contact.
The "Group follow-up messages from the same contact" is checked,
the messages will be grouped in a <messagegroup> node.
Each time a new message is appended, the whole group is regenerated.
-->
<messagegroup>
<message type='outgoing' time='10:24:30'>
<from>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
<body color='#cc3300'
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Verdana" color="#cc3300"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>I'm not sure yet</body>
</message>
<message type='outgoing' time='10:24:40'>
<from>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
<body color='#cc3300'
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Verdana" color="#cc3300"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>no really</body>
</message>
</messagegroup>
<!--
This is testing the right-to-left support of your chat theme.
The 'dir' attribute indicates whether it's left-to-right (ltr) or right-to-left (rtl).
The name can be right-to-left, or the message, or both.
-->
<message type='incoming' time='10:31:30'>
<from>
<contact contactId='rtl@kmess.org'>
<displayPicture url='' />
<displayName text='right to left name' dir='rtl' />
</contact>
</from>
<body color='#0099cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0099cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>This name is written right-to-left. Next message should be entirely right-to-left.</body>
</message>
<message type='incoming' time='10:31:59'>
<from>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='הודעות טקסט' dir='rtl' />
</contact>
</from>
<body color='#0033cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0033cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='rtl'
>הודעות טקסט</body>
</message>
<!--
Testing notification messages.
These are used for events (you got a wink, nudge) and invitations.
-->
<message type='notification' date='2006-10-08' time='15:13:12'>
<from>
<contact contactId='alice@kmess.org'>
</contact>
</from>
<body color=''
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore=''
fontAfter=''
dir='ltr'
>&lt;span class="acceptMessage"&gt;Do you want to accept the file: &lt;span class="filename invitedFilename"&gt;desktop.ini&lt;/span&gt; (79 bytes) Do you want to &lt;a href="kmess://accept/alice@kmess.org?976544"&gt;accept&lt;/a&gt; or &lt;a href="kmess://reject/alice@kmess.org?976544"&gt;cancel&lt;/a&gt;?&lt;/span&gt;</body>
</message>
<!--
Testing application messages.
These are informative messages, like "file transfer complete".
-->
<message type='application' date='2006-10-08' time='15:13:25'>
<from>
<contact contactId='alice@kmess.org'>
</contact>
</from>
<body color=''
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore=''
fontAfter=''
dir='ltr'
>Successfully transferred file: &lt;span class="filename completedFilename"&gt;&lt;a href="file:/home/diederik/Desktop/desktop.ini"&gt;desktop.ini&lt;/a&gt;&lt;/span&gt;</body>
</message>
<!--
Just a message in between so it looks more like a chat.
The contact uses a different font here.
-->
<message type='outgoing' date='2006-10-08' time='15:14:00'>
<from>
<contact contactId='bob@kmess.org'>
<displayPicture url='' />
<displayName text='Bob' dir='ltr' />
</contact>
</from>
<body color='#66aa00'
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Verdana" color="#66aa00"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>Thanks for the file</body>
</message>
<!--
Testing system error messages.
These are used for unsupported things and errors
like "invitation not supported", "contact is offline"
-->
<message type='system' date='2006-10-08' time='15:26:52'>
<from>
<contact contactId='alice@kmess.org'>
</contact>
</from>
<body color=''
fontFamily='Verdana'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore=''
fontAfter=''
dir='ltr'
>The contact is inviting you for 'Bejeweled', but this is not implemented yet.</body>
</message>
<!--
Offline-IM messages.
These are received when the user gets online.
This is the main reason why each message also has a 'date' attribute.
-->
<message type='offlineIncoming' date='2006-10-08' time='15:26:52'>
<from>
<contact contactId='alice@kmess.org'>
<displayPicture url='' />
<displayName text='Alice' dir='ltr' />
</contact>
</from>
<body color='#0033cc'
fontFamily='Sans Serif'
fontBold='0'
fontItalic='0'
fontUnderline='0'
fontBefore='&lt;font face="Sans Serif" color="#0033cc"&gt;'
fontAfter='&lt;/font&gt;'
dir='ltr'
>This is an offline-IM message.</body>
</message>
</messageRoot>
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
# Run 'xsltproc' for every .xsl file
# It extracts the <xsl:text kmess:translate="true">..</xsl:text> nodes
# and generates output compatible for xgettext.
# The white space is simplified to avoid easily broken translations.
find . -mindepth 2 -name '*.xsl' \
| sort \
| while read xslFile
do
xsltproc --stringparam "filename" "$xslFile" \
--nonet \
--nomkdir \
"$0.xsl" "$xslFile"
done
+66
View File
@@ -0,0 +1,66 @@
<?xml version='1.0'?>
<!--
KMess transformation sheet to extract messages.
Copyright (C) 2006, Diederik van der Boor
Generates output for xgettext.
This program is started with xsltproc
by the 'extract-xsl-messages' shell script.
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:kmess="http://www.kmess.org/xmlns/ChatStyles/v1/" >
<xsl:output method="text"
encoding="utf-8"
indent="no"
omit-xml-declaration="yes" />
<!--
parameter with file name
-->
<xsl:param name="filename" select="'kmess/styles/unknown-xsl'" />
<!--
Trick to get \n character
-->
<xsl:variable name="crlf"><xsl:text>
</xsl:text></xsl:variable>
<!--
Process root node, search for <xsl:text> nodes.
-->
<xsl:template match="/xsl:stylesheet">
<xsl:apply-templates select="//xsl:text" />
</xsl:template>
<!--
Process <xsl:text> nodes.
-->
<xsl:template match="xsl:text">
<!-- trip the node text leafs and simplyfy space -->
<xsl:variable name="trimmed" select=" normalize-space( text() ) " />
<!-- ignore <xsl:text> </xsl:text> nodes, output others for xgettext format -->
<xsl:if test=" $trimmed != '' and @kmess:translate = 'true' ">
<!-- line 1 -->
<xsl:text>//i18n: file </xsl:text>
<xsl:value-of select="$filename" />
<xsl:text> line 0</xsl:text>
<xsl:value-of select="$crlf" />
<!-- line 2 -->
<xsl:text>// xgettext: no-c-format</xsl:text>
<xsl:value-of select="$crlf" />
<!-- line 3 -->
<xsl:text>i18n("</xsl:text>
<xsl:value-of select=" $trimmed " />
<xsl:text>");</xsl:text>
<xsl:value-of select="$crlf" />
</xsl:if>
</xsl:template>
</xsl:stylesheet>
+2
View File
@@ -0,0 +1,2 @@
ADD_SUBDIRECTORY( KMess2-new )
+89
View File
@@ -0,0 +1,89 @@
SET( kmess_emoticon_FILES
emoticons.xml
smile.png
airplane.png
angel.png
angry.png
arrogant.png
asl.png
automobile.png
baringteeth.png
bat.png
beer.png
bowl.png
boy.png
brb.png
cake.png
camera.png
cat.png
cigarette.png
clock.png
cocktail.png
computer.png
confused.png
cry.png
cup.png
devil.png
dog.png
dude_hug.png
embarrassed.png
envelope.png
eyeroll.png
film.png
fingerscrossed.png
gameconsole.png
girl_hug.png
girl.png
handcuffs.png
highfive.png
huh.png
island.png
kiss.png
lightbulb.png
lightning.png
love.png
megasmile.png
messenger.png
mobilephone.png
money.png
moon.png
nerd.png
note.png
omg.png
party.png
phone.png
pizza.png
plate.png
present.png
rainbow.png
regular.png
rose.png
sad.png
sarcastic.png
secret.png
shade.png
sheep.png
sick.png
sleepy.png
snail.png
soccer.png
sshh.png
star.png
storm.png
sun.png
teeth.png
thinking.png
thumbs_down.png
thumbs_up.png
tongue.png
turtle.png
ugly.png
umbrella.png
unhappy.png
unlove.png
wilted_rose.png
wink.png
)
INSTALL( FILES ${kmess_emoticon_FILES} DESTINATION ${SHARE_INSTALL_PREFIX}/emoticons/KMess-new )

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Some files were not shown because too many files have changed in this diff Show More