emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/coding.c


From: Eli Zaretskii
Subject: [Emacs-diffs] Changes to emacs/src/coding.c
Date: Sat, 11 May 2002 17:32:53 -0400

Index: emacs/src/coding.c
diff -c emacs/src/coding.c:1.243 emacs/src/coding.c:1.244
*** emacs/src/coding.c:1.243    Sat May 11 11:59:49 2002
--- emacs/src/coding.c  Sat May 11 17:32:52 2002
***************
*** 4590,4596 ****
        {
          /* If the last character is CR, we can't handle it here
             because LF will be in the not-yet-decoded source text.
!            Recorded that the CR is not yet processed.  */
          coding->spec.ccl.cr_carryover = 1;
          coding->produced--;
          coding->produced_char--;
--- 4590,4596 ----
        {
          /* If the last character is CR, we can't handle it here
             because LF will be in the not-yet-decoded source text.
!            Record that the CR is not yet processed.  */
          coding->spec.ccl.cr_carryover = 1;
          coding->produced--;
          coding->produced_char--;
***************
*** 4686,4691 ****
--- 4686,4693 ----
       unsigned char *source, *destination;
       int src_bytes, dst_bytes;
  {
+   int extra = 0;
+ 
    if (coding->type == coding_type_undecided)
      detect_coding (coding, source, src_bytes);
  
***************
*** 4728,4745 ****
      case coding_type_ccl:
        if (coding->spec.ccl.cr_carryover)
        {
!         /* Set the CR which is not processed by the previous call of
!            decode_eol_post_ccl in DESTINATION.  */
          *destination = '\r';
          coding->produced++;
          coding->produced_char++;
          dst_bytes--;
        }
!       ccl_coding_driver (coding, source,
!                        destination + coding->spec.ccl.cr_carryover,
                         src_bytes, dst_bytes, 0);
        if (coding->eol_type != CODING_EOL_LF)
!       decode_eol_post_ccl (coding, destination, coding->produced);
        break;
  
      default:
--- 4730,4753 ----
      case coding_type_ccl:
        if (coding->spec.ccl.cr_carryover)
        {
!         /* Put the CR which was not processed by the previous call
!            of decode_eol_post_ccl in DESTINATION.  It will be
!            decoded together with the following LF by the call to
!            decode_eol_post_ccl below.  */
          *destination = '\r';
          coding->produced++;
          coding->produced_char++;
          dst_bytes--;
+         extra = coding->spec.ccl.cr_carryover;
        }
!       ccl_coding_driver (coding, source, destination + extra,
                         src_bytes, dst_bytes, 0);
        if (coding->eol_type != CODING_EOL_LF)
!       {
!         coding->produced += extra;
!         coding->produced_char += extra;
!         decode_eol_post_ccl (coding, destination, coding->produced);
!       }
        break;
  
      default:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]