annotate lisp/ChangeLog.GTK @ 665:fdefd0186b75

[xemacs-hg @ 2001-09-20 06:28:42 by ben] The great integral types renaming. The purpose of this is to rationalize the names used for various integral types, so that they match their intended uses and follow consist conventions, and eliminate types that were not semantically different from each other. The conventions are: -- All integral types that measure quantities of anything are signed. Some people disagree vociferously with this, but their arguments are mostly theoretical, and are vastly outweighed by the practical headaches of mixing signed and unsigned values, and more importantly by the far increased likelihood of inadvertent bugs: Because of the broken "viral" nature of unsigned quantities in C (operations involving mixed signed/unsigned are done unsigned, when exactly the opposite is nearly always wanted), even a single error in declaring a quantity unsigned that should be signed, or even the even more subtle error of comparing signed and unsigned values and forgetting the necessary cast, can be catastrophic, as comparisons will yield wrong results. -Wsign-compare is turned on specifically to catch this, but this tends to result in a great number of warnings when mixing signed and unsigned, and the casts are annoying. More has been written on this elsewhere. -- All such quantity types just mentioned boil down to EMACS_INT, which is 32 bits on 32-bit machines and 64 bits on 64-bit machines. This is guaranteed to be the same size as Lisp objects of type `int', and (as far as I can tell) of size_t (unsigned!) and ssize_t. The only type below that is not an EMACS_INT is Hashcode, which is an unsigned value of the same size as EMACS_INT. -- Type names should be relatively short (no more than 10 characters or so), with the first letter capitalized and no underscores if they can at all be avoided. -- "count" == a zero-based measurement of some quantity. Includes sizes, offsets, and indexes. -- "bpos" == a one-based measurement of a position in a buffer. "Charbpos" and "Bytebpos" count text in the buffer, rather than bytes in memory; thus Bytebpos does not directly correspond to the memory representation. Use "Membpos" for this. -- "Char" refers to internal-format characters, not to the C type "char", which is really a byte. -- For the actual name changes, see the script below. I ran the following script to do the conversion. (NOTE: This script is idempotent. You can safely run it multiple times and it will not screw up previous results -- in fact, it will do nothing if nothing has changed. Thus, it can be run repeatedly as necessary to handle patches coming in from old workspaces, or old branches.) There are two tags, just before and just after the change: `pre-integral-type-rename' and `post-integral-type-rename'. When merging code from the main trunk into a branch, the best thing to do is first merge up to `pre-integral-type-rename', then apply the script and associated changes, then merge from `post-integral-type-change' to the present. (Alternatively, just do the merging in one operation; but you may then have a lot of conflicts needing to be resolved by hand.) Script `fixtypes.sh' follows: ----------------------------------- cut ------------------------------------ files="*.[ch] s/*.h m/*.h config.h.in ../configure.in Makefile.in.in ../lib-src/*.[ch] ../lwlib/*.[ch]" gr Memory_Count Bytecount $files gr Lstream_Data_Count Bytecount $files gr Element_Count Elemcount $files gr Hash_Code Hashcode $files gr extcount bytecount $files gr bufpos charbpos $files gr bytind bytebpos $files gr memind membpos $files gr bufbyte intbyte $files gr Extcount Bytecount $files gr Bufpos Charbpos $files gr Bytind Bytebpos $files gr Memind Membpos $files gr Bufbyte Intbyte $files gr EXTCOUNT BYTECOUNT $files gr BUFPOS CHARBPOS $files gr BYTIND BYTEBPOS $files gr MEMIND MEMBPOS $files gr BUFBYTE INTBYTE $files gr MEMORY_COUNT BYTECOUNT $files gr LSTREAM_DATA_COUNT BYTECOUNT $files gr ELEMENT_COUNT ELEMCOUNT $files gr HASH_CODE HASHCODE $files ----------------------------------- cut ------------------------------------ `fixtypes.sh' is a Bourne-shell script; it uses 'gr': ----------------------------------- cut ------------------------------------ #!/bin/sh # Usage is like this: # gr FROM TO FILES ... # globally replace FROM with TO in FILES. FROM and TO are regular expressions. # backup files are stored in the `backup' directory. from="$1" to="$2" shift 2 echo ${1+"$@"} | xargs global-replace "s/$from/$to/g" ----------------------------------- cut ------------------------------------ `gr' in turn uses a Perl script to do its real work, `global-replace', which follows: ----------------------------------- cut ------------------------------------ : #-*- Perl -*- ### global-modify --- modify the contents of a file by a Perl expression ## Copyright (C) 1999 Martin Buchholz. ## Copyright (C) 2001 Ben Wing. ## Authors: Martin Buchholz <martin@xemacs.org>, Ben Wing <ben@xemacs.org> ## Maintainer: Ben Wing <ben@xemacs.org> ## Current Version: 1.0, May 5, 2001 # 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 XEmacs; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. eval 'exec perl -w -S $0 ${1+"$@"}' if 0; use strict; use FileHandle; use Carp; use Getopt::Long; use File::Basename; (my $myName = $0) =~ s@.*/@@; my $usage=" Usage: $myName [--help] [--backup-dir=DIR] [--line-mode] [--hunk-mode] PERLEXPR FILE ... Globally modify a file, either line by line or in one big hunk. Typical usage is like this: [with GNU print, GNU xargs: guaranteed to handle spaces, quotes, etc. in file names] find . -name '*.[ch]' -print0 | xargs -0 $0 's/\bCONST\b/const/g'\n [with non-GNU print, xargs] find . -name '*.[ch]' -print | xargs $0 's/\bCONST\b/const/g'\n The file is read in, either line by line (with --line-mode specified) or in one big hunk (with --hunk-mode specified; it's the default), and the Perl expression is then evalled with \$_ set to the line or hunk of text, including the terminating newline if there is one. It should destructively modify the value there, storing the changed result in \$_. Files in which any modifications are made are backed up to the directory specified using --backup-dir, or to `backup' by default. To disable this, use --backup-dir= with no argument. Hunk mode is the default because it is MUCH MUCH faster than line-by-line. Use line-by-line only when it matters, e.g. you want to do a replacement only once per line (the default without the `g' argument). Conversely, when using hunk mode, *ALWAYS* use `g'; otherwise, you will only make one replacement in the entire file! "; my %options = (); $Getopt::Long::ignorecase = 0; &GetOptions ( \%options, 'help', 'backup-dir=s', 'line-mode', 'hunk-mode', ); die $usage if $options{"help"} or @ARGV <= 1; my $code = shift; die $usage if grep (-d || ! -w, @ARGV); sub SafeOpen { open ((my $fh = new FileHandle), $_[0]); confess "Can't open $_[0]: $!" if ! defined $fh; return $fh; } sub SafeClose { close $_[0] or confess "Can't close $_[0]: $!"; } sub FileContents { my $fh = SafeOpen ("< $_[0]"); my $olddollarslash = $/; local $/ = undef; my $contents = <$fh>; $/ = $olddollarslash; return $contents; } sub WriteStringToFile { my $fh = SafeOpen ("> $_[0]"); binmode $fh; print $fh $_[1] or confess "$_[0]: $!\n"; SafeClose $fh; } foreach my $file (@ARGV) { my $changed_p = 0; my $new_contents = ""; if ($options{"line-mode"}) { my $fh = SafeOpen $file; while (<$fh>) { my $save_line = $_; eval $code; $changed_p = 1 if $save_line ne $_; $new_contents .= $_; } } else { my $orig_contents = $_ = FileContents $file; eval $code; if ($_ ne $orig_contents) { $changed_p = 1; $new_contents = $_; } } if ($changed_p) { my $backdir = $options{"backup-dir"}; $backdir = "backup" if !defined ($backdir); if ($backdir) { my ($name, $path, $suffix) = fileparse ($file, ""); my $backfulldir = $path . $backdir; my $backfile = "$backfulldir/$name"; mkdir $backfulldir, 0755 unless -d $backfulldir; print "modifying $file (original saved in $backfile)\n"; rename $file, $backfile; } WriteStringToFile ($file, $new_contents); } } ----------------------------------- cut ------------------------------------ In addition to those programs, I needed to fix up a few other things, particularly relating to the duplicate definitions of types, now that some types merged with others. Specifically: 1. in lisp.h, removed duplicate declarations of Bytecount. The changed code should now look like this: (In each code snippet below, the first and last lines are the same as the original, as are all lines outside of those lines. That allows you to locate the section to be replaced, and replace the stuff in that section, verifying that there isn't anything new added that would need to be kept.) --------------------------------- snip ------------------------------------- /* Counts of bytes or chars */ typedef EMACS_INT Bytecount; typedef EMACS_INT Charcount; /* Counts of elements */ typedef EMACS_INT Elemcount; /* Hash codes */ typedef unsigned long Hashcode; /* ------------------------ dynamic arrays ------------------- */ --------------------------------- snip ------------------------------------- 2. in lstream.h, removed duplicate declaration of Bytecount. Rewrote the comment about this type. The changed code should now look like this: --------------------------------- snip ------------------------------------- #endif /* The have been some arguments over the what the type should be that specifies a count of bytes in a data block to be written out or read in, using Lstream_read(), Lstream_write(), and related functions. Originally it was long, which worked fine; Martin "corrected" these to size_t and ssize_t on the grounds that this is theoretically cleaner and is in keeping with the C standards. Unfortunately, this practice is horribly error-prone due to design flaws in the way that mixed signed/unsigned arithmetic happens. In fact, by doing this change, Martin introduced a subtle but fatal error that caused the operation of sending large mail messages to the SMTP server under Windows to fail. By putting all values back to be signed, avoiding any signed/unsigned mixing, the bug immediately went away. The type then in use was Lstream_Data_Count, so that it be reverted cleanly if a vote came to that. Now it is Bytecount. Some earlier comments about why the type must be signed: This MUST BE SIGNED, since it also is used in functions that return the number of bytes actually read to or written from in an operation, and these functions can return -1 to signal error. Note that the standard Unix read() and write() functions define the count going in as a size_t, which is UNSIGNED, and the count going out as an ssize_t, which is SIGNED. This is a horrible design flaw. Not only is it highly likely to lead to logic errors when a -1 gets interpreted as a large positive number, but operations are bound to fail in all sorts of horrible ways when a number in the upper-half of the size_t range is passed in -- this number is unrepresentable as an ssize_t, so code that checks to see how many bytes are actually written (which is mandatory if you are dealing with certain types of devices) will get completely screwed up. --ben */ typedef enum lstream_buffering --------------------------------- snip ------------------------------------- 3. in dumper.c, there are four places, all inside of switch() statements, where XD_BYTECOUNT appears twice as a case tag. In each case, the two case blocks contain identical code, and you should *REMOVE THE SECOND* and leave the first.
author ben
date Thu, 20 Sep 2001 06:31:11 +0000
parents 0784d089fdc9
children aa729daae5e2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
1 2000-09-12 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
2
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
3 * dialog-gtk.el (popup-builtin-open-dialog): Went back to
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
4 using our lisp implementation of the file dialog. Much more
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
5 featureful.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
6
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
7 * ui/gtk-file-dialog.el: Reworked to use CList instead of Tree
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
8 elements (more like the `real' GTK file selector.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
9
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
10 2000-09-10 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
11
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
12 * gtk-iso8859-1.el (gtk-iso8859-1): Need to actually provide
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
13 the feature
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
14
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
15 2000-09-09 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
16
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
17 * dialog-gtk.el (popup-builtin-open-dialog): Guard against
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
18 calling gtk-main-quit too many times when destroying the
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
19 file-selection dialog.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
20
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
21 2000-09-08 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
22
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
23 * gtk-init.el (gtk-initialize-compose): Initialize the compose
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
24 map like X does.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
25
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
26 2000-09-03 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
27
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
28 * menubar-items.el (default-menubar): Include the font & size
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
29 menus when running under GTK.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
30
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
31 * gtk-faces.el (x-font-regexp-*): Added variable aliases for
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
32 the x-font-regexp-* variables. x-font-menu works now.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
33
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
34 * x-font-menu.el (font-menu-set-font): When setting the font, make
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
35 sure we don't set the type to 'x' blithely. This code is shared
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
36 with GTK now.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
37
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
38 2000-08-30 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
39
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
40 * dialog-gtk.el (popup-builtin-open-dialog): Signal 'quit' if the
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
41 user hits the cancel button. This gets rid of the 'wrong type
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
42 argument: stringp, nil' error.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
43
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
44 2000-08-28 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
45
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
46 * menubar-items.el (default-menubar): Disable the GTK font menu
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
47 item.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
48
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
49 * dialog-gtk.el (popup-builtin-open-dialog): Reimplemented the
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
50 file-open dialog to use the normal GTK selector.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
51
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
52 2000-07-26 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
53
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
54 * gtk-init.el (init-post-gtk-win): Define the mule-fonts specifier
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
55 tag and default fonts for it when mule is provided. This will
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
56 make x-symbol.el work.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
57
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
58 2000-07-24 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
59
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
60 * ui/gdk.el: Ditto.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
61
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
62 * ui/gnome-widgets.el: Ditto.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
63
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
64 * ui/gtk-widgets.el: Updated all gtk-import-function calls to pass
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
65 a symbol instead of a quoted string.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
66
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
67 * ui/gtk-ffi.el (gtk-import-variable): Make gtk-import-variable
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
68 able to take symbols instead of just strings. More consistent
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
69 with gtk-import-function this way.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
70
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
71 2000-07-22 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
72
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
73 * gtk-init.el (init-pre-gtk-win): Did not realize I had to do lisp
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
74 hackery to get '-unmapped' to work.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
75
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
76 2000-07-12 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
77
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
78 * ui/gtk-widgets.el (gtk-ctree-post-recursive):
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
79 (gtk-ctree-post-recursive-to-depth):
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
80 (gtk-ctree-pre-recursive):
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
81 (gtk-ctree-pre-recursive-to-depth): Added wrappers around the
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
82 combined gtk-ctree-recurse to make things easier on GTK authors
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
83 porting other code.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
84
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
85 2000-07-11 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
86
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
87 * gtk-init.el (init-gtk-win): Set gtk-initial-geometry out of
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
88 command-line-args-left.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
89 (gtk-filter-arguments): New function to filter out only GTK/GNOME
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
90 approved command line arguments.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
91 (init-gtk-win): Set gtk-initial-argv-list by filtering it. This
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
92 way we get session management/etc from GNOME.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
93
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
94 2000-07-07 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
95
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
96 * gtk-faces.el (gtk-init-global-faces): Make sure to pass in a GTK
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
97 device (any GTK device) try-font-name when initializing the global
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
98 faces or it gets confused and cannot find a font, so the code in
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
99 faces.el ends up setting device-specific faces, which are hard (or
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
100 at least non-obvious) for users to work around.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
101
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
102 2000-07-01 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
103
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
104 * ui/gtk-widgets.el (GtkType): Added GtkCTree finally.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
105
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
106 * ui/gtk-ffi.el (gtk-ffi-check-function): New function that will
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
107 try to call a newly defined FFI function and report on whether we
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
108 need to define any new marshallers for it.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
109 (gtk-ffi-debug): If non-nil, then we will check ALL functions that
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
110 come through gtk-import-function. All existing imported functions
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
111 have been checked, and a few missings ones were added.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
112
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
113 * ui/glade.el: New file to import libglade functions.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
114
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
115 2000-06-30 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
116
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
117 * ui/gdk.el: Added most of the GDK drawing primitives.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
118
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
119 2000-06-27 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
120
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
121 * ui/gtk-widgets.el: Import gtk-major-version, gtk-minor-version,
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
122 gtk-micro-version, gtk-interface-age, and gtk-binary-age.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
123
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
124 * ui/gtk-ffi.el (gtk-import-variable): New macro to import a
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
125 variable. Needed to do it as a function, otherwise you could not
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
126 byte compile / dump the file in a non-windowed XEmacs.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
127
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
128 2000-06-23 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
129
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
130 * menubar-items.el (default-menubar): Disable
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
131 make-frame-on-display if the function is not available.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
132
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
133 2000-06-02 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
134
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
135 * gtk-mouse.el (gtk-init-pointers): Make sure we set a toolbar
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
136 pointer. Looked kind of silly to have the 'xterm' cursor in
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
137 there by default.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
138
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
139 2000-06-01 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
140
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
141 * ui/gtk-widgets.el: Imported GtkStatusbar
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
142
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
143 * ui/gtk-marshal.el (define-marshaller): All marshalling functions
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
144 are now static.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
145 * ui/gtk-marshal.el: Now outputs a function to populate a
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
146 hashtable with mappings from function name -> function pointer.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
147 Also emits the find_marshaller () function that looks at this
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
148 hashtable.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
149
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
150 2000-05-29 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
151
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
152 * ui/gtk-ffi.el (gtk-import-function): Allow passing in of a
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
153 symbol for the function name, as well as a string.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
154
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
155 * ui/gtk-widgets.el: Import the GtkSpinButton widget.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
156
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
157 2000-05-26 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
158
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
159 * ui/gtk-ffi.el (gtk-import-function): Rewrote as a macro so that
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
160 teh file can be safely byte-compiled. Argument values no longer
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
161 need to be quoted, and the function is not actually imported until
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
162 the function is called. Should save even more on loadup time.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
163 (gtk-import-function): Do not defvar `lisp-name' - put the FFI
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
164 object on the symbols plist. Makes the lisp variable namespace
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
165 that much cleaner.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
166
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
167 * ui/gtk-widgets.el: New uber-file containing all the GTK imported
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
168 functions. Load time is significantly faster than requiring ~90
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
169 different (usually 5 line) .el files, and polluting the 'features'
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
170 variable.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
171
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
172 2000-05-23 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
173
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
174 * ui/gtk-widget-accessors.el (define-widget-accessors): Fixed
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
175 bogus handling of GTkListOfString and GtkListOfObject slots.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
176 These need to have the FULL type, not the fundamental type. And
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
177 _POINTER was just plain wrong for them - cause beautiful crashes
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
178 on linux. :)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
179
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
180 * gtk-faces.el (gtk-choose-font): New function to change fonts
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
181 based on a GTK font selection dialog.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
182
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
183 * menubar-items.el (default-menubar): Only show the font/size
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
184 submenus when we are in an X frame.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
185 (default-menubar): Show a gtk-specific item when on GTK frames.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
186
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
187 * ui/gtk-marshal.el (define-marshaller): We need to special case
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
188 anything with FLOAT in the argument list or the parameters get
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
189 screwed up royally.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
190
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
191 2000-05-21 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
192
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
193 * ui/gtk-file-dialog.el (gtk-file-dialog-fill-file-list): New file
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
194 dialog that is actually useful and much prettier than the default
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
195 GTK one.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
196
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
197 2000-05-20 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
198
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
199 * ui/gtk-ffi.el (gtk-import-function): Auto-run gnome-*-get-type
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
200 routines as well as the gtk-*-get-type ones.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
201
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
202 * minibuf.el (mouse-read-file-name-1): Now tries to use the new
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
203 builtin dialog spec ben wrote about. Uses the GTK file selection
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
204 dialog. We should be able to come up with something much sexier
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
205 though - the default dialog box for GTK sucks hard.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
206
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
207 2000-05-17 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
208
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
209 * gtk-faces.el (gtk-init-device-faces): Make use of the extended
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
210 return values of gtk-style-info. Set the 'highlight' face to look
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
211 like GTK_STATE_PRELIGHT and 'zmacs-region' to be
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
212 GTK_STATE_SELECTED. Unfortunately these two faces will not
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
213 automatically be updated because they are not exposed to lisp
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
214 like Vdefault_face and friends.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
215
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
216 2000-05-16 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
217
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
218 * gtk-faces.el (gtk-init-device-faces): Removed a whole bunch of
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
219 face munging that is now done down in the guts of the GtkXEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
220 widget.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
221
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
222 * gnuserv.el (gnuserv-edit-files): Handle GTK devices.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
223
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
224 * ui/gtk-ffi.el (gtk-import-function): Make this a noop if
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
225 noninteractive. This allows us to compile the files during the
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
226 make process.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
227
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
228 2000-05-10 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
229
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
230 * dialog-gtk.el: New file implementing popup dialogs in Lisp using
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
231 GTK primitives. Called from dialog-gtk.c
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
232
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
233 * dumped-lisp.el (preloaded-file-list): Make sure we load up
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
234 menubar-items under GTK.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
235 (preloaded-file-list): Load up dialog-gtk when using GTK.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
236
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
237 2000-05-08 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
238
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
239 * ui/gtk-widget-accessors.el (define-widget-accessors): New file
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
240 to define C functions that go into
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
241 ../../src/emacs-widget-accessors.c. This is a hack to get around
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
242 the lack of accessor/settor functions in GTK for a LOT of things
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
243 that are required for full functionality (like dialogs)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
244
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
245 2000-05-07 William M. Perry <wmperry@aventail.com>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
246
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
247 * gtk-faces.el (gtk-init-face-from-resources): Set the highlight
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
248 face as well.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
249