<commit_before>/*

    npk - neat package system
    Copyright (c) 2009-2013 <NAME>(<EMAIL>)

    npk command-line tool
    
    See README for copyright and license information.

*/

#include <iostream>
#include <time.h>
#include <sys/stat.h>
#include <errno.h>
#include <list>
#include <string>
#include <stdio.h>
#include <algorithm>
#include <npk.h>
#include <npk_dev.h>

#include "helper_commify.hpp"
#include "helper_timetostring.hpp"
#include "helper_bstrcmp.h"
#include "helper_mkdirr.hpp"

#ifdef NPK_PLATFORM_WINDOWS
    #include <conio.h>
    #include "helper_dirent.h"
    #define PATH_SEPARATOR '\\'
    #pragma warning( disable : 4996 )
#else
    #include <dirent.h>
    #include <string.h>
    #define PATH_SEPARATOR '/'
    #define strnicmp strncasecmp
    #define stricmp strcasecmp
#endif

#if defined( NPK_CASESENSITIVE )
    #define CASE_SENSITIVE true
#else
    #define CASE_SENSITIVE false 
#endif

using namespace std;

/* -------------------------------------------------------------------------------------- */
/* TODO: Refactoring - remove duplicated codes in traversal functions and sync functions. */
/* -------------------------------------------------------------------------------------- */

typedef list<NPK_ENTITY> ENTITYLIST;
typedef list<NPK_ENTITY>::iterator ELI;
typedef list<string> STRLIST;
typedef list<string>::iterator SLI;

#define toolversion "1.83"<commit_msg>Fix a compilation problem on cygwin<commit_after>/*

    npk - neat package system
    Copyright (c) 2009-2013 <NAME>(<EMAIL>)

    npk command-line tool
    
    See README for copyright and license information.

*/

#include <iostream>
#include <time.h>
#include <sys/stat.h>
#include <errno.h>
#include <list>
#include <string>
#include <stdio.h>
#include <algorithm>
#include <npk.h>
#include <npk_dev.h>


#ifdef NPK_PLATFORM_WINDOWS
    #include <conio.h>
    #include "helper_dirent.h"
    #define PATH_SEPARATOR '\\'
    #pragma warning( disable : 4996 )
#else
    #include <dirent.h>
    #include <string.h>
    #define PATH_SEPARATOR '/'
    #define strnicmp strncasecmp
    #define stricmp strcasecmp
#endif

#if defined( NPK_CASESENSITIVE )
    #define CASE_SENSITIVE true
#else
    #define CASE_SENSITIVE false 
#endif

#include "helper_commify.hpp"
#include "helper_timetostring.hpp"
#include "helper_bstrcmp.h"
#include "helper_mkdirr.hpp"

using namespace std;

/* -------------------------------------------------------------------------------------- */
/* TODO: Refactoring - remove duplicated codes in traversal functions and sync functions. */
/* -------------------------------------------------------------------------------------- */

typedef list<NPK_ENTITY> ENTITYLIST;
typedef list<NPK_ENTITY>::iterator ELI;
typedef list<string> STRLIST;
typedef list<string>::iterator SLI;

#define toolversion "1.83"
{'fraction_non_alphanumeric': 0.22661489587010236, 'fraction_numerical': 0.010589481115425344, 'mean_word_length': 2.4268440145102783, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2087176', 'n_tokens_mistral': 941, 'n_tokens_neox': 883, 'n_words': 230}