inifile.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. +----------------------------------------------------------------------+
  3. | PHP Version 7 |
  4. +----------------------------------------------------------------------+
  5. | Copyright (c) 1997-2018 The PHP Group |
  6. +----------------------------------------------------------------------+
  7. | This source file is subject to version 3.01 of the PHP license, |
  8. | that is bundled with this package in the file LICENSE, and is |
  9. | available through the world-wide-web at the following url: |
  10. | http://www.php.net/license/3_01.txt |
  11. | If you did not receive a copy of the PHP license and are unable to |
  12. | obtain it through the world-wide-web, please send a note to |
  13. | license@php.net so we can mail you a copy immediately. |
  14. +----------------------------------------------------------------------+
  15. | Author: Marcus Boerger <helly@php.net> |
  16. +----------------------------------------------------------------------+
  17. */
  18. #ifndef PHP_LIB_INIFILE_H
  19. #define PHP_LIB_INIFILE_H
  20. typedef struct {
  21. char *group;
  22. char *name;
  23. } key_type;
  24. typedef struct {
  25. char *value;
  26. } val_type;
  27. typedef struct {
  28. key_type key;
  29. val_type val;
  30. size_t pos;
  31. } line_type;
  32. typedef struct {
  33. char *lockfn;
  34. int lockfd;
  35. php_stream *fp;
  36. int readonly;
  37. line_type curr;
  38. line_type next;
  39. } inifile;
  40. val_type inifile_fetch(inifile *dba, const key_type *key, int skip);
  41. int inifile_firstkey(inifile *dba);
  42. int inifile_nextkey(inifile *dba);
  43. int inifile_delete(inifile *dba, const key_type *key);
  44. int inifile_delete_ex(inifile *dba, const key_type *key, zend_bool *found);
  45. int inifile_replace(inifile *dba, const key_type *key, const val_type *val);
  46. int inifile_replace_ex(inifile *dba, const key_type *key, const val_type *val, zend_bool *found);
  47. int inifile_append(inifile *dba, const key_type *key, const val_type *val);
  48. char *inifile_version();
  49. key_type inifile_key_split(const char *group_name);
  50. char * inifile_key_string(const key_type *key);
  51. void inifile_key_free(key_type *key);
  52. void inifile_val_free(val_type *val);
  53. void inifile_line_free(line_type *ln);
  54. inifile * inifile_alloc(php_stream *fp, int readonly, int persistent);
  55. void inifile_free(inifile *dba, int persistent);
  56. #endif