annotate tests/Dnd/README @ 5168:cf900a2f1fa3

extract gap array from extents.c, use in range tables -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-03-22 Ben Wing <ben@xemacs.org> * Makefile.in.in (objs): * array.c: * array.c (gap_array_adjust_markers): * array.c (gap_array_move_gap): * array.c (gap_array_make_gap): * array.c (gap_array_insert_els): * array.c (gap_array_delete_els): * array.c (gap_array_make_marker): * array.c (gap_array_delete_marker): * array.c (gap_array_delete_all_markers): * array.c (gap_array_clone): * array.h: * depend: * emacs.c (main_1): * extents.c: * extents.c (EXTENT_GAP_ARRAY_AT): * extents.c (extent_list_num_els): * extents.c (extent_list_locate): * extents.c (extent_list_at): * extents.c (extent_list_delete_all): * extents.c (allocate_extent_list): * extents.c (syms_of_extents): * extents.h: * extents.h (XEXTENT_LIST_MARKER): * lisp.h: * rangetab.c: * rangetab.c (mark_range_table): * rangetab.c (print_range_table): * rangetab.c (range_table_equal): * rangetab.c (range_table_hash): * rangetab.c (verify_range_table): * rangetab.c (get_range_table_pos): * rangetab.c (Fmake_range_table): * rangetab.c (Fcopy_range_table): * rangetab.c (Fget_range_table): * rangetab.c (put_range_table): * rangetab.c (Fclear_range_table): * rangetab.c (Fmap_range_table): * rangetab.c (unified_range_table_bytes_needed): * rangetab.c (unified_range_table_copy_data): * rangetab.c (unified_range_table_lookup): * rangetab.h: * rangetab.h (struct range_table_entry): * rangetab.h (struct Lisp_Range_Table): * rangetab.h (rangetab_gap_array_at): * symsinit.h: Rename dynarr.c to array.c. Move gap array from extents.c to array.c. Extract dynarr, gap array and stack-like malloc into new file array.h. Rename GAP_ARRAY_NUM_ELS -> gap_array_length(). Add gap_array_at(), gap_array_atp(). Rewrite range table code to use gap arrays. Make put_range_table() smarter so that its operation is O(log n) for adding a localized range. * gc.c (lispdesc_block_size_1): Don't ABORT() when two elements are located at the same place. This will happen with a size-0 gap array -- both parts of the array (before and after gap) are in the same place.
author Ben Wing <ben@xemacs.org>
date Mon, 22 Mar 2010 19:12:15 -0500
parents bc4f2511bbea
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 * Sun May 3 1998 Oliver Graf <ograf@fga.de>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 This path contains test code for the new XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 Drag'n'Drop code.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 To test the code do the following:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 1) call 'bash droptest.sh' to create the test files in /tmp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 2) load and eval droptest.el in XEmacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 3) Try to do some internal DnD by using the sources and targets
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 in the new buffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 4) Do some external DnD:
4790
bc4f2511bbea Remove support for the OffiX drag-and-drop protocol. See xemacs-patches
Jerry James <james@xemacs.org>
parents: 428
diff changeset
12 4a) CDE: use dtfile and dtpad
bc4f2511bbea Remove support for the OffiX drag-and-drop protocol. See xemacs-patches
Jerry James <james@xemacs.org>
parents: 428
diff changeset
13 4b) MSWindows: well, explorer should do. But only file data
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 should work, and I don't know if the test
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 already handles this.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 The misc-user-event now also responds as a button-x-event
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 to the event-* query functions.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 The function of a drag is called dragdrop-drop-dispatch
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 as you can see in droptest.el. From within the function
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 you can access the actual misc-user-event through the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 current-mouse-event variable.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 Short description of the object part of a drop misc-user-event:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 ( TYPE . DATA )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 TYPE is either the symbol dragdrop_MIME
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 or the symbol dragdrop_URL
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 DATA is a list of URL strings if TYPE is dragdrop_URL
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 if TYPE is dragdrop_MIME DATA is either a string
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 which contains the MIME data, or it is a list of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 ( CONTENT-TYPE CONTENT-ENCODING MIME-DATA )
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 CONTENT-TYPE is encoded for tm-view (list, first element type,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 rest key.value conses)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 CONTENT-ENCODING is a string
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 MIME-DATA is a string
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 CONTENT-TYPE and -ENCODING can be directly supplied to mime/viewer-mode.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40