Commit graph

12983 commits

Author SHA1 Message Date
unknown
965d092941 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/kostja/mysql/mysql-4.1-root
2004-06-11 00:20:18 +04:00
unknown
f203bebafc assert.h needed for my_dbug.h now is included in my_dbug.h, where it for
some reason wasn't included before.
A lot of files cleaned up from #include <assert.h>


client/mysqlbinlog.cc:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
client/mysqldump.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
heap/hp_hash.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
include/m_string.h:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
include/my_dbug.h:
  include assert.h needed for DBUG_ASSERT
libmysql/libmysql.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
myisam/ftdefs.h:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
myisam/mi_delete.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
myisam/mi_dynrec.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
myisam/mi_key.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
myisam/mi_open.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
myisam/mi_search.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
myisam/mi_write.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/mf_iocache.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/mf_iocache2.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/mf_keycache.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/my_bitmap.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/my_gethostbyname.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/my_getopt.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/my_pthread.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/my_seek.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/rijndael.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
mysys/thr_alarm.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
sql-common/client.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
sql/mysql_priv.h:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
sql/sql_string.cc:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
strings/ctype-simple.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
strings/ctype-ucs2.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
strings/my_vsnprintf.c:
  assert.h needed for my_dbug.h now is included in
  my_dbug.h, where it for some reason wasn't included before.
2004-06-10 23:58:39 +04:00
unknown
1e24da548b bug#3964 and related issues: FTB problems with charsets where one byte can match many
correct prefix compare with my_strnncoll


include/m_ctype.h:
  6th argument to my_strncoll to handle prefix comparison
myisam/ft_boolean_search.c:
  bug#3964 and related issues: problems with charsets where one byte can match many
  *correct* prefix compare with my_strnncoll
  *correct* backup of info->lastkey
mysql-test/r/fulltext.result:
  6th argument to my_strncoll to handle prefix comparison
mysql-test/t/fulltext.test:
  6th argument to my_strncoll to handle prefix comparison
mysys/my_handler.c:
  6th argument to my_strncoll to handle prefix comparison
sql/sql_parse.cc:
  cleanup
strings/ctype-big5.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-bin.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-czech.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-gbk.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-latin1.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-mb.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-simple.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-sjis.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-tis620.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-uca.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-ucs2.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-utf8.c:
  6th argument to my_strncoll to handle prefix comparison
strings/ctype-win1250ch.c:
  6th argument to my_strncoll to handle prefix comparison
2004-06-10 21:18:57 +02:00
unknown
d9b81f3a08 EXISTS(SELECT * ...)
close table before opening in optimize


mysql-test/r/subselect.result:
  test of EXISTS(SELECT * ...)
mysql-test/t/subselect.test:
  test of EXISTS(SELECT * ...)
sql/sql_base.cc:
  EXISTS(SELECT * ...)
sql/sql_table.cc:
  close table before opening one
2004-06-10 21:33:15 +03:00
unknown
37b5323f0e Randomise time-out to avoid aborting both transactions in deadlock
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-06-10 20:03:06 +02:00
unknown
f9ec1ff25a Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-count-4.1
2004-06-10 18:58:53 +03:00
unknown
6ca4b6cd19 BUG#4088 - Multiple mixed index/normal reads
ndb/include/kernel/signaldata/TcKeyConf.hpp:
  BUG#4088 - Multiple mixed index/normal reads
  Make setNoOps "set's" and not only "or's"
2004-06-10 17:26:26 +02:00
unknown
bfe7ebee3c Merge gbichot@213.136.52.20:/home/bk/mysql-4.1
into mysql.com:/home/mysql_src/mysql-4.1-874


sql/ha_innodb.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
2004-06-10 16:42:07 +02:00
unknown
7849222652 WL#1689 "Map OPTIMIZE TABLE to ALTER TABLE for InnoDB"
exactly it's mapped to "ALTER TABLE t; ANALYZE TABLE t;"


