[BACK]Return to line.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mg

Diff for /src/usr.bin/mg/line.c between version 1.48 and 1.49

version 1.48, 2009/06/05 18:02:06 version 1.49, 2009/11/12 16:37:14
Line 423 
Line 423 
         int              doto;          int              doto;
         char            *cp1, *cp2;          char            *cp1, *cp2;
         size_t           len;          size_t           len;
         char            *sv;          char            *sv = NULL;
         int              end;          int              end;
         int              s;          int              s;
           int              rval = FALSE;
   
         if ((s = checkdirty(curbp)) != TRUE)          if ((s = checkdirty(curbp)) != TRUE)
                 return (s);                  return (s);
         if (curbp->b_flag & BFREADONLY) {          if (curbp->b_flag & BFREADONLY) {
                 ewprintf("Buffer is read only");                  ewprintf("Buffer is read only");
                 return (FALSE);                  goto out;
         }          }
         len = n;          len = n;
         if ((sv = calloc(1, len + 1)) == NULL)          if ((sv = calloc(1, len + 1)) == NULL)
                 return (FALSE);                  goto out;
         end = 0;          end = 0;
   
         undo_add_delete(curwp->w_dotp, curwp->w_doto, n, (kflag & KREG));          undo_add_delete(curwp->w_dotp, curwp->w_doto, n, (kflag & KREG));
Line 445 
Line 446 
                 doto = curwp->w_doto;                  doto = curwp->w_doto;
                 /* Hit the end of the buffer */                  /* Hit the end of the buffer */
                 if (dotp == curbp->b_headp)                  if (dotp == curbp->b_headp)
                         return (FALSE);                          goto out;
                 /* Size of the chunk */                  /* Size of the chunk */
                 chunk = dotp->l_used - doto;                  chunk = dotp->l_used - doto;
   
Line 454 
Line 455 
                 /* End of line, merge */                  /* End of line, merge */
                 if (chunk == 0) {                  if (chunk == 0) {
                         if (dotp == blastlp(curbp))                          if (dotp == blastlp(curbp))
                                 return (FALSE);                                  goto out;
                         lchange(WFFULL);                          lchange(WFFULL);
                         if (ldelnewline() == FALSE)                          if (ldelnewline() == FALSE)
                                 return (FALSE);                                  goto out;
                         end = strlcat(sv, "\n", len + 1);                          end = strlcat(sv, "\n", len + 1);
                         --n;                          --n;
                         continue;                          continue;
Line 489 
Line 490 
                 n -= chunk;                  n -= chunk;
         }          }
         if (kchunk(sv, (RSIZE)len, kflag) != TRUE)          if (kchunk(sv, (RSIZE)len, kflag) != TRUE)
                 return (FALSE);                  goto out;
           rval = TRUE;
   out:
         free(sv);          free(sv);
         return (TRUE);          return (rval);
 }  }
   
 /*  /*

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.49