[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16954] trunk/blender/source/blender/src/ drawtext.c: Comments for text editor functions.

Ian Thompson quornian at googlemail.com
Tue Oct 7 00:08:14 CEST 2008


Revision: 16954
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16954
Author:   quorn
Date:     2008-10-07 00:08:14 +0200 (Tue, 07 Oct 2008)

Log Message:
-----------
Comments for text editor functions. More to come tomorrow.

Modified Paths:
--------------
    trunk/blender/source/blender/src/drawtext.c

Modified: trunk/blender/source/blender/src/drawtext.c
===================================================================
--- trunk/blender/source/blender/src/drawtext.c	2008-10-06 21:41:20 UTC (rev 16953)
+++ trunk/blender/source/blender/src/drawtext.c	2008-10-06 22:08:14 UTC (rev 16954)
@@ -136,7 +136,6 @@
 static int check_whitespace(char ch);
 
 static int get_wrap_width(SpaceText *st);
-//static int get_wrap_points(SpaceText *st, char *line);
 static void get_suggest_prefix(Text *text, int offset);
 static void confirm_suggestion(Text *text, int skipleft);
 
@@ -238,6 +237,13 @@
 	return r;
 }
 
+/* Checks the specified source string for a Python built-in function name. This
+ name must start at the beginning of the source string and must be followed by
+ a non-identifier (see check_identifier(char)) or null character.
+ 
+ If a built-in function is found, the length of the matching name is returned.
+ Otherwise, -1 is returned.
+ */
 static int find_builtinfunc(char *string)
 {
 	int a, i;
@@ -249,54 +255,51 @@
 	for (a=0; a<30; a++) {
 		i = 0;
 		while (1) {
+			/* If we hit the end of a keyword... (eg. "def") */
 			if (builtinfuncs[a][i]=='\0') {
+				/* If we still have identifier chars in the source (eg. "definate") */
 				if (check_identifier(string[i]))
-					i = -1;
-				break;
+					i = -1; /* No match */
+				break; /* Next keyword if no match, otherwise we're done */
+				
+			/* If chars mismatch, move on to next keyword */
 			} else if (string[i]!=builtinfuncs[a][i]) {
 				i = -1;
-				break;
+				break; /* Break inner loop, start next keyword */
 			}
 			i++;
 		}
-		if (i>0) break;
+		if (i>0) break; /* If we have a match, we're done */
 	}
 	return i;
 }
 
+/* Checks the specified source string for a Python special name. This name must
+ start at the beginning of the source string and must be followed by a non-
+ identifier (see check_identifier(char)) or null character.
+ 
+ If a special name is found, the length of the matching name is returned.
+ Otherwise, -1 is returned.
+ */
 static int find_specialvar(char *string) 
 {
 	int i = 0;
-	
+	/* Check for "def" */
 	if (string[0]=='d' && string[1]=='e' && string[2]=='f')
 		i = 3;
+	/* Check for "class" */
 	else if (string[0]=='c' && string[1]=='l' && string[2]=='a' && string[3]=='s' && string[4]=='s')
 		i = 5;
+	/* If next source char is an identifier (eg. 'i' in "definate") no match */
 	if (i==0 || check_identifier(string[i]))
 		return -1;
 	return i;
 }
 
