From 25fea6be0a210199478da48dc7cb65a0f0f8a103 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 23 Feb 2003 05:23:53 +0000 Subject: added _mesa_find_line_column() --- src/mesa/main/nvprogram.c | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'src/mesa/main/nvprogram.c') diff --git a/src/mesa/main/nvprogram.c b/src/mesa/main/nvprogram.c index b6960c0df8..207d705a18 100644 --- a/src/mesa/main/nvprogram.c +++ b/src/mesa/main/nvprogram.c @@ -1,4 +1,4 @@ -/* $Id: nvprogram.c,v 1.3 2003/02/16 23:07:36 brianp Exp $ */ +/* $Id: nvprogram.c,v 1.4 2003/02/23 05:23:53 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -141,6 +141,41 @@ _mesa_set_program_error(GLcontext *ctx, GLint pos, const char *string) } +const char * +_mesa_find_line_column(const char *string, const char *pos, + GLint *line, GLint *col) +{ + const char *lineStart = string; + const char *p = string; + char *s; + int len; + + *line = 1; + + while (p != pos) { + if (*p == '\n') { + (*line)++; + lineStart = p + 1; + } + p++; + } + + *col = (pos - lineStart) + 1; + + /* return copy of this line */ + while (*p != 0 && *p != '\n') + p++; + len = p - lineStart; + s = (char *) _mesa_malloc(len + 1); + _mesa_memcpy(s, lineStart, len); + s[len] = 0; + + return s; +} + + + + /** * Delete a program and remove it from the hash table, ignoring the * reference count. -- cgit v1.2.3