Skip to content

Instantly share code, notes, and snippets.

@sergev
Created August 26, 2022 23:31
Show Gist options
  • Save sergev/170d1a014cbf0db45418759c50b1f713 to your computer and use it in GitHub Desktop.
Save sergev/170d1a014cbf0db45418759c50b1f713 to your computer and use it in GitHub Desktop.
Find code duplications in besm6/dispak sources.
$ cd dispak
$ pmd cpd --minimum-tokens 100 --language cpp --files .
Found a 21 line (327 tokens) duplication in the following files:
Starting at line 583 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1093 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
static unsigned char tab0 [256] = {
/* 00 - 07 */ 0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
/* 08 - 0f */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
/* 10 - 17 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
/* 18 - 1f */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
/* !"#$%&' */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
/* ()*+,-./ */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
/* 01234567 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
/* 89:;<=>? */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
/* @ABCDEFG */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
/* HIJKLMNO */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
/* PQRSTUVW */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
/* XYZ[\]^_ */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
/* `abcdefg */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
/* hijklmno */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
/* pqrstuvw */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
/* xyz{|}~ */ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
/* 80 - 87 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 88 - 8f */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 90 - 97 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 98 - 9f */ 0, 0, 0, 0, 0, 0, 0, 0,
=====================================================================
Found a 22 line (318 tokens) duplication in the following files:
Starting at line 844 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1091 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
unicode_to_cp1251 (unsigned short val)
{
static char tab0 [256] = {
/* 00 - 07 */ 0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
/* 08 - 0f */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
/* 10 - 17 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
/* 18 - 1f */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
/* !"#$%&' */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
/* ()*+,-./ */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
/* 01234567 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
/* 89:;<=>? */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
/* @ABCDEFG */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
/* HIJKLMNO */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
/* PQRSTUVW */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
/* XYZ[\]^_ */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
/* `abcdefg */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
/* hijklmno */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
/* pqrstuvw */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
/* xyz{|}~ */ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
/* 80 - 87 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 88 - 8f */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 90 - 97 */ 0, 0, 0, 0, 0, 0, 0, 0,
=====================================================================
Found a 20 line (311 tokens) duplication in the following files:
Starting at line 583 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 846 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
static unsigned char tab0 [256] = {
/* 00 - 07 */ 0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
/* 08 - 0f */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
/* 10 - 17 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
/* 18 - 1f */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
/* !"#$%&' */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
/* ()*+,-./ */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
/* 01234567 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
/* 89:;<=>? */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
/* @ABCDEFG */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
/* HIJKLMNO */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
/* PQRSTUVW */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
/* XYZ[\]^_ */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
/* `abcdefg */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
/* hijklmno */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
/* pqrstuvw */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
/* xyz{|}~ */ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
/* 80 - 87 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 88 - 8f */ 0, 0, 0, 0, 0, 0, 0, 0,
/* 90 - 97 */ 0, 0, 0, 0, 0, 0, 0, 0,
=====================================================================
Found a 17 line (261 tokens) duplication in the following files:
Starting at line 530 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 801 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1048 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
static const unsigned short koi8_to_unicode [256] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
=====================================================================
Found a 16 line (255 tokens) duplication in the following files:
Starting at line 531 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 584 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 802 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 847 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1049 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1094 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
=====================================================================
Found a 15 line (195 tokens) duplication in the following files:
Starting at line 508 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 530 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 801 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1048 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
const unsigned short koi7_to_unicode [128] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
=====================================================================
Found a 14 line (191 tokens) duplication in the following files:
Starting at line 509 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 584 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 847 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1094 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
=====================================================================
Found a 16 line (171 tokens) duplication in the following files:
Starting at line 870 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1117 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
/* b8 - bf */ 0, 0, 0, 0xbb, 0, 0, 0, 0,
/* c0 - c7 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* c8 - cf */ 0, 0, 0, 0, 0, 0, 0, 0,
/* d0 - d7 */ 0, 0, 0, 0, 0, 0, 0, 'x',
/* d8 - df */ 0, 0, 0, 0, 0, 0, 0, 0,
/* e0 - e7 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* e8 - ef */ 0, 0, 0, 0, 0, 0, 0, 0,
/* f0 - f7 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* f8 - ff */ 0, 0, 0, 0, 0, 0, 0, 0,
};
switch (val >> 8) {
case 0x00:
return tab0 [val];
case 0x04:
switch ((unsigned char) val) {
case 0x01: return 0xa8;
=====================================================================
Found a 9 line (127 tokens) duplication in the following files:
Starting at line 606 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 1116 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
/* b0 - b7 */ 0x9c, 0, 0x9d, 0, 0, 0, 0, 0x9e,
/* b8 - bf */ 0, 0, 0, 0, 0, 0, 0, 0,
/* c0 - c7 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* c8 - cf */ 0, 0, 0, 0, 0, 0, 0, 0,
/* d0 - d7 */ 0, 0, 0, 0, 0, 0, 0, 'x',
/* d8 - df */ 0, 0, 0, 0, 0, 0, 0, 0,
/* e0 - e7 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* e8 - ef */ 0, 0, 0, 0, 0, 0, 0, 0,
/* f0 - f7 */ 0, 0, 0, 0, 0, 0, 0, 0x9f,
=====================================================================
Found a 8 line (119 tokens) duplication in the following files:
Starting at line 607 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
Starting at line 870 of /Users/vak/Project/Besm-6/dispak/dispak/./encoding.c
/* b8 - bf */ 0, 0, 0, 0, 0, 0, 0, 0,
/* c0 - c7 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* c8 - cf */ 0, 0, 0, 0, 0, 0, 0, 0,
/* d0 - d7 */ 0, 0, 0, 0, 0, 0, 0, 'x',
/* d8 - df */ 0, 0, 0, 0, 0, 0, 0, 0,
/* e0 - e7 */ 0, 0, 0, 0, 0, 0, 0, 0,
/* e8 - ef */ 0, 0, 0, 0, 0, 0, 0, 0,
/* f0 - f7 */ 0, 0, 0, 0, 0, 0, 0, 0x9f,
=====================================================================
Found a 21 line (112 tokens) duplication in the following files:
Starting at line 188 of /Users/vak/Project/Besm-6/dispak/dispak/./gettext.h
Starting at line 234 of /Users/vak/Project/Besm-6/dispak/dispak/./gettext.h
const char *msgctxt, const char *msgid,
int category)
{
size_t msgctxt_len = strlen (msgctxt) + 1;
size_t msgid_len = strlen (msgid) + 1;
const char *translation;
#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
char msg_ctxt_id[msgctxt_len + msgid_len];
#else
char buf[1024];
char *msg_ctxt_id =
(msgctxt_len + msgid_len <= sizeof (buf)
? buf
: (char *) malloc (msgctxt_len + msgid_len));
if (msg_ctxt_id != NULL)
#endif
{
memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
msg_ctxt_id[msgctxt_len - 1] = '\004';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
translation = dcgettext (domain, msg_ctxt_id, category);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment