OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [Integration_test/] [synthetic_sim/] [perl_lib/] [String/] [Similarity.xs] - Blame information for rev 56

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 56 alirezamon
#include "EXTERN.h"
2
#include "perl.h"
3
#include "XSUB.h"
4
 
5
#include "fstrcmp.h"
6
#include "fstrcmp.c"
7
 
8
UV *
9
text2UV (SV *sv, STRLEN *lenp)
10
{
11
  STRLEN len;
12
  char *s = SvPV (sv, len);
13
  UV *r = (UV *)SvPVX (sv_2mortal (NEWSV (0, (len + 1) * sizeof (UV))));
14
  UV *p = r;
15
 
16
  if (SvUTF8 (sv))
17
    {
18
       STRLEN clen;
19
       while (len)
20
         {
21
           *p++ = utf8n_to_uvchr (s, len, &clen, 0);
22
 
23
           if (clen < 0)
24
             croak ("illegal unicode character in string");
25
 
26
           s += clen;
27
           len -= clen;
28
         }
29
    }
30
  else
31
    while (len--)
32
      *p++ = *(unsigned char *)s++;
33
 
34
  *lenp = p - r;
35
  return r;
36
}
37
 
38
MODULE = String::Similarity             PACKAGE = String::Similarity
39
 
40
double
41
fstrcmp(s1, s2, minimum_similarity = 0)
42
        SV *    s1
43
        SV *    s2
44
        double  minimum_similarity
45
        PROTOTYPE: @
46
        CODE:
47
{
48
        STRLEN l1, l2;
49
        UV *c1 = text2UV (s1, &l1);
50
        UV *c2 = text2UV (s2, &l2);
51
        RETVAL = fstrcmp (c1, l1, c2, l2, minimum_similarity);
52
}
53
        OUTPUT:
54
        RETVAL

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.