diff --git a/log/src/label.c b/log/src/label.c
index 03aa53e92883ccce03b8db8b15e5b26e89b507b7..f03d996412017ad57028213bbf639ad2bee56e3c 100644
--- a/log/src/label.c
+++ b/log/src/label.c
@@ -1,11 +1,13 @@
 
 #include <string.h>
 #include <p2c/p2c.h>
+#include <p2c/strings.h>
 #include <p2c/newkbd.h>
 #include "settings.h"
 #include "logglobals.h"
 #include "logfont.h"
 #include "utils.h"
+#include "page.h"
 #include "label.h"
 
 
@@ -16,14 +18,14 @@
  */
 void parselabel(na_strlist_t **lbl, short *numattrs, log_kattrrec **attr)
 {
-	short j, j1, j2, j3, yy, maxx;
+	size_t maxx, j1, j, j2, j3, yy;
 	na_strlist_t *l1, *l2, *l3, *attrnames;
 	char buf[256];
 	int haveprec;
 	log_kattrrec *WITH;
 	char STR1[256];
 	char STR2[256];
-	short FORLIM;
+	size_t FORLIM;
 
 	j = 1;
 	*numattrs = 0;
diff --git a/psys/include/p2c/p2c.h b/psys/include/p2c/p2c.h
index d97ef6f0de9373438805fd8eb5b533ac4bcf9181..8d9fb36d7ef84d3d627153ad06b4a5daf49e3c0a 100644
--- a/psys/include/p2c/p2c.h
+++ b/psys/include/p2c/p2c.h
@@ -51,7 +51,7 @@ typedef struct __p2c_jmp_buf {
 # define RECOVER(x)	__top_jb = __try_jb.next; } else {
 # define RECOVER2(x,L)  __top_jb = __try_jb.next; } else {  \
 			     if (0) { L: __top_jb = __try_jb.next; }
-# define ENDTRY(x)      } } while (0) 
+# define ENDTRY(x)      } } while (0)
 #else
 # define TRY(x)         if (1) {
 # define RECOVER(x)     } else do {
@@ -98,7 +98,7 @@ extern char    *strltrim     (char *);
 extern char    *strrtrim     (char *);
 extern char    *strrpt       (char *, char *, size_t);
 extern char    *strpad       (char *, char *, size_t, size_t);
-extern int      strpos2      (char *, char *, size_t);
+extern size_t      strpos2      (char *, char *, size_t);
 extern void    strmove      (size_t len, char * s, size_t spos, char * d, size_t dpos);
 extern int     strcicmp     (char * s1, char * s2);
 
diff --git a/psys/src/p2clib.c b/psys/src/p2clib.c
index c71cca9bb5ec388ec37265ac0ea1f4c87694e01d..7715e5c88173f0e516b5264b0f753ebd6a6141b2 100644
--- a/psys/src/p2clib.c
+++ b/psys/src/p2clib.c
@@ -92,7 +92,7 @@ char *strsub(char *ret, char *s, size_t pos, size_t len)
 		return ret;
 	}
 	--pos;
-    
+
 	while (pos-- > 0)
 	{
 		if (!*s++)
@@ -101,23 +101,22 @@ char *strsub(char *ret, char *s, size_t pos, size_t len)
 			return ret;
 		}
 	}
-	
+
 	s2 = ret;
 	while (len-- > 0)
 	{
 		if (!(*s2++ = *s++))
 			return ret;
 	}
-	
+
 	*s2 = '\0';
 	return ret;
 }
 
 
-/* Return the index of the first occurrence of "pat" as a substring of "s",
-   starting at index "pos" (1-based).  Result is 1-based, 0 if not found. */
-
-int strpos2(char *s, char *pat, size_t pos)
+/** Return the index of the first occurrence of "pat" as a substring of "s",
+    starting at index "pos" (1-based).  Result is 1-based, 0 if not found. */
+size_t strpos2(char *s, char *pat, size_t pos)
 {
 	char *cp, ch;
 	ptrdiff_t slen;
@@ -194,7 +193,7 @@ char *strpad(char *ret, char *s, size_t padchar, size_t num)
 	{
 		while ((*d++ = *s++)) ;
 	}
-	
+
 	num -= (--d - ret);
 	while (num > 0)
 		*d++ = padchar;
@@ -213,7 +212,7 @@ void strmove(size_t len, char *s, size_t spos, char *d, size_t dpos)
 	d += dpos - 1;
 	while (*d && len-- > 0)
 		*d++ = *s++;
-	
+
 	while (len-- > 0)
 		*d++ = *s++;
 	*d = 0;
@@ -261,7 +260,7 @@ void strinsert(char *src, char *dst, size_t pos)
 		return;
     }
 	slen = strlen(src);
-    
+
 	do
 	{
 		dst[slen] = *dst;
@@ -392,10 +391,10 @@ char *P_trimname(char *fn, size_t len)
 {
 	char *fnbuf = malloc(sizeof(char) * 256);
 	char *cp = fnbuf;
-    
+
 	while (len-- > 0 && *fn && !isspace(*fn))
 		*cp++ = *fn++;
-	
+
 	*cp = '\0';
 	return fnbuf;
 }
@@ -422,20 +421,20 @@ long *P_setunion(long *d, long *s1, long *s2)         /* d := s1 + s2 */
 	long *dbase = d++;
 	long sz1 = *s1++;
 	long sz2 = *s2++;
-	
+
 	while (sz1 > 0 && sz2 > 0)
 	{
 		*d++ = *s1++ | *s2++;
 		--sz1;
 		--sz2;
 	}
-	
+
 	while (--sz1 >= 0)
 		*d++ = *s1++;
-	
+
 	while (--sz2 >= 0)
 		*d++ = *s2++;
-	
+
 	*dbase = d - dbase - 1;
 	return dbase;
 }
