itextomml 1.3.20 → 1.3.21

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -6,6 +6,10 @@ A summary of the LaTeX syntax supported in itex can be found at
6
6
 
7
7
  http://golem.ph.utexas.edu/~distler/blog/itex2MMLcommands.html
8
8
 
9
+ The source repository for the itex2MML project may be found at
10
+
11
+ http://golem.ph.utexas.edu/~distler/code/itexToMML/changes
12
+
9
13
  The Ruby module provides four public methods
10
14
 
11
15
  require 'itextomml'
data/ext/itex2MML.h CHANGED
@@ -1,11 +1,11 @@
1
- /* itex2MML 1.3.20
2
- * itex2MML.h last modified 2/21/2010
1
+ /* itex2MML 1.3.21
2
+ * itex2MML.h last modified 4/4/2010
3
3
  */
4
4
 
5
5
  #ifndef ITEX2MML_H
6
6
  #define ITEX2MML_H
7
7
 
8
- #define ITEX2MML_VERSION "1.3.20"
8
+ #define ITEX2MML_VERSION "1.3.21"
9
9
 
10
10
  #ifdef __cplusplus
11
11
  extern "C" {
data/ext/itex2MML_ruby.c CHANGED
@@ -1,6 +1,6 @@
1
1
  /* ----------------------------------------------------------------------------
2
2
  * This file was automatically generated by SWIG (http://www.swig.org).
3
- * Version 1.3.40
3
+ * Version 1.3.35
4
4
  *
5
5
  * This file is not intended to be easily readable and contains a number of
6
6
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -9,7 +9,6 @@
9
9
  * ----------------------------------------------------------------------------- */
10
10
 
11
11
  #define SWIGRUBY
12
-
13
12
  /* -----------------------------------------------------------------------------
14
13
  * This section contains generic SWIG labels for method/variable
15
14
  * declarations/attributes, and other compiler dependent labels.
@@ -52,12 +51,6 @@
52
51
  # endif
53
52
  #endif
54
53
 
55
- #ifndef SWIG_MSC_UNSUPPRESS_4505
56
- # if defined(_MSC_VER)
57
- # pragma warning(disable : 4505) /* unreferenced local function has been removed */
58
- # endif
59
- #endif
60
-
61
54
  #ifndef SWIGUNUSEDPARM
62
55
  # ifdef __cplusplus
63
56
  # define SWIGUNUSEDPARM(p)
@@ -161,12 +154,6 @@
161
154
  # endif
162
155
  #endif
163
156
 
164
- #ifndef SWIG_MSC_UNSUPPRESS_4505
165
- # if defined(_MSC_VER)
166
- # pragma warning(disable : 4505) /* unreferenced local function has been removed */
167
- # endif
168
- #endif
169
-
170
157
  #ifndef SWIGUNUSEDPARM
171
158
  # ifdef __cplusplus
172
159
  # define SWIGUNUSEDPARM(p)
@@ -231,7 +218,7 @@
231
218
  /* -----------------------------------------------------------------------------
232
219
  * swigrun.swg
233
220
  *
234
- * This file contains generic C API SWIG runtime support for pointer
221
+ * This file contains generic CAPI SWIG runtime support for pointer
235
222
  * type checking.
236
223
  * ----------------------------------------------------------------------------- */
237
224
 
@@ -250,11 +237,11 @@
250
237
 
251
238
  /*
252
239
  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
253
- creating a static or dynamic library from the SWIG runtime code.
254
- In 99.9% of the cases, SWIG just needs to declare them as 'static'.
240
+ creating a static or dynamic library from the swig runtime code.
241
+ In 99.9% of the cases, swig just needs to declare them as 'static'.
255
242
 
256
- But only do this if strictly necessary, ie, if you have problems
257
- with your compiler or suchlike.
243
+ But only do this if is strictly necessary, ie, if you have problems
244
+ with your compiler or so.
258
245
  */
259
246
 
260
247
  #ifndef SWIGRUNTIME
@@ -281,14 +268,14 @@
281
268
  /*
282
269
  Flags/methods for returning states.
283
270
 
284
- The SWIG conversion methods, as ConvertPtr, return and integer
271
+ The swig conversion methods, as ConvertPtr, return and integer
285
272
  that tells if the conversion was successful or not. And if not,
286
273
  an error code can be returned (see swigerrors.swg for the codes).
287
274
 
288
275
  Use the following macros/flags to set or process the returning
289
276
  states.
290
277
 
291
- In old versions of SWIG, code such as the following was usually written:
278
+ In old swig versions, you usually write code as:
292
279
 
293
280
  if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
294
281
  // success code
@@ -296,7 +283,7 @@
296
283
  //fail code
297
284
  }
298
285
 
299
- Now you can be more explicit:
286
+ Now you can be more explicit as:
300
287
 
301
288
  int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
302
289
  if (SWIG_IsOK(res)) {
@@ -305,7 +292,7 @@
305
292
  // fail code
306
293
  }
307
294
 
308
- which is the same really, but now you can also do
295
+ that seems to be the same, but now you can also do
309
296
 
310
297
  Type *ptr;
311
298
  int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
@@ -323,7 +310,7 @@
323
310
 
324
311
  I.e., now SWIG_ConvertPtr can return new objects and you can
325
312
  identify the case and take care of the deallocation. Of course that
326
- also requires SWIG_ConvertPtr to return new result values, such as
313
+ requires also to SWIG_ConvertPtr to return new result values, as
327
314
 
328
315
  int SWIG_ConvertPtr(obj, ptr,...) {
329
316
  if (<obj is ok>) {
@@ -341,7 +328,7 @@
341
328
 
342
329
  Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
343
330
  more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
344
- SWIG errors code.
331
+ swig errors code.
345
332
 
346
333
  Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
347
334
  allows to return the 'cast rank', for example, if you have this
@@ -355,8 +342,9 @@
355
342
  fooi(1) // cast rank '0'
356
343
 
357
344
  just use the SWIG_AddCast()/SWIG_CheckState()
358
- */
359
345
 
346
+
347
+ */
360
348
  #define SWIG_OK (0)
361
349
  #define SWIG_ERROR (-1)
362
350
  #define SWIG_IsOK(r) (r >= 0)
@@ -381,6 +369,7 @@
381
369
  #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
382
370
  #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
383
371
 
372
+
384
373
  /* Cast-Rank Mode */
385
374
  #if defined(SWIG_CASTRANK_MODE)
386
375
  # ifndef SWIG_TypeRank
@@ -403,6 +392,8 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
403
392
  #endif
404
393
 
405
394
 
395
+
396
+
406
397
  #include <string.h>
407
398
 
408
399
  #ifdef __cplusplus
@@ -499,58 +490,40 @@ SWIG_TypeCompare(const char *nb, const char *tb) {
499
490
  }
500
491
 
501
492
 
493
+ /* think of this as a c++ template<> or a scheme macro */
494
+ #define SWIG_TypeCheck_Template(comparison, ty) \
495
+ if (ty) { \
496
+ swig_cast_info *iter = ty->cast; \
497
+ while (iter) { \
498
+ if (comparison) { \
499
+ if (iter == ty->cast) return iter; \
500
+ /* Move iter to the top of the linked list */ \
501
+ iter->prev->next = iter->next; \
502
+ if (iter->next) \
503
+ iter->next->prev = iter->prev; \
504
+ iter->next = ty->cast; \
505
+ iter->prev = 0; \
506
+ if (ty->cast) ty->cast->prev = iter; \
507
+ ty->cast = iter; \
508
+ return iter; \
509
+ } \
510
+ iter = iter->next; \
511
+ } \
512
+ } \
513
+ return 0
514
+
502
515
  /*
503
516
  Check the typename
504
517
  */
505
518
  SWIGRUNTIME swig_cast_info *
506
519
  SWIG_TypeCheck(const char *c, swig_type_info *ty) {
507
- if (ty) {
508
- swig_cast_info *iter = ty->cast;
509
- while (iter) {
510
- if (strcmp(iter->type->name, c) == 0) {
511
- if (iter == ty->cast)
512
- return iter;
513
- /* Move iter to the top of the linked list */
514
- iter->prev->next = iter->next;
515
- if (iter->next)
516
- iter->next->prev = iter->prev;
517
- iter->next = ty->cast;
518
- iter->prev = 0;
519
- if (ty->cast) ty->cast->prev = iter;
520
- ty->cast = iter;
521
- return iter;
522
- }
523
- iter = iter->next;
524
- }
525
- }
526
- return 0;
520
+ SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
527
521
  }
528
522
 
529
- /*
530
- Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
531
- */
523
+ /* Same as previous function, except strcmp is replaced with a pointer comparison */
532
524
  SWIGRUNTIME swig_cast_info *
533
- SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
534
- if (ty) {
535
- swig_cast_info *iter = ty->cast;
536
- while (iter) {
537
- if (iter->type == from) {
538
- if (iter == ty->cast)
539
- return iter;
540
- /* Move iter to the top of the linked list */
541
- iter->prev->next = iter->next;
542
- if (iter->next)
543
- iter->next->prev = iter->prev;
544
- iter->next = ty->cast;
545
- iter->prev = 0;
546
- if (ty->cast) ty->cast->prev = iter;
547
- ty->cast = iter;
548
- return iter;
549
- }
550
- iter = iter->next;
551
- }
552
- }
553
- return 0;
525
+ SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
526
+ SWIG_TypeCheck_Template(iter->type == from, into);
554
527
  }
