Angus Leeming <[EMAIL PROTECTED]> writes: | Attached is a small patch allowing error and warning free compilation of | current CVS with DEC cxx. Please enlighten me why this is needed: @@ -2664,14 +2665,15 @@ { #warning Use a real stack! (Lgb) // pop all tags till specified one - for (int j = pos; (j >= 0) && (strcmp(stack[j], tag.c_str())); --j) + int j; + for (j = pos; (j >= 0) && (strcmp(stack[j], tag.c_str())); --j) os << "</" << stack[j] << ">"; // closes the tag os << "</" << tag << ">"; // push all tags, but the specified one - for (int j = j + 1; j <= pos; ++j) { + for (j = j + 1; j <= pos; ++j) { os << "<" << stack[j] << ">"; strcpy(stack[j-1], stack[j]); } Is the C++ scoping rules not present in cxx? -void MathMatrixInset::SetAlign(char vv, char const * hh) +void MathMatrixInset::SetAlign(char vv, string const & hh) { v_align = vv; - strncpy(h_align, hh, nc); + strncpy(h_align, hh.c_str(), nc); } The h_align should probably be changed to a string, then h_align.assign(hh, nc); could be used. Lgb