Index: Makefile =================================================================== RCS file: /srv/cvs/fcitx/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.3 diff -u -r1.1.1.1 -r1.3 --- Makefile 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ Makefile 26 Feb 2004 21:49:29 -0000 1.3 @@ -1,12 +1,80 @@ -CC = gcc - -CFLAGS= -O2 -fno-strength-reduce -Wall -D_USE_XFT - -INC = `xft-config --cflags` +# By default, it will be installed under +# /usr +# +# To install it under another directory, run +# make prefix=PREFIX +# make install prefix=PREFIX +# +# For example, to install it under +# /usr/local +# run +# make prefix=/usr/local +# make install prefix=/usr/local +# +# To install it under +# $HOME/FCITX +# run +# make prefix=$HOME/FCITX +# make install prefix=$HOME/FCITX +# +# The program will use Xft by default. To turn it off, run +# make usexft=no +# +# When Xft is not used, if X is not installed under +# /usr/X11R6 +# specify XFREE_DIR to the appropriate directory, such as +# make XFREE_DIR=/usr/local/X11R6 +# if X is installed under +# /usr/local/X11R6 + +prefix = /usr + +bindir = $(prefix)/bin +datadir = $(prefix)/share +pkgdatadir = $(datadir)/fcitx + +usexft = "yes" + +ifndef XFREE_DIR + XFREE_DIR = /usr/X11R6 +endif -SRC = IC.c py.c ime.c InputWindow.c KeyList.c main.c MainWindow.c MyErrorsHandlers.c punc.c pyMapTable.c pyParser.c PYFA.c sp.c SetLocale.c tools.c ui.c wbx.c xim.c +CC = gcc -LIB = `xft-config --libs` +CFLAGS = -O2 -fno-strength-reduce -Wall -DPKGDATADIR=\"$(pkgdatadir)\" +ifeq ($(usexft),"yes") + CFLAGS += -D_USE_XFT +endif + +ifeq ($(usexft),"yes") + INC = `xft-config --cflags` +else + INC = -I. -I${XFREE_DIR}/include +endif + +ifeq ($(usexft),"yes") + LIB = `xft-config --libs` +else + LIB = -L${XFREE_DIR}/lib -lX11 +endif + +SRC = IC.c \ + InputWindow.c \ + KeyList.c \ + MainWindow.c \ + MyErrorsHandlers.c \ + PYFA.c sp.c \ + SetLocale.c \ + ime.c \ + main.c \ + punc.c \ + py.c \ + pyMapTable.c \ + pyParser.c \ + tools.c \ + ui.c \ + wbx.c \ + xim.c OBJ = $(SRC:.c=.o) @@ -26,26 +94,14 @@ cd IMdkit/lib; make clean install: - mkdir -p /usr/share/fcitx - install -s fcitx /usr/bin/ - cp -f data/punc.mb /usr/share/fcitx/ - cp -f data/wbx.mb /usr/share/fcitx/ - cp -f data/pybase.mb /usr/share/fcitx/ - cp -f data/pyphrase.mb /usr/share/fcitx/ -install_local: - mkdir -p ${HOME}/fcitx/ - install -s fcitx ${HOME}/fcitx/ - cp -f data/punc.mb ${HOME}/fcitx/ - cp -f data/wbx.mb ${HOME}/fcitx/ - cp -f data/pybase.mb ${HOME}/fcitx/ - cp -f data/pyphrase.mb ${HOME}/fcitx/ - mkdir -p ${HOME}/bin/ - echo "#!/bin/sh" > ${HOME}/bin/fcitx - echo "${HOME}/fcitx/fcitx -local">>${HOME}/bin/fcitx - chmod 755 ${HOME}/bin/fcitx + mkdir -p $(bindir) + mkdir -p $(pkgdatadir) + install -s fcitx $(bindir) + cp -f data/punc.mb $(pkgdatadir) + cp -f data/wbx.mb $(pkgdatadir) + cp -f data/pybase.mb $(pkgdatadir) + cp -f data/pyphrase.mb $(pkgdatadir) + uninstall: - rm -f /usr/bin/fcitx - rm -fr /usr/share/fcitx -uninstall_local: - rm -f ${HOME}/bin/fcitx - rm -fr ${HOME}/fcitx + rm -fr $(pkgdatadir) + rm -f $(bindir)/fcitx Index: SetLocale.c =================================================================== RCS file: /srv/cvs/fcitx/SetLocale.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- SetLocale.c 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ SetLocale.c 26 Feb 2004 00:06:05 -0000 1.2 @@ -6,29 +6,7 @@ char strUserLocale[20]; -extern Bool bIsUtf8; -extern char *strDefaultLocale; extern Bool bUseGBK; - -void GetLocale (void) -{ - if (strUserLocale[0] != '\0') - strDefaultLocale = strUserLocale; - else { - strDefaultLocale = (char *) getenv ("LC_CTYPE"); - if (!strDefaultLocale) - strDefaultLocale = (char *) getenv ("LANG"); - } - - if (!strcasecmp (strDefaultLocale, "zh_CN.UTF8") || !strcasecmp (strDefaultLocale, "zh_CN.UTF-8")) - bIsUtf8 = True; -} - -void SetLocale (void) -{ -// GetLocale (); - setlocale (LC_CTYPE, strDefaultLocale); -} Bool CheckLocale (char *strHZ) { Index: SetLocale.h =================================================================== RCS file: /srv/cvs/fcitx/SetLocale.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- SetLocale.h 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ SetLocale.h 26 Feb 2004 00:05:48 -0000 1.2 @@ -3,8 +3,6 @@ #include "xim.h" -void GetLocale (void); -void SetLocale (void); Bool CheckLocale (char *strHZ); #endif Index: ime.h =================================================================== RCS file: /srv/cvs/fcitx/ime.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- ime.h 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ ime.h 26 Feb 2004 00:09:11 -0000 1.2 @@ -8,7 +8,6 @@ #define MAX_CAND_WORD 10 #define MAX_USER_INPUT 300 // #define MAX_PHRASE_LENGTH 10 //最大词组长度----与拼音词组长度相同 -#define DATA_DIR "/usr/share/fcitx/" #define HOT_KEY_COUNT 2 #define MAX_HZ_SAVED 10 Index: main.c =================================================================== RCS file: /srv/cvs/fcitx/main.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- main.c 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ main.c 26 Feb 2004 00:07:42 -0000 1.2 @@ -3,6 +3,8 @@ /*Program closes with a mouse click or keypress */ +#include + #ifdef HAVE_CONFIG_H # include #endif @@ -21,6 +23,7 @@ #include "punc.h" #include "py.h" + extern Display *dpy; extern Window inputWindow; extern Window mainWindow; @@ -32,8 +35,8 @@ extern IME imeIndex; extern Bool bBackground; +extern Bool bIsUtf8; extern HIDE_MAINWINDOW hideMainWindow; -extern Bool bRunLocal; int main (int argc, char *argv[]) { @@ -46,8 +49,6 @@ imname = argv[++i]; /* else if (!strcmp (argv[i], "-kl")) filter_mask = (KeyPressMask | KeyReleaseMask);*/ - else if (!strcmp (argv[i], "-local")) - bRunLocal = True; else if (!strcmp (argv[i], "-nb")) bBackground = False; } @@ -58,9 +59,9 @@ LoadProfile (); LoadConfig (True); - GetLocale (); CreateFont (); - SetLocale (); + setlocale (LC_ALL, ""); + bIsUtf8 = (strcmp(nl_langinfo(CODESET), "UTF-8") == 0); if (!LoadPuncDict ()) fprintf (stderr, "无法打开中文标点文件,将无法输入中文标点!\n"); Index: punc.c =================================================================== RCS file: /srv/cvs/fcitx/punc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- punc.c 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ punc.c 26 Feb 2004 00:09:45 -0000 1.2 @@ -11,7 +11,6 @@ ChnPunc *chnPunc = NULL; extern int iCodeInputCount; -extern Bool bRunLocal; int LoadPuncDict (void) { @@ -22,12 +21,7 @@ char *pstr; int i; - if (bRunLocal) { - strcpy (strPath, (char *) getenv ("HOME")); - strcat (strPath, "/fcitx/"); - } - else - strcpy (strPath, DATA_DIR); + strcpy (strPath, PKGDATADIR "/"); strcat (strPath, PUNC_DICT_FILENAME); fpDict = fopen (strPath, "rt"); Index: py.c =================================================================== RCS file: /srv/cvs/fcitx/py.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- py.c 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ py.c 26 Feb 2004 00:10:00 -0000 1.2 @@ -65,7 +65,6 @@ extern Bool bUseLegend; extern Bool bSP_UseSemicolon; extern Bool bSP; -extern Bool bRunLocal; extern int iCandWordCount; extern int iCandPageCount; extern int iCodeInputCount; @@ -95,12 +94,7 @@ char strPath[PATH_MAX]; int i, j, iLen; - if (bRunLocal) { - strcpy (strPath, (char *) getenv ("HOME")); - strcat (strPath, "/fcitx/"); - } - else - strcpy (strPath, DATA_DIR); + strcpy (strPath, PKGDATADIR "/"); strcat (strPath, PY_BASE_FILE); fp = fopen (strPath, "rb"); if (!fp) @@ -155,12 +149,7 @@ bPYOtherDictLoaded = True; - if (bRunLocal) { - strcpy (strPath, (char *) getenv ("HOME")); - strcat (strPath, "/fcitx/"); - } - else - strcpy (strPath, DATA_DIR); + strcpy (strPath, PKGDATADIR "/"); strcat (strPath, PY_PHRASE_FILE); fp = fopen (strPath, "rb"); if (!fp) Index: ui.c =================================================================== RCS file: /srv/cvs/fcitx/ui.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- ui.c 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ ui.c 26 Feb 2004 00:10:48 -0000 1.2 @@ -54,7 +54,6 @@ extern Bool bIsResizingInputWindow; extern HIDE_MAINWINDOW hideMainWindow; extern IC *CurrentIC; -extern char *strDefaultLocale; Bool InitX (void) { Index: wbx.c =================================================================== RCS file: /srv/cvs/fcitx/wbx.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- wbx.c 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ wbx.c 26 Feb 2004 00:10:15 -0000 1.2 @@ -47,7 +47,6 @@ extern SINGLE_HZ legendCandWords[]; extern char strCodeInput[]; -extern Bool bRunLocal; extern Bool bIsDoInputOnly; extern int iCandPageCount; extern int iCurrentCandPage; @@ -94,12 +93,7 @@ //读入五笔码表 if (access (strPath, 0)) { - if (bRunLocal) { - strcpy (strPath, (char *) getenv ("HOME")); - strcat (strPath, "/fcitx/"); - } - else - strcpy (strPath, DATA_DIR); + strcpy (strPath, PKGDATADIR "/"); strcat (strPath, WUBI_DICT_FILENAME); fpDict = fopen (strPath, "rt"); } @@ -135,12 +129,7 @@ strcat (strPath, WUBI_FH_FILENAME); if (access (strPath, 0)) { - if (bRunLocal) { - strcpy (strPath, (char *) getenv ("HOME")); - strcat (strPath, "/fcitx/"); - } - else - strcpy (strPath, DATA_DIR); + strcpy (strPath, PKGDATADIR "/"); strcat (strPath, WUBI_FH_FILENAME); fpDict = fopen (strPath, "rt"); } Index: xim.c =================================================================== RCS file: /srv/cvs/fcitx/xim.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- xim.c 25 Feb 2004 23:30:28 -0000 1.1.1.1 +++ xim.c 26 Feb 2004 00:12:12 -0000 1.2 @@ -11,8 +11,6 @@ long filter_mask = KeyPressMask | KeyReleaseMask; IC *CurrentIC; -Bool bRunLocal = False; -char *strDefaultLocale; Bool bUseCtrlShift = False; Bool bBackground = True; @@ -388,7 +386,14 @@ encodings->supported_encodings = zhEncodings; strcpy (transport, "X/"); - ims = IMOpenIM (dpy, IMModifiers, "Xi18n", IMServerWindow, im_window, IMServerName, imname, IMLocale, (strcasecmp (strDefaultLocale, "zh_CN.gb2312")) ? strDefaultLocale : "zh_CN", IMServerTransport, transport, IMInputStyles, input_styles, NULL); + ims = IMOpenIM (dpy, + IMModifiers, "Xi18n", + IMServerWindow, im_window, + IMServerName, imname, + IMServerTransport, transport, + IMLocale, "zh_CN,en_US.UTF-8", + IMInputStyles, input_styles, + NULL); if (ims == (XIMS) NULL) { fprintf (stderr, "已经存在另一个同名服务程序 %s\n", imname); return False; Index: IMdkit/lib/Makefile =================================================================== RCS file: /srv/cvs/fcitx/IMdkit/lib/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- IMdkit/lib/Makefile 25 Feb 2004 23:30:29 -0000 1.1.1.1 +++ IMdkit/lib/Makefile 26 Feb 2004 21:45:21 -0000 1.2 @@ -1,8 +1,11 @@ +ifndef XFREE_DIR + XFREE_DIR = /usr/X11R6 +endif CC = gcc #CFLAGS = -c -O2 -fno-strength-reduce -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DUNIXCONN -DTCPCONN -DXIM_t -DTRANS_SERVER CFLAGS = -c -O2 -fno-strength-reduce -DXIM_t -DTRANS_SERVER -INC = -I../include -I/usr/X11R6/include -I${XFREE_DIR}/include +INC = -I../include -I${XFREE_DIR}/include SRC = IMConn.c IMValues.c IMMethod.c FrameMgr.c i18nIMProto.c i18nAttr.c i18nMethod.c i18nUtil.c i18nPtHdr.c i18nIc.c i18nClbk.c i18nX.c