/[emacs]/emacs/src/coding.c
ViewVC logotype

Diff of /emacs/src/coding.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.239.2.44 by handa, Mon Jan 6 11:37:17 2003 UTC revision 1.239.2.45 by handa, Thu Jan 30 02:23:12 2003 UTC
# Line 4302  decode_coding_ccl (coding) Line 4302  decode_coding_ccl (coding)
4302    struct ccl_program ccl;    struct ccl_program ccl;
4303    int source_charbuf[1024];    int source_charbuf[1024];
4304    int source_byteidx[1024];    int source_byteidx[1024];
4305      Lisp_Object attrs, eol_type, charset_list, valids;
4306    
4307      CODING_GET_INFO (coding, attrs, eol_type, charset_list);
4308    setup_ccl_program (&ccl, CODING_CCL_DECODER (coding));    setup_ccl_program (&ccl, CODING_CCL_DECODER (coding));
4309    
4310    while (src < src_end)    while (src < src_end)
# Line 4329  decode_coding_ccl (coding) Line 4331  decode_coding_ccl (coding)
4331        while (source < source_end)        while (source < source_end)
4332          {          {
4333            ccl_driver (&ccl, source, charbuf,            ccl_driver (&ccl, source, charbuf,
4334                        source_end - source, charbuf_end - charbuf);                        source_end - source, charbuf_end - charbuf,
4335                          charset_list);
4336            source += ccl.consumed;            source += ccl.consumed;
4337            charbuf += ccl.produced;            charbuf += ccl.produced;
4338            if (ccl.status != CCL_STAT_SUSPEND_BY_DST)            if (ccl.status != CCL_STAT_SUSPEND_BY_DST)
# Line 4379  encode_coding_ccl (coding) Line 4382  encode_coding_ccl (coding)
4382    unsigned char *adjusted_dst_end = dst_end - 1;    unsigned char *adjusted_dst_end = dst_end - 1;
4383    int destination_charbuf[1024];    int destination_charbuf[1024];
4384    int i, produced_chars = 0;    int i, produced_chars = 0;
4385      Lisp_Object attrs, eol_type, charset_list;
4386    
4387      CODING_GET_INFO (coding, attrs, eol_type, charset_list);
4388    setup_ccl_program (&ccl, CODING_CCL_ENCODER (coding));    setup_ccl_program (&ccl, CODING_CCL_ENCODER (coding));
4389    
4390    ccl.last_block = coding->mode & CODING_MODE_LAST_BLOCK;    ccl.last_block = coding->mode & CODING_MODE_LAST_BLOCK;
# Line 4392  encode_coding_ccl (coding) Line 4397  encode_coding_ccl (coding)
4397          dst_bytes = 1024;          dst_bytes = 1024;
4398    
4399        ccl_driver (&ccl, charbuf, destination_charbuf,        ccl_driver (&ccl, charbuf, destination_charbuf,
4400                    charbuf_end - charbuf, dst_bytes);                    charbuf_end - charbuf, dst_bytes, charset_list);
4401        charbuf += ccl.consumed;        charbuf += ccl.consumed;
4402        if (multibytep)        if (multibytep)
4403          for (i = 0; i < ccl.produced; i++)          for (i = 0; i < ccl.produced; i++)
# Line 7909  usage: (define-coding-system-internal .. Line 7914  usage: (define-coding-system-internal ..
7914        valids = Fmake_string (make_number (256), make_number (0));        valids = Fmake_string (make_number (256), make_number (0));
7915        for (tail = val; !NILP (tail); tail = Fcdr (tail))        for (tail = val; !NILP (tail); tail = Fcdr (tail))
7916          {          {
7917              int from, to;
7918    
7919            val = Fcar (tail);            val = Fcar (tail);
7920            if (INTEGERP (val))            if (INTEGERP (val))
7921              ASET (valids, XINT (val), make_number (1));              {
7922                  from = to = XINT (val);
7923                  if (from < 0 || from > 255)
7924                    args_out_of_range_3 (val, make_number (0), make_number (255));
7925                }
7926            else            else
7927              {              {
               int from, to;  
   
7928                CHECK_CONS (val);                CHECK_CONS (val);
7929                CHECK_NUMBER (XCAR (val));                CHECK_NUMBER (XCAR (val));
7930                CHECK_NUMBER (XCDR (val));                CHECK_NUMBER (XCDR (val));
7931                from = XINT (XCAR (val));                from = XINT (XCAR (val));
7932                  if (from < 0 || from > 255)
7933                    args_out_of_range_3 (XCAR (val),
7934                                         make_number (0), make_number (255));
7935                to = XINT (XCDR (val));                to = XINT (XCDR (val));
7936                for (i = from; i <= to; i++)                if (to < from || to > 255)
7937                  ASET (valids, i, make_number (1));                  args_out_of_range_3 (XCDR (val),
7938                                         XCAR (val), make_number (255));
7939              }              }
7940              for (i = from; i <= to; i++)
7941                XSTRING (valids)->data[i] = 1;
7942          }          }
7943        ASET (attrs, coding_attr_ccl_valids, valids);        ASET (attrs, coding_attr_ccl_valids, valids);
7944                

Legend:
Removed from v.1.239.2.44  
changed lines
  Added in v.1.239.2.45

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26