You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

238 lines
5.5 KiB

Added all changes from old 4.0 version: PSTACK, libmysqld and MySQL filesystem UPDATE ... ORDER BY DELETE ... ORDER BY New faster fulltext handling Faster compressed keys Makefile.am: Added support for pstack and libmysqld_dir acconfig.h: MySQL filesystem and PSTACK acinclude.m4: MySQL File system client/mysql.cc: Support for --xml configure.in: Pstack, MySQL FS and libmysqld_dir include/ft_global.h: Faster fulltext include/my_pthread.h: Made c++ safe include/myisam.h: Update for faster fulltext include/mysql_com.h: new my_net_read() include/violite.h: libmysqld libmysql/net.c: New protocol that supports big packets myisam/Makefile.am: Faster fulltext myisam/ft_parser.c: Faster fulltext myisam/ft_search.c: Faster fulltext myisam/ft_update.c: Faster fulltext myisam/ftdefs.h: Faster fulltext myisam/mi_check.c: Faster fulltext myisam/mi_open.c: Faster compressed keys myisam/mi_search.c: Faster compressed keys myisam/mi_update.c: Faster compressed keys myisam/myisamdef.h: Faster compressed keys myisam/sort.c: Faster compressed keys mysql-test/mysql-test-run.sh: --skip-innobase and --skip-bdb sql/ChangeLog: Changelog sql/Makefile.am: PSTACK sql/mysql_priv.h: New ORDER BY options and libmysqld sql/mysqld.cc: PSTACK sql/net_serv.cc: New protocol that supports big packets sql/share/estonian/errmsg.txt: New error messages sql/sql_base.cc: Better list_open_tabels sql/sql_delete.cc: ORDER BY for delete sql/sql_lex.cc: Added language convertation of all strings sql/sql_parse.cc: Changes for libmysqld Use new ORDER BY options sql/sql_show.cc: Character set convertations Use new list_open_tables function. sql/sql_update.cc: UPDATE ... ORDER BY sql/sql_yacc.yy: Clean up symbol definitions DELETE .. ORDER BY UPDATE .. ORDER BY sql/table.h: new OPEN_TABLE_LIST structure BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
25 years ago
Added all changes from old 4.0 version: PSTACK, libmysqld and MySQL filesystem UPDATE ... ORDER BY DELETE ... ORDER BY New faster fulltext handling Faster compressed keys Makefile.am: Added support for pstack and libmysqld_dir acconfig.h: MySQL filesystem and PSTACK acinclude.m4: MySQL File system client/mysql.cc: Support for --xml configure.in: Pstack, MySQL FS and libmysqld_dir include/ft_global.h: Faster fulltext include/my_pthread.h: Made c++ safe include/myisam.h: Update for faster fulltext include/mysql_com.h: new my_net_read() include/violite.h: libmysqld libmysql/net.c: New protocol that supports big packets myisam/Makefile.am: Faster fulltext myisam/ft_parser.c: Faster fulltext myisam/ft_search.c: Faster fulltext myisam/ft_update.c: Faster fulltext myisam/ftdefs.h: Faster fulltext myisam/mi_check.c: Faster fulltext myisam/mi_open.c: Faster compressed keys myisam/mi_search.c: Faster compressed keys myisam/mi_update.c: Faster compressed keys myisam/myisamdef.h: Faster compressed keys myisam/sort.c: Faster compressed keys mysql-test/mysql-test-run.sh: --skip-innobase and --skip-bdb sql/ChangeLog: Changelog sql/Makefile.am: PSTACK sql/mysql_priv.h: New ORDER BY options and libmysqld sql/mysqld.cc: PSTACK sql/net_serv.cc: New protocol that supports big packets sql/share/estonian/errmsg.txt: New error messages sql/sql_base.cc: Better list_open_tabels sql/sql_delete.cc: ORDER BY for delete sql/sql_lex.cc: Added language convertation of all strings sql/sql_parse.cc: Changes for libmysqld Use new ORDER BY options sql/sql_show.cc: Character set convertations Use new list_open_tables function. sql/sql_update.cc: UPDATE ... ORDER BY sql/sql_yacc.yy: Clean up symbol definitions DELETE .. ORDER BY UPDATE .. ORDER BY sql/table.h: new OPEN_TABLE_LIST structure BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
25 years ago
Added support for symlinked tables. myisamchk: Don't force a repair if the only problem was that the open count wasn't correct. Added missing error messages. include/my_sys.h: Cleanup comments libmysql/Makefile.shared: Added symlink library. myisam/mi_check.c: Added support for symlinked tables myisam/mi_delete_table.c: Added support for symlinked tables myisam/mi_open.c: Added support for symlinked tables myisam/mi_rename.c: Added support for symlinked tables myisam/myisamchk.c: Added support for symlinked tables. Don't force a repair if the only problem was that the open count wasn't correct. pstack/bucomm.c: use mkstemp() instead of mytemp() sql/ha_myisam.cc: Added support for symlinked tables sql/ha_myisam.h: Added support for symlinked tables sql/ha_myisammrg.cc: Added support for symlinked tables sql/handler.cc: Added support for symlinked tables sql/handler.h: Added support for symlinked tables sql/lex.h: Added support for symlinked tables sql/share/czech/errmsg.txt: Added missing error messages sql/share/danish/errmsg.txt: Added missing error messages sql/share/dutch/errmsg.txt: Added missing error messages sql/share/estonian/errmsg.txt: Added missing error messages sql/share/french/errmsg.txt: Added missing error messages sql/share/german/errmsg.txt: Added missing error messages sql/share/greek/errmsg.txt: Added missing error messages sql/share/hungarian/errmsg.txt: Added missing error messages sql/share/italian/errmsg.txt: Added missing error messages sql/share/japanese/errmsg.txt: Added missing error messages sql/share/korean/errmsg.txt: Added missing error messages sql/share/norwegian-ny/errmsg.txt: Added missing error messages sql/share/norwegian/errmsg.txt: Added missing error messages sql/share/polish/errmsg.txt: Added missing error messages sql/share/portuguese/errmsg.txt: Added missing error messages sql/share/romanian/errmsg.txt: Added missing error messages sql/share/russian/errmsg.txt: Added missing error messages sql/share/slovak/errmsg.txt: Added missing error messages sql/share/spanish/errmsg.txt: Added missing error messages sql/share/swedish/errmsg.OLD: Added missing error messages sql/share/swedish/errmsg.txt: Added missing error messages sql/sql_db.cc: Added support for symlinked tables sql/sql_parse.cc: Added support for symlinked tables sql/sql_table.cc: Added support for symlinked tables with ALTER TABLE sql/sql_yacc.yy: Added option to create symlinked tables.
25 years ago
Added all changes from old 4.0 version: PSTACK, libmysqld and MySQL filesystem UPDATE ... ORDER BY DELETE ... ORDER BY New faster fulltext handling Faster compressed keys Makefile.am: Added support for pstack and libmysqld_dir acconfig.h: MySQL filesystem and PSTACK acinclude.m4: MySQL File system client/mysql.cc: Support for --xml configure.in: Pstack, MySQL FS and libmysqld_dir include/ft_global.h: Faster fulltext include/my_pthread.h: Made c++ safe include/myisam.h: Update for faster fulltext include/mysql_com.h: new my_net_read() include/violite.h: libmysqld libmysql/net.c: New protocol that supports big packets myisam/Makefile.am: Faster fulltext myisam/ft_parser.c: Faster fulltext myisam/ft_search.c: Faster fulltext myisam/ft_update.c: Faster fulltext myisam/ftdefs.h: Faster fulltext myisam/mi_check.c: Faster fulltext myisam/mi_open.c: Faster compressed keys myisam/mi_search.c: Faster compressed keys myisam/mi_update.c: Faster compressed keys myisam/myisamdef.h: Faster compressed keys myisam/sort.c: Faster compressed keys mysql-test/mysql-test-run.sh: --skip-innobase and --skip-bdb sql/ChangeLog: Changelog sql/Makefile.am: PSTACK sql/mysql_priv.h: New ORDER BY options and libmysqld sql/mysqld.cc: PSTACK sql/net_serv.cc: New protocol that supports big packets sql/share/estonian/errmsg.txt: New error messages sql/sql_base.cc: Better list_open_tabels sql/sql_delete.cc: ORDER BY for delete sql/sql_lex.cc: Added language convertation of all strings sql/sql_parse.cc: Changes for libmysqld Use new ORDER BY options sql/sql_show.cc: Character set convertations Use new list_open_tables function. sql/sql_update.cc: UPDATE ... ORDER BY sql/sql_yacc.yy: Clean up symbol definitions DELETE .. ORDER BY UPDATE .. ORDER BY sql/table.h: new OPEN_TABLE_LIST structure BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
25 years ago
  1. /* bucomm.c -- Bin Utils COMmon code.
  2. Copyright (C) 1991, 92, 93, 94, 95, 1997 Free Software Foundation, Inc.
  3. This file is part of GNU Binutils.
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program; if not, write to the Free Software
  14. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  15. 02111-1307, USA. */
  16. /* We might put this in a library someday so it could be dynamically
  17. loaded, but for now it's not necessary. */
  18. #include <bfd.h>
  19. #include <libiberty.h>
  20. #include "bucomm.h"
  21. #include <sys/stat.h>
  22. #include <time.h> /* ctime, maybe time_t */
  23. #ifdef ANSI_PROTOTYPES
  24. #include <stdarg.h>
  25. #else
  26. #include <varargs.h>
  27. #endif
  28. /* Error reporting */
  29. char *program_name;
  30. void
  31. bfd_nonfatal (string)
  32. CONST char *string;
  33. {
  34. CONST char *errmsg = bfd_errmsg (bfd_get_error ());
  35. if (string)
  36. fprintf (stderr, "%s: %s: %s\n", program_name, string, errmsg);
  37. else
  38. fprintf (stderr, "%s: %s\n", program_name, errmsg);
  39. }
  40. void
  41. bfd_fatal (string)
  42. CONST char *string;
  43. {
  44. bfd_nonfatal (string);
  45. xexit (1);
  46. }
  47. #ifdef ANSI_PROTOTYPES
  48. void
  49. fatal (const char *format, ...)
  50. {
  51. va_list args;
  52. fprintf (stderr, "%s: ", program_name);
  53. va_start (args, format);
  54. vfprintf (stderr, format, args);
  55. va_end (args);
  56. putc ('\n', stderr);
  57. xexit (1);
  58. }
  59. #else
  60. void
  61. fatal (va_alist)
  62. va_dcl
  63. {
  64. char *Format;
  65. va_list args;
  66. fprintf (stderr, "%s: ", program_name);
  67. va_start (args);
  68. Format = va_arg (args, char *);
  69. vfprintf (stderr, Format, args);
  70. va_end (args);
  71. putc ('\n', stderr);
  72. xexit (1);
  73. }
  74. #endif
  75. /* Set the default BFD target based on the configured target. Doing
  76. this permits the binutils to be configured for a particular target,
  77. and linked against a shared BFD library which was configured for a
  78. different target. */
  79. #define TARGET "elf32-i386" /* FIXME: hard-coded! */
  80. void
  81. set_default_bfd_target ()
  82. {
  83. /* The macro TARGET is defined by Makefile. */
  84. const char *target = TARGET;
  85. if (! bfd_set_default_target (target))
  86. {
  87. char *errmsg;
  88. errmsg = (char *) xmalloc (100 + strlen (target));
  89. sprintf (errmsg, "can't set BFD default target to `%s'", target);
  90. bfd_fatal (errmsg);
  91. }
  92. }
  93. /* After a false return from bfd_check_format_matches with
  94. bfd_get_error () == bfd_error_file_ambiguously_recognized, print
  95. the possible matching targets. */
  96. void
  97. list_matching_formats (p)
  98. char **p;
  99. {
  100. fprintf(stderr, "%s: Matching formats:", program_name);
  101. while (*p)
  102. fprintf(stderr, " %s", *p++);
  103. fprintf(stderr, "\n");
  104. }
  105. /* List the supported targets. */
  106. void
  107. list_supported_targets (name, f)
  108. const char *name;
  109. FILE *f;
  110. {
  111. extern bfd_target *bfd_target_vector[];
  112. int t;
  113. if (name == NULL)
  114. fprintf (f, "Supported targets:");
  115. else
  116. fprintf (f, "%s: supported targets:", name);
  117. for (t = 0; bfd_target_vector[t] != NULL; t++)
  118. fprintf (f, " %s", bfd_target_vector[t]->name);
  119. fprintf (f, "\n");
  120. }
  121. /* Display the archive header for an element as if it were an ls -l listing:
  122. Mode User\tGroup\tSize\tDate Name */
  123. void
  124. print_arelt_descr (file, abfd, verbose)
  125. FILE *file;
  126. bfd *abfd;
  127. boolean verbose;
  128. {
  129. struct stat buf;
  130. if (verbose)
  131. {
  132. if (bfd_stat_arch_elt (abfd, &buf) == 0)
  133. {
  134. char modebuf[11];
  135. char timebuf[40];
  136. time_t when = buf.st_mtime;
  137. CONST char *ctime_result = (CONST char *) ctime (&when);
  138. /* POSIX format: skip weekday and seconds from ctime output. */
  139. sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20);
  140. mode_string (buf.st_mode, modebuf);
  141. modebuf[10] = '\0';
  142. /* POSIX 1003.2/D11 says to skip first character (entry type). */
  143. fprintf (file, "%s %ld/%ld %6ld %s ", modebuf + 1,
  144. (long) buf.st_uid, (long) buf.st_gid,
  145. (long) buf.st_size, timebuf);
  146. }
  147. }
  148. fprintf (file, "%s\n", bfd_get_filename (abfd));
  149. }
  150. /* Return the name of a temporary file in the same directory as FILENAME. */
  151. char *
  152. make_tempname (filename)
  153. char *filename;
  154. {
  155. static char template[] = "stXXXXXX";
  156. char *tmpname;
  157. char *slash = strrchr (filename, '/');
  158. #if defined (__DJGPP__) || defined (__GO32__) || defined (_WIN32)
  159. if (slash == NULL)
  160. slash = strrchr (filename, '\\');
  161. #endif
  162. if (slash != (char *) NULL)
  163. {
  164. char c;
  165. c = *slash;
  166. *slash = 0;
  167. tmpname = xmalloc (strlen (filename) + sizeof (template) + 1);
  168. strcpy (tmpname, filename);
  169. strcat (tmpname, "/");
  170. strcat (tmpname, template);
  171. mkstemp (tmpname);
  172. *slash = c;
  173. }
  174. else
  175. {
  176. tmpname = xmalloc (sizeof (template));
  177. strcpy (tmpname, template);
  178. mkstemp (tmpname);
  179. }
  180. return tmpname;
  181. }
  182. /* Parse a string into a VMA, with a fatal error if it can't be
  183. parsed. */
  184. bfd_vma
  185. parse_vma (s, arg)
  186. const char *s;
  187. const char *arg;
  188. {
  189. bfd_vma ret;
  190. const char *end;
  191. ret = bfd_scan_vma (s, &end, 0);
  192. if (*end != '\0')
  193. {
  194. fprintf (stderr, "%s: %s: bad number: %s\n", program_name, arg, s);
  195. exit (1);
  196. }
  197. return ret;
  198. }