added _mesa_find_line_column()
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: nvprogram.h,v 1.2 2003/02/16 23:07:36 brianp Exp $ */
|
||||
/* $Id: nvprogram.h,v 1.3 2003/02/23 05:23:54 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -55,6 +55,10 @@ _mesa_assign_program_registers(struct symbol_table *symbolTable);
|
||||
extern void
|
||||
_mesa_set_program_error(GLcontext *ctx, GLint pos, const char *string);
|
||||
|
||||
extern const char *
|
||||
_mesa_find_line_column(const char *string, const char *pos,
|
||||
GLint *line, GLint *col);
|
||||
|
||||
extern void
|
||||
_mesa_delete_program(GLcontext *ctx, GLuint id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user