]> code.delx.au - gnu-emacs/blobdiff - src/ccl.h
Minor tweaks of copying text properties when padding strings
[gnu-emacs] / src / ccl.h
index 8f2608fd5aa0184bc2e2b7814fd7c80e4b348ffa..10860f509d4a6f533d92a14b72aa23eda55331d5 100644 (file)
--- a/src/ccl.h
+++ b/src/ccl.h
@@ -1,6 +1,6 @@
 /* Header for CCL (Code Conversion Language) interpreter.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 /* Header for CCL (Code Conversion Language) interpreter.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-     2005, 2006, 2007, 2008, 2009, 2010, 2011
+     2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
    Copyright (C) 2003
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
    Copyright (C) 2003
@@ -11,8 +11,8 @@ This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -37,7 +37,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Structure to hold information about running CCL code.  Read
    comments in the file ccl.c for the detail of each field.  */
 struct ccl_program {
 /* Structure to hold information about running CCL code.  Read
    comments in the file ccl.c for the detail of each field.  */
 struct ccl_program {
-  int idx;                     /* Index number of the CCL program.
+  ptrdiff_t idx;               /* Index number of the CCL program.
                                   -1 means that the program was given
                                   by a vector, not by a program
                                   name.  */
                                   -1 means that the program was given
                                   by a vector, not by a program
                                   name.  */
@@ -49,34 +49,16 @@ struct ccl_program {
   int reg[8];                  /* CCL registers, reg[7] is used for
                                   condition flag of relational
                                   operations.  */
   int reg[8];                  /* CCL registers, reg[7] is used for
                                   condition flag of relational
                                   operations.  */
-  int private_state;            /* CCL instruction may use this
-                                  for private use, mainly for saving
-                                  internal states on suspending.
-                                  This variable is set to 0 when ccl is
-                                  set up.  */
-  int last_block;              /* Set to 1 while processing the last
-                                  block. */
   int status;                  /* Exit status of the CCL program.  */
   int buf_magnification;       /* Output buffer magnification.  How
                                   many times bigger the output buffer
                                   should be than the input buffer.  */
   int stack_idx;               /* How deep the call of CCL_Call is nested.  */
   int status;                  /* Exit status of the CCL program.  */
   int buf_magnification;       /* Output buffer magnification.  How
                                   many times bigger the output buffer
                                   should be than the input buffer.  */
   int stack_idx;               /* How deep the call of CCL_Call is nested.  */
-  int src_multibyte;           /* 1 if the input buffer is multibyte.  */
-  int dst_multibyte;           /* 1 if the output buffer is multibyte.  */
-  int cr_consumed;             /* Flag for encoding DOS-like EOL
-                                  format when the CCL program is used
-                                  for encoding by a coding
-                                  system.  */
   int consumed;
   int produced;
   int consumed;
   int produced;
-  int suppress_error;          /* If nonzero, don't insert error
-                                  message in the output.  */
-  int eight_bit_control;       /* If nonzero, ccl_driver counts all
-                                  eight-bit-control bytes written by
-                                  CCL_WRITE_CHAR.  After execution,
-                                  if no such byte is written, set
-                                  this value to zero.  */
-  int quit_silently;           /* If nonzero, don't append "CCL:
+  bool_bf last_block : 1;      /* Set to true while processing the last
+                                  block. */
+  bool_bf quit_silently : 1;   /* If true, don't append "CCL:
                                   Quitted" to the generated text when
                                   CCL program is quitted. */
 };
                                   Quitted" to the generated text when
                                   CCL program is quitted. */
 };
@@ -86,41 +68,21 @@ struct ccl_program {
 
 struct ccl_spec {
   struct ccl_program ccl;
 
 struct ccl_spec {
   struct ccl_program ccl;
-  int cr_carryover;            /* CR carryover flag.  */
-  unsigned char eight_bit_carryover[MAX_MULTIBYTE_LENGTH];
 };
 
 #define CODING_SPEC_CCL_PROGRAM(coding) ((coding)->spec.ccl.ccl)
 
 };
 
 #define CODING_SPEC_CCL_PROGRAM(coding) ((coding)->spec.ccl.ccl)
 
-/* Alist of fontname patterns vs corresponding CCL program.  */
-extern Lisp_Object Vfont_ccl_encoder_alist;
-
 /* Setup fields of the structure pointed by CCL appropriately for the
    execution of ccl program CCL_PROG (symbol or vector).  */
 /* Setup fields of the structure pointed by CCL appropriately for the
    execution of ccl program CCL_PROG (symbol or vector).  */
-extern int setup_ccl_program (struct ccl_program *, Lisp_Object);
-
-/* Check if CCL is updated or not.  If not, re-setup members of CCL.  */
-extern int check_ccl_update (struct ccl_program *);
+extern bool setup_ccl_program (struct ccl_program *, Lisp_Object);
 
 extern void ccl_driver (struct ccl_program *, int *, int *, int, int,
                         Lisp_Object);
 
 
 extern void ccl_driver (struct ccl_program *, int *, int *, int, int,
                         Lisp_Object);
 
-/* Vector of CCL program names vs corresponding program data.  */
-extern Lisp_Object Vccl_program_table;
-
-/* Symbols of ccl program have this property, a value of the property
-   is an index for Vccl_protram_table. */
-extern Lisp_Object Qccl_program_idx;
-
-extern Lisp_Object Qccl, Qcclp;
-
-EXFUN (Fccl_program_p, 1);
-
 #define CHECK_CCL_PROGRAM(x)                   \
   do {                                         \
     if (NILP (Fccl_program_p (x)))             \
       wrong_type_argument (Qcclp, (x));        \
 #define CHECK_CCL_PROGRAM(x)                   \
   do {                                         \
     if (NILP (Fccl_program_p (x)))             \
       wrong_type_argument (Qcclp, (x));        \
-  } while (0);
+  } while (false);
 
 #endif /* EMACS_CCL_H */
 
 #endif /* EMACS_CCL_H */
-