@@ -449,9 +448,9 @@ long *P_setint(long *d, long *s1, long *s2)           /* d := s1 * s2 */
 
 	while (--sz1 >= 0 && --sz2 >= 0)
 		*d++ = *s1++ & *s2++;
-	
+
 	while (--d > dbase && !*d) ;
-	
+
 	*dbase = d - dbase;
 	return dbase;
 }
@@ -462,17 +461,17 @@ long *P_setdiff(long *d, long *s1, long *s2)          /* d := s1 - s2 */
 	long *dbase = d++;
 	long sz1 = *s1++;
 	long sz2 = *s2++;
-    
+
 	while (--sz1 >= 0 && --sz2 >= 0)
 		*d++ = *s1++ & ~*s2++;
-	
+
 	if (sz1 >= 0)
 	{
 		while (sz1-- >= 0)
 			*d++ = *s1++;
 	}
 	while (--d > dbase && !*d) ;
-	
+
 	*dbase = d - dbase;
 	return dbase;
 }
@@ -483,22 +482,22 @@ long *P_setxor(long *d, long *s1, long *s2)         /* d := s1 / s2 */
 	long *dbase = d++;
 	long sz1 = *s1++;
 	long sz2 = *s2++;
-	
+
 	while (sz1 > 0 && sz2 > 0)
 	{
 		*d++ = *s1++ ^ *s2++;
 		sz1--, sz2--;
 	}
-	
+
 	while (--sz1 >= 0)
 		*d++ = *s1++;
-	
+
 	while (--sz2 >= 0)
 		*d++ = *s2++;
-	
+
 	while (--d > dbase && !*d) ;
 	*dbase = d - dbase;
-	
+
 	return dbase;
 }
 
@@ -506,7 +505,7 @@ long *P_setxor(long *d, long *s1, long *s2)         /* d := s1 / s2 */
 int P_inset(unsigned val, long *s)                 /* val IN s */
 {
 	long bit = val % SETBITS;
-    
+
 	val /= SETBITS;
 	return ((long)val < *s++ && ((1<<bit) & s[val]));
 }
@@ -517,10 +516,10 @@ long *P_addset(long *s, unsigned val)              /* s := s + [val] */
 	long *sbase = s;
 	long bit;
 	size_t size;
-    
+
 	bit = val % SETBITS;
 	val /= SETBITS;
-	
+
 	size = *s;
 	if (++val > size)
 	{
@@ -544,10 +543,10 @@ long *P_addsetr(long *s, unsigned v1, unsigned v2)              /* s := s + [v1.
 	long *sbase = s;
 	long b1, b2;
 	size_t size;
-    
+
 	if ((int)v1 > (int)v2)
 		return sbase;
-	
+
 	b1 = v1 % SETBITS;
 	v1 /= SETBITS;
 	b2 = v2 % SETBITS;
@@ -588,7 +587,7 @@ long *P_remset(long *s, unsigned val)              /* s := s - [val] */
 			while (*s && !s[*s])
 				(*s)--;
 	}
-	
+
 	return s;
 }
 
@@ -612,13 +611,13 @@ int P_subset(long *s1, long *s2)                /* s1 <= s2 */
 	long sz2 = *s2++;
 	if (sz1 > sz2)
 		return 0;
-	
+
 	while (--sz1 >= 0)
 	{
 		if (*s1++ & ~*s2++)
 			return 0;
 	}
-	
+
 	return 1;
 }
 
@@ -665,10 +664,10 @@ int P_getcmdline(int l, int h, char *line)
 {
 	int i, len;
 	char *s;
-    
+
 	h = h - l + 1;
 	len = 0;
-    
+
 	for(i = 1; i < P_argc; i++)
 	{
 		s = P_argv[i];
@@ -682,7 +681,7 @@ int P_getcmdline(int l, int h, char *line)
 			return len;
 		line[len++] = ' ';
 	}
-    
+
 	return len;
 }
 
@@ -713,10 +712,10 @@ void P_sun_argv(char *s, int len, int n)
 		cp = P_argv[n];
 	else
 		cp = "";
-	
+
 	while (*cp && --len >= 0)
 		*s++ = *cp++;
-    
+
 	while (--len >= 0)
 		*s++ = ' ';
 }
@@ -753,7 +752,7 @@ char *_ShowEscape(char *buf, int code, int ior, char *prefix)
 	{
 		bufp = buf;
 	}
-    
+
 	if (code == -10)
 	{
 		sprintf(bufp, "Pascal system I/O error %d", ior);
@@ -842,12 +841,12 @@ int _Escape(int code)
 		__top_jb = jb->next;
 		longjmp(jb->jbuf, 1);
 	}
-    
+
 	if (code == 0)
 		exit(0);
 	if (code == -1)
 		exit(1);
-	
+
 	fprintf(stderr, "%s\n", _ShowEscape(buf, P_escapecode, P_ioresult, ""));
 	exit(1);
 }
@@ -871,7 +870,7 @@ char *GetChipmunkPath(char *ev, char *deft)
 /*
     usleep -- support routine for 4.2BSD system call emulations
     last edit:  29-Oct-1984     D A Gwyn
-*/ 
+*/
 //extern int select();
 
 int microsleep(long usec)         /* returns 0 if ok, else -1 */
@@ -880,7 +879,7 @@ int microsleep(long usec)         /* returns 0 if ok, else -1 */
       {
          long  tv_sec;         /* seconds */
          long  tv_usec;        /* microsecs */
-                   
+
       }   delay;               /* _select() timeout */
 
     delay.tv_sec = usec / 1000000L;
@@ -893,4 +892,3 @@ int microsleep(long usec)         /* returns 0 if ok, else -1 */
 #endif
 
 }
-