Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. #ifndef _CHARTRANS_H
  2. #define _CHARTRANS_H
  3. /* chartrans.h */
  4. /*****************************************************************************/
  5. /* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only                     */
  6. /*                                                                           */
  7. /* AS                                                                        */
  8. /*                                                                           */
  9. /* Character Translation                                                     */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12.  
  13. #include <stdio.h>
  14.  
  15. struct as_nonz_dynstr;
  16. struct sStrComp;
  17.  
  18. typedef struct as_chartrans_table
  19. {
  20.   unsigned char mapped[256 / 8];
  21.   unsigned char mapping[256];
  22. } as_chartrans_table_t;
  23.  
  24. extern as_chartrans_table_t *as_chartrans_table_new(void);
  25.  
  26. extern void as_chartrans_table_free(as_chartrans_table_t *p_table);
  27.  
  28. extern as_chartrans_table_t *as_chartrans_table_dup(const as_chartrans_table_t *p_table);
  29.  
  30. extern void as_chartrans_table_reset(as_chartrans_table_t *p_table);
  31.  
  32. extern int as_chartrans_table_unset(as_chartrans_table_t *p_table, unsigned input_code);
  33. extern int as_chartrans_table_set(as_chartrans_table_t *p_table, unsigned input_code, unsigned output_code);
  34.  
  35. extern int as_chartrans_table_unset_mult(as_chartrans_table_t *p_table, unsigned input_code_from, unsigned input_code_to);
  36. extern int as_chartrans_table_set_mult(as_chartrans_table_t *p_table, unsigned input_code_from, unsigned input_code_to, unsigned output_code);
  37.  
  38. extern void as_chartrans_table_print(const as_chartrans_table_t *p_table, FILE *p_file);
  39.  
  40. extern int as_chartrans_xlate(const as_chartrans_table_t *p_table, unsigned src) /*__attribute__((warn_unused_result))*/;
  41.  
  42. extern int as_chartrans_xlate_rev(const as_chartrans_table_t *p_table, unsigned src) /*__attribute__((warn_unused_result))*/;
  43.  
  44. extern int as_chartrans_xlate_next(const as_chartrans_table_t *p_table, unsigned *p_dest, const char **pp_src, size_t *p_src_len) /*__attribute__((warn_unused_result))*/;
  45.  
  46. extern int as_chartrans_xlate_nonz_dynstr(const as_chartrans_table_t *p_table, struct as_nonz_dynstr *p_str, const struct sStrComp *p_src_arg) /*__attribute__((warn_unused_result))*/;
  47.  
  48. #endif /* _CHARTRANS_H */
  49.