555
528
 
556
529
  /*
@@ -838,15 +811,6 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
838
811
  #ifdef read
839
812
  # undef read
840
813
  #endif
841
- #ifdef bind
842
- # undef bind
843
- #endif
844
- #ifdef close
845
- # undef close
846
- #endif
847
- #ifdef connect
848
- # undef connect
849
- #endif
850
814
 
851
815
 
852
816
  /* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */
@@ -1803,7 +1767,7 @@ static VALUE mItex2MML;
1803
1767
  #define SWIG_RUBY_THREAD_END_BLOCK
1804
1768
 
1805
1769
 
1806
- #define SWIGVERSION 0x010340
1770
+ #define SWIGVERSION 0x010335
1807
1771
  #define SWIG_VERSION SWIGVERSION
1808
1772
 
1809
1773
 
@@ -1876,7 +1840,7 @@ SWIG_ruby_failed(void)
1876
1840
  }
1877
1841
 
1878
1842
 
1879
- /*@SWIG:/usr/local/share/swig/1.3.40/ruby/rubyprimtypes.swg,23,%ruby_aux_method@*/
1843
+ /*@SWIG:/sw/share/swig/1.3.35/ruby/rubyprimtypes.swg,23,%ruby_aux_method@*/
1880
1844
  SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
1881
1845
  {
1882
1846
  VALUE obj = args[0];
@@ -1952,12 +1916,12 @@ SWIGINTERN VALUE
1952
1916
  _wrap_itex2MML_filter(int argc, VALUE *argv, VALUE self) {
1953
1917
  char *arg1 = (char *) 0 ;
1954
1918
  unsigned long arg2 ;
1919
+ int result;
1955
1920
  int res1 ;
1956
1921
  char *buf1 = 0 ;
1957
1922
  int alloc1 = 0 ;
1958
1923
  unsigned long val2 ;
1959
1924
  int ecode2 = 0 ;
1960
- int result;
1961
1925
  VALUE vresult = Qnil;
1962
1926
 
1963
1927
  if ((argc < 2) || (argc > 2)) {
@@ -1987,12 +1951,12 @@ SWIGINTERN VALUE
1987
1951
  _wrap_itex2MML_html_filter(int argc, VALUE *argv, VALUE self) {
1988
1952
  char *arg1 = (char *) 0 ;
1989
1953
  unsigned long arg2 ;
1954
+ int result;
1990
1955
  int res1 ;
1991
1956
  char *buf1 = 0 ;
1992
1957
  int alloc1 = 0 ;
1993
1958
  unsigned long val2 ;
1994
1959
  int ecode2 = 0 ;
1995
- int result;
1996
1960
  VALUE vresult = Qnil;
1997
1961
 
1998
1962
  if ((argc < 2) || (argc > 2)) {
data/ext/lex.yy.c CHANGED
@@ -6,29 +6,10 @@
6
6
 
7
7
  /* A lexical scanner generated by flex */
8
8
 
9
- #define yy_create_buffer itex2MML_yy_create_buffer
10
- #define yy_delete_buffer itex2MML_yy_delete_buffer
11
- #define yy_flex_debug itex2MML_yy_flex_debug
12
- #define yy_init_buffer itex2MML_yy_init_buffer
13
- #define yy_flush_buffer itex2MML_yy_flush_buffer
14
- #define yy_load_buffer_state itex2MML_yy_load_buffer_state
15
- #define yy_switch_to_buffer itex2MML_yy_switch_to_buffer
16
- #define yyin itex2MML_yyin
17
- #define yyleng itex2MML_yyleng
18
- #define yylex itex2MML_yylex
19
- #define yylineno itex2MML_yylineno
20
- #define yyout itex2MML_yyout
21
- #define yyrestart itex2MML_yyrestart
22
- #define yytext itex2MML_yytext
23
- #define yywrap itex2MML_yywrap
24
- #define yyalloc itex2MML_yyalloc
25
- #define yyrealloc itex2MML_yyrealloc
26
- #define yyfree itex2MML_yyfree
27
-
28
9
  #define FLEX_SCANNER
29
10
  #define YY_FLEX_MAJOR_VERSION 2
30
11
  #define YY_FLEX_MINOR_VERSION 5
31
- #define YY_FLEX_SUBMINOR_VERSION 35
12
+ #define YY_FLEX_SUBMINOR_VERSION 33
32
13
  #if YY_FLEX_SUBMINOR_VERSION > 0
33
14
  #define FLEX_BETA
34
15
  #endif
@@ -50,7 +31,7 @@
50
31
 
51
32
  /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52
33
 
53
- #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
+ #if __STDC_VERSION__ >= 199901L
54
35
 
55
36
  /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56
37
  * if you want the limit (max/min) macros for int types.
@@ -113,12 +94,11 @@ typedef unsigned int flex_uint32_t;
113
94
 
114
95
  #else /* ! __cplusplus */
115
96
 
116
- /* C99 requires __STDC__ to be defined as 1. */
117
- #if defined (__STDC__)
97
+ #if __STDC__
118
98
 
119
99
  #define YY_USE_CONST
120
100
 
121
- #endif /* defined (__STDC__) */
101
+ #endif /* __STDC__ */
122
102
  #endif /* ! __cplusplus */
123
103
 
124
104
  #ifdef YY_USE_CONST
@@ -172,12 +152,7 @@ typedef unsigned int flex_uint32_t;
172
152
  typedef struct yy_buffer_state *YY_BUFFER_STATE;
173
153
  #endif
174
154
 
175
- #ifndef YY_TYPEDEF_YY_SIZE_T
176
- #define YY_TYPEDEF_YY_SIZE_T
177
- typedef size_t yy_size_t;
178
- #endif
179
-
180
- extern yy_size_t itex2MML_yyleng;
155
+ extern int itex2MML_yyleng;
181
156
 
182
157
  extern FILE *itex2MML_yyin, *itex2MML_yyout;
183
158
 
@@ -203,6 +178,16 @@ extern FILE *itex2MML_yyin, *itex2MML_yyout;
203
178
 
204
179
  #define unput(c) yyunput( c, (yytext_ptr) )
205
180
 
181
+ /* The following is because we cannot portably get our hands on size_t
182
+ * (without autoconf's help, which isn't available because we want
183
+ * flex-generated scanners to compile on their own).
184
+ */
185
+
186
+ #ifndef YY_TYPEDEF_YY_SIZE_T
187
+ #define YY_TYPEDEF_YY_SIZE_T
188
+ typedef unsigned int yy_size_t;
189
+ #endif
190
+
206
191
  #ifndef YY_STRUCT_YY_BUFFER_STATE
207
192
  #define YY_STRUCT_YY_BUFFER_STATE
208
193
  struct yy_buffer_state
@@ -220,7 +205,7 @@ struct yy_buffer_state
220
205
  /* Number of characters read into yy_ch_buf, not including EOB
221
206
  * characters.
222
207
  */
223
- yy_size_t yy_n_chars;
208
+ int yy_n_chars;
224
209
 
225
210
  /* Whether we "own" the buffer - i.e., we know we created it,
226
211
  * and can realloc() it to grow it, and should free() it to
@@ -290,8 +275,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
290
275
 
291
276
  /* yy_hold_char holds the character lost when itex2MML_yytext is formed. */
292
277
  static char yy_hold_char;
293
- static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
294
- yy_size_t itex2MML_yyleng;
278
+ static int yy_n_chars; /* number of characters read into yy_ch_buf */
279
+ int itex2MML_yyleng;
295
280
 
296
281
  /* Points to current character in buffer. */
297
282
  static char *yy_c_buf_p = (char *) 0;
@@ -319,7 +304,7 @@ static void itex2MML_yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
319
304
 
320
305
  YY_BUFFER_STATE itex2MML_yy_scan_buffer (char *base,yy_size_t size );
321
306
  YY_BUFFER_STATE itex2MML_yy_scan_string (yyconst char *yy_str );
322
- YY_BUFFER_STATE itex2MML_yy_scan_bytes (yyconst char *bytes,yy_size_t len );
307
+ YY_BUFFER_STATE itex2MML_yy_scan_bytes (yyconst char *bytes,int len );
323
308
 
324
309
  void *itex2MML_yyalloc (yy_size_t );
325
310
  void *itex2MML_yyrealloc (void *,yy_size_t );
@@ -2159,7 +2144,7 @@ int itex2MML_lineno = 1;
2159
2144
 
2160
2145
  int itex2MML_rowposn = 0;
2161
2146
  int itex2MML_displaymode = 0;
2162
- #line 2163 "lex.yy.c"
2147
+ #line 2148 "lex.yy.c"
2163
2148
 
2164
2149
  #define INITIAL 0
2165
2150
  #define MATH 1
@@ -2189,35 +2174,6 @@ int itex2MML_displaymode = 0;
2189
2174
 
2190
2175
  static int yy_init_globals (void );
2191
2176
 
2192
- /* Accessor methods to globals.
2193
- These are made visible to non-reentrant scanners for convenience. */
2194
-
2195
- int itex2MML_yylex_destroy (void );
2196
-
2197
- int itex2MML_yyget_debug (void );
2198
-
2199
- void itex2MML_yyset_debug (int debug_flag );
2200
-
2201
- YY_EXTRA_TYPE itex2MML_yyget_extra (void );
2202
-
2203
- void itex2MML_yyset_extra (YY_EXTRA_TYPE user_defined );
2204
-
2205
- FILE *itex2MML_yyget_in (void );
2206
-
2207
- void itex2MML_yyset_in (FILE * in_str );
2208
-
2209
- FILE *itex2MML_yyget_out (void );
2210
-
2211
- void itex2MML_yyset_out (FILE * out_str );
2212
-
2213
- yy_size_t itex2MML_yyget_leng (void );
2214
-
2215
- char *itex2MML_yyget_text (void );
2216
-
2217
- int itex2MML_yyget_lineno (void );
2218
-
2219
- void itex2MML_yyset_lineno (int line_number );
2220
-
2221
2177
  /* Macros after this point can all be overridden by user definitions in
2222
2178
  * section 1.
2223
2179
  */
@@ -2260,7 +2216,7 @@ static int input (void );
2260
2216
  /* This used to be an fputs(), but since the string might contain NUL's,
2261
2217
  * we now use fwrite().
2262
2218
  */
2263
- #define ECHO fwrite( itex2MML_yytext, itex2MML_yyleng, 1, itex2MML_yyout )
2219
+ #define ECHO (void) fwrite( itex2MML_yytext, itex2MML_yyleng, 1, itex2MML_yyout )
2264
2220
  #endif
2265
2221
 
2266
2222
  /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -2271,7 +2227,7 @@ static int input (void );
2271
2227
  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2272
2228
  { \
2273
2229
  int c = '*'; \
2274
- yy_size_t n; \
2230
+ size_t n; \
2275
2231
  for ( n = 0; n < max_size && \
2276
2232
  (c = getc( itex2MML_yyin )) != EOF && c != '\n'; ++n ) \
2277
2233
  buf[n] = (char) c; \
@@ -2359,7 +2315,7 @@ YY_DECL
2359
2315
  if (itex2MML_rowposn==2) itex2MML_rowposn=1;
2360
2316
 
2361
2317
 
2362
- #line 2363 "lex.yy.c"
2318
+ #line 2319 "lex.yy.c"
2363
2319
 
2364
2320
  if ( !(yy_init) )
2365
2321
  {
@@ -4856,7 +4812,7 @@ YY_RULE_SETUP
4856
4812
  #line 965 "itex2MML.l"
4857
4813
  ECHO;
4858
4814
  YY_BREAK
4859
- #line 4860 "lex.yy.c"
4815
+ #line 4816 "lex.yy.c"
4860
4816
  case YY_STATE_EOF(INITIAL):
4861
4817
  case YY_STATE_EOF(MATH):
4862
4818
  case YY_STATE_EOF(ATTRIBUTELIST):
@@ -5054,7 +5010,7 @@ static int yy_get_next_buffer (void)
5054
5010
 
5055
5011
  else
5056
5012
  {
5057
- yy_size_t num_to_read =
5013
+ int num_to_read =
5058
5014
  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5059
5015
 
5060
5016
  while ( num_to_read <= 0 )
@@ -5068,7 +5024,7 @@ static int yy_get_next_buffer (void)
5068
5024
 
5069
5025
  if ( b->yy_is_our_buffer )
5070
5026
  {
5071
- yy_size_t new_size = b->yy_buf_size * 2;
5027
+ int new_size = b->yy_buf_size * 2;
5072
5028
 
5073
5029
  if ( new_size <= 0 )
5074
5030
  b->yy_buf_size += b->yy_buf_size / 8;
@@ -5123,14 +5079,6 @@ static int yy_get_next_buffer (void)
5123
5079
  else
5124
5080
  ret_val = EOB_ACT_CONTINUE_SCAN;
5125
5081
 
5126
- if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5127
- /* Extend the array by 50%, plus the number we really need. */
5128
- yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5129
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) itex2MML_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
5130
- if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5131
- YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5132
- }
5133
-
5134
5082
  (yy_n_chars) += number_to_move;
5135
5083
  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5136
5084
  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -5209,7 +5157,7 @@ static int yy_get_next_buffer (void)
5209
5157
  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
5210
5158
  { /* need to shift things up to make room */
5211
5159
  /* +2 for EOB chars. */
5212
- register yy_size_t number_to_move = (yy_n_chars) + 2;
5160
+ register int number_to_move = (yy_n_chars) + 2;
5213
5161
  register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
5214
5162
  YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
5215
5163
  register char *source =
@@ -5258,7 +5206,7 @@ static int yy_get_next_buffer (void)
5258
5206
 
5259
5207
  else
5260
5208
  { /* need more input */
5261
- yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
5209
+ int offset = (yy_c_buf_p) - (yytext_ptr);
5262
5210
  ++(yy_c_buf_p);
5263
5211
 
5264
5212
  switch ( yy_get_next_buffer( ) )
@@ -5534,7 +5482,7 @@ void itex2MML_yypop_buffer_state (void)
5534
5482
  */
5535
5483
  static void itex2MML_yyensure_buffer_stack (void)
5536
5484
  {
5537
- yy_size_t num_to_alloc;
5485
+ int num_to_alloc;
5538
5486
 
5539
5487
  if (!(yy_buffer_stack)) {
5540
5488
 
@@ -5546,9 +5494,7 @@ static void itex2MML_yyensure_buffer_stack (void)
5546
5494
  (yy_buffer_stack) = (struct yy_buffer_state**)itex2MML_yyalloc
5547
5495
  (num_to_alloc * sizeof(struct yy_buffer_state*)
5548
5496
  );
5549
- if ( ! (yy_buffer_stack) )
5550
- YY_FATAL_ERROR( "out of dynamic memory in itex2MML_yyensure_buffer_stack()" );
5551
-
5497
+
5552
5498
  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
5553
5499
 
5554
5500
  (yy_buffer_stack_max) = num_to_alloc;
@@ -5566,8 +5512,6 @@ static void itex2MML_yyensure_buffer_stack (void)
5566
5512
  ((yy_buffer_stack),
5567
5513
  num_to_alloc * sizeof(struct yy_buffer_state*)
5568
5514
  );
5569
- if ( ! (yy_buffer_stack) )
5570
- YY_FATAL_ERROR( "out of dynamic memory in itex2MML_yyensure_buffer_stack()" );
5571
5515
 
5572
5516
  /* zero only the new slots.*/
5573
5517
  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -5612,7 +5556,7 @@ YY_BUFFER_STATE itex2MML_yy_scan_buffer (char * base, yy_size_t size )
5612
5556
 
5613
5557
  /** Setup the input buffer state to scan a string. The next call to itex2MML_yylex() will
5614
5558
  * scan from a @e copy of @a str.
5615
- * @param yystr a NUL-terminated string to scan
5559
+ * @param str a NUL-terminated string to scan
5616
5560
  *
5617
5561
  * @return the newly allocated buffer state object.
5618
5562
  * @note If you want to scan bytes that may contain NUL values, then use
@@ -5631,11 +5575,12 @@ YY_BUFFER_STATE itex2MML_yy_scan_string (yyconst char * yystr )
5631
5575
  *
5632
5576
  * @return the newly allocated buffer state object.
5633
5577
  */
5634
- YY_BUFFER_STATE itex2MML_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
5578
+ YY_BUFFER_STATE itex2MML_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
5635
5579
  {
5636
5580
  YY_BUFFER_STATE b;
5637
5581
  char *buf;
5638
- yy_size_t n, i;
5582
+ yy_size_t n;
5583
+ int i;
5639
5584
 
5640
5585
  /* Get memory for full buffer, including space for trailing EOB's. */
5641
5586
  n = _yybytes_len + 2;
@@ -5717,7 +5662,7 @@ FILE *itex2MML_yyget_out (void)
5717
5662
  /** Get the length of the current token.
5718
5663
  *
5719
5664
  */
5720
- yy_size_t itex2MML_yyget_leng (void)
5665
+ int itex2MML_yyget_leng (void)
5721
5666
  {
5722
5667
  return itex2MML_yyleng;
5723
5668
  }
data/ext/y.tab.c CHANGED
@@ -5266,7 +5266,7 @@ int itex2MML_do_html_filter (const char * buffer, unsigned long length, const in
5266
5266
  }
5267
5267
  ++ptr2;
5268
5268
  }
5269
- if (itex2MML_write)
5269
+ if (itex2MML_write && ptr2 > ptr1)
5270
5270
  (*itex2MML_write) (ptr1, ptr2 - ptr1);
5271
5271
 
5272
5272
  if (ptr2 == end) goto _finish;
data/lib/itextomml.rb CHANGED
@@ -103,69 +103,3 @@ module Itex2MML
103
103
  end
104
104
  end
105
105
 
106
- ## Unit Tests ##
107
- if __FILE__ == $0
108
- require 'test/unit'
109
-
110
- class Itex2MMLTest < Test::Unit::TestCase
111
-
112
- def test_inline_html
113
- itex = Itex2MML::Parser.new
114
- assert_equal("Inline: <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.html_filter('Inline: $\sin(x)$'))
115
- end
116
-
117
- def test_inline
118
- itex = Itex2MML::Parser.new
119
- assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.filter('Inline: $\sin(x)$'))
120
- end
121
-
122
- def test_inline_inline
123
- itex = Itex2MML::Parser.new
124
- assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.inline_filter('\sin(x)'))
125
- end
126
-
127
- def test_block_html
128
- itex = Itex2MML::Parser.new
129
- assert_equal("Block: <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.html_filter('Block: $$\sin(x)$$'))
130
- end
131
-
132
- def test_block
133
- itex = Itex2MML::Parser.new
134
- assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.filter('Block: $$\sin(x)$$'))
135
- end
136
-
137
- def test_block_block
138
- itex = Itex2MML::Parser.new
139
- assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.block_filter('\sin(x)'))
140
- end
141
-
142
- def test_inline_utf8
143
- itex = Itex2MML::Parser.new
144
- s = "".respond_to?(:force_encoding) ? "\u00F3" : "\303\263"
145
- assert_equal("ecuasi"+ s + "n <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'>" +
146
- "<mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>",
147
- itex.html_filter("ecuasi\303\263n $\\sin(x)$"))
148
- end
149
-
150
- def test_inline_utf8_inline
151
- itex = Itex2MML::Parser.new
152
- assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.filter("ecuasi\303\263n $\\sin(x)$"))
153
- end
154
-
155
- def test_utf8_in_svg_foreignObject
156
- itex = Itex2MML::Parser.new
157
- s = "".respond_to?(:force_encoding) ? "\u2032" : "\342\200\262"
158
- assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>g" +
159
- "</mi><mo>&prime;</mo><mo>=</mo><semantics><annotation-xml encoding=\"SVG1.1\"><svg w" +
160
- "idth='40' height='40' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3." +
161
- "org/1999/xlink'><foreignObject height='19' width='20' font-size='16' y='0' x='0'><ma" +
162
- "th display='inline' xmlns='http://www.w3.org/1998/Math/MathML'><mi>g</mi><mo>" +
163
- s + "</mo></math></foreignObject></svg></annotation-xml></semantics></math>",
164
- itex.filter("$g' = \\begin{svg}<svg width='40' height='40' xmlns='http://www.w3.org/20" +
165
- "00/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><foreignObject height='19' width='" +
166
- "20' font-size='16' y='0' x='0'><math display='inline' xmlns='http://www.w3.org/1998/M" +
167
- "ath/MathML'><mi>g</mi><mo>\342\200\262</mo></math></foreignObject></svg>\\end{svg}$"))
168
- end
169
-
170
- end
171
- end
@@ -0,0 +1,73 @@
1
+ # Authors: Justin Bonnar <jbonnar@berkeley.edu>
2
+ # Jacques Distler <distler@golem.ph.utexas.edu>
3
+ #
4
+ # Placed in the Public Domain
5
+
6
+ $:.unshift File.expand_path( File.join( File.dirname( __FILE__ ), "../lib" ) )
7
+ $:.unshift File.expand_path( File.join( File.dirname( __FILE__ ), "../ext" ) )
8
+ require 'itextomml'
9
+
10
+ ## Unit Tests ##
11
+ require 'test/unit'
12
+
13
+ class Itex2MMLTest < Test::Unit::TestCase
14
+
15
+ def test_inline_html
16
+ itex = Itex2MML::Parser.new
17
+ assert_equal("Inline: <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.html_filter('Inline: $\sin(x)$'))
18
+ end
19
+
20
+ def test_inline
21
+ itex = Itex2MML::Parser.new
22
+ assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.filter('Inline: $\sin(x)$'))
23
+ end
24
+
25
+ def test_inline_inline
26
+ itex = Itex2MML::Parser.new
27
+ assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.inline_filter('\sin(x)'))
28
+ end
29
+
30
+ def test_block_html
31
+ itex = Itex2MML::Parser.new
32
+ assert_equal("Block: <math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.html_filter('Block: $$\sin(x)$$'))
33
+ end
34
+
35
+ def test_block
36
+ itex = Itex2MML::Parser.new
37
+ assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.filter('Block: $$\sin(x)$$'))
38
+ end
39
+
40
+ def test_block_block
41
+ itex = Itex2MML::Parser.new
42
+ assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.block_filter('\sin(x)'))
43
+ end
44
+
45
+ def test_inline_utf8
46
+ itex = Itex2MML::Parser.new
47
+ s = "".respond_to?(:force_encoding) ? "\u00F3" : "\303\263"
48
+ assert_equal("ecuasi"+ s + "n <math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'>" +
49
+ "<mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>",
50
+ itex.html_filter("ecuasi\303\263n $\\sin(x)$"))
51
+ end
52
+
53
+ def test_inline_utf8_inline
54
+ itex = Itex2MML::Parser.new
55
+ assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>sin</mi><mo stretchy=\"false\">(</mo><mi>x</mi><mo stretchy=\"false\">)</mo></math>", itex.filter("ecuasi\303\263n $\\sin(x)$"))
56
+ end
57
+
58
+ def test_utf8_in_svg_foreignObject
59
+ itex = Itex2MML::Parser.new
60
+ s = "".respond_to?(:force_encoding) ? "\u2032" : "\342\200\262"
61
+ assert_equal("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mi>g" +
62
+ "</mi><mo>&prime;</mo><mo>=</mo><semantics><annotation-xml encoding=\"SVG1.1\"><svg w" +
63
+ "idth='40' height='40' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3." +
64
+ "org/1999/xlink'><foreignObject height='19' width='20' font-size='16' y='0' x='0'><ma" +
65
+ "th display='inline' xmlns='http://www.w3.org/1998/Math/MathML'><mi>g</mi><mo>" +
66
+ s + "</mo></math></foreignObject></svg></annotation-xml></semantics></math>",
67
+ itex.filter("$g' = \\begin{svg}<svg width='40' height='40' xmlns='http://www.w3.org/20" +
68
+ "00/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><foreignObject height='19' width='" +
69
+ "20' font-size='16' y='0' x='0'><math display='inline' xmlns='http://www.w3.org/1998/M" +
70
+ "ath/MathML'><mi>g</mi><mo>\342\200\262</mo></math></foreignObject></svg>\\end{svg}$"))
71
+ end
72
+
73
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 3
8
- - 20
9
- version: 1.3.20
8
+ - 21
9
+ version: 1.3.21
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jacques Distler
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-04 00:00:00 -05:00
17
+ date: 2010-04-05 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -33,6 +33,7 @@ files:
33
33
  - ext/itex2MML.h
34
34
  - ext/y.tab.h
35
35
  - lib/itextomml.rb
36
+ - test/test_itextomml.rb
36
37
  - README
37
38
  has_rdoc: true
38
39
  homepage: http://golem.ph.utexas.edu/~distler/blog/itex2MML.html
@@ -65,5 +66,5 @@ rubygems_version: 1.3.6
65
66
  signing_key:
66
67
  specification_version: 3
67
68
  summary: Native Ruby bindings to itex2MML.
68
- test_files: []
69
-
69
+ test_files:
70
+ - test/test_itextomml.rb