diff options
author | anders <anders@FreeBSD.org> | 2001-11-22 07:08:20 +0800 |
---|---|---|
committer | anders <anders@FreeBSD.org> | 2001-11-22 07:08:20 +0800 |
commit | 010040c2a7cf8f523f1e46afa90e7a465164cfd9 (patch) | |
tree | ad9fc7149f6aea824e7c8299195c8eddf8d69774 /graphics/xmms-xvs/files | |
parent | eed25dcb1fd1e97d36390584c13c200b52433899 (diff) | |
download | freebsd-ports-graphics-010040c2a7cf8f523f1e46afa90e7a465164cfd9.tar.gz freebsd-ports-graphics-010040c2a7cf8f523f1e46afa90e7a465164cfd9.tar.zst freebsd-ports-graphics-010040c2a7cf8f523f1e46afa90e7a465164cfd9.zip |
Add xmms-xvs (X Visualization System) 0.1.0b1, a visualization plug-in
for XMMS inspired by WinAmp's AVS.
Approved by: will
Diffstat (limited to 'graphics/xmms-xvs/files')
-rw-r--r-- | graphics/xmms-xvs/files/patch-src-calc-parser.h | 11 | ||||
-rw-r--r-- | graphics/xmms-xvs/files/patch-src-calc-parser.y | 78 |
2 files changed, 89 insertions, 0 deletions
diff --git a/graphics/xmms-xvs/files/patch-src-calc-parser.h b/graphics/xmms-xvs/files/patch-src-calc-parser.h new file mode 100644 index 00000000000..6761261f9fe --- /dev/null +++ b/graphics/xmms-xvs/files/patch-src-calc-parser.h @@ -0,0 +1,11 @@ +--- src/calc/parser.h Thu May 31 18:54:07 2001 ++++ src/calc/parser.h Tue Jun 26 22:27:15 2001 +@@ -29,7 +29,7 @@ + + /* Structure passed do yyparse. */ + typedef struct { +- FILE *input; ++ const char *input; + expression_t *expr; + symbol_dict_t *dict; + } parser_control; diff --git a/graphics/xmms-xvs/files/patch-src-calc-parser.y b/graphics/xmms-xvs/files/patch-src-calc-parser.y new file mode 100644 index 00000000000..9ef0b8ccbbb --- /dev/null +++ b/graphics/xmms-xvs/files/patch-src-calc-parser.y @@ -0,0 +1,78 @@ +--- src/calc/parser.y.orig Thu Jun 21 11:34:14 2001 ++++ src/calc/parser.y Tue Jun 26 22:20:18 2001 +@@ -148,12 +148,20 @@ + return 0; + } + ++int strgetc (const char **str) { ++ char c; ++ if ((c = **str)) { (*str)++; return c; } ++ return EOF; ++} ++ ++void strungetc (int c, const char **str) { if (c != EOF) (*str)--; } ++ + int yylex (YYSTYPE *yylval, void *yyparam) { + int c; + parser_control *pc = (parser_control *) yyparam; + + /* Ignore whitespace, get first nonwhite character. */ +- while ((c = fgetc (pc->input)) == ' ' || c == '\t' || c == '\n'); ++ while ((c = strgetc (&pc->input)) == ' ' || c == '\t' || c == '\n'); + + /* End of input ? */ + if (c == EOF) +@@ -161,14 +169,16 @@ + + /* Char starts a number => parse the number. */ + if (isdigit (c)) { +- ungetc (c, pc->input);/* Put the char back. */ ++ strungetc (c, &pc->input); /* Put the char back. */ + { + char *old_locale, *saved_locale; ++ int n; + + old_locale = setlocale (LC_ALL, NULL); + saved_locale = g_strdup (old_locale); + setlocale (LC_ALL, "C"); +- fscanf (pc->input, "%lf", &yylval->d_value); ++ sscanf (pc->input, "%lf%n", &yylval->d_value, &n); ++ pc->input += n; + setlocale (LC_ALL, saved_locale); + g_free (saved_locale); + } +@@ -185,10 +195,10 @@ + sym_name = g_string_append_c (sym_name, c); + + /* Get another character. */ +- c = fgetc (pc->input); ++ c = strgetc (&pc->input); + } while (c != EOF && isalnum (c)); + +- ungetc (c, pc->input); ++ strungetc (c, &pc->input); + + yylval->s_value = sym_name->str; + +@@ -264,11 +274,8 @@ + + expression_t *expr_compile_string (const char* str, symbol_dict_t *dict) { + parser_control pc; +- FILE *stream; + +- stream = fmemopen (str, strlen (str), "r"); +- +- pc.input = stream; ++ pc.input = str; + pc.expr = expr_new (); + pc.dict = dict; + +@@ -277,8 +284,6 @@ + expr_free (pc.expr); + pc.expr = NULL; + } +- +- fclose (stream); + + return pc.expr; + } |