bin_utils 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1083,7 +1083,7 @@ static int
1083
1083
  append_ber(VALUE rstr, uint64_t ber)
1084
1084
  {
1085
1085
  int i = 10;
1086
- char a[12] = {128, 128, 128, 128,
1086
+ char a[11] = {128, 128, 128, 128,
1087
1087
  128, 128 ,128 ,128,
1088
1088
  128, 128, 0};
1089
1089
  do {
@@ -1097,627 +1097,920 @@ append_ber(VALUE rstr, uint64_t ber)
1097
1097
  return 11-i;
1098
1098
  }
1099
1099
 
1100
+ static void
1101
+ check_argc_append(int argc, int bits)
1102
+ {
1103
+ if (argc < 1) {
1104
+ rb_raise(rb_eArgError, "accepts at least 1 argument: (string[, *int%ds])", bits);
1105
+ }
1106
+ }
1107
+
1108
+ static void
1109
+ check_argc_append_2(int argc, int bits, int bits1)
1110
+ {
1111
+ if (argc <= 1) {
1112
+ rb_raise(rb_eArgError, "accepts at least 2 arguments: (string, int%d[, *int%ds])", bits, bits1);
1113
+ }
1114
+ }
1115
+
1100
1116
  /*** 32BIT **/
1101
1117
  static VALUE
1102
- rb_append_int8(VALUE self, VALUE str, VALUE i)
1118
+ rb_append_int8(int argc, VALUE* argv, VALUE self)
1103
1119
  {
1104
- append_int8(str, NUM2INT(i));
1120
+ VALUE str; int i;
1121
+ check_argc_append(argc, 8);
1122
+ str = argv[0];
1123
+ for(i = 1; i < argc; i++) {
1124
+ append_int8(str, NUM2INT(argv[i]));
1125
+ }
1105
1126
  return str;
1106
1127
  }
1107
1128
 
1108
1129
  static VALUE
1109
- rb_append_int16_le(VALUE self, VALUE str, VALUE i)
1130
+ rb_append_int16_le(int argc, VALUE* argv, VALUE self)
1110
1131
  {
1111
- append_int16_le(str, NUM2INT(i));
1132
+ VALUE str; int i;
1133
+ check_argc_append(argc, 16);
1134
+ str = argv[0];
1135
+ for(i = 1; i < argc; i++) {
1136
+ append_int16_le(str, NUM2INT(argv[i]));
1137
+ }
1112
1138
  return str;
1113
1139
  }
1114
1140
 
1115
1141
  static VALUE
1116
- rb_append_int16_be(VALUE self, VALUE str, VALUE i)
1142
+ rb_append_int24_le(int argc, VALUE* argv, VALUE self)
1117
1143
  {
1118
- append_int16_be(str, NUM2INT(i));
1144
+ VALUE str; int i;
1145
+ check_argc_append(argc, 24);
1146
+ str = argv[0];
1147
+ for(i = 1; i < argc; i++) {
1148
+ append_int24_le(str, NUM2INT(argv[i]));
1149
+ }
1119
1150
  return str;
1120
1151
  }
1121
1152
 
1122
1153
  static VALUE
1123
- rb_append_int24_le(VALUE self, VALUE str, VALUE i)
1154
+ rb_append_int32_le(int argc, VALUE* argv, VALUE self)
1124
1155
  {
1125
- append_int24_le(str, NUM2INT(i));
1156
+ VALUE str = argv[0];
1157
+ int i;
1158
+ for(i = 1; i < argc; i++) {
1159
+ append_int32_le(str, (int32_t)NUM2I64(argv[i]));
1160
+ }
1126
1161
  return str;
1127
1162
  }
1128
1163
 
1129
1164
  static VALUE
1130
- rb_append_int24_be(VALUE self, VALUE str, VALUE i)
1165
+ rb_append_int16_be(int argc, VALUE* argv, VALUE self)
1131
1166
  {
1132
- append_int24_be(str, NUM2INT(i));
1167
+ VALUE str; int i;
1168
+ check_argc_append(argc, 16);
1169
+ str = argv[0];
1170
+ for(i = 1; i < argc; i++) {
1171
+ append_int16_be(str, NUM2INT(argv[i]));
1172
+ }
1133
1173
  return str;
1134
1174
  }
1135
1175
 
1136
1176
  static VALUE
1137
- rb_append_int32_le(VALUE self, VALUE str, VALUE i)
1177
+ rb_append_int24_be(int argc, VALUE* argv, VALUE self)
1138
1178
  {
1139
- append_int32_le(str, (int32_t)NUM2I64(i));
1179
+ VALUE str; int i;
1180
+ check_argc_append(argc, 24);
1181
+ str = argv[0];
1182
+ for(i = 1; i < argc; i++) {
1183
+ append_int24_be(str, NUM2INT(argv[i]));
1184
+ }
1140
1185
  return str;
1141
1186
  }
1142
1187
 
1143
1188
  static VALUE
1144
- rb_append_int32_be(VALUE self, VALUE str, VALUE i)
1189
+ rb_append_int32_be(int argc, VALUE* argv, VALUE self)
1145
1190
  {
1146
- append_int32_be(str, (int32_t)NUM2I64(i));
1191
+ VALUE str = argv[0];
1192
+ int i;
1193
+ for(i = 1; i < argc; i++) {
1194
+ append_int32_be(str, (int32_t)NUM2I64(argv[i]));
1195
+ }
1147
1196
  return str;
1148
1197
  }
1149
1198
  /*** 32BIT END ***/
1150
1199
 
1151
1200
  /*** 64BIT ***/
1152
1201
  static VALUE
1153
- rb_append_int40_le(VALUE self, VALUE str, VALUE i)
1202
+ rb_append_int40_le(int argc, VALUE* argv, VALUE self)
1154
1203
  {
1155
- append_int40_le(str, NUM2I64(i));
1204
+ VALUE str; int i;
1205
+ check_argc_append(argc, 40);
1206
+ str = argv[0];
1207
+ for(i = 1; i < argc; i++) {
1208
+ append_int40_le(str, NUM2I64(argv[i]));
1209
+ }
1156
1210
  return str;
1157
1211
  }
1158
1212
 
1159
1213
  static VALUE
1160
- rb_append_int40_be(VALUE self, VALUE str, VALUE i)
1214
+ rb_append_int48_le(int argc, VALUE* argv, VALUE self)
1161
1215
  {
1162
- append_int40_be(str, NUM2I64(i));
1216
+ VALUE str; int i;
1217
+ check_argc_append(argc, 48);
1218
+ str = argv[0];
1219
+ for(i = 1; i < argc; i++) {
1220
+ append_int48_le(str, NUM2I64(argv[i]));
1221
+ }
1163
1222
  return str;
1164
1223
  }
1165
1224
 
1166
1225
  static VALUE
1167
- rb_append_int48_le(VALUE self, VALUE str, VALUE i)
1226
+ rb_append_int56_le(int argc, VALUE* argv, VALUE self)
1168
1227
  {
1169
- append_int48_le(str, NUM2I64(i));
1228
+ VALUE str; int i;
1229
+ check_argc_append(argc, 56);
1230
+ str = argv[0];
1231
+ for(i = 1; i < argc; i++) {
1232
+ append_int56_le(str, NUM2I64(argv[i]));
1233
+ }
1170
1234
  return str;
1171
1235
  }
1172
1236
 
1173
1237
  static VALUE
1174
- rb_append_int48_be(VALUE self, VALUE str, VALUE i)
1238
+ rb_append_int64_le(int argc, VALUE* argv, VALUE self)
1175
1239
  {
1176
- append_int48_be(str, NUM2I64(i));
1240
+ VALUE str; int i;
1241
+ check_argc_append(argc, 64);
1242
+ str = argv[0];
1243
+ for(i = 1; i < argc; i++) {
1244
+ append_int64_le(str, safe_int64_t(argv[i]));
1245
+ }
1177
1246
  return str;
1178
1247
  }
1179
1248
 
1180
1249
  static VALUE
1181
- rb_append_int56_le(VALUE self, VALUE str, VALUE i)
1250
+ rb_append_int40_be(int argc, VALUE* argv, VALUE self)
1182
1251
  {
1183
- append_int56_le(str, NUM2I64(i));
1252
+ VALUE str; int i;
1253
+ check_argc_append(argc, 40);
1254
+ str = argv[0];
1255
+ for(i = 1; i < argc; i++) {
1256
+ append_int40_be(str, NUM2I64(argv[i]));
1257
+ }
1184
1258
  return str;
1185
1259
  }
1186
1260
 
1187
1261
  static VALUE
1188
- rb_append_int56_be(VALUE self, VALUE str, VALUE i)
1262
+ rb_append_int48_be(int argc, VALUE* argv, VALUE self)
1189
1263
  {
1190
- append_int56_be(str, NUM2I64(i));
1264
+ VALUE str; int i;
1265
+ check_argc_append(argc, 48);
1266
+ str = argv[0];
1267
+ for(i = 1; i < argc; i++) {
1268
+ append_int48_be(str, NUM2I64(argv[i]));
1269
+ }
1191
1270
  return str;
1192
1271
  }
1193
1272
 
1194
1273
  static VALUE
1195
- rb_append_int64_le(VALUE self, VALUE str, VALUE i)
1274
+ rb_append_int56_be(int argc, VALUE* argv, VALUE self)
1196
1275
  {
1197
- append_int64_le(str, safe_int64_t(i));
1276
+ VALUE str; int i;
1277
+ check_argc_append(argc, 56);
1278
+ str = argv[0];
1279
+ for(i = 1; i < argc; i++) {
1280
+ append_int56_be(str, NUM2I64(argv[i]));
1281
+ }
1198
1282
  return str;
1199
1283
  }
1200
1284
 
1201
1285
  static VALUE
1202
- rb_append_int64_be(VALUE self, VALUE str, VALUE i)
1286
+ rb_append_int64_be(int argc, VALUE* argv, VALUE self)
1203
1287
  {
1204
- append_int64_be(str, safe_int64_t(i));
1288
+ VALUE str; int i;
1289
+ check_argc_append(argc, 64);
1290
+ str = argv[0];
1291
+ for(i = 1; i < argc; i++) {
1292
+ append_int64_be(str, safe_int64_t(argv[i]));
1293
+ }
1205
1294
  return str;
1206
1295
  }
1207
1296
  /*** 64BIT END **/
1208
1297
 
1298
+ /** APPEND END **/
1299
+
1300
+ /** APPEND BERSIZE **/
1209
1301
  static VALUE
1210
- rb_append_ber(VALUE self, VALUE str, VALUE i)
1302
+ rb_append_bersize_int8(int argc, VALUE* argv, VALUE self)
1211
1303
  {
1212
- append_ber(str, safe_int64_t(i));
1213
- return str;
1304
+ check_argc_append(argc, 8);
1305
+ append_ber(argv[0], (argc-1));
1306
+ return rb_append_int8(argc, argv, self);
1214
1307
  }
1215
1308
 
1216
- /** APPEND END **/
1309
+ static VALUE
1310
+ rb_append_bersize_int16_le(int argc, VALUE* argv, VALUE self)
1311
+ {
1312
+ check_argc_append(argc, 16);
1313
+ append_ber(argv[0], (argc-1)*2);
1314
+ return rb_append_int16_le(argc, argv, self);
1315
+ }
1217
1316
 
1218
- /** APPEND BERSIZE **/
1219
- /*** 32BIT **/
1220
1317
  static VALUE
1221
- rb_append_bersize_int8(VALUE self, VALUE str, VALUE i)
1318
+ rb_append_bersize_int24_le(int argc, VALUE* argv, VALUE self)
1222
1319
  {
1223
- char sz = 1;
1224
- rb_str_cat(str, &sz, 1);
1225
- append_int8(str, NUM2INT(i));
1226
- return str;
1320
+ check_argc_append(argc, 24);
1321
+ append_ber(argv[0], (argc-1)*3);
1322
+ return rb_append_int24_le(argc, argv, self);
1227
1323
  }
1228
1324
 
1229
1325
  static VALUE
1230
- rb_append_bersize_int16_le(VALUE self, VALUE str, VALUE i)
1326
+ rb_append_bersize_int32_le(int argc, VALUE* argv, VALUE self)
1231
1327
  {
1232
- char sz = 2;
1233
- rb_str_cat(str, &sz, 1);
1234
- append_int16_le(str, NUM2INT(i));
1235
- return str;
1328
+ check_argc_append(argc, 32);
1329
+ append_ber(argv[0], (argc-1)*4);
1330
+ return rb_append_int32_le(argc, argv, self);
1236
1331
  }
1237
1332
 
1238
1333
  static VALUE
1239
- rb_append_bersize_int16_be(VALUE self, VALUE str, VALUE i)
1334
+ rb_append_bersize_int40_le(int argc, VALUE* argv, VALUE self)
1240
1335
  {
1241
- char sz = 2;
1242
- rb_str_cat(str, &sz, 1);
1243
- append_int16_be(str, NUM2INT(i));
1244
- return str;
1336
+ check_argc_append(argc, 40);
1337
+ append_ber(argv[0], (argc-1)*5);
1338
+ return rb_append_int40_le(argc, argv, self);
1245
1339
  }
1246
1340
 
1247
1341
  static VALUE
1248
- rb_append_bersize_int24_le(VALUE self, VALUE str, VALUE i)
1342
+ rb_append_bersize_int48_le(int argc, VALUE* argv, VALUE self)
1249
1343
  {
1250
- char sz = 3;
1251
- rb_str_cat(str, &sz, 1);
1252
- append_int24_le(str, NUM2INT(i));
1253
- return str;
1344
+ check_argc_append(argc, 48);
1345
+ append_ber(argv[0], (argc-1)*6);
1346
+ return rb_append_int48_le(argc, argv, self);
1254
1347
  }
1255
1348
 
1256
1349
  static VALUE
1257
- rb_append_bersize_int24_be(VALUE self, VALUE str, VALUE i)
1350
+ rb_append_bersize_int56_le(int argc, VALUE* argv, VALUE self)
1258
1351
  {
1259
- char sz = 3;
1260
- rb_str_cat(str, &sz, 1);
1261
- append_int24_be(str, NUM2INT(i));
1262
- return str;
1352
+ check_argc_append(argc, 56);
1353
+ append_ber(argv[0], (argc-1)*7);
1354
+ return rb_append_int56_le(argc, argv, self);
1263
1355
  }
1264
1356
 
1265
1357
  static VALUE
1266
- rb_append_bersize_int32_le(VALUE self, VALUE str, VALUE i)
1358
+ rb_append_bersize_int64_le(int argc, VALUE* argv, VALUE self)
1267
1359
  {
1268
- char sz = 4;
1269
- rb_str_cat(str, &sz, 1);
1270
- append_int32_le(str, (int32_t)NUM2I64(i));
1271
- return str;
1360
+ check_argc_append(argc, 64);
1361
+ append_ber(argv[0], (argc-1)*8);
1362
+ return rb_append_int64_le(argc, argv, self);
1272
1363
  }
1273
1364
 
1274
1365
  static VALUE
1275
- rb_append_bersize_int32_be(VALUE self, VALUE str, VALUE i)
1366
+ rb_append_bersize_int16_be(int argc, VALUE* argv, VALUE self)
1276
1367
  {
1277
- char sz = 4;
1278
- rb_str_cat(str, &sz, 1);
1279
- append_int32_be(str, (int32_t)NUM2I64(i));
1280
- return str;
1368
+ check_argc_append(argc, 16);
1369
+ append_ber(argv[0], (argc-1)*2);
1370
+ return rb_append_int16_be(argc, argv, self);
1281
1371
  }
1282
- /*** 32BIT END ***/
1283
1372
 
1284
- /*** 64BIT ***/
1285
1373
  static VALUE
1286
- rb_append_bersize_int40_le(VALUE self, VALUE str, VALUE i)
1374
+ rb_append_bersize_int24_be(int argc, VALUE* argv, VALUE self)
1287
1375
  {
1288
- char sz = 5;
1289
- rb_str_cat(str, &sz, 1);
1290
- append_int40_le(str, NUM2I64(i));
1291
- return str;
1376
+ check_argc_append(argc, 24);
1377
+ append_ber(argv[0], (argc-1)*3);
1378
+ return rb_append_int24_be(argc, argv, self);
1292
1379
  }
1293
1380
 
1294
1381
  static VALUE
1295
- rb_append_bersize_int40_be(VALUE self, VALUE str, VALUE i)
1382
+ rb_append_bersize_int32_be(int argc, VALUE* argv, VALUE self)
1296
1383
  {
1297
- char sz = 5;
1298
- rb_str_cat(str, &sz, 1);
1299
- append_int40_be(str, NUM2I64(i));
1300
- return str;
1384
+ check_argc_append(argc, 32);
1385
+ append_ber(argv[0], (argc-1)*4);
1386
+ return rb_append_int32_be(argc, argv, self);
1301
1387
  }
1302
1388
 
1303
1389
  static VALUE
1304
- rb_append_bersize_int48_le(VALUE self, VALUE str, VALUE i)
1390
+ rb_append_bersize_int40_be(int argc, VALUE* argv, VALUE self)
1305
1391
  {
1306
- char sz = 6;
1307
- rb_str_cat(str, &sz, 1);
1308
- append_int48_le(str, NUM2I64(i));
1309
- return str;
1392
+ check_argc_append(argc, 40);
1393
+ append_ber(argv[0], (argc-1)*5);
1394
+ return rb_append_int40_be(argc, argv, self);
1310
1395
  }
1311
1396
 
1312
1397
  static VALUE
1313
- rb_append_bersize_int48_be(VALUE self, VALUE str, VALUE i)
1398
+ rb_append_bersize_int48_be(int argc, VALUE* argv, VALUE self)
1314
1399
  {
1315
- char sz = 6;
1316
- rb_str_cat(str, &sz, 1);
1317
- append_int48_be(str, NUM2I64(i));
1318
- return str;
1400
+ check_argc_append(argc, 48);
1401
+ append_ber(argv[0], (argc-1)*6);
1402
+ return rb_append_int48_be(argc, argv, self);
1319
1403
  }
1320
1404
 
1321
1405
  static VALUE
1322
- rb_append_bersize_int56_le(VALUE self, VALUE str, VALUE i)
1406
+ rb_append_bersize_int56_be(int argc, VALUE* argv, VALUE self)
1323
1407
  {
1324
- char sz = 7;
1325
- rb_str_cat(str, &sz, 1);
1326
- append_int56_le(str, NUM2I64(i));
1327
- return str;
1408
+ check_argc_append(argc, 56);
1409
+ append_ber(argv[0], (argc-1)*7);
1410
+ return rb_append_int56_be(argc, argv, self);
1328
1411
  }
1329
1412
 
1330
1413
  static VALUE
1331
- rb_append_bersize_int56_be(VALUE self, VALUE str, VALUE i)
1414
+ rb_append_bersize_int64_be(int argc, VALUE* argv, VALUE self)
1332
1415
  {
1333
- char sz = 7;
1334
- rb_str_cat(str, &sz, 1);
1335
- append_int56_be(str, NUM2I64(i));
1336
- return str;
1416
+ check_argc_append(argc, 64);
1417
+ append_ber(argv[0], (argc-1)*8);
1418
+ return rb_append_int64_be(argc, argv, self);
1337
1419
  }
1420
+ /** APPEND BERSIZE END **/
1338
1421
 
1422
+ /** APPEND INT32SIZE **/
1339
1423
  static VALUE
1340
- rb_append_bersize_int64_le(VALUE self, VALUE str, VALUE i)
1424
+ rb_append_int32size_int8_le(int argc, VALUE* argv, VALUE self)
1341
1425
  {
1342
- char sz = 8;
1343
- rb_str_cat(str, &sz, 1);
1344
- append_int64_le(str, safe_int64_t(i));
1345
- return str;
1426
+ check_argc_append(argc, 8);
1427
+ append_int32_le(argv[0], (argc-1));
1428
+ return rb_append_int8(argc, argv, self);
1346
1429
  }
1347
1430
 
1348
1431
  static VALUE
1349
- rb_append_bersize_int64_be(VALUE self, VALUE str, VALUE i)
1432
+ rb_append_int32size_int16_le(int argc, VALUE* argv, VALUE self)
1350
1433
  {
1351
- char sz = 8;
1352
- rb_str_cat(str, &sz, 1);
1353
- append_int64_be(str, safe_int64_t(i));
1354
- return str;
1434
+ check_argc_append(argc, 16);
1435
+ append_int32_le(argv[0], (argc-1)*2);
1436
+ return rb_append_int16_le(argc, argv, self);
1355
1437
  }
1356
- /*** 64BIT END **/
1357
1438
 
1358
1439
  static VALUE
1359
- rb_append_bersize_ber(VALUE self, VALUE str, VALUE i)
1440
+ rb_append_int32size_int24_le(int argc, VALUE* argv, VALUE self)
1360
1441
  {
1361
- char c=0;
1362
- int sl, bl;
1363
- rb_str_cat(str, &c, 1);
1364
- sl = RSTRING_LEN(str)-1;
1365
- bl = append_ber(str, safe_int64_t(i));
1366
- RSTRING_PTR(str)[sl] = bl;
1367
- return str;
1442
+ check_argc_append(argc, 24);
1443
+ append_int32_le(argv[0], (argc-1)*3);
1444
+ return rb_append_int24_le(argc, argv, self);
1445
+ }
1446
+
1447
+ static VALUE
1448
+ rb_append_int32size_int32_le(int argc, VALUE* argv, VALUE self)
1449
+ {
1450
+ check_argc_append(argc, 32);
1451
+ append_int32_le(argv[0], (argc-1)*4);
1452
+ return rb_append_int32_le(argc, argv, self);
1453
+ }
1454
+
1455
+ static VALUE
1456
+ rb_append_int32size_int40_le(int argc, VALUE* argv, VALUE self)
1457
+ {
1458
+ check_argc_append(argc, 40);
1459
+ append_int32_le(argv[0], (argc-1)*5);
1460
+ return rb_append_int40_le(argc, argv, self);
1368
1461
  }
1369
1462
 
1463
+ static VALUE
1464
+ rb_append_int32size_int48_le(int argc, VALUE* argv, VALUE self)
1465
+ {
1466
+ check_argc_append(argc, 48);
1467
+ append_int32_le(argv[0], (argc-1)*6);
1468
+ return rb_append_int48_le(argc, argv, self);
1469
+ }
1470
+
1471
+ static VALUE
1472
+ rb_append_int32size_int56_le(int argc, VALUE* argv, VALUE self)
1473
+ {
1474
+ check_argc_append(argc, 56);
1475
+ append_int32_le(argv[0], (argc-1)*7);
1476
+ return rb_append_int56_le(argc, argv, self);
1477
+ }
1478
+
1479
+ static VALUE
1480
+ rb_append_int32size_int64_le(int argc, VALUE* argv, VALUE self)
1481
+ {
1482
+ check_argc_append(argc, 64);
1483
+ append_int32_le(argv[0], (argc-1)*8);
1484
+ return rb_append_int64_le(argc, argv, self);
1485
+ }
1486
+
1487
+ static VALUE
1488
+ rb_append_int32size_int8_be(int argc, VALUE* argv, VALUE self)
1489
+ {
1490
+ check_argc_append(argc, 8);
1491
+ append_int32_be(argv[0], (argc-1));
1492
+ return rb_append_int8(argc, argv, self);
1493
+ }
1494
+
1495
+ static VALUE
1496
+ rb_append_int32size_int16_be(int argc, VALUE* argv, VALUE self)
1497
+ {
1498
+ check_argc_append(argc, 16);
1499
+ append_int32_be(argv[0], (argc-1)*2);
1500
+ return rb_append_int16_be(argc, argv, self);
1501
+ }
1502
+
1503
+ static VALUE
1504
+ rb_append_int32size_int24_be(int argc, VALUE* argv, VALUE self)
1505
+ {
1506
+ check_argc_append(argc, 24);
1507
+ append_int32_be(argv[0], (argc-1)*3);
1508
+ return rb_append_int24_be(argc, argv, self);
1509
+ }
1510
+
1511
+ static VALUE
1512
+ rb_append_int32size_int32_be(int argc, VALUE* argv, VALUE self)
1513
+ {
1514
+ check_argc_append(argc, 32);
1515
+ append_int32_be(argv[0], (argc-1)*4);
1516
+ return rb_append_int32_be(argc, argv, self);
1517
+ }
1518
+
1519
+ static VALUE
1520
+ rb_append_int32size_int40_be(int argc, VALUE* argv, VALUE self)
1521
+ {
1522
+ check_argc_append(argc, 40);
1523
+ append_int32_be(argv[0], (argc-1)*5);
1524
+ return rb_append_int40_be(argc, argv, self);
1525
+ }
1526
+
1527
+ static VALUE
1528
+ rb_append_int32size_int48_be(int argc, VALUE* argv, VALUE self)
1529
+ {
1530
+ check_argc_append(argc, 48);
1531
+ append_int32_be(argv[0], (argc-1)*6);
1532
+ return rb_append_int48_be(argc, argv, self);
1533
+ }
1534
+
1535
+ static VALUE
1536
+ rb_append_int32size_int56_be(int argc, VALUE* argv, VALUE self)
1537
+ {
1538
+ check_argc_append(argc, 56);
1539
+ append_int32_be(argv[0], (argc-1)*7);
1540
+ return rb_append_int56_be(argc, argv, self);
1541
+ }
1542
+
1543
+ static VALUE
1544
+ rb_append_int32size_int64_be(int argc, VALUE* argv, VALUE self)
1545
+ {
1546
+ check_argc_append(argc, 64);
1547
+ append_int32_be(argv[0], (argc-1)*8);
1548
+ return rb_append_int64_be(argc, argv, self);
1549
+ }
1370
1550
  /** APPEND BERSIZE END **/
1551
+ /** APPEND INT32SIZE END **/
1552
+
1553
+ /** APPEND BER **/
1371
1554
 
1372
- /** APPEND INT32LESIZE **/
1373
- /*** 32BIT **/
1374
1555
  static VALUE
1375
- rb_append_int32lesize_int8(VALUE self, VALUE str, VALUE i)
1556
+ rb_append_ber(int argc, VALUE* argv, VALUE self)
1376
1557
  {
1377
- char sz[4] = {1, 0, 0, 0};
1378
- rb_str_cat(str, sz, 4);
1379
- append_int8(str, NUM2INT(i));
1558
+ VALUE str; int i;
1559
+ check_argc_append(argc, 0);
1560
+ str = argv[0];
1561
+ for(i = 1; i < argc; i++) {
1562
+ append_ber(str, safe_int64_t(argv[i]));
1563
+ }
1380
1564
  return str;
1381
1565
  }
1382
1566
 
1567
+ static VALUE rb_append_bersize_string(VALUE self, VALUE str, VALUE add);
1568
+
1569
+ static const char zeros[4] = {0, 0, 0, 0};
1383
1570
  static VALUE
1384
- rb_append_int32lesize_int16_le(VALUE self, VALUE str, VALUE i)
1571
+ rb_append_bersize_ber(int argc, VALUE* argv, VALUE self)
1385
1572
  {
1386
- char sz[4] = {2, 0, 0, 0};
1387
- rb_str_cat(str, sz, 4);
1388
- append_int16_le(str, NUM2INT(i));
1389
- return str;
1573
+ VALUE str, add_str;
1574
+ int i;
1575
+ check_argc_append(argc, 0);
1576
+ str = argv[0];
1577
+ add_str = rb_str_tmp_new(0);
1578
+ for(i = 1; i < argc; i++) {
1579
+ append_ber(add_str, safe_int64_t(argv[i]));
1580
+ }
1581
+ return rb_append_bersize_string(self, str, add_str);
1390
1582
  }
1391
1583
 
1392
1584
  static VALUE
1393
- rb_append_int32lesize_int16_be(VALUE self, VALUE str, VALUE i)
1585
+ rb_append_int32size_ber_le(int argc, VALUE* argv, VALUE self)
1394
1586
  {
1395
- char sz[4] = {2, 0, 0, 0};
1396
- rb_str_cat(str, sz, 4);
1397
- append_int16_be(str, NUM2INT(i));
1587
+ VALUE str;
1588
+ int i, bs=0, ss;
1589
+ uint8_t *ptr;
1590
+ check_argc_append(argc, 0);
1591
+ str = argv[0];
1592
+ rb_str_cat(str, zeros, 4);
1593
+ ss = RSTRING_LEN(str) - 4;
1594
+ for(i = 1; i < argc; i++) {
1595
+ bs += append_ber(str, safe_int64_t(argv[i]));
1596
+ }
1597
+ ptr = ((uint8_t*)RSTRING_PTR(str)) + ss;
1598
+ ptr[0] = bs & 255;
1599
+ ptr[1] = (bs >> 8) & 255;
1600
+ ptr[2] = (bs >> 16) & 255;
1601
+ ptr[3] = (bs >> 24) & 255;
1398
1602
  return str;
1399
1603
  }
1400
1604
 
1401
1605
  static VALUE
1402
- rb_append_int32lesize_int24_le(VALUE self, VALUE str, VALUE i)
1606
+ rb_append_int32size_ber_be(int argc, VALUE* argv, VALUE self)
1403
1607
  {
1404
- char sz[4] = {3, 0, 0, 0};
1405
- rb_str_cat(str, sz, 4);
1406
- append_int24_le(str, NUM2INT(i));
1608
+ VALUE str;
1609
+ int i = 0, bs=0, ss;
1610
+ uint8_t *ptr;
1611
+ check_argc_append(argc, 0);
1612
+ str = argv[0];
1613
+ rb_str_cat(str, zeros, 4);
1614
+ ss = RSTRING_LEN(str) - 4;
1615
+ for(i = 1; i < argc; i++) {
1616
+ bs += append_ber(str, safe_int64_t(argv[i]));
1617
+ }
1618
+ ptr = ((uint8_t*)RSTRING_PTR(str)) + ss;
1619
+ ptr[3] = bs & 255;
1620
+ ptr[2] = (bs >> 8) & 255;
1621
+ ptr[1] = (bs >> 16) & 255;
1622
+ ptr[0] = (bs >> 24) & 255;
1407
1623
  return str;
1408
1624
  }
1625
+ /** APPEND BER END **/
1409
1626
 
1627
+ /** APPEND STRING **/
1410
1628
  static VALUE
1411
- rb_append_int32lesize_int24_be(VALUE self, VALUE str, VALUE i)
1629
+ rb_append_string(VALUE self, VALUE str, VALUE add)
1412
1630
  {
1413
- char sz[4] = {3, 0, 0, 0};
1414
- rb_str_cat(str, sz, 4);
1415
- append_int24_be(str, NUM2INT(i));
1631
+ StringValue(add);
1632
+ rb_str_cat(str, RSTRING_PTR(add), RSTRING_LEN(add));
1633
+ RB_GC_GUARD(add);
1416
1634
  return str;
1417
1635
  }
1418
1636
 
1419
1637
  static VALUE
1420
- rb_append_int32lesize_int32_le(VALUE self, VALUE str, VALUE i)
1638
+ rb_append_bersize_string(VALUE self, VALUE str, VALUE add)
1421
1639
  {
1422
- char sz[4] = {4, 0, 0, 0};
1423
- rb_str_cat(str, sz, 4);
1424
- append_int32_le(str, (int32_t)NUM2I64(i));
1640
+ StringValue(add);
1641
+ append_ber(str, RSTRING_LEN(add));
1642
+ rb_str_cat(str, RSTRING_PTR(add), RSTRING_LEN(add));
1643
+ RB_GC_GUARD(add);
1425
1644
  return str;
1426
1645
  }
1427
1646
 
1428
1647
  static VALUE
1429
- rb_append_int32lesize_int32_be(VALUE self, VALUE str, VALUE i)
1648
+ rb_append_int32size_string_le(VALUE self, VALUE str, VALUE add)
1430
1649
  {
1431
- char sz[4] = {4, 0, 0, 0};
1432
- rb_str_cat(str, sz, 4);
1433
- append_int32_be(str, (int32_t)NUM2I64(i));
1650
+ StringValue(add);
1651
+ append_int32_le(str, RSTRING_LEN(add));
1652
+ rb_str_cat(str, RSTRING_PTR(add), RSTRING_LEN(add));
1653
+ RB_GC_GUARD(add);
1434
1654
  return str;
1435
1655
  }
1436
- /*** 32BIT END ***/
1437
1656
 
1438
- /*** 64BIT ***/
1439
1657
  static VALUE
1440
- rb_append_int32lesize_int40_le(VALUE self, VALUE str, VALUE i)
1658
+ rb_append_int32size_string_be(VALUE self, VALUE str, VALUE add)
1441
1659
  {
1442
- char sz[4] = {5, 0, 0, 0};
1443
- rb_str_cat(str, sz, 4);
1444
- append_int40_le(str, NUM2I64(i));
1660
+ StringValue(add);
1661
+ append_int32_be(str, RSTRING_LEN(add));
1662
+ rb_str_cat(str, RSTRING_PTR(add), RSTRING_LEN(add));
1663
+ RB_GC_GUARD(add);
1445
1664
  return str;
1446
1665
  }
1447
1666
 
1667
+ /** APPEND STRING END **/
1668
+
1669
+ /** APPEND COMPLEX **/
1448
1670
  static VALUE
1449
- rb_append_int32lesize_int40_be(VALUE self, VALUE str, VALUE i)
1671
+ rb_append_int8_ber(int argc, VALUE *argv, VALUE self)
1450
1672
  {
1451
- char sz[4] = {5, 0, 0, 0};
1452
- rb_str_cat(str, sz, 4);
1453
- append_int40_be(str, NUM2I64(i));
1454
- return str;
1673
+ check_argc_append_2(argc, 8, 0);
1674
+ rb_append_int8(2, argv, self);
1675
+ argv[1] = argv[0];
1676
+ return rb_append_ber(argc-1, argv+1, self);
1455
1677
  }
1456
1678
 
1457
1679
  static VALUE
1458
- rb_append_int32lesize_int48_le(VALUE self, VALUE str, VALUE i)
1680
+ rb_append_int16_ber_le(int argc, VALUE *argv, VALUE self)
1459
1681
  {
1460
- char sz[4] = {6, 0, 0, 0};
1461
- rb_str_cat(str, sz, 4);
1462
- append_int48_le(str, NUM2I64(i));
1463
- return str;
1682
+ check_argc_append_2(argc, 16, 0);
1683
+ rb_append_int16_le(2, argv, self);
1684
+ argv[1] = argv[0];
1685
+ return rb_append_ber(argc-1, argv+1, self);
1464
1686
  }
1465
1687
 
1466
1688
  static VALUE
1467
- rb_append_int32lesize_int48_be(VALUE self, VALUE str, VALUE i)
1689
+ rb_append_int24_ber_le(int argc, VALUE *argv, VALUE self)
1468
1690
  {
1469
- char sz[4] = {6, 0, 0, 0};
1470
- rb_str_cat(str, sz, 4);
1471
- append_int48_be(str, NUM2I64(i));
1472
- return str;
1691
+ check_argc_append_2(argc, 24, 0);
1692
+ rb_append_int24_le(2, argv, self);
1693
+ argv[1] = argv[0];
1694
+ return rb_append_ber(argc-1, argv+1, self);
1473
1695
  }
1474
1696
 
1475
1697
  static VALUE
1476
- rb_append_int32lesize_int56_le(VALUE self, VALUE str, VALUE i)
1698
+ rb_append_int32_ber_le(int argc, VALUE *argv, VALUE self)
1477
1699
  {
1478
- char sz[4] = {7, 0, 0, 0};
1479
- rb_str_cat(str, sz, 4);
1480
- append_int56_le(str, NUM2I64(i));
1481
- return str;
1700
+ check_argc_append_2(argc, 32, 0);
1701
+ rb_append_int32_le(2, argv, self);
1702
+ argv[1] = argv[0];
1703
+ return rb_append_ber(argc-1, argv+1, self);
1482
1704
  }
1483
1705
 
1484
1706
  static VALUE
1485
- rb_append_int32lesize_int56_be(VALUE self, VALUE str, VALUE i)
1707
+ rb_append_int16_ber_be(int argc, VALUE *argv, VALUE self)
1486
1708
  {
1487
- char sz[4] = {7, 0, 0, 0};
1488
- rb_str_cat(str, sz, 4);
1489
- append_int56_be(str, NUM2I64(i));
1490
- return str;
1709
+ check_argc_append_2(argc, 16, 0);
1710
+ rb_append_int16_be(2, argv, self);
1711
+ argv[1] = argv[0];
1712
+ return rb_append_ber(argc-1, argv+1, self);
1491
1713
  }
1492
1714
 
1493
1715
  static VALUE
1494
- rb_append_int32lesize_int64_le(VALUE self, VALUE str, VALUE i)
1716
+ rb_append_int24_ber_be(int argc, VALUE *argv, VALUE self)
1495
1717
  {
1496
- char sz[4] = {8, 0, 0, 0};
1497
- rb_str_cat(str, sz, 4);
1498
- append_int64_le(str, safe_int64_t(i));
1499
- return str;
1718
+ check_argc_append_2(argc, 24, 0);
1719
+ rb_append_int24_be(2, argv, self);
1720
+ argv[1] = argv[0];
1721
+ return rb_append_ber(argc-1, argv+1, self);
1500
1722
  }
1501
1723
 
1502
1724
  static VALUE
1503
- rb_append_int32lesize_int64_be(VALUE self, VALUE str, VALUE i)
1725
+ rb_append_int32_ber_be(int argc, VALUE *argv, VALUE self)
1504
1726
  {
1505
- char sz[4] = {8, 0, 0, 0};
1506
- rb_str_cat(str, sz, 4);
1507
- append_int64_be(str, safe_int64_t(i));
1508
- return str;
1727
+ check_argc_append_2(argc, 32, 0);
1728
+ rb_append_int32_be(2, argv, self);
1729
+ argv[1] = argv[0];
1730
+ return rb_append_ber(argc-1, argv+1, self);
1509
1731
  }
1510
- /*** 64BIT END **/
1511
1732
 
1512
1733
  static VALUE
1513
- rb_append_int32lesize_ber(VALUE self, VALUE str, VALUE i)
1734
+ rb_append_int8_int16_le(int argc, VALUE *argv, VALUE self)
1514
1735
  {
1515
- char sz[4] = {0,0,0,0};
1516
- int sl, bl;
1517
- rb_str_cat(str, sz, 4);
1518
- sl = RSTRING_LEN(str)-4;
1519
- bl = append_ber(str, safe_int64_t(i));
1520
- RSTRING_PTR(str)[sl] = bl;
1521
- return str;
1736
+ check_argc_append_2(argc, 8, 16);
1737
+ rb_append_int8(2, argv, self);
1738
+ argv[1] = argv[0];
1739
+ return rb_append_int16_le(argc-1, argv+1, self);
1522
1740
  }
1523
1741
 
1524
- /** APPEND INT32LESIZE END **/
1742
+ static VALUE
1743
+ rb_append_int8_int24_le(int argc, VALUE *argv, VALUE self)
1744
+ {
1745
+ check_argc_append_2(argc, 8, 24);
1746
+ rb_append_int8(2, argv, self);
1747
+ argv[1] = argv[0];
1748
+ return rb_append_int24_le(argc-1, argv+1, self);
1749
+ }
1525
1750
 
1526
- /** APPEND INT32BESIZE **/
1527
- /*** 32BIT **/
1528
1751
  static VALUE
1529
- rb_append_int32besize_int8(VALUE self, VALUE str, VALUE i)
1752
+ rb_append_int8_int32_le(int argc, VALUE *argv, VALUE self)
1530
1753
  {
1531
- char sz[4] = {0, 0, 0, 1};
1532
- rb_str_cat(str, sz, 4);
1533
- append_int8(str, NUM2INT(i));
1534
- return str;
1754
+ check_argc_append_2(argc, 8, 32);
1755
+ rb_append_int8(2, argv, self);
1756
+ argv[1] = argv[0];
1757
+ return rb_append_int32_le(argc-1, argv+1, self);
1535
1758
  }
1536
1759
 
1537
1760
  static VALUE
1538
- rb_append_int32besize_int16_le(VALUE self, VALUE str, VALUE i)
1761
+ rb_append_int8_int16_be(int argc, VALUE *argv, VALUE self)
1539
1762
  {
1540
- char sz[4] = {0, 0, 0, 2};
1541
- rb_str_cat(str, sz, 4);
1542
- append_int16_le(str, NUM2INT(i));
1543
- return str;
1763
+ check_argc_append_2(argc, 8, 16);
1764
+ rb_append_int8(2, argv, self);
1765
+ argv[1] = argv[0];
1766
+ return rb_append_int16_be(argc-1, argv+1, self);
1544
1767
  }
1545
1768
 
1546
1769
  static VALUE
1547
- rb_append_int32besize_int16_be(VALUE self, VALUE str, VALUE i)
1770
+ rb_append_int8_int24_be(int argc, VALUE *argv, VALUE self)
1548
1771
  {
1549
- char sz[4] = {0, 0, 0, 2};
1550
- rb_str_cat(str, sz, 4);
1551
- append_int16_be(str, NUM2INT(i));
1552
- return str;
1772
+ check_argc_append_2(argc, 8, 24);
1773
+ rb_append_int8(2, argv, self);
1774
+ argv[1] = argv[0];
1775
+ return rb_append_int24_be(argc-1, argv+1, self);
1553
1776
  }
1554
1777
 
1555
1778
  static VALUE
1556
- rb_append_int32besize_int24_le(VALUE self, VALUE str, VALUE i)
1779
+ rb_append_int8_int32_be(int argc, VALUE *argv, VALUE self)
1557
1780
  {
1558
- char sz[4] = {0, 0, 0, 3};
1559
- rb_str_cat(str, sz, 4);
1560
- append_int24_le(str, NUM2INT(i));
1561
- return str;
1781
+ check_argc_append_2(argc, 8, 32);
1782
+ rb_append_int8(2, argv, self);
1783
+ argv[1] = argv[0];
1784
+ return rb_append_int32_be(argc-1, argv+1, self);
1562
1785
  }
1563
1786
 
1564
1787
  static VALUE
1565
- rb_append_int32besize_int24_be(VALUE self, VALUE str, VALUE i)
1788
+ rb_append_int16_int8_le(int argc, VALUE *argv, VALUE self)
1566
1789
  {
1567
- char sz[4] = {0, 0, 0, 3};
1568
- rb_str_cat(str, sz, 4);
1569
- append_int24_be(str, NUM2INT(i));
1570
- return str;
1790
+ check_argc_append_2(argc, 16, 8);
1791
+ rb_append_int16_le(2, argv, self);
1792
+ argv[1] = argv[0];
1793
+ return rb_append_int8(argc-1, argv+1, self);
1571
1794
  }
1572
1795
 
1573
1796
  static VALUE
1574
- rb_append_int32besize_int32_le(VALUE self, VALUE str, VALUE i)
1797
+ rb_append_int16_int24_le(int argc, VALUE *argv, VALUE self)
1575
1798
  {
1576
- char sz[4] = {0, 0, 0, 4};
1577
- rb_str_cat(str, sz, 4);
1578
- append_int32_le(str, (int32_t)NUM2I64(i));
1579
- return str;
1799
+ check_argc_append_2(argc, 16, 24);
1800
+ rb_append_int16_le(2, argv, self);
1801
+ argv[1] = argv[0];
1802
+ return rb_append_int24_le(argc-1, argv+1, self);
1580
1803
  }
1581
1804
 
1582
1805
  static VALUE
1583
- rb_append_int32besize_int32_be(VALUE self, VALUE str, VALUE i)
1806
+ rb_append_int16_int32_le(int argc, VALUE *argv, VALUE self)
1584
1807
  {
1585
- char sz[4] = {0, 0, 0, 4};
1586
- rb_str_cat(str, sz, 4);
1587
- append_int32_be(str, (int32_t)NUM2I64(i));
1588
- return str;
1808
+ check_argc_append_2(argc, 16, 32);
1809
+ rb_append_int16_le(2, argv, self);
1810
+ argv[1] = argv[0];
1811
+ return rb_append_int32_le(argc-1, argv+1, self);
1589
1812
  }
1590
- /*** 32BIT END ***/
1591
1813
 
1592
- /*** 64BIT ***/
1593
1814
  static VALUE
1594
- rb_append_int32besize_int40_le(VALUE self, VALUE str, VALUE i)
1815
+ rb_append_int16_int8_be(int argc, VALUE *argv, VALUE self)
1595
1816
  {
1596
- char sz[4] = {0, 0, 0, 5};
1597
- rb_str_cat(str, sz, 4);
1598
- append_int40_le(str, NUM2I64(i));
1599
- return str;
1817
+ check_argc_append_2(argc, 16, 8);
1818
+ rb_append_int16_be(2, argv, self);
1819
+ argv[1] = argv[0];
1820
+ return rb_append_int8(argc-1, argv+1, self);
1600
1821
  }
1601
1822
 
1602
1823
  static VALUE
1603
- rb_append_int32besize_int40_be(VALUE self, VALUE str, VALUE i)
1824
+ rb_append_int16_int24_be(int argc, VALUE *argv, VALUE self)
1604
1825
  {
1605
- char sz[4] = {0, 0, 0, 5};
1606
- rb_str_cat(str, sz, 4);
1607
- append_int40_be(str, NUM2I64(i));
1608
- return str;
1826
+ check_argc_append_2(argc, 16, 24);
1827
+ rb_append_int16_be(2, argv, self);
1828
+ argv[1] = argv[0];
1829
+ return rb_append_int24_be(argc-1, argv+1, self);
1609
1830
  }
1610
1831
 
1611
1832
  static VALUE
1612
- rb_append_int32besize_int48_le(VALUE self, VALUE str, VALUE i)
1833
+ rb_append_int16_int32_be(int argc, VALUE *argv, VALUE self)
1613
1834
  {
1614
- char sz[4] = {0, 0, 0, 6};
1615
- rb_str_cat(str, sz, 4);
1616
- append_int48_le(str, NUM2I64(i));
1617
- return str;
1835
+ check_argc_append_2(argc, 16, 32);
1836
+ rb_append_int16_be(2, argv, self);
1837
+ argv[1] = argv[0];
1838
+ return rb_append_int32_be(argc-1, argv+1, self);
1618
1839
  }
1619
1840
 
1620
1841
  static VALUE
1621
- rb_append_int32besize_int48_be(VALUE self, VALUE str, VALUE i)
1842
+ rb_append_int24_int16_le(int argc, VALUE *argv, VALUE self)
1622
1843
  {
1623
- char sz[4] = {0, 0, 0, 6};
1624
- rb_str_cat(str, sz, 4);
1625
- append_int48_be(str, NUM2I64(i));
1626
- return str;
1844
+ check_argc_append_2(argc, 24, 16);
1845
+ rb_append_int24_le(2, argv, self);
1846
+ argv[1] = argv[0];
1847
+ return rb_append_int16_le(argc-1, argv+1, self);
1627
1848
  }
1628
1849
 
1629
1850
  static VALUE
1630
- rb_append_int32besize_int56_le(VALUE self, VALUE str, VALUE i)
1851
+ rb_append_int24_int8_le(int argc, VALUE *argv, VALUE self)
1631
1852
  {
1632
- char sz[4] = {0, 0, 0, 7};
1633
- rb_str_cat(str, sz, 4);
1634
- append_int56_le(str, NUM2I64(i));
1635
- return str;
1853
+ check_argc_append_2(argc, 24, 8);
1854
+ rb_append_int24_le(2, argv, self);
1855
+ argv[1] = argv[0];
1856
+ return rb_append_int8(argc-1, argv+1, self);
1636
1857
  }
1637
1858
 
1638
1859
  static VALUE
1639
- rb_append_int32besize_int56_be(VALUE self, VALUE str, VALUE i)
1860
+ rb_append_int24_int32_le(int argc, VALUE *argv, VALUE self)
1640
1861
  {
1641
- char sz[4] = {0, 0, 0, 7};
1642
- rb_str_cat(str, sz, 4);
1643
- append_int56_be(str, NUM2I64(i));
1644
- return str;
1862
+ check_argc_append_2(argc, 24, 32);
1863
+ rb_append_int24_le(2, argv, self);
1864
+ argv[1] = argv[0];
1865
+ return rb_append_int32_le(argc-1, argv+1, self);
1645
1866
  }
1646
1867
 
1647
1868
  static VALUE
1648
- rb_append_int32besize_int64_le(VALUE self, VALUE str, VALUE i)
1869
+ rb_append_int24_int16_be(int argc, VALUE *argv, VALUE self)
1649
1870
  {
1650
- char sz[4] = {0, 0, 0, 8};
1651
- rb_str_cat(str, sz, 4);
1652
- append_int64_le(str, safe_int64_t(i));
1653
- return str;
1871
+ check_argc_append_2(argc, 24, 16);
1872
+ rb_append_int24_be(2, argv, self);
1873
+ argv[1] = argv[0];
1874
+ return rb_append_int16_be(argc-1, argv+1, self);
1654
1875
  }
1655
1876
 
1656
1877
  static VALUE
1657
- rb_append_int32besize_int64_be(VALUE self, VALUE str, VALUE i)
1878
+ rb_append_int24_int8_be(int argc, VALUE *argv, VALUE self)
1658
1879
  {
1659
- char sz[4] = {0, 0, 0, 8};
1660
- rb_str_cat(str, sz, 4);
1661
- append_int64_be(str, safe_int64_t(i));
1662
- return str;
1880
+ check_argc_append_2(argc, 24, 8);
1881
+ rb_append_int24_be(2, argv, self);
1882
+ argv[1] = argv[0];
1883
+ return rb_append_int8(argc-1, argv+1, self);
1663
1884
  }
1664
- /*** 64BIT END **/
1665
1885
 
1666
1886
  static VALUE
1667
- rb_append_int32besize_ber(VALUE self, VALUE str, VALUE i)
1887
+ rb_append_int24_int32_be(int argc, VALUE *argv, VALUE self)
1668
1888
  {
1669
- char sz[4] = {0,0,0,0};
1670
- int sl, bl;
1671
- rb_str_cat(str, sz, 4);
1672
- sl = RSTRING_LEN(str)-1;
1673
- bl = append_ber(str, safe_int64_t(i));
1674
- RSTRING_PTR(str)[sl] = bl;
1675
- return str;
1889
+ check_argc_append_2(argc, 24, 32);
1890
+ rb_append_int24_be(2, argv, self);
1891
+ argv[1] = argv[0];
1892
+ return rb_append_int32_be(argc-1, argv+1, self);
1676
1893
  }
1677
1894
 
1678
- /** APPEND INT32BESIZE END **/
1895
+ static VALUE
1896
+ rb_append_int32_int16_le(int argc, VALUE *argv, VALUE self)
1897
+ {
1898
+ check_argc_append_2(argc, 32, 16);
1899
+ rb_append_int32_le(2, argv, self);
1900
+ argv[1] = argv[0];
1901
+ return rb_append_int16_le(argc-1, argv+1, self);
1902
+ }
1679
1903
 
1680
- /** APPEND STRING **/
1681
1904
  static VALUE
1682
- rb_append_string(VALUE self, VALUE str, VALUE add)
1905
+ rb_append_int32_int24_le(int argc, VALUE *argv, VALUE self)
1683
1906
  {
1684
- StringValue(add);
1685
- rb_str_cat(str, RSTRING_PTR(add), RSTRING_LEN(add));
1686
- RB_GC_GUARD(add);
1687
- return str;
1907
+ check_argc_append_2(argc, 32, 24);
1908
+ rb_append_int32_le(2, argv, self);
1909
+ argv[1] = argv[0];
1910
+ return rb_append_int24_le(argc-1, argv+1, self);
1688
1911
  }
1689
1912
 
1690
1913
  static VALUE
1691
- rb_append_bersize_string(VALUE self, VALUE str, VALUE add)
1914
+ rb_append_int32_int8_le(int argc, VALUE *argv, VALUE self)
1692
1915
  {
1693
- StringValue(add);
1694
- append_ber(str, RSTRING_LEN(add));
1695
- rb_str_cat(str, RSTRING_PTR(add), RSTRING_LEN(add));
1696
- RB_GC_GUARD(add);
1697
- return str;
1916
+ check_argc_append_2(argc, 32, 8);
1917
+ rb_append_int32_le(2, argv, self);
1918
+ argv[1] = argv[0];
1919
+ return rb_append_int8(argc-1, argv+1, self);
1698
1920
  }
1699
1921
 
1700
1922
  static VALUE
1701
- rb_append_int32lesize_string(VALUE self, VALUE str, VALUE add)
1923
+ rb_append_int32_int16_be(int argc, VALUE *argv, VALUE self)
1702
1924
  {
1703
- StringValue(add);
1704
- append_int32_le(str, RSTRING_LEN(add));
1705
- rb_str_cat(str, RSTRING_PTR(add), RSTRING_LEN(add));
1706
- RB_GC_GUARD(add);
1707
- return str;
1925
+ check_argc_append_2(argc, 32, 16);
1926
+ rb_append_int32_be(2, argv, self);
1927
+ argv[1] = argv[0];
1928
+ return rb_append_int16_be(argc-1, argv+1, self);
1708
1929
  }
1709
1930
 
1710
1931
  static VALUE
1711
- rb_append_int32besize_string(VALUE self, VALUE str, VALUE add)
1932
+ rb_append_int32_int24_be(int argc, VALUE *argv, VALUE self)
1712
1933
  {
1713
- StringValue(add);
1714
- append_int32_be(str, RSTRING_LEN(add));
1715
- rb_str_cat(str, RSTRING_PTR(add), RSTRING_LEN(add));
1716
- RB_GC_GUARD(add);
1717
- return str;
1934
+ check_argc_append_2(argc, 32, 24);
1935
+ rb_append_int32_be(2, argv, self);
1936
+ argv[1] = argv[0];
1937
+ return rb_append_int24_be(argc-1, argv+1, self);
1718
1938
  }
1719
1939
 
1720
- /** APPEND STRING END **/
1940
+ static VALUE
1941
+ rb_append_int32_int8_be(int argc, VALUE *argv, VALUE self)
1942
+ {
1943
+ check_argc_append_2(argc, 32, 8);
1944
+ rb_append_int32_be(2, argv, self);
1945
+ argv[1] = argv[0];
1946
+ return rb_append_int8(argc-1, argv+1, self);
1947
+ }
1948
+
1949
+ static VALUE
1950
+ rb_append_ber_int8(int argc, VALUE *argv, VALUE self)
1951
+ {
1952
+ check_argc_append_2(argc, 0, 8);
1953
+ rb_append_ber(2, argv, self);
1954
+ argv[1] = argv[0];
1955
+ return rb_append_int8(argc-1, argv+1, self);
1956
+ }
1957
+
1958
+ static VALUE
1959
+ rb_append_ber_int16_le(int argc, VALUE *argv, VALUE self)
1960
+ {
1961
+ check_argc_append_2(argc, 0, 16);
1962
+ rb_append_ber(2, argv, self);
1963
+ argv[1] = argv[0];
1964
+ return rb_append_int16_le(argc-1, argv+1, self);
1965
+ }
1966
+
1967
+ static VALUE
1968
+ rb_append_ber_int16_be(int argc, VALUE *argv, VALUE self)
1969
+ {
1970
+ check_argc_append_2(argc, 0, 16);
1971
+ rb_append_ber(2, argv, self);
1972
+ argv[1] = argv[0];
1973
+ return rb_append_int16_be(argc-1, argv+1, self);
1974
+ }
1975
+
1976
+ static VALUE
1977
+ rb_append_ber_int24_le(int argc, VALUE *argv, VALUE self)
1978
+ {
1979
+ check_argc_append_2(argc, 0, 24);
1980
+ rb_append_ber(2, argv, self);
1981
+ argv[1] = argv[0];
1982
+ return rb_append_int24_le(argc-1, argv+1, self);
1983
+ }
1984
+
1985
+ static VALUE
1986
+ rb_append_ber_int24_be(int argc, VALUE *argv, VALUE self)
1987
+ {
1988
+ check_argc_append_2(argc, 0, 24);
1989
+ rb_append_ber(2, argv, self);
1990
+ argv[1] = argv[0];
1991
+ return rb_append_int24_be(argc-1, argv+1, self);
1992
+ }
1993
+
1994
+ static VALUE
1995
+ rb_append_ber_int32_le(int argc, VALUE *argv, VALUE self)
1996
+ {
1997
+ check_argc_append_2(argc, 0, 32);
1998
+ rb_append_ber(2, argv, self);
1999
+ argv[1] = argv[0];
2000
+ return rb_append_int32_le(argc-1, argv+1, self);
2001
+ }
2002
+
2003
+ static VALUE
2004
+ rb_append_ber_int32_be(int argc, VALUE *argv, VALUE self)
2005
+ {
2006
+ check_argc_append_2(argc, 0, 32);
2007
+ rb_append_ber(2, argv, self);
2008
+ argv[1] = argv[0];
2009
+ return rb_append_int32_be(argc-1, argv+1, self);
2010
+ }
2011
+
2012
+
2013
+ /** APPEND COMPLEX END **/
1721
2014
 
1722
2015
  void
1723
2016
  Init_native_bin_utils()
@@ -1791,138 +2084,103 @@ Init_native_bin_utils()
1791
2084
  rb_define_method(mod_native, "slice_int64_be!", rb_slice_int64_be, 1);
1792
2085
  rb_define_method(mod_native, "slice_sint64_be!", rb_slice_sint64_be, 1);
1793
2086
 
1794
- rb_define_method(mod_native, "append_ber!", rb_append_ber, 2);
1795
- rb_define_method(mod_native, "append_int8!", rb_append_int8, 2);
1796
- rb_define_method(mod_native, "append_sint8!", rb_append_int8, 2);
1797
- rb_define_method(mod_native, "append_int16_le!", rb_append_int16_le, 2);
1798
- rb_define_method(mod_native, "append_sint16_le!", rb_append_int16_le, 2);
1799
- rb_define_method(mod_native, "append_int16_be!", rb_append_int16_be, 2);
1800
- rb_define_method(mod_native, "append_sint16_be!", rb_append_int16_be, 2);
1801
- rb_define_method(mod_native, "append_int24_le!", rb_append_int24_le, 2);
1802
- rb_define_method(mod_native, "append_sint24_le!", rb_append_int24_le, 2);
1803
- rb_define_method(mod_native, "append_int24_be!", rb_append_int24_be, 2);
1804
- rb_define_method(mod_native, "append_sint24_be!", rb_append_int24_be, 2);
1805
- rb_define_method(mod_native, "append_int32_le!", rb_append_int32_le, 2);
1806
- rb_define_method(mod_native, "append_sint32_le!", rb_append_int32_le, 2);
1807
- rb_define_method(mod_native, "append_int32_be!", rb_append_int32_be, 2);
1808
- rb_define_method(mod_native, "append_sint32_be!", rb_append_int32_be, 2);
1809
- rb_define_method(mod_native, "append_int40_le!", rb_append_int40_le, 2);
1810
- rb_define_method(mod_native, "append_sint40_le!", rb_append_int40_le, 2);
1811
- rb_define_method(mod_native, "append_int40_be!", rb_append_int40_be, 2);
1812
- rb_define_method(mod_native, "append_sint40_be!", rb_append_int40_be, 2);
1813
- rb_define_method(mod_native, "append_int48_le!", rb_append_int48_le, 2);
1814
- rb_define_method(mod_native, "append_sint48_le!", rb_append_int48_le, 2);
1815
- rb_define_method(mod_native, "append_int48_be!", rb_append_int48_be, 2);
1816
- rb_define_method(mod_native, "append_sint48_be!", rb_append_int48_be, 2);
1817
- rb_define_method(mod_native, "append_int56_le!", rb_append_int56_le, 2);
1818
- rb_define_method(mod_native, "append_sint56_le!", rb_append_int56_le, 2);
1819
- rb_define_method(mod_native, "append_int56_be!", rb_append_int56_be, 2);
1820
- rb_define_method(mod_native, "append_sint56_be!", rb_append_int56_be, 2);
1821
- rb_define_method(mod_native, "append_int64_le!", rb_append_int64_le, 2);
1822
- rb_define_method(mod_native, "append_sint64_le!", rb_append_int64_le, 2);
1823
- rb_define_method(mod_native, "append_int64_be!", rb_append_int64_be, 2);
1824
- rb_define_method(mod_native, "append_sint64_be!", rb_append_int64_be, 2);
1825
-
1826
- rb_define_method(mod_native, "append_bersize_ber!", rb_append_bersize_ber, 2);
1827
- rb_define_method(mod_native, "append_bersize_int8!", rb_append_bersize_int8, 2);
1828
- rb_define_method(mod_native, "append_bersize_sint8!", rb_append_bersize_int8, 2);
1829
- rb_define_method(mod_native, "append_bersize_int16_le!", rb_append_bersize_int16_le, 2);
1830
- rb_define_method(mod_native, "append_bersize_sint16_le!", rb_append_bersize_int16_le, 2);
1831
- rb_define_method(mod_native, "append_bersize_int16_be!", rb_append_bersize_int16_be, 2);
1832
- rb_define_method(mod_native, "append_bersize_sint16_be!", rb_append_bersize_int16_be, 2);
1833
- rb_define_method(mod_native, "append_bersize_int24_le!", rb_append_bersize_int24_le, 2);
1834
- rb_define_method(mod_native, "append_bersize_sint24_le!", rb_append_bersize_int24_le, 2);
1835
- rb_define_method(mod_native, "append_bersize_int24_be!", rb_append_bersize_int24_be, 2);
1836
- rb_define_method(mod_native, "append_bersize_sint24_be!", rb_append_bersize_int24_be, 2);
1837
- rb_define_method(mod_native, "append_bersize_int32_le!", rb_append_bersize_int32_le, 2);
1838
- rb_define_method(mod_native, "append_bersize_sint32_le!", rb_append_bersize_int32_le, 2);
1839
- rb_define_method(mod_native, "append_bersize_int32_be!", rb_append_bersize_int32_be, 2);
1840
- rb_define_method(mod_native, "append_bersize_sint32_be!", rb_append_bersize_int32_be, 2);
1841
- rb_define_method(mod_native, "append_bersize_int40_le!", rb_append_bersize_int40_le, 2);
1842
- rb_define_method(mod_native, "append_bersize_sint40_le!", rb_append_bersize_int40_le, 2);
1843
- rb_define_method(mod_native, "append_bersize_int40_be!", rb_append_bersize_int40_be, 2);
1844
- rb_define_method(mod_native, "append_bersize_sint40_be!", rb_append_bersize_int40_be, 2);
1845
- rb_define_method(mod_native, "append_bersize_int48_le!", rb_append_bersize_int48_le, 2);
1846
- rb_define_method(mod_native, "append_bersize_sint48_le!", rb_append_bersize_int48_le, 2);
1847
- rb_define_method(mod_native, "append_bersize_int48_be!", rb_append_bersize_int48_be, 2);
1848
- rb_define_method(mod_native, "append_bersize_sint48_be!", rb_append_bersize_int48_be, 2);
1849
- rb_define_method(mod_native, "append_bersize_int56_le!", rb_append_bersize_int56_le, 2);
1850
- rb_define_method(mod_native, "append_bersize_sint56_le!", rb_append_bersize_int56_le, 2);
1851
- rb_define_method(mod_native, "append_bersize_int56_be!", rb_append_bersize_int56_be, 2);
1852
- rb_define_method(mod_native, "append_bersize_sint56_be!", rb_append_bersize_int56_be, 2);
1853
- rb_define_method(mod_native, "append_bersize_int64_le!", rb_append_bersize_int64_le, 2);
1854
- rb_define_method(mod_native, "append_bersize_sint64_le!", rb_append_bersize_int64_le, 2);
1855
- rb_define_method(mod_native, "append_bersize_int64_be!", rb_append_bersize_int64_be, 2);
1856
- rb_define_method(mod_native, "append_bersize_sint64_be!", rb_append_bersize_int64_be, 2);
1857
-
1858
- rb_define_method(mod_native, "append_int32lesize_ber!", rb_append_int32lesize_ber, 2);
1859
- rb_define_method(mod_native, "append_int32lesize_int8!", rb_append_int32lesize_int8, 2);
1860
- rb_define_method(mod_native, "append_int32lesize_sint8!", rb_append_int32lesize_int8, 2);
1861
- rb_define_method(mod_native, "append_int32lesize_int16_le!", rb_append_int32lesize_int16_le, 2);
1862
- rb_define_method(mod_native, "append_int32lesize_sint16_le!", rb_append_int32lesize_int16_le, 2);
1863
- rb_define_method(mod_native, "append_int32lesize_int16_be!", rb_append_int32lesize_int16_be, 2);
1864
- rb_define_method(mod_native, "append_int32lesize_sint16_be!", rb_append_int32lesize_int16_be, 2);
1865
- rb_define_method(mod_native, "append_int32lesize_int24_le!", rb_append_int32lesize_int24_le, 2);
1866
- rb_define_method(mod_native, "append_int32lesize_sint24_le!", rb_append_int32lesize_int24_le, 2);
1867
- rb_define_method(mod_native, "append_int32lesize_int24_be!", rb_append_int32lesize_int24_be, 2);
1868
- rb_define_method(mod_native, "append_int32lesize_sint24_be!", rb_append_int32lesize_int24_be, 2);
1869
- rb_define_method(mod_native, "append_int32lesize_int32_le!", rb_append_int32lesize_int32_le, 2);
1870
- rb_define_method(mod_native, "append_int32lesize_sint32_le!", rb_append_int32lesize_int32_le, 2);
1871
- rb_define_method(mod_native, "append_int32lesize_int32_be!", rb_append_int32lesize_int32_be, 2);
1872
- rb_define_method(mod_native, "append_int32lesize_sint32_be!", rb_append_int32lesize_int32_be, 2);
1873
- rb_define_method(mod_native, "append_int32lesize_int40_le!", rb_append_int32lesize_int40_le, 2);
1874
- rb_define_method(mod_native, "append_int32lesize_sint40_le!", rb_append_int32lesize_int40_le, 2);
1875
- rb_define_method(mod_native, "append_int32lesize_int40_be!", rb_append_int32lesize_int40_be, 2);
1876
- rb_define_method(mod_native, "append_int32lesize_sint40_be!", rb_append_int32lesize_int40_be, 2);
1877
- rb_define_method(mod_native, "append_int32lesize_int48_le!", rb_append_int32lesize_int48_le, 2);
1878
- rb_define_method(mod_native, "append_int32lesize_sint48_le!", rb_append_int32lesize_int48_le, 2);
1879
- rb_define_method(mod_native, "append_int32lesize_int48_be!", rb_append_int32lesize_int48_be, 2);
1880
- rb_define_method(mod_native, "append_int32lesize_sint48_be!", rb_append_int32lesize_int48_be, 2);
1881
- rb_define_method(mod_native, "append_int32lesize_int56_le!", rb_append_int32lesize_int56_le, 2);
1882
- rb_define_method(mod_native, "append_int32lesize_sint56_le!", rb_append_int32lesize_int56_le, 2);
1883
- rb_define_method(mod_native, "append_int32lesize_int56_be!", rb_append_int32lesize_int56_be, 2);
1884
- rb_define_method(mod_native, "append_int32lesize_sint56_be!", rb_append_int32lesize_int56_be, 2);
1885
- rb_define_method(mod_native, "append_int32lesize_int64_le!", rb_append_int32lesize_int64_le, 2);
1886
- rb_define_method(mod_native, "append_int32lesize_sint64_le!", rb_append_int32lesize_int64_le, 2);
1887
- rb_define_method(mod_native, "append_int32lesize_int64_be!", rb_append_int32lesize_int64_be, 2);
1888
- rb_define_method(mod_native, "append_int32lesize_sint64_be!", rb_append_int32lesize_int64_be, 2);
1889
-
1890
- rb_define_method(mod_native, "append_int32besize_ber!", rb_append_int32besize_ber, 2);
1891
- rb_define_method(mod_native, "append_int32besize_int8!", rb_append_int32besize_int8, 2);
1892
- rb_define_method(mod_native, "append_int32besize_sint8!", rb_append_int32besize_int8, 2);
1893
- rb_define_method(mod_native, "append_int32besize_int16_le!", rb_append_int32besize_int16_le, 2);
1894
- rb_define_method(mod_native, "append_int32besize_sint16_le!", rb_append_int32besize_int16_le, 2);
1895
- rb_define_method(mod_native, "append_int32besize_int16_be!", rb_append_int32besize_int16_be, 2);
1896
- rb_define_method(mod_native, "append_int32besize_sint16_be!", rb_append_int32besize_int16_be, 2);
1897
- rb_define_method(mod_native, "append_int32besize_int24_le!", rb_append_int32besize_int24_le, 2);
1898
- rb_define_method(mod_native, "append_int32besize_sint24_le!", rb_append_int32besize_int24_le, 2);
1899
- rb_define_method(mod_native, "append_int32besize_int24_be!", rb_append_int32besize_int24_be, 2);
1900
- rb_define_method(mod_native, "append_int32besize_sint24_be!", rb_append_int32besize_int24_be, 2);
1901
- rb_define_method(mod_native, "append_int32besize_int32_le!", rb_append_int32besize_int32_le, 2);
1902
- rb_define_method(mod_native, "append_int32besize_sint32_le!", rb_append_int32besize_int32_le, 2);
1903
- rb_define_method(mod_native, "append_int32besize_int32_be!", rb_append_int32besize_int32_be, 2);
1904
- rb_define_method(mod_native, "append_int32besize_sint32_be!", rb_append_int32besize_int32_be, 2);
1905
- rb_define_method(mod_native, "append_int32besize_int40_le!", rb_append_int32besize_int40_le, 2);
1906
- rb_define_method(mod_native, "append_int32besize_sint40_le!", rb_append_int32besize_int40_le, 2);
1907
- rb_define_method(mod_native, "append_int32besize_int40_be!", rb_append_int32besize_int40_be, 2);
1908
- rb_define_method(mod_native, "append_int32besize_sint40_be!", rb_append_int32besize_int40_be, 2);
1909
- rb_define_method(mod_native, "append_int32besize_int48_le!", rb_append_int32besize_int48_le, 2);
1910
- rb_define_method(mod_native, "append_int32besize_sint48_le!", rb_append_int32besize_int48_le, 2);
1911
- rb_define_method(mod_native, "append_int32besize_int48_be!", rb_append_int32besize_int48_be, 2);
1912
- rb_define_method(mod_native, "append_int32besize_sint48_be!", rb_append_int32besize_int48_be, 2);
1913
- rb_define_method(mod_native, "append_int32besize_int56_le!", rb_append_int32besize_int56_le, 2);
1914
- rb_define_method(mod_native, "append_int32besize_sint56_le!", rb_append_int32besize_int56_le, 2);
1915
- rb_define_method(mod_native, "append_int32besize_int56_be!", rb_append_int32besize_int56_be, 2);
1916
- rb_define_method(mod_native, "append_int32besize_sint56_be!", rb_append_int32besize_int56_be, 2);
1917
- rb_define_method(mod_native, "append_int32besize_int64_le!", rb_append_int32besize_int64_le, 2);
1918
- rb_define_method(mod_native, "append_int32besize_sint64_le!", rb_append_int32besize_int64_le, 2);
1919
- rb_define_method(mod_native, "append_int32besize_int64_be!", rb_append_int32besize_int64_be, 2);
1920
- rb_define_method(mod_native, "append_int32besize_sint64_be!", rb_append_int32besize_int64_be, 2);
2087
+ rb_define_method(mod_native, "append_ber!", rb_append_ber, -1);
2088
+ rb_define_method(mod_native, "append_int8!", rb_append_int8, -1);
2089
+ rb_define_method(mod_native, "append_int16_le!", rb_append_int16_le, -1);
2090
+ rb_define_method(mod_native, "append_int16_be!", rb_append_int16_be, -1);
2091
+ rb_define_method(mod_native, "append_int24_le!", rb_append_int24_le, -1);
2092
+ rb_define_method(mod_native, "append_int24_be!", rb_append_int24_be, -1);
2093
+ rb_define_method(mod_native, "append_int32_le!", rb_append_int32_le, -1);
2094
+ rb_define_method(mod_native, "append_int32_be!", rb_append_int32_be, -1);
2095
+ rb_define_method(mod_native, "append_int40_le!", rb_append_int40_le, -1);
2096
+ rb_define_method(mod_native, "append_int40_be!", rb_append_int40_be, -1);
2097
+ rb_define_method(mod_native, "append_int48_le!", rb_append_int48_le, -1);
2098
+ rb_define_method(mod_native, "append_int48_be!", rb_append_int48_be, -1);
2099
+ rb_define_method(mod_native, "append_int56_le!", rb_append_int56_le, -1);
2100
+ rb_define_method(mod_native, "append_int56_be!", rb_append_int56_be, -1);
2101
+ rb_define_method(mod_native, "append_int64_le!", rb_append_int64_le, -1);
2102
+ rb_define_method(mod_native, "append_int64_be!", rb_append_int64_be, -1);
2103
+
2104
+ rb_define_method(mod_native, "append_bersize_ber!", rb_append_bersize_ber, -1);
2105
+ rb_define_method(mod_native, "append_bersize_int8!", rb_append_bersize_int8, -1);
2106
+ rb_define_method(mod_native, "append_bersize_int16_le!", rb_append_bersize_int16_le, -1);
2107
+ rb_define_method(mod_native, "append_bersize_int16_be!", rb_append_bersize_int16_be, -1);
2108
+ rb_define_method(mod_native, "append_bersize_int24_le!", rb_append_bersize_int24_le, -1);
2109
+ rb_define_method(mod_native, "append_bersize_int24_be!", rb_append_bersize_int24_be, -1);
2110
+ rb_define_method(mod_native, "append_bersize_int32_le!", rb_append_bersize_int32_le, -1);
2111
+ rb_define_method(mod_native, "append_bersize_int32_be!", rb_append_bersize_int32_be, -1);
2112
+ rb_define_method(mod_native, "append_bersize_int40_le!", rb_append_bersize_int40_le, -1);
2113
+ rb_define_method(mod_native, "append_bersize_int40_be!", rb_append_bersize_int40_be, -1);
2114
+ rb_define_method(mod_native, "append_bersize_int48_le!", rb_append_bersize_int48_le, -1);
2115
+ rb_define_method(mod_native, "append_bersize_int48_be!", rb_append_bersize_int48_be, -1);
2116
+ rb_define_method(mod_native, "append_bersize_int56_le!", rb_append_bersize_int56_le, -1);
2117
+ rb_define_method(mod_native, "append_bersize_int56_be!", rb_append_bersize_int56_be, -1);
2118
+ rb_define_method(mod_native, "append_bersize_int64_le!", rb_append_bersize_int64_le, -1);
2119
+ rb_define_method(mod_native, "append_bersize_int64_be!", rb_append_bersize_int64_be, -1);
2120
+
2121
+ rb_define_method(mod_native, "append_int32size_ber_le!", rb_append_int32size_ber_le, -1);
2122
+ rb_define_method(mod_native, "append_int32size_int8_le!", rb_append_int32size_int8_le, -1);
2123
+ rb_define_method(mod_native, "append_int32size_int16_le!", rb_append_int32size_int16_le, -1);
2124
+ rb_define_method(mod_native, "append_int32size_int24_le!", rb_append_int32size_int24_le, -1);
2125
+ rb_define_method(mod_native, "append_int32size_int32_le!", rb_append_int32size_int32_le, -1);
2126
+ rb_define_method(mod_native, "append_int32size_int40_le!", rb_append_int32size_int40_le, -1);
2127
+ rb_define_method(mod_native, "append_int32size_int48_le!", rb_append_int32size_int48_le, -1);
2128
+ rb_define_method(mod_native, "append_int32size_int56_le!", rb_append_int32size_int56_le, -1);
2129
+ rb_define_method(mod_native, "append_int32size_int64_le!", rb_append_int32size_int64_le, -1);
2130
+
2131
+ rb_define_method(mod_native, "append_int32size_ber_be!", rb_append_int32size_ber_be, -1);
2132
+ rb_define_method(mod_native, "append_int32size_int8_be!", rb_append_int32size_int8_be, -1);
2133
+ rb_define_method(mod_native, "append_int32size_int16_be!", rb_append_int32size_int16_be, -1);
2134
+ rb_define_method(mod_native, "append_int32size_int24_be!", rb_append_int32size_int24_be, -1);
2135
+ rb_define_method(mod_native, "append_int32size_int32_be!", rb_append_int32size_int32_be, -1);
2136
+ rb_define_method(mod_native, "append_int32size_int40_be!", rb_append_int32size_int40_be, -1);
2137
+ rb_define_method(mod_native, "append_int32size_int48_be!", rb_append_int32size_int48_be, -1);
2138
+ rb_define_method(mod_native, "append_int32size_int56_be!", rb_append_int32size_int56_be, -1);
2139
+ rb_define_method(mod_native, "append_int32size_int64_be!", rb_append_int32size_int64_be, -1);
1921
2140
 
1922
2141
  rb_define_method(mod_native, "append_string!", rb_append_string, 2);
1923
2142
  rb_define_method(mod_native, "append_bersize_string!", rb_append_bersize_string, 2);
1924
- rb_define_method(mod_native, "append_int32lesize_string!", rb_append_int32lesize_string, 2);
1925
- rb_define_method(mod_native, "append_int32besize_string!", rb_append_int32besize_string, 2);
2143
+ rb_define_method(mod_native, "append_int32size_string_le!", rb_append_int32size_string_le, 2);
2144
+ rb_define_method(mod_native, "append_int32size_string_be!", rb_append_int32size_string_be, 2);
2145
+
2146
+ rb_define_method(mod_native, "append_int8_ber!", rb_append_int8_ber, -1);
2147
+ rb_define_method(mod_native, "append_ber_int8!", rb_append_ber_int8, -1);
2148
+ rb_define_method(mod_native, "append_int8_int16_le!", rb_append_int8_int16_le, -1);
2149
+ rb_define_method(mod_native, "append_int8_int24_le!", rb_append_int8_int24_le, -1);
2150
+ rb_define_method(mod_native, "append_int8_int32_le!", rb_append_int8_int32_le, -1);
2151
+ rb_define_method(mod_native, "append_int8_int16_be!", rb_append_int8_int16_be, -1);
2152
+ rb_define_method(mod_native, "append_int8_int24_be!", rb_append_int8_int24_be, -1);
2153
+ rb_define_method(mod_native, "append_int8_int32_be!", rb_append_int8_int32_be, -1);
2154
+ rb_define_method(mod_native, "append_int16_int8_le!", rb_append_int16_int8_le, -1);
2155
+ rb_define_method(mod_native, "append_int16_int24_le!", rb_append_int16_int24_le, -1);
2156
+ rb_define_method(mod_native, "append_int16_int32_le!", rb_append_int16_int32_le, -1);
2157
+ rb_define_method(mod_native, "append_int16_int8_be!", rb_append_int16_int8_be, -1);
2158
+ rb_define_method(mod_native, "append_int16_int24_be!", rb_append_int16_int24_be, -1);
2159
+ rb_define_method(mod_native, "append_int16_int32_be!", rb_append_int16_int32_be, -1);
2160
+ rb_define_method(mod_native, "append_int24_int16_le!", rb_append_int24_int16_le, -1);
2161
+ rb_define_method(mod_native, "append_int24_int8_le!", rb_append_int24_int8_le, -1);
2162
+ rb_define_method(mod_native, "append_int24_int32_le!", rb_append_int24_int32_le, -1);
2163
+ rb_define_method(mod_native, "append_int24_int16_be!", rb_append_int24_int16_be, -1);
2164
+ rb_define_method(mod_native, "append_int24_int8_be!", rb_append_int24_int8_be, -1);
2165
+ rb_define_method(mod_native, "append_int24_int32_be!", rb_append_int24_int32_be, -1);
2166
+ rb_define_method(mod_native, "append_int32_int16_le!", rb_append_int32_int16_le, -1);
2167
+ rb_define_method(mod_native, "append_int32_int24_le!", rb_append_int32_int24_le, -1);
2168
+ rb_define_method(mod_native, "append_int32_int8_le!", rb_append_int32_int8_le, -1);
2169
+ rb_define_method(mod_native, "append_int32_int16_be!", rb_append_int32_int16_be, -1);
2170
+ rb_define_method(mod_native, "append_int32_int24_be!", rb_append_int32_int24_be, -1);
2171
+ rb_define_method(mod_native, "append_int32_int8_be!", rb_append_int32_int8_be, -1);
2172
+ rb_define_method(mod_native, "append_ber_int16_le!", rb_append_ber_int16_le, -1);
2173
+ rb_define_method(mod_native, "append_ber_int24_le!", rb_append_ber_int24_le, -1);
2174
+ rb_define_method(mod_native, "append_ber_int32_le!", rb_append_ber_int32_le, -1);
2175
+ rb_define_method(mod_native, "append_ber_int16_be!", rb_append_ber_int16_be, -1);
2176
+ rb_define_method(mod_native, "append_ber_int24_be!", rb_append_ber_int24_be, -1);
2177
+ rb_define_method(mod_native, "append_ber_int32_be!", rb_append_ber_int32_be, -1);
2178
+ rb_define_method(mod_native, "append_int16_ber_le!", rb_append_int16_ber_le, -1);
2179
+ rb_define_method(mod_native, "append_int24_ber_le!", rb_append_int24_ber_le, -1);
2180
+ rb_define_method(mod_native, "append_int32_ber_le!", rb_append_int32_ber_le, -1);
2181
+ rb_define_method(mod_native, "append_int16_ber_be!", rb_append_int16_ber_be, -1);
2182
+ rb_define_method(mod_native, "append_int24_ber_be!", rb_append_int24_ber_be, -1);
2183
+ rb_define_method(mod_native, "append_int32_ber_be!", rb_append_int32_ber_be, -1);
1926
2184
 
1927
2185
  rb_extend_object(mod_native, mod_native);
1928
2186
  }