~ubuntu-branches/ubuntu/edgy/swig1.3/edgy

« back to all changes in this revision

Viewing changes to Source/Swig/misc.c

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-12-05 01:16:04 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20051205011604-ygx904it6413k3go
Tags: 1.3.27-1ubuntu1
Resynchronise with Debian again, for the new subversion packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
 * See the file LICENSE for information on usage and redistribution.    
10
10
 * ----------------------------------------------------------------------------- */
11
11
 
12
 
char cvsroot_misc_c[] = "$Header: /cvsroot/swig/SWIG/Source/Swig/misc.c,v 1.26 2004/10/08 00:17:34 marcelomatus Exp $";
 
12
char cvsroot_misc_c[] = "$Header: /cvsroot/swig/SWIG/Source/Swig/misc.c,v 1.28 2005/03/07 20:36:26 marcelomatus Exp $";
13
13
 
14
14
#include "swig.h"
15
15
#include <ctype.h>
159
159
  ns = NewString("");
160
160
  while ((c = Getc(s)) != EOF) {
161
161
    if (c == '`') {
 
162
      String *str = 0;
162
163
      tc = NewString("");
163
164
      while ((c = Getc(s)) != EOF) {
164
165
        if (c == '`') break;
165
166
        Putc(c,tc);
166
167
      }
167
 
      Printf(ns,"%s",SwigType_str(tc,0));
 
168
      str = SwigType_str(tc,0);
 
169
      Printf(ns,"%s",str);
 
170
      Delete(str);
168
171
    } else {
169
172
      Putc(c,ns);
170
173
      if (c == '\'') {
230
233
  char *pc, *cb;
231
234
  String *b = Copy(s);
232
235
  if (SwigType_istemplate(b)) {
233
 
    String *t = SwigType_namestr(b);
 
236
    String *st = Swig_symbol_template_deftype(b, 0);
 
237
    String *sq = Swig_symbol_type_qualify(st,0);
 
238
    String *t = SwigType_namestr(sq);
 
239
    Delete(st);
 
240
    Delete(sq);
234
241
    Delete(b);
235
242
    b = t ;
236
243
  }
353
360
 
354
361
String *
355
362
Swig_scopename_prefix(String *s) {
356
 
  char tmp[1024];
357
 
  char   *c, *cc;
358
 
  if (!Strstr(s,"::")) return 0;
359
 
  strcpy(tmp,Char(s));
360
 
  c = tmp;
361
 
  cc = c;
 
363
  char *tmp = Char(s);
 
364
  char *c = tmp;
 
365
  char *cc = c;
 
366
  if (!strstr(c,"::")) return 0;
362
367
  while (*c) {
363
 
    if (strncmp(c,"::",2) == 0) {
 
368
    if ((*c == ':') && (*(c+1) == ':')) {
364
369
      cc = c;
365
370
      c += 2;
366
371
    } else {
378
383
    }
379
384
  }
380
385
 
381
 
  *cc = 0;
382
386
  if (cc != tmp) {
383
 
    return NewString(tmp);
 
387
    return NewStringWithSize(tmp, cc - tmp);
384
388
  } else {
385
389
    return 0;
386
390
  }
395
399
 
396
400
String *
397
401
Swig_scopename_last(String *s) {
398
 
  char tmp[1024];
399
 
  char   *c, *cc;
400
 
  if (!Strstr(s,"::")) return NewString(s);
401
 
  strcpy(tmp,Char(s));
402
 
  c = tmp;
403
 
  cc = c;
 
402
  char *tmp = Char(s);
 
403
  char *c = tmp;
 
404
  char *cc = c;
 
405
  if (!strstr(c,"::")) return NewString(s);
404
406
 
405
407
  while (*c) {
406
 
    if (strncmp(c,"::",2) == 0) {
 
408
    if ((*c == ':') && (*(c+1) == ':')) {
407
409
      cc = c;
408
410
      c += 2;
409
411
    } else {
432
434
 
433
435
String *
434
436
Swig_scopename_first(String *s) {
435
 
  char tmp[1024];
436
 
  char   *c;
437
 
  if (!Strstr(s,"::")) return 0;
438
 
  strcpy(tmp,Char(s));
439
 
  c = tmp;
 
437
  char *tmp = Char(s);
 
438
  char   *c = tmp;
 
439
  if (!strstr(c,"::")) return 0;
440
440
  while (*c) {
441
 
    if (strncmp(c,"::",2) == 0) {
 
441
    if ((*c == ':') && (*(c+1) == ':')) {
442
442
      break;
443
443
    } else {
444
444
      if (*c == '<') {
455
455
    }
456
456
  }
457
457
  if (*c && (c != tmp)) {
458
 
    *c = 0;
459
 
    return NewString(tmp);
 
458
    return NewStringWithSize(tmp, c - tmp);
460
459
  } else {
461
460
    return 0;
462
461
  }
472
471
 
473
472
String *
474
473
Swig_scopename_suffix(String *s) {
475
 
  char tmp[1024];
476
 
  char   *c;
477
 
  if (!Strstr(s,"::")) return 0;
478
 
  strcpy(tmp,Char(s));
479
 
  c = tmp;
 
474
  char *tmp = Char(s);
 
475
  char *c = tmp;
 
476
  if (!strstr(c,"::")) return 0;
480
477
  while (*c) {
481
 
    if (strncmp(c,"::",2) == 0) {
 
478
    if ((*c == ':') && (*(c+1) == ':')) {
482
479
      break;
483
480
    } else {
484
481
      if (*c == '<') {
508
505
 
509
506
int Swig_scopename_check(String *s) {
510
507
  char *c = Char(s);
511
 
  if (!Strstr(s,"::")) return 0;
 
508
  if (!strstr(c,"::")) return 0;
512
509
  while (*c) {
513
 
    if (strncmp(c,"::",2) == 0) {
 
510
    if ((*c == ':') && (*(c+1) == ':')) {
514
511
      return 1;
515
512
    } else {
516
513
      if (*c == '<') {