sql/ha_innodb.cc:
  ::optimize() now returns "try ALTER and then analyze" instead of only analyze.
sql/handler.h:
  new code to say "try alter and analyze".
sql/mysql_priv.h:
  as we may now use mysql_alter_table() internally to ::optimize we must prevent it from talking to the client.
  New function mysql_recreate_table() which is the same as ALTER TABLE t;
sql/sql_parse.cc:
  the big block removed here is moved into mysql_recreate_table().
sql/sql_table.cc:
  In mysql_admin_table(): if the handler returns HA_ADMIN_TRY_ALTER,
  we close the table, recreate it, then open it and analyze it.
  This is currently used only for OPTIMIZE TABLE of an InnoDB table.
2004-06-10 16:41:24 +02:00
unknown
b40246ef5a merge ndb api blobs, ready 2004-06-10 16:25:13 +02:00
unknown
d8f0df52d3 Optimization to use less memory. 2004-06-10 19:10:21 +05:00
unknown
7ece3c7491 WL#1595 "Optionally fsync() the binlog after every statement":
New option --sync-binlog=x (and global settable variable) which will fsync the binlog
after every x-th disk write to it. That is, if in autocommit mode, after every x-th statement
written to the binlog; if using transactions, after every x-th transaction written to the binlog.
x==0 means no fsync. x==1 is the slowest.
There is no test added for this, I have just checked that it works as --sync-binlog=1 dramatically
slows down mysqld.
Made sync-frm a global settable variable.


sql/log.cc:
  every sync_binlog_period-th disk binlog write, we fsync the binlog
sql/mysql_priv.h:
  new option sync_binlog
sql/mysqld.cc:
  new option sync_binlog
sql/set_var.cc:
  Making sync-frm a settable global option.
  New settable global option sync-binlog.
sql/set_var.h:
  new global settable variable sync_binlog needs a specific ::update because it needs to take LOCK_log
2004-06-10 15:56:13 +02:00
unknown
eefb240b6d Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0
2004-06-10 16:44:55 +03:00
unknown
43f0418d33 After merge fix
scripts/mysql_install_db.sh:
  Cleanup
2004-06-10 16:44:39 +03:00
unknown
7f4402201f Merge gbichot@213.136.52.20:/home/bk/mysql-4.1
into mysql.com:/home/mysql_src/mysql-4.1-1595
2004-06-10 15:10:44 +02:00
unknown
0e6b9457fe don't need to tag the slave SQL thread as "bootstrap". It causes duplicate
error messages when a query goes wrong.
Note that from now on, if you run with --slave-skip-error=xx, then nothing will
be printed to the error log when the slave is having this error xx and
skipping it (but you don't care as you want to skip it).


sql/repl_failsafe.cc:
  a comment about the use of thd->bootstrap in failsafe (unused code)
2004-06-10 14:03:25 +02:00
unknown
68ab60694f merge ndb api blobs 2004-06-10 14:02:31 +02:00
unknown
2aacdd9435 merged ndb api blobs
ndb/include/ndbapi/Ndb.hpp:
  Auto merged
ndb/include/ndbapi/NdbApi.hpp:
  Auto merged
ndb/include/ndbapi/NdbConnection.hpp:
  Auto merged
ndb/include/ndbapi/NdbOperation.hpp:
  Auto merged
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Auto merged
ndb/src/ndbapi/Makefile_old:
  Auto merged
ndb/src/ndbapi/NdbConnection.cpp:
  Auto merged
ndb/src/ndbapi/NdbDictionary.cpp:
  Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.hpp:
  Auto merged
ndb/src/ndbapi/NdbIndexOperation.cpp:
  Auto merged
ndb/src/ndbapi/NdbOperationDefine.cpp:
  Auto merged
ndb/src/ndbapi/NdbOperationScan.cpp:
  Auto merged
ndb/src/ndbapi/NdbOperationSearch.cpp:
  Auto merged
ndb/src/ndbapi/NdbScanOperation.cpp:
  Auto merged
ndb/src/ndbapi/Ndbinit.cpp:
  Auto merged
ndb/src/ndbapi/Ndblist.cpp:
  Auto merged
ndb/src/old_files/client/odbc/codegen/SimpleGram.ypp:
  Auto merged
ndb/src/old_files/client/odbc/codegen/SimpleScan.lpp:
  Auto merged
ndb/src/old_files/client/odbc/common/DataType.cpp:
  Auto merged
ndb/src/old_files/client/odbc/common/DataType.hpp:
  Auto merged
ndb/test/ndbapi/Makefile_old:
  Auto merged
ndb/tools/ndbsql.cpp:
  Auto merged
2004-06-10 14:02:30 +02:00
unknown
be68220fbc Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
2004-06-10 12:02:29 +00:00
unknown
dd6023e729 removed myVector from ndb restore
BitKeeper/deleted/.del-myVector.hpp~4ecd4d6d4c8fa2f6:
  Delete: ndb/src/kernel/blocks/backup/restore/myVector.hpp
ndb/include/util/Parser.hpp:
  bug-fix missing delete
ndb/src/kernel/blocks/backup/restore/Restore.cpp:
  removed myVector
ndb/src/kernel/blocks/backup/restore/Restore.hpp:
  removed myVector
ndb/src/kernel/blocks/backup/restore/consumer_restore.cpp:
  removed myVector
ndb/src/kernel/blocks/backup/restore/main.cpp:
  removed myVector
2004-06-10 12:01:47 +00:00
unknown
378761c193 Added function
/***********************************************************************
This function stores binlog offset and flushes logs */


void innobase_store_binlog_offset_and_flush_log(char *binlog_name,longlong offset) 
requested by Guilhem to ha_innodb.cc and ha_innodb.h. 

Change made by Jan.Lindstrom@innodb.com
2004-06-10 15:01:16 +03:00
unknown
64bbd52a5d Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2004-06-10 13:58:32 +02:00
unknown
93290dad1f warn about multiple mysqld --user parameters only if their arguments differ
scripts/mysqld_safe.sh:
  don't protect mysqld from multiple --user commands - mysqld can take care of itself
sql/mysqld.cc:
  warn about multiple --user parameters only if their arguments differ
2004-06-10 13:56:58 +02:00
unknown
1a520c7a47 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/pem/work/mysql-4.1
2004-06-10 12:18:33 +02:00
unknown
ec923b800f Removed extra error messages (that were replaced). 2004-06-10 12:17:13 +02:00
unknown
28306758b5 ndb api blobs 2004-06-10 12:04:30 +02:00
unknown
956d4f4e4e Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0


sql/sql_parse.cc:
  Auto merged
2004-06-10 12:36:11 +03:00
unknown
3e5eb498bc Merge with 3.23 to get latest bug fixes
mysql-test/t/type_date.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
mysql-test/r/type_date.result:
  merge with 3.23
2004-06-10 11:59:45 +03:00
unknown
4075c30515 Cleanup
sql/sql_parse.cc:
  Cleanup of patch
2004-06-10 11:58:16 +03:00
unknown
8e6b48f808 cleunup() of count() and max()/min() added (BUG#2687)
mysql-test/r/func_group.result:
  test of optimized aggregate function re-execution
mysql-test/t/func_group.test:
  test of optimized aggregate function re-execution
sql/item_sum.cc:
  cleunup() added
sql/item_sum.h:
  cleunup() added
2004-06-10 10:59:55 +03:00
unknown
d1cb8d6d2a Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into mc05.(none):/space2/tomas/mysql-4.1-ndb-test
2004-06-10 08:30:43 +02:00
unknown
f1007e6018 more ndb restore cleanup 2004-06-10 01:38:38 +00:00
unknown
f468b91f37 Fix for Bug#3904 "COUNT DISTINCT performance anomaly in 4.1"
The bug was caused by error in hash calculation function: it
always returned hash value for last field in a composite key, so 
for keys like (a text, b char(1)) we were always
getting bad hash values.
 


myisam/mi_unique.c:
  Fix for bug #3904:
  We should take into account existing hash value when calculating hash for
  next key in a composite unique index.
2004-06-10 01:30:39 +04:00
unknown
a9c50d0573 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb
into poseidon.bredbandsbolaget.se:/home/tomas/mysql-4.1-ndb
2004-06-09 19:29:49 +00:00
unknown
d089a424bd re-enginered ndb restore to remove new/deletes and data copy
BitKeeper/deleted/.del-Makefile_old~5e1138bd59f6b3aa:
  Delete: ndb/src/kernel/blocks/backup/restore/Makefile_old
2004-06-09 19:24:36 +00:00
unknown
c56613fb3c fix for bug #3974 ("SHOW FULL PROCESSLIST" crashes the embedded server)
server crashed checking thd->priv_user[0] and thd->priv_user is NULL
if NO_EMBEDDED_ACCESS_CHECKS is on.
Now i set it to be the same as thd->user


libmysqld/lib_sql.cc:
  now priv_user won't be NULL
2004-06-09 23:10:09 +05:00
unknown
8370e6e118 Fix for the bug #4014 (prepared SELECT in embedded server)
Problem is that store_string_aux calls 'wrong' net_store_data


sql/protocol.h:
  I tried not to do net_store_data virtual - it's going to work a bit slower -
  using the fact that Protocol_simple and Protocol_prep have different
  implementation for 'store' methods.
  But now the store_string_aux method works for both.
  Well we still can try to make separate versions for Protocol_prep and
  Protocol_simple, but i prefer to make net_store_data virtual for
  embedded server so we won't have similar problems in the future
2004-06-09 22:36:48 +05:00
unknown
85803ddf86 Fixed issue with compilation MySQL with OpenSSL
if OpenSSL is installed in non-statndart directory
('openssl/opensslv.h: No such file or directory')


include/my_global.h:
  Fixed issue with compilation MySQL with OpenSSL 
  if OpenSSL is installed in non-statndart directory
include/violite.h:
  Fixed issue with compilation MySQL with OpenSSL 
  if OpenSSL is installed in non-statndart directory
2004-06-09 20:02:08 +04:00
unknown
7a00d199a4 Fix for BUG#4038 "rpm postinstall script leaves files as owned by root":
the rpm postinstall script must call mysql_install_db with --user=mysql,
and mysql_install_db must then pass this to mysqld. Otherwise, mysqld
runs as root, and if you have --log-bin=somewhere_out_of_var_lib_mysql
it creates binlog files owned by root in this dir, and this dir is not
fixed by the 'chmod mysql', so files remain owned by root, and later mysqld
(running as 'mysql') can't read them.
I'm hardcoding 'mysql' in the postinstall script, but it's already hardcoded
there in many places (see the useradd and chown) so it's ok.


scripts/mysql_install_db.sh:
  Pass --user to mysqld
support-files/mysql.spec.sh:
  in postinstall, call mysql_install_db with --user=mysql, so that mysqld (which installs the grant tables)
  is started with --user=mysql.
2004-06-09 17:07:11 +02:00
unknown
350ad5003e Merge gbichot@213.136.52.20:/home/bk/mysql-4.1
into mysql.com:/home/mysql_src/mysql-4.1-874
2004-06-09 16:24:35 +02:00
unknown
43489240ad Making DROP TABLE IF EXISTS, DROP DATABASE IF EXISTS, DELETE FROM, UPDATE be logged to
binlog even if they changed nothing, and a test for this.
This is useful when users use these commands to clean up their master and slave by issuing
one command on master (assume master and slave have slightly different data for some
reason and you want to clean up both).
Note that I have not changed multi-table DELETE and multi-table UPDATE because their
error-reporting mechanism is more complicated.


mysql-test/r/mysqlbinlog.result:
  result update
mysql-test/r/rpl_charset.result:
  result update
mysql-test/r/rpl_flush_log_loop.result:
  result update
mysql-test/r/rpl_replicate_do.result:
  result update
mysql-test/r/rpl_temporary.result:
  result update
mysql-test/t/mysqlbinlog.test:
  moving SET TIMESTAMP up as DROP shows up in binlog
sql/sql_db.cc:
  DROP DATABASE IF EXISTS is now always logged to binlog, even if db did not exist
sql/sql_delete.cc:
  DELETE FROM t is now always logged to binlog even if no rows deleted (but in this case, only if really no error).
sql/sql_table.cc:
  DROP TABLE IF EXISTS is now always logged to binlog even if table did not exist
sql/sql_update.cc:
  UPDATE is now always logged to binlog even if no rows updated (but in this case, only if really no error).
2004-06-09 16:07:01 +02:00
unknown
57ae9ed0ad complement to previous fix (which was for SQLCOM_DROP_DB), for COM_DROP_DB.
sql/sql_parse.cc:
  Making COM_DROP_DB honour lower_case_table_names. Plus coding-style fixes.
2004-06-09 15:27:15 +02:00
unknown
87c200d17c Fix for BUG#4066 "DROP DATABASE case sensitive even if lower-case-table-names > 0"
sql/sql_parse.cc:
  honour lower_case_table_names in DROP DATABASE (like we already do in CREATE DATABASE)
2004-06-09 15:22:31 +02:00
unknown
246bb50d4a Merge paul@bk-internal.mysql.com:/home/bk/mysql-4.1
into ice.snake.net:/Volumes/ice2/MySQL/bk/mysql-4.1
2004-06-09 06:46:30 -05:00
unknown
5304a03e99 charset.c:
Fix to be ANSI C complient
  ,


mysys/charset.c:
  Fix to be ANSI C complient
  ,
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-06-09 12:33:30 +05:00
unknown
35602052fa 3 retries for wait started 2004-06-09 06:09:13 +02:00
unknown
19a5cf935a Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/kostja/mysql/mysql-4.1-4026


sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
2004-06-09 03:22:55 +04:00
unknown
27eda71204 Proposed fix for Bug#4026 "Microseconds part of TIME/DATETIME types
is broken (prepared statements)": fixed date handling in many places 
of prepared statements code.


libmysql/libmysql.c:
  Fix for Bug#4026:
  - now buffer_length is defined for any buffer type. Network buffer 
    preallocation cleaned up.
  - added constants for maximum buffer sizes necessary for MYSQL_TYPE_DATE,
    MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME types.
  - TIME/DATETIME packing/unpacking functions fixed 
  - now result set metadata is always updated from fields sent to COM_EXECUTE.
    This is necessary to make 'SELECT ?' queries work without conversions.
sql/item.cc:
  - added implementatoin of Item_param::get_date
sql/item.h:
  - added enum_field_types Item_param::param_type. First step for proper
    handling of placeholders.
  - added get_date() implementation to prevent date -> string -> date 
    conversions when MYSQL_TYPE_DATE/DATETIME parameter is used in temporal 
    context.
sql/protocol.cc:
  Fix for Bug#4026:
  - PACKET_BUFFET_EXTRA_ALLOC -> PACKET_BUFFER_EXTRA_ALLOC.
    The define itself was moved to .cc as it's used only in protocol.cc
  - fixed Protocol_prep::store_time() call.
sql/protocol.h:
  - PACKET_BUFFER_EXTRA_ALLOC moved to protocol.cc
sql/sql_prepare.cc:
  Fix for Bug#4026:
  - MYSQL_TYPE_TIME/DATETIME handling fixed.
  - added initialization for Item_param::param_type in 
    setup_one_conversion_function
tests/client_test.c:
  Test case for Bug#4026
2004-06-09 03:21:50 +04:00
unknown
2a2ef1a192 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2004-06-09 00:08:50 +02:00
unknown
e6c916ffa8 different (simpler and more compatible) fix for bug#4046 2004-06-09 00:08:24 +02:00