-#if 0 // not used 
-static void print_format(SpaceText *st, TextLine *line) {
-	int i, a;
-	char *s, *f;
-	
-	s = line->line;
-	f = line->format;
-	for (a=0; *s; s++) {
-		if (*s == '\t') {
-			for (i=st->tabnumber-(a%st->tabnumber); i>0; i--)
-				printf(" "), f++, a++;
-		} else
-			printf("%c", *s), f++, a++;
-	}
-	printf("\n%s [%#x]\n", line->format, (int) (f[strlen(f)+1]));
-}
-#endif // not used
-
-/* Ensures the format string for the given line is long enough, reallocating as needed */
-static int check_format_len(TextLine *line, unsigned int len) 
+/* Ensures the format string for the given line is long enough, reallocating
+ as needed. Allocation is done here, alone, to ensure consitency.
+ */
+static int check_format_len(TextLine *line, unsigned int len)
 {
 	if (line->format) {
 		if (strlen(line->format) < len) {
@@ -311,20 +314,21 @@
 	return 1;
 }
 
-/* Formats the specified line and if allowed and needed will move on to the
- * next line. The format string contains the following characters:
- *		'_'		Whitespace
- *		'#'		Comment text
- *		'!'		Punctuation and other symbols
- *		'n'		Numerals
- *		'l'		String letters
- *		'v'		Special variables (class, def)
- *		'b'		Built-in names (print, for, etc.)
- *		'q'		Other text (identifiers, etc.)
- * It is terminated with a null-terminator '\0' followed by a continuation
- * flag indicating whether the line is part of a multi-line string.
+/* Formats the specified line. If do_next is set, the process will move on to
+ the succeeding line if it is affected (eg. multiline strings). Format strings
+ may contain any of the following characters:
+ 	'_'		Whitespace
+ 	'#'		Comment text
+ 	'!'		Punctuation and other symbols
+ 	'n'		Numerals
+ 	'l'		String letters
+ 	'v'		Special variables (class, def)
+ 	'b'		Built-in names (print, for, etc.)
+ 	'q'		Other text (identifiers, etc.)
+ It is terminated with a null-terminator '\0' followed by a continuation
+ flag indicating whether the line is part of a multi-line string.
  */
-void txt_format_line(SpaceText *st, TextLine *line, int do_next) 
+void txt_format_line(SpaceText *st, TextLine *line, int do_next)
 {
 	char *str, *fmt, orig, cont, find, prev = ' ';
 	int len, i;
@@ -435,6 +439,7 @@
 	}
 }
 
+/* Formats every line of the current text */
 void txt_format_text(SpaceText *st) 
 {
 	TextLine *linep;
@@ -445,7 +450,8 @@
 		txt_format_line(st, linep, 0);
 }
 
-static void format_draw_color(char formatchar) 
+/* Sets the current drawing color based on the format character specified */
+static void format_draw_color(char formatchar)
 {
 	switch (formatchar) {
 		case '_': /* Whitespace */
@@ -682,7 +688,7 @@
 	if(!sel) txt_pop_sel(text);
 }
 
-static int get_wrap_width(SpaceText *st) 
+static int get_wrap_width(SpaceText *st)
 {
 	int x, max;
 	
@@ -691,35 +697,8 @@
 	return max>8 ? max : 8;
 }
 
-#if 0 // not used 
-/* Returns the number of wrap points (or additional lines) in the given string */
-static int get_wrap_points(SpaceText *st, char *line) 
-{
-	int start, end, taboffs, i, max, count;
-	
-	if (!st->wordwrap) return 0;
-
-	end= max= get_wrap_width(st);
-	count= taboffs= start= 0;
-
-	for (i=0; line[i]!='\0'; i++) {
-		if (i-start+taboffs>=max) {
-			count++;
-			start= end;
-			end += max;
-			taboffs= 0;
-		} else if (line[i]==' ' || line[i]=='\t' || line[i]=='-') {
-			end = i+1;
-			if (line[i]=='\t')
-				taboffs += st->tabnumber-(i-start)%st->tabnumber;
-		}
-	}
-	return count;
-}
-#endif // not used
-
 /* Sets (offl, offc) for transforming (line, curs) to its wrapped position */
-static void wrap_offset(SpaceText *st, TextLine *linein, int cursin, int *offl, int *offc) 
+static void wrap_offset(SpaceText *st, TextLine *linein, int cursin, int *offl, int *offc)
 {
 	Text *text;
 	TextLine *linep;
@@ -797,7 +776,7 @@
 	return a;
 }
 
-static void draw_markers(SpaceText *st) 
+static void draw_markers(SpaceText *st)
 {
 	Text *text= st->text;
 	TextMarker *marker, *next;
@@ -869,7 +848,7 @@
 	}
 }
 
-static void draw_cursor(SpaceText *st) 
+static void draw_cursor(SpaceText *st)
 {
 	Text *text= st->text;
 	int vcurl, vcurc, vsell, vselc, hidden=0;
@@ -1063,6 +1042,7 @@
 	uiEmboss(st->txtbar.xmin, st->txtbar.ymin, st->txtbar.xmax, st->txtbar.ymax, st->flags & ST_SCROLL_SELECT);
 }
 
+/* Moves the view vertically by the specified number of lines */
 static void screen_skip(SpaceText *st, int lines)
 {
 	int last;
@@ -1080,6 +1060,12 @@
 	if (st->top<0) st->top= 0;
 }
 
+/* Moves the cursor vertically by the specified number of lines.
+ If the destination line is shorter than the current cursor position, the
+ cursor will be positioned at the end of this line.
+
+ This is to replace screen_skip for PageUp/Down operations.
+ */
 static void cursor_skip(SpaceText *st, int lines, int sel)
 {
 	Text *text;
@@ -1112,9 +1098,8 @@
 	txt_undo_add_toop(st->text, sel?UNDO_STO:UNDO_CTO, oldl, oldc, txt_get_span(text->lines.first, *linep), *charp);
 }
 
-/* 
- * mode 1 == view scroll
- * mode 2 == scrollbar
+/* Handles text scrolling via grabbing the view (MMB, mode 1) or with the
+ scrollbar (mode 2)
  */
 static void do_textscroll(SpaceText *st, int mode)
 {
@@ -1297,7 +1282,7 @@
 	return 1;
 }
 
-static void pop_suggest_list() 
+static void pop_suggest_list()
 {
 	SuggItem *item, *sel;
 	int *top, i;
@@ -1474,7 +1459,7 @@
 	}
 }
 
-static short check_blockhandler(SpaceText *st, short handler) 
+static short check_blockhandler(SpaceText *st, short handler)
 {
 	short a;
 	
@@ -1483,10 +1468,12 @@
 	return 0;
 }
 
+/* Find and replace GUI panel */
 static void text_panel_find(short cntrl)	// TEXT_HANDLER_FIND
 {
 	uiBlock *block;
 
+	/* Ensure that find and replace buffers have been allocated */
 	if (!g_find_str || !g_replace_str) {
 		g_find_str= MEM_mallocN(TXT_MAXFINDSTR+1, "find_string");
 		g_replace_str= MEM_mallocN(TXT_MAXFINDSTR+1, "replace_string");
@@ -1512,7 +1499,7 @@
 }
 
 /* mode: 0 find only, 1 replace/find, 2 mark all occurrences */
-void find_and_replace(SpaceText *st, short mode) 
+void find_and_replace(SpaceText *st, short mode)
 {
 	Text *start= NULL, *text= st->text;
 	int flags, first= 1;
@@ -1574,7 +1561,7 @@
 	} while (mode==2);
 }
 
-static void do_find_buttons(val) 
+static void do_find_buttons(val)
 {
 	Text *text;
 	SpaceText *st;
@@ -1886,7 +1873,7 @@
 	}
 }
 
-int jumptoline_interactive(SpaceText *st) 
+int jumptoline_interactive(SpaceText *st)
 {
 	short nlines= txt_get_span(st->text->lines.first, st->text->lines.last)+1;
 	short tmp= txt_get_span(st->text->lines.first, st->text->curl)+1;
@@ -2020,7 +2007,7 @@
 	return(output);
 }
 
-void txt_paste_clipboard(Text *text) 
+void txt_paste_clipboard(Text *text)
 {
 	char * buff;
 	char *temp_buff;
@@ -2042,7 +2029,7 @@
 	txt_insert_buf(text, buff);
 }
 
-void txt_copy_clipboard(Text *text) 
+void txt_copy_clipboard(Text *text)
 {
 	char *temp;
 
@@ -2094,7 +2081,7 @@
 	st->currtab_set = setcurr_tab(text);
 }
 
-static void wrap_move_bol(SpaceText *st, short sel) 
+static void wrap_move_bol(SpaceText *st, short sel)
 {
 	Text *text= st->text;
 	int offl, offc, lin;
@@ -2136,7 +2123,7 @@
 	}
 }
 
-static void wrap_move_up(SpaceText *st, short sel) 
+static void wrap_move_up(SpaceText *st, short sel)
 {
 	Text *text= st->text;
 	int offl, offl_1, offc, fromline, toline, c, target;
@@ -2181,7 +2168,7 @@
 	}
 }
 
-static void wrap_move_down(SpaceText *st, short sel) 
+static void wrap_move_down(SpaceText *st, short sel)
 {
 	Text *text= st->text;
 	int offl, startoff, offc, fromline, toline, c, target;
@@ -2228,7 +2215,7 @@
 	}
 }
 
-static void get_suggest_prefix(Text *text, int offset) 
+static void get_suggest_prefix(Text *text, int offset)
 {
 	int i, len;
 	char *line, tmp[256];
@@ -2251,7 +2238,7 @@
 	texttool_suggest_prefix(tmp);
 }
 
-static void confirm_suggestion(Text *text, int skipleft) 
+static void confirm_suggestion(Text *text, int skipleft)
 {
 	SuggItem *sel;
 	int i, over=0;
@@ -2285,7 +2272,7 @@
 	texttool_text_clear();
 }
 
-static short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short val) 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list