Mercurial > pidgin.yaz
annotate src/getopt1.c @ 13202:241c59e3906b
[gaim-migrate @ 15565]
fix sf bug #1413457
Having the horizontal scrollbar set to NEVER was causing weird
bugs with the new status dialog where typing into the imhtml would
cause the window to grow in width and the text would not wrap
(well, it would eventually).
I know having the horizontal scrollbar set to AUTOMATIC was causing
problems in the past, but I played around with it and everything
seems ok to me. If this becomes a problem I'm thinking we can
set it to the horizontal policy to NEVER for editable imhtmls when
using GTK < 2.4.0. I think maybe our use of GTK_WRAP_WORD_CHAR might
be a partial cause of the bug mentioned in the comment that I'm
removing.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 09 Feb 2006 04:40:32 +0000 |
parents | 840a7d176754 |
children |
rev | line source |
---|---|
991 | 1 /* getopt_long and getopt_long_only entry points for GNU getopt. |
8046 | 2 Gaim is the legal property of its developers, whose names are too numerous |
3 to list here. Please refer to the COPYRIGHT file distributed with this | |
4 source distribution. | |
991 | 5 |
6 This program is free software; you can redistribute it and/or modify it | |
7 under the terms of the GNU General Public License as published by the | |
8 Free Software Foundation; either version 2, or (at your option) any | |
9 later version. | |
10 | |
11 This program is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with this program; if not, write to the Free Software | |
18 Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
12371
840a7d176754
[gaim-migrate @ 14675]
Richard Laager <rlaager@wiktel.com>
parents:
8046
diff
changeset
|
19 |
991 | 20 #ifdef HAVE_CONFIG_H |
21 #include "config.h" | |
22 #endif | |
23 | |
24 #include "getopt.h" | |
25 | |
26 #if !__STDC__ && !defined(const) && IN_GCC | |
27 #define const | |
28 #endif | |
29 | |
30 #include <stdio.h> | |
31 | |
32 /* Comment out all this code if we are using the GNU C Library, and are not | |
33 actually compiling the library itself. This code is part of the GNU C | |
34 Library, but also included in many other GNU distributions. Compiling | |
35 and linking in this code is a waste when using the GNU C library | |
36 (especially if it is a shared library). Rather than having every GNU | |
37 program understand `configure --with-gnu-libc' and omit the object files, | |
38 it is simpler to just do this in the source for each such file. */ | |
39 | |
40 #if defined (_LIBC) || !defined (__GNU_LIBRARY__) | |
41 | |
42 | |
43 /* This needs to come after some library #include | |
44 to get __GNU_LIBRARY__ defined. */ | |
45 #ifdef __GNU_LIBRARY__ | |
46 #include <stdlib.h> | |
47 #else | |
48 char *getenv (); | |
49 #endif | |
50 | |
51 #ifndef NULL | |
52 #define NULL 0 | |
53 #endif | |
54 | |
55 int | |
56 getopt_long (argc, argv, options, long_options, opt_index) | |
57 int argc; | |
58 char *const *argv; | |
59 const char *options; | |
60 const struct option *long_options; | |
61 int *opt_index; | |
62 { | |
63 return _getopt_internal (argc, argv, options, long_options, opt_index, 0); | |
64 } | |
65 | |
66 /* Like getopt_long, but '-' as well as '--' can indicate a long option. | |
67 If an option that starts with '-' (not '--') doesn't match a long option, | |
68 but does match a short option, it is parsed as a short option | |
69 instead. */ | |
70 | |
71 int | |
72 getopt_long_only (argc, argv, options, long_options, opt_index) | |
73 int argc; | |
74 char *const *argv; | |
75 const char *options; | |
76 const struct option *long_options; | |
77 int *opt_index; | |
78 { | |
79 return _getopt_internal (argc, argv, options, long_options, opt_index, 1); | |
80 } | |
81 | |
82 | |
83 #endif /* _LIBC or not __GNU_LIBRARY__. */ | |
84 | |
85 #ifdef TEST | |
86 | |
87 #include <stdio.h> | |
88 | |
89 int | |
90 main (argc, argv) | |
91 int argc; | |
92 char **argv; | |
93 { | |
94 int c; | |
95 int digit_optind = 0; | |
96 | |
97 while (1) | |
98 { | |
99 int this_option_optind = optind ? optind : 1; | |
100 int option_index = 0; | |
101 static struct option long_options[] = | |
102 { | |
103 {"add", 1, 0, 0}, | |
104 {"append", 0, 0, 0}, | |
105 {"delete", 1, 0, 0}, | |
106 {"verbose", 0, 0, 0}, | |
107 {"create", 0, 0, 0}, | |
108 {"file", 1, 0, 0}, | |
109 {0, 0, 0, 0} | |
110 }; | |
111 | |
112 c = getopt_long (argc, argv, "abc:d:0123456789", | |
113 long_options, &option_index); | |
114 if (c == EOF) | |
115 break; | |
116 | |
117 switch (c) | |
118 { | |
119 case 0: | |
120 printf ("option %s", long_options[option_index].name); | |
121 if (optarg) | |
122 printf (" with arg %s", optarg); | |
123 printf ("\n"); | |
124 break; | |
125 | |
126 case '0': | |
127 case '1': | |
128 case '2': | |
129 case '3': | |
130 case '4': | |
131 case '5': | |
132 case '6': | |
133 case '7': | |
134 case '8': | |
135 case '9': | |
136 if (digit_optind != 0 && digit_optind != this_option_optind) | |
137 printf ("digits occur in two different argv-elements.\n"); | |
138 digit_optind = this_option_optind; | |
139 printf ("option %c\n", c); | |
140 break; | |
141 | |
142 case 'a': | |
143 printf ("option a\n"); | |
144 break; | |
145 | |
146 case 'b': | |
147 printf ("option b\n"); | |
148 break; | |
149 | |
150 case 'c': | |
151 printf ("option c with value `%s'\n", optarg); | |
152 break; | |
153 | |
154 case 'd': | |
155 printf ("option d with value `%s'\n", optarg); | |
156 break; | |
157 | |
158 case '?': | |
159 break; | |
160 | |
161 default: | |
162 printf ("?? getopt returned character code 0%o ??\n", c); | |
163 } | |
164 } | |
165 | |
166 if (optind < argc) | |
167 { | |
168 printf ("non-option ARGV-elements: "); | |
169 while (optind < argc) | |
170 printf ("%s ", argv[optind++]); | |
171 printf ("\n"); | |
172 } | |
173 | |
174 exit (0); | |
175 } | |
176 | |
177 #endif /* TEST */ |