]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/base/lib_slkset.c
ncurses 5.3
[ncurses.git] / ncurses / base / lib_slkset.c
index 27471add77fa97c3f07788f654f34305b1b4b815..d15002f17dba7205046dce6e0d58678db569b2be 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998,2000,2001 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>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_slkset.c,v 1.3 1998/02/11 12:13:56 tom Exp $")
+MODULE_ID("$Id: lib_slkset.c,v 1.7 2001/06/02 22:50:29 skimo Exp $")
 
-int
+NCURSES_EXPORT(int)
 slk_set(int i, const char *astr, int format)
 {
-SLK *slk = SP->_slk;
-size_t len;
-const char *str = astr;
-const char *p;
+    SLK *slk = SP->_slk;
+    size_t len;
+    const char *str = astr;
+    const char *p;
 
-       T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format));
+    T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format));
 
-       if (slk == NULL || i < 1 || i > slk->labcnt || format < 0 || format > 2)
-               returnCode(ERR);
-       if (str == NULL)
-               str = "";
+    if (slk == NULL || i < 1 || i > slk->labcnt || format < 0 || format > 2)
+       returnCode(ERR);
+    if (str == NULL)
+       str = "";
 
-       while (isspace(*str)) str++; /* skip over leading spaces  */
-       p = str;
-       while (isprint(*p)) p++;     /* The first non-print stops */
+    while (isspace(UChar(*str)))
+       str++;                  /* skip over leading spaces  */
+    p = str;
+    while (isprint(UChar(*p)))
+       p++;                    /* The first non-print stops */
 
-       --i; /* Adjust numbering of labels */
+    --i;                       /* Adjust numbering of labels */
 
-       len = (size_t)(p - str);
-       if (len > (unsigned)slk->maxlen)
-         len = slk->maxlen;
-       if (len==0)
-         slk->ent[i].text[0] = 0;
-       else
-         (void) strncpy(slk->ent[i].text, str, len);
-       memset(slk->ent[i].form_text,' ', (unsigned)slk->maxlen);
-       slk->ent[i].text[slk->maxlen] = 0;
-       /* len = strlen(slk->ent[i].text); */
+    len = (size_t) (p - str);
+    if (len > (unsigned) slk->maxlen)
+       len = slk->maxlen;
+    if (len == 0)
+       slk->ent[i].text[0] = 0;
+    else
+       (void) strncpy(slk->ent[i].text, str, len);
+    memset(slk->ent[i].form_text, ' ', (unsigned) slk->maxlen);
+    slk->ent[i].text[slk->maxlen] = 0;
+    /* len = strlen(slk->ent[i].text); */
 
-       switch(format) {
-       case 0: /* left-justified */
-               memcpy(slk->ent[i].form_text,
-                      slk->ent[i].text,
-                      len);
-               break;
-       case 1: /* centered */
-               memcpy(slk->ent[i].form_text+(slk->maxlen - len)/2,
-                      slk->ent[i].text,
-                      len);
-               break;
-       case 2: /* right-justified */
-               memcpy(slk->ent[i].form_text+ slk->maxlen - len,
-                      slk->ent[i].text,
-                      len);
-               break;
-       }
-       slk->ent[i].form_text[slk->maxlen] = 0;
-       slk->ent[i].dirty = TRUE;
-       returnCode(OK);
+    switch (format) {
+    case 0:                    /* left-justified */
+       memcpy(slk->ent[i].form_text,
+              slk->ent[i].text,
+              len);
+       break;
+    case 1:                    /* centered */
+       memcpy(slk->ent[i].form_text + (slk->maxlen - len) / 2,
+              slk->ent[i].text,
+              len);
+       break;
+    case 2:                    /* right-justified */
+       memcpy(slk->ent[i].form_text + slk->maxlen - len,
+              slk->ent[i].text,
+              len);
+       break;
+    }
+    slk->ent[i].form_text[slk->maxlen] = 0;
+    slk->ent[i].dirty = TRUE;
+    returnCode(OK);
 }