diff options
author | Michael Januszewski <spock@gentoo.org> | 2004-03-29 18:17:02 +0000 |
---|---|---|
committer | Michael Januszewski <spock@gentoo.org> | 2004-03-29 18:17:02 +0000 |
commit | f398bd74569c69b698102b146ef087889bfb4b96 (patch) | |
tree | 7b563d1a69f71060ade925d9567dfec48d27c12b /x11-terms/aterm/files | |
parent | Stable on alpha and ia64 (Manifest recommit) (diff) | |
download | gentoo-2-f398bd74569c69b698102b146ef087889bfb4b96.tar.gz gentoo-2-f398bd74569c69b698102b146ef087889bfb4b96.tar.bz2 gentoo-2-f398bd74569c69b698102b146ef087889bfb4b96.zip |
Updated the copynpaste patch to make jedit happy and close a bug.
Diffstat (limited to 'x11-terms/aterm/files')
-rw-r--r-- | x11-terms/aterm/files/aterm-0.4.2-copynpaste-r3.patch | 180 | ||||
-rw-r--r-- | x11-terms/aterm/files/digest-aterm-0.4.2-r9 | 2 |
2 files changed, 182 insertions, 0 deletions
diff --git a/x11-terms/aterm/files/aterm-0.4.2-copynpaste-r3.patch b/x11-terms/aterm/files/aterm-0.4.2-copynpaste-r3.patch new file mode 100644 index 000000000000..bf837a6f3d90 --- /dev/null +++ b/x11-terms/aterm/files/aterm-0.4.2-copynpaste-r3.patch @@ -0,0 +1,180 @@ +diff -Naur aterm-orig/configure aterm-0.4.2/configure +--- aterm-orig/configure 2001-09-06 18:38:07.000000000 +0200 ++++ aterm-0.4.2/configure 2004-03-29 19:38:49.923263224 +0200 +@@ -2609,7 +2609,7 @@ + ; \ + do + ac_save_LIBS=$LIBS +- LIBS="-L$ac_dir -lXpm $LIBS -lX11" ++ LIBS="-L$ac_dir -lXpm $LIBS -lX11 -lXmu" + cat > conftest.$ac_ext <<EOF + #line 2615 "configure" + #include "confdefs.h" +diff -Naur aterm-orig/src/command.c aterm-0.4.2/src/command.c +--- aterm-orig/src/command.c 2001-09-06 18:38:07.000000000 +0200 ++++ aterm-0.4.2/src/command.c 2004-03-29 19:38:49.928262464 +0200 +@@ -2653,7 +2653,7 @@ + switch (ev->xbutton.button) { + case Button1: + case Button3: +- selection_make(ev->xbutton.time); ++ selection_make(ev->xbutton.time, ev->xbutton.state); + break; + + case Button2: +diff -Naur aterm-orig/src/screen.c aterm-0.4.2/src/screen.c +--- aterm-orig/src/screen.c 2004-03-29 19:38:25.944908488 +0200 ++++ aterm-0.4.2/src/screen.c 2004-03-29 19:28:56.000000000 +0200 +@@ -44,7 +44,7 @@ + + #include <X11/Xatom.h> + #include <X11/Xmd.h> /* get the typedef for CARD32 */ +- ++#include <X11/Xmu/Atoms.h> + + static screen_t screen; + +@@ -2759,21 +2759,88 @@ + long nread; + unsigned long bytes_after, nitems; + unsigned char *data; ++ XTextProperty ct; + Atom actual_type; + int actual_fmt; +- ++ int dummy_count; ++ char **cl; ++ XEvent ev; ++ XWindowAttributes wa; ++ int setpropertyevent = 0; ++ + if (prop == None) + return; ++ + for (nread = 0, bytes_after = 1; bytes_after > 0; nread += nitems) { + if ((XGetWindowProperty(Xdisplay, win, prop, (nread / 4), PROP_SIZE, +- Delete, AnyPropertyType, &actual_type, +- &actual_fmt, &nitems, &bytes_after, +- &data) != Success)) { +- XFree(data); ++ False, AnyPropertyType, &ct.encoding, &ct.format, ++ &ct.nitems, &bytes_after, &ct.value) != Success)) { ++ XFree(ct.value); + return; + } +- PasteIt(data, nitems); +- XFree(data); ++ ++ if (ct.encoding == XInternAtom(Xdisplay, "INCR", False)) { ++ /* ++ * This is an INCR (incremental large) paste ++ */ ++ XGetWindowAttributes(Xdisplay, win, &wa); ++ if ((wa.your_event_mask | PropertyChangeMask) != wa.your_event_mask) { ++ /* We need to register the PropertyNotify event */ ++ XSelectInput(Xdisplay, win, (wa.your_event_mask | PropertyChangeMask) ); ++ setpropertyevent = 1; ++ } ++ XDeleteProperty(Xdisplay, win, prop); ++ while (1) { ++ XWindowEvent(Xdisplay, win, PropertyChangeMask, &ev); ++ if (ev.xproperty.state != PropertyNewValue) ++ continue; ++ if ((XGetWindowProperty(Xdisplay, win, prop, 0, PROP_SIZE, ++ True, AnyPropertyType, &ct.encoding, &ct.format, ++ &ct.nitems, &bytes_after, &ct.value) != Success)) { ++ XFree(ct.value); ++ /* error */ ++ break; ++ } ++ ++ if (ct.nitems == 0) { ++ /* end of INCR transfer */ ++ XFree(ct.value); ++ break; ++ } ++ else { ++ if (XmbTextPropertyToTextList(Xdisplay, &ct, &cl, &dummy_count) == Success && cl) { ++ PasteIt(cl[0], strlen(cl[0])); ++ XFreeStringList(cl); ++ } else { ++ PasteIt(ct.value, (unsigned int)ct.nitems); ++ } ++ ++ XFree(ct.value); ++ } ++ } ++ if (setpropertyevent == 1) { ++ /* We need to unregister the PropertyNotify event */ ++ XGetWindowAttributes(Xdisplay, win, &wa); ++ XSelectInput(Xdisplay, win, (wa.your_event_mask ^ PropertyChangeMask)); ++ setpropertyevent = 0; ++ } ++ } else { ++ /* ++ * This is a normal 1-time paste ++ */ ++ if (XmbTextPropertyToTextList(Xdisplay, &ct, &cl, &dummy_count) == Success && cl) { ++ PasteIt(cl[0], strlen(cl[0])); ++ XFreeStringList(cl); ++ } else { ++ PasteIt(ct.value, (unsigned int)ct.nitems); ++ } ++ ++ if (Delete) { ++ XDeleteProperty(Xdisplay, win, prop); ++ } ++ ++ XFree(ct.value); ++ } + } + } + +@@ -2787,6 +2854,9 @@ + selection_request(Time tm, int x, int y) + { + Atom prop; ++ Atom xa; ++ ++ xa = XInternAtom(Xdisplay, "COMPOUND_TEXT", False); + + if (!(Options & Opt_pasteMouseOutside)) + if (x < 0 || x >= TermWin.width || y < 0 || y >= TermWin.height) +@@ -2798,8 +2868,11 @@ + selection_paste(Xroot, XA_CUT_BUFFER0, False); + } else { + prop = XInternAtom(Xdisplay, "VT_SELECTION", False); +- XConvertSelection(Xdisplay, XA_PRIMARY, XA_STRING, prop, TermWin.vt, +- tm); ++ if (XConvertSelection(Xdisplay, XA_PRIMARY, xa, prop, TermWin.vt,tm) != Success) { ++ if (XConvertSelection(Xdisplay, XA_PRIMARY, XA_UTF8_STRING(Xdisplay), prop, TermWin.vt,tm) != Success) {; ++ XConvertSelection(Xdisplay, XA_PRIMARY, XA_STRING, prop, TermWin.vt,tm); ++ } ++ } + } + } + +@@ -2828,7 +2901,7 @@ + */ + /* PROTO */ + void +-selection_make(Time tm) ++selection_make(Time tm, unsigned int key_state) + { + int i, col, end_col, row, end_row; + unsigned char *new_selection_text; +@@ -2895,7 +2968,13 @@ + FREE(selection.text); + selection.text = new_selection_text; + +- XSetSelectionOwner(Xdisplay, XA_PRIMARY, TermWin.vt, tm); ++ // selecting with ALT will put the text to clipboard ++ if (key_state & Mod1Mask) { ++ XSetSelectionOwner(Xdisplay, XA_CLIPBOARD(Xdisplay), TermWin.vt, tm); ++ } else { ++ XSetSelectionOwner(Xdisplay, XA_PRIMARY, TermWin.vt, tm); ++ } ++ + if (XGetSelectionOwner(Xdisplay, XA_PRIMARY) != TermWin.vt) + print_error("can't get primary selection"); + XChangeProperty(Xdisplay, Xroot, XA_CUT_BUFFER0, XA_STRING, 8, diff --git a/x11-terms/aterm/files/digest-aterm-0.4.2-r9 b/x11-terms/aterm/files/digest-aterm-0.4.2-r9 new file mode 100644 index 000000000000..a1aafd5e085e --- /dev/null +++ b/x11-terms/aterm/files/digest-aterm-0.4.2-r9 @@ -0,0 +1,2 @@ +MD5 5c29d0cde4225bdbd63ccb6a4dd94c56 aterm-0.4.2.tar.bz2 243419 +MD5 2bd8629ea2a1926bca13841b0aca6604 aterm-0.4.2-ja.patch 84282 |