mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-29 01:13:08 +00:00
New port, ted:
Ted is a small and powerful Text editor for X Window, the interface is like PE2 on DOS PR: 4571 Submitted by: vanilla@MinJe.com.TW
This commit is contained in:
parent
94445548c6
commit
b6e79752fb
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=8072
22
chinese/ted/Makefile
Normal file
22
chinese/ted/Makefile
Normal file
@ -0,0 +1,22 @@
|
||||
# New ports collection makefile for: ted
|
||||
# Version required: 3.6a
|
||||
# Date Created: 18 Sep 1997
|
||||
# Whom: Vanilla I. Shu <vanilla@MinJe.com.TW>
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
DISTNAME= ted3.6a
|
||||
PKGNAME= zh-ted-3.6a
|
||||
CATEGORIES= chinese editors
|
||||
MASTER_SITES= ${MASTER_SITE_XCONTRIB}
|
||||
MASTER_SITE_SUBDIR= editors/
|
||||
EXTRACT_SUFX= .tgz
|
||||
|
||||
MAINTAINER= vanilla@MinJe.com.TW
|
||||
|
||||
USE_X11= yes
|
||||
WRKSRC= ${WRKDIR}/ted
|
||||
MAKEFILE= Makefile.b5
|
||||
|
||||
.include <bsd.port.mk>
|
1
chinese/ted/distinfo
Normal file
1
chinese/ted/distinfo
Normal file
@ -0,0 +1 @@
|
||||
MD5 (ted3.6a.tgz) = 2914e6dc0e5b6c99bdf11ab724a679fa
|
74
chinese/ted/files/patch-aa
Normal file
74
chinese/ted/files/patch-aa
Normal file
@ -0,0 +1,74 @@
|
||||
*** Makefile.b5.orig Fri Sep 19 01:15:03 1997
|
||||
--- Makefile.b5 Fri Sep 19 01:18:22 1997
|
||||
***************
|
||||
*** 1,5 ****
|
||||
CHINESE=1
|
||||
! TEDDIR=/usr/local/lib/Ted
|
||||
########## GCC/Linux ...... ############
|
||||
CC=gcc
|
||||
CComp=GCC
|
||||
--- 1,5 ----
|
||||
CHINESE=1
|
||||
! TEDDIR=/usr/X11R6/lib/X11/ted
|
||||
########## GCC/Linux ...... ############
|
||||
CC=gcc
|
||||
CComp=GCC
|
||||
*************** LDFLAGS= -L/usr/X11R6/lib
|
||||
*** 27,41 ****
|
||||
#SUNKBD=-DSUNKBD
|
||||
###########################
|
||||
|
||||
! CFLAGS = -O -DCHINESE=$(CHINESE) -I$(XINC) -DCComp=$(CComp) $(SUNKBD)
|
||||
#CFLAGS = -g -DCHINESE=$(CHINESE) -I$(XINC) -DCComp=$(CComp) -DDEBUG $(SUNKBD)
|
||||
|
||||
OBJS = e.o x.o m.o f.o b.o edln.o xcp.o s.o u.o misc.o twin.o dir.o xkey.o \
|
||||
cwin.o filebrowse.o cli_xcin.o kwcomp.o
|
||||
|
||||
! all: ted ref ctags
|
||||
ted: $(OBJS)
|
||||
! $(CC) -g $(OBJS) -o $@ $(LDFLAGS) -lX11
|
||||
# strip $@
|
||||
echo '*** Finish ***'
|
||||
ref:
|
||||
--- 27,41 ----
|
||||
#SUNKBD=-DSUNKBD
|
||||
###########################
|
||||
|
||||
! CFLAGS += -DCHINESE=$(CHINESE) -I$(XINC) -DCComp=$(CComp) $(SUNKBD)
|
||||
#CFLAGS = -g -DCHINESE=$(CHINESE) -I$(XINC) -DCComp=$(CComp) -DDEBUG $(SUNKBD)
|
||||
|
||||
OBJS = e.o x.o m.o f.o b.o edln.o xcp.o s.o u.o misc.o twin.o dir.o xkey.o \
|
||||
cwin.o filebrowse.o cli_xcin.o kwcomp.o
|
||||
|
||||
! all: ted #ref ctags
|
||||
ted: $(OBJS)
|
||||
! $(CC) $(OBJS) -o $@ $(LDFLAGS) -lX11
|
||||
# strip $@
|
||||
echo '*** Finish ***'
|
||||
ref:
|
||||
*************** ctags:
|
||||
*** 45,55 ****
|
||||
$(CC) $(CFLAGS) ctags.c -o $@
|
||||
strip $@
|
||||
install:
|
||||
! cp ted ref ctags /usr/local/bin
|
||||
if [ ! -d $(TEDDIR) ]; then mkdir $(TEDDIR); fi
|
||||
! cp tedrc ted.help $(TEDDIR)
|
||||
! cli_xcin.o:
|
||||
! ln -s ../big5-pack/xcin/cli_xcin.o .
|
||||
clean:
|
||||
rm -f $(OBJS) ted core *~ *_
|
||||
clb5:
|
||||
--- 45,56 ----
|
||||
$(CC) $(CFLAGS) ctags.c -o $@
|
||||
strip $@
|
||||
install:
|
||||
! install -c -s -o bin -g bin -m 0755 ted /usr/X11R6/bin
|
||||
if [ ! -d $(TEDDIR) ]; then mkdir $(TEDDIR); fi
|
||||
! install -c -o bin -g bin -m 0555 tedrc $(TEDDIR)
|
||||
! install -c -o bin -g bin -m 0555 ted.help $(TEDDIR)
|
||||
! #cli_xcin.o:
|
||||
! # ln -s ../big5-pack/xcin/cli_xcin.o .
|
||||
clean:
|
||||
rm -f $(OBJS) ted core *~ *_
|
||||
clb5:
|
19
chinese/ted/files/patch-ab
Normal file
19
chinese/ted/files/patch-ab
Normal file
@ -0,0 +1,19 @@
|
||||
*** xkey.c.orig Thu Sep 18 23:23:06 1997
|
||||
--- xkey.c Thu Sep 18 23:23:45 1997
|
||||
*************** if (cdtedrc && (fp=fopen(ftedrc,"r"))) {
|
||||
*** 563,569 ****
|
||||
if (fp=fopen(
|
||||
strcat(strcat(strcpy(tt,(char *)getenv("HOME")),"/.Ted/"),ftedrc), "r"
|
||||
)) return fp;
|
||||
! if (fp=fopen(strcat(strcpy(uu,"/usr/local/lib/Ted/"),ftedrc),"r"))
|
||||
return fp;
|
||||
if (!depth) {
|
||||
if (cdtedrc)
|
||||
--- 563,569 ----
|
||||
if (fp=fopen(
|
||||
strcat(strcat(strcpy(tt,(char *)getenv("HOME")),"/.Ted/"),ftedrc), "r"
|
||||
)) return fp;
|
||||
! if (fp=fopen(strcat(strcpy(uu,"/usr/X11R6/lib/X11/ted/"),ftedrc),"r"))
|
||||
return fp;
|
||||
if (!depth) {
|
||||
if (cdtedrc)
|
21
chinese/ted/files/patch-ac
Normal file
21
chinese/ted/files/patch-ac
Normal file
@ -0,0 +1,21 @@
|
||||
*** tedrc.orig Thu Sep 18 23:24:10 1997
|
||||
--- tedrc Thu Sep 18 23:24:39 1997
|
||||
*************** f [a-f12] MergeTedrc("localtedrc")
|
||||
*** 153,160 ****
|
||||
f [s-f9] ExeCmdFnameExt("make",".o")
|
||||
## If the file is already open, switch to this file; otherwise
|
||||
## load the file
|
||||
! f [f1] RaiseOrLoad("/usr/local/lib/Ted/ted.help")
|
||||
! f [c-a][f1] RaiseOrLoad("/usr/local/lib/Ted/tedrc")
|
||||
## execute command and place the output in the current file
|
||||
#f [c-q][s] InsPipe("ls")
|
||||
# Excute command and and place output in a new file with name same as the command
|
||||
--- 153,160 ----
|
||||
f [s-f9] ExeCmdFnameExt("make",".o")
|
||||
## If the file is already open, switch to this file; otherwise
|
||||
## load the file
|
||||
! f [f1] RaiseOrLoad("/usr/X11R6/lib/X11/ted/ted.help")
|
||||
! f [c-a][f1] RaiseOrLoad("/usr/X11R6/lib/X11/ted/tedrc")
|
||||
## execute command and place the output in the current file
|
||||
#f [c-q][s] InsPipe("ls")
|
||||
# Excute command and and place output in a new file with name same as the command
|
182
chinese/ted/files/patch-ad
Normal file
182
chinese/ted/files/patch-ad
Normal file
@ -0,0 +1,182 @@
|
||||
*** cli_xcin.c.orig Fri Sep 19 01:19:33 1997
|
||||
--- cli_xcin.c Sat Sep 13 11:41:12 1997
|
||||
***************
|
||||
*** 0 ****
|
||||
--- 1,130 ----
|
||||
+ /*
|
||||
+ Copyright (C) 1994,1995 Edward Der-Hua Liu, Hsin-Chu, Taiwan
|
||||
+ */
|
||||
+
|
||||
+ #include <stdio.h>
|
||||
+ #include <stdarg.h>
|
||||
+ #include <sys/types.h>
|
||||
+ #include <X11/Xlib.h>
|
||||
+ #include <X11/Xatom.h>
|
||||
+ #include "state.h"
|
||||
+ #include "protocol.h"
|
||||
+
|
||||
+ static Atom xcin_atom=0;
|
||||
+ static Window xcin_win=None;
|
||||
+ static InmdState inmdstate;
|
||||
+ #define ENDIAN_TEST() (*(int *)"\x11\x22\x33\x44"==0x11223344)
|
||||
+ static char my_endian;
|
||||
+
|
||||
+ static connect_xcin(Display *display)
|
||||
+ {
|
||||
+ Window twin;
|
||||
+ xcin_atom=XInternAtom(display, XCIN_ATOM,False);
|
||||
+ my_endian=ENDIAN_TEST(); /* if == 11223344, it is big-endian */
|
||||
+
|
||||
+ xcin_win=XGetSelectionOwner(display,xcin_atom);
|
||||
+ return xcin_win;
|
||||
+ }
|
||||
+
|
||||
+ void send_FocusIn(Display *display, Window window)
|
||||
+ {
|
||||
+ XClientMessageEvent event;
|
||||
+ XEvent erreve;
|
||||
+ char *tmp=event.data.b;
|
||||
+
|
||||
+ if (connect_xcin(display)==None) return;
|
||||
+ /* Ensure xcin exists, or the process will be hanged */
|
||||
+ event.type=ClientMessage;
|
||||
+ event.window=window;
|
||||
+ event.message_type=xcin_atom;
|
||||
+ event.format=8;
|
||||
+
|
||||
+ tmp[0]=tmp[1]=tmp[2]=0xff;
|
||||
+ tmp[3]=CLI_FOCUS_IN;
|
||||
+ memcpy(&tmp[4],&inmdstate, sizeof(inmdstate));
|
||||
+ XSendEvent(display, xcin_win, False, 0, (XEvent *)&event);
|
||||
+ }
|
||||
+
|
||||
+ static void send_FocusOut(Display *display, Window window)
|
||||
+ {
|
||||
+ XClientMessageEvent event;
|
||||
+ XEvent erreve;
|
||||
+ char *tmp=event.data.b;
|
||||
+
|
||||
+ if (connect_xcin(display)==None) return;
|
||||
+ /* Ensure xcin exists, or the process will be hanged */
|
||||
+ event.type=ClientMessage;
|
||||
+ event.window=window;
|
||||
+ event.message_type=xcin_atom;
|
||||
+ event.format=8;
|
||||
+
|
||||
+ tmp[0]=tmp[1]=tmp[2]=0xff;
|
||||
+ tmp[3]=CLI_FOCUS_OUT;
|
||||
+ memcpy(&tmp[4],&inmdstate, sizeof(inmdstate));
|
||||
+ XSendEvent(display, xcin_win, False, 0, (XEvent *)&event);
|
||||
+ }
|
||||
+
|
||||
+ static void big_little(char *i)
|
||||
+ {
|
||||
+ char t;
|
||||
+ t=*i; *i=*(i+3); *(i+3)=t;
|
||||
+ t=*(i+1); *(i+1)=*(i+2); *(i+2)=t;
|
||||
+ }
|
||||
+ static read_keys(Display *display, char *buf)
|
||||
+ {
|
||||
+ Atom actual_type;
|
||||
+ int actual_format,i;
|
||||
+ u_long nitems,bytes_after;
|
||||
+ char *ttt, *cp;
|
||||
+ XCIN_RES res;
|
||||
+ int ofs;
|
||||
+ cp=(char *)&res;
|
||||
+ ofs=0;
|
||||
+ do {
|
||||
+ if (XGetWindowProperty(display,xcin_win,xcin_atom,
|
||||
+ ofs/4,(sizeof(XCIN_RES)+3)/4,
|
||||
+ True, AnyPropertyType, &actual_type,&actual_format,
|
||||
+ &nitems,&bytes_after,(unsigned char **)&ttt) != Success)
|
||||
+ puts("err property");
|
||||
+ memcpy((char *)(&res)+(ofs & ~0x3), ttt, nitems);
|
||||
+ XFree(ttt);
|
||||
+ ofs=(ofs & ~0x3) + nitems;
|
||||
+ } while ((!nitems && !ofs) || bytes_after>0);
|
||||
+ if (my_endian) {
|
||||
+ big_little((char *)&res.len);
|
||||
+ big_little((char *)&res.status);
|
||||
+ }
|
||||
+ memcpy(buf,res.tkey, res.len);
|
||||
+ inmdstate=res.inmdstate;
|
||||
+ buf[res.len]=0;
|
||||
+ return res.status;
|
||||
+ }
|
||||
+
|
||||
+ #include <X11/Xutil.h>
|
||||
+
|
||||
+ static XComposeStatus compose_status = {NULL, 0};
|
||||
+
|
||||
+ send_key(Display *display, Window win, XKeyEvent *eve, char *buf)
|
||||
+ {
|
||||
+ XClientMessageEvent event;
|
||||
+ XEvent erreve;
|
||||
+ char *tmp=event.data.b;
|
||||
+ u_char tttt[8];
|
||||
+ KeySym keysym;
|
||||
+ int count;
|
||||
+
|
||||
+ if (xcin_win==None && connect_xcin(display)==None)
|
||||
+ return K_REJECT;
|
||||
+ if ((xcin_win=XGetSelectionOwner(display,xcin_atom))==None)
|
||||
+ return K_REJECT;
|
||||
+
|
||||
+ event.type=ClientMessage;
|
||||
+ event.window=win;
|
||||
+ event.message_type=xcin_atom;
|
||||
+ event.format=32;
|
||||
+ count =XLookupString (eve, tttt, sizeof(tmp), (KeySym *)tmp, &compose_status);
|
||||
+ memcpy(&tmp[4],&eve->state,4);
|
||||
+ XSendEvent(display, xcin_win, False, 0, (XEvent *)&event);
|
||||
+ XSync(display,False);
|
||||
+ return (read_keys(display, buf));
|
||||
+ }
|
||||
*** protocol.h.orig Fri Sep 19 01:19:44 1997
|
||||
--- protocol.h Fri Sep 19 01:19:41 1997
|
||||
***************
|
||||
*** 0 ****
|
||||
--- 1,13 ----
|
||||
+ /*
|
||||
+ Copyright (C) 1994 Edward Der-Hua Liu, Hsin-Chu, Taiwan
|
||||
+ */
|
||||
+
|
||||
+ #define K_REJECT (0)
|
||||
+ #define K_ACCEPT (1)
|
||||
+
|
||||
+ #define CLI_FOCUS_IN (1)
|
||||
+ #define CLI_FOCUS_OUT (3)
|
||||
+
|
||||
+ #define LOAD_KEYWORD (2)
|
||||
+
|
||||
+ #define XCIN_ATOM "XCIN_A"
|
||||
*** state.h.orig Fri Sep 19 01:20:14 1997
|
||||
--- state.h Fri Sep 19 01:20:05 1997
|
||||
***************
|
||||
*** 0 ****
|
||||
--- 1,24 ----
|
||||
+ /*
|
||||
+ Copyright (C) 1994 Edward Der-Hua Liu, Hsin-Chu, Taiwan
|
||||
+ */
|
||||
+
|
||||
+ typedef struct {
|
||||
+ char kb_state;
|
||||
+ char _CurInMethod;
|
||||
+ } InmdState;
|
||||
+
|
||||
+ #define EngChiMask (1)
|
||||
+ #define HalfFullMask (2)
|
||||
+
|
||||
+ typedef struct {
|
||||
+ int len;
|
||||
+ int status;
|
||||
+ InmdState inmdstate;
|
||||
+ char tkey[512];
|
||||
+ } XCIN_RES;
|
||||
+
|
||||
+ #define EngChi ((inmdstate.kb_state & EngChiMask) ? 1:0)
|
||||
+ #define HalfFull ((inmdstate.kb_state & HalfFullMask) ? 1:0)
|
||||
+ #define CurInMethod (inmdstate._CurInMethod)
|
||||
+ /*extern InmdState inmdstate;
|
||||
+ */
|
1
chinese/ted/pkg-comment
Normal file
1
chinese/ted/pkg-comment
Normal file
@ -0,0 +1 @@
|
||||
A Small and Powerful Text Editor for X Window with big5 support
|
5
chinese/ted/pkg-descr
Normal file
5
chinese/ted/pkg-descr
Normal file
@ -0,0 +1,5 @@
|
||||
Ted is a small and powerful Text editor for X Window,
|
||||
the interface is like PE2 on DOS
|
||||
|
||||
- Vanilla
|
||||
vanilla@MinJe.com.TW
|
4
chinese/ted/pkg-plist
Normal file
4
chinese/ted/pkg-plist
Normal file
@ -0,0 +1,4 @@
|
||||
bin/ted
|
||||
lib/X11/ted/ted.help
|
||||
lib/X11/ted/tedrc
|
||||
@dirrm lib/X11/ted
|
Loading…
Reference in New Issue
Block a user