mbfl_string.c 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * "streamable kanji code filter and converter"
  3. * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved.
  4. *
  5. * LICENSE NOTICES
  6. *
  7. * This file is part of "streamable kanji code filter and converter",
  8. * which is distributed under the terms of GNU Lesser General Public
  9. * License (version 2) as published by the Free Software Foundation.
  10. *
  11. * This software 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 Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public
  17. * License along with "streamable kanji code filter and converter";
  18. * if not, write to the Free Software Foundation, Inc., 59 Temple Place,
  19. * Suite 330, Boston, MA 02111-1307 USA
  20. *
  21. * The author of this file:
  22. *
  23. */
  24. /*
  25. * The source code included in this files was separated from mbfilter.c
  26. * by Moriyoshi Koizumi <moriyoshi@php.net> on 20 Dec 2002. The file
  27. * mbfilter.c is included in this package .
  28. *
  29. */
  30. #ifdef HAVE_CONFIG_H
  31. #include "config.h"
  32. #endif
  33. #ifdef HAVE_STDDEF_H
  34. #include <stddef.h>
  35. #endif
  36. #include "mbfl_allocators.h"
  37. #include "mbfl_string.h"
  38. #include "mbfilter_pass.h"
  39. /*
  40. * string object
  41. */
  42. void
  43. mbfl_string_init(mbfl_string *string)
  44. {
  45. if (string) {
  46. string->no_language = mbfl_no_language_uni;
  47. string->encoding = &mbfl_encoding_pass;
  48. string->val = (unsigned char*)NULL;
  49. string->len = 0;
  50. }
  51. }
  52. void
  53. mbfl_string_init_set(mbfl_string *string, mbfl_language_id no_language, const mbfl_encoding *encoding)
  54. {
  55. if (string) {
  56. string->no_language = no_language;
  57. string->encoding = encoding;
  58. string->val = (unsigned char*)NULL;
  59. string->len = 0;
  60. }
  61. }
  62. void
  63. mbfl_string_clear(mbfl_string *string)
  64. {
  65. if (string) {
  66. if (string->val != (unsigned char*)NULL) {
  67. mbfl_free(string->val);
  68. }
  69. string->val = (unsigned char*)NULL;
  70. string->len = 0;
  71. }
  72. }