logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

detect_handledata, detect_handledata_r - Detecting character set and measuring accuracy of charset

Authors

       JoungKyun.Kim <http://oops.org>

Bug Reports

       Use QnA board on https://github.com/Joungkyun/libchardet/issues

Description

       Storing charset and accuracy of inbuftooutbuf

       The  detect_handledata  API  is  deprecated  becase  this  api  is  not  binary  safe.  Use or replace to
       detect_handledata_r api.

   Arguments:handleDetect handle resource that allocated by detect_init api.

       inbuf
              input string for detecting

       inlen
              length of input string for detecting

       outbuf
              Stroing inforamtion of inbuf.  The structure of outbuf is follows.

                   typedef struct DetectObject {
                        char * encoding;
                        float confidence;
                   } DetectObj;

              The outbuf variable is must initialized by detect_obj_init API before calling this detect api.

Example

       #include <chardet.h>

       int main (void) {
            Detect    * d;
            DetectObj * obj;
            int i, arrayNum;
            char *str[] = {
                 "this is ascii",
                 "이건 euc-kr 입니다."
            };

            arrayNum = sizeof (str) / sizeof (str[0]);

            if ( (d = detect_init ()) == NULL ) {
                 fprintf (stderr, "chardet handle initialize failed\n");
                 return CHARDET_MEM_ALLOCATED_FAIL;
            }

            for ( i=0; i<arrayNum; i++ ) {
                 detect_reset (&d);

                 if ( (obj = detect_obj_init ()) == NULL ) {
                      fprintf (stderr, "Memory Allocation failed\n");
                      return CHARDET_MEM_ALLOCATED_FAIL;
                 }

                 //switch (detect_handledata (&d, str[i], &obj))
                 switch (detect_handledata (&d, str[i], strlen(str[i]), &obj))
                 {
                      case CHARDET_OUT_OF_MEMORY :
                           fprintf (stderr, "On handle processing, occured out of memory\n");
                           detect_obj_free (&obj);
                           return CHARDET_OUT_OF_MEMORY;
                      case CHARDET_NULL_OBJECT :
                           fprintf (stderr,
                                     "2st argument of chardet() is must memory allocation "
                                     "with detect_obj_init API\n");
                           return CHARDET_NULL_OBJECT;
                 }

                 # check support obj->bom with CHARDET_BOM_CHECK constant
                 printf ("encoding: %s, confidence: %f, exists bom: %d\n", obj->encoding, obj->confidence, obj->bom);
                 detect_obj_free (&obj);
            }
            detect_destroy (&d);

           return 0;
       }

Name

       detect_handledata, detect_handledata_r - Detecting character set and measuring accuracy of charset

Return Values

       Returns following condition as case by case.

       CHARDET_SUCCESS
              Detecting success

       CHARDET_NO_RESULT
              Detection failure

       CHARDET_NULL_OBJECT
              Don't initializing outbuf with chardet_obj_initCHARDET_OUT_OF_MEMORY
              Occurring outofmemory at internal API

See Also

detect_obj_init(3), detect_obj_free(3), detect_init(3), detect_reset(3), detect_destroy(3)

libchardet manuals                                 2019-08-01                               detect_handledata(3)

Snopsys

#include<chardet.h>shortchardet_handledata(Detect**handle,constchar*inbuf,DetectObj**outbuf);shortchardet_handledata_r(Detect**handle,constchar*inbuf,size_tinlen,DetectObj**outbuf);

See Also