]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/base/lib_addstr.c
ncurses 5.2
[ncurses.git] / ncurses / base / lib_addstr.c
index 9ac55e42aba7051daa4cf8cc5df3c1f36e981962..59a3bae81c8cd91319b4dd5c2660521121ba01d8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_addstr.c,v 1.16 1998/06/28 00:38:29 tom Exp $")
+MODULE_ID("$Id: lib_addstr.c,v 1.18 2000/07/29 16:42:41 tom Exp $")
 
 int
 waddnstr(WINDOW *win, const char *const astr, int n)
 {
-unsigned const char *str = (unsigned const char *)astr;
-int code = ERR;
+    unsigned const char *str = (unsigned const char *) astr;
+    int code = ERR;
 
-       T((T_CALLED("waddnstr(%p,%s,%d)"), win, _nc_visbuf(astr), n));
-         
-       if (win && (str != 0)) {            
-         T(("... current %s", _traceattr(win->_attrs)));
-         TR(TRACE_VIRTPUT, ("str is not null"));
-         code = OK;
-         if (n < 0)
-           n = (int)strlen(astr);
-         
-         while((n-- > 0) && (*str != '\0')) {
+    T((T_CALLED("waddnstr(%p,%s,%d)"), win, _nc_visbuf(astr), n));
+
+    if (win && (str != 0)) {
+       TR(TRACE_VIRTPUT | TRACE_ATTRS, ("... current %s", _traceattr(win->_attrs)));
+       TR(TRACE_VIRTPUT, ("str is not null"));
+       code = OK;
+       if (n < 0)
+           n = (int) strlen(astr);
+
+       while ((n-- > 0) && (*str != '\0')) {
            TR(TRACE_VIRTPUT, ("*str = %#x", *str));
-           if (_nc_waddch_nosync(win, (chtype)*str++) == ERR) {
-             code = ERR;
-             break;
+           if (_nc_waddch_nosync(win, (chtype) * str++) == ERR) {
+               code = ERR;
+               break;
            }
-         }
-         _nc_synchook(win);
        }
-       TR(TRACE_VIRTPUT, ("waddnstr returns %d", code));
-       returnCode(code);
+       _nc_synchook(win);
+    }
+    TR(TRACE_VIRTPUT, ("waddnstr returns %d", code));
+    returnCode(code);
 }
 
 int
-waddchnstr(WINDOW *win, const chtype *const astr, int n)
+waddchnstr(WINDOW *win, const chtype * const astr, int n)
 {
-short y = win->_cury;
-short x = win->_curx;
-int code = OK;
-struct ldat *line;
+    NCURSES_SIZE_T y = win->_cury;
+    NCURSES_SIZE_T x = win->_curx;
+    int code = OK;
+    struct ldat *line;
 
-       T((T_CALLED("waddchnstr(%p,%p,%d)"), win, astr, n));
+    T((T_CALLED("waddchnstr(%p,%p,%d)"), win, astr, n));
 
-       if (!win)
-               returnCode(ERR);
+    if (!win)
+       returnCode(ERR);
 
-       if (n < 0) {
-               const chtype *str;
-               n = 0;
-               for (str=(const chtype *)astr; *str!=0; str++)
-                       n++;
-       }
-       if (n > win->_maxx - x + 1)
-               n = win->_maxx - x + 1;
-       if (n == 0)
-               returnCode(code);
+    if (n < 0) {
+       const chtype *str;
+       n = 0;
+       for (str = (const chtype *) astr; *str != 0; str++)
+           n++;
+    }
+    if (n > win->_maxx - x + 1)
+       n = win->_maxx - x + 1;
+    if (n == 0)
+       returnCode(code);
 
-       line = &(win->_line[y]);
-       memcpy(line->text+x, astr, n*sizeof(*astr));
-       CHANGED_RANGE(line, x, x+n-1);
+    line = &(win->_line[y]);
+    memcpy(line->text + x, astr, n * sizeof(*astr));
+    CHANGED_RANGE(line, x, x + n - 1);
 
-       _nc_synchook(win);
-       returnCode(code);
+    _nc_synchook(win);
+    returnCode(code);
 }