Net-CUPS-0.61/0000755001127700037230000000000011242661243011353 5ustar dhagemanNet-CUPS-0.61/META.yml0000644001127700037230000000070011242661040012614 0ustar dhageman--- #YAML:1.0 name: Net-CUPS version: 0.61 abstract: Common Unix Printing System Interface license: perl author: - D. Hageman generated_by: ExtUtils::MakeMaker version 6.42 distribution_type: module requires: Test::More: 0 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.3.html version: 1.3 Net-CUPS-0.61/typemap0000644001127700037230000000031711010464324012750 0ustar dhagemanTYPEMAP Net::CUPS::Destination cups_dest_t* cups_dest_t * T_PTRREF ppd_file_t * T_PTRREF http_t * T_PTRREF ipp_t * T_PTRREF ipp_op_t T_IV size_t * T_IV ipp_tag_e T_IV ipp_tag_t T_IV const char * T_PV Net-CUPS-0.61/t/0000755001127700037230000000000011242661040011611 5ustar dhagemanNet-CUPS-0.61/t/01_use.t0000644001127700037230000000105311010464324013070 0ustar dhageman# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl Net-CUPS.t' ######################### # change 'tests => 2' to 'tests => last_test_to_print'; use Test::More tests => 4; BEGIN { use_ok('Net::CUPS') }; ######################### # Insert your test code below, the Test::More module is use()ed here so read # its man page ( perldoc Test::More ) for help writing this test script. use_ok('Net::CUPS::Destination'); use_ok('Net::CUPS::PPD'); use_ok('Net::CUPS::IPP'); Net-CUPS-0.61/t/02_cups.t0000644001127700037230000000166611010464324013261 0ustar dhageman# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl Net-CUPS.t' ######################### # change 'tests => 2' to 'tests => last_test_to_print'; use Test::More tests => 8; BEGIN { use_ok('Net::CUPS') }; ######################### # Insert your test code below, the Test::More module is use()ed here so read # its man page ( perldoc Test::More ) for help writing this test script. my $cups = Net::CUPS->new(); ok( $cups ); my $server_name = $cups->getServer(); ok( $server_name ); $cups->setServer( "test.cups.org" ); ok( $cups->getServer() eq "test.cups.org" ); $cups->setServer( $server_name ); ok( $cups->getServer() eq $server_name ); my $username = $cups->getUsername(); ok( $username ); $cups->setUsername( "cupstestuser" ); ok( $cups->getUsername() eq "cupstestuser" ); $cups->setUsername( $username ); ok( $cups->getUsername() eq $username ); Net-CUPS-0.61/const-c.inc0000644001127700037230000041642611242661241013427 0ustar dhageman#define PERL_constant_NOTFOUND 1 #define PERL_constant_NOTDEF 2 #define PERL_constant_ISIV 3 #define PERL_constant_ISNO 4 #define PERL_constant_ISNV 5 #define PERL_constant_ISPV 6 #define PERL_constant_ISPVN 7 #define PERL_constant_ISSV 8 #define PERL_constant_ISUNDEF 9 #define PERL_constant_ISUV 10 #define PERL_constant_ISYES 11 #ifndef NVTYPE typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */ #endif #ifndef aTHX_ #define aTHX_ /* 5.6 or later define this for threading support. */ #endif #ifndef pTHX_ #define pTHX_ /* 5.6 or later define this for threading support. */ #endif static int constant_8 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. AF_LOCAL HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_GET HTTP_PUT IPP_DATA IPP_GONE IPP_IDLE IPP_PORT PPD_CS_N */ /* Offset 5 gives the best switch position. */ switch (name[5]) { case '0': if (memEQ(name, "HTTP_0_9", 8)) { /* ^ */ *iv_return = HTTP_0_9; return PERL_constant_ISIV; } break; case '1': if (memEQ(name, "HTTP_1_0", 8)) { /* ^ */ *iv_return = HTTP_1_0; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_1_1", 8)) { /* ^ */ *iv_return = HTTP_1_1; return PERL_constant_ISIV; } break; case 'A': if (memEQ(name, "IPP_DATA", 8)) { /* ^ */ *iv_return = IPP_DATA; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "AF_LOCAL", 8)) { /* ^ */ *iv_return = AF_LOCAL; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_IDLE", 8)) { /* ^ */ *iv_return = IPP_IDLE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "HTTP_GET", 8)) { /* ^ */ *iv_return = HTTP_GET; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "IPP_GONE", 8)) { /* ^ */ *iv_return = IPP_GONE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PORT", 8)) { /* ^ */ *iv_return = IPP_PORT; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "HTTP_PUT", 8)) { /* ^ */ *iv_return = HTTP_PUT; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "PPD_CS_N", 8)) { /* ^ */ *iv_return = PPD_CS_N; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_9 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_UTF8 HTTP_GONE HTTP_HEAD HTTP_POST IPP_ERROR */ /* Offset 5 gives the best switch position. */ switch (name[5]) { case 'G': if (memEQ(name, "HTTP_GONE", 9)) { /* ^ */ *iv_return = HTTP_GONE; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "HTTP_HEAD", 9)) { /* ^ */ *iv_return = HTTP_HEAD; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "HTTP_POST", 9)) { /* ^ */ *iv_return = HTTP_POST; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_ERROR", 9)) { /* ^ */ *iv_return = IPP_ERROR; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "CUPS_UTF8", 9)) { /* ^ */ *iv_return = CUPS_UTF8; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_10 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_CLOSE HTTP_ERROR HTTP_TRACE IPP_HEADER PPD_CS_CMY PPD_CS_RGB */ /* Offset 8 gives the best switch position. */ switch (name[8]) { case 'C': if (memEQ(name, "HTTP_TRACE", 10)) { /* ^ */ *iv_return = HTTP_TRACE; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_HEADER", 10)) { /* ^ */ *iv_return = IPP_HEADER; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "PPD_CS_RGB", 10)) { /* ^ */ *iv_return = PPD_CS_RGB; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "PPD_CS_CMY", 10)) { /* ^ */ *iv_return = PPD_CS_CMY; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "HTTP_ERROR", 10)) { /* ^ */ *iv_return = HTTP_ERROR; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "HTTP_CLOSE", 10)) { /* ^ */ *iv_return = HTTP_CLOSE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_11 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_KOI8_R CUPS_KOI8_U HTTP_DELETE HTTP_STATUS HTTP_URI_OK IPP_CHARSET IPP_PRIVATE IPP_TAG_END IPP_TAG_JOB IPP_TAG_URI IPP_TIMEOUT PPD_CS_CMYK PPD_CS_GRAY PPD_CS_RGBK PPD_VERSION */ /* Offset 10 gives the best switch position. */ switch (name[10]) { case 'B': if (memEQ(name, "IPP_TAG_JO", 10)) { /* B */ *iv_return = IPP_TAG_JOB; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_TAG_EN", 10)) { /* D */ *iv_return = IPP_TAG_END; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_DELET", 10)) { /* E */ *iv_return = HTTP_DELETE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PRIVAT", 10)) { /* E */ *iv_return = IPP_PRIVATE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_TAG_UR", 10)) { /* I */ *iv_return = IPP_TAG_URI; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "HTTP_URI_O", 10)) { /* K */ *iv_return = HTTP_URI_OK; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CS_CMY", 10)) { /* K */ *iv_return = PPD_CS_CMYK; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CS_RGB", 10)) { /* K */ *iv_return = PPD_CS_RGBK; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "CUPS_EUC_C", 10)) { /* N */ *iv_return = CUPS_EUC_CN; return PERL_constant_ISIV; } if (memEQ(name, "PPD_VERSIO", 10)) { /* N */ *iv_return = PPD_VERSION; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_EUC_J", 10)) { /* P */ *iv_return = CUPS_EUC_JP; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "CUPS_EUC_K", 10)) { /* R */ *iv_return = CUPS_EUC_KR; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_KOI8_", 10)) { /* R */ *iv_return = CUPS_KOI8_R; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "HTTP_STATU", 10)) { /* S */ *iv_return = HTTP_STATUS; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_CHARSE", 10)) { /* T */ *iv_return = IPP_CHARSET; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TIMEOU", 10)) { /* T */ *iv_return = IPP_TIMEOUT; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "CUPS_KOI8_", 10)) { /* U */ *iv_return = CUPS_KOI8_U; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "CUPS_EUC_T", 10)) { /* W */ *iv_return = CUPS_EUC_TW; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "PPD_CS_GRA", 10)) { /* Y */ *iv_return = PPD_CS_GRAY; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_12 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_VERSION HTTP_CREATED HTTP_MAX_URI HTTP_OPTIONS HTTP_WAITING IPP_CONFLICT IPP_GET_JOBS IPP_HOLD_JOB IPP_JOB_HELD IPP_MAX_NAME IPP_OK_SUBST IPP_PORTRAIT IPP_SEND_URI IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_ENUM IPP_TAG_MASK IPP_TAG_NAME IPP_TAG_TEXT IPP_TAG_ZERO PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT */ /* Offset 8 gives the best switch position. */ switch (name[8]) { case 'A': if (memEQ(name, "HTTP_CREATED", 12)) { /* ^ */ *iv_return = HTTP_CREATED; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "IPP_TAG_COPY", 12)) { /* ^ */ *iv_return = IPP_TAG_COPY; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_TAG_DATE", 12)) { /* ^ */ *iv_return = IPP_TAG_DATE; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_TAG_ENUM", 12)) { /* ^ */ *iv_return = IPP_TAG_ENUM; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "IPP_JOB_HELD", 12)) { /* ^ */ *iv_return = IPP_JOB_HELD; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "HTTP_OPTIONS", 12)) { /* ^ */ *iv_return = HTTP_OPTIONS; return PERL_constant_ISIV; } break; case 'J': if (memEQ(name, "IPP_GET_JOBS", 12)) { /* ^ */ *iv_return = IPP_GET_JOBS; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_CONFLICT", 12)) { /* ^ */ *iv_return = IPP_CONFLICT; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MAX_LINE", 12)) { /* ^ */ *iv_return = PPD_MAX_LINE; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "IPP_TAG_MASK", 12)) { /* ^ */ *iv_return = IPP_TAG_MASK; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "IPP_MAX_NAME", 12)) { /* ^ */ *iv_return = IPP_MAX_NAME; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_NAME", 12)) { /* ^ */ *iv_return = IPP_TAG_NAME; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MAX_NAME", 12)) { /* ^ */ *iv_return = PPD_MAX_NAME; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_PORTRAIT", 12)) { /* ^ */ *iv_return = IPP_PORTRAIT; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_VERSION", 12)) { /* ^ */ *iv_return = CUPS_VERSION; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_WAITING", 12)) { /* ^ */ *iv_return = HTTP_WAITING; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_TEXT", 12)) { /* ^ */ *iv_return = IPP_TAG_TEXT; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MAX_TEXT", 12)) { /* ^ */ *iv_return = PPD_MAX_TEXT; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_OK_SUBST", 12)) { /* ^ */ *iv_return = IPP_OK_SUBST; return PERL_constant_ISIV; } break; case 'Z': if (memEQ(name, "IPP_TAG_ZERO", 12)) { /* ^ */ *iv_return = IPP_TAG_ZERO; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "HTTP_MAX_URI", 12)) { /* ^ */ *iv_return = HTTP_MAX_URI; return PERL_constant_ISIV; } if (memEQ(name, "IPP_HOLD_JOB", 12)) { /* ^ */ *iv_return = IPP_HOLD_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SEND_URI", 12)) { /* ^ */ *iv_return = IPP_SEND_URI; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_13 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_DATE_ANY CUPS_GET_PPDS CUPS_MOVE_JOB CUPS_US_ASCII HTTP_ACCEPTED HTTP_AUTH_MD5 HTTP_CONFLICT HTTP_CONTINUE HTTP_GET_SEND HTTP_MAX_HOST HTTP_PUT_RECV IPP_ATTRIBUTE IPP_FORBIDDEN IPP_LANDSCAPE IPP_NOT_FOUND IPP_PRINT_JOB IPP_PRINT_URI IPP_TAG_RANGE PPD_NULL_FILE PPD_ORDER_ANY PPD_ORDER_JCL */ /* Offset 6 gives the best switch position. */ switch (name[6]) { case 'A': if (memEQ(name, "CUPS_DATE_ANY", 13)) { /* ^ */ *iv_return = CUPS_DATE_ANY; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_MAX_HOST", 13)) { /* ^ */ *iv_return = HTTP_MAX_HOST; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "HTTP_ACCEPTED", 13)) { /* ^ */ *iv_return = HTTP_ACCEPTED; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "PPD_ORDER_ANY", 13)) { /* ^ */ *iv_return = PPD_ORDER_ANY; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_JCL", 13)) { /* ^ */ *iv_return = PPD_ORDER_JCL; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "CUPS_GET_PPDS", 13)) { /* ^ */ *iv_return = CUPS_GET_PPDS; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_GET_SEND", 13)) { /* ^ */ *iv_return = HTTP_GET_SEND; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "IPP_TAG_RANGE", 13)) { /* ^ */ *iv_return = IPP_TAG_RANGE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_PRINT_JOB", 13)) { /* ^ */ *iv_return = IPP_PRINT_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PRINT_URI", 13)) { /* ^ */ *iv_return = IPP_PRINT_URI; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "PPD_NULL_FILE", 13)) { /* ^ */ *iv_return = PPD_NULL_FILE; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "IPP_LANDSCAPE", 13)) { /* ^ */ *iv_return = IPP_LANDSCAPE; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "CUPS_MOVE_JOB", 13)) { /* ^ */ *iv_return = CUPS_MOVE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_CONFLICT", 13)) { /* ^ */ *iv_return = HTTP_CONFLICT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_CONTINUE", 13)) { /* ^ */ *iv_return = HTTP_CONTINUE; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_FORBIDDEN", 13)) { /* ^ */ *iv_return = IPP_FORBIDDEN; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_US_ASCII", 13)) { /* ^ */ *iv_return = CUPS_US_ASCII; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_ATTRIBUTE", 13)) { /* ^ */ *iv_return = IPP_ATTRIBUTE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_NOT_FOUND", 13)) { /* ^ */ *iv_return = IPP_NOT_FOUND; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_AUTH_MD5", 13)) { /* ^ */ *iv_return = HTTP_AUTH_MD5; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_PUT_RECV", 13)) { /* ^ */ *iv_return = HTTP_PUT_RECV; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_14 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ADD_CLASS CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_IMAGE_CMY CUPS_IMAGE_RGB CUPS_ISO8859_1 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_MAC_ROMAN HTTP_AUTH_NONE HTTP_FIELD_MAX HTTP_FORBIDDEN HTTP_MAX_VALUE HTTP_NOT_FOUND HTTP_POST_RECV HTTP_POST_SEND HTTP_SEE_OTHER HTTP_USE_PROXY IPP_ATTRIBUTES IPP_CANCEL_JOB IPP_CREATE_JOB IPP_MAX_VALUES IPP_PURGE_JOBS IPP_RESUME_JOB IPP_RES_PER_CM IPP_TAG_STRING IPP_URI_SCHEME PPD_CUSTOM_INT PPD_ORDER_EXIT PPD_ORDER_PAGE PPD_UI_BOOLEAN PPD_UI_PICKONE */ /* Offset 13 gives the best switch position. */ switch (name[13]) { case '1': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 1 */ *iv_return = CUPS_ISO8859_1; return PERL_constant_ISIV; } break; case '2': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 2 */ *iv_return = CUPS_ISO8859_2; return PERL_constant_ISIV; } break; case '3': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 3 */ *iv_return = CUPS_ISO8859_3; return PERL_constant_ISIV; } break; case '4': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 4 */ *iv_return = CUPS_ISO8859_4; return PERL_constant_ISIV; } break; case '5': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 5 */ *iv_return = CUPS_ISO8859_5; return PERL_constant_ISIV; } break; case '6': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 6 */ *iv_return = CUPS_ISO8859_6; return PERL_constant_ISIV; } break; case '7': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 7 */ *iv_return = CUPS_ISO8859_7; return PERL_constant_ISIV; } break; case '8': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 8 */ *iv_return = CUPS_ISO8859_8; return PERL_constant_ISIV; } break; case '9': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 9 */ *iv_return = CUPS_ISO8859_9; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "CUPS_IMAGE_RG", 13)) { /* B */ *iv_return = CUPS_IMAGE_RGB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_CANCEL_JO", 13)) { /* B */ *iv_return = IPP_CANCEL_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_CREATE_JO", 13)) { /* B */ *iv_return = IPP_CREATE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RESUME_JO", 13)) { /* B */ *iv_return = IPP_RESUME_JOB; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "HTTP_NOT_FOUN", 13)) { /* D */ *iv_return = HTTP_NOT_FOUND; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_POST_SEN", 13)) { /* D */ *iv_return = HTTP_POST_SEND; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "CUPS_FILE_NON", 13)) { /* E */ *iv_return = CUPS_FILE_NONE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_AUTH_NON", 13)) { /* E */ *iv_return = HTTP_AUTH_NONE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_MAX_VALU", 13)) { /* E */ *iv_return = HTTP_MAX_VALUE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_URI_SCHEM", 13)) { /* E */ *iv_return = IPP_URI_SCHEME; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_PAG", 13)) { /* E */ *iv_return = PPD_ORDER_PAGE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_UI_PICKON", 13)) { /* E */ *iv_return = PPD_UI_PICKONE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "IPP_TAG_STRIN", 13)) { /* G */ *iv_return = IPP_TAG_STRING; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "IPP_RES_PER_C", 13)) { /* M */ *iv_return = IPP_RES_PER_CM; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "CUPS_MAC_ROMA", 13)) { /* N */ *iv_return = CUPS_MAC_ROMAN; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_FORBIDDE", 13)) { /* N */ *iv_return = HTTP_FORBIDDEN; return PERL_constant_ISIV; } if (memEQ(name, "PPD_UI_BOOLEA", 13)) { /* N */ *iv_return = PPD_UI_BOOLEAN; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_FILE_GZI", 13)) { /* P */ *iv_return = CUPS_FILE_GZIP; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_SEE_OTHE", 13)) { /* R */ *iv_return = HTTP_SEE_OTHER; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_ADD_CLAS", 13)) { /* S */ *iv_return = CUPS_ADD_CLASS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_ATTRIBUTE", 13)) { /* S */ *iv_return = IPP_ATTRIBUTES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_MAX_VALUE", 13)) { /* S */ *iv_return = IPP_MAX_VALUES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PURGE_JOB", 13)) { /* S */ *iv_return = IPP_PURGE_JOBS; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "PPD_CUSTOM_IN", 13)) { /* T */ *iv_return = PPD_CUSTOM_INT; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_EXI", 13)) { /* T */ *iv_return = PPD_ORDER_EXIT; return PERL_constant_ISIV; } break; case 'V': if (memEQ(name, "HTTP_POST_REC", 13)) { /* V */ *iv_return = HTTP_POST_RECV; return PERL_constant_ISIV; } break; case 'X': if (memEQ(name, "HTTP_FIELD_MA", 13)) { /* X */ *iv_return = HTTP_FIELD_MAX; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "CUPS_IMAGE_CM", 13)) { /* Y */ *iv_return = CUPS_IMAGE_CMY; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_USE_PROX", 13)) { /* Y */ *iv_return = HTTP_USE_PROXY; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_15 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_IMAGE_CMYK CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_PRINTER_BW HTTP_AUTH_BASIC HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_LINK HTTP_MAX_BUFFER HTTP_NO_CONTENT IPP_BAD_REQUEST IPP_JOB_ABORTED IPP_JOB_PENDING IPP_JOB_STOPPED IPP_OK_CONFLICT IPP_PROMOTE_JOB IPP_RELEASE_JOB IPP_RESTART_JOB IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_DEFAULT IPP_TAG_INTEGER IPP_TAG_KEYWORD IPP_TAG_NOVALUE IPP_TAG_PRINTER IPP_TAG_UNKNOWN PPD_ALLOC_ERROR PPD_BAD_OPEN_UI PPD_CUSTOM_REAL PPD_UI_PICKMANY */ /* Offset 14 gives the best switch position. */ switch (name[14]) { case '0': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 0 */ *iv_return = CUPS_ISO8859_10; return PERL_constant_ISIV; } break; case '1': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 1 */ *iv_return = CUPS_ISO8859_11; return PERL_constant_ISIV; } break; case '3': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 3 */ *iv_return = CUPS_ISO8859_13; return PERL_constant_ISIV; } break; case '4': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 4 */ *iv_return = CUPS_ISO8859_14; return PERL_constant_ISIV; } break; case '5': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 5 */ *iv_return = CUPS_ISO8859_15; return PERL_constant_ISIV; } break; case '6': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 6 */ *iv_return = CUPS_ISO8859_16; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_PROMOTE_JO", 14)) { /* B */ *iv_return = IPP_PROMOTE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RELEASE_JO", 14)) { /* B */ *iv_return = IPP_RELEASE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RESTART_JO", 14)) { /* B */ *iv_return = IPP_RESTART_JOB; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "HTTP_AUTH_BASI", 14)) { /* C */ *iv_return = HTTP_AUTH_BASIC; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_JOB_ABORTE", 14)) { /* D */ *iv_return = IPP_JOB_ABORTED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_JOB_STOPPE", 14)) { /* D */ *iv_return = IPP_JOB_STOPPED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_KEYWOR", 14)) { /* D */ *iv_return = IPP_TAG_KEYWORD; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_FIELD_DAT", 14)) { /* E */ *iv_return = HTTP_FIELD_DATE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_NOVALU", 14)) { /* E */ *iv_return = IPP_TAG_NOVALUE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "IPP_JOB_PENDIN", 14)) { /* G */ *iv_return = IPP_JOB_PENDING; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "PPD_BAD_OPEN_U", 14)) { /* I */ *iv_return = PPD_BAD_OPEN_UI; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "CUPS_IMAGE_CMY", 14)) { /* K */ *iv_return = CUPS_IMAGE_CMYK; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_FIELD_LIN", 14)) { /* K */ *iv_return = HTTP_FIELD_LINK; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "PPD_CUSTOM_REA", 14)) { /* L */ *iv_return = PPD_CUSTOM_REAL; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "IPP_TAG_BOOLEA", 14)) { /* N */ *iv_return = IPP_TAG_BOOLEAN; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_UNKNOW", 14)) { /* N */ *iv_return = IPP_TAG_UNKNOWN; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_MAX_BUFFE", 14)) { /* R */ *iv_return = HTTP_MAX_BUFFER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_INTEGE", 14)) { /* R */ *iv_return = IPP_TAG_INTEGER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_PRINTE", 14)) { /* R */ *iv_return = IPP_TAG_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ALLOC_ERRO", 14)) { /* R */ *iv_return = PPD_ALLOC_ERROR; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_FIELD_HOS", 14)) { /* T */ *iv_return = HTTP_FIELD_HOST; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_NO_CONTEN", 14)) { /* T */ *iv_return = HTTP_NO_CONTENT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_BAD_REQUES", 14)) { /* T */ *iv_return = IPP_BAD_REQUEST; return PERL_constant_ISIV; } if (memEQ(name, "IPP_OK_CONFLIC", 14)) { /* T */ *iv_return = IPP_OK_CONFLICT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_CHARSE", 14)) { /* T */ *iv_return = IPP_TAG_CHARSET; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_DEFAUL", 14)) { /* T */ *iv_return = IPP_TAG_DEFAULT; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "CUPS_PRINTER_B", 14)) { /* W */ *iv_return = CUPS_PRINTER_BW; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "PPD_UI_PICKMAN", 14)) { /* Y */ *iv_return = PPD_UI_PICKMANY; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_16 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ACCEPT_JOBS CUPS_ADD_PRINTER CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_IMAGE_BLACK CUPS_IMAGE_WHITE CUPS_MAX_USTRING CUPS_PRINTER_FAX CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_FIELD_RANGE HTTP_URI_BAD_URI IPP_DEVICE_ERROR IPP_NOT_POSSIBLE IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_QUALITY_HIGH IPP_RES_PER_INCH IPP_TAG_LANGUAGE IPP_TAG_MIMETYPE IPP_TAG_NAMELANG IPP_TAG_TEXTLANG IPP_VALIDATE_JOB PPD_CUSTOM_CURVE PPD_ORDER_PROLOG */ /* Offset 13 gives the best switch position. */ switch (name[13]) { case '8': if (memEQ(name, "CUPS_WINDOWS_874", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_874; return PERL_constant_ISIV; } break; case '9': if (memEQ(name, "CUPS_WINDOWS_932", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_932; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_WINDOWS_936", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_936; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_WINDOWS_949", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_949; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_WINDOWS_950", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_950; return PERL_constant_ISIV; } break; case 'A': if (memEQ(name, "CUPS_IMAGE_BLACK", 16)) { /* ^ */ *iv_return = CUPS_IMAGE_BLACK; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_LANGUAGE", 16)) { /* ^ */ *iv_return = IPP_TAG_LANGUAGE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_NAMELANG", 16)) { /* ^ */ *iv_return = IPP_TAG_NAMELANG; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_TEXTLANG", 16)) { /* ^ */ *iv_return = IPP_TAG_TEXTLANG; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_NOT_POSSIBLE", 16)) { /* ^ */ *iv_return = IPP_NOT_POSSIBLE; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "CUPS_GET_DEVICES", 16)) { /* ^ */ *iv_return = CUPS_GET_DEVICES; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_PRINTER_IDLE", 16)) { /* ^ */ *iv_return = IPP_PRINTER_IDLE; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_BAD_REQUEST", 16)) { /* ^ */ *iv_return = HTTP_BAD_REQUEST; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "CUPS_PRINTER_FAX", 16)) { /* ^ */ *iv_return = CUPS_PRINTER_FAX; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "CUPS_IMAGE_WHITE", 16)) { /* ^ */ *iv_return = CUPS_IMAGE_WHITE; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_MAX_USTRING", 16)) { /* ^ */ *iv_return = CUPS_MAX_USTRING; return PERL_constant_ISIV; } if (memEQ(name, "IPP_QUALITY_HIGH", 16)) { /* ^ */ *iv_return = IPP_QUALITY_HIGH; return PERL_constant_ISIV; } break; case 'J': if (memEQ(name, "IPP_VALIDATE_JOB", 16)) { /* ^ */ *iv_return = IPP_VALIDATE_JOB; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "PPD_ORDER_PROLOG", 16)) { /* ^ */ *iv_return = PPD_ORDER_PROLOG; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_RANGE", 16)) { /* ^ */ *iv_return = HTTP_FIELD_RANGE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RES_PER_INCH", 16)) { /* ^ */ *iv_return = IPP_RES_PER_INCH; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "CUPS_ACCEPT_JOBS", 16)) { /* ^ */ *iv_return = CUPS_ACCEPT_JOBS; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_REJECT_JOBS", 16)) { /* ^ */ *iv_return = CUPS_REJECT_JOBS; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_DEVICE_ERROR", 16)) { /* ^ */ *iv_return = IPP_DEVICE_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_CURVE", 16)) { /* ^ */ *iv_return = PPD_CUSTOM_CURVE; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_GET_CLASSES", 16)) { /* ^ */ *iv_return = CUPS_GET_CLASSES; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "CUPS_ADD_PRINTER", 16)) { /* ^ */ *iv_return = CUPS_ADD_PRINTER; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "CUPS_GET_DEFAULT", 16)) { /* ^ */ *iv_return = CUPS_GET_DEFAULT; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_SET_DEFAULT", 16)) { /* ^ */ *iv_return = CUPS_SET_DEFAULT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_URI", 16)) { /* ^ */ *iv_return = HTTP_URI_BAD_URI; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PRINTER_BUSY", 16)) { /* ^ */ *iv_return = IPP_PRINTER_BUSY; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "HTTP_BAD_GATEWAY", 16)) { /* ^ */ *iv_return = HTTP_BAD_GATEWAY; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "IPP_TAG_MIMETYPE", 16)) { /* ^ */ *iv_return = IPP_TAG_MIMETYPE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_17 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_DELETE_CLASS CUPS_GET_PRINTERS CUPS_PRINTER_BIND CUPS_PRINTER_SORT CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 HTTP_AUTH_MD5_INT HTTP_KEEPALIVE_ON HTTP_NOT_MODIFIED HTTP_PRECONDITION HTTP_SERVER_ERROR HTTP_UNAUTHORIZED HTTP_URI_BAD_PORT HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG IPP_HOLD_NEW_JOBS IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_NOT_ACCEPTING IPP_PAUSE_PRINTER IPP_QUALITY_DRAFT IPP_REPROCESS_JOB IPP_REQUEST_VALUE IPP_SEND_DOCUMENT IPP_TAG_OPERATION IPP_TAG_URISCHEME PPD_CUSTOM_POINTS PPD_CUSTOM_STRING PPD_LINE_TOO_LONG PPD_MISSING_VALUE */ /* Offset 16 gives the best switch position. */ switch (name[16]) { case '0': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 0 */ *iv_return = CUPS_WINDOWS_1250; return PERL_constant_ISIV; } break; case '1': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 1 */ *iv_return = CUPS_WINDOWS_1251; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_WINDOWS_136", 16)) { /* 1 */ *iv_return = CUPS_WINDOWS_1361; return PERL_constant_ISIV; } break; case '2': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 2 */ *iv_return = CUPS_WINDOWS_1252; return PERL_constant_ISIV; } break; case '3': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 3 */ *iv_return = CUPS_WINDOWS_1253; return PERL_constant_ISIV; } break; case '4': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 4 */ *iv_return = CUPS_WINDOWS_1254; return PERL_constant_ISIV; } break; case '5': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 5 */ *iv_return = CUPS_WINDOWS_1255; return PERL_constant_ISIV; } break; case '6': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 6 */ *iv_return = CUPS_WINDOWS_1256; return PERL_constant_ISIV; } break; case '7': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 7 */ *iv_return = CUPS_WINDOWS_1257; return PERL_constant_ISIV; } break; case '8': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 8 */ *iv_return = CUPS_WINDOWS_1258; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_REPROCESS_JO", 16)) { /* B */ *iv_return = IPP_REPROCESS_JOB; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "CUPS_PRINTER_BIN", 16)) { /* D */ *iv_return = CUPS_PRINTER_BIND; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_NOT_MODIFIE", 16)) { /* D */ *iv_return = HTTP_NOT_MODIFIED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_UNAUTHORIZE", 16)) { /* D */ *iv_return = HTTP_UNAUTHORIZED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_JOB_CANCELLE", 16)) { /* D */ *iv_return = IPP_JOB_CANCELLED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_JOB_COMPLETE", 16)) { /* D */ *iv_return = IPP_JOB_COMPLETED; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_REQUEST_VALU", 16)) { /* E */ *iv_return = IPP_REQUEST_VALUE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_URISCHEM", 16)) { /* E */ *iv_return = IPP_TAG_URISCHEME; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MISSING_VALU", 16)) { /* E */ *iv_return = PPD_MISSING_VALUE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "HTTP_URI_TOO_LON", 16)) { /* G */ *iv_return = HTTP_URI_TOO_LONG; return PERL_constant_ISIV; } if (memEQ(name, "IPP_NOT_ACCEPTIN", 16)) { /* G */ *iv_return = IPP_NOT_ACCEPTING; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_STRIN", 16)) { /* G */ *iv_return = PPD_CUSTOM_STRING; return PERL_constant_ISIV; } if (memEQ(name, "PPD_LINE_TOO_LON", 16)) { /* G */ *iv_return = PPD_LINE_TOO_LONG; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_KEEPALIVE_O", 16)) { /* N */ *iv_return = HTTP_KEEPALIVE_ON; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_PRECONDITIO", 16)) { /* N */ *iv_return = HTTP_PRECONDITION; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_OPERATIO", 16)) { /* N */ *iv_return = IPP_TAG_OPERATION; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_SERVER_ERRO", 16)) { /* R */ *iv_return = HTTP_SERVER_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PAUSE_PRINTE", 16)) { /* R */ *iv_return = IPP_PAUSE_PRINTER; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_DELETE_CLAS", 16)) { /* S */ *iv_return = CUPS_DELETE_CLASS; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_GET_PRINTER", 16)) { /* S */ *iv_return = CUPS_GET_PRINTERS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_HOLD_NEW_JOB", 16)) { /* S */ *iv_return = IPP_HOLD_NEW_JOBS; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_POINT", 16)) { /* S */ *iv_return = PPD_CUSTOM_POINTS; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "CUPS_PRINTER_SOR", 16)) { /* T */ *iv_return = CUPS_PRINTER_SORT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_AUTH_MD5_IN", 16)) { /* T */ *iv_return = HTTP_AUTH_MD5_INT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_POR", 16)) { /* T */ *iv_return = HTTP_URI_BAD_PORT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_QUALITY_DRAF", 16)) { /* T */ *iv_return = IPP_QUALITY_DRAFT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SEND_DOCUMEN", 16)) { /* T */ *iv_return = IPP_SEND_DOCUMENT; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "HTTP_URI_OVERFLO", 16)) { /* W */ *iv_return = HTTP_URI_OVERFLOW; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_18 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_AUTO_ENCODING CUPS_PRINTER_CLASS CUPS_PRINTER_COLOR CUPS_PRINTER_COVER CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_PUNCH CUPS_PRINTER_SMALL CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH HTTP_AUTH_MD5_SESS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_NEVER HTTP_FIELD_REFERER HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_KEEPALIVE_OFF HTTP_NOT_SUPPORTED HTTP_RESET_CONTENT IPP_ENABLE_PRINTER IPP_INTERNAL_ERROR IPP_JOB_PROCESSING IPP_NOT_AUTHORIZED IPP_QUALITY_NORMAL IPP_REQUEST_ENTITY IPP_RESUME_PRINTER IPP_TAG_DELETEATTR IPP_TAG_MEMBERNAME IPP_TAG_RESOLUTION PPD_BAD_OPEN_GROUP PPD_CONFORM_STRICT PPD_INTERNAL_ERROR PPD_NESTED_OPEN_UI PPD_ORDER_DOCUMENT */ /* Offset 13 gives the best switch position. */ switch (name[13]) { case 'C': if (memEQ(name, "CUPS_PRINTER_CLASS", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_CLASS; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_COLOR", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_COLOR; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_COVER", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_COVER; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_ENCODE_LENGTH", 18)) { /* ^ */ *iv_return = HTTP_ENCODE_LENGTH; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_KEEPALIVE_OFF", 18)) { /* ^ */ *iv_return = HTTP_KEEPALIVE_OFF; return PERL_constant_ISIV; } if (memEQ(name, "IPP_INTERNAL_ERROR", 18)) { /* ^ */ *iv_return = IPP_INTERNAL_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_DELETEATTR", 18)) { /* ^ */ *iv_return = IPP_TAG_DELETEATTR; return PERL_constant_ISIV; } if (memEQ(name, "PPD_INTERNAL_ERROR", 18)) { /* ^ */ *iv_return = PPD_INTERNAL_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "PPD_NESTED_OPEN_UI", 18)) { /* ^ */ *iv_return = PPD_NESTED_OPEN_UI; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "HTTP_FIELD_REFERER", 18)) { /* ^ */ *iv_return = HTTP_FIELD_REFERER; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "HTTP_FIELD_UPGRADE", 18)) { /* ^ */ *iv_return = HTTP_FIELD_UPGRADE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_BAD_OPEN_GROUP", 18)) { /* ^ */ *iv_return = PPD_BAD_OPEN_GROUP; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_ENABLE_PRINTER", 18)) { /* ^ */ *iv_return = IPP_ENABLE_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RESUME_PRINTER", 18)) { /* ^ */ *iv_return = IPP_RESUME_PRINTER; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "HTTP_FIELD_UNKNOWN", 18)) { /* ^ */ *iv_return = HTTP_FIELD_UNKNOWN; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "CUPS_PRINTER_LARGE", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_LARGE; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_LOCAL", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_LOCAL; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "CUPS_VERSION_MAJOR", 18)) { /* ^ */ *iv_return = CUPS_VERSION_MAJOR; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_VERSION_MINOR", 18)) { /* ^ */ *iv_return = CUPS_VERSION_MINOR; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_ENCRYPT_NEVER", 18)) { /* ^ */ *iv_return = HTTP_ENCRYPT_NEVER; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_RESET_CONTENT", 18)) { /* ^ */ *iv_return = HTTP_RESET_CONTENT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_REQUEST_ENTITY", 18)) { /* ^ */ *iv_return = IPP_REQUEST_ENTITY; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "CUPS_AUTO_ENCODING", 18)) { /* ^ */ *iv_return = CUPS_AUTO_ENCODING; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_NOT_SUPPORTED", 18)) { /* ^ */ *iv_return = HTTP_NOT_SUPPORTED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_QUALITY_NORMAL", 18)) { /* ^ */ *iv_return = IPP_QUALITY_NORMAL; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_PRINTER_PUNCH", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_PUNCH; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_VERSION_PATCH", 18)) { /* ^ */ *iv_return = CUPS_VERSION_PATCH; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_NOT_AUTHORIZED", 18)) { /* ^ */ *iv_return = IPP_NOT_AUTHORIZED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_MEMBERNAME", 18)) { /* ^ */ *iv_return = IPP_TAG_MEMBERNAME; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_PRINTER_SMALL", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_SMALL; return PERL_constant_ISIV; } if (memEQ(name, "IPP_JOB_PROCESSING", 18)) { /* ^ */ *iv_return = IPP_JOB_PROCESSING; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "PPD_CONFORM_STRICT", 18)) { /* ^ */ *iv_return = PPD_CONFORM_STRICT; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_TAG_RESOLUTION", 18)) { /* ^ */ *iv_return = IPP_TAG_RESOLUTION; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_DOCUMENT", 18)) { /* ^ */ *iv_return = PPD_ORDER_DOCUMENT; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "HTTP_AUTH_MD5_SESS", 18)) { /* ^ */ *iv_return = HTTP_AUTH_MD5_SESS; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_19 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_DELETE_PRINTER CUPS_IMAGE_RGB_CMYK CUPS_PRINTER_COPIES CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_MEDIUM CUPS_PRINTER_REMOTE CUPS_PRINTER_STAPLE HTTP_ENCODE_CHUNKED HTTP_ENCRYPT_ALWAYS HTTP_FIELD_LOCATION HTTP_NOT_ACCEPTABLE HTTP_URI_BAD_SCHEME HTTP_URI_CODING_ALL IPP_DISABLE_PRINTER IPP_DOCUMENT_FORMAT IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_FOLD IPP_FINISHINGS_NONE IPP_FINISHINGS_TRIM IPP_PRINTER_STOPPED IPP_RESTART_PRINTER IPP_STARTUP_PRINTER IPP_TAG_ADMINDEFINE IPP_TAG_NOTSETTABLE IPP_TEMPORARY_ERROR PPD_CONFORM_RELAXED PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_FILE_OPEN_ERROR */ /* Offset 15 gives the best switch position. */ switch (name[15]) { case 'A': if (memEQ(name, "CUPS_PRINTER_STAPLE", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_STAPLE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_NOT_ACCEPTABLE", 19)) { /* ^ */ *iv_return = HTTP_NOT_ACCEPTABLE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_NOTSETTABLE", 19)) { /* ^ */ *iv_return = IPP_TAG_NOTSETTABLE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CONFORM_RELAXED", 19)) { /* ^ */ *iv_return = PPD_CONFORM_RELAXED; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_FINISHINGS_BALE", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_BALE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_BIND", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "CUPS_IMAGE_RGB_CMYK", 19)) { /* ^ */ *iv_return = CUPS_IMAGE_RGB_CMYK; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_PASSCODE", 19)) { /* ^ */ *iv_return = PPD_CUSTOM_PASSCODE; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "CUPS_PRINTER_MEDIUM", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_MEDIUM; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "IPP_FINISHINGS_FOLD", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_FOLD; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_ADMINDEFINE", 19)) { /* ^ */ *iv_return = IPP_TAG_ADMINDEFINE; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "HTTP_URI_BAD_SCHEME", 19)) { /* ^ */ *iv_return = HTTP_URI_BAD_SCHEME; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "CUPS_PRINTER_DELETE", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_DELETE; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "CUPS_PRINTER_REMOTE", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_REMOTE; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "CUPS_DELETE_PRINTER", 19)) { /* ^ */ *iv_return = CUPS_DELETE_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_ENCODE_CHUNKED", 19)) { /* ^ */ *iv_return = HTTP_ENCODE_CHUNKED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_DISABLE_PRINTER", 19)) { /* ^ */ *iv_return = IPP_DISABLE_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_NONE", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_NONE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RESTART_PRINTER", 19)) { /* ^ */ *iv_return = IPP_RESTART_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_STARTUP_PRINTER", 19)) { /* ^ */ *iv_return = IPP_STARTUP_PRINTER; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_PRINTER_COPIES", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_COPIES; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_DUPLEX", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_DUPLEX; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PRINTER_STOPPED", 19)) { /* ^ */ *iv_return = IPP_PRINTER_STOPPED; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_DOCUMENT_FORMAT", 19)) { /* ^ */ *iv_return = IPP_DOCUMENT_FORMAT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TEMPORARY_ERROR", 19)) { /* ^ */ *iv_return = IPP_TEMPORARY_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "PPD_FILE_OPEN_ERROR", 19)) { /* ^ */ *iv_return = PPD_FILE_OPEN_ERROR; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_FIELD_LOCATION", 19)) { /* ^ */ *iv_return = HTTP_FIELD_LOCATION; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_TRIM", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_TRIM; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "PPD_CUSTOM_INVCURVE", 19)) { /* ^ */ *iv_return = PPD_CUSTOM_INVCURVE; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "HTTP_ENCRYPT_ALWAYS", 19)) { /* ^ */ *iv_return = HTTP_ENCRYPT_ALWAYS; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_PASSWORD", 19)) { /* ^ */ *iv_return = PPD_CUSTOM_PASSWORD; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "HTTP_URI_CODING_ALL", 19)) { /* ^ */ *iv_return = HTTP_URI_CODING_ALL; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_20 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_PRINTER_COLLATE CUPS_PRINTER_DEFAULT CUPS_PRINTER_OPTIONS HTTP_GATEWAY_TIMEOUT HTTP_LENGTH_REQUIRED HTTP_NOT_IMPLEMENTED HTTP_PARTIAL_CONTENT HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE IPP_ACTIVATE_PRINTER IPP_FINISHINGS_COVER IPP_FINISHINGS_PUNCH IPP_REVERSE_PORTRAIT IPP_SHUTDOWN_PRINTER IPP_TAG_SUBSCRIPTION PPD_BAD_CUSTOM_PARAM PPD_MISSING_ASTERISK */ /* Offset 15 gives the best switch position. */ switch (name[15]) { case 'C': if (memEQ(name, "IPP_FINISHINGS_COVER", 20)) { /* ^ */ *iv_return = IPP_FINISHINGS_COVER; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_NOT_IMPLEMENTED", 20)) { /* ^ */ *iv_return = HTTP_NOT_IMPLEMENTED; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MISSING_ASTERISK", 20)) { /* ^ */ *iv_return = PPD_MISSING_ASTERISK; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "CUPS_PRINTER_DEFAULT", 20)) { /* ^ */ *iv_return = CUPS_PRINTER_DEFAULT; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_ACTIVATE_PRINTER", 20)) { /* ^ */ *iv_return = IPP_ACTIVATE_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SHUTDOWN_PRINTER", 20)) { /* ^ */ *iv_return = IPP_SHUTDOWN_PRINTER; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "CUPS_PRINTER_COLLATE", 20)) { /* ^ */ *iv_return = CUPS_PRINTER_COLLATE; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "HTTP_GATEWAY_TIMEOUT", 20)) { /* ^ */ *iv_return = HTTP_GATEWAY_TIMEOUT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_REQUEST_TIMEOUT", 20)) { /* ^ */ *iv_return = HTTP_REQUEST_TIMEOUT; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_PARTIAL_CONTENT", 20)) { /* ^ */ *iv_return = HTTP_PARTIAL_CONTENT; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_FINISHINGS_PUNCH", 20)) { /* ^ */ *iv_return = IPP_FINISHINGS_PUNCH; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_SUBSCRIPTION", 20)) { /* ^ */ *iv_return = IPP_TAG_SUBSCRIPTION; return PERL_constant_ISIV; } if (memEQ(name, "PPD_BAD_CUSTOM_PARAM", 20)) { /* ^ */ *iv_return = PPD_BAD_CUSTOM_PARAM; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_REQUESTED_RANGE", 20)) { /* ^ */ *iv_return = HTTP_REQUESTED_RANGE; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "CUPS_PRINTER_OPTIONS", 20)) { /* ^ */ *iv_return = CUPS_PRINTER_OPTIONS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_REVERSE_PORTRAIT", 20)) { /* ^ */ *iv_return = IPP_REVERSE_PORTRAIT; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_LENGTH_REQUIRED", 20)) { /* ^ */ *iv_return = HTTP_LENGTH_REQUIRED; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "HTTP_URI_CODING_MOST", 20)) { /* ^ */ *iv_return = HTTP_URI_CODING_MOST; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_CODING_NONE", 20)) { /* ^ */ *iv_return = HTTP_URI_CODING_NONE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_21 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ADD_MODIFY_CLASS CUPS_AUTHENTICATE_JOB CUPS_PRINTER_COMMANDS CUPS_PRINTER_IMPLICIT CUPS_PRINTER_VARIABLE HTTP_ENCRYPT_REQUIRED HTTP_FIELD_CONNECTION HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_USER_AGENT HTTP_MULTIPLE_CHOICES HTTP_PAYMENT_REQUIRED HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_USERNAME HTTP_URI_CODING_QUERY IPP_COMPRESSION_ERROR IPP_FINISHINGS_STAPLE IPP_GET_NOTIFICATIONS IPP_GET_SUBSCRIPTIONS IPP_NOT_AUTHENTICATED IPP_REVERSE_LANDSCAPE PPD_ILLEGAL_CHARACTER PPD_MISSING_PPDADOBE4 PPD_NESTED_OPEN_GROUP */ /* Offset 14 gives the best switch position. */ switch (name[14]) { case 'A': if (memEQ(name, "CUPS_AUTHENTICATE_JOB", 21)) { /* ^ */ *iv_return = CUPS_AUTHENTICATE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_VARIABLE", 21)) { /* ^ */ *iv_return = CUPS_PRINTER_VARIABLE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ILLEGAL_CHARACTER", 21)) { /* ^ */ *iv_return = PPD_ILLEGAL_CHARACTER; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "HTTP_MULTIPLE_CHOICES", 21)) { /* ^ */ *iv_return = HTTP_MULTIPLE_CHOICES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_GET_NOTIFICATIONS", 21)) { /* ^ */ *iv_return = IPP_GET_NOTIFICATIONS; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "PPD_MISSING_PPDADOBE4", 21)) { /* ^ */ *iv_return = PPD_MISSING_PPDADOBE4; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_ENCRYPT_REQUIRED", 21)) { /* ^ */ *iv_return = HTTP_ENCRYPT_REQUIRED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_PAYMENT_REQUIRED", 21)) { /* ^ */ *iv_return = HTTP_PAYMENT_REQUIRED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_UPGRADE_REQUIRED", 21)) { /* ^ */ *iv_return = HTTP_UPGRADE_REQUIRED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_RESOURCE", 21)) { /* ^ */ *iv_return = HTTP_URI_BAD_RESOURCE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "HTTP_URI_CODING_QUERY", 21)) { /* ^ */ *iv_return = HTTP_URI_CODING_QUERY; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_GET_SUBSCRIPTIONS", 21)) { /* ^ */ *iv_return = IPP_GET_SUBSCRIPTIONS; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "CUPS_PRINTER_IMPLICIT", 21)) { /* ^ */ *iv_return = CUPS_PRINTER_IMPLICIT; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_CONNECTION", 21)) { /* ^ */ *iv_return = HTTP_FIELD_CONNECTION; return PERL_constant_ISIV; } if (memEQ(name, "IPP_COMPRESSION_ERROR", 21)) { /* ^ */ *iv_return = IPP_COMPRESSION_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "IPP_REVERSE_LANDSCAPE", 21)) { /* ^ */ *iv_return = IPP_REVERSE_LANDSCAPE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_NESTED_OPEN_GROUP", 21)) { /* ^ */ *iv_return = PPD_NESTED_OPEN_GROUP; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "CUPS_PRINTER_COMMANDS", 21)) { /* ^ */ *iv_return = CUPS_PRINTER_COMMANDS; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_HOSTNAME", 21)) { /* ^ */ *iv_return = HTTP_URI_BAD_HOSTNAME; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "HTTP_FIELD_KEEP_ALIVE", 21)) { /* ^ */ *iv_return = HTTP_FIELD_KEEP_ALIVE; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_FIELD_USER_AGENT", 21)) { /* ^ */ *iv_return = HTTP_FIELD_USER_AGENT; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "HTTP_URI_BAD_USERNAME", 21)) { /* ^ */ *iv_return = HTTP_URI_BAD_USERNAME; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_NOT_AUTHENTICATED", 21)) { /* ^ */ *iv_return = IPP_NOT_AUTHENTICATED; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "CUPS_ADD_MODIFY_CLASS", 21)) { /* ^ */ *iv_return = CUPS_ADD_MODIFY_CLASS; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "IPP_FINISHINGS_STAPLE", 21)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_22 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_PRINTER_REJECTING HTTP_AUTH_MD5_SESS_INT HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_RETRY_AFTER HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_NOT_AUTHORITATIVE HTTP_REQUEST_TOO_LARGE HTTP_URI_BAD_ARGUMENTS IPP_CANCEL_CURRENT_JOB IPP_DEACTIVATE_PRINTER IPP_GET_JOB_ATTRIBUTES IPP_OK_EVENTS_COMPLETE IPP_OK_TOO_MANY_EVENTS IPP_PRINTER_PROCESSING IPP_RENEW_SUBSCRIPTION IPP_SCHEDULE_JOB_AFTER IPP_SEND_NOTIFICATIONS IPP_SET_JOB_ATTRIBUTES IPP_TAG_END_COLLECTION PPD_BAD_UI_CONSTRAINTS PPD_ILLEGAL_WHITESPACE */ /* Offset 12 gives the best switch position. */ switch (name[12]) { case '5': if (memEQ(name, "HTTP_AUTH_MD5_SESS_INT", 22)) { /* ^ */ *iv_return = HTTP_AUTH_MD5_SESS_INT; return PERL_constant_ISIV; } break; case 'A': if (memEQ(name, "IPP_GET_JOB_ATTRIBUTES", 22)) { /* ^ */ *iv_return = IPP_GET_JOB_ATTRIBUTES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_OK_TOO_MANY_EVENTS", 22)) { /* ^ */ *iv_return = IPP_OK_TOO_MANY_EVENTS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SET_JOB_ATTRIBUTES", 22)) { /* ^ */ *iv_return = IPP_SET_JOB_ATTRIBUTES; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_RENEW_SUBSCRIPTION", 22)) { /* ^ */ *iv_return = IPP_RENEW_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "IPP_TAG_END_COLLECTION", 22)) { /* ^ */ *iv_return = IPP_TAG_END_COLLECTION; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_FIELD_RETRY_AFTER", 22)) { /* ^ */ *iv_return = HTTP_FIELD_RETRY_AFTER; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_MOVED_PERMANENTLY", 22)) { /* ^ */ *iv_return = HTTP_MOVED_PERMANENTLY; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_MOVED_TEMPORARILY", 22)) { /* ^ */ *iv_return = HTTP_MOVED_TEMPORARILY; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "CUPS_ENCODING_DBCS_END", 22)) { /* ^ */ *iv_return = CUPS_ENCODING_DBCS_END; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_ENCODING_SBCS_END", 22)) { /* ^ */ *iv_return = CUPS_ENCODING_SBCS_END; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_ENCODING_VBCS_END", 22)) { /* ^ */ *iv_return = CUPS_ENCODING_VBCS_END; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "HTTP_NOT_AUTHORITATIVE", 22)) { /* ^ */ *iv_return = HTTP_NOT_AUTHORITATIVE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_SEND_NOTIFICATIONS", 22)) { /* ^ */ *iv_return = IPP_SEND_NOTIFICATIONS; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "HTTP_FIELD_CONTENT_MD5", 22)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_MD5; return PERL_constant_ISIV; } if (memEQ(name, "PPD_BAD_UI_CONSTRAINTS", 22)) { /* ^ */ *iv_return = PPD_BAD_UI_CONSTRAINTS; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_PRINTER_PROCESSING", 22)) { /* ^ */ *iv_return = IPP_PRINTER_PROCESSING; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_OK_EVENTS_COMPLETE", 22)) { /* ^ */ *iv_return = IPP_OK_EVENTS_COMPLETE; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_DEACTIVATE_PRINTER", 22)) { /* ^ */ *iv_return = IPP_DEACTIVATE_PRINTER; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_CANCEL_CURRENT_JOB", 22)) { /* ^ */ *iv_return = IPP_CANCEL_CURRENT_JOB; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "PPD_ILLEGAL_WHITESPACE", 22)) { /* ^ */ *iv_return = PPD_ILLEGAL_WHITESPACE; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "CUPS_PRINTER_REJECTING", 22)) { /* ^ */ *iv_return = CUPS_PRINTER_REJECTING; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_REQUEST_TOO_LARGE", 22)) { /* ^ */ *iv_return = HTTP_REQUEST_TOO_LARGE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_ARGUMENTS", 22)) { /* ^ */ *iv_return = HTTP_URI_BAD_ARGUMENTS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SCHEDULE_JOB_AFTER", 22)) { /* ^ */ *iv_return = IPP_SCHEDULE_JOB_AFTER; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_23 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ADD_MODIFY_PRINTER CUPS_PRINTER_NOT_SHARED HTTP_EXPECTATION_FAILED HTTP_FIELD_CONTENT_TYPE HTTP_METHOD_NOT_ALLOWED HTTP_URI_MISSING_SCHEME HTTP_URI_UNKNOWN_SCHEME IPP_CANCEL_SUBSCRIPTION IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BIND_TOP IPP_SERVICE_UNAVAILABLE IPP_SUSPEND_CURRENT_JOB PPD_ILLEGAL_TRANSLATION */ /* Offset 9 gives the best switch position. */ switch (name[9]) { case 'A': if (memEQ(name, "PPD_ILLEGAL_TRANSLATION", 23)) { /* ^ */ *iv_return = PPD_ILLEGAL_TRANSLATION; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "HTTP_EXPECTATION_FAILED", 23)) { /* ^ */ *iv_return = HTTP_EXPECTATION_FAILED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SERVICE_UNAVAILABLE", 23)) { /* ^ */ *iv_return = IPP_SERVICE_UNAVAILABLE; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "HTTP_FIELD_CONTENT_TYPE", 23)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_TYPE; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "IPP_FINISHINGS_BIND_TOP", 23)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND_TOP; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_CANCEL_SUBSCRIPTION", 23)) { /* ^ */ *iv_return = IPP_CANCEL_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "CUPS_ADD_MODIFY_PRINTER", 23)) { /* ^ */ *iv_return = CUPS_ADD_MODIFY_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_MISSING_SCHEME", 23)) { /* ^ */ *iv_return = HTTP_URI_MISSING_SCHEME; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "IPP_SUSPEND_CURRENT_JOB", 23)) { /* ^ */ *iv_return = IPP_SUSPEND_CURRENT_JOB; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "HTTP_METHOD_NOT_ALLOWED", 23)) { /* ^ */ *iv_return = HTTP_METHOD_NOT_ALLOWED; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "CUPS_PRINTER_NOT_SHARED", 23)) { /* ^ */ *iv_return = CUPS_PRINTER_NOT_SHARED; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_URI_UNKNOWN_SCHEME", 23)) { /* ^ */ *iv_return = HTTP_URI_UNKNOWN_SCHEME; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "IPP_ERROR_JOB_CANCELLED", 23)) { /* ^ */ *iv_return = IPP_ERROR_JOB_CANCELLED; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_24 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_LAST_MODIFIED HTTP_SERVICE_UNAVAILABLE HTTP_SWITCHING_PROTOCOLS HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME IPP_FINISHINGS_BIND_LEFT IPP_TAG_BEGIN_COLLECTION PPD_BAD_ORDER_DEPENDENCY PPD_ILLEGAL_MAIN_KEYWORD */ /* Offset 16 gives the best switch position. */ switch (name[16]) { case 'H': if (memEQ(name, "HTTP_URI_CODING_HOSTNAME", 24)) { /* ^ */ *iv_return = HTTP_URI_CODING_HOSTNAME; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_FINISHINGS_BIND_LEFT", 24)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND_LEFT; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_TAG_BEGIN_COLLECTION", 24)) { /* ^ */ *iv_return = IPP_TAG_BEGIN_COLLECTION; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "HTTP_FIELD_LAST_MODIFIED", 24)) { /* ^ */ *iv_return = HTTP_FIELD_LAST_MODIFIED; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_CONTENT_RANGE", 24)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_RANGE; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "PPD_BAD_ORDER_DEPENDENCY", 24)) { /* ^ */ *iv_return = PPD_BAD_ORDER_DEPENDENCY; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_FIELD_AUTHORIZATION", 24)) { /* ^ */ *iv_return = HTTP_FIELD_AUTHORIZATION; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_SWITCHING_PROTOCOLS", 24)) { /* ^ */ *iv_return = HTTP_SWITCHING_PROTOCOLS; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_CODING_RESOURCE", 24)) { /* ^ */ *iv_return = HTTP_URI_CODING_RESOURCE; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_FIELD_ACCEPT_RANGES", 24)) { /* ^ */ *iv_return = HTTP_FIELD_ACCEPT_RANGES; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_URI_CODING_USERNAME", 24)) { /* ^ */ *iv_return = HTTP_URI_CODING_USERNAME; return PERL_constant_ISIV; } break; case 'V': if (memEQ(name, "HTTP_SERVICE_UNAVAILABLE", 24)) { /* ^ */ *iv_return = HTTP_SERVICE_UNAVAILABLE; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "PPD_ILLEGAL_MAIN_KEYWORD", 24)) { /* ^ */ *iv_return = PPD_ILLEGAL_MAIN_KEYWORD; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_25 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_ENCRYPT_IF_REQUESTED HTTP_FIELD_CONTENT_LENGTH HTTP_PROXY_AUTHENTICATION HTTP_URI_MISSING_RESOURCE IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT_ERROR IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_JOB_OFFSET IPP_RELEASE_HELD_NEW_JOBS IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_VERSION_NOT_SUPPORTED */ /* Offset 13 gives the best switch position. */ switch (name[13]) { case 'A': if (memEQ(name, "IPP_DOCUMENT_ACCESS_ERROR", 25)) { /* ^ */ *iv_return = IPP_DOCUMENT_ACCESS_ERROR; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_RELEASE_HELD_NEW_JOBS", 25)) { /* ^ */ *iv_return = IPP_RELEASE_HELD_NEW_JOBS; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "IPP_DOCUMENT_FORMAT_ERROR", 25)) { /* ^ */ *iv_return = IPP_DOCUMENT_FORMAT_ERROR; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "HTTP_ENCRYPT_IF_REQUESTED", 25)) { /* ^ */ *iv_return = HTTP_ENCRYPT_IF_REQUESTED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_MISSING_RESOURCE", 25)) { /* ^ */ *iv_return = HTTP_URI_MISSING_RESOURCE; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_CONTENT_LENGTH", 25)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_LENGTH; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "IPP_VERSION_NOT_SUPPORTED", 25)) { /* ^ */ *iv_return = IPP_VERSION_NOT_SUPPORTED; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_TAG_UNSUPPORTED_GROUP", 25)) { /* ^ */ *iv_return = IPP_TAG_UNSUPPORTED_GROUP; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_UNSUPPORTED_VALUE", 25)) { /* ^ */ *iv_return = IPP_TAG_UNSUPPORTED_VALUE; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_FINISHINGS_BIND_RIGHT", 25)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND_RIGHT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_JOB_OFFSET", 25)) { /* ^ */ *iv_return = IPP_FINISHINGS_JOB_OFFSET; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_PROXY_AUTHENTICATION", 25)) { /* ^ */ *iv_return = HTTP_PROXY_AUTHENTICATION; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_26 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_PRINTER_AUTHENTICATED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_CONTENT_VERSION HTTP_UNSUPPORTED_MEDIATYPE IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_EDGE_STITCH IPP_GET_PRINTER_ATTRIBUTES IPP_PRINTER_IS_DEACTIVATED IPP_REDIRECTION_OTHER_SITE IPP_SET_PRINTER_ATTRIBUTES IPP_TAG_EVENT_NOTIFICATION IPP_TOO_MANY_SUBSCRIPTIONS PPD_ILLEGAL_OPTION_KEYWORD */ /* Offset 8 gives the best switch position. */ switch (name[8]) { case 'E': if (memEQ(name, "IPP_TAG_EVENT_NOTIFICATION", 26)) { /* ^ */ *iv_return = IPP_TAG_EVENT_NOTIFICATION; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "PPD_ILLEGAL_OPTION_KEYWORD", 26)) { /* ^ */ *iv_return = PPD_ILLEGAL_OPTION_KEYWORD; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "HTTP_FIELD_ACCEPT_LANGUAGE", 26)) { /* ^ */ *iv_return = HTTP_FIELD_ACCEPT_LANGUAGE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_FIELD_CONTENT_VERSION", 26)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_VERSION; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "IPP_TOO_MANY_SUBSCRIPTIONS", 26)) { /* ^ */ *iv_return = IPP_TOO_MANY_SUBSCRIPTIONS; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "CUPS_PRINTER_AUTHENTICATED", 26)) { /* ^ */ *iv_return = CUPS_PRINTER_AUTHENTICATED; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_GET_PRINTER_ATTRIBUTES", 26)) { /* ^ */ *iv_return = IPP_GET_PRINTER_ATTRIBUTES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SET_PRINTER_ATTRIBUTES", 26)) { /* ^ */ *iv_return = IPP_SET_PRINTER_ATTRIBUTES; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_REDIRECTION_OTHER_SITE", 26)) { /* ^ */ *iv_return = IPP_REDIRECTION_OTHER_SITE; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_FINISHINGS_BIND_BOTTOM", 26)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND_BOTTOM; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH", 26)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_PRINTER_IS_DEACTIVATED", 26)) { /* ^ */ *iv_return = IPP_PRINTER_IS_DEACTIVATED; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_UNSUPPORTED_MEDIATYPE", 26)) { /* ^ */ *iv_return = HTTP_UNSUPPORTED_MEDIATYPE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_27 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_WWW_AUTHENTICATE IPP_ATTRIBUTES_NOT_SETTABLE IPP_CREATE_JOB_SUBSCRIPTION IPP_GET_PRINT_SUPPORT_FILES IPP_OPERATION_NOT_SUPPORTED */ /* Offset 20 gives the best switch position. */ switch (name[20]) { case 'A': if (memEQ(name, "HTTP_FIELD_CONTENT_LANGUAGE", 27)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_LANGUAGE; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_ATTRIBUTES_NOT_SETTABLE", 27)) { /* ^ */ *iv_return = IPP_ATTRIBUTES_NOT_SETTABLE; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_CONTENT_ENCODING", 27)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_ENCODING; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_FIELD_WWW_AUTHENTICATE", 27)) { /* ^ */ *iv_return = HTTP_FIELD_WWW_AUTHENTICATE; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "HTTP_FIELD_CONTENT_LOCATION", 27)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_LOCATION; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_OPERATION_NOT_SUPPORTED", 27)) { /* ^ */ *iv_return = IPP_OPERATION_NOT_SUPPORTED; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_CREATE_JOB_SUBSCRIPTION", 27)) { /* ^ */ *iv_return = IPP_CREATE_JOB_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_GET_PRINT_SUPPORT_FILES", 27)) { /* ^ */ *iv_return = IPP_GET_PRINT_SUPPORT_FILES; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_28 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_TRANSFER_ENCODING IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_SADDLE_STITCH IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS */ /* Offset 18 gives the best switch position. */ switch (name[18]) { case 'D': if (memEQ(name, "IPP_FINISHINGS_SADDLE_STITCH", 28)) { /* ^ */ *iv_return = IPP_FINISHINGS_SADDLE_STITCH; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "HTTP_FIELD_IF_MODIFIED_SINCE", 28)) { /* ^ */ *iv_return = HTTP_FIELD_IF_MODIFIED_SINCE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_OK_IGNORED_NOTIFICATIONS", 28)) { /* ^ */ *iv_return = IPP_OK_IGNORED_NOTIFICATIONS; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "IPP_FINISHINGS_BOOKLET_MAKER", 28)) { /* ^ */ *iv_return = IPP_FINISHINGS_BOOKLET_MAKER; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_FIELD_TRANSFER_ENCODING", 28)) { /* ^ */ *iv_return = HTTP_FIELD_TRANSFER_ENCODING; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_OK_IGNORED_SUBSCRIPTIONS", 28)) { /* ^ */ *iv_return = IPP_OK_IGNORED_SUBSCRIPTIONS; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_29 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. IPP_COMPRESSION_NOT_SUPPORTED IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS */ /* Offset 21 gives the best switch position. */ switch (name[21]) { case 'I': if (memEQ(name, "IPP_IGNORED_ALL_NOTIFICATIONS", 29)) { /* ^ */ *iv_return = IPP_IGNORED_ALL_NOTIFICATIONS; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_IGNORED_ALL_SUBSCRIPTIONS", 29)) { /* ^ */ *iv_return = IPP_IGNORED_ALL_SUBSCRIPTIONS; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_COMPRESSION_NOT_SUPPORTED", 29)) { /* ^ */ *iv_return = IPP_COMPRESSION_NOT_SUPPORTED; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_30 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_FIELD_IF_UNMODIFIED_SINCE IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_OK_BUT_CANCEL_SUBSCRIPTION */ /* Offset 22 gives the best switch position. */ switch (name[22]) { case 'C': if (memEQ(name, "IPP_OK_BUT_CANCEL_SUBSCRIPTION", 30)) { /* ^ */ *iv_return = IPP_OK_BUT_CANCEL_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_FINISHINGS_STAPLE_DUAL_TOP", 30)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_DUAL_TOP; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_FIELD_IF_UNMODIFIED_SINCE", 30)) { /* ^ */ *iv_return = HTTP_FIELD_IF_UNMODIFIED_SINCE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH_TOP", 30)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH_TOP; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_FINISHINGS_STAPLE_TOP_LEFT", 30)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_TOP_LEFT; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_31 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. IPP_CREATE_PRINTER_SUBSCRIPTION IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_MULTIPLE_JOBS_NOT_SUPPORTED */ /* Offset 27 gives the best switch position. */ switch (name[27]) { case 'I': if (memEQ(name, "IPP_FINISHINGS_STAPLE_TOP_RIGHT", 31)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_TOP_RIGHT; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH_LEFT", 31)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH_LEFT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_STAPLE_DUAL_LEFT", 31)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_DUAL_LEFT; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_MULTIPLE_JOBS_NOT_SUPPORTED", 31)) { /* ^ */ *iv_return = IPP_MULTIPLE_JOBS_NOT_SUPPORTED; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_CREATE_PRINTER_SUBSCRIPTION", 31)) { /* ^ */ *iv_return = IPP_CREATE_PRINTER_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_GET_SUBSCRIPTION_ATTRIBUTES", 31)) { /* ^ */ *iv_return = IPP_GET_SUBSCRIPTION_ATTRIBUTES; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_32 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_GET_PRINTER_SUPPORTED_VALUES IPP_PRINT_SUPPORT_FILE_NOT_FOUND */ /* Offset 20 gives the best switch position. */ switch (name[20]) { case 'E': if (memEQ(name, "IPP_FINISHINGS_STAPLE_DUAL_RIGHT", 32)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_DUAL_RIGHT; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_PRINT_SUPPORT_FILE_NOT_FOUND", 32)) { /* ^ */ *iv_return = IPP_PRINT_SUPPORT_FILE_NOT_FOUND; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "IPP_GET_PRINTER_SUPPORTED_VALUES", 32)) { /* ^ */ *iv_return = IPP_GET_PRINTER_SUPPORTED_VALUES; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH_RIGHT", 32)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH_RIGHT; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_33 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM */ /* Offset 23 gives the best switch position. */ switch (name[23]) { case 'O': if (memEQ(name, "IPP_FINISHINGS_STAPLE_BOTTOM_LEFT", 33)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_BOTTOM_LEFT; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH_BOTTOM", 33)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH_BOTTOM; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_FINISHINGS_STAPLE_DUAL_BOTTOM", 33)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_DUAL_BOTTOM; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant (pTHX_ const char *name, STRLEN len, IV *iv_return) { /* Initially switch on the length of the name. */ /* When generated this function returned values for the list of names given in this section of perl code. Rather than manually editing these functions to add or remove constants, which would result in this comment and section of code becoming inaccurate, we recommend that you edit this section of code, and use it to regenerate a new set of constant functions which you then use to replace the originals. Regenerate these constant functions by feeding this entire source file to perl -x #!/usr/bin/perl -w use ExtUtils::Constant qw (constant_types C_constant XS_constant); my $types = {map {($_, 1)} qw(IV)}; my @names = (qw(INET6), {name=>"AF_LOCAL", type=>"IV", macro=>"1"}, {name=>"CUPS_ACCEPT_JOBS", type=>"IV", macro=>"1"}, {name=>"CUPS_ADD_CLASS", type=>"IV", macro=>"1"}, {name=>"CUPS_ADD_MODIFY_CLASS", type=>"IV", macro=>"1"}, {name=>"CUPS_ADD_MODIFY_PRINTER", type=>"IV", macro=>"1"}, {name=>"CUPS_ADD_PRINTER", type=>"IV", macro=>"1"}, {name=>"CUPS_AUTHENTICATE_JOB", type=>"IV", macro=>"1"}, {name=>"CUPS_AUTO_ENCODING", type=>"IV", macro=>"1"}, {name=>"CUPS_DATE_ANY", type=>"IV", macro=>"1"}, {name=>"CUPS_DELETE_CLASS", type=>"IV", macro=>"1"}, {name=>"CUPS_DELETE_PRINTER", type=>"IV", macro=>"1"}, {name=>"CUPS_ENCODING_DBCS_END", type=>"IV", macro=>"1"}, {name=>"CUPS_ENCODING_SBCS_END", type=>"IV", macro=>"1"}, {name=>"CUPS_ENCODING_VBCS_END", type=>"IV", macro=>"1"}, {name=>"CUPS_EUC_CN", type=>"IV", macro=>"1"}, {name=>"CUPS_EUC_JP", type=>"IV", macro=>"1"}, {name=>"CUPS_EUC_KR", type=>"IV", macro=>"1"}, {name=>"CUPS_EUC_TW", type=>"IV", macro=>"1"}, {name=>"CUPS_FILE_GZIP", type=>"IV", macro=>"1"}, {name=>"CUPS_FILE_NONE", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_CLASSES", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_DEFAULT", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_DEVICES", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_PPDS", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_PRINTERS", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_BLACK", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_CMY", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_CMYK", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_RGB", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_RGB_CMYK", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_WHITE", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_1", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_10", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_11", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_13", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_14", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_15", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_16", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_2", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_3", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_4", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_5", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_6", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_7", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_8", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_9", type=>"IV", macro=>"1"}, {name=>"CUPS_KOI8_R", type=>"IV", macro=>"1"}, {name=>"CUPS_KOI8_U", type=>"IV", macro=>"1"}, {name=>"CUPS_MAC_ROMAN", type=>"IV", macro=>"1"}, {name=>"CUPS_MAX_USTRING", type=>"IV", macro=>"1"}, {name=>"CUPS_MOVE_JOB", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_AUTHENTICATED", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_BIND", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_BW", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_CLASS", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COLLATE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COLOR", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COMMANDS", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COPIES", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COVER", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_DEFAULT", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_DELETE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_DUPLEX", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_FAX", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_IMPLICIT", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_LARGE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_LOCAL", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_MEDIUM", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_NOT_SHARED", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_OPTIONS", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_PUNCH", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_REJECTING", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_REMOTE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_SMALL", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_SORT", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_STAPLE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_VARIABLE", type=>"IV", macro=>"1"}, {name=>"CUPS_REJECT_JOBS", type=>"IV", macro=>"1"}, {name=>"CUPS_SET_DEFAULT", type=>"IV", macro=>"1"}, {name=>"CUPS_US_ASCII", type=>"IV", macro=>"1"}, {name=>"CUPS_UTF8", type=>"IV", macro=>"1"}, {name=>"CUPS_VERSION", type=>"IV", macro=>"1"}, {name=>"CUPS_VERSION_MAJOR", type=>"IV", macro=>"1"}, {name=>"CUPS_VERSION_MINOR", type=>"IV", macro=>"1"}, {name=>"CUPS_VERSION_PATCH", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1250", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1251", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1252", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1253", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1254", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1255", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1256", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1257", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1258", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1361", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_874", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_932", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_936", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_949", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_950", type=>"IV", macro=>"1"}, {name=>"HTTP_0_9", type=>"IV", macro=>"1"}, {name=>"HTTP_1_0", type=>"IV", macro=>"1"}, {name=>"HTTP_1_1", type=>"IV", macro=>"1"}, {name=>"HTTP_ACCEPTED", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_BASIC", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_MD5", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_MD5_INT", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_MD5_SESS", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_MD5_SESS_INT", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_NONE", type=>"IV", macro=>"1"}, {name=>"HTTP_BAD_GATEWAY", type=>"IV", macro=>"1"}, {name=>"HTTP_BAD_REQUEST", type=>"IV", macro=>"1"}, {name=>"HTTP_CLOSE", type=>"IV", macro=>"1"}, {name=>"HTTP_CONFLICT", type=>"IV", macro=>"1"}, {name=>"HTTP_CONTINUE", type=>"IV", macro=>"1"}, {name=>"HTTP_CREATED", type=>"IV", macro=>"1"}, {name=>"HTTP_DELETE", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCODE_CHUNKED", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCODE_LENGTH", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCRYPT_ALWAYS", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCRYPT_IF_REQUESTED", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCRYPT_NEVER", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCRYPT_REQUIRED", type=>"IV", macro=>"1"}, {name=>"HTTP_ERROR", type=>"IV", macro=>"1"}, {name=>"HTTP_EXPECTATION_FAILED", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_ACCEPT_LANGUAGE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_ACCEPT_RANGES", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_AUTHORIZATION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONNECTION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_ENCODING", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_LANGUAGE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_LENGTH", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_LOCATION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_MD5", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_RANGE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_TYPE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_VERSION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_DATE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_HOST", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_IF_MODIFIED_SINCE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_IF_UNMODIFIED_SINCE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_KEEP_ALIVE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_LAST_MODIFIED", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_LINK", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_LOCATION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_MAX", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_RANGE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_REFERER", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_RETRY_AFTER", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_TRANSFER_ENCODING", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_UNKNOWN", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_UPGRADE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_USER_AGENT", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_WWW_AUTHENTICATE", type=>"IV", macro=>"1"}, {name=>"HTTP_FORBIDDEN", type=>"IV", macro=>"1"}, {name=>"HTTP_GATEWAY_TIMEOUT", type=>"IV", macro=>"1"}, {name=>"HTTP_GET", type=>"IV", macro=>"1"}, {name=>"HTTP_GET_SEND", type=>"IV", macro=>"1"}, {name=>"HTTP_GONE", type=>"IV", macro=>"1"}, {name=>"HTTP_HEAD", type=>"IV", macro=>"1"}, {name=>"HTTP_KEEPALIVE_OFF", type=>"IV", macro=>"1"}, {name=>"HTTP_KEEPALIVE_ON", type=>"IV", macro=>"1"}, {name=>"HTTP_LENGTH_REQUIRED", type=>"IV", macro=>"1"}, {name=>"HTTP_MAX_BUFFER", type=>"IV", macro=>"1"}, {name=>"HTTP_MAX_HOST", type=>"IV", macro=>"1"}, {name=>"HTTP_MAX_URI", type=>"IV", macro=>"1"}, {name=>"HTTP_MAX_VALUE", type=>"IV", macro=>"1"}, {name=>"HTTP_METHOD_NOT_ALLOWED", type=>"IV", macro=>"1"}, {name=>"HTTP_MOVED_PERMANENTLY", type=>"IV", macro=>"1"}, {name=>"HTTP_MOVED_TEMPORARILY", type=>"IV", macro=>"1"}, {name=>"HTTP_MULTIPLE_CHOICES", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_ACCEPTABLE", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_AUTHORITATIVE", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_FOUND", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_IMPLEMENTED", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_MODIFIED", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"HTTP_NO_CONTENT", type=>"IV", macro=>"1"}, {name=>"HTTP_OK", type=>"IV", macro=>"1"}, {name=>"HTTP_OPTIONS", type=>"IV", macro=>"1"}, {name=>"HTTP_PARTIAL_CONTENT", type=>"IV", macro=>"1"}, {name=>"HTTP_PAYMENT_REQUIRED", type=>"IV", macro=>"1"}, {name=>"HTTP_POST", type=>"IV", macro=>"1"}, {name=>"HTTP_POST_RECV", type=>"IV", macro=>"1"}, {name=>"HTTP_POST_SEND", type=>"IV", macro=>"1"}, {name=>"HTTP_PRECONDITION", type=>"IV", macro=>"1"}, {name=>"HTTP_PROXY_AUTHENTICATION", type=>"IV", macro=>"1"}, {name=>"HTTP_PUT", type=>"IV", macro=>"1"}, {name=>"HTTP_PUT_RECV", type=>"IV", macro=>"1"}, {name=>"HTTP_REQUESTED_RANGE", type=>"IV", macro=>"1"}, {name=>"HTTP_REQUEST_TIMEOUT", type=>"IV", macro=>"1"}, {name=>"HTTP_REQUEST_TOO_LARGE", type=>"IV", macro=>"1"}, {name=>"HTTP_RESET_CONTENT", type=>"IV", macro=>"1"}, {name=>"HTTP_SEE_OTHER", type=>"IV", macro=>"1"}, {name=>"HTTP_SERVER_ERROR", type=>"IV", macro=>"1"}, {name=>"HTTP_SERVICE_UNAVAILABLE", type=>"IV", macro=>"1"}, {name=>"HTTP_STATUS", type=>"IV", macro=>"1"}, {name=>"HTTP_SWITCHING_PROTOCOLS", type=>"IV", macro=>"1"}, {name=>"HTTP_TRACE", type=>"IV", macro=>"1"}, {name=>"HTTP_UNAUTHORIZED", type=>"IV", macro=>"1"}, {name=>"HTTP_UNSUPPORTED_MEDIATYPE", type=>"IV", macro=>"1"}, {name=>"HTTP_UPGRADE_REQUIRED", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_ARGUMENTS", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_HOSTNAME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_PORT", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_RESOURCE", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_SCHEME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_URI", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_USERNAME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_ALL", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_HOSTNAME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_MOST", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_NONE", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_QUERY", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_RESOURCE", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_USERNAME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_MISSING_RESOURCE", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_MISSING_SCHEME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_OK", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_OVERFLOW", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_TOO_LONG", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_UNKNOWN_SCHEME", type=>"IV", macro=>"1"}, {name=>"HTTP_USE_PROXY", type=>"IV", macro=>"1"}, {name=>"HTTP_WAITING", type=>"IV", macro=>"1"}, {name=>"IPP_ACTIVATE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_ATTRIBUTE", type=>"IV", macro=>"1"}, {name=>"IPP_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_ATTRIBUTES_NOT_SETTABLE", type=>"IV", macro=>"1"}, {name=>"IPP_BAD_REQUEST", type=>"IV", macro=>"1"}, {name=>"IPP_CANCEL_CURRENT_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_CANCEL_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_CANCEL_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_CHARSET", type=>"IV", macro=>"1"}, {name=>"IPP_COMPRESSION_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_COMPRESSION_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"IPP_CONFLICT", type=>"IV", macro=>"1"}, {name=>"IPP_CREATE_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_CREATE_JOB_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_CREATE_PRINTER_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_DATA", type=>"IV", macro=>"1"}, {name=>"IPP_DEACTIVATE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_DEVICE_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_DISABLE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_DOCUMENT_ACCESS_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_DOCUMENT_FORMAT", type=>"IV", macro=>"1"}, {name=>"IPP_DOCUMENT_FORMAT_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_ENABLE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_ERROR_JOB_CANCELLED", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BALE", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND_BOTTOM", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND_TOP", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BOOKLET_MAKER", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_COVER", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH_BOTTOM", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH_TOP", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_FOLD", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_JOB_OFFSET", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_NONE", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_PUNCH", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_SADDLE_STITCH", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_BOTTOM_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_DUAL_BOTTOM", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_DUAL_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_DUAL_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_DUAL_TOP", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_TOP_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_TOP_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_TRIM", type=>"IV", macro=>"1"}, {name=>"IPP_FORBIDDEN", type=>"IV", macro=>"1"}, {name=>"IPP_GET_JOBS", type=>"IV", macro=>"1"}, {name=>"IPP_GET_JOB_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_GET_NOTIFICATIONS", type=>"IV", macro=>"1"}, {name=>"IPP_GET_PRINTER_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_GET_PRINTER_SUPPORTED_VALUES", type=>"IV", macro=>"1"}, {name=>"IPP_GET_PRINT_SUPPORT_FILES", type=>"IV", macro=>"1"}, {name=>"IPP_GET_SUBSCRIPTIONS", type=>"IV", macro=>"1"}, {name=>"IPP_GET_SUBSCRIPTION_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_GONE", type=>"IV", macro=>"1"}, {name=>"IPP_HEADER", type=>"IV", macro=>"1"}, {name=>"IPP_HOLD_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_HOLD_NEW_JOBS", type=>"IV", macro=>"1"}, {name=>"IPP_IDLE", type=>"IV", macro=>"1"}, {name=>"IPP_IGNORED_ALL_NOTIFICATIONS", type=>"IV", macro=>"1"}, {name=>"IPP_IGNORED_ALL_SUBSCRIPTIONS", type=>"IV", macro=>"1"}, {name=>"IPP_INTERNAL_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_ABORTED", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_CANCELLED", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_COMPLETED", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_HELD", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_PENDING", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_PROCESSING", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_STOPPED", type=>"IV", macro=>"1"}, {name=>"IPP_LANDSCAPE", type=>"IV", macro=>"1"}, {name=>"IPP_MAX_NAME", type=>"IV", macro=>"1"}, {name=>"IPP_MAX_VALUES", type=>"IV", macro=>"1"}, {name=>"IPP_MULTIPLE_JOBS_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_ACCEPTING", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_AUTHENTICATED", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_AUTHORIZED", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_FOUND", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_POSSIBLE", type=>"IV", macro=>"1"}, {name=>"IPP_OK", type=>"IV", macro=>"1"}, {name=>"IPP_OK_BUT_CANCEL_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_OK_CONFLICT", type=>"IV", macro=>"1"}, {name=>"IPP_OK_EVENTS_COMPLETE", type=>"IV", macro=>"1"}, {name=>"IPP_OK_IGNORED_NOTIFICATIONS", type=>"IV", macro=>"1"}, {name=>"IPP_OK_IGNORED_SUBSCRIPTIONS", type=>"IV", macro=>"1"}, {name=>"IPP_OK_SUBST", type=>"IV", macro=>"1"}, {name=>"IPP_OK_TOO_MANY_EVENTS", type=>"IV", macro=>"1"}, {name=>"IPP_OPERATION_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"IPP_PAUSE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_PORT", type=>"IV", macro=>"1"}, {name=>"IPP_PORTRAIT", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_BUSY", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_IDLE", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_IS_DEACTIVATED", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_PROCESSING", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_STOPPED", type=>"IV", macro=>"1"}, {name=>"IPP_PRINT_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_PRINT_SUPPORT_FILE_NOT_FOUND", type=>"IV", macro=>"1"}, {name=>"IPP_PRINT_URI", type=>"IV", macro=>"1"}, {name=>"IPP_PRIVATE", type=>"IV", macro=>"1"}, {name=>"IPP_PROMOTE_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_PURGE_JOBS", type=>"IV", macro=>"1"}, {name=>"IPP_QUALITY_DRAFT", type=>"IV", macro=>"1"}, {name=>"IPP_QUALITY_HIGH", type=>"IV", macro=>"1"}, {name=>"IPP_QUALITY_NORMAL", type=>"IV", macro=>"1"}, {name=>"IPP_REDIRECTION_OTHER_SITE", type=>"IV", macro=>"1"}, {name=>"IPP_RELEASE_HELD_NEW_JOBS", type=>"IV", macro=>"1"}, {name=>"IPP_RELEASE_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_RENEW_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_REPROCESS_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_REQUEST_ENTITY", type=>"IV", macro=>"1"}, {name=>"IPP_REQUEST_VALUE", type=>"IV", macro=>"1"}, {name=>"IPP_RESTART_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_RESTART_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_RESUME_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_RESUME_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_RES_PER_CM", type=>"IV", macro=>"1"}, {name=>"IPP_RES_PER_INCH", type=>"IV", macro=>"1"}, {name=>"IPP_REVERSE_LANDSCAPE", type=>"IV", macro=>"1"}, {name=>"IPP_REVERSE_PORTRAIT", type=>"IV", macro=>"1"}, {name=>"IPP_SCHEDULE_JOB_AFTER", type=>"IV", macro=>"1"}, {name=>"IPP_SEND_DOCUMENT", type=>"IV", macro=>"1"}, {name=>"IPP_SEND_NOTIFICATIONS", type=>"IV", macro=>"1"}, {name=>"IPP_SEND_URI", type=>"IV", macro=>"1"}, {name=>"IPP_SERVICE_UNAVAILABLE", type=>"IV", macro=>"1"}, {name=>"IPP_SET_JOB_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_SET_PRINTER_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_SHUTDOWN_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_STARTUP_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_SUSPEND_CURRENT_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_ADMINDEFINE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_BEGIN_COLLECTION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_BOOLEAN", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_CHARSET", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_COPY", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_DATE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_DEFAULT", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_DELETEATTR", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_END", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_END_COLLECTION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_ENUM", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_EVENT_NOTIFICATION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_INTEGER", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_KEYWORD", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_LANGUAGE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_MASK", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_MEMBERNAME", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_MIMETYPE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_NAME", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_NAMELANG", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_NOTSETTABLE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_NOVALUE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_OPERATION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_RANGE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_RESOLUTION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_STRING", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_TEXT", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_TEXTLANG", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_UNKNOWN", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_UNSUPPORTED_GROUP", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_UNSUPPORTED_VALUE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_URI", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_URISCHEME", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_ZERO", type=>"IV", macro=>"1"}, {name=>"IPP_TEMPORARY_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_TIMEOUT", type=>"IV", macro=>"1"}, {name=>"IPP_TOO_MANY_SUBSCRIPTIONS", type=>"IV", macro=>"1"}, {name=>"IPP_URI_SCHEME", type=>"IV", macro=>"1"}, {name=>"IPP_VALIDATE_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_VERSION_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"PPD_ALLOC_ERROR", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_CUSTOM_PARAM", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_OPEN_GROUP", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_OPEN_UI", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_ORDER_DEPENDENCY", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_UI_CONSTRAINTS", type=>"IV", macro=>"1"}, {name=>"PPD_CONFORM_RELAXED", type=>"IV", macro=>"1"}, {name=>"PPD_CONFORM_STRICT", type=>"IV", macro=>"1"}, {name=>"PPD_CS_CMY", type=>"IV", macro=>"1"}, {name=>"PPD_CS_CMYK", type=>"IV", macro=>"1"}, {name=>"PPD_CS_GRAY", type=>"IV", macro=>"1"}, {name=>"PPD_CS_N", type=>"IV", macro=>"1"}, {name=>"PPD_CS_RGB", type=>"IV", macro=>"1"}, {name=>"PPD_CS_RGBK", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_CURVE", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_INT", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_INVCURVE", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_PASSCODE", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_PASSWORD", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_POINTS", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_REAL", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_STRING", type=>"IV", macro=>"1"}, {name=>"PPD_FILE_OPEN_ERROR", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_CHARACTER", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_MAIN_KEYWORD", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_OPTION_KEYWORD", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_TRANSLATION", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_WHITESPACE", type=>"IV", macro=>"1"}, {name=>"PPD_INTERNAL_ERROR", type=>"IV", macro=>"1"}, {name=>"PPD_LINE_TOO_LONG", type=>"IV", macro=>"1"}, {name=>"PPD_MAX_LINE", type=>"IV", macro=>"1"}, {name=>"PPD_MAX_NAME", type=>"IV", macro=>"1"}, {name=>"PPD_MAX_TEXT", type=>"IV", macro=>"1"}, {name=>"PPD_MISSING_ASTERISK", type=>"IV", macro=>"1"}, {name=>"PPD_MISSING_PPDADOBE4", type=>"IV", macro=>"1"}, {name=>"PPD_MISSING_VALUE", type=>"IV", macro=>"1"}, {name=>"PPD_NESTED_OPEN_GROUP", type=>"IV", macro=>"1"}, {name=>"PPD_NESTED_OPEN_UI", type=>"IV", macro=>"1"}, {name=>"PPD_NULL_FILE", type=>"IV", macro=>"1"}, {name=>"PPD_OK", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_ANY", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_DOCUMENT", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_EXIT", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_JCL", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_PAGE", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_PROLOG", type=>"IV", macro=>"1"}, {name=>"PPD_UI_BOOLEAN", type=>"IV", macro=>"1"}, {name=>"PPD_UI_PICKMANY", type=>"IV", macro=>"1"}, {name=>"PPD_UI_PICKONE", type=>"IV", macro=>"1"}, {name=>"PPD_VERSION", type=>"IV", macro=>"1"}); print constant_types(), "\n"; # macro defs foreach (C_constant ("Net::CUPS", 'constant', 'IV', $types, undef, 3, @names) ) { print $_, "\n"; # C constant subs } print "\n#### XS Section:\n"; print XS_constant ("Net::CUPS", $types); __END__ */ switch (len) { case 5: if (memEQ(name, "INET6", 5)) { #ifdef INET6 *iv_return = INET6; return PERL_constant_ISIV; #else return PERL_constant_NOTDEF; #endif } break; case 6: /* Names all of length 6. */ /* IPP_OK PPD_OK */ /* Offset 0 gives the best switch position. */ switch (*name++) { case 'I': if (memEQ(name, "PP_OK", 5)) { /* I */ *iv_return = IPP_OK; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "PD_OK", 5)) { /* P */ *iv_return = PPD_OK; return PERL_constant_ISIV; } break; } break; case 7: if (memEQ(name, "HTTP_OK", 7)) { *iv_return = HTTP_OK; return PERL_constant_ISIV; } break; case 8: return constant_8 (aTHX_ name, iv_return); break; case 9: return constant_9 (aTHX_ name, iv_return); break; case 10: return constant_10 (aTHX_ name, iv_return); break; case 11: return constant_11 (aTHX_ name, iv_return); break; case 12: return constant_12 (aTHX_ name, iv_return); break; case 13: return constant_13 (aTHX_ name, iv_return); break; case 14: return constant_14 (aTHX_ name, iv_return); break; case 15: return constant_15 (aTHX_ name, iv_return); break; case 16: return constant_16 (aTHX_ name, iv_return); break; case 17: return constant_17 (aTHX_ name, iv_return); break; case 18: return constant_18 (aTHX_ name, iv_return); break; case 19: return constant_19 (aTHX_ name, iv_return); break; case 20: return constant_20 (aTHX_ name, iv_return); break; case 21: return constant_21 (aTHX_ name, iv_return); break; case 22: return constant_22 (aTHX_ name, iv_return); break; case 23: return constant_23 (aTHX_ name, iv_return); break; case 24: return constant_24 (aTHX_ name, iv_return); break; case 25: return constant_25 (aTHX_ name, iv_return); break; case 26: return constant_26 (aTHX_ name, iv_return); break; case 27: return constant_27 (aTHX_ name, iv_return); break; case 28: return constant_28 (aTHX_ name, iv_return); break; case 29: return constant_29 (aTHX_ name, iv_return); break; case 30: return constant_30 (aTHX_ name, iv_return); break; case 31: return constant_31 (aTHX_ name, iv_return); break; case 32: return constant_32 (aTHX_ name, iv_return); break; case 33: return constant_33 (aTHX_ name, iv_return); break; case 34: if (memEQ(name, "IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT", 34)) { *iv_return = IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT; return PERL_constant_ISIV; } break; case 35: if (memEQ(name, "IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB", 35)) { *iv_return = IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } Net-CUPS-0.61/Makefile.PL0000644001127700037230000006317011242660627013341 0ustar dhagemanuse 5.006; use ExtUtils::MakeMaker; print "Net::CUPS Configuration\n"; ## We will need a hash to store our configuration options. my %config; print "Running cups-config ... "; my $version = `cups-config --version`; $version =~ s/^\s+//g; $version =~ s/\s+$//g; ## Check to see if we have found the cups-config script if( !defined( $version ) ) { print "failed.\n\n"; print "Net::CUPS requires the Common Unix Printing System. Check\n"; print "your system configuration and then attempt the configure\n"; print "process again.\n"; ## I would like to exit( 0 ), but apparently this gives me bad ## reports from CPAN Testers. *sigh* exit( 0 ); } else { print "$version\n"; } my @version_parts = split( /\./, $version ); if( ( $version_parts[1] < 2 ) || ( ( $version_parts[1] == 2 ) && ( $version_parts[2] < 2 ) ) ) { print "The version of the Common Unix Printing System installed\n"; print "on your system is too old for this module to work properly.\n"; print "Please upgrade the version of CUPS on your system to version \n"; print "1.2.2 or higher and re-run Makefile.PL to install this module.\n\n"; ## I would like to exit( 0 ), but apparently this gives me bad ## reports from CPAN Testers. *sigh* exit( 0 ); } ## Grab the CFLAGS ... $config{INC} = `cups-config --cflags`; ## Grab the LIBS ... $config{LIBS} = `cups-config --libs`; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( NAME => 'Net::CUPS', VERSION_FROM => 'lib/Net/CUPS.pm', # finds $VERSION LICENSE => 'perl', PREREQ_PM => {'Test::More' => 0, }, # e.g., Module::Name => 1.1 ($] >= 5.005 ? ## Add these new keywords supported since 5.005 (ABSTRACT_FROM => 'lib/Net/CUPS.pm', # retrieve abstract from module AUTHOR => 'D. Hageman ') : ()), LIBS => [''], # e.g., '-lm' DEFINE => '', # e.g., '-DHAVE_SOMETHING' %config ); if (eval {require ExtUtils::Constant; 1}) { # If you edit these definitions to change the constants used by this module, # you will need to use the generated const-c.inc and const-xs.inc # files to replace their "fallback" counterparts before distributing your # changes. my @names = ( { name => "AF_LOCAL", macro => "1" }, { name => "CUPS_ACCEPT_JOBS", macro => "1" }, { name => "CUPS_ADD_CLASS", macro => "1" }, { name => "CUPS_ADD_MODIFY_CLASS", macro => "1" }, { name => "CUPS_ADD_MODIFY_PRINTER", macro => "1" }, { name => "CUPS_ADD_PRINTER", macro => "1" }, { name => "CUPS_AUTHENTICATE_JOB", macro => "1" }, { name => "CUPS_AUTO_ENCODING", macro => "1" }, #{ name => "CUPS_BACKEND_AUTH_REQUIRED", macro => "1" }, #{ name => "CUPS_BACKEND_CANCEL", macro => "1" }, #{ name => "CUPS_BACKEND_FAILED", macro => "1" }, #{ name => "CUPS_BACKEND_HOLD", macro => "1" }, #{ name => "CUPS_BACKEND_OK", macro => "1" }, #{ name => "CUPS_BACKEND_STOP", macro => "1" }, { name => "CUPS_DATE_ANY", macro => "1" }, { name => "CUPS_DELETE_CLASS", macro => "1" }, { name => "CUPS_DELETE_PRINTER", macro => "1" }, { name => "CUPS_ENCODING_DBCS_END", macro => "1" }, { name => "CUPS_ENCODING_SBCS_END", macro => "1" }, { name => "CUPS_ENCODING_VBCS_END", macro => "1" }, { name => "CUPS_EUC_CN", macro => "1" }, { name => "CUPS_EUC_JP", macro => "1" }, { name => "CUPS_EUC_KR", macro => "1" }, { name => "CUPS_EUC_TW", macro => "1" }, { name => "CUPS_FILE_GZIP", macro => "1" }, { name => "CUPS_FILE_NONE", macro => "1" }, { name => "CUPS_GET_CLASSES", macro => "1" }, { name => "CUPS_GET_DEFAULT", macro => "1" }, { name => "CUPS_GET_DEVICES", macro => "1" }, { name => "CUPS_GET_PPDS", macro => "1" }, { name => "CUPS_GET_PRINTERS", macro => "1" }, { name => "CUPS_IMAGE_BLACK", macro => "1" }, { name => "CUPS_IMAGE_CMY", macro => "1" }, { name => "CUPS_IMAGE_CMYK", macro => "1" }, { name => "CUPS_IMAGE_RGB", macro => "1" }, { name => "CUPS_IMAGE_RGB_CMYK", macro => "1" }, { name => "CUPS_IMAGE_WHITE", macro => "1" }, { name => "CUPS_ISO8859_1", macro => "1" }, { name => "CUPS_ISO8859_10", macro => "1" }, { name => "CUPS_ISO8859_11", macro => "1" }, { name => "CUPS_ISO8859_13", macro => "1" }, { name => "CUPS_ISO8859_14", macro => "1" }, { name => "CUPS_ISO8859_15", macro => "1" }, { name => "CUPS_ISO8859_16", macro => "1" }, { name => "CUPS_ISO8859_2", macro => "1" }, { name => "CUPS_ISO8859_3", macro => "1" }, { name => "CUPS_ISO8859_4", macro => "1" }, { name => "CUPS_ISO8859_5", macro => "1" }, { name => "CUPS_ISO8859_6", macro => "1" }, { name => "CUPS_ISO8859_7", macro => "1" }, { name => "CUPS_ISO8859_8", macro => "1" }, { name => "CUPS_ISO8859_9", macro => "1" }, { name => "CUPS_KOI8_R", macro => "1" }, { name => "CUPS_KOI8_U", macro => "1" }, { name => "CUPS_MAC_ROMAN", macro => "1" }, { name => "CUPS_MAX_USTRING", macro => "1" }, { name => "CUPS_MOVE_JOB", macro => "1" }, { name => "CUPS_PRINTER_AUTHENTICATED", macro => "1" }, { name => "CUPS_PRINTER_BIND", macro => "1" }, { name => "CUPS_PRINTER_BW", macro => "1" }, { name => "CUPS_PRINTER_CLASS", macro => "1" }, { name => "CUPS_PRINTER_COLLATE", macro => "1" }, { name => "CUPS_PRINTER_COLOR", macro => "1" }, { name => "CUPS_PRINTER_COMMANDS", macro => "1" }, { name => "CUPS_PRINTER_COPIES", macro => "1" }, { name => "CUPS_PRINTER_COVER", macro => "1" }, { name => "CUPS_PRINTER_DEFAULT", macro => "1" }, { name => "CUPS_PRINTER_DELETE", macro => "1" }, { name => "CUPS_PRINTER_DUPLEX", macro => "1" }, { name => "CUPS_PRINTER_FAX", macro => "1" }, { name => "CUPS_PRINTER_IMPLICIT", macro => "1" }, { name => "CUPS_PRINTER_LARGE", macro => "1" }, { name => "CUPS_PRINTER_LOCAL", macro => "1" }, { name => "CUPS_PRINTER_MEDIUM", macro => "1" }, { name => "CUPS_PRINTER_NOT_SHARED", macro => "1" }, { name => "CUPS_PRINTER_OPTIONS", macro => "1" }, { name => "CUPS_PRINTER_PUNCH", macro => "1" }, { name => "CUPS_PRINTER_REJECTING", macro => "1" }, { name => "CUPS_PRINTER_REMOTE", macro => "1" }, { name => "CUPS_PRINTER_SMALL", macro => "1" }, { name => "CUPS_PRINTER_SORT", macro => "1" }, { name => "CUPS_PRINTER_STAPLE", macro => "1" }, { name => "CUPS_PRINTER_VARIABLE", macro => "1" }, { name => "CUPS_REJECT_JOBS", macro => "1" }, { name => "CUPS_SET_DEFAULT", macro => "1" }, { name => "CUPS_US_ASCII", macro => "1" }, { name => "CUPS_UTF8", macro => "1" }, { name => "CUPS_VERSION", macro => "1" }, { name => "CUPS_VERSION_MAJOR", macro => "1" }, { name => "CUPS_VERSION_MINOR", macro => "1" }, { name => "CUPS_VERSION_PATCH", macro => "1" }, { name => "CUPS_WINDOWS_1250", macro => "1" }, { name => "CUPS_WINDOWS_1251", macro => "1" }, { name => "CUPS_WINDOWS_1252", macro => "1" }, { name => "CUPS_WINDOWS_1253", macro => "1" }, { name => "CUPS_WINDOWS_1254", macro => "1" }, { name => "CUPS_WINDOWS_1255", macro => "1" }, { name => "CUPS_WINDOWS_1256", macro => "1" }, { name => "CUPS_WINDOWS_1257", macro => "1" }, { name => "CUPS_WINDOWS_1258", macro => "1" }, { name => "CUPS_WINDOWS_1361", macro => "1" }, { name => "CUPS_WINDOWS_874", macro => "1" }, { name => "CUPS_WINDOWS_932", macro => "1" }, { name => "CUPS_WINDOWS_936", macro => "1" }, { name => "CUPS_WINDOWS_949", macro => "1" }, { name => "CUPS_WINDOWS_950", macro => "1" }, { name => "HTTP_0_9", macro => "1" }, { name => "HTTP_1_0", macro => "1" }, { name => "HTTP_1_1", macro => "1" }, { name => "HTTP_ACCEPTED", macro => "1" }, { name => "HTTP_AUTH_BASIC", macro => "1" }, { name => "HTTP_AUTH_MD5", macro => "1" }, { name => "HTTP_AUTH_MD5_INT", macro => "1" }, { name => "HTTP_AUTH_MD5_SESS", macro => "1" }, { name => "HTTP_AUTH_MD5_SESS_INT", macro => "1" }, { name => "HTTP_AUTH_NONE", macro => "1" }, { name => "HTTP_BAD_GATEWAY", macro => "1" }, { name => "HTTP_BAD_REQUEST", macro => "1" }, { name => "HTTP_CLOSE", macro => "1" }, { name => "HTTP_CONFLICT", macro => "1" }, { name => "HTTP_CONTINUE", macro => "1" }, { name => "HTTP_CREATED", macro => "1" }, { name => "HTTP_DELETE", macro => "1" }, { name => "HTTP_ENCODE_CHUNKED", macro => "1" }, #{ name => "HTTP_ENCODE_FIELDS", macro => "1" }, { name => "HTTP_ENCODE_LENGTH", macro => "1" }, { name => "HTTP_ENCRYPT_ALWAYS", macro => "1" }, { name => "HTTP_ENCRYPT_IF_REQUESTED", macro => "1" }, { name => "HTTP_ENCRYPT_NEVER", macro => "1" }, { name => "HTTP_ENCRYPT_REQUIRED", macro => "1" }, { name => "HTTP_ERROR", macro => "1" }, { name => "HTTP_EXPECTATION_FAILED", macro => "1" }, { name => "HTTP_FIELD_ACCEPT_LANGUAGE", macro => "1" }, { name => "HTTP_FIELD_ACCEPT_RANGES", macro => "1" }, { name => "HTTP_FIELD_AUTHORIZATION", macro => "1" }, { name => "HTTP_FIELD_CONNECTION", macro => "1" }, { name => "HTTP_FIELD_CONTENT_ENCODING", macro => "1" }, { name => "HTTP_FIELD_CONTENT_LANGUAGE", macro => "1" }, { name => "HTTP_FIELD_CONTENT_LENGTH", macro => "1" }, { name => "HTTP_FIELD_CONTENT_LOCATION", macro => "1" }, { name => "HTTP_FIELD_CONTENT_MD5", macro => "1" }, { name => "HTTP_FIELD_CONTENT_RANGE", macro => "1" }, { name => "HTTP_FIELD_CONTENT_TYPE", macro => "1" }, { name => "HTTP_FIELD_CONTENT_VERSION", macro => "1" }, { name => "HTTP_FIELD_DATE", macro => "1" }, { name => "HTTP_FIELD_HOST", macro => "1" }, { name => "HTTP_FIELD_IF_MODIFIED_SINCE", macro => "1" }, { name => "HTTP_FIELD_IF_UNMODIFIED_SINCE", macro => "1" }, { name => "HTTP_FIELD_KEEP_ALIVE", macro => "1" }, { name => "HTTP_FIELD_LAST_MODIFIED", macro => "1" }, { name => "HTTP_FIELD_LINK", macro => "1" }, { name => "HTTP_FIELD_LOCATION", macro => "1" }, { name => "HTTP_FIELD_MAX", macro => "1" }, { name => "HTTP_FIELD_RANGE", macro => "1" }, { name => "HTTP_FIELD_REFERER", macro => "1" }, { name => "HTTP_FIELD_RETRY_AFTER", macro => "1" }, { name => "HTTP_FIELD_TRANSFER_ENCODING", macro => "1" }, { name => "HTTP_FIELD_UNKNOWN", macro => "1" }, { name => "HTTP_FIELD_UPGRADE", macro => "1" }, { name => "HTTP_FIELD_USER_AGENT", macro => "1" }, { name => "HTTP_FIELD_WWW_AUTHENTICATE", macro => "1" }, { name => "HTTP_FORBIDDEN", macro => "1" }, { name => "HTTP_GATEWAY_TIMEOUT", macro => "1" }, { name => "HTTP_GET", macro => "1" }, { name => "HTTP_GET_SEND", macro => "1" }, { name => "HTTP_GONE", macro => "1" }, { name => "HTTP_HEAD", macro => "1" }, { name => "HTTP_KEEPALIVE_OFF", macro => "1" }, { name => "HTTP_KEEPALIVE_ON", macro => "1" }, { name => "HTTP_LENGTH_REQUIRED", macro => "1" }, { name => "HTTP_MAX_BUFFER", macro => "1" }, { name => "HTTP_MAX_HOST", macro => "1" }, { name => "HTTP_MAX_URI", macro => "1" }, { name => "HTTP_MAX_VALUE", macro => "1" }, { name => "HTTP_METHOD_NOT_ALLOWED", macro => "1" }, { name => "HTTP_MOVED_PERMANENTLY", macro => "1" }, { name => "HTTP_MOVED_TEMPORARILY", macro => "1" }, { name => "HTTP_MULTIPLE_CHOICES", macro => "1" }, { name => "HTTP_NOT_ACCEPTABLE", macro => "1" }, { name => "HTTP_NOT_AUTHORITATIVE", macro => "1" }, { name => "HTTP_NOT_FOUND", macro => "1" }, { name => "HTTP_NOT_IMPLEMENTED", macro => "1" }, { name => "HTTP_NOT_MODIFIED", macro => "1" }, { name => "HTTP_NOT_SUPPORTED", macro => "1" }, { name => "HTTP_NO_CONTENT", macro => "1" }, { name => "HTTP_OK", macro => "1" }, { name => "HTTP_OPTIONS", macro => "1" }, { name => "HTTP_PARTIAL_CONTENT", macro => "1" }, { name => "HTTP_PAYMENT_REQUIRED", macro => "1" }, { name => "HTTP_POST", macro => "1" }, { name => "HTTP_POST_RECV", macro => "1" }, { name => "HTTP_POST_SEND", macro => "1" }, { name => "HTTP_PRECONDITION", macro => "1" }, { name => "HTTP_PROXY_AUTHENTICATION", macro => "1" }, { name => "HTTP_PUT", macro => "1" }, { name => "HTTP_PUT_RECV", macro => "1" }, { name => "HTTP_REQUESTED_RANGE", macro => "1" }, { name => "HTTP_REQUEST_TIMEOUT", macro => "1" }, { name => "HTTP_REQUEST_TOO_LARGE", macro => "1" }, { name => "HTTP_RESET_CONTENT", macro => "1" }, { name => "HTTP_SEE_OTHER", macro => "1" }, { name => "HTTP_SERVER_ERROR", macro => "1" }, { name => "HTTP_SERVICE_UNAVAILABLE", macro => "1" }, { name => "HTTP_STATUS", macro => "1" }, { name => "HTTP_SWITCHING_PROTOCOLS", macro => "1" }, { name => "HTTP_TRACE", macro => "1" }, { name => "HTTP_UNAUTHORIZED", macro => "1" }, { name => "HTTP_UNSUPPORTED_MEDIATYPE", macro => "1" }, { name => "HTTP_UPGRADE_REQUIRED", macro => "1" }, { name => "HTTP_URI_BAD_ARGUMENTS", macro => "1" }, { name => "HTTP_URI_BAD_HOSTNAME", macro => "1" }, { name => "HTTP_URI_BAD_PORT", macro => "1" }, { name => "HTTP_URI_BAD_RESOURCE", macro => "1" }, { name => "HTTP_URI_BAD_SCHEME", macro => "1" }, { name => "HTTP_URI_BAD_URI", macro => "1" }, { name => "HTTP_URI_BAD_USERNAME", macro => "1" }, { name => "HTTP_URI_CODING_ALL", macro => "1" }, { name => "HTTP_URI_CODING_HOSTNAME", macro => "1" }, { name => "HTTP_URI_CODING_MOST", macro => "1" }, { name => "HTTP_URI_CODING_NONE", macro => "1" }, { name => "HTTP_URI_CODING_QUERY", macro => "1" }, { name => "HTTP_URI_CODING_RESOURCE", macro => "1" }, { name => "HTTP_URI_CODING_USERNAME", macro => "1" }, { name => "HTTP_URI_MISSING_RESOURCE", macro => "1" }, { name => "HTTP_URI_MISSING_SCHEME", macro => "1" }, { name => "HTTP_URI_OK", macro => "1" }, { name => "HTTP_URI_OVERFLOW", macro => "1" }, { name => "HTTP_URI_TOO_LONG", macro => "1" }, { name => "HTTP_URI_UNKNOWN_SCHEME", macro => "1" }, { name => "HTTP_USE_PROXY", macro => "1" }, { name => "HTTP_WAITING", macro => "1" }, qw( INET6 ), { name => "IPP_ACTIVATE_PRINTER", macro => "1" }, { name => "IPP_ATTRIBUTE", macro => "1" }, { name => "IPP_ATTRIBUTES", macro => "1" }, { name => "IPP_ATTRIBUTES_NOT_SETTABLE", macro => "1" }, { name => "IPP_BAD_REQUEST", macro => "1" }, { name => "IPP_CANCEL_CURRENT_JOB", macro => "1" }, { name => "IPP_CANCEL_JOB", macro => "1" }, { name => "IPP_CANCEL_SUBSCRIPTION", macro => "1" }, { name => "IPP_CHARSET", macro => "1" }, { name => "IPP_COMPRESSION_ERROR", macro => "1" }, { name => "IPP_COMPRESSION_NOT_SUPPORTED", macro => "1" }, { name => "IPP_CONFLICT", macro => "1" }, { name => "IPP_CREATE_JOB", macro => "1" }, { name => "IPP_CREATE_JOB_SUBSCRIPTION", macro => "1" }, { name => "IPP_CREATE_PRINTER_SUBSCRIPTION", macro => "1" }, { name => "IPP_DATA", macro => "1" }, { name => "IPP_DEACTIVATE_PRINTER", macro => "1" }, { name => "IPP_DEVICE_ERROR", macro => "1" }, { name => "IPP_DISABLE_PRINTER", macro => "1" }, { name => "IPP_DOCUMENT_ACCESS_ERROR", macro => "1" }, { name => "IPP_DOCUMENT_FORMAT", macro => "1" }, { name => "IPP_DOCUMENT_FORMAT_ERROR", macro => "1" }, { name => "IPP_ENABLE_PRINTER", macro => "1" }, { name => "IPP_ERROR", macro => "1" }, #{ name => "IPP_ERROR_JOB_CANCELED", macro => "1" }, { name => "IPP_ERROR_JOB_CANCELLED", macro => "1" }, { name => "IPP_FINISHINGS_BALE", macro => "1" }, { name => "IPP_FINISHINGS_BIND", macro => "1" }, { name => "IPP_FINISHINGS_BIND_BOTTOM", macro => "1" }, { name => "IPP_FINISHINGS_BIND_LEFT", macro => "1" }, { name => "IPP_FINISHINGS_BIND_RIGHT", macro => "1" }, { name => "IPP_FINISHINGS_BIND_TOP", macro => "1" }, { name => "IPP_FINISHINGS_BOOKLET_MAKER", macro => "1" }, { name => "IPP_FINISHINGS_COVER", macro => "1" }, { name => "IPP_FINISHINGS_EDGE_STITCH", macro => "1" }, { name => "IPP_FINISHINGS_EDGE_STITCH_BOTTOM", macro => "1" }, { name => "IPP_FINISHINGS_EDGE_STITCH_LEFT", macro => "1" }, { name => "IPP_FINISHINGS_EDGE_STITCH_RIGHT", macro => "1" }, { name => "IPP_FINISHINGS_EDGE_STITCH_TOP", macro => "1" }, { name => "IPP_FINISHINGS_FOLD", macro => "1" }, { name => "IPP_FINISHINGS_JOB_OFFSET", macro => "1" }, { name => "IPP_FINISHINGS_NONE", macro => "1" }, { name => "IPP_FINISHINGS_PUNCH", macro => "1" }, { name => "IPP_FINISHINGS_SADDLE_STITCH", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE_BOTTOM_LEFT", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE_DUAL_BOTTOM", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE_DUAL_LEFT", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE_DUAL_RIGHT", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE_DUAL_TOP", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE_TOP_LEFT", macro => "1" }, { name => "IPP_FINISHINGS_STAPLE_TOP_RIGHT", macro => "1" }, { name => "IPP_FINISHINGS_TRIM", macro => "1" }, { name => "IPP_FORBIDDEN", macro => "1" }, { name => "IPP_GET_JOBS", macro => "1" }, { name => "IPP_GET_JOB_ATTRIBUTES", macro => "1" }, { name => "IPP_GET_NOTIFICATIONS", macro => "1" }, { name => "IPP_GET_PRINTER_ATTRIBUTES", macro => "1" }, { name => "IPP_GET_PRINTER_SUPPORTED_VALUES", macro => "1" }, { name => "IPP_GET_PRINT_SUPPORT_FILES", macro => "1" }, { name => "IPP_GET_SUBSCRIPTIONS", macro => "1" }, { name => "IPP_GET_SUBSCRIPTION_ATTRIBUTES", macro => "1" }, { name => "IPP_GONE", macro => "1" }, { name => "IPP_HEADER", macro => "1" }, { name => "IPP_HOLD_JOB", macro => "1" }, { name => "IPP_HOLD_NEW_JOBS", macro => "1" }, { name => "IPP_IDLE", macro => "1" }, { name => "IPP_IGNORED_ALL_NOTIFICATIONS", macro => "1" }, { name => "IPP_IGNORED_ALL_SUBSCRIPTIONS", macro => "1" }, { name => "IPP_INTERNAL_ERROR", macro => "1" }, { name => "IPP_JOB_ABORTED", macro => "1" }, #{ name => "IPP_JOB_CANCELED", macro => "1" }, { name => "IPP_JOB_CANCELLED", macro => "1" }, { name => "IPP_JOB_COMPLETED", macro => "1" }, { name => "IPP_JOB_HELD", macro => "1" }, { name => "IPP_JOB_PENDING", macro => "1" }, { name => "IPP_JOB_PROCESSING", macro => "1" }, { name => "IPP_JOB_STOPPED", macro => "1" }, { name => "IPP_LANDSCAPE", macro => "1" }, { name => "IPP_MAX_NAME", macro => "1" }, { name => "IPP_MAX_VALUES", macro => "1" }, { name => "IPP_MULTIPLE_JOBS_NOT_SUPPORTED", macro => "1" }, { name => "IPP_NOT_ACCEPTING", macro => "1" }, { name => "IPP_NOT_AUTHENTICATED", macro => "1" }, { name => "IPP_NOT_AUTHORIZED", macro => "1" }, { name => "IPP_NOT_FOUND", macro => "1" }, { name => "IPP_NOT_POSSIBLE", macro => "1" }, { name => "IPP_OK", macro => "1" }, { name => "IPP_OK_BUT_CANCEL_SUBSCRIPTION", macro => "1" }, { name => "IPP_OK_CONFLICT", macro => "1" }, { name => "IPP_OK_EVENTS_COMPLETE", macro => "1" }, { name => "IPP_OK_IGNORED_NOTIFICATIONS", macro => "1" }, { name => "IPP_OK_IGNORED_SUBSCRIPTIONS", macro => "1" }, { name => "IPP_OK_SUBST", macro => "1" }, { name => "IPP_OK_TOO_MANY_EVENTS", macro => "1" }, { name => "IPP_OPERATION_NOT_SUPPORTED", macro => "1" }, { name => "IPP_PAUSE_PRINTER", macro => "1" }, { name => "IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB", macro => "1" }, { name => "IPP_PORT", macro => "1" }, { name => "IPP_PORTRAIT", macro => "1" }, { name => "IPP_PRINTER_BUSY", macro => "1" }, { name => "IPP_PRINTER_IDLE", macro => "1" }, { name => "IPP_PRINTER_IS_DEACTIVATED", macro => "1" }, { name => "IPP_PRINTER_PROCESSING", macro => "1" }, { name => "IPP_PRINTER_STOPPED", macro => "1" }, { name => "IPP_PRINT_JOB", macro => "1" }, { name => "IPP_PRINT_SUPPORT_FILE_NOT_FOUND", macro => "1" }, { name => "IPP_PRINT_URI", macro => "1" }, { name => "IPP_PRIVATE", macro => "1" }, { name => "IPP_PROMOTE_JOB", macro => "1" }, { name => "IPP_PURGE_JOBS", macro => "1" }, { name => "IPP_QUALITY_DRAFT", macro => "1" }, { name => "IPP_QUALITY_HIGH", macro => "1" }, { name => "IPP_QUALITY_NORMAL", macro => "1" }, { name => "IPP_REDIRECTION_OTHER_SITE", macro => "1" }, { name => "IPP_RELEASE_HELD_NEW_JOBS", macro => "1" }, { name => "IPP_RELEASE_JOB", macro => "1" }, { name => "IPP_RENEW_SUBSCRIPTION", macro => "1" }, { name => "IPP_REPROCESS_JOB", macro => "1" }, { name => "IPP_REQUEST_ENTITY", macro => "1" }, { name => "IPP_REQUEST_VALUE", macro => "1" }, { name => "IPP_RESTART_JOB", macro => "1" }, { name => "IPP_RESTART_PRINTER", macro => "1" }, { name => "IPP_RESUME_JOB", macro => "1" }, { name => "IPP_RESUME_PRINTER", macro => "1" }, { name => "IPP_RES_PER_CM", macro => "1" }, { name => "IPP_RES_PER_INCH", macro => "1" }, { name => "IPP_REVERSE_LANDSCAPE", macro => "1" }, { name => "IPP_REVERSE_PORTRAIT", macro => "1" }, { name => "IPP_SCHEDULE_JOB_AFTER", macro => "1" }, { name => "IPP_SEND_DOCUMENT", macro => "1" }, { name => "IPP_SEND_NOTIFICATIONS", macro => "1" }, { name => "IPP_SEND_URI", macro => "1" }, { name => "IPP_SERVICE_UNAVAILABLE", macro => "1" }, { name => "IPP_SET_JOB_ATTRIBUTES", macro => "1" }, { name => "IPP_SET_PRINTER_ATTRIBUTES", macro => "1" }, { name => "IPP_SHUTDOWN_PRINTER", macro => "1" }, { name => "IPP_STARTUP_PRINTER", macro => "1" }, { name => "IPP_SUSPEND_CURRENT_JOB", macro => "1" }, { name => "IPP_TAG_ADMINDEFINE", macro => "1" }, { name => "IPP_TAG_BEGIN_COLLECTION", macro => "1" }, { name => "IPP_TAG_BOOLEAN", macro => "1" }, { name => "IPP_TAG_CHARSET", macro => "1" }, { name => "IPP_TAG_COPY", macro => "1" }, { name => "IPP_TAG_DATE", macro => "1" }, { name => "IPP_TAG_DEFAULT", macro => "1" }, { name => "IPP_TAG_DELETEATTR", macro => "1" }, { name => "IPP_TAG_END", macro => "1" }, { name => "IPP_TAG_END_COLLECTION", macro => "1" }, { name => "IPP_TAG_ENUM", macro => "1" }, { name => "IPP_TAG_EVENT_NOTIFICATION", macro => "1" }, { name => "IPP_TAG_INTEGER", macro => "1" }, { name => "IPP_TAG_JOB", macro => "1" }, { name => "IPP_TAG_KEYWORD", macro => "1" }, { name => "IPP_TAG_LANGUAGE", macro => "1" }, { name => "IPP_TAG_MASK", macro => "1" }, { name => "IPP_TAG_MEMBERNAME", macro => "1" }, { name => "IPP_TAG_MIMETYPE", macro => "1" }, { name => "IPP_TAG_NAME", macro => "1" }, { name => "IPP_TAG_NAMELANG", macro => "1" }, { name => "IPP_TAG_NOTSETTABLE", macro => "1" }, { name => "IPP_TAG_NOVALUE", macro => "1" }, { name => "IPP_TAG_OPERATION", macro => "1" }, { name => "IPP_TAG_PRINTER", macro => "1" }, { name => "IPP_TAG_RANGE", macro => "1" }, { name => "IPP_TAG_RESOLUTION", macro => "1" }, { name => "IPP_TAG_STRING", macro => "1" }, { name => "IPP_TAG_SUBSCRIPTION", macro => "1" }, { name => "IPP_TAG_TEXT", macro => "1" }, { name => "IPP_TAG_TEXTLANG", macro => "1" }, { name => "IPP_TAG_UNKNOWN", macro => "1" }, { name => "IPP_TAG_UNSUPPORTED_GROUP", macro => "1" }, { name => "IPP_TAG_UNSUPPORTED_VALUE", macro => "1" }, { name => "IPP_TAG_URI", macro => "1" }, { name => "IPP_TAG_URISCHEME", macro => "1" }, { name => "IPP_TAG_ZERO", macro => "1" }, { name => "IPP_TEMPORARY_ERROR", macro => "1" }, { name => "IPP_TIMEOUT", macro => "1" }, { name => "IPP_TOO_MANY_SUBSCRIPTIONS", macro => "1" }, { name => "IPP_URI_SCHEME", macro => "1" }, { name => "IPP_VALIDATE_JOB", macro => "1" }, { name => "IPP_VERSION_NOT_SUPPORTED", macro => "1" }, { name => "PPD_ALLOC_ERROR", macro => "1" }, { name => "PPD_BAD_CUSTOM_PARAM", macro => "1" }, { name => "PPD_BAD_OPEN_GROUP", macro => "1" }, { name => "PPD_BAD_OPEN_UI", macro => "1" }, { name => "PPD_BAD_ORDER_DEPENDENCY", macro => "1" }, { name => "PPD_BAD_UI_CONSTRAINTS", macro => "1" }, { name => "PPD_CONFORM_RELAXED", macro => "1" }, { name => "PPD_CONFORM_STRICT", macro => "1" }, { name => "PPD_CS_CMY", macro => "1" }, { name => "PPD_CS_CMYK", macro => "1" }, { name => "PPD_CS_GRAY", macro => "1" }, { name => "PPD_CS_N", macro => "1" }, { name => "PPD_CS_RGB", macro => "1" }, { name => "PPD_CS_RGBK", macro => "1" }, { name => "PPD_CUSTOM_CURVE", macro => "1" }, { name => "PPD_CUSTOM_INT", macro => "1" }, { name => "PPD_CUSTOM_INVCURVE", macro => "1" }, { name => "PPD_CUSTOM_PASSCODE", macro => "1" }, { name => "PPD_CUSTOM_PASSWORD", macro => "1" }, { name => "PPD_CUSTOM_POINTS", macro => "1" }, { name => "PPD_CUSTOM_REAL", macro => "1" }, { name => "PPD_CUSTOM_STRING", macro => "1" }, { name => "PPD_FILE_OPEN_ERROR", macro => "1" }, { name => "PPD_ILLEGAL_CHARACTER", macro => "1" }, { name => "PPD_ILLEGAL_MAIN_KEYWORD", macro => "1" }, { name => "PPD_ILLEGAL_OPTION_KEYWORD", macro => "1" }, { name => "PPD_ILLEGAL_TRANSLATION", macro => "1" }, { name => "PPD_ILLEGAL_WHITESPACE", macro => "1" }, { name => "PPD_INTERNAL_ERROR", macro => "1" }, { name => "PPD_LINE_TOO_LONG", macro => "1" }, { name => "PPD_MAX_LINE", macro => "1" }, { name => "PPD_MAX_NAME", macro => "1" }, { name => "PPD_MAX_TEXT", macro => "1" }, { name => "PPD_MISSING_ASTERISK", macro => "1" }, { name => "PPD_MISSING_PPDADOBE4", macro => "1" }, { name => "PPD_MISSING_VALUE", macro => "1" }, { name => "PPD_NESTED_OPEN_GROUP", macro => "1" }, { name => "PPD_NESTED_OPEN_UI", macro => "1" }, { name => "PPD_NULL_FILE", macro => "1" }, { name => "PPD_OK", macro => "1" }, { name => "PPD_ORDER_ANY", macro => "1" }, { name => "PPD_ORDER_DOCUMENT", macro => "1" }, { name => "PPD_ORDER_EXIT", macro => "1" }, { name => "PPD_ORDER_JCL", macro => "1" }, { name => "PPD_ORDER_PAGE", macro => "1" }, { name => "PPD_ORDER_PROLOG", macro => "1" }, { name => "PPD_UI_BOOLEAN", macro => "1" }, { name => "PPD_UI_PICKMANY", macro => "1" }, { name => "PPD_UI_PICKONE", macro => "1" }, { name => "PPD_VERSION", macro => "1" } ); ExtUtils::Constant::WriteConstants( NAME => 'Net::CUPS', NAMES => \@names, DEFAULT_TYPE => 'IV', C_FILE => 'const-c.inc', XS_FILE => 'const-xs.inc', ); } else { use File::Copy; use File::Spec; foreach my $file ('const-c.inc', 'const-xs.inc') { my $fallback = File::Spec->catfile('fallback', $file); copy ($fallback, $file) or die "Can't copy $fallback to $file: $!"; } } Net-CUPS-0.61/TODO0000644001127700037230000000044411010464324012037 0ustar dhagemanNet::CUPS TODO List =================== *) Finish adding methods to the Net::CUPS::IPP. *) Finish adding methods to the Net::CUPS::PPD. *) Determine the best way to handle all of the constants. *) Add more debugging and functionality to current example scripts. *) Add more example scripts. Net-CUPS-0.61/Changes0000644001127700037230000001020711242660720012645 0ustar dhagemanRevision history for Perl extension Net::CUPS. 0.61 Tue Aug 18 21:21:28 2009 - Changes to build system to make it easier for packagers. 0.60 Thu Jul 30 08:28:18 2009 - Graham Jenkins reported additional issues with the cleanup in the DESTROY method. Tweaked it to avoid double free issues. 0.59 Wed Sep 3 13:56:12 2008 - I really removed the test this time. 0.58 Thu Aug 21 10:04:32 2008 - No changes to the core in this release. This release is designed to address issues with automated testing. I have removed the tests for manipulating destinations since they required to have accounts on the CUPS system. I have also modified the Makefile.PL to deal with issues in the Perl Testers systems. 0.57 Sun Aug 10 19:19:33 2008 + Special thanks to Mike Eldridge for submitting a patch to correct issues with constants on certain platforms. - Small compile patch to deal with changes in Fedora 9. 0.56 Wed Mar 26 19:35:05 2008 + Most of the changes below were added by Mark Gannon - Added methods to Net::CUPS::Destination to get Uri, Location and Description. - Added methods to Net::CUPS to get PPDs. - Added methods to Net::CUPS to create and delete destinations. - Corrected the issue of creating bastardized objects as reported by Gunnar Wolf. 0.55 Tue Oct 09 20:46:58 2007 - Fixed a segfault in getJobs [Sven-Haegar Koch] - The job hash from getJobs now returns the state! - Added a human readable state to the job hash [Sven-Haegar Koch] - Added basic examples of Net::CUPS operations. - The method getDestination() will attempt to get the default destination on the server if a destination is not provided. 0.51 Wed Mar 14 10:35:16 2007 - Attempt to rework the DESTROY method for Net::CUPS::Destination for a bug reported by Graham Jenkins - Added some extra commentary to the source. 0.50 Fri Feb 15 18:38:28 2007 - Reworked the entire module into the new design. 0.41 Sun Feb 26 22:14:45 2006 - Added patch from Aike Reyer for dealing with passwords. - Added SUPPORT and updated documentation. 0.40 Mon Nov 29 20:46:44 2004 - It was pointed out to me that Network is probably not the best name for the integrated IPP and HTTP modules. Instead they are now named Net::CUPS::Protocol. 0.37 Mon Nov 8 23:49:36 2004 - Net::CUPS::IPP module has been moved to Net::CUPS::Network as the initial plan to have seperate IPP and HTTP modules proved to be an unwise design decision. - Added all HTTP constants to Net::CUPS::Network 0.35 Tue Oct 12 23:37:27 2004 - Upgraded to handle the latest release of CUPS - 1.2.21 - Added the SUPPORT disclaimer to the POD located in CUPS.pm. - Moved all typemaps into a global typemap. - Moved all pack/unpack functions into a globally accessible area. - Fixed issue with running certain functions in Net::CUPS::Printer without having any printers setup in the CUPS config. - Added constants to the Net::CUPS::IPP module. - Added more debugging and polishing to net-cups-lpr 0.30 Tue Dec 9 23:26:17 2003 (Not Distributed) - Added an simple example script demonstrating the usage of Net::CUPS. - Added a Net::CUPS::IPP stub. - Tweaked documentation. 0.25 Sat May 31 19:45:45 2003 - Added constants to Net::CUPS::Printer. - Updated constants in Net::CUPS::PPD. - Added cupsAddDest, cupsGetPPD, cupsGetDest, cupsSetDests to Net::CUPS::Printer. - Added more tests to Net::CUPS::Printer. - Added more tests to Net::CUPS::PPD. - Seperated the C routines for CUPS data type converstion for sharing between the individual perl modules. - Added conversion routines for ppd_attr_t. - Added more error handling to each module. - Started Net::CUPS::IPP module. 0.20 Thu Apr 10 02:22:16 2003 - Reworked the framework of the Net::CUPS module. 0.11 Mon Apr 07 12:00:00 2003 - Added printer configuration option code and documented it. - I don't know why, but for some reason the typemap file was missing from the CPAN tarball. Does 'make dist' not include them in the final package? 0.10 Wed Feb 26 13:18:44 2003 - First public release of Net::CUPS. Net-CUPS-0.61/extra_t/0000755001127700037230000000000011242661040013014 5ustar dhagemanNet-CUPS-0.61/extra_t/03_destination.t0000644001127700037230000000225511053302645016033 0ustar dhageman# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl Net-CUPS.t' ######################### use Test::More tests => 11; BEGIN { use_ok('Net::CUPS'); use_ok('Net::CUPS::Destination'); }; ######################### # Insert your test code below, the Test::More module is use()ed here so read # its man page ( perldoc Test::More ) for help writing this test script. my $cups = Net::CUPS->new(); ok( $cups ); $cups->setServer( "localhost" ); ok( $cups->getServer() eq "localhost" ); my @makes = $cups->getPPDMakes(); ok (@makes); my @ppds = $cups->getAllPPDs(); ok (@ppds); my $ppd_file = $cups->getPPDFileName($ppds[1]); ok ($ppd_file); my $name = "yatp"; my $location = "nowhere"; my $printer_info = "blahblah"; my $device_uri = 'socket://192.168.1.3:9100'; $cups->addDestination($name, $location, $printer_info, $ppd_file, $device_uri); my $dest = $cups->getDestination( $name ); ok ($dest); my $description = $dest->getDescription(); ok( $description eq $printer_info ); my $uri = $dest->getUri(); ok( $uri eq $device_uri ); $cups->deleteDestination($name); ok (! $cups->getDestination($name)); Net-CUPS-0.61/MANIFEST0000644001127700037230000000051211242661234012502 0ustar dhagemanMETA.yml typemap t/01_use.t t/02_cups.t const-c.inc Makefile.PL TODO Changes extra_t/03_destination.t MANIFEST README lib/Net/CUPS/Destination.pm lib/Net/CUPS/PPD.pm lib/Net/CUPS/IPP.pm lib/Net/CUPS.pm packer.c fallback/const-c.inc fallback/const-xs.inc examples/list_dests.pl examples/print_file.pl const-xs.inc CUPS.xs ppport.h Net-CUPS-0.61/README0000644001127700037230000000311511242661012012225 0ustar dhagemanNet::CUPS README ================ Net::CUPS is an interface to the Common Unix Printing System API. Previous versions of this module attempted to provide a Perl interface layer similar to the C interface of CUPS. This was fine for power users, but most people were not looking for this type of interface. This module has now been converted to use an object oriented paradigm to facilitate quicker development and ease of use. The Common Unix Printing System can be found at http://www.cups.org. INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DEPENDENCIES This module requires these other modules and libraries: *) Common Unix Printing System (CUPS) - http://www.cups.org The Makefile.PL will test for the version of the CUPS you have installed and die if an appropriate version is not found. This is due to the way the module had to be coded to handle various variables and functions. COPYRIGHT AND LICENSE Copyright (C) 2003-2005 D. Hageman Copyright (C) 2006-2009 Dracken Technology, Inc. (http://www.dracken.com/) SPECIAL THANKS Sven-Haegar Koch has graciously provided patches to fix issues and make improvements to Net::CUPS. Mark Gannon has provided patches to add quite a bit of additional functionality to Net::CUPS. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. CUPS, the Common UNIX Printing System, the CUPS logo, and ESP Print Pro are the trademark property of Easy Software Products. Net-CUPS-0.61/lib/0000755001127700037230000000000011242661040012114 5ustar dhagemanNet-CUPS-0.61/lib/Net/0000755001127700037230000000000011242661040012642 5ustar dhagemanNet-CUPS-0.61/lib/Net/CUPS/0000755001127700037230000000000011242661040013414 5ustar dhagemanNet-CUPS-0.61/lib/Net/CUPS/Destination.pm0000644001127700037230000006700511242660763016256 0ustar dhagemanpackage Net::CUPS::Destination; ##==================================================================## ## Libraries and Variables ## ##==================================================================## use 5.006; use strict; use warnings; use Carp; require Exporter; use AutoLoader; use Net::CUPS; our @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. # This allows declaration use Net::CUPS ':all'; # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( AF_LOCAL CUPS_ACCEPT_JOBS CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS CUPS_ADD_MODIFY_PRINTER CUPS_ADD_PRINTER CUPS_AUTHENTICATE_JOB CUPS_AUTO_ENCODING CUPS_BACKEND_AUTH_REQUIRED CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_BACKEND_HOLD CUPS_BACKEND_OK CUPS_BACKEND_STOP CUPS_DATE_ANY CUPS_DELETE_CLASS CUPS_DELETE_PRINTER CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_GET_PPDS CUPS_GET_PRINTERS CUPS_IMAGE_BLACK CUPS_IMAGE_CMY CUPS_IMAGE_CMYK CUPS_IMAGE_RGB CUPS_IMAGE_RGB_CMYK CUPS_IMAGE_WHITE CUPS_ISO8859_1 CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_KOI8_R CUPS_KOI8_U CUPS_MAC_ROMAN CUPS_MAX_USTRING CUPS_MOVE_JOB CUPS_PRINTER_AUTHENTICATED CUPS_PRINTER_BIND CUPS_PRINTER_BW CUPS_PRINTER_CLASS CUPS_PRINTER_COLLATE CUPS_PRINTER_COLOR CUPS_PRINTER_COMMANDS CUPS_PRINTER_COPIES CUPS_PRINTER_COVER CUPS_PRINTER_DEFAULT CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_FAX CUPS_PRINTER_IMPLICIT CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_MEDIUM CUPS_PRINTER_NOT_SHARED CUPS_PRINTER_OPTIONS CUPS_PRINTER_PUNCH CUPS_PRINTER_REJECTING CUPS_PRINTER_REMOTE CUPS_PRINTER_SMALL CUPS_PRINTER_SORT CUPS_PRINTER_STAPLE CUPS_PRINTER_VARIABLE CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_US_ASCII CUPS_UTF8 CUPS_VERSION CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_ACCEPTED HTTP_AUTH_BASIC HTTP_AUTH_MD5 HTTP_AUTH_MD5_INT HTTP_AUTH_MD5_SESS HTTP_AUTH_MD5_SESS_INT HTTP_AUTH_NONE HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_CLOSE HTTP_CONFLICT HTTP_CONTINUE HTTP_CREATED HTTP_DELETE HTTP_ENCODE_CHUNKED HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPT_NEVER HTTP_ENCRYPT_REQUIRED HTTP_ERROR HTTP_EXPECTATION_FAILED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONNECTION HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LENGTH HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_CONTENT_TYPE HTTP_FIELD_CONTENT_VERSION HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_IF_UNMODIFIED_SINCE HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_LAST_MODIFIED HTTP_FIELD_LINK HTTP_FIELD_LOCATION HTTP_FIELD_MAX HTTP_FIELD_RANGE HTTP_FIELD_REFERER HTTP_FIELD_RETRY_AFTER HTTP_FIELD_TRANSFER_ENCODING HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_FIELD_USER_AGENT HTTP_FIELD_WWW_AUTHENTICATE HTTP_FORBIDDEN HTTP_GATEWAY_TIMEOUT HTTP_GET HTTP_GET_SEND HTTP_GONE HTTP_HEAD HTTP_KEEPALIVE_OFF HTTP_KEEPALIVE_ON HTTP_LENGTH_REQUIRED HTTP_MAX_BUFFER HTTP_MAX_HOST HTTP_MAX_URI HTTP_MAX_VALUE HTTP_METHOD_NOT_ALLOWED HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_MULTIPLE_CHOICES HTTP_NOT_ACCEPTABLE HTTP_NOT_AUTHORITATIVE HTTP_NOT_FOUND HTTP_NOT_IMPLEMENTED HTTP_NOT_MODIFIED HTTP_NOT_SUPPORTED HTTP_NO_CONTENT HTTP_OK HTTP_OPTIONS HTTP_PARTIAL_CONTENT HTTP_PAYMENT_REQUIRED HTTP_POST HTTP_POST_RECV HTTP_POST_SEND HTTP_PRECONDITION HTTP_PROXY_AUTHENTICATION HTTP_PUT HTTP_PUT_RECV HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_REQUEST_TOO_LARGE HTTP_RESET_CONTENT HTTP_SEE_OTHER HTTP_SERVER_ERROR HTTP_SERVICE_UNAVAILABLE HTTP_STATUS HTTP_SWITCHING_PROTOCOLS HTTP_TRACE HTTP_UNAUTHORIZED HTTP_UNSUPPORTED_MEDIATYPE HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_ARGUMENTS HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_PORT HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_SCHEME HTTP_URI_BAD_URI HTTP_URI_BAD_USERNAME HTTP_URI_CODING_ALL HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE HTTP_URI_CODING_QUERY HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME HTTP_URI_MISSING_RESOURCE HTTP_URI_MISSING_SCHEME HTTP_URI_OK HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG HTTP_URI_UNKNOWN_SCHEME HTTP_USE_PROXY HTTP_WAITING INET6 IPP_ACTIVATE_PRINTER IPP_ATTRIBUTE IPP_ATTRIBUTES IPP_ATTRIBUTES_NOT_SETTABLE IPP_BAD_REQUEST IPP_CANCEL_CURRENT_JOB IPP_CANCEL_JOB IPP_CANCEL_SUBSCRIPTION IPP_CHARSET IPP_COMPRESSION_ERROR IPP_COMPRESSION_NOT_SUPPORTED IPP_CONFLICT IPP_CREATE_JOB IPP_CREATE_JOB_SUBSCRIPTION IPP_CREATE_PRINTER_SUBSCRIPTION IPP_DATA IPP_DEACTIVATE_PRINTER IPP_DEVICE_ERROR IPP_DISABLE_PRINTER IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT IPP_DOCUMENT_FORMAT_ERROR IPP_ENABLE_PRINTER IPP_ERROR IPP_ERROR_JOB_CANCELED IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_BIND_LEFT IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_BIND_TOP IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_COVER IPP_FINISHINGS_EDGE_STITCH IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_FOLD IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_NONE IPP_FINISHINGS_PUNCH IPP_FINISHINGS_SADDLE_STITCH IPP_FINISHINGS_STAPLE IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_FINISHINGS_TRIM IPP_FORBIDDEN IPP_GET_JOBS IPP_GET_JOB_ATTRIBUTES IPP_GET_NOTIFICATIONS IPP_GET_PRINTER_ATTRIBUTES IPP_GET_PRINTER_SUPPORTED_VALUES IPP_GET_PRINT_SUPPORT_FILES IPP_GET_SUBSCRIPTIONS IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_GONE IPP_HEADER IPP_HOLD_JOB IPP_HOLD_NEW_JOBS IPP_IDLE IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_INTERNAL_ERROR IPP_JOB_ABORTED IPP_JOB_CANCELED IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_JOB_HELD IPP_JOB_PENDING IPP_JOB_PROCESSING IPP_JOB_STOPPED IPP_LANDSCAPE IPP_MAX_NAME IPP_MAX_VALUES IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_NOT_ACCEPTING IPP_NOT_AUTHENTICATED IPP_NOT_AUTHORIZED IPP_NOT_FOUND IPP_NOT_POSSIBLE IPP_OK IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_OK_CONFLICT IPP_OK_EVENTS_COMPLETE IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS IPP_OK_SUBST IPP_OK_TOO_MANY_EVENTS IPP_OPERATION_NOT_SUPPORTED IPP_PAUSE_PRINTER IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_PORT IPP_PORTRAIT IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_PRINTER_IS_DEACTIVATED IPP_PRINTER_PROCESSING IPP_PRINTER_STOPPED IPP_PRINT_JOB IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_PRINT_URI IPP_PRIVATE IPP_PROMOTE_JOB IPP_PURGE_JOBS IPP_QUALITY_DRAFT IPP_QUALITY_HIGH IPP_QUALITY_NORMAL IPP_REDIRECTION_OTHER_SITE IPP_RELEASE_HELD_NEW_JOBS IPP_RELEASE_JOB IPP_RENEW_SUBSCRIPTION IPP_REPROCESS_JOB IPP_REQUEST_ENTITY IPP_REQUEST_VALUE IPP_RESTART_JOB IPP_RESTART_PRINTER IPP_RESUME_JOB IPP_RESUME_PRINTER IPP_RES_PER_CM IPP_RES_PER_INCH IPP_REVERSE_LANDSCAPE IPP_REVERSE_PORTRAIT IPP_SCHEDULE_JOB_AFTER IPP_SEND_DOCUMENT IPP_SEND_NOTIFICATIONS IPP_SEND_URI IPP_SERVICE_UNAVAILABLE IPP_SET_JOB_ATTRIBUTES IPP_SET_PRINTER_ATTRIBUTES IPP_SHUTDOWN_PRINTER IPP_STARTUP_PRINTER IPP_SUSPEND_CURRENT_JOB IPP_TAG_ADMINDEFINE IPP_TAG_BEGIN_COLLECTION IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_DEFAULT IPP_TAG_DELETEATTR IPP_TAG_END IPP_TAG_END_COLLECTION IPP_TAG_ENUM IPP_TAG_EVENT_NOTIFICATION IPP_TAG_INTEGER IPP_TAG_JOB IPP_TAG_KEYWORD IPP_TAG_LANGUAGE IPP_TAG_MASK IPP_TAG_MEMBERNAME IPP_TAG_MIMETYPE IPP_TAG_NAME IPP_TAG_NAMELANG IPP_TAG_NOTSETTABLE IPP_TAG_NOVALUE IPP_TAG_OPERATION IPP_TAG_PRINTER IPP_TAG_RANGE IPP_TAG_RESOLUTION IPP_TAG_STRING IPP_TAG_SUBSCRIPTION IPP_TAG_TEXT IPP_TAG_TEXTLANG IPP_TAG_UNKNOWN IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_TAG_URI IPP_TAG_URISCHEME IPP_TAG_ZERO IPP_TEMPORARY_ERROR IPP_TIMEOUT IPP_TOO_MANY_SUBSCRIPTIONS IPP_URI_SCHEME IPP_VALIDATE_JOB IPP_VERSION_NOT_SUPPORTED PPD_ALLOC_ERROR PPD_BAD_CUSTOM_PARAM PPD_BAD_OPEN_GROUP PPD_BAD_OPEN_UI PPD_BAD_ORDER_DEPENDENCY PPD_BAD_UI_CONSTRAINTS PPD_CONFORM_RELAXED PPD_CONFORM_STRICT PPD_CS_CMY PPD_CS_CMYK PPD_CS_GRAY PPD_CS_N PPD_CS_RGB PPD_CS_RGBK PPD_CUSTOM_CURVE PPD_CUSTOM_INT PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_CUSTOM_POINTS PPD_CUSTOM_REAL PPD_CUSTOM_STRING PPD_FILE_OPEN_ERROR PPD_ILLEGAL_CHARACTER PPD_ILLEGAL_MAIN_KEYWORD PPD_ILLEGAL_OPTION_KEYWORD PPD_ILLEGAL_TRANSLATION PPD_ILLEGAL_WHITESPACE PPD_INTERNAL_ERROR PPD_LINE_TOO_LONG PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT PPD_MISSING_ASTERISK PPD_MISSING_PPDADOBE4 PPD_MISSING_VALUE PPD_NESTED_OPEN_GROUP PPD_NESTED_OPEN_UI PPD_NULL_FILE PPD_OK PPD_ORDER_ANY PPD_ORDER_DOCUMENT PPD_ORDER_EXIT PPD_ORDER_JCL PPD_ORDER_PAGE PPD_ORDER_PROLOG PPD_UI_BOOLEAN PPD_UI_PICKMANY PPD_UI_PICKONE PPD_VERSION ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( AF_LOCAL CUPS_ACCEPT_JOBS CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS CUPS_ADD_MODIFY_PRINTER CUPS_ADD_PRINTER CUPS_AUTHENTICATE_JOB CUPS_AUTO_ENCODING CUPS_BACKEND_AUTH_REQUIRED CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_BACKEND_HOLD CUPS_BACKEND_OK CUPS_BACKEND_STOP CUPS_DATE_ANY CUPS_DELETE_CLASS CUPS_DELETE_PRINTER CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_GET_PPDS CUPS_GET_PRINTERS CUPS_IMAGE_BLACK CUPS_IMAGE_CMY CUPS_IMAGE_CMYK CUPS_IMAGE_RGB CUPS_IMAGE_RGB_CMYK CUPS_IMAGE_WHITE CUPS_ISO8859_1 CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_KOI8_R CUPS_KOI8_U CUPS_MAC_ROMAN CUPS_MAX_USTRING CUPS_MOVE_JOB CUPS_PRINTER_AUTHENTICATED CUPS_PRINTER_BIND CUPS_PRINTER_BW CUPS_PRINTER_CLASS CUPS_PRINTER_COLLATE CUPS_PRINTER_COLOR CUPS_PRINTER_COMMANDS CUPS_PRINTER_COPIES CUPS_PRINTER_COVER CUPS_PRINTER_DEFAULT CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_FAX CUPS_PRINTER_IMPLICIT CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_MEDIUM CUPS_PRINTER_NOT_SHARED CUPS_PRINTER_OPTIONS CUPS_PRINTER_PUNCH CUPS_PRINTER_REJECTING CUPS_PRINTER_REMOTE CUPS_PRINTER_SMALL CUPS_PRINTER_SORT CUPS_PRINTER_STAPLE CUPS_PRINTER_VARIABLE CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_US_ASCII CUPS_UTF8 CUPS_VERSION CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_ACCEPTED HTTP_AUTH_BASIC HTTP_AUTH_MD5 HTTP_AUTH_MD5_INT HTTP_AUTH_MD5_SESS HTTP_AUTH_MD5_SESS_INT HTTP_AUTH_NONE HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_CLOSE HTTP_CONFLICT HTTP_CONTINUE HTTP_CREATED HTTP_DELETE HTTP_ENCODE_CHUNKED HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPT_NEVER HTTP_ENCRYPT_REQUIRED HTTP_ERROR HTTP_EXPECTATION_FAILED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONNECTION HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LENGTH HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_CONTENT_TYPE HTTP_FIELD_CONTENT_VERSION HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_IF_UNMODIFIED_SINCE HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_LAST_MODIFIED HTTP_FIELD_LINK HTTP_FIELD_LOCATION HTTP_FIELD_MAX HTTP_FIELD_RANGE HTTP_FIELD_REFERER HTTP_FIELD_RETRY_AFTER HTTP_FIELD_TRANSFER_ENCODING HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_FIELD_USER_AGENT HTTP_FIELD_WWW_AUTHENTICATE HTTP_FORBIDDEN HTTP_GATEWAY_TIMEOUT HTTP_GET HTTP_GET_SEND HTTP_GONE HTTP_HEAD HTTP_KEEPALIVE_OFF HTTP_KEEPALIVE_ON HTTP_LENGTH_REQUIRED HTTP_MAX_BUFFER HTTP_MAX_HOST HTTP_MAX_URI HTTP_MAX_VALUE HTTP_METHOD_NOT_ALLOWED HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_MULTIPLE_CHOICES HTTP_NOT_ACCEPTABLE HTTP_NOT_AUTHORITATIVE HTTP_NOT_FOUND HTTP_NOT_IMPLEMENTED HTTP_NOT_MODIFIED HTTP_NOT_SUPPORTED HTTP_NO_CONTENT HTTP_OK HTTP_OPTIONS HTTP_PARTIAL_CONTENT HTTP_PAYMENT_REQUIRED HTTP_POST HTTP_POST_RECV HTTP_POST_SEND HTTP_PRECONDITION HTTP_PROXY_AUTHENTICATION HTTP_PUT HTTP_PUT_RECV HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_REQUEST_TOO_LARGE HTTP_RESET_CONTENT HTTP_SEE_OTHER HTTP_SERVER_ERROR HTTP_SERVICE_UNAVAILABLE HTTP_STATUS HTTP_SWITCHING_PROTOCOLS HTTP_TRACE HTTP_UNAUTHORIZED HTTP_UNSUPPORTED_MEDIATYPE HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_ARGUMENTS HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_PORT HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_SCHEME HTTP_URI_BAD_URI HTTP_URI_BAD_USERNAME HTTP_URI_CODING_ALL HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE HTTP_URI_CODING_QUERY HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME HTTP_URI_MISSING_RESOURCE HTTP_URI_MISSING_SCHEME HTTP_URI_OK HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG HTTP_URI_UNKNOWN_SCHEME HTTP_USE_PROXY HTTP_WAITING INET6 IPP_ACTIVATE_PRINTER IPP_ATTRIBUTE IPP_ATTRIBUTES IPP_ATTRIBUTES_NOT_SETTABLE IPP_BAD_REQUEST IPP_CANCEL_CURRENT_JOB IPP_CANCEL_JOB IPP_CANCEL_SUBSCRIPTION IPP_CHARSET IPP_COMPRESSION_ERROR IPP_COMPRESSION_NOT_SUPPORTED IPP_CONFLICT IPP_CREATE_JOB IPP_CREATE_JOB_SUBSCRIPTION IPP_CREATE_PRINTER_SUBSCRIPTION IPP_DATA IPP_DEACTIVATE_PRINTER IPP_DEVICE_ERROR IPP_DISABLE_PRINTER IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT IPP_DOCUMENT_FORMAT_ERROR IPP_ENABLE_PRINTER IPP_ERROR IPP_ERROR_JOB_CANCELED IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_BIND_LEFT IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_BIND_TOP IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_COVER IPP_FINISHINGS_EDGE_STITCH IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_FOLD IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_NONE IPP_FINISHINGS_PUNCH IPP_FINISHINGS_SADDLE_STITCH IPP_FINISHINGS_STAPLE IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_FINISHINGS_TRIM IPP_FORBIDDEN IPP_GET_JOBS IPP_GET_JOB_ATTRIBUTES IPP_GET_NOTIFICATIONS IPP_GET_PRINTER_ATTRIBUTES IPP_GET_PRINTER_SUPPORTED_VALUES IPP_GET_PRINT_SUPPORT_FILES IPP_GET_SUBSCRIPTIONS IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_GONE IPP_HEADER IPP_HOLD_JOB IPP_HOLD_NEW_JOBS IPP_IDLE IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_INTERNAL_ERROR IPP_JOB_ABORTED IPP_JOB_CANCELED IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_JOB_HELD IPP_JOB_PENDING IPP_JOB_PROCESSING IPP_JOB_STOPPED IPP_LANDSCAPE IPP_MAX_NAME IPP_MAX_VALUES IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_NOT_ACCEPTING IPP_NOT_AUTHENTICATED IPP_NOT_AUTHORIZED IPP_NOT_FOUND IPP_NOT_POSSIBLE IPP_OK IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_OK_CONFLICT IPP_OK_EVENTS_COMPLETE IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS IPP_OK_SUBST IPP_OK_TOO_MANY_EVENTS IPP_OPERATION_NOT_SUPPORTED IPP_PAUSE_PRINTER IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_PORT IPP_PORTRAIT IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_PRINTER_IS_DEACTIVATED IPP_PRINTER_PROCESSING IPP_PRINTER_STOPPED IPP_PRINT_JOB IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_PRINT_URI IPP_PRIVATE IPP_PROMOTE_JOB IPP_PURGE_JOBS IPP_QUALITY_DRAFT IPP_QUALITY_HIGH IPP_QUALITY_NORMAL IPP_REDIRECTION_OTHER_SITE IPP_RELEASE_HELD_NEW_JOBS IPP_RELEASE_JOB IPP_RENEW_SUBSCRIPTION IPP_REPROCESS_JOB IPP_REQUEST_ENTITY IPP_REQUEST_VALUE IPP_RESTART_JOB IPP_RESTART_PRINTER IPP_RESUME_JOB IPP_RESUME_PRINTER IPP_RES_PER_CM IPP_RES_PER_INCH IPP_REVERSE_LANDSCAPE IPP_REVERSE_PORTRAIT IPP_SCHEDULE_JOB_AFTER IPP_SEND_DOCUMENT IPP_SEND_NOTIFICATIONS IPP_SEND_URI IPP_SERVICE_UNAVAILABLE IPP_SET_JOB_ATTRIBUTES IPP_SET_PRINTER_ATTRIBUTES IPP_SHUTDOWN_PRINTER IPP_STARTUP_PRINTER IPP_SUSPEND_CURRENT_JOB IPP_TAG_ADMINDEFINE IPP_TAG_BEGIN_COLLECTION IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_DEFAULT IPP_TAG_DELETEATTR IPP_TAG_END IPP_TAG_END_COLLECTION IPP_TAG_ENUM IPP_TAG_EVENT_NOTIFICATION IPP_TAG_INTEGER IPP_TAG_JOB IPP_TAG_KEYWORD IPP_TAG_LANGUAGE IPP_TAG_MASK IPP_TAG_MEMBERNAME IPP_TAG_MIMETYPE IPP_TAG_NAME IPP_TAG_NAMELANG IPP_TAG_NOTSETTABLE IPP_TAG_NOVALUE IPP_TAG_OPERATION IPP_TAG_PRINTER IPP_TAG_RANGE IPP_TAG_RESOLUTION IPP_TAG_STRING IPP_TAG_SUBSCRIPTION IPP_TAG_TEXT IPP_TAG_TEXTLANG IPP_TAG_UNKNOWN IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_TAG_URI IPP_TAG_URISCHEME IPP_TAG_ZERO IPP_TEMPORARY_ERROR IPP_TIMEOUT IPP_TOO_MANY_SUBSCRIPTIONS IPP_URI_SCHEME IPP_VALIDATE_JOB IPP_VERSION_NOT_SUPPORTED PPD_ALLOC_ERROR PPD_BAD_CUSTOM_PARAM PPD_BAD_OPEN_GROUP PPD_BAD_OPEN_UI PPD_BAD_ORDER_DEPENDENCY PPD_BAD_UI_CONSTRAINTS PPD_CONFORM_RELAXED PPD_CONFORM_STRICT PPD_CS_CMY PPD_CS_CMYK PPD_CS_GRAY PPD_CS_N PPD_CS_RGB PPD_CS_RGBK PPD_CUSTOM_CURVE PPD_CUSTOM_INT PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_CUSTOM_POINTS PPD_CUSTOM_REAL PPD_CUSTOM_STRING PPD_FILE_OPEN_ERROR PPD_ILLEGAL_CHARACTER PPD_ILLEGAL_MAIN_KEYWORD PPD_ILLEGAL_OPTION_KEYWORD PPD_ILLEGAL_TRANSLATION PPD_ILLEGAL_WHITESPACE PPD_INTERNAL_ERROR PPD_LINE_TOO_LONG PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT PPD_MISSING_ASTERISK PPD_MISSING_PPDADOBE4 PPD_MISSING_VALUE PPD_NESTED_OPEN_GROUP PPD_NESTED_OPEN_UI PPD_NULL_FILE PPD_OK PPD_ORDER_ANY PPD_ORDER_DOCUMENT PPD_ORDER_EXIT PPD_ORDER_JCL PPD_ORDER_PAGE PPD_ORDER_PROLOG PPD_UI_BOOLEAN PPD_UI_PICKMANY PPD_UI_PICKONE PPD_VERSION ); our $VERSION = '0.61'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. my $constname; our $AUTOLOAD; ($constname = $AUTOLOAD) =~ s/.*:://; croak "&Net::CUPS::Destination::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); if ($error) { croak $error; } { no strict 'refs'; # Fixed between 5.005_53 and 5.005_61 #XXX if ($] >= 5.00561) { #XXX *$AUTOLOAD = sub () { $val }; #XXX } #XXX else { *$AUTOLOAD = sub { $val }; #XXX } } goto &$AUTOLOAD; } #require XSLoader; #XSLoader::load('Net::CUPS', $VERSION); ##==================================================================## ## Constructors ## ##==================================================================## ##----------------------------------------------## ## new ## ##----------------------------------------------## sub new { ## Pull in what type of an object we will be my $type = shift; ## Pull in our options if we have any ... my %options = @_; ## XXX One of the options might be a server host ... ## We will use a hash as our base class variable my $self = {}; my $class = ref( $type ) || $type; ## Bless the class for it is good [tm]. bless( $self, $class ); return( $self ); } ##----------------------------------------------## ## DESTROY ## ##----------------------------------------------## sub DESTROY { my $self = shift; NETCUPS_freeDestination( $self ); return; } ##==================================================================## ## Methods ## ##==================================================================## ##----------------------------------------------## ## addOption ## ##----------------------------------------------## sub addOption { my( $self, $name, $value ) = @_; return( NETCUPS_addOption( $self, $name, $value ) ); } ##----------------------------------------------## ## cancelJob ## ##----------------------------------------------## sub cancelJob { my( $self, $jobid ) = @_; my $name = $self->getName(); return( NETCUPS_cancelJob( $name, $jobid ) ); } ##----------------------------------------------## ## getDescription ## ##----------------------------------------------## sub getDescription { my $self = shift; return( NETCUPS_getDeviceAttribute( $self->getName(), "printer-info", IPP_TAG_TEXT() ) ); } ##----------------------------------------------## ## getError ## ##----------------------------------------------## sub getError { my $self = shift; return( NETCUPS_getError() ); } ##----------------------------------------------## ## getJob ## ##----------------------------------------------## sub getJob { my( $self, $jobid ) = @_; my $name = $self->getName(); return( NETCUPS_getJob( $name, $jobid ) ); } ##----------------------------------------------## ## getJobs ## ##----------------------------------------------## sub getJobs { my( $self, $whose, $scope ) = @_; my $name = $self->getName(); return( NETCUPS_getJobs( $name, $whose, $scope ) ); } ##----------------------------------------------## ## getLocation ## ##----------------------------------------------## sub getLocation { my $self = shift; return( NETCUPS_getDeviceAttribute( $self->getName(), "printer-location", IPP_TAG_TEXT() ) ); } ##----------------------------------------------## ## getName ## ##----------------------------------------------## sub getName { my $self = shift; return( NETCUPS_getDestinationName( $self ) ); } ##----------------------------------------------## ## getOptionValue ## ##----------------------------------------------## sub getOptionValue { my( $self, $option ) = @_; return( NETCUPS_getDestinationOptionValue( $self, $option ) ); } ##----------------------------------------------## ## getOptions ## ##----------------------------------------------## sub getOptions { my $self = shift; return( NETCUPS_getDestinationOptions( $self ) ); } ##----------------------------------------------## ## getUri ## ##----------------------------------------------## sub getUri { my $self = shift; return( NETCUPS_getDeviceAttribute( $self->getName(), "device-uri", IPP_TAG_URI() ) ); } ##----------------------------------------------## ## printFile ## ##----------------------------------------------## sub printFile { my( $self, $filename, $title ) = @_; return( NETCUPS_printFile( $self, $filename, $title ) ); } ##==================================================================## ## End of Code ## ##==================================================================## 1; ##==================================================================## ## Plain Old Documentation (POD) ## ##==================================================================## __END__ =head1 NAME Net::CUPS::Destination - CUPS Destination Object =head1 SYNOPSIS use Net::CUPS::Destination; my $printer = $cups->getDestination( "lj4200dn" ); my $name = $printer->getName(); my @options = $printer->getOptions(); my $jobid = $printer->printFile( $filename, $title ); =head1 DESCRIPTION Net::CUPS is an object oriented interface to the Common Unix Printing System. Net::CUPS::Destination is an abstraction of the concept of a destination in CUPS. Destinations will most likely be a printer, but it can be any type of target in which a file is sent for processing. =head1 METHODS =over 4 =item B $dest->addOption( $name, $value ); Method to add another option name/value pair to the destination. =item B my $dest->cancelJob( $jobid ); Method to chancel a job sent to this destination. =item B my $description = $dest->getDescription(); Provides the description string associated with this printer. =item B my $error = $dest->getError(); Utility method for returning the last error that occured. =item B my $name = $dest->getName(); Method to return the name of the destination. =item B my $job = $dest->getJob( $jobid ) Method to get a specific job as a hash of attributes. =item B my @jobs = $dest->getJobs( $whose, $scope ); This method will return an array of job identifiers. $whose is 0 for all users and 1 is just for the selected user. $scope is -1 for all jobs, 0 for active jobs and 1 for completed jobs. =item B Returns the location string for this destination. =item B my $value = $dest->getOptionValue( $name ); This utility method will return the value of the selected option. =item B my @options = $dest->getOptions(); This method will return an array of the options currently set on the destination. =item B my $jobid = $dest->printFile( $filename, $title ); I know this is the method that you have been looking for. This is what you will use to send a file to handled by the destination. You must provide the name of the file and a title for the job. =item B my $uri = $dest->getUri(); This function returns the device URI of a destination. For example, a network printer might appear as socket://192.168.1.1 =back =head1 SEE ALSO L, L, L =head1 SUPPORT Support for this module and other software developed by Dracken Technology, Inc can be found at http://www.dracken.com/. =head1 AUTHOR Dracken Technology, Inc. (http://www.dracken.com/) =head1 COPYRIGHT AND LICENSE Copyright (c) 2003-2005 David Hageman Copyright (c) 2006-2009 Dracken Technology, Inc. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. CUPS, the Common UNIX Printing System, the CUPS logo, and ESP Print Pro are the trademark property of Easy Software Products. =cut Net-CUPS-0.61/lib/Net/CUPS/PPD.pm0000644001127700037230000006267511242661002014413 0ustar dhagemanpackage Net::CUPS::PPD; ##==================================================================## ## Libraries and Variables ## ##==================================================================## use 5.006; use strict; use warnings; use Carp; require Exporter; use AutoLoader; use Net::CUPS; our @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. # This allows declaration use Net::CUPS ':all'; # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( AF_LOCAL CUPS_ACCEPT_JOBS CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS CUPS_ADD_MODIFY_PRINTER CUPS_ADD_PRINTER CUPS_AUTHENTICATE_JOB CUPS_AUTO_ENCODING CUPS_BACKEND_AUTH_REQUIRED CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_BACKEND_HOLD CUPS_BACKEND_OK CUPS_BACKEND_STOP CUPS_DATE_ANY CUPS_DELETE_CLASS CUPS_DELETE_PRINTER CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_GET_PPDS CUPS_GET_PRINTERS CUPS_IMAGE_BLACK CUPS_IMAGE_CMY CUPS_IMAGE_CMYK CUPS_IMAGE_RGB CUPS_IMAGE_RGB_CMYK CUPS_IMAGE_WHITE CUPS_ISO8859_1 CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_KOI8_R CUPS_KOI8_U CUPS_MAC_ROMAN CUPS_MAX_USTRING CUPS_MOVE_JOB CUPS_PRINTER_AUTHENTICATED CUPS_PRINTER_BIND CUPS_PRINTER_BW CUPS_PRINTER_CLASS CUPS_PRINTER_COLLATE CUPS_PRINTER_COLOR CUPS_PRINTER_COMMANDS CUPS_PRINTER_COPIES CUPS_PRINTER_COVER CUPS_PRINTER_DEFAULT CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_FAX CUPS_PRINTER_IMPLICIT CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_MEDIUM CUPS_PRINTER_NOT_SHARED CUPS_PRINTER_OPTIONS CUPS_PRINTER_PUNCH CUPS_PRINTER_REJECTING CUPS_PRINTER_REMOTE CUPS_PRINTER_SMALL CUPS_PRINTER_SORT CUPS_PRINTER_STAPLE CUPS_PRINTER_VARIABLE CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_US_ASCII CUPS_UTF8 CUPS_VERSION CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_ACCEPTED HTTP_AUTH_BASIC HTTP_AUTH_MD5 HTTP_AUTH_MD5_INT HTTP_AUTH_MD5_SESS HTTP_AUTH_MD5_SESS_INT HTTP_AUTH_NONE HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_CLOSE HTTP_CONFLICT HTTP_CONTINUE HTTP_CREATED HTTP_DELETE HTTP_ENCODE_CHUNKED HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPT_NEVER HTTP_ENCRYPT_REQUIRED HTTP_ERROR HTTP_EXPECTATION_FAILED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONNECTION HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LENGTH HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_CONTENT_TYPE HTTP_FIELD_CONTENT_VERSION HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_IF_UNMODIFIED_SINCE HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_LAST_MODIFIED HTTP_FIELD_LINK HTTP_FIELD_LOCATION HTTP_FIELD_MAX HTTP_FIELD_RANGE HTTP_FIELD_REFERER HTTP_FIELD_RETRY_AFTER HTTP_FIELD_TRANSFER_ENCODING HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_FIELD_USER_AGENT HTTP_FIELD_WWW_AUTHENTICATE HTTP_FORBIDDEN HTTP_GATEWAY_TIMEOUT HTTP_GET HTTP_GET_SEND HTTP_GONE HTTP_HEAD HTTP_KEEPALIVE_OFF HTTP_KEEPALIVE_ON HTTP_LENGTH_REQUIRED HTTP_MAX_BUFFER HTTP_MAX_HOST HTTP_MAX_URI HTTP_MAX_VALUE HTTP_METHOD_NOT_ALLOWED HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_MULTIPLE_CHOICES HTTP_NOT_ACCEPTABLE HTTP_NOT_AUTHORITATIVE HTTP_NOT_FOUND HTTP_NOT_IMPLEMENTED HTTP_NOT_MODIFIED HTTP_NOT_SUPPORTED HTTP_NO_CONTENT HTTP_OK HTTP_OPTIONS HTTP_PARTIAL_CONTENT HTTP_PAYMENT_REQUIRED HTTP_POST HTTP_POST_RECV HTTP_POST_SEND HTTP_PRECONDITION HTTP_PROXY_AUTHENTICATION HTTP_PUT HTTP_PUT_RECV HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_REQUEST_TOO_LARGE HTTP_RESET_CONTENT HTTP_SEE_OTHER HTTP_SERVER_ERROR HTTP_SERVICE_UNAVAILABLE HTTP_STATUS HTTP_SWITCHING_PROTOCOLS HTTP_TRACE HTTP_UNAUTHORIZED HTTP_UNSUPPORTED_MEDIATYPE HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_ARGUMENTS HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_PORT HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_SCHEME HTTP_URI_BAD_URI HTTP_URI_BAD_USERNAME HTTP_URI_CODING_ALL HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE HTTP_URI_CODING_QUERY HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME HTTP_URI_MISSING_RESOURCE HTTP_URI_MISSING_SCHEME HTTP_URI_OK HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG HTTP_URI_UNKNOWN_SCHEME HTTP_USE_PROXY HTTP_WAITING INET6 IPP_ACTIVATE_PRINTER IPP_ATTRIBUTE IPP_ATTRIBUTES IPP_ATTRIBUTES_NOT_SETTABLE IPP_BAD_REQUEST IPP_CANCEL_CURRENT_JOB IPP_CANCEL_JOB IPP_CANCEL_SUBSCRIPTION IPP_CHARSET IPP_COMPRESSION_ERROR IPP_COMPRESSION_NOT_SUPPORTED IPP_CONFLICT IPP_CREATE_JOB IPP_CREATE_JOB_SUBSCRIPTION IPP_CREATE_PRINTER_SUBSCRIPTION IPP_DATA IPP_DEACTIVATE_PRINTER IPP_DEVICE_ERROR IPP_DISABLE_PRINTER IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT IPP_DOCUMENT_FORMAT_ERROR IPP_ENABLE_PRINTER IPP_ERROR IPP_ERROR_JOB_CANCELED IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_BIND_LEFT IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_BIND_TOP IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_COVER IPP_FINISHINGS_EDGE_STITCH IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_FOLD IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_NONE IPP_FINISHINGS_PUNCH IPP_FINISHINGS_SADDLE_STITCH IPP_FINISHINGS_STAPLE IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_FINISHINGS_TRIM IPP_FORBIDDEN IPP_GET_JOBS IPP_GET_JOB_ATTRIBUTES IPP_GET_NOTIFICATIONS IPP_GET_PRINTER_ATTRIBUTES IPP_GET_PRINTER_SUPPORTED_VALUES IPP_GET_PRINT_SUPPORT_FILES IPP_GET_SUBSCRIPTIONS IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_GONE IPP_HEADER IPP_HOLD_JOB IPP_HOLD_NEW_JOBS IPP_IDLE IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_INTERNAL_ERROR IPP_JOB_ABORTED IPP_JOB_CANCELED IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_JOB_HELD IPP_JOB_PENDING IPP_JOB_PROCESSING IPP_JOB_STOPPED IPP_LANDSCAPE IPP_MAX_NAME IPP_MAX_VALUES IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_NOT_ACCEPTING IPP_NOT_AUTHENTICATED IPP_NOT_AUTHORIZED IPP_NOT_FOUND IPP_NOT_POSSIBLE IPP_OK IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_OK_CONFLICT IPP_OK_EVENTS_COMPLETE IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS IPP_OK_SUBST IPP_OK_TOO_MANY_EVENTS IPP_OPERATION_NOT_SUPPORTED IPP_PAUSE_PRINTER IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_PORT IPP_PORTRAIT IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_PRINTER_IS_DEACTIVATED IPP_PRINTER_PROCESSING IPP_PRINTER_STOPPED IPP_PRINT_JOB IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_PRINT_URI IPP_PRIVATE IPP_PROMOTE_JOB IPP_PURGE_JOBS IPP_QUALITY_DRAFT IPP_QUALITY_HIGH IPP_QUALITY_NORMAL IPP_REDIRECTION_OTHER_SITE IPP_RELEASE_HELD_NEW_JOBS IPP_RELEASE_JOB IPP_RENEW_SUBSCRIPTION IPP_REPROCESS_JOB IPP_REQUEST_ENTITY IPP_REQUEST_VALUE IPP_RESTART_JOB IPP_RESTART_PRINTER IPP_RESUME_JOB IPP_RESUME_PRINTER IPP_RES_PER_CM IPP_RES_PER_INCH IPP_REVERSE_LANDSCAPE IPP_REVERSE_PORTRAIT IPP_SCHEDULE_JOB_AFTER IPP_SEND_DOCUMENT IPP_SEND_NOTIFICATIONS IPP_SEND_URI IPP_SERVICE_UNAVAILABLE IPP_SET_JOB_ATTRIBUTES IPP_SET_PRINTER_ATTRIBUTES IPP_SHUTDOWN_PRINTER IPP_STARTUP_PRINTER IPP_SUSPEND_CURRENT_JOB IPP_TAG_ADMINDEFINE IPP_TAG_BEGIN_COLLECTION IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_DEFAULT IPP_TAG_DELETEATTR IPP_TAG_END IPP_TAG_END_COLLECTION IPP_TAG_ENUM IPP_TAG_EVENT_NOTIFICATION IPP_TAG_INTEGER IPP_TAG_JOB IPP_TAG_KEYWORD IPP_TAG_LANGUAGE IPP_TAG_MASK IPP_TAG_MEMBERNAME IPP_TAG_MIMETYPE IPP_TAG_NAME IPP_TAG_NAMELANG IPP_TAG_NOTSETTABLE IPP_TAG_NOVALUE IPP_TAG_OPERATION IPP_TAG_PRINTER IPP_TAG_RANGE IPP_TAG_RESOLUTION IPP_TAG_STRING IPP_TAG_SUBSCRIPTION IPP_TAG_TEXT IPP_TAG_TEXTLANG IPP_TAG_UNKNOWN IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_TAG_URI IPP_TAG_URISCHEME IPP_TAG_ZERO IPP_TEMPORARY_ERROR IPP_TIMEOUT IPP_TOO_MANY_SUBSCRIPTIONS IPP_URI_SCHEME IPP_VALIDATE_JOB IPP_VERSION_NOT_SUPPORTED PPD_ALLOC_ERROR PPD_BAD_CUSTOM_PARAM PPD_BAD_OPEN_GROUP PPD_BAD_OPEN_UI PPD_BAD_ORDER_DEPENDENCY PPD_BAD_UI_CONSTRAINTS PPD_CONFORM_RELAXED PPD_CONFORM_STRICT PPD_CS_CMY PPD_CS_CMYK PPD_CS_GRAY PPD_CS_N PPD_CS_RGB PPD_CS_RGBK PPD_CUSTOM_CURVE PPD_CUSTOM_INT PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_CUSTOM_POINTS PPD_CUSTOM_REAL PPD_CUSTOM_STRING PPD_FILE_OPEN_ERROR PPD_ILLEGAL_CHARACTER PPD_ILLEGAL_MAIN_KEYWORD PPD_ILLEGAL_OPTION_KEYWORD PPD_ILLEGAL_TRANSLATION PPD_ILLEGAL_WHITESPACE PPD_INTERNAL_ERROR PPD_LINE_TOO_LONG PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT PPD_MISSING_ASTERISK PPD_MISSING_PPDADOBE4 PPD_MISSING_VALUE PPD_NESTED_OPEN_GROUP PPD_NESTED_OPEN_UI PPD_NULL_FILE PPD_OK PPD_ORDER_ANY PPD_ORDER_DOCUMENT PPD_ORDER_EXIT PPD_ORDER_JCL PPD_ORDER_PAGE PPD_ORDER_PROLOG PPD_UI_BOOLEAN PPD_UI_PICKMANY PPD_UI_PICKONE PPD_VERSION _CUPS_DEPRECATED _HTTP_DEPRECATED s6_addr32 ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( AF_LOCAL CUPS_ACCEPT_JOBS CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS CUPS_ADD_MODIFY_PRINTER CUPS_ADD_PRINTER CUPS_AUTHENTICATE_JOB CUPS_AUTO_ENCODING CUPS_BACKEND_AUTH_REQUIRED CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_BACKEND_HOLD CUPS_BACKEND_OK CUPS_BACKEND_STOP CUPS_DATE_ANY CUPS_DELETE_CLASS CUPS_DELETE_PRINTER CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_GET_PPDS CUPS_GET_PRINTERS CUPS_IMAGE_BLACK CUPS_IMAGE_CMY CUPS_IMAGE_CMYK CUPS_IMAGE_RGB CUPS_IMAGE_RGB_CMYK CUPS_IMAGE_WHITE CUPS_ISO8859_1 CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_KOI8_R CUPS_KOI8_U CUPS_MAC_ROMAN CUPS_MAX_USTRING CUPS_MOVE_JOB CUPS_PRINTER_AUTHENTICATED CUPS_PRINTER_BIND CUPS_PRINTER_BW CUPS_PRINTER_CLASS CUPS_PRINTER_COLLATE CUPS_PRINTER_COLOR CUPS_PRINTER_COMMANDS CUPS_PRINTER_COPIES CUPS_PRINTER_COVER CUPS_PRINTER_DEFAULT CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_FAX CUPS_PRINTER_IMPLICIT CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_MEDIUM CUPS_PRINTER_NOT_SHARED CUPS_PRINTER_OPTIONS CUPS_PRINTER_PUNCH CUPS_PRINTER_REJECTING CUPS_PRINTER_REMOTE CUPS_PRINTER_SMALL CUPS_PRINTER_SORT CUPS_PRINTER_STAPLE CUPS_PRINTER_VARIABLE CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_US_ASCII CUPS_UTF8 CUPS_VERSION CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_ACCEPTED HTTP_AUTH_BASIC HTTP_AUTH_MD5 HTTP_AUTH_MD5_INT HTTP_AUTH_MD5_SESS HTTP_AUTH_MD5_SESS_INT HTTP_AUTH_NONE HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_CLOSE HTTP_CONFLICT HTTP_CONTINUE HTTP_CREATED HTTP_DELETE HTTP_ENCODE_CHUNKED HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPT_NEVER HTTP_ENCRYPT_REQUIRED HTTP_ERROR HTTP_EXPECTATION_FAILED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONNECTION HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LENGTH HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_CONTENT_TYPE HTTP_FIELD_CONTENT_VERSION HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_IF_UNMODIFIED_SINCE HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_LAST_MODIFIED HTTP_FIELD_LINK HTTP_FIELD_LOCATION HTTP_FIELD_MAX HTTP_FIELD_RANGE HTTP_FIELD_REFERER HTTP_FIELD_RETRY_AFTER HTTP_FIELD_TRANSFER_ENCODING HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_FIELD_USER_AGENT HTTP_FIELD_WWW_AUTHENTICATE HTTP_FORBIDDEN HTTP_GATEWAY_TIMEOUT HTTP_GET HTTP_GET_SEND HTTP_GONE HTTP_HEAD HTTP_KEEPALIVE_OFF HTTP_KEEPALIVE_ON HTTP_LENGTH_REQUIRED HTTP_MAX_BUFFER HTTP_MAX_HOST HTTP_MAX_URI HTTP_MAX_VALUE HTTP_METHOD_NOT_ALLOWED HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_MULTIPLE_CHOICES HTTP_NOT_ACCEPTABLE HTTP_NOT_AUTHORITATIVE HTTP_NOT_FOUND HTTP_NOT_IMPLEMENTED HTTP_NOT_MODIFIED HTTP_NOT_SUPPORTED HTTP_NO_CONTENT HTTP_OK HTTP_OPTIONS HTTP_PARTIAL_CONTENT HTTP_PAYMENT_REQUIRED HTTP_POST HTTP_POST_RECV HTTP_POST_SEND HTTP_PRECONDITION HTTP_PROXY_AUTHENTICATION HTTP_PUT HTTP_PUT_RECV HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_REQUEST_TOO_LARGE HTTP_RESET_CONTENT HTTP_SEE_OTHER HTTP_SERVER_ERROR HTTP_SERVICE_UNAVAILABLE HTTP_STATUS HTTP_SWITCHING_PROTOCOLS HTTP_TRACE HTTP_UNAUTHORIZED HTTP_UNSUPPORTED_MEDIATYPE HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_ARGUMENTS HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_PORT HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_SCHEME HTTP_URI_BAD_URI HTTP_URI_BAD_USERNAME HTTP_URI_CODING_ALL HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE HTTP_URI_CODING_QUERY HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME HTTP_URI_MISSING_RESOURCE HTTP_URI_MISSING_SCHEME HTTP_URI_OK HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG HTTP_URI_UNKNOWN_SCHEME HTTP_USE_PROXY HTTP_WAITING INET6 IPP_ACTIVATE_PRINTER IPP_ATTRIBUTE IPP_ATTRIBUTES IPP_ATTRIBUTES_NOT_SETTABLE IPP_BAD_REQUEST IPP_CANCEL_CURRENT_JOB IPP_CANCEL_JOB IPP_CANCEL_SUBSCRIPTION IPP_CHARSET IPP_COMPRESSION_ERROR IPP_COMPRESSION_NOT_SUPPORTED IPP_CONFLICT IPP_CREATE_JOB IPP_CREATE_JOB_SUBSCRIPTION IPP_CREATE_PRINTER_SUBSCRIPTION IPP_DATA IPP_DEACTIVATE_PRINTER IPP_DEVICE_ERROR IPP_DISABLE_PRINTER IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT IPP_DOCUMENT_FORMAT_ERROR IPP_ENABLE_PRINTER IPP_ERROR IPP_ERROR_JOB_CANCELED IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_BIND_LEFT IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_BIND_TOP IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_COVER IPP_FINISHINGS_EDGE_STITCH IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_FOLD IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_NONE IPP_FINISHINGS_PUNCH IPP_FINISHINGS_SADDLE_STITCH IPP_FINISHINGS_STAPLE IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_FINISHINGS_TRIM IPP_FORBIDDEN IPP_GET_JOBS IPP_GET_JOB_ATTRIBUTES IPP_GET_NOTIFICATIONS IPP_GET_PRINTER_ATTRIBUTES IPP_GET_PRINTER_SUPPORTED_VALUES IPP_GET_PRINT_SUPPORT_FILES IPP_GET_SUBSCRIPTIONS IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_GONE IPP_HEADER IPP_HOLD_JOB IPP_HOLD_NEW_JOBS IPP_IDLE IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_INTERNAL_ERROR IPP_JOB_ABORTED IPP_JOB_CANCELED IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_JOB_HELD IPP_JOB_PENDING IPP_JOB_PROCESSING IPP_JOB_STOPPED IPP_LANDSCAPE IPP_MAX_NAME IPP_MAX_VALUES IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_NOT_ACCEPTING IPP_NOT_AUTHENTICATED IPP_NOT_AUTHORIZED IPP_NOT_FOUND IPP_NOT_POSSIBLE IPP_OK IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_OK_CONFLICT IPP_OK_EVENTS_COMPLETE IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS IPP_OK_SUBST IPP_OK_TOO_MANY_EVENTS IPP_OPERATION_NOT_SUPPORTED IPP_PAUSE_PRINTER IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_PORT IPP_PORTRAIT IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_PRINTER_IS_DEACTIVATED IPP_PRINTER_PROCESSING IPP_PRINTER_STOPPED IPP_PRINT_JOB IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_PRINT_URI IPP_PRIVATE IPP_PROMOTE_JOB IPP_PURGE_JOBS IPP_QUALITY_DRAFT IPP_QUALITY_HIGH IPP_QUALITY_NORMAL IPP_REDIRECTION_OTHER_SITE IPP_RELEASE_HELD_NEW_JOBS IPP_RELEASE_JOB IPP_RENEW_SUBSCRIPTION IPP_REPROCESS_JOB IPP_REQUEST_ENTITY IPP_REQUEST_VALUE IPP_RESTART_JOB IPP_RESTART_PRINTER IPP_RESUME_JOB IPP_RESUME_PRINTER IPP_RES_PER_CM IPP_RES_PER_INCH IPP_REVERSE_LANDSCAPE IPP_REVERSE_PORTRAIT IPP_SCHEDULE_JOB_AFTER IPP_SEND_DOCUMENT IPP_SEND_NOTIFICATIONS IPP_SEND_URI IPP_SERVICE_UNAVAILABLE IPP_SET_JOB_ATTRIBUTES IPP_SET_PRINTER_ATTRIBUTES IPP_SHUTDOWN_PRINTER IPP_STARTUP_PRINTER IPP_SUSPEND_CURRENT_JOB IPP_TAG_ADMINDEFINE IPP_TAG_BEGIN_COLLECTION IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_DEFAULT IPP_TAG_DELETEATTR IPP_TAG_END IPP_TAG_END_COLLECTION IPP_TAG_ENUM IPP_TAG_EVENT_NOTIFICATION IPP_TAG_INTEGER IPP_TAG_JOB IPP_TAG_KEYWORD IPP_TAG_LANGUAGE IPP_TAG_MASK IPP_TAG_MEMBERNAME IPP_TAG_MIMETYPE IPP_TAG_NAME IPP_TAG_NAMELANG IPP_TAG_NOTSETTABLE IPP_TAG_NOVALUE IPP_TAG_OPERATION IPP_TAG_PRINTER IPP_TAG_RANGE IPP_TAG_RESOLUTION IPP_TAG_STRING IPP_TAG_SUBSCRIPTION IPP_TAG_TEXT IPP_TAG_TEXTLANG IPP_TAG_UNKNOWN IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_TAG_URI IPP_TAG_URISCHEME IPP_TAG_ZERO IPP_TEMPORARY_ERROR IPP_TIMEOUT IPP_TOO_MANY_SUBSCRIPTIONS IPP_URI_SCHEME IPP_VALIDATE_JOB IPP_VERSION_NOT_SUPPORTED PPD_ALLOC_ERROR PPD_BAD_CUSTOM_PARAM PPD_BAD_OPEN_GROUP PPD_BAD_OPEN_UI PPD_BAD_ORDER_DEPENDENCY PPD_BAD_UI_CONSTRAINTS PPD_CONFORM_RELAXED PPD_CONFORM_STRICT PPD_CS_CMY PPD_CS_CMYK PPD_CS_GRAY PPD_CS_N PPD_CS_RGB PPD_CS_RGBK PPD_CUSTOM_CURVE PPD_CUSTOM_INT PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_CUSTOM_POINTS PPD_CUSTOM_REAL PPD_CUSTOM_STRING PPD_FILE_OPEN_ERROR PPD_ILLEGAL_CHARACTER PPD_ILLEGAL_MAIN_KEYWORD PPD_ILLEGAL_OPTION_KEYWORD PPD_ILLEGAL_TRANSLATION PPD_ILLEGAL_WHITESPACE PPD_INTERNAL_ERROR PPD_LINE_TOO_LONG PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT PPD_MISSING_ASTERISK PPD_MISSING_PPDADOBE4 PPD_MISSING_VALUE PPD_NESTED_OPEN_GROUP PPD_NESTED_OPEN_UI PPD_NULL_FILE PPD_OK PPD_ORDER_ANY PPD_ORDER_DOCUMENT PPD_ORDER_EXIT PPD_ORDER_JCL PPD_ORDER_PAGE PPD_ORDER_PROLOG PPD_UI_BOOLEAN PPD_UI_PICKMANY PPD_UI_PICKONE PPD_VERSION ); our $VERSION = '0.61'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. my $constname; our $AUTOLOAD; ($constname = $AUTOLOAD) =~ s/.*:://; croak "&Net::CUPS::PPD::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); if ($error) { croak $error; } { no strict 'refs'; # Fixed between 5.005_53 and 5.005_61 #XXX if ($] >= 5.00561) { #XXX *$AUTOLOAD = sub () { $val }; #XXX } #XXX else { *$AUTOLOAD = sub { $val }; #XXX } } goto &$AUTOLOAD; } #require XSLoader; #XSLoader::load('Net::CUPS', $VERSION); ##==================================================================## ## Constructors ## ##==================================================================## ##----------------------------------------------## ## new ## ##----------------------------------------------## sub new { ## Pull in what type of an object we will be my $type = shift; ## Pull in our options if we have any ... my %options = @_; ## XXX One of the options might be a server host ... ## We will use a hash as our base class variable my $self = {}; my $class = ref( $type ) || $type; ## Bless the class for it is good [tm]. bless( $self, $class ); return( $self ); } ##----------------------------------------------## ## DESTROY ## ##----------------------------------------------## sub DESTROY { my $self = shift; NETCUPS_freePPD( $self ); return; } ##==================================================================## ## Methods ## ##==================================================================## ##----------------------------------------------## ## getCustomOption ## ##----------------------------------------------## #sub getCustomOption #{ # my( $self, $keyword ) = @_; # # return( NETCUPS_getCustomOption( $self, $keyword ) ); #} ##----------------------------------------------## ## getFirstOption ## ##----------------------------------------------## sub getFirstOption { my $self = shift; return( NETCUPS_getFirstOption( $self ) ); } ##----------------------------------------------## ## getNextOption ## ##----------------------------------------------## sub getNextOption { my $self = shift; return( NETCUPS_getNextOption( $self ) ); } ##----------------------------------------------## ## getOption ## ##----------------------------------------------## sub getOption { my( $self, $keyword ) = @_; return( NETCUPS_getOption( $self, $keyword ) ); } ##----------------------------------------------## ## getPageLength ## ##----------------------------------------------## sub getPageLength { my( $self, $size ) = @_; return( NETCUPS_getPageLength( $self, $size ) ); } ##----------------------------------------------## ## getPageSize ## ##----------------------------------------------## sub getPageSize { my( $self, $size ) = @_; return( NETCUPS_getPageSize( $self, $size ) ); } ##----------------------------------------------## ## getPageWidth ## ##----------------------------------------------## sub getPageWidth { my( $self, $size ) = @_; return( NETCUPS_getPageWidth( $self, $size ) ); } ##----------------------------------------------## ## isMarked ## ##----------------------------------------------## sub isMarked { my( $self, $option, $choice ) = @_; return( NETCUPS_isMarked( $self, $option, $choice ) ); } ##----------------------------------------------## ## markDefaults ## ##----------------------------------------------## sub markDefaults { my( $self ) = @_; return( NETCUPS_markDefaults( $self ) ); } ##----------------------------------------------## ## markOption ## ##----------------------------------------------## sub markOption { my( $self, $option, $choice ) = @_; return( NETCUPS_markOption( $self, $option, $choice ) ); } ##==================================================================## ## End of Code ## ##==================================================================## 1; ##==================================================================## ## Plain Old Documentation (POD) ## ##==================================================================## __END__ =head1 NAME Net::CUPS::PPD - PostScript Printer Definition Object =head1 SYNOPSIS use Net::CUPS; use Net::CUPS::PPD; my $ppd = $cups->getPPD( "lj4200dn" ); =head1 DESCRIPTION Net::CUPS is an object oriented interface to the Common Unix Printing System. Net::CUPS::PPD is an abstraction of methods to deal with PostSript Printer Definition files. =head1 METHODS =over 4 =item B my $option = $ppd->getFirstOption(); =item B my $option = $ppd->getNextOption(); =item B my $option = $ppd->getOption( $keyword ); =item B my $length = $ppd->getPageLength(); =item B my %size = $ppd->getPageSize(); =item B my $width = $ppd->getPageWidth(); =item B my $result = $ppd->isMarked( $option, $choice ); =item B $ppd->markDefaults(); =item B $ppd->markOption( $option, $choice ); =back =head1 SEE ALSO L, L, L =head1 SUPPORT Support for this module and other software developed by Dracken Technology, Inc can be found at http://www.dracken.com/. =head1 AUTHOR Dracken Technology, Inc. (http://www.dracken.com/) =head1 COPYRIGHT AND LICENSE Copyright (c) 2003-2005 David Hageman Copyright (c) 2006-2009 Dracken Technology, Inc. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. CUPS, the Common UNIX Printing System, the CUPS logo, and ESP Print Pro are the trademark property of Easy Software Products. =cut Net-CUPS-0.61/lib/Net/CUPS/IPP.pm0000644001127700037230000006060711242660773014427 0ustar dhagemanpackage Net::CUPS::IPP; ##==================================================================## ## Libraries and Variables ## ##==================================================================## use 5.006; use strict; use warnings; use Carp; require Exporter; use AutoLoader; use Net::CUPS; our @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. # This allows declaration use Net::CUPS ':all'; # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( AF_LOCAL CUPS_ACCEPT_JOBS CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS CUPS_ADD_MODIFY_PRINTER CUPS_ADD_PRINTER CUPS_AUTHENTICATE_JOB CUPS_AUTO_ENCODING CUPS_BACKEND_AUTH_REQUIRED CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_BACKEND_HOLD CUPS_BACKEND_OK CUPS_BACKEND_STOP CUPS_DATE_ANY CUPS_DELETE_CLASS CUPS_DELETE_PRINTER CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_GET_PPDS CUPS_GET_PRINTERS CUPS_IMAGE_BLACK CUPS_IMAGE_CMY CUPS_IMAGE_CMYK CUPS_IMAGE_RGB CUPS_IMAGE_RGB_CMYK CUPS_IMAGE_WHITE CUPS_ISO8859_1 CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_KOI8_R CUPS_KOI8_U CUPS_MAC_ROMAN CUPS_MAX_USTRING CUPS_MOVE_JOB CUPS_PRINTER_AUTHENTICATED CUPS_PRINTER_BIND CUPS_PRINTER_BW CUPS_PRINTER_CLASS CUPS_PRINTER_COLLATE CUPS_PRINTER_COLOR CUPS_PRINTER_COMMANDS CUPS_PRINTER_COPIES CUPS_PRINTER_COVER CUPS_PRINTER_DEFAULT CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_FAX CUPS_PRINTER_IMPLICIT CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_MEDIUM CUPS_PRINTER_NOT_SHARED CUPS_PRINTER_OPTIONS CUPS_PRINTER_PUNCH CUPS_PRINTER_REJECTING CUPS_PRINTER_REMOTE CUPS_PRINTER_SMALL CUPS_PRINTER_SORT CUPS_PRINTER_STAPLE CUPS_PRINTER_VARIABLE CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_US_ASCII CUPS_UTF8 CUPS_VERSION CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_ACCEPTED HTTP_AUTH_BASIC HTTP_AUTH_MD5 HTTP_AUTH_MD5_INT HTTP_AUTH_MD5_SESS HTTP_AUTH_MD5_SESS_INT HTTP_AUTH_NONE HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_CLOSE HTTP_CONFLICT HTTP_CONTINUE HTTP_CREATED HTTP_DELETE HTTP_ENCODE_CHUNKED HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPT_NEVER HTTP_ENCRYPT_REQUIRED HTTP_ERROR HTTP_EXPECTATION_FAILED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONNECTION HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LENGTH HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_CONTENT_TYPE HTTP_FIELD_CONTENT_VERSION HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_IF_UNMODIFIED_SINCE HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_LAST_MODIFIED HTTP_FIELD_LINK HTTP_FIELD_LOCATION HTTP_FIELD_MAX HTTP_FIELD_RANGE HTTP_FIELD_REFERER HTTP_FIELD_RETRY_AFTER HTTP_FIELD_TRANSFER_ENCODING HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_FIELD_USER_AGENT HTTP_FIELD_WWW_AUTHENTICATE HTTP_FORBIDDEN HTTP_GATEWAY_TIMEOUT HTTP_GET HTTP_GET_SEND HTTP_GONE HTTP_HEAD HTTP_KEEPALIVE_OFF HTTP_KEEPALIVE_ON HTTP_LENGTH_REQUIRED HTTP_MAX_BUFFER HTTP_MAX_HOST HTTP_MAX_URI HTTP_MAX_VALUE HTTP_METHOD_NOT_ALLOWED HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_MULTIPLE_CHOICES HTTP_NOT_ACCEPTABLE HTTP_NOT_AUTHORITATIVE HTTP_NOT_FOUND HTTP_NOT_IMPLEMENTED HTTP_NOT_MODIFIED HTTP_NOT_SUPPORTED HTTP_NO_CONTENT HTTP_OK HTTP_OPTIONS HTTP_PARTIAL_CONTENT HTTP_PAYMENT_REQUIRED HTTP_POST HTTP_POST_RECV HTTP_POST_SEND HTTP_PRECONDITION HTTP_PROXY_AUTHENTICATION HTTP_PUT HTTP_PUT_RECV HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_REQUEST_TOO_LARGE HTTP_RESET_CONTENT HTTP_SEE_OTHER HTTP_SERVER_ERROR HTTP_SERVICE_UNAVAILABLE HTTP_STATUS HTTP_SWITCHING_PROTOCOLS HTTP_TRACE HTTP_UNAUTHORIZED HTTP_UNSUPPORTED_MEDIATYPE HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_ARGUMENTS HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_PORT HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_SCHEME HTTP_URI_BAD_URI HTTP_URI_BAD_USERNAME HTTP_URI_CODING_ALL HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE HTTP_URI_CODING_QUERY HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME HTTP_URI_MISSING_RESOURCE HTTP_URI_MISSING_SCHEME HTTP_URI_OK HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG HTTP_URI_UNKNOWN_SCHEME HTTP_USE_PROXY HTTP_WAITING INET6 IPP_ACTIVATE_PRINTER IPP_ATTRIBUTE IPP_ATTRIBUTES IPP_ATTRIBUTES_NOT_SETTABLE IPP_BAD_REQUEST IPP_CANCEL_CURRENT_JOB IPP_CANCEL_JOB IPP_CANCEL_SUBSCRIPTION IPP_CHARSET IPP_COMPRESSION_ERROR IPP_COMPRESSION_NOT_SUPPORTED IPP_CONFLICT IPP_CREATE_JOB IPP_CREATE_JOB_SUBSCRIPTION IPP_CREATE_PRINTER_SUBSCRIPTION IPP_DATA IPP_DEACTIVATE_PRINTER IPP_DEVICE_ERROR IPP_DISABLE_PRINTER IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT IPP_DOCUMENT_FORMAT_ERROR IPP_ENABLE_PRINTER IPP_ERROR IPP_ERROR_JOB_CANCELED IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_BIND_LEFT IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_BIND_TOP IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_COVER IPP_FINISHINGS_EDGE_STITCH IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_FOLD IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_NONE IPP_FINISHINGS_PUNCH IPP_FINISHINGS_SADDLE_STITCH IPP_FINISHINGS_STAPLE IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_FINISHINGS_TRIM IPP_FORBIDDEN IPP_GET_JOBS IPP_GET_JOB_ATTRIBUTES IPP_GET_NOTIFICATIONS IPP_GET_PRINTER_ATTRIBUTES IPP_GET_PRINTER_SUPPORTED_VALUES IPP_GET_PRINT_SUPPORT_FILES IPP_GET_SUBSCRIPTIONS IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_GONE IPP_HEADER IPP_HOLD_JOB IPP_HOLD_NEW_JOBS IPP_IDLE IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_INTERNAL_ERROR IPP_JOB_ABORTED IPP_JOB_CANCELED IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_JOB_HELD IPP_JOB_PENDING IPP_JOB_PROCESSING IPP_JOB_STOPPED IPP_LANDSCAPE IPP_MAX_NAME IPP_MAX_VALUES IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_NOT_ACCEPTING IPP_NOT_AUTHENTICATED IPP_NOT_AUTHORIZED IPP_NOT_FOUND IPP_NOT_POSSIBLE IPP_OK IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_OK_CONFLICT IPP_OK_EVENTS_COMPLETE IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS IPP_OK_SUBST IPP_OK_TOO_MANY_EVENTS IPP_OPERATION_NOT_SUPPORTED IPP_PAUSE_PRINTER IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_PORT IPP_PORTRAIT IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_PRINTER_IS_DEACTIVATED IPP_PRINTER_PROCESSING IPP_PRINTER_STOPPED IPP_PRINT_JOB IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_PRINT_URI IPP_PRIVATE IPP_PROMOTE_JOB IPP_PURGE_JOBS IPP_QUALITY_DRAFT IPP_QUALITY_HIGH IPP_QUALITY_NORMAL IPP_REDIRECTION_OTHER_SITE IPP_RELEASE_HELD_NEW_JOBS IPP_RELEASE_JOB IPP_RENEW_SUBSCRIPTION IPP_REPROCESS_JOB IPP_REQUEST_ENTITY IPP_REQUEST_VALUE IPP_RESTART_JOB IPP_RESTART_PRINTER IPP_RESUME_JOB IPP_RESUME_PRINTER IPP_RES_PER_CM IPP_RES_PER_INCH IPP_REVERSE_LANDSCAPE IPP_REVERSE_PORTRAIT IPP_SCHEDULE_JOB_AFTER IPP_SEND_DOCUMENT IPP_SEND_NOTIFICATIONS IPP_SEND_URI IPP_SERVICE_UNAVAILABLE IPP_SET_JOB_ATTRIBUTES IPP_SET_PRINTER_ATTRIBUTES IPP_SHUTDOWN_PRINTER IPP_STARTUP_PRINTER IPP_SUSPEND_CURRENT_JOB IPP_TAG_ADMINDEFINE IPP_TAG_BEGIN_COLLECTION IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_DEFAULT IPP_TAG_DELETEATTR IPP_TAG_END IPP_TAG_END_COLLECTION IPP_TAG_ENUM IPP_TAG_EVENT_NOTIFICATION IPP_TAG_INTEGER IPP_TAG_JOB IPP_TAG_KEYWORD IPP_TAG_LANGUAGE IPP_TAG_MASK IPP_TAG_MEMBERNAME IPP_TAG_MIMETYPE IPP_TAG_NAME IPP_TAG_NAMELANG IPP_TAG_NOTSETTABLE IPP_TAG_NOVALUE IPP_TAG_OPERATION IPP_TAG_PRINTER IPP_TAG_RANGE IPP_TAG_RESOLUTION IPP_TAG_STRING IPP_TAG_SUBSCRIPTION IPP_TAG_TEXT IPP_TAG_TEXTLANG IPP_TAG_UNKNOWN IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_TAG_URI IPP_TAG_URISCHEME IPP_TAG_ZERO IPP_TEMPORARY_ERROR IPP_TIMEOUT IPP_TOO_MANY_SUBSCRIPTIONS IPP_URI_SCHEME IPP_VALIDATE_JOB IPP_VERSION_NOT_SUPPORTED PPD_ALLOC_ERROR PPD_BAD_CUSTOM_PARAM PPD_BAD_OPEN_GROUP PPD_BAD_OPEN_UI PPD_BAD_ORDER_DEPENDENCY PPD_BAD_UI_CONSTRAINTS PPD_CONFORM_RELAXED PPD_CONFORM_STRICT PPD_CS_CMY PPD_CS_CMYK PPD_CS_GRAY PPD_CS_N PPD_CS_RGB PPD_CS_RGBK PPD_CUSTOM_CURVE PPD_CUSTOM_INT PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_CUSTOM_POINTS PPD_CUSTOM_REAL PPD_CUSTOM_STRING PPD_FILE_OPEN_ERROR PPD_ILLEGAL_CHARACTER PPD_ILLEGAL_MAIN_KEYWORD PPD_ILLEGAL_OPTION_KEYWORD PPD_ILLEGAL_TRANSLATION PPD_ILLEGAL_WHITESPACE PPD_INTERNAL_ERROR PPD_LINE_TOO_LONG PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT PPD_MISSING_ASTERISK PPD_MISSING_PPDADOBE4 PPD_MISSING_VALUE PPD_NESTED_OPEN_GROUP PPD_NESTED_OPEN_UI PPD_NULL_FILE PPD_OK PPD_ORDER_ANY PPD_ORDER_DOCUMENT PPD_ORDER_EXIT PPD_ORDER_JCL PPD_ORDER_PAGE PPD_ORDER_PROLOG PPD_UI_BOOLEAN PPD_UI_PICKMANY PPD_UI_PICKONE PPD_VERSION ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( AF_LOCAL CUPS_ACCEPT_JOBS CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS CUPS_ADD_MODIFY_PRINTER CUPS_ADD_PRINTER CUPS_AUTHENTICATE_JOB CUPS_AUTO_ENCODING CUPS_BACKEND_AUTH_REQUIRED CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_BACKEND_HOLD CUPS_BACKEND_OK CUPS_BACKEND_STOP CUPS_DATE_ANY CUPS_DELETE_CLASS CUPS_DELETE_PRINTER CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_GET_PPDS CUPS_GET_PRINTERS CUPS_IMAGE_BLACK CUPS_IMAGE_CMY CUPS_IMAGE_CMYK CUPS_IMAGE_RGB CUPS_IMAGE_RGB_CMYK CUPS_IMAGE_WHITE CUPS_ISO8859_1 CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_KOI8_R CUPS_KOI8_U CUPS_MAC_ROMAN CUPS_MAX_USTRING CUPS_MOVE_JOB CUPS_PRINTER_AUTHENTICATED CUPS_PRINTER_BIND CUPS_PRINTER_BW CUPS_PRINTER_CLASS CUPS_PRINTER_COLLATE CUPS_PRINTER_COLOR CUPS_PRINTER_COMMANDS CUPS_PRINTER_COPIES CUPS_PRINTER_COVER CUPS_PRINTER_DEFAULT CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_FAX CUPS_PRINTER_IMPLICIT CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_MEDIUM CUPS_PRINTER_NOT_SHARED CUPS_PRINTER_OPTIONS CUPS_PRINTER_PUNCH CUPS_PRINTER_REJECTING CUPS_PRINTER_REMOTE CUPS_PRINTER_SMALL CUPS_PRINTER_SORT CUPS_PRINTER_STAPLE CUPS_PRINTER_VARIABLE CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_US_ASCII CUPS_UTF8 CUPS_VERSION CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_ACCEPTED HTTP_AUTH_BASIC HTTP_AUTH_MD5 HTTP_AUTH_MD5_INT HTTP_AUTH_MD5_SESS HTTP_AUTH_MD5_SESS_INT HTTP_AUTH_NONE HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_CLOSE HTTP_CONFLICT HTTP_CONTINUE HTTP_CREATED HTTP_DELETE HTTP_ENCODE_CHUNKED HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPT_NEVER HTTP_ENCRYPT_REQUIRED HTTP_ERROR HTTP_EXPECTATION_FAILED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONNECTION HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LENGTH HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_CONTENT_TYPE HTTP_FIELD_CONTENT_VERSION HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_IF_UNMODIFIED_SINCE HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_LAST_MODIFIED HTTP_FIELD_LINK HTTP_FIELD_LOCATION HTTP_FIELD_MAX HTTP_FIELD_RANGE HTTP_FIELD_REFERER HTTP_FIELD_RETRY_AFTER HTTP_FIELD_TRANSFER_ENCODING HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_FIELD_USER_AGENT HTTP_FIELD_WWW_AUTHENTICATE HTTP_FORBIDDEN HTTP_GATEWAY_TIMEOUT HTTP_GET HTTP_GET_SEND HTTP_GONE HTTP_HEAD HTTP_KEEPALIVE_OFF HTTP_KEEPALIVE_ON HTTP_LENGTH_REQUIRED HTTP_MAX_BUFFER HTTP_MAX_HOST HTTP_MAX_URI HTTP_MAX_VALUE HTTP_METHOD_NOT_ALLOWED HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_MULTIPLE_CHOICES HTTP_NOT_ACCEPTABLE HTTP_NOT_AUTHORITATIVE HTTP_NOT_FOUND HTTP_NOT_IMPLEMENTED HTTP_NOT_MODIFIED HTTP_NOT_SUPPORTED HTTP_NO_CONTENT HTTP_OK HTTP_OPTIONS HTTP_PARTIAL_CONTENT HTTP_PAYMENT_REQUIRED HTTP_POST HTTP_POST_RECV HTTP_POST_SEND HTTP_PRECONDITION HTTP_PROXY_AUTHENTICATION HTTP_PUT HTTP_PUT_RECV HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_REQUEST_TOO_LARGE HTTP_RESET_CONTENT HTTP_SEE_OTHER HTTP_SERVER_ERROR HTTP_SERVICE_UNAVAILABLE HTTP_STATUS HTTP_SWITCHING_PROTOCOLS HTTP_TRACE HTTP_UNAUTHORIZED HTTP_UNSUPPORTED_MEDIATYPE HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_ARGUMENTS HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_PORT HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_SCHEME HTTP_URI_BAD_URI HTTP_URI_BAD_USERNAME HTTP_URI_CODING_ALL HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE HTTP_URI_CODING_QUERY HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME HTTP_URI_MISSING_RESOURCE HTTP_URI_MISSING_SCHEME HTTP_URI_OK HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG HTTP_URI_UNKNOWN_SCHEME HTTP_USE_PROXY HTTP_WAITING INET6 IPP_ACTIVATE_PRINTER IPP_ATTRIBUTE IPP_ATTRIBUTES IPP_ATTRIBUTES_NOT_SETTABLE IPP_BAD_REQUEST IPP_CANCEL_CURRENT_JOB IPP_CANCEL_JOB IPP_CANCEL_SUBSCRIPTION IPP_CHARSET IPP_COMPRESSION_ERROR IPP_COMPRESSION_NOT_SUPPORTED IPP_CONFLICT IPP_CREATE_JOB IPP_CREATE_JOB_SUBSCRIPTION IPP_CREATE_PRINTER_SUBSCRIPTION IPP_DATA IPP_DEACTIVATE_PRINTER IPP_DEVICE_ERROR IPP_DISABLE_PRINTER IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT IPP_DOCUMENT_FORMAT_ERROR IPP_ENABLE_PRINTER IPP_ERROR IPP_ERROR_JOB_CANCELED IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_BIND_LEFT IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_BIND_TOP IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_COVER IPP_FINISHINGS_EDGE_STITCH IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_FOLD IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_NONE IPP_FINISHINGS_PUNCH IPP_FINISHINGS_SADDLE_STITCH IPP_FINISHINGS_STAPLE IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_FINISHINGS_TRIM IPP_FORBIDDEN IPP_GET_JOBS IPP_GET_JOB_ATTRIBUTES IPP_GET_NOTIFICATIONS IPP_GET_PRINTER_ATTRIBUTES IPP_GET_PRINTER_SUPPORTED_VALUES IPP_GET_PRINT_SUPPORT_FILES IPP_GET_SUBSCRIPTIONS IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_GONE IPP_HEADER IPP_HOLD_JOB IPP_HOLD_NEW_JOBS IPP_IDLE IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_INTERNAL_ERROR IPP_JOB_ABORTED IPP_JOB_CANCELED IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_JOB_HELD IPP_JOB_PENDING IPP_JOB_PROCESSING IPP_JOB_STOPPED IPP_LANDSCAPE IPP_MAX_NAME IPP_MAX_VALUES IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_NOT_ACCEPTING IPP_NOT_AUTHENTICATED IPP_NOT_AUTHORIZED IPP_NOT_FOUND IPP_NOT_POSSIBLE IPP_OK IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_OK_CONFLICT IPP_OK_EVENTS_COMPLETE IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS IPP_OK_SUBST IPP_OK_TOO_MANY_EVENTS IPP_OPERATION_NOT_SUPPORTED IPP_PAUSE_PRINTER IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_PORT IPP_PORTRAIT IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_PRINTER_IS_DEACTIVATED IPP_PRINTER_PROCESSING IPP_PRINTER_STOPPED IPP_PRINT_JOB IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_PRINT_URI IPP_PRIVATE IPP_PROMOTE_JOB IPP_PURGE_JOBS IPP_QUALITY_DRAFT IPP_QUALITY_HIGH IPP_QUALITY_NORMAL IPP_REDIRECTION_OTHER_SITE IPP_RELEASE_HELD_NEW_JOBS IPP_RELEASE_JOB IPP_RENEW_SUBSCRIPTION IPP_REPROCESS_JOB IPP_REQUEST_ENTITY IPP_REQUEST_VALUE IPP_RESTART_JOB IPP_RESTART_PRINTER IPP_RESUME_JOB IPP_RESUME_PRINTER IPP_RES_PER_CM IPP_RES_PER_INCH IPP_REVERSE_LANDSCAPE IPP_REVERSE_PORTRAIT IPP_SCHEDULE_JOB_AFTER IPP_SEND_DOCUMENT IPP_SEND_NOTIFICATIONS IPP_SEND_URI IPP_SERVICE_UNAVAILABLE IPP_SET_JOB_ATTRIBUTES IPP_SET_PRINTER_ATTRIBUTES IPP_SHUTDOWN_PRINTER IPP_STARTUP_PRINTER IPP_SUSPEND_CURRENT_JOB IPP_TAG_ADMINDEFINE IPP_TAG_BEGIN_COLLECTION IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_DEFAULT IPP_TAG_DELETEATTR IPP_TAG_END IPP_TAG_END_COLLECTION IPP_TAG_ENUM IPP_TAG_EVENT_NOTIFICATION IPP_TAG_INTEGER IPP_TAG_JOB IPP_TAG_KEYWORD IPP_TAG_LANGUAGE IPP_TAG_MASK IPP_TAG_MEMBERNAME IPP_TAG_MIMETYPE IPP_TAG_NAME IPP_TAG_NAMELANG IPP_TAG_NOTSETTABLE IPP_TAG_NOVALUE IPP_TAG_OPERATION IPP_TAG_PRINTER IPP_TAG_RANGE IPP_TAG_RESOLUTION IPP_TAG_STRING IPP_TAG_SUBSCRIPTION IPP_TAG_TEXT IPP_TAG_TEXTLANG IPP_TAG_UNKNOWN IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_TAG_URI IPP_TAG_URISCHEME IPP_TAG_ZERO IPP_TEMPORARY_ERROR IPP_TIMEOUT IPP_TOO_MANY_SUBSCRIPTIONS IPP_URI_SCHEME IPP_VALIDATE_JOB IPP_VERSION_NOT_SUPPORTED PPD_ALLOC_ERROR PPD_BAD_CUSTOM_PARAM PPD_BAD_OPEN_GROUP PPD_BAD_OPEN_UI PPD_BAD_ORDER_DEPENDENCY PPD_BAD_UI_CONSTRAINTS PPD_CONFORM_RELAXED PPD_CONFORM_STRICT PPD_CS_CMY PPD_CS_CMYK PPD_CS_GRAY PPD_CS_N PPD_CS_RGB PPD_CS_RGBK PPD_CUSTOM_CURVE PPD_CUSTOM_INT PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_CUSTOM_POINTS PPD_CUSTOM_REAL PPD_CUSTOM_STRING PPD_FILE_OPEN_ERROR PPD_ILLEGAL_CHARACTER PPD_ILLEGAL_MAIN_KEYWORD PPD_ILLEGAL_OPTION_KEYWORD PPD_ILLEGAL_TRANSLATION PPD_ILLEGAL_WHITESPACE PPD_INTERNAL_ERROR PPD_LINE_TOO_LONG PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT PPD_MISSING_ASTERISK PPD_MISSING_PPDADOBE4 PPD_MISSING_VALUE PPD_NESTED_OPEN_GROUP PPD_NESTED_OPEN_UI PPD_NULL_FILE PPD_OK PPD_ORDER_ANY PPD_ORDER_DOCUMENT PPD_ORDER_EXIT PPD_ORDER_JCL PPD_ORDER_PAGE PPD_ORDER_PROLOG PPD_UI_BOOLEAN PPD_UI_PICKMANY PPD_UI_PICKONE PPD_VERSION ); our $VERSION = '0.61'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. my $constname; our $AUTOLOAD; ($constname = $AUTOLOAD) =~ s/.*:://; croak "&Net::CUPS::IPP::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); if ($error) { croak $error; } { no strict 'refs'; # Fixed between 5.005_53 and 5.005_61 #XXX if ($] >= 5.00561) { #XXX *$AUTOLOAD = sub () { $val }; #XXX } #XXX else { *$AUTOLOAD = sub { $val }; #XXX } } goto &$AUTOLOAD; } #require XSLoader; #XSLoader::load('Net::CUPS', $VERSION); ##==================================================================## ## Constructors ## ##==================================================================## ##----------------------------------------------## ## new ## ##----------------------------------------------## sub new { my( $self, $request ) = @_; if( defined( $request ) && ( $request ne "" ) ) { return( NETCUPS_newIPPRequest( $request ) ); } else { return( NETCUPS_newIPP() ); } } ##----------------------------------------------## ## DESTROY ## ##----------------------------------------------## sub DESTROY { my $self = shift; NETCUPS_freeIPP( $self ); return; } ##==================================================================## ## Methods ## ##==================================================================## ##----------------------------------------------## ## addString ## ##----------------------------------------------## sub addString { my( $self, $group, $type, $name, $charset, $value ) = @_; $charset = "" if( !defined( $charset ) ); NETCUPS_addString( $self, $group, $type, $name, $charset, $value ); return; } ##----------------------------------------------## ## getAttributes ## ##----------------------------------------------## sub getAttributes { my $self = shift; return( NETCUPS_getAttributes( $self ) ); } ##----------------------------------------------## ## getAttributeValue ## ##----------------------------------------------## sub getAttributeValue { my( $self, $name ) = @_; $name = lc( $name ); return( NETCUPS_getAttributeValue( $self, $name ) ); } ##----------------------------------------------## ## getSize ## ##----------------------------------------------## sub getSize { my $self = shift; return( NETCUPS_getSize( $self ) ); } ##----------------------------------------------## ## getPort ## ##----------------------------------------------## sub getPort { my $self = shift; return( NETCUPS_getPort() ); } ##----------------------------------------------## ## setPort ## ##----------------------------------------------## sub setPort { my( $self, $port ) = @_; return( NETCUPS_setPort( $port ) ); } ##==================================================================## ## End of Code ## ##==================================================================## 1; ##==================================================================## ## Plain Old Documentation (POD) ## ##==================================================================## __END__ =head1 NAME Net::CUPS::IPP - Internet Printing Protocol Object =head1 SYNOPSIS use Net::CUPS::IPP; my $ipp = Net::CUPS::IPP->new( IPP_GET_JOB_ATTRIBUTE ); my $size = $ipp->getSize(); $ipp->addString( $group, $type, $name, $charset, $value ); =head1 DESCRIPTION Net::CUPS is an object oriented interface to the Common Unix Printing System. Net::CUPS::IPP is an abstraction of the IPP implementation in CUPS. =head1 METHODS =over 4 =item B $ipp->addString( $group, $type, $name, $charset, $value ); Implementation of the CUPS C function "ippAddString". Please refer the IPP documenation for its usage. =item B my @attributes = $ipp->getAttributes(); This method will return an array of all the attributes in an IPP request. =item B my $value = $ipp->getAttributeValue( $name ); Method to return the associated value with method. =item B my $size = $ipp->getSize(); Utility to function to acquire the size of the IPP request. This is mainly useful for debugging. =back =head1 SEE ALSO L, L, L =head1 SUPPORT Support for this module and other software developed by Dracken Technology, Inc can be found at http://www.dracken.com/. =head1 AUTHOR Dracken Technology, Inc. (http://www.dracken.com/) =head1 COPYRIGHT AND LICENSE Copyright (c) 2003-2005 David Hageman Copyright (c) 2006-2009 Dracken Technology, Inc. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. CUPS, the Common UNIX Printing System, the CUPS logo, and ESP Print Pro are the trademark property of Easy Software Products. =cut Net-CUPS-0.61/lib/Net/CUPS.pm0000644001127700037230000007176211242660751013777 0ustar dhagemanpackage Net::CUPS; ##==================================================================## ## Libraries and Variables ## ##==================================================================## use 5.006; use strict; use warnings; use Carp; require Exporter; use AutoLoader; our @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. # This allows declaration use Net::CUPS ':all'; # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( AF_LOCAL CUPS_ACCEPT_JOBS CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS CUPS_ADD_MODIFY_PRINTER CUPS_ADD_PRINTER CUPS_AUTHENTICATE_JOB CUPS_AUTO_ENCODING CUPS_BACKEND_AUTH_REQUIRED CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_BACKEND_HOLD CUPS_BACKEND_OK CUPS_BACKEND_STOP CUPS_DATE_ANY CUPS_DELETE_CLASS CUPS_DELETE_PRINTER CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_GET_PPDS CUPS_GET_PRINTERS CUPS_IMAGE_BLACK CUPS_IMAGE_CMY CUPS_IMAGE_CMYK CUPS_IMAGE_RGB CUPS_IMAGE_RGB_CMYK CUPS_IMAGE_WHITE CUPS_ISO8859_1 CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_KOI8_R CUPS_KOI8_U CUPS_MAC_ROMAN CUPS_MAX_USTRING CUPS_MOVE_JOB CUPS_PRINTER_AUTHENTICATED CUPS_PRINTER_BIND CUPS_PRINTER_BW CUPS_PRINTER_CLASS CUPS_PRINTER_COLLATE CUPS_PRINTER_COLOR CUPS_PRINTER_COMMANDS CUPS_PRINTER_COPIES CUPS_PRINTER_COVER CUPS_PRINTER_DEFAULT CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_FAX CUPS_PRINTER_IMPLICIT CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_MEDIUM CUPS_PRINTER_NOT_SHARED CUPS_PRINTER_OPTIONS CUPS_PRINTER_PUNCH CUPS_PRINTER_REJECTING CUPS_PRINTER_REMOTE CUPS_PRINTER_SMALL CUPS_PRINTER_SORT CUPS_PRINTER_STAPLE CUPS_PRINTER_VARIABLE CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_US_ASCII CUPS_UTF8 CUPS_VERSION CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_ACCEPTED HTTP_AUTH_BASIC HTTP_AUTH_MD5 HTTP_AUTH_MD5_INT HTTP_AUTH_MD5_SESS HTTP_AUTH_MD5_SESS_INT HTTP_AUTH_NONE HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_CLOSE HTTP_CONFLICT HTTP_CONTINUE HTTP_CREATED HTTP_DELETE HTTP_ENCODE_CHUNKED HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPT_NEVER HTTP_ENCRYPT_REQUIRED HTTP_ERROR HTTP_EXPECTATION_FAILED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONNECTION HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LENGTH HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_CONTENT_TYPE HTTP_FIELD_CONTENT_VERSION HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_IF_UNMODIFIED_SINCE HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_LAST_MODIFIED HTTP_FIELD_LINK HTTP_FIELD_LOCATION HTTP_FIELD_MAX HTTP_FIELD_RANGE HTTP_FIELD_REFERER HTTP_FIELD_RETRY_AFTER HTTP_FIELD_TRANSFER_ENCODING HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_FIELD_USER_AGENT HTTP_FIELD_WWW_AUTHENTICATE HTTP_FORBIDDEN HTTP_GATEWAY_TIMEOUT HTTP_GET HTTP_GET_SEND HTTP_GONE HTTP_HEAD HTTP_KEEPALIVE_OFF HTTP_KEEPALIVE_ON HTTP_LENGTH_REQUIRED HTTP_MAX_BUFFER HTTP_MAX_HOST HTTP_MAX_URI HTTP_MAX_VALUE HTTP_METHOD_NOT_ALLOWED HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_MULTIPLE_CHOICES HTTP_NOT_ACCEPTABLE HTTP_NOT_AUTHORITATIVE HTTP_NOT_FOUND HTTP_NOT_IMPLEMENTED HTTP_NOT_MODIFIED HTTP_NOT_SUPPORTED HTTP_NO_CONTENT HTTP_OK HTTP_OPTIONS HTTP_PARTIAL_CONTENT HTTP_PAYMENT_REQUIRED HTTP_POST HTTP_POST_RECV HTTP_POST_SEND HTTP_PRECONDITION HTTP_PROXY_AUTHENTICATION HTTP_PUT HTTP_PUT_RECV HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_REQUEST_TOO_LARGE HTTP_RESET_CONTENT HTTP_SEE_OTHER HTTP_SERVER_ERROR HTTP_SERVICE_UNAVAILABLE HTTP_STATUS HTTP_SWITCHING_PROTOCOLS HTTP_TRACE HTTP_UNAUTHORIZED HTTP_UNSUPPORTED_MEDIATYPE HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_ARGUMENTS HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_PORT HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_SCHEME HTTP_URI_BAD_URI HTTP_URI_BAD_USERNAME HTTP_URI_CODING_ALL HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE HTTP_URI_CODING_QUERY HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME HTTP_URI_MISSING_RESOURCE HTTP_URI_MISSING_SCHEME HTTP_URI_OK HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG HTTP_URI_UNKNOWN_SCHEME HTTP_USE_PROXY HTTP_WAITING INET6 IPP_ACTIVATE_PRINTER IPP_ATTRIBUTE IPP_ATTRIBUTES IPP_ATTRIBUTES_NOT_SETTABLE IPP_BAD_REQUEST IPP_CANCEL_CURRENT_JOB IPP_CANCEL_JOB IPP_CANCEL_SUBSCRIPTION IPP_CHARSET IPP_COMPRESSION_ERROR IPP_COMPRESSION_NOT_SUPPORTED IPP_CONFLICT IPP_CREATE_JOB IPP_CREATE_JOB_SUBSCRIPTION IPP_CREATE_PRINTER_SUBSCRIPTION IPP_DATA IPP_DEACTIVATE_PRINTER IPP_DEVICE_ERROR IPP_DISABLE_PRINTER IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT IPP_DOCUMENT_FORMAT_ERROR IPP_ENABLE_PRINTER IPP_ERROR IPP_ERROR_JOB_CANCELED IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_BIND_LEFT IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_BIND_TOP IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_COVER IPP_FINISHINGS_EDGE_STITCH IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_FOLD IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_NONE IPP_FINISHINGS_PUNCH IPP_FINISHINGS_SADDLE_STITCH IPP_FINISHINGS_STAPLE IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_FINISHINGS_TRIM IPP_FORBIDDEN IPP_GET_JOBS IPP_GET_JOB_ATTRIBUTES IPP_GET_NOTIFICATIONS IPP_GET_PRINTER_ATTRIBUTES IPP_GET_PRINTER_SUPPORTED_VALUES IPP_GET_PRINT_SUPPORT_FILES IPP_GET_SUBSCRIPTIONS IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_GONE IPP_HEADER IPP_HOLD_JOB IPP_HOLD_NEW_JOBS IPP_IDLE IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_INTERNAL_ERROR IPP_JOB_ABORTED IPP_JOB_CANCELED IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_JOB_HELD IPP_JOB_PENDING IPP_JOB_PROCESSING IPP_JOB_STOPPED IPP_LANDSCAPE IPP_MAX_NAME IPP_MAX_VALUES IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_NOT_ACCEPTING IPP_NOT_AUTHENTICATED IPP_NOT_AUTHORIZED IPP_NOT_FOUND IPP_NOT_POSSIBLE IPP_OK IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_OK_CONFLICT IPP_OK_EVENTS_COMPLETE IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS IPP_OK_SUBST IPP_OK_TOO_MANY_EVENTS IPP_OPERATION_NOT_SUPPORTED IPP_PAUSE_PRINTER IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_PORT IPP_PORTRAIT IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_PRINTER_IS_DEACTIVATED IPP_PRINTER_PROCESSING IPP_PRINTER_STOPPED IPP_PRINT_JOB IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_PRINT_URI IPP_PRIVATE IPP_PROMOTE_JOB IPP_PURGE_JOBS IPP_QUALITY_DRAFT IPP_QUALITY_HIGH IPP_QUALITY_NORMAL IPP_REDIRECTION_OTHER_SITE IPP_RELEASE_HELD_NEW_JOBS IPP_RELEASE_JOB IPP_RENEW_SUBSCRIPTION IPP_REPROCESS_JOB IPP_REQUEST_ENTITY IPP_REQUEST_VALUE IPP_RESTART_JOB IPP_RESTART_PRINTER IPP_RESUME_JOB IPP_RESUME_PRINTER IPP_RES_PER_CM IPP_RES_PER_INCH IPP_REVERSE_LANDSCAPE IPP_REVERSE_PORTRAIT IPP_SCHEDULE_JOB_AFTER IPP_SEND_DOCUMENT IPP_SEND_NOTIFICATIONS IPP_SEND_URI IPP_SERVICE_UNAVAILABLE IPP_SET_JOB_ATTRIBUTES IPP_SET_PRINTER_ATTRIBUTES IPP_SHUTDOWN_PRINTER IPP_STARTUP_PRINTER IPP_SUSPEND_CURRENT_JOB IPP_TAG_ADMINDEFINE IPP_TAG_BEGIN_COLLECTION IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_DEFAULT IPP_TAG_DELETEATTR IPP_TAG_END IPP_TAG_END_COLLECTION IPP_TAG_ENUM IPP_TAG_EVENT_NOTIFICATION IPP_TAG_INTEGER IPP_TAG_JOB IPP_TAG_KEYWORD IPP_TAG_LANGUAGE IPP_TAG_MASK IPP_TAG_MEMBERNAME IPP_TAG_MIMETYPE IPP_TAG_NAME IPP_TAG_NAMELANG IPP_TAG_NOTSETTABLE IPP_TAG_NOVALUE IPP_TAG_OPERATION IPP_TAG_PRINTER IPP_TAG_RANGE IPP_TAG_RESOLUTION IPP_TAG_STRING IPP_TAG_SUBSCRIPTION IPP_TAG_TEXT IPP_TAG_TEXTLANG IPP_TAG_UNKNOWN IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_TAG_URI IPP_TAG_URISCHEME IPP_TAG_ZERO IPP_TEMPORARY_ERROR IPP_TIMEOUT IPP_TOO_MANY_SUBSCRIPTIONS IPP_URI_SCHEME IPP_VALIDATE_JOB IPP_VERSION_NOT_SUPPORTED PPD_ALLOC_ERROR PPD_BAD_CUSTOM_PARAM PPD_BAD_OPEN_GROUP PPD_BAD_OPEN_UI PPD_BAD_ORDER_DEPENDENCY PPD_BAD_UI_CONSTRAINTS PPD_CONFORM_RELAXED PPD_CONFORM_STRICT PPD_CS_CMY PPD_CS_CMYK PPD_CS_GRAY PPD_CS_N PPD_CS_RGB PPD_CS_RGBK PPD_CUSTOM_CURVE PPD_CUSTOM_INT PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_CUSTOM_POINTS PPD_CUSTOM_REAL PPD_CUSTOM_STRING PPD_FILE_OPEN_ERROR PPD_ILLEGAL_CHARACTER PPD_ILLEGAL_MAIN_KEYWORD PPD_ILLEGAL_OPTION_KEYWORD PPD_ILLEGAL_TRANSLATION PPD_ILLEGAL_WHITESPACE PPD_INTERNAL_ERROR PPD_LINE_TOO_LONG PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT PPD_MISSING_ASTERISK PPD_MISSING_PPDADOBE4 PPD_MISSING_VALUE PPD_NESTED_OPEN_GROUP PPD_NESTED_OPEN_UI PPD_NULL_FILE PPD_OK PPD_ORDER_ANY PPD_ORDER_DOCUMENT PPD_ORDER_EXIT PPD_ORDER_JCL PPD_ORDER_PAGE PPD_ORDER_PROLOG PPD_UI_BOOLEAN PPD_UI_PICKMANY PPD_UI_PICKONE PPD_VERSION ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( AF_LOCAL CUPS_ACCEPT_JOBS CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS CUPS_ADD_MODIFY_PRINTER CUPS_ADD_PRINTER CUPS_AUTHENTICATE_JOB CUPS_AUTO_ENCODING CUPS_BACKEND_AUTH_REQUIRED CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_BACKEND_HOLD CUPS_BACKEND_OK CUPS_BACKEND_STOP CUPS_DATE_ANY CUPS_DELETE_CLASS CUPS_DELETE_PRINTER CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_GET_PPDS CUPS_GET_PRINTERS CUPS_IMAGE_BLACK CUPS_IMAGE_CMY CUPS_IMAGE_CMYK CUPS_IMAGE_RGB CUPS_IMAGE_RGB_CMYK CUPS_IMAGE_WHITE CUPS_ISO8859_1 CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_KOI8_R CUPS_KOI8_U CUPS_MAC_ROMAN CUPS_MAX_USTRING CUPS_MOVE_JOB CUPS_PRINTER_AUTHENTICATED CUPS_PRINTER_BIND CUPS_PRINTER_BW CUPS_PRINTER_CLASS CUPS_PRINTER_COLLATE CUPS_PRINTER_COLOR CUPS_PRINTER_COMMANDS CUPS_PRINTER_COPIES CUPS_PRINTER_COVER CUPS_PRINTER_DEFAULT CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_FAX CUPS_PRINTER_IMPLICIT CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_MEDIUM CUPS_PRINTER_NOT_SHARED CUPS_PRINTER_OPTIONS CUPS_PRINTER_PUNCH CUPS_PRINTER_REJECTING CUPS_PRINTER_REMOTE CUPS_PRINTER_SMALL CUPS_PRINTER_SORT CUPS_PRINTER_STAPLE CUPS_PRINTER_VARIABLE CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_US_ASCII CUPS_UTF8 CUPS_VERSION CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_ACCEPTED HTTP_AUTH_BASIC HTTP_AUTH_MD5 HTTP_AUTH_MD5_INT HTTP_AUTH_MD5_SESS HTTP_AUTH_MD5_SESS_INT HTTP_AUTH_NONE HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_CLOSE HTTP_CONFLICT HTTP_CONTINUE HTTP_CREATED HTTP_DELETE HTTP_ENCODE_CHUNKED HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPT_NEVER HTTP_ENCRYPT_REQUIRED HTTP_ERROR HTTP_EXPECTATION_FAILED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONNECTION HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LENGTH HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_CONTENT_TYPE HTTP_FIELD_CONTENT_VERSION HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_IF_UNMODIFIED_SINCE HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_LAST_MODIFIED HTTP_FIELD_LINK HTTP_FIELD_LOCATION HTTP_FIELD_MAX HTTP_FIELD_RANGE HTTP_FIELD_REFERER HTTP_FIELD_RETRY_AFTER HTTP_FIELD_TRANSFER_ENCODING HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_FIELD_USER_AGENT HTTP_FIELD_WWW_AUTHENTICATE HTTP_FORBIDDEN HTTP_GATEWAY_TIMEOUT HTTP_GET HTTP_GET_SEND HTTP_GONE HTTP_HEAD HTTP_KEEPALIVE_OFF HTTP_KEEPALIVE_ON HTTP_LENGTH_REQUIRED HTTP_MAX_BUFFER HTTP_MAX_HOST HTTP_MAX_URI HTTP_MAX_VALUE HTTP_METHOD_NOT_ALLOWED HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_MULTIPLE_CHOICES HTTP_NOT_ACCEPTABLE HTTP_NOT_AUTHORITATIVE HTTP_NOT_FOUND HTTP_NOT_IMPLEMENTED HTTP_NOT_MODIFIED HTTP_NOT_SUPPORTED HTTP_NO_CONTENT HTTP_OK HTTP_OPTIONS HTTP_PARTIAL_CONTENT HTTP_PAYMENT_REQUIRED HTTP_POST HTTP_POST_RECV HTTP_POST_SEND HTTP_PRECONDITION HTTP_PROXY_AUTHENTICATION HTTP_PUT HTTP_PUT_RECV HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_REQUEST_TOO_LARGE HTTP_RESET_CONTENT HTTP_SEE_OTHER HTTP_SERVER_ERROR HTTP_SERVICE_UNAVAILABLE HTTP_STATUS HTTP_SWITCHING_PROTOCOLS HTTP_TRACE HTTP_UNAUTHORIZED HTTP_UNSUPPORTED_MEDIATYPE HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_ARGUMENTS HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_PORT HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_SCHEME HTTP_URI_BAD_URI HTTP_URI_BAD_USERNAME HTTP_URI_CODING_ALL HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE HTTP_URI_CODING_QUERY HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME HTTP_URI_MISSING_RESOURCE HTTP_URI_MISSING_SCHEME HTTP_URI_OK HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG HTTP_URI_UNKNOWN_SCHEME HTTP_USE_PROXY HTTP_WAITING INET6 IPP_ACTIVATE_PRINTER IPP_ATTRIBUTE IPP_ATTRIBUTES IPP_ATTRIBUTES_NOT_SETTABLE IPP_BAD_REQUEST IPP_CANCEL_CURRENT_JOB IPP_CANCEL_JOB IPP_CANCEL_SUBSCRIPTION IPP_CHARSET IPP_COMPRESSION_ERROR IPP_COMPRESSION_NOT_SUPPORTED IPP_CONFLICT IPP_CREATE_JOB IPP_CREATE_JOB_SUBSCRIPTION IPP_CREATE_PRINTER_SUBSCRIPTION IPP_DATA IPP_DEACTIVATE_PRINTER IPP_DEVICE_ERROR IPP_DISABLE_PRINTER IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT IPP_DOCUMENT_FORMAT_ERROR IPP_ENABLE_PRINTER IPP_ERROR IPP_ERROR_JOB_CANCELED IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_BIND_LEFT IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_BIND_TOP IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_COVER IPP_FINISHINGS_EDGE_STITCH IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_FOLD IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_NONE IPP_FINISHINGS_PUNCH IPP_FINISHINGS_SADDLE_STITCH IPP_FINISHINGS_STAPLE IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_FINISHINGS_TRIM IPP_FORBIDDEN IPP_GET_JOBS IPP_GET_JOB_ATTRIBUTES IPP_GET_NOTIFICATIONS IPP_GET_PRINTER_ATTRIBUTES IPP_GET_PRINTER_SUPPORTED_VALUES IPP_GET_PRINT_SUPPORT_FILES IPP_GET_SUBSCRIPTIONS IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_GONE IPP_HEADER IPP_HOLD_JOB IPP_HOLD_NEW_JOBS IPP_IDLE IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_INTERNAL_ERROR IPP_JOB_ABORTED IPP_JOB_CANCELED IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_JOB_HELD IPP_JOB_PENDING IPP_JOB_PROCESSING IPP_JOB_STOPPED IPP_LANDSCAPE IPP_MAX_NAME IPP_MAX_VALUES IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_NOT_ACCEPTING IPP_NOT_AUTHENTICATED IPP_NOT_AUTHORIZED IPP_NOT_FOUND IPP_NOT_POSSIBLE IPP_OK IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_OK_CONFLICT IPP_OK_EVENTS_COMPLETE IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS IPP_OK_SUBST IPP_OK_TOO_MANY_EVENTS IPP_OPERATION_NOT_SUPPORTED IPP_PAUSE_PRINTER IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_PORT IPP_PORTRAIT IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_PRINTER_IS_DEACTIVATED IPP_PRINTER_PROCESSING IPP_PRINTER_STOPPED IPP_PRINT_JOB IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_PRINT_URI IPP_PRIVATE IPP_PROMOTE_JOB IPP_PURGE_JOBS IPP_QUALITY_DRAFT IPP_QUALITY_HIGH IPP_QUALITY_NORMAL IPP_REDIRECTION_OTHER_SITE IPP_RELEASE_HELD_NEW_JOBS IPP_RELEASE_JOB IPP_RENEW_SUBSCRIPTION IPP_REPROCESS_JOB IPP_REQUEST_ENTITY IPP_REQUEST_VALUE IPP_RESTART_JOB IPP_RESTART_PRINTER IPP_RESUME_JOB IPP_RESUME_PRINTER IPP_RES_PER_CM IPP_RES_PER_INCH IPP_REVERSE_LANDSCAPE IPP_REVERSE_PORTRAIT IPP_SCHEDULE_JOB_AFTER IPP_SEND_DOCUMENT IPP_SEND_NOTIFICATIONS IPP_SEND_URI IPP_SERVICE_UNAVAILABLE IPP_SET_JOB_ATTRIBUTES IPP_SET_PRINTER_ATTRIBUTES IPP_SHUTDOWN_PRINTER IPP_STARTUP_PRINTER IPP_SUSPEND_CURRENT_JOB IPP_TAG_ADMINDEFINE IPP_TAG_BEGIN_COLLECTION IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_DEFAULT IPP_TAG_DELETEATTR IPP_TAG_END IPP_TAG_END_COLLECTION IPP_TAG_ENUM IPP_TAG_EVENT_NOTIFICATION IPP_TAG_INTEGER IPP_TAG_JOB IPP_TAG_KEYWORD IPP_TAG_LANGUAGE IPP_TAG_MASK IPP_TAG_MEMBERNAME IPP_TAG_MIMETYPE IPP_TAG_NAME IPP_TAG_NAMELANG IPP_TAG_NOTSETTABLE IPP_TAG_NOVALUE IPP_TAG_OPERATION IPP_TAG_PRINTER IPP_TAG_RANGE IPP_TAG_RESOLUTION IPP_TAG_STRING IPP_TAG_SUBSCRIPTION IPP_TAG_TEXT IPP_TAG_TEXTLANG IPP_TAG_UNKNOWN IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_TAG_URI IPP_TAG_URISCHEME IPP_TAG_ZERO IPP_TEMPORARY_ERROR IPP_TIMEOUT IPP_TOO_MANY_SUBSCRIPTIONS IPP_URI_SCHEME IPP_VALIDATE_JOB IPP_VERSION_NOT_SUPPORTED PPD_ALLOC_ERROR PPD_BAD_CUSTOM_PARAM PPD_BAD_OPEN_GROUP PPD_BAD_OPEN_UI PPD_BAD_ORDER_DEPENDENCY PPD_BAD_UI_CONSTRAINTS PPD_CONFORM_RELAXED PPD_CONFORM_STRICT PPD_CS_CMY PPD_CS_CMYK PPD_CS_GRAY PPD_CS_N PPD_CS_RGB PPD_CS_RGBK PPD_CUSTOM_CURVE PPD_CUSTOM_INT PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_CUSTOM_POINTS PPD_CUSTOM_REAL PPD_CUSTOM_STRING PPD_FILE_OPEN_ERROR PPD_ILLEGAL_CHARACTER PPD_ILLEGAL_MAIN_KEYWORD PPD_ILLEGAL_OPTION_KEYWORD PPD_ILLEGAL_TRANSLATION PPD_ILLEGAL_WHITESPACE PPD_INTERNAL_ERROR PPD_LINE_TOO_LONG PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT PPD_MISSING_ASTERISK PPD_MISSING_PPDADOBE4 PPD_MISSING_VALUE PPD_NESTED_OPEN_GROUP PPD_NESTED_OPEN_UI PPD_NULL_FILE PPD_OK PPD_ORDER_ANY PPD_ORDER_DOCUMENT PPD_ORDER_EXIT PPD_ORDER_JCL PPD_ORDER_PAGE PPD_ORDER_PROLOG PPD_UI_BOOLEAN PPD_UI_PICKMANY PPD_UI_PICKONE PPD_VERSION ); our $VERSION = '0.61'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. my $constname; our $AUTOLOAD; ($constname = $AUTOLOAD) =~ s/.*:://; croak "&Net::CUPS::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); if ($error) { croak $error; } { no strict 'refs'; # Fixed between 5.005_53 and 5.005_61 #XXX if ($] >= 5.00561) { #XXX *$AUTOLOAD = sub () { $val }; #XXX } #XXX else { *$AUTOLOAD = sub { $val }; #XXX } } goto &$AUTOLOAD; } require XSLoader; XSLoader::load('Net::CUPS', $VERSION); use Net::CUPS::PPD; use Net::CUPS::IPP; use Net::CUPS::Destination; ##==================================================================## ## Constructors ## ##==================================================================## ##----------------------------------------------## ## new ## ##----------------------------------------------## sub new { ## Pull in what type of an object we will be my $type = shift; ## Pull in our options if we have any ... my %options = @_; ## XXX One of the options might be a server host ... ## We will use a hash as our base class variable my $self = {}; my $class = ref( $type ) || $type; ## Bless the class for it is good [tm]. bless( $self, $class ); return( $self ); } ##----------------------------------------------## ## DESTROY ## ##----------------------------------------------## sub DESTROY { return; } ##==================================================================## ## Methods ## ##==================================================================## ##----------------------------------------------## ## getDestination ## ##----------------------------------------------## sub getDestination { my( $self, $name ) = @_; $name = "" if( !defined( $name ) ); return( NETCUPS_getDestination( $name ) ); } ##----------------------------------------------## ## getDestinations ## ##----------------------------------------------## sub getDestinations { my $self = shift; return( NETCUPS_getDestinations() ); } ##----------------------------------------------## ## getPassword ## ##----------------------------------------------## sub getPassword { my( $self, $prompt ) = @_; return( NETCUPS_getPassword( $prompt ) ); } ##----------------------------------------------## ## getPPD ## ##----------------------------------------------## sub getPPD { my( $self, $name ) = @_; my $ppd = NETCUPS_getPPD( $name ); bless( $ppd, "Net::CUPS::PPD" ); return( $ppd ); } ##----------------------------------------------## ## getServer ## ##----------------------------------------------## sub getServer { my $self = shift; return( NETCUPS_getServer() ); } ##----------------------------------------------## ## getUsername ## ##----------------------------------------------## sub getUsername { my $self = shift; return( NETCUPS_getUsername() ); } ##----------------------------------------------## ## requestData ## ##----------------------------------------------## sub requestData { my( $self, $request, $resource, $file ) = @_; $file = "" if !defined( $file ); return( NETCUPS_requestData( $request, $resource, $file ) ); } ##----------------------------------------------## ## setPasswordCB ## ##----------------------------------------------## sub setPasswordCB { my( $self, $callback ) = @_; NETCUPS_setPasswordCB( $callback ); return; } ##----------------------------------------------## ## setServer ## ##----------------------------------------------## sub setServer { my( $self, $name ) = @_; return( NETCUPS_setServer( $name ) ); } ##----------------------------------------------## ## setUsername ## ##----------------------------------------------## sub setUsername { my( $self, $username ) = @_; NETCUPS_setUsername( $username ); return; } ##----------------------------------------------## ## getPPDMakes ## ##----------------------------------------------## sub getPPDMakes { my $self = shift; return( NETCUPS_getPPDMakes() ); } ##----------------------------------------------## ## getAllPPs ## ##----------------------------------------------## sub getAllPPDs { my $self = shift; return( NETCUPS_getAllPPDs() ); } ##----------------------------------------------## ## deleteDestination ## ##----------------------------------------------## sub deleteDestination { my( $self, $destination ) = @_; NETCUPS_deleteDestination( $destination ); return; } ##----------------------------------------------## ## getPPDFileName ## ##----------------------------------------------## sub getPPDFileName { my( $self, $ppdname) = @_; return( NETCUPS_getPPDFileName( $ppdname ) ); } ##----------------------------------------------## ## addDestination ## ##----------------------------------------------## sub addDestination { my( $self, $name, $location, $printer_info, $ppd_name, $device_uri) = @_; return( NETCUPS_addDestination( $name, $location, $printer_info, $ppd_name, $device_uri ) ); } ##==================================================================## ## End of Code ## ##==================================================================## 1; ##==================================================================## ## Plain Old Documentation (POD) ## ##==================================================================## __END__ =head1 NAME Net::CUPS - Common Unix Printing System Interface =head1 SYNOPSIS use Net::CUPS; my $cups = Net::CUPS->new(); my $printer = $cups->getDestination( "lj4200dn" ); =head1 DESCRIPTION Net::CUPS is an object oriented interface to the Common Unix Printing System. =head1 METHODS =over 4 =item B my $printer = $cups->getDestination( $printer_name ); This method takes the name of the printer to acquire. If the printer does not exist it will return nothing. =item B my @printers = $cups->getDestinations(); This method will return an array of destinations currently configured on the cups server. =item B my $password = $cups->getPassword( $prompt ); Method to retrieve the password from the user via the password callback. =item B my $ppd = $cups->getPPD( $name ); Returns a Net::CUPS::PPD object for the default printer or for the specified printer or class. =item B my $makes = $cups->getPPDMakes(); Returns an arrary of scalers holding the names of all the makers (e.g. HP or Lexmark) of PPD files installed on the CUPS server =item B my $ppds = $cups->getAllPPDs(); Returns an array of scalers with the maker and model of all the PPDs installed on the CUPS server =item B $cups->getPPDFileName($ppd_name_and_make); Returns the file name of the PPD specified by the name and make as found in the array returned by getAllPPDs. The file name is used by addDestination and is relative to where the CUPS server is instructed to look (e.g /usr/share/ppd). =item B my $server_name = $cups->getServer(); A method to return either the hostname or the IP address of the active print server. =item B my $username = $cups->getUsername(); This method will return the current username associated with the CUPS transaction. =item B my $result = $cups->requestData( $request, $resource, $filename ); Send an IPP request to the server. This function is based off the C CUPS function cupsDoRequest and cupsDoRequestFile. The $filename is optional. =item B $cups->setPasswordCB( $function ) Method to set the callback function to be used by getPassword. =item B $cups->setServer( $server_ip ); This method will change the current cups server to another hosts. =item B $cups->setUsername( $username ); A method to change the username associated with CUPS interaction. =item B $cups->deleteDestination( $destination_name ); A method to delete an existing destination =item B $cups->addDestination( $name, $location, $printer_info, $ppd_name, $device_uri) A method to create a new destination. The $ppd_name variable should be the one returned for that printer by the getPPDFileName method. It will be relative to where the CUPS server is configured to look for PPD files (e.g. /usr/share/ppd). =back =head1 SEE ALSO L, L, L =head1 SUPPORT Support for this module and other software developed by Dracken Technology, Inc can be found at http://www.dracken.com/. =head1 AUTHOR Dracken Technology, Inc. (http://www.dracken.com/) =head1 ACKNOWLEDGEMENTS Aike Reyer supplied the password handling code. Mark Gannon supplied the code for PPD acquisition, destination creation and destination deletion. =head1 COPYRIGHT AND LICENSE Copyright (c) 2003-2005 David Hageman Copyright (c) 2006-2009 Dracken Technology, Inc. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. CUPS, the Common UNIX Printing System, the CUPS logo, and ESP Print Pro are the trademark property of Easy Software Products. =cut Net-CUPS-0.61/packer.c0000644001127700037230000000341511010464324012761 0ustar dhagemanHV* hash_ppd_option_t( ppd_option_t* option ) { HV* hv; HV* choice; AV* choices; int loop; hv = newHV(); if( option != NULL ) { hv_store( hv, "conflicted", strlen( "conflicted" ), newSViv( option->conflicted ), 0 ); hv_store( hv, "keyword", strlen( "keyword" ), newSVpv( option->keyword, PPD_MAX_NAME ), 0 ); hv_store( hv, "defchoice", strlen( "defchoice" ), newSVpv( option->defchoice, PPD_MAX_NAME ), 0 ); hv_store( hv, "text", strlen( "text" ), newSVpv( option->text, PPD_MAX_NAME ), 0 ); hv_store( hv, "ui", strlen( "ui" ), newSViv( option->ui ), 0 ); hv_store( hv, "section", strlen( "section" ), newSViv( option->section ), 0 ); hv_store( hv, "order", strlen( "order" ), newSViv( option->order ), 0 ); hv_store( hv, "num_choices", strlen( "num_choices" ), newSViv( option->num_choices ), 0 ); choices = newAV(); hv_store( hv, "choices", strlen( "choices" ), newSVsv( newRV( (SV*)choices ) ), 0 ); for( loop = 0; loop < option->num_choices; loop++ ) { choice = newHV(); hv_store( choice, "marked", strlen( "marked" ), newSViv( option->choices[loop].marked ), 0 ); hv_store( choice, "choice", strlen( "choice" ), newSVpv( option->choices[loop].choice, PPD_MAX_NAME ), 0 ); hv_store( choice, "text", strlen( "text" ), newSVpv( option->choices[loop].text, PPD_MAX_NAME ), 0 ); hv_store( choice, "code", strlen( "code" ), newSVpv( option->choices[loop].code, strlen( option->choices[loop].code ) ), 0 ); av_push( choices, newRV( (SV*)choice ) ); } } return( hv ); } Net-CUPS-0.61/fallback/0000755001127700037230000000000011242661040013105 5ustar dhagemanNet-CUPS-0.61/fallback/const-c.inc0000644001127700037230000042324211010464324015154 0ustar dhageman#define PERL_constant_NOTFOUND 1 #define PERL_constant_NOTDEF 2 #define PERL_constant_ISIV 3 #define PERL_constant_ISNO 4 #define PERL_constant_ISNV 5 #define PERL_constant_ISPV 6 #define PERL_constant_ISPVN 7 #define PERL_constant_ISSV 8 #define PERL_constant_ISUNDEF 9 #define PERL_constant_ISUV 10 #define PERL_constant_ISYES 11 #ifndef NVTYPE typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */ #endif #ifndef aTHX_ #define aTHX_ /* 5.6 or later define this for threading support. */ #endif #ifndef pTHX_ #define pTHX_ /* 5.6 or later define this for threading support. */ #endif static int constant_8 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. AF_LOCAL HTTP_0_9 HTTP_1_0 HTTP_1_1 HTTP_GET HTTP_PUT IPP_DATA IPP_GONE IPP_IDLE IPP_PORT PPD_CS_N */ /* Offset 5 gives the best switch position. */ switch (name[5]) { case '0': if (memEQ(name, "HTTP_0_9", 8)) { /* ^ */ *iv_return = HTTP_0_9; return PERL_constant_ISIV; } break; case '1': if (memEQ(name, "HTTP_1_0", 8)) { /* ^ */ *iv_return = HTTP_1_0; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_1_1", 8)) { /* ^ */ *iv_return = HTTP_1_1; return PERL_constant_ISIV; } break; case 'A': if (memEQ(name, "IPP_DATA", 8)) { /* ^ */ *iv_return = IPP_DATA; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "AF_LOCAL", 8)) { /* ^ */ *iv_return = AF_LOCAL; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_IDLE", 8)) { /* ^ */ *iv_return = IPP_IDLE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "HTTP_GET", 8)) { /* ^ */ *iv_return = HTTP_GET; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "IPP_GONE", 8)) { /* ^ */ *iv_return = IPP_GONE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PORT", 8)) { /* ^ */ *iv_return = IPP_PORT; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "HTTP_PUT", 8)) { /* ^ */ *iv_return = HTTP_PUT; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "PPD_CS_N", 8)) { /* ^ */ *iv_return = PPD_CS_N; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_9 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_UTF8 HTTP_GONE HTTP_HEAD HTTP_POST IPP_ERROR */ /* Offset 5 gives the best switch position. */ switch (name[5]) { case 'G': if (memEQ(name, "HTTP_GONE", 9)) { /* ^ */ *iv_return = HTTP_GONE; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "HTTP_HEAD", 9)) { /* ^ */ *iv_return = HTTP_HEAD; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "HTTP_POST", 9)) { /* ^ */ *iv_return = HTTP_POST; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_ERROR", 9)) { /* ^ */ *iv_return = IPP_ERROR; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "CUPS_UTF8", 9)) { /* ^ */ *iv_return = CUPS_UTF8; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_10 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_CLOSE HTTP_ERROR HTTP_TRACE IPP_HEADER PPD_CS_CMY PPD_CS_RGB */ /* Offset 8 gives the best switch position. */ switch (name[8]) { case 'C': if (memEQ(name, "HTTP_TRACE", 10)) { /* ^ */ *iv_return = HTTP_TRACE; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_HEADER", 10)) { /* ^ */ *iv_return = IPP_HEADER; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "PPD_CS_RGB", 10)) { /* ^ */ *iv_return = PPD_CS_RGB; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "PPD_CS_CMY", 10)) { /* ^ */ *iv_return = PPD_CS_CMY; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "HTTP_ERROR", 10)) { /* ^ */ *iv_return = HTTP_ERROR; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "HTTP_CLOSE", 10)) { /* ^ */ *iv_return = HTTP_CLOSE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_11 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_EUC_CN CUPS_EUC_JP CUPS_EUC_KR CUPS_EUC_TW CUPS_KOI8_R CUPS_KOI8_U HTTP_DELETE HTTP_STATUS HTTP_URI_OK IPP_CHARSET IPP_PRIVATE IPP_TAG_END IPP_TAG_JOB IPP_TAG_URI IPP_TIMEOUT PPD_CS_CMYK PPD_CS_GRAY PPD_CS_RGBK PPD_VERSION */ /* Offset 10 gives the best switch position. */ switch (name[10]) { case 'B': if (memEQ(name, "IPP_TAG_JO", 10)) { /* B */ *iv_return = IPP_TAG_JOB; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_TAG_EN", 10)) { /* D */ *iv_return = IPP_TAG_END; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_DELET", 10)) { /* E */ *iv_return = HTTP_DELETE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PRIVAT", 10)) { /* E */ *iv_return = IPP_PRIVATE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_TAG_UR", 10)) { /* I */ *iv_return = IPP_TAG_URI; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "HTTP_URI_O", 10)) { /* K */ *iv_return = HTTP_URI_OK; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CS_CMY", 10)) { /* K */ *iv_return = PPD_CS_CMYK; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CS_RGB", 10)) { /* K */ *iv_return = PPD_CS_RGBK; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "CUPS_EUC_C", 10)) { /* N */ *iv_return = CUPS_EUC_CN; return PERL_constant_ISIV; } if (memEQ(name, "PPD_VERSIO", 10)) { /* N */ *iv_return = PPD_VERSION; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_EUC_J", 10)) { /* P */ *iv_return = CUPS_EUC_JP; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "CUPS_EUC_K", 10)) { /* R */ *iv_return = CUPS_EUC_KR; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_KOI8_", 10)) { /* R */ *iv_return = CUPS_KOI8_R; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "HTTP_STATU", 10)) { /* S */ *iv_return = HTTP_STATUS; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_CHARSE", 10)) { /* T */ *iv_return = IPP_CHARSET; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TIMEOU", 10)) { /* T */ *iv_return = IPP_TIMEOUT; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "CUPS_KOI8_", 10)) { /* U */ *iv_return = CUPS_KOI8_U; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "CUPS_EUC_T", 10)) { /* W */ *iv_return = CUPS_EUC_TW; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "PPD_CS_GRA", 10)) { /* Y */ *iv_return = PPD_CS_GRAY; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_12 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_VERSION HTTP_CREATED HTTP_MAX_URI HTTP_OPTIONS HTTP_WAITING IPP_CONFLICT IPP_GET_JOBS IPP_HOLD_JOB IPP_JOB_HELD IPP_MAX_NAME IPP_OK_SUBST IPP_PORTRAIT IPP_SEND_URI IPP_TAG_COPY IPP_TAG_DATE IPP_TAG_ENUM IPP_TAG_MASK IPP_TAG_NAME IPP_TAG_TEXT IPP_TAG_ZERO PPD_MAX_LINE PPD_MAX_NAME PPD_MAX_TEXT */ /* Offset 8 gives the best switch position. */ switch (name[8]) { case 'A': if (memEQ(name, "HTTP_CREATED", 12)) { /* ^ */ *iv_return = HTTP_CREATED; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "IPP_TAG_COPY", 12)) { /* ^ */ *iv_return = IPP_TAG_COPY; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_TAG_DATE", 12)) { /* ^ */ *iv_return = IPP_TAG_DATE; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_TAG_ENUM", 12)) { /* ^ */ *iv_return = IPP_TAG_ENUM; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "IPP_JOB_HELD", 12)) { /* ^ */ *iv_return = IPP_JOB_HELD; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "HTTP_OPTIONS", 12)) { /* ^ */ *iv_return = HTTP_OPTIONS; return PERL_constant_ISIV; } break; case 'J': if (memEQ(name, "IPP_GET_JOBS", 12)) { /* ^ */ *iv_return = IPP_GET_JOBS; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_CONFLICT", 12)) { /* ^ */ *iv_return = IPP_CONFLICT; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MAX_LINE", 12)) { /* ^ */ *iv_return = PPD_MAX_LINE; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "IPP_TAG_MASK", 12)) { /* ^ */ *iv_return = IPP_TAG_MASK; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "IPP_MAX_NAME", 12)) { /* ^ */ *iv_return = IPP_MAX_NAME; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_NAME", 12)) { /* ^ */ *iv_return = IPP_TAG_NAME; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MAX_NAME", 12)) { /* ^ */ *iv_return = PPD_MAX_NAME; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_PORTRAIT", 12)) { /* ^ */ *iv_return = IPP_PORTRAIT; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_VERSION", 12)) { /* ^ */ *iv_return = CUPS_VERSION; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_WAITING", 12)) { /* ^ */ *iv_return = HTTP_WAITING; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_TEXT", 12)) { /* ^ */ *iv_return = IPP_TAG_TEXT; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MAX_TEXT", 12)) { /* ^ */ *iv_return = PPD_MAX_TEXT; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_OK_SUBST", 12)) { /* ^ */ *iv_return = IPP_OK_SUBST; return PERL_constant_ISIV; } break; case 'Z': if (memEQ(name, "IPP_TAG_ZERO", 12)) { /* ^ */ *iv_return = IPP_TAG_ZERO; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "HTTP_MAX_URI", 12)) { /* ^ */ *iv_return = HTTP_MAX_URI; return PERL_constant_ISIV; } if (memEQ(name, "IPP_HOLD_JOB", 12)) { /* ^ */ *iv_return = IPP_HOLD_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SEND_URI", 12)) { /* ^ */ *iv_return = IPP_SEND_URI; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_13 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_DATE_ANY CUPS_GET_PPDS CUPS_MOVE_JOB CUPS_US_ASCII HTTP_ACCEPTED HTTP_AUTH_MD5 HTTP_CONFLICT HTTP_CONTINUE HTTP_GET_SEND HTTP_MAX_HOST HTTP_PUT_RECV IPP_ATTRIBUTE IPP_FORBIDDEN IPP_LANDSCAPE IPP_NOT_FOUND IPP_PRINT_JOB IPP_PRINT_URI IPP_TAG_RANGE PPD_NULL_FILE PPD_ORDER_ANY PPD_ORDER_JCL */ /* Offset 6 gives the best switch position. */ switch (name[6]) { case 'A': if (memEQ(name, "CUPS_DATE_ANY", 13)) { /* ^ */ *iv_return = CUPS_DATE_ANY; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_MAX_HOST", 13)) { /* ^ */ *iv_return = HTTP_MAX_HOST; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "HTTP_ACCEPTED", 13)) { /* ^ */ *iv_return = HTTP_ACCEPTED; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "PPD_ORDER_ANY", 13)) { /* ^ */ *iv_return = PPD_ORDER_ANY; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_JCL", 13)) { /* ^ */ *iv_return = PPD_ORDER_JCL; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "CUPS_GET_PPDS", 13)) { /* ^ */ *iv_return = CUPS_GET_PPDS; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_GET_SEND", 13)) { /* ^ */ *iv_return = HTTP_GET_SEND; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "IPP_TAG_RANGE", 13)) { /* ^ */ *iv_return = IPP_TAG_RANGE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_PRINT_JOB", 13)) { /* ^ */ *iv_return = IPP_PRINT_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PRINT_URI", 13)) { /* ^ */ *iv_return = IPP_PRINT_URI; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "PPD_NULL_FILE", 13)) { /* ^ */ *iv_return = PPD_NULL_FILE; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "IPP_LANDSCAPE", 13)) { /* ^ */ *iv_return = IPP_LANDSCAPE; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "CUPS_MOVE_JOB", 13)) { /* ^ */ *iv_return = CUPS_MOVE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_CONFLICT", 13)) { /* ^ */ *iv_return = HTTP_CONFLICT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_CONTINUE", 13)) { /* ^ */ *iv_return = HTTP_CONTINUE; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_FORBIDDEN", 13)) { /* ^ */ *iv_return = IPP_FORBIDDEN; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_US_ASCII", 13)) { /* ^ */ *iv_return = CUPS_US_ASCII; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_ATTRIBUTE", 13)) { /* ^ */ *iv_return = IPP_ATTRIBUTE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_NOT_FOUND", 13)) { /* ^ */ *iv_return = IPP_NOT_FOUND; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_AUTH_MD5", 13)) { /* ^ */ *iv_return = HTTP_AUTH_MD5; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_PUT_RECV", 13)) { /* ^ */ *iv_return = HTTP_PUT_RECV; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_14 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ADD_CLASS CUPS_FILE_GZIP CUPS_FILE_NONE CUPS_IMAGE_CMY CUPS_IMAGE_RGB CUPS_ISO8859_1 CUPS_ISO8859_2 CUPS_ISO8859_3 CUPS_ISO8859_4 CUPS_ISO8859_5 CUPS_ISO8859_6 CUPS_ISO8859_7 CUPS_ISO8859_8 CUPS_ISO8859_9 CUPS_MAC_ROMAN HTTP_AUTH_NONE HTTP_FIELD_MAX HTTP_FORBIDDEN HTTP_MAX_VALUE HTTP_NOT_FOUND HTTP_POST_RECV HTTP_POST_SEND HTTP_SEE_OTHER HTTP_USE_PROXY IPP_ATTRIBUTES IPP_CANCEL_JOB IPP_CREATE_JOB IPP_MAX_VALUES IPP_PURGE_JOBS IPP_RESUME_JOB IPP_RES_PER_CM IPP_TAG_STRING IPP_URI_SCHEME PPD_CUSTOM_INT PPD_ORDER_EXIT PPD_ORDER_PAGE PPD_UI_BOOLEAN PPD_UI_PICKONE */ /* Offset 13 gives the best switch position. */ switch (name[13]) { case '1': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 1 */ *iv_return = CUPS_ISO8859_1; return PERL_constant_ISIV; } break; case '2': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 2 */ *iv_return = CUPS_ISO8859_2; return PERL_constant_ISIV; } break; case '3': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 3 */ *iv_return = CUPS_ISO8859_3; return PERL_constant_ISIV; } break; case '4': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 4 */ *iv_return = CUPS_ISO8859_4; return PERL_constant_ISIV; } break; case '5': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 5 */ *iv_return = CUPS_ISO8859_5; return PERL_constant_ISIV; } break; case '6': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 6 */ *iv_return = CUPS_ISO8859_6; return PERL_constant_ISIV; } break; case '7': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 7 */ *iv_return = CUPS_ISO8859_7; return PERL_constant_ISIV; } break; case '8': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 8 */ *iv_return = CUPS_ISO8859_8; return PERL_constant_ISIV; } break; case '9': if (memEQ(name, "CUPS_ISO8859_", 13)) { /* 9 */ *iv_return = CUPS_ISO8859_9; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "CUPS_IMAGE_RG", 13)) { /* B */ *iv_return = CUPS_IMAGE_RGB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_CANCEL_JO", 13)) { /* B */ *iv_return = IPP_CANCEL_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_CREATE_JO", 13)) { /* B */ *iv_return = IPP_CREATE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RESUME_JO", 13)) { /* B */ *iv_return = IPP_RESUME_JOB; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "HTTP_NOT_FOUN", 13)) { /* D */ *iv_return = HTTP_NOT_FOUND; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_POST_SEN", 13)) { /* D */ *iv_return = HTTP_POST_SEND; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "CUPS_FILE_NON", 13)) { /* E */ *iv_return = CUPS_FILE_NONE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_AUTH_NON", 13)) { /* E */ *iv_return = HTTP_AUTH_NONE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_MAX_VALU", 13)) { /* E */ *iv_return = HTTP_MAX_VALUE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_URI_SCHEM", 13)) { /* E */ *iv_return = IPP_URI_SCHEME; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_PAG", 13)) { /* E */ *iv_return = PPD_ORDER_PAGE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_UI_PICKON", 13)) { /* E */ *iv_return = PPD_UI_PICKONE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "IPP_TAG_STRIN", 13)) { /* G */ *iv_return = IPP_TAG_STRING; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "IPP_RES_PER_C", 13)) { /* M */ *iv_return = IPP_RES_PER_CM; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "CUPS_MAC_ROMA", 13)) { /* N */ *iv_return = CUPS_MAC_ROMAN; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_FORBIDDE", 13)) { /* N */ *iv_return = HTTP_FORBIDDEN; return PERL_constant_ISIV; } if (memEQ(name, "PPD_UI_BOOLEA", 13)) { /* N */ *iv_return = PPD_UI_BOOLEAN; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_FILE_GZI", 13)) { /* P */ *iv_return = CUPS_FILE_GZIP; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_SEE_OTHE", 13)) { /* R */ *iv_return = HTTP_SEE_OTHER; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_ADD_CLAS", 13)) { /* S */ *iv_return = CUPS_ADD_CLASS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_ATTRIBUTE", 13)) { /* S */ *iv_return = IPP_ATTRIBUTES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_MAX_VALUE", 13)) { /* S */ *iv_return = IPP_MAX_VALUES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PURGE_JOB", 13)) { /* S */ *iv_return = IPP_PURGE_JOBS; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "PPD_CUSTOM_IN", 13)) { /* T */ *iv_return = PPD_CUSTOM_INT; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_EXI", 13)) { /* T */ *iv_return = PPD_ORDER_EXIT; return PERL_constant_ISIV; } break; case 'V': if (memEQ(name, "HTTP_POST_REC", 13)) { /* V */ *iv_return = HTTP_POST_RECV; return PERL_constant_ISIV; } break; case 'X': if (memEQ(name, "HTTP_FIELD_MA", 13)) { /* X */ *iv_return = HTTP_FIELD_MAX; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "CUPS_IMAGE_CM", 13)) { /* Y */ *iv_return = CUPS_IMAGE_CMY; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_USE_PROX", 13)) { /* Y */ *iv_return = HTTP_USE_PROXY; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_15 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_BACKEND_OK CUPS_IMAGE_CMYK CUPS_ISO8859_10 CUPS_ISO8859_11 CUPS_ISO8859_13 CUPS_ISO8859_14 CUPS_ISO8859_15 CUPS_ISO8859_16 CUPS_PRINTER_BW HTTP_AUTH_BASIC HTTP_FIELD_DATE HTTP_FIELD_HOST HTTP_FIELD_LINK HTTP_MAX_BUFFER HTTP_NO_CONTENT IPP_BAD_REQUEST IPP_JOB_ABORTED IPP_JOB_PENDING IPP_JOB_STOPPED IPP_OK_CONFLICT IPP_PROMOTE_JOB IPP_RELEASE_JOB IPP_RESTART_JOB IPP_TAG_BOOLEAN IPP_TAG_CHARSET IPP_TAG_DEFAULT IPP_TAG_INTEGER IPP_TAG_KEYWORD IPP_TAG_NOVALUE IPP_TAG_PRINTER IPP_TAG_UNKNOWN PPD_ALLOC_ERROR PPD_BAD_OPEN_UI PPD_CUSTOM_REAL PPD_UI_PICKMANY */ /* Offset 14 gives the best switch position. */ switch (name[14]) { case '0': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 0 */ *iv_return = CUPS_ISO8859_10; return PERL_constant_ISIV; } break; case '1': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 1 */ *iv_return = CUPS_ISO8859_11; return PERL_constant_ISIV; } break; case '3': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 3 */ *iv_return = CUPS_ISO8859_13; return PERL_constant_ISIV; } break; case '4': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 4 */ *iv_return = CUPS_ISO8859_14; return PERL_constant_ISIV; } break; case '5': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 5 */ *iv_return = CUPS_ISO8859_15; return PERL_constant_ISIV; } break; case '6': if (memEQ(name, "CUPS_ISO8859_1", 14)) { /* 6 */ *iv_return = CUPS_ISO8859_16; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_PROMOTE_JO", 14)) { /* B */ *iv_return = IPP_PROMOTE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RELEASE_JO", 14)) { /* B */ *iv_return = IPP_RELEASE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RESTART_JO", 14)) { /* B */ *iv_return = IPP_RESTART_JOB; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "HTTP_AUTH_BASI", 14)) { /* C */ *iv_return = HTTP_AUTH_BASIC; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_JOB_ABORTE", 14)) { /* D */ *iv_return = IPP_JOB_ABORTED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_JOB_STOPPE", 14)) { /* D */ *iv_return = IPP_JOB_STOPPED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_KEYWOR", 14)) { /* D */ *iv_return = IPP_TAG_KEYWORD; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_FIELD_DAT", 14)) { /* E */ *iv_return = HTTP_FIELD_DATE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_NOVALU", 14)) { /* E */ *iv_return = IPP_TAG_NOVALUE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "IPP_JOB_PENDIN", 14)) { /* G */ *iv_return = IPP_JOB_PENDING; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "PPD_BAD_OPEN_U", 14)) { /* I */ *iv_return = PPD_BAD_OPEN_UI; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "CUPS_BACKEND_O", 14)) { /* K */ *iv_return = CUPS_BACKEND_OK; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_IMAGE_CMY", 14)) { /* K */ *iv_return = CUPS_IMAGE_CMYK; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_FIELD_LIN", 14)) { /* K */ *iv_return = HTTP_FIELD_LINK; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "PPD_CUSTOM_REA", 14)) { /* L */ *iv_return = PPD_CUSTOM_REAL; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "IPP_TAG_BOOLEA", 14)) { /* N */ *iv_return = IPP_TAG_BOOLEAN; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_UNKNOW", 14)) { /* N */ *iv_return = IPP_TAG_UNKNOWN; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_MAX_BUFFE", 14)) { /* R */ *iv_return = HTTP_MAX_BUFFER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_INTEGE", 14)) { /* R */ *iv_return = IPP_TAG_INTEGER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_PRINTE", 14)) { /* R */ *iv_return = IPP_TAG_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ALLOC_ERRO", 14)) { /* R */ *iv_return = PPD_ALLOC_ERROR; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_FIELD_HOS", 14)) { /* T */ *iv_return = HTTP_FIELD_HOST; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_NO_CONTEN", 14)) { /* T */ *iv_return = HTTP_NO_CONTENT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_BAD_REQUES", 14)) { /* T */ *iv_return = IPP_BAD_REQUEST; return PERL_constant_ISIV; } if (memEQ(name, "IPP_OK_CONFLIC", 14)) { /* T */ *iv_return = IPP_OK_CONFLICT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_CHARSE", 14)) { /* T */ *iv_return = IPP_TAG_CHARSET; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_DEFAUL", 14)) { /* T */ *iv_return = IPP_TAG_DEFAULT; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "CUPS_PRINTER_B", 14)) { /* W */ *iv_return = CUPS_PRINTER_BW; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "PPD_UI_PICKMAN", 14)) { /* Y */ *iv_return = PPD_UI_PICKMANY; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_16 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ACCEPT_JOBS CUPS_ADD_PRINTER CUPS_GET_CLASSES CUPS_GET_DEFAULT CUPS_GET_DEVICES CUPS_IMAGE_BLACK CUPS_IMAGE_WHITE CUPS_MAX_USTRING CUPS_PRINTER_FAX CUPS_REJECT_JOBS CUPS_SET_DEFAULT CUPS_WINDOWS_874 CUPS_WINDOWS_932 CUPS_WINDOWS_936 CUPS_WINDOWS_949 CUPS_WINDOWS_950 HTTP_BAD_GATEWAY HTTP_BAD_REQUEST HTTP_FIELD_RANGE HTTP_URI_BAD_URI IPP_DEVICE_ERROR IPP_JOB_CANCELED IPP_NOT_POSSIBLE IPP_PRINTER_BUSY IPP_PRINTER_IDLE IPP_QUALITY_HIGH IPP_RES_PER_INCH IPP_TAG_LANGUAGE IPP_TAG_MIMETYPE IPP_TAG_NAMELANG IPP_TAG_TEXTLANG IPP_VALIDATE_JOB PPD_CUSTOM_CURVE PPD_ORDER_PROLOG */ /* Offset 13 gives the best switch position. */ switch (name[13]) { case '8': if (memEQ(name, "CUPS_WINDOWS_874", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_874; return PERL_constant_ISIV; } break; case '9': if (memEQ(name, "CUPS_WINDOWS_932", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_932; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_WINDOWS_936", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_936; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_WINDOWS_949", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_949; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_WINDOWS_950", 16)) { /* ^ */ *iv_return = CUPS_WINDOWS_950; return PERL_constant_ISIV; } break; case 'A': if (memEQ(name, "CUPS_IMAGE_BLACK", 16)) { /* ^ */ *iv_return = CUPS_IMAGE_BLACK; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_LANGUAGE", 16)) { /* ^ */ *iv_return = IPP_TAG_LANGUAGE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_NAMELANG", 16)) { /* ^ */ *iv_return = IPP_TAG_NAMELANG; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_TEXTLANG", 16)) { /* ^ */ *iv_return = IPP_TAG_TEXTLANG; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_NOT_POSSIBLE", 16)) { /* ^ */ *iv_return = IPP_NOT_POSSIBLE; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "CUPS_GET_DEVICES", 16)) { /* ^ */ *iv_return = CUPS_GET_DEVICES; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_PRINTER_IDLE", 16)) { /* ^ */ *iv_return = IPP_PRINTER_IDLE; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_BAD_REQUEST", 16)) { /* ^ */ *iv_return = HTTP_BAD_REQUEST; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "CUPS_PRINTER_FAX", 16)) { /* ^ */ *iv_return = CUPS_PRINTER_FAX; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "CUPS_IMAGE_WHITE", 16)) { /* ^ */ *iv_return = CUPS_IMAGE_WHITE; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_MAX_USTRING", 16)) { /* ^ */ *iv_return = CUPS_MAX_USTRING; return PERL_constant_ISIV; } if (memEQ(name, "IPP_QUALITY_HIGH", 16)) { /* ^ */ *iv_return = IPP_QUALITY_HIGH; return PERL_constant_ISIV; } break; case 'J': if (memEQ(name, "IPP_VALIDATE_JOB", 16)) { /* ^ */ *iv_return = IPP_VALIDATE_JOB; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_JOB_CANCELED", 16)) { /* ^ */ *iv_return = IPP_JOB_CANCELED; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_PROLOG", 16)) { /* ^ */ *iv_return = PPD_ORDER_PROLOG; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_RANGE", 16)) { /* ^ */ *iv_return = HTTP_FIELD_RANGE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RES_PER_INCH", 16)) { /* ^ */ *iv_return = IPP_RES_PER_INCH; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "CUPS_ACCEPT_JOBS", 16)) { /* ^ */ *iv_return = CUPS_ACCEPT_JOBS; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_REJECT_JOBS", 16)) { /* ^ */ *iv_return = CUPS_REJECT_JOBS; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_DEVICE_ERROR", 16)) { /* ^ */ *iv_return = IPP_DEVICE_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_CURVE", 16)) { /* ^ */ *iv_return = PPD_CUSTOM_CURVE; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_GET_CLASSES", 16)) { /* ^ */ *iv_return = CUPS_GET_CLASSES; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "CUPS_ADD_PRINTER", 16)) { /* ^ */ *iv_return = CUPS_ADD_PRINTER; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "CUPS_GET_DEFAULT", 16)) { /* ^ */ *iv_return = CUPS_GET_DEFAULT; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_SET_DEFAULT", 16)) { /* ^ */ *iv_return = CUPS_SET_DEFAULT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_URI", 16)) { /* ^ */ *iv_return = HTTP_URI_BAD_URI; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PRINTER_BUSY", 16)) { /* ^ */ *iv_return = IPP_PRINTER_BUSY; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "HTTP_BAD_GATEWAY", 16)) { /* ^ */ *iv_return = HTTP_BAD_GATEWAY; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "IPP_TAG_MIMETYPE", 16)) { /* ^ */ *iv_return = IPP_TAG_MIMETYPE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_17 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_BACKEND_HOLD CUPS_BACKEND_STOP CUPS_DELETE_CLASS CUPS_GET_PRINTERS CUPS_PRINTER_BIND CUPS_PRINTER_SORT CUPS_WINDOWS_1250 CUPS_WINDOWS_1251 CUPS_WINDOWS_1252 CUPS_WINDOWS_1253 CUPS_WINDOWS_1254 CUPS_WINDOWS_1255 CUPS_WINDOWS_1256 CUPS_WINDOWS_1257 CUPS_WINDOWS_1258 CUPS_WINDOWS_1361 HTTP_AUTH_MD5_INT HTTP_KEEPALIVE_ON HTTP_NOT_MODIFIED HTTP_PRECONDITION HTTP_SERVER_ERROR HTTP_UNAUTHORIZED HTTP_URI_BAD_PORT HTTP_URI_OVERFLOW HTTP_URI_TOO_LONG IPP_HOLD_NEW_JOBS IPP_JOB_CANCELLED IPP_JOB_COMPLETED IPP_NOT_ACCEPTING IPP_PAUSE_PRINTER IPP_QUALITY_DRAFT IPP_REPROCESS_JOB IPP_REQUEST_VALUE IPP_SEND_DOCUMENT IPP_TAG_OPERATION IPP_TAG_URISCHEME PPD_CUSTOM_POINTS PPD_CUSTOM_STRING PPD_LINE_TOO_LONG PPD_MISSING_VALUE */ /* Offset 16 gives the best switch position. */ switch (name[16]) { case '0': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 0 */ *iv_return = CUPS_WINDOWS_1250; return PERL_constant_ISIV; } break; case '1': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 1 */ *iv_return = CUPS_WINDOWS_1251; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_WINDOWS_136", 16)) { /* 1 */ *iv_return = CUPS_WINDOWS_1361; return PERL_constant_ISIV; } break; case '2': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 2 */ *iv_return = CUPS_WINDOWS_1252; return PERL_constant_ISIV; } break; case '3': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 3 */ *iv_return = CUPS_WINDOWS_1253; return PERL_constant_ISIV; } break; case '4': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 4 */ *iv_return = CUPS_WINDOWS_1254; return PERL_constant_ISIV; } break; case '5': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 5 */ *iv_return = CUPS_WINDOWS_1255; return PERL_constant_ISIV; } break; case '6': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 6 */ *iv_return = CUPS_WINDOWS_1256; return PERL_constant_ISIV; } break; case '7': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 7 */ *iv_return = CUPS_WINDOWS_1257; return PERL_constant_ISIV; } break; case '8': if (memEQ(name, "CUPS_WINDOWS_125", 16)) { /* 8 */ *iv_return = CUPS_WINDOWS_1258; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_REPROCESS_JO", 16)) { /* B */ *iv_return = IPP_REPROCESS_JOB; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "CUPS_BACKEND_HOL", 16)) { /* D */ *iv_return = CUPS_BACKEND_HOLD; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_BIN", 16)) { /* D */ *iv_return = CUPS_PRINTER_BIND; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_NOT_MODIFIE", 16)) { /* D */ *iv_return = HTTP_NOT_MODIFIED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_UNAUTHORIZE", 16)) { /* D */ *iv_return = HTTP_UNAUTHORIZED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_JOB_CANCELLE", 16)) { /* D */ *iv_return = IPP_JOB_CANCELLED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_JOB_COMPLETE", 16)) { /* D */ *iv_return = IPP_JOB_COMPLETED; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_REQUEST_VALU", 16)) { /* E */ *iv_return = IPP_REQUEST_VALUE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_URISCHEM", 16)) { /* E */ *iv_return = IPP_TAG_URISCHEME; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MISSING_VALU", 16)) { /* E */ *iv_return = PPD_MISSING_VALUE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "HTTP_URI_TOO_LON", 16)) { /* G */ *iv_return = HTTP_URI_TOO_LONG; return PERL_constant_ISIV; } if (memEQ(name, "IPP_NOT_ACCEPTIN", 16)) { /* G */ *iv_return = IPP_NOT_ACCEPTING; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_STRIN", 16)) { /* G */ *iv_return = PPD_CUSTOM_STRING; return PERL_constant_ISIV; } if (memEQ(name, "PPD_LINE_TOO_LON", 16)) { /* G */ *iv_return = PPD_LINE_TOO_LONG; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_KEEPALIVE_O", 16)) { /* N */ *iv_return = HTTP_KEEPALIVE_ON; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_PRECONDITIO", 16)) { /* N */ *iv_return = HTTP_PRECONDITION; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_OPERATIO", 16)) { /* N */ *iv_return = IPP_TAG_OPERATION; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_BACKEND_STO", 16)) { /* P */ *iv_return = CUPS_BACKEND_STOP; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_SERVER_ERRO", 16)) { /* R */ *iv_return = HTTP_SERVER_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PAUSE_PRINTE", 16)) { /* R */ *iv_return = IPP_PAUSE_PRINTER; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_DELETE_CLAS", 16)) { /* S */ *iv_return = CUPS_DELETE_CLASS; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_GET_PRINTER", 16)) { /* S */ *iv_return = CUPS_GET_PRINTERS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_HOLD_NEW_JOB", 16)) { /* S */ *iv_return = IPP_HOLD_NEW_JOBS; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_POINT", 16)) { /* S */ *iv_return = PPD_CUSTOM_POINTS; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "CUPS_PRINTER_SOR", 16)) { /* T */ *iv_return = CUPS_PRINTER_SORT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_AUTH_MD5_IN", 16)) { /* T */ *iv_return = HTTP_AUTH_MD5_INT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_POR", 16)) { /* T */ *iv_return = HTTP_URI_BAD_PORT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_QUALITY_DRAF", 16)) { /* T */ *iv_return = IPP_QUALITY_DRAFT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SEND_DOCUMEN", 16)) { /* T */ *iv_return = IPP_SEND_DOCUMENT; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "HTTP_URI_OVERFLO", 16)) { /* W */ *iv_return = HTTP_URI_OVERFLOW; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_18 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_AUTO_ENCODING CUPS_PRINTER_CLASS CUPS_PRINTER_COLOR CUPS_PRINTER_COVER CUPS_PRINTER_LARGE CUPS_PRINTER_LOCAL CUPS_PRINTER_PUNCH CUPS_PRINTER_SMALL CUPS_VERSION_MAJOR CUPS_VERSION_MINOR CUPS_VERSION_PATCH HTTP_AUTH_MD5_SESS HTTP_ENCODE_FIELDS HTTP_ENCODE_LENGTH HTTP_ENCRYPT_NEVER HTTP_FIELD_REFERER HTTP_FIELD_UNKNOWN HTTP_FIELD_UPGRADE HTTP_KEEPALIVE_OFF HTTP_NOT_SUPPORTED HTTP_RESET_CONTENT IPP_ENABLE_PRINTER IPP_INTERNAL_ERROR IPP_JOB_PROCESSING IPP_NOT_AUTHORIZED IPP_QUALITY_NORMAL IPP_REQUEST_ENTITY IPP_RESUME_PRINTER IPP_TAG_DELETEATTR IPP_TAG_MEMBERNAME IPP_TAG_RESOLUTION PPD_BAD_OPEN_GROUP PPD_CONFORM_STRICT PPD_INTERNAL_ERROR PPD_NESTED_OPEN_UI PPD_ORDER_DOCUMENT */ /* Offset 13 gives the best switch position. */ switch (name[13]) { case 'C': if (memEQ(name, "CUPS_PRINTER_CLASS", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_CLASS; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_COLOR", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_COLOR; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_COVER", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_COVER; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_ENCODE_LENGTH", 18)) { /* ^ */ *iv_return = HTTP_ENCODE_LENGTH; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_KEEPALIVE_OFF", 18)) { /* ^ */ *iv_return = HTTP_KEEPALIVE_OFF; return PERL_constant_ISIV; } if (memEQ(name, "IPP_INTERNAL_ERROR", 18)) { /* ^ */ *iv_return = IPP_INTERNAL_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_DELETEATTR", 18)) { /* ^ */ *iv_return = IPP_TAG_DELETEATTR; return PERL_constant_ISIV; } if (memEQ(name, "PPD_INTERNAL_ERROR", 18)) { /* ^ */ *iv_return = PPD_INTERNAL_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "PPD_NESTED_OPEN_UI", 18)) { /* ^ */ *iv_return = PPD_NESTED_OPEN_UI; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "HTTP_FIELD_REFERER", 18)) { /* ^ */ *iv_return = HTTP_FIELD_REFERER; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "HTTP_FIELD_UPGRADE", 18)) { /* ^ */ *iv_return = HTTP_FIELD_UPGRADE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_BAD_OPEN_GROUP", 18)) { /* ^ */ *iv_return = PPD_BAD_OPEN_GROUP; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "HTTP_ENCODE_FIELDS", 18)) { /* ^ */ *iv_return = HTTP_ENCODE_FIELDS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_ENABLE_PRINTER", 18)) { /* ^ */ *iv_return = IPP_ENABLE_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RESUME_PRINTER", 18)) { /* ^ */ *iv_return = IPP_RESUME_PRINTER; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "HTTP_FIELD_UNKNOWN", 18)) { /* ^ */ *iv_return = HTTP_FIELD_UNKNOWN; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "CUPS_PRINTER_LARGE", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_LARGE; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_LOCAL", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_LOCAL; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "CUPS_VERSION_MAJOR", 18)) { /* ^ */ *iv_return = CUPS_VERSION_MAJOR; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_VERSION_MINOR", 18)) { /* ^ */ *iv_return = CUPS_VERSION_MINOR; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_ENCRYPT_NEVER", 18)) { /* ^ */ *iv_return = HTTP_ENCRYPT_NEVER; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_RESET_CONTENT", 18)) { /* ^ */ *iv_return = HTTP_RESET_CONTENT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_REQUEST_ENTITY", 18)) { /* ^ */ *iv_return = IPP_REQUEST_ENTITY; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "CUPS_AUTO_ENCODING", 18)) { /* ^ */ *iv_return = CUPS_AUTO_ENCODING; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_NOT_SUPPORTED", 18)) { /* ^ */ *iv_return = HTTP_NOT_SUPPORTED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_QUALITY_NORMAL", 18)) { /* ^ */ *iv_return = IPP_QUALITY_NORMAL; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_PRINTER_PUNCH", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_PUNCH; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_VERSION_PATCH", 18)) { /* ^ */ *iv_return = CUPS_VERSION_PATCH; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_NOT_AUTHORIZED", 18)) { /* ^ */ *iv_return = IPP_NOT_AUTHORIZED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_MEMBERNAME", 18)) { /* ^ */ *iv_return = IPP_TAG_MEMBERNAME; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "CUPS_PRINTER_SMALL", 18)) { /* ^ */ *iv_return = CUPS_PRINTER_SMALL; return PERL_constant_ISIV; } if (memEQ(name, "IPP_JOB_PROCESSING", 18)) { /* ^ */ *iv_return = IPP_JOB_PROCESSING; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "PPD_CONFORM_STRICT", 18)) { /* ^ */ *iv_return = PPD_CONFORM_STRICT; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_TAG_RESOLUTION", 18)) { /* ^ */ *iv_return = IPP_TAG_RESOLUTION; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ORDER_DOCUMENT", 18)) { /* ^ */ *iv_return = PPD_ORDER_DOCUMENT; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "HTTP_AUTH_MD5_SESS", 18)) { /* ^ */ *iv_return = HTTP_AUTH_MD5_SESS; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_19 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_BACKEND_CANCEL CUPS_BACKEND_FAILED CUPS_DELETE_PRINTER CUPS_IMAGE_RGB_CMYK CUPS_PRINTER_COPIES CUPS_PRINTER_DELETE CUPS_PRINTER_DUPLEX CUPS_PRINTER_MEDIUM CUPS_PRINTER_REMOTE CUPS_PRINTER_STAPLE HTTP_ENCODE_CHUNKED HTTP_ENCRYPT_ALWAYS HTTP_FIELD_LOCATION HTTP_NOT_ACCEPTABLE HTTP_URI_BAD_SCHEME HTTP_URI_CODING_ALL IPP_DISABLE_PRINTER IPP_DOCUMENT_FORMAT IPP_FINISHINGS_BALE IPP_FINISHINGS_BIND IPP_FINISHINGS_FOLD IPP_FINISHINGS_NONE IPP_FINISHINGS_TRIM IPP_PRINTER_STOPPED IPP_RESTART_PRINTER IPP_STARTUP_PRINTER IPP_TAG_ADMINDEFINE IPP_TAG_NOTSETTABLE IPP_TEMPORARY_ERROR PPD_CONFORM_RELAXED PPD_CUSTOM_INVCURVE PPD_CUSTOM_PASSCODE PPD_CUSTOM_PASSWORD PPD_FILE_OPEN_ERROR */ /* Offset 15 gives the best switch position. */ switch (name[15]) { case 'A': if (memEQ(name, "CUPS_PRINTER_STAPLE", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_STAPLE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_NOT_ACCEPTABLE", 19)) { /* ^ */ *iv_return = HTTP_NOT_ACCEPTABLE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_NOTSETTABLE", 19)) { /* ^ */ *iv_return = IPP_TAG_NOTSETTABLE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CONFORM_RELAXED", 19)) { /* ^ */ *iv_return = PPD_CONFORM_RELAXED; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_FINISHINGS_BALE", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_BALE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_BIND", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "CUPS_IMAGE_RGB_CMYK", 19)) { /* ^ */ *iv_return = CUPS_IMAGE_RGB_CMYK; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_PASSCODE", 19)) { /* ^ */ *iv_return = PPD_CUSTOM_PASSCODE; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "CUPS_PRINTER_MEDIUM", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_MEDIUM; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "IPP_FINISHINGS_FOLD", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_FOLD; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_ADMINDEFINE", 19)) { /* ^ */ *iv_return = IPP_TAG_ADMINDEFINE; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "HTTP_URI_BAD_SCHEME", 19)) { /* ^ */ *iv_return = HTTP_URI_BAD_SCHEME; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "CUPS_BACKEND_FAILED", 19)) { /* ^ */ *iv_return = CUPS_BACKEND_FAILED; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "CUPS_PRINTER_DELETE", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_DELETE; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "CUPS_PRINTER_REMOTE", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_REMOTE; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "CUPS_BACKEND_CANCEL", 19)) { /* ^ */ *iv_return = CUPS_BACKEND_CANCEL; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_DELETE_PRINTER", 19)) { /* ^ */ *iv_return = CUPS_DELETE_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_ENCODE_CHUNKED", 19)) { /* ^ */ *iv_return = HTTP_ENCODE_CHUNKED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_DISABLE_PRINTER", 19)) { /* ^ */ *iv_return = IPP_DISABLE_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_NONE", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_NONE; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RESTART_PRINTER", 19)) { /* ^ */ *iv_return = IPP_RESTART_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_STARTUP_PRINTER", 19)) { /* ^ */ *iv_return = IPP_STARTUP_PRINTER; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "CUPS_PRINTER_COPIES", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_COPIES; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_DUPLEX", 19)) { /* ^ */ *iv_return = CUPS_PRINTER_DUPLEX; return PERL_constant_ISIV; } if (memEQ(name, "IPP_PRINTER_STOPPED", 19)) { /* ^ */ *iv_return = IPP_PRINTER_STOPPED; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_DOCUMENT_FORMAT", 19)) { /* ^ */ *iv_return = IPP_DOCUMENT_FORMAT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TEMPORARY_ERROR", 19)) { /* ^ */ *iv_return = IPP_TEMPORARY_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "PPD_FILE_OPEN_ERROR", 19)) { /* ^ */ *iv_return = PPD_FILE_OPEN_ERROR; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_FIELD_LOCATION", 19)) { /* ^ */ *iv_return = HTTP_FIELD_LOCATION; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_TRIM", 19)) { /* ^ */ *iv_return = IPP_FINISHINGS_TRIM; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "PPD_CUSTOM_INVCURVE", 19)) { /* ^ */ *iv_return = PPD_CUSTOM_INVCURVE; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "HTTP_ENCRYPT_ALWAYS", 19)) { /* ^ */ *iv_return = HTTP_ENCRYPT_ALWAYS; return PERL_constant_ISIV; } if (memEQ(name, "PPD_CUSTOM_PASSWORD", 19)) { /* ^ */ *iv_return = PPD_CUSTOM_PASSWORD; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "HTTP_URI_CODING_ALL", 19)) { /* ^ */ *iv_return = HTTP_URI_CODING_ALL; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_20 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_PRINTER_COLLATE CUPS_PRINTER_DEFAULT CUPS_PRINTER_OPTIONS HTTP_GATEWAY_TIMEOUT HTTP_LENGTH_REQUIRED HTTP_NOT_IMPLEMENTED HTTP_PARTIAL_CONTENT HTTP_REQUESTED_RANGE HTTP_REQUEST_TIMEOUT HTTP_URI_CODING_MOST HTTP_URI_CODING_NONE IPP_ACTIVATE_PRINTER IPP_FINISHINGS_COVER IPP_FINISHINGS_PUNCH IPP_REVERSE_PORTRAIT IPP_SHUTDOWN_PRINTER IPP_TAG_SUBSCRIPTION PPD_BAD_CUSTOM_PARAM PPD_MISSING_ASTERISK */ /* Offset 15 gives the best switch position. */ switch (name[15]) { case 'C': if (memEQ(name, "IPP_FINISHINGS_COVER", 20)) { /* ^ */ *iv_return = IPP_FINISHINGS_COVER; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_NOT_IMPLEMENTED", 20)) { /* ^ */ *iv_return = HTTP_NOT_IMPLEMENTED; return PERL_constant_ISIV; } if (memEQ(name, "PPD_MISSING_ASTERISK", 20)) { /* ^ */ *iv_return = PPD_MISSING_ASTERISK; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "CUPS_PRINTER_DEFAULT", 20)) { /* ^ */ *iv_return = CUPS_PRINTER_DEFAULT; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_ACTIVATE_PRINTER", 20)) { /* ^ */ *iv_return = IPP_ACTIVATE_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SHUTDOWN_PRINTER", 20)) { /* ^ */ *iv_return = IPP_SHUTDOWN_PRINTER; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "CUPS_PRINTER_COLLATE", 20)) { /* ^ */ *iv_return = CUPS_PRINTER_COLLATE; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "HTTP_GATEWAY_TIMEOUT", 20)) { /* ^ */ *iv_return = HTTP_GATEWAY_TIMEOUT; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_REQUEST_TIMEOUT", 20)) { /* ^ */ *iv_return = HTTP_REQUEST_TIMEOUT; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_PARTIAL_CONTENT", 20)) { /* ^ */ *iv_return = HTTP_PARTIAL_CONTENT; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_FINISHINGS_PUNCH", 20)) { /* ^ */ *iv_return = IPP_FINISHINGS_PUNCH; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_SUBSCRIPTION", 20)) { /* ^ */ *iv_return = IPP_TAG_SUBSCRIPTION; return PERL_constant_ISIV; } if (memEQ(name, "PPD_BAD_CUSTOM_PARAM", 20)) { /* ^ */ *iv_return = PPD_BAD_CUSTOM_PARAM; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_REQUESTED_RANGE", 20)) { /* ^ */ *iv_return = HTTP_REQUESTED_RANGE; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "CUPS_PRINTER_OPTIONS", 20)) { /* ^ */ *iv_return = CUPS_PRINTER_OPTIONS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_REVERSE_PORTRAIT", 20)) { /* ^ */ *iv_return = IPP_REVERSE_PORTRAIT; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_LENGTH_REQUIRED", 20)) { /* ^ */ *iv_return = HTTP_LENGTH_REQUIRED; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "HTTP_URI_CODING_MOST", 20)) { /* ^ */ *iv_return = HTTP_URI_CODING_MOST; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_CODING_NONE", 20)) { /* ^ */ *iv_return = HTTP_URI_CODING_NONE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_21 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ADD_MODIFY_CLASS CUPS_AUTHENTICATE_JOB CUPS_PRINTER_COMMANDS CUPS_PRINTER_IMPLICIT CUPS_PRINTER_VARIABLE HTTP_ENCRYPT_REQUIRED HTTP_FIELD_CONNECTION HTTP_FIELD_KEEP_ALIVE HTTP_FIELD_USER_AGENT HTTP_MULTIPLE_CHOICES HTTP_PAYMENT_REQUIRED HTTP_UPGRADE_REQUIRED HTTP_URI_BAD_HOSTNAME HTTP_URI_BAD_RESOURCE HTTP_URI_BAD_USERNAME HTTP_URI_CODING_QUERY IPP_COMPRESSION_ERROR IPP_FINISHINGS_STAPLE IPP_GET_NOTIFICATIONS IPP_GET_SUBSCRIPTIONS IPP_NOT_AUTHENTICATED IPP_REVERSE_LANDSCAPE PPD_ILLEGAL_CHARACTER PPD_MISSING_PPDADOBE4 PPD_NESTED_OPEN_GROUP */ /* Offset 14 gives the best switch position. */ switch (name[14]) { case 'A': if (memEQ(name, "CUPS_AUTHENTICATE_JOB", 21)) { /* ^ */ *iv_return = CUPS_AUTHENTICATE_JOB; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_PRINTER_VARIABLE", 21)) { /* ^ */ *iv_return = CUPS_PRINTER_VARIABLE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_ILLEGAL_CHARACTER", 21)) { /* ^ */ *iv_return = PPD_ILLEGAL_CHARACTER; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "HTTP_MULTIPLE_CHOICES", 21)) { /* ^ */ *iv_return = HTTP_MULTIPLE_CHOICES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_GET_NOTIFICATIONS", 21)) { /* ^ */ *iv_return = IPP_GET_NOTIFICATIONS; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "PPD_MISSING_PPDADOBE4", 21)) { /* ^ */ *iv_return = PPD_MISSING_PPDADOBE4; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_ENCRYPT_REQUIRED", 21)) { /* ^ */ *iv_return = HTTP_ENCRYPT_REQUIRED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_PAYMENT_REQUIRED", 21)) { /* ^ */ *iv_return = HTTP_PAYMENT_REQUIRED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_UPGRADE_REQUIRED", 21)) { /* ^ */ *iv_return = HTTP_UPGRADE_REQUIRED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_RESOURCE", 21)) { /* ^ */ *iv_return = HTTP_URI_BAD_RESOURCE; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "HTTP_URI_CODING_QUERY", 21)) { /* ^ */ *iv_return = HTTP_URI_CODING_QUERY; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_GET_SUBSCRIPTIONS", 21)) { /* ^ */ *iv_return = IPP_GET_SUBSCRIPTIONS; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "CUPS_PRINTER_IMPLICIT", 21)) { /* ^ */ *iv_return = CUPS_PRINTER_IMPLICIT; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_CONNECTION", 21)) { /* ^ */ *iv_return = HTTP_FIELD_CONNECTION; return PERL_constant_ISIV; } if (memEQ(name, "IPP_COMPRESSION_ERROR", 21)) { /* ^ */ *iv_return = IPP_COMPRESSION_ERROR; return PERL_constant_ISIV; } if (memEQ(name, "IPP_REVERSE_LANDSCAPE", 21)) { /* ^ */ *iv_return = IPP_REVERSE_LANDSCAPE; return PERL_constant_ISIV; } if (memEQ(name, "PPD_NESTED_OPEN_GROUP", 21)) { /* ^ */ *iv_return = PPD_NESTED_OPEN_GROUP; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "CUPS_PRINTER_COMMANDS", 21)) { /* ^ */ *iv_return = CUPS_PRINTER_COMMANDS; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_HOSTNAME", 21)) { /* ^ */ *iv_return = HTTP_URI_BAD_HOSTNAME; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "HTTP_FIELD_KEEP_ALIVE", 21)) { /* ^ */ *iv_return = HTTP_FIELD_KEEP_ALIVE; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_FIELD_USER_AGENT", 21)) { /* ^ */ *iv_return = HTTP_FIELD_USER_AGENT; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "HTTP_URI_BAD_USERNAME", 21)) { /* ^ */ *iv_return = HTTP_URI_BAD_USERNAME; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_NOT_AUTHENTICATED", 21)) { /* ^ */ *iv_return = IPP_NOT_AUTHENTICATED; return PERL_constant_ISIV; } break; case 'Y': if (memEQ(name, "CUPS_ADD_MODIFY_CLASS", 21)) { /* ^ */ *iv_return = CUPS_ADD_MODIFY_CLASS; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "IPP_FINISHINGS_STAPLE", 21)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_22 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ENCODING_DBCS_END CUPS_ENCODING_SBCS_END CUPS_ENCODING_VBCS_END CUPS_PRINTER_REJECTING HTTP_AUTH_MD5_SESS_INT HTTP_FIELD_CONTENT_MD5 HTTP_FIELD_RETRY_AFTER HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY HTTP_NOT_AUTHORITATIVE HTTP_REQUEST_TOO_LARGE HTTP_URI_BAD_ARGUMENTS IPP_CANCEL_CURRENT_JOB IPP_DEACTIVATE_PRINTER IPP_ERROR_JOB_CANCELED IPP_GET_JOB_ATTRIBUTES IPP_OK_EVENTS_COMPLETE IPP_OK_TOO_MANY_EVENTS IPP_PRINTER_PROCESSING IPP_RENEW_SUBSCRIPTION IPP_SCHEDULE_JOB_AFTER IPP_SEND_NOTIFICATIONS IPP_SET_JOB_ATTRIBUTES IPP_TAG_END_COLLECTION PPD_BAD_UI_CONSTRAINTS PPD_ILLEGAL_WHITESPACE */ /* Offset 12 gives the best switch position. */ switch (name[12]) { case '5': if (memEQ(name, "HTTP_AUTH_MD5_SESS_INT", 22)) { /* ^ */ *iv_return = HTTP_AUTH_MD5_SESS_INT; return PERL_constant_ISIV; } break; case 'A': if (memEQ(name, "IPP_GET_JOB_ATTRIBUTES", 22)) { /* ^ */ *iv_return = IPP_GET_JOB_ATTRIBUTES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_OK_TOO_MANY_EVENTS", 22)) { /* ^ */ *iv_return = IPP_OK_TOO_MANY_EVENTS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SET_JOB_ATTRIBUTES", 22)) { /* ^ */ *iv_return = IPP_SET_JOB_ATTRIBUTES; return PERL_constant_ISIV; } break; case 'B': if (memEQ(name, "IPP_ERROR_JOB_CANCELED", 22)) { /* ^ */ *iv_return = IPP_ERROR_JOB_CANCELED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_RENEW_SUBSCRIPTION", 22)) { /* ^ */ *iv_return = IPP_RENEW_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "IPP_TAG_END_COLLECTION", 22)) { /* ^ */ *iv_return = IPP_TAG_END_COLLECTION; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_FIELD_RETRY_AFTER", 22)) { /* ^ */ *iv_return = HTTP_FIELD_RETRY_AFTER; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_MOVED_PERMANENTLY", 22)) { /* ^ */ *iv_return = HTTP_MOVED_PERMANENTLY; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_MOVED_TEMPORARILY", 22)) { /* ^ */ *iv_return = HTTP_MOVED_TEMPORARILY; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "CUPS_ENCODING_DBCS_END", 22)) { /* ^ */ *iv_return = CUPS_ENCODING_DBCS_END; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_ENCODING_SBCS_END", 22)) { /* ^ */ *iv_return = CUPS_ENCODING_SBCS_END; return PERL_constant_ISIV; } if (memEQ(name, "CUPS_ENCODING_VBCS_END", 22)) { /* ^ */ *iv_return = CUPS_ENCODING_VBCS_END; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "HTTP_NOT_AUTHORITATIVE", 22)) { /* ^ */ *iv_return = HTTP_NOT_AUTHORITATIVE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_SEND_NOTIFICATIONS", 22)) { /* ^ */ *iv_return = IPP_SEND_NOTIFICATIONS; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "HTTP_FIELD_CONTENT_MD5", 22)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_MD5; return PERL_constant_ISIV; } if (memEQ(name, "PPD_BAD_UI_CONSTRAINTS", 22)) { /* ^ */ *iv_return = PPD_BAD_UI_CONSTRAINTS; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_PRINTER_PROCESSING", 22)) { /* ^ */ *iv_return = IPP_PRINTER_PROCESSING; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_OK_EVENTS_COMPLETE", 22)) { /* ^ */ *iv_return = IPP_OK_EVENTS_COMPLETE; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_DEACTIVATE_PRINTER", 22)) { /* ^ */ *iv_return = IPP_DEACTIVATE_PRINTER; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_CANCEL_CURRENT_JOB", 22)) { /* ^ */ *iv_return = IPP_CANCEL_CURRENT_JOB; return PERL_constant_ISIV; } break; case 'W': if (memEQ(name, "PPD_ILLEGAL_WHITESPACE", 22)) { /* ^ */ *iv_return = PPD_ILLEGAL_WHITESPACE; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "CUPS_PRINTER_REJECTING", 22)) { /* ^ */ *iv_return = CUPS_PRINTER_REJECTING; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_REQUEST_TOO_LARGE", 22)) { /* ^ */ *iv_return = HTTP_REQUEST_TOO_LARGE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_BAD_ARGUMENTS", 22)) { /* ^ */ *iv_return = HTTP_URI_BAD_ARGUMENTS; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SCHEDULE_JOB_AFTER", 22)) { /* ^ */ *iv_return = IPP_SCHEDULE_JOB_AFTER; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_23 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_ADD_MODIFY_PRINTER CUPS_PRINTER_NOT_SHARED HTTP_EXPECTATION_FAILED HTTP_FIELD_CONTENT_TYPE HTTP_METHOD_NOT_ALLOWED HTTP_URI_MISSING_SCHEME HTTP_URI_UNKNOWN_SCHEME IPP_CANCEL_SUBSCRIPTION IPP_ERROR_JOB_CANCELLED IPP_FINISHINGS_BIND_TOP IPP_SERVICE_UNAVAILABLE IPP_SUSPEND_CURRENT_JOB PPD_ILLEGAL_TRANSLATION */ /* Offset 9 gives the best switch position. */ switch (name[9]) { case 'A': if (memEQ(name, "PPD_ILLEGAL_TRANSLATION", 23)) { /* ^ */ *iv_return = PPD_ILLEGAL_TRANSLATION; return PERL_constant_ISIV; } break; case 'C': if (memEQ(name, "HTTP_EXPECTATION_FAILED", 23)) { /* ^ */ *iv_return = HTTP_EXPECTATION_FAILED; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SERVICE_UNAVAILABLE", 23)) { /* ^ */ *iv_return = IPP_SERVICE_UNAVAILABLE; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "HTTP_FIELD_CONTENT_TYPE", 23)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_TYPE; return PERL_constant_ISIV; } break; case 'H': if (memEQ(name, "IPP_FINISHINGS_BIND_TOP", 23)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND_TOP; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_CANCEL_SUBSCRIPTION", 23)) { /* ^ */ *iv_return = IPP_CANCEL_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "CUPS_ADD_MODIFY_PRINTER", 23)) { /* ^ */ *iv_return = CUPS_ADD_MODIFY_PRINTER; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_MISSING_SCHEME", 23)) { /* ^ */ *iv_return = HTTP_URI_MISSING_SCHEME; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "IPP_SUSPEND_CURRENT_JOB", 23)) { /* ^ */ *iv_return = IPP_SUSPEND_CURRENT_JOB; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "HTTP_METHOD_NOT_ALLOWED", 23)) { /* ^ */ *iv_return = HTTP_METHOD_NOT_ALLOWED; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "CUPS_PRINTER_NOT_SHARED", 23)) { /* ^ */ *iv_return = CUPS_PRINTER_NOT_SHARED; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_URI_UNKNOWN_SCHEME", 23)) { /* ^ */ *iv_return = HTTP_URI_UNKNOWN_SCHEME; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "IPP_ERROR_JOB_CANCELLED", 23)) { /* ^ */ *iv_return = IPP_ERROR_JOB_CANCELLED; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_24 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_FIELD_ACCEPT_RANGES HTTP_FIELD_AUTHORIZATION HTTP_FIELD_CONTENT_RANGE HTTP_FIELD_LAST_MODIFIED HTTP_SERVICE_UNAVAILABLE HTTP_SWITCHING_PROTOCOLS HTTP_URI_CODING_HOSTNAME HTTP_URI_CODING_RESOURCE HTTP_URI_CODING_USERNAME IPP_FINISHINGS_BIND_LEFT IPP_TAG_BEGIN_COLLECTION PPD_BAD_ORDER_DEPENDENCY PPD_ILLEGAL_MAIN_KEYWORD */ /* Offset 16 gives the best switch position. */ switch (name[16]) { case 'H': if (memEQ(name, "HTTP_URI_CODING_HOSTNAME", 24)) { /* ^ */ *iv_return = HTTP_URI_CODING_HOSTNAME; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_FINISHINGS_BIND_LEFT", 24)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND_LEFT; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_TAG_BEGIN_COLLECTION", 24)) { /* ^ */ *iv_return = IPP_TAG_BEGIN_COLLECTION; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "HTTP_FIELD_LAST_MODIFIED", 24)) { /* ^ */ *iv_return = HTTP_FIELD_LAST_MODIFIED; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_CONTENT_RANGE", 24)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_RANGE; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "PPD_BAD_ORDER_DEPENDENCY", 24)) { /* ^ */ *iv_return = PPD_BAD_ORDER_DEPENDENCY; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_FIELD_AUTHORIZATION", 24)) { /* ^ */ *iv_return = HTTP_FIELD_AUTHORIZATION; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_SWITCHING_PROTOCOLS", 24)) { /* ^ */ *iv_return = HTTP_SWITCHING_PROTOCOLS; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_CODING_RESOURCE", 24)) { /* ^ */ *iv_return = HTTP_URI_CODING_RESOURCE; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_FIELD_ACCEPT_RANGES", 24)) { /* ^ */ *iv_return = HTTP_FIELD_ACCEPT_RANGES; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_URI_CODING_USERNAME", 24)) { /* ^ */ *iv_return = HTTP_URI_CODING_USERNAME; return PERL_constant_ISIV; } break; case 'V': if (memEQ(name, "HTTP_SERVICE_UNAVAILABLE", 24)) { /* ^ */ *iv_return = HTTP_SERVICE_UNAVAILABLE; return PERL_constant_ISIV; } break; case '_': if (memEQ(name, "PPD_ILLEGAL_MAIN_KEYWORD", 24)) { /* ^ */ *iv_return = PPD_ILLEGAL_MAIN_KEYWORD; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_25 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_ENCRYPT_IF_REQUESTED HTTP_FIELD_CONTENT_LENGTH HTTP_PROXY_AUTHENTICATION HTTP_URI_MISSING_RESOURCE IPP_DOCUMENT_ACCESS_ERROR IPP_DOCUMENT_FORMAT_ERROR IPP_FINISHINGS_BIND_RIGHT IPP_FINISHINGS_JOB_OFFSET IPP_RELEASE_HELD_NEW_JOBS IPP_TAG_UNSUPPORTED_GROUP IPP_TAG_UNSUPPORTED_VALUE IPP_VERSION_NOT_SUPPORTED */ /* Offset 13 gives the best switch position. */ switch (name[13]) { case 'A': if (memEQ(name, "IPP_DOCUMENT_ACCESS_ERROR", 25)) { /* ^ */ *iv_return = IPP_DOCUMENT_ACCESS_ERROR; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_RELEASE_HELD_NEW_JOBS", 25)) { /* ^ */ *iv_return = IPP_RELEASE_HELD_NEW_JOBS; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "IPP_DOCUMENT_FORMAT_ERROR", 25)) { /* ^ */ *iv_return = IPP_DOCUMENT_FORMAT_ERROR; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "HTTP_ENCRYPT_IF_REQUESTED", 25)) { /* ^ */ *iv_return = HTTP_ENCRYPT_IF_REQUESTED; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_URI_MISSING_RESOURCE", 25)) { /* ^ */ *iv_return = HTTP_URI_MISSING_RESOURCE; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_CONTENT_LENGTH", 25)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_LENGTH; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "IPP_VERSION_NOT_SUPPORTED", 25)) { /* ^ */ *iv_return = IPP_VERSION_NOT_SUPPORTED; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_TAG_UNSUPPORTED_GROUP", 25)) { /* ^ */ *iv_return = IPP_TAG_UNSUPPORTED_GROUP; return PERL_constant_ISIV; } if (memEQ(name, "IPP_TAG_UNSUPPORTED_VALUE", 25)) { /* ^ */ *iv_return = IPP_TAG_UNSUPPORTED_VALUE; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_FINISHINGS_BIND_RIGHT", 25)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND_RIGHT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_JOB_OFFSET", 25)) { /* ^ */ *iv_return = IPP_FINISHINGS_JOB_OFFSET; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "HTTP_PROXY_AUTHENTICATION", 25)) { /* ^ */ *iv_return = HTTP_PROXY_AUTHENTICATION; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_26 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. CUPS_BACKEND_AUTH_REQUIRED CUPS_PRINTER_AUTHENTICATED HTTP_FIELD_ACCEPT_LANGUAGE HTTP_FIELD_CONTENT_VERSION HTTP_UNSUPPORTED_MEDIATYPE IPP_FINISHINGS_BIND_BOTTOM IPP_FINISHINGS_EDGE_STITCH IPP_GET_PRINTER_ATTRIBUTES IPP_PRINTER_IS_DEACTIVATED IPP_REDIRECTION_OTHER_SITE IPP_SET_PRINTER_ATTRIBUTES IPP_TAG_EVENT_NOTIFICATION IPP_TOO_MANY_SUBSCRIPTIONS PPD_ILLEGAL_OPTION_KEYWORD */ /* Offset 8 gives the best switch position. */ switch (name[8]) { case 'E': if (memEQ(name, "IPP_TAG_EVENT_NOTIFICATION", 26)) { /* ^ */ *iv_return = IPP_TAG_EVENT_NOTIFICATION; return PERL_constant_ISIV; } break; case 'G': if (memEQ(name, "PPD_ILLEGAL_OPTION_KEYWORD", 26)) { /* ^ */ *iv_return = PPD_ILLEGAL_OPTION_KEYWORD; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "CUPS_BACKEND_AUTH_REQUIRED", 26)) { /* ^ */ *iv_return = CUPS_BACKEND_AUTH_REQUIRED; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "HTTP_FIELD_ACCEPT_LANGUAGE", 26)) { /* ^ */ *iv_return = HTTP_FIELD_ACCEPT_LANGUAGE; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_FIELD_CONTENT_VERSION", 26)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_VERSION; return PERL_constant_ISIV; } break; case 'M': if (memEQ(name, "IPP_TOO_MANY_SUBSCRIPTIONS", 26)) { /* ^ */ *iv_return = IPP_TOO_MANY_SUBSCRIPTIONS; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "CUPS_PRINTER_AUTHENTICATED", 26)) { /* ^ */ *iv_return = CUPS_PRINTER_AUTHENTICATED; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_GET_PRINTER_ATTRIBUTES", 26)) { /* ^ */ *iv_return = IPP_GET_PRINTER_ATTRIBUTES; return PERL_constant_ISIV; } if (memEQ(name, "IPP_SET_PRINTER_ATTRIBUTES", 26)) { /* ^ */ *iv_return = IPP_SET_PRINTER_ATTRIBUTES; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_REDIRECTION_OTHER_SITE", 26)) { /* ^ */ *iv_return = IPP_REDIRECTION_OTHER_SITE; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_FINISHINGS_BIND_BOTTOM", 26)) { /* ^ */ *iv_return = IPP_FINISHINGS_BIND_BOTTOM; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH", 26)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_PRINTER_IS_DEACTIVATED", 26)) { /* ^ */ *iv_return = IPP_PRINTER_IS_DEACTIVATED; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "HTTP_UNSUPPORTED_MEDIATYPE", 26)) { /* ^ */ *iv_return = HTTP_UNSUPPORTED_MEDIATYPE; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_27 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_FIELD_CONTENT_ENCODING HTTP_FIELD_CONTENT_LANGUAGE HTTP_FIELD_CONTENT_LOCATION HTTP_FIELD_WWW_AUTHENTICATE IPP_ATTRIBUTES_NOT_SETTABLE IPP_CREATE_JOB_SUBSCRIPTION IPP_GET_PRINT_SUPPORT_FILES IPP_OPERATION_NOT_SUPPORTED */ /* Offset 20 gives the best switch position. */ switch (name[20]) { case 'A': if (memEQ(name, "HTTP_FIELD_CONTENT_LANGUAGE", 27)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_LANGUAGE; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "IPP_ATTRIBUTES_NOT_SETTABLE", 27)) { /* ^ */ *iv_return = IPP_ATTRIBUTES_NOT_SETTABLE; return PERL_constant_ISIV; } break; case 'N': if (memEQ(name, "HTTP_FIELD_CONTENT_ENCODING", 27)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_ENCODING; return PERL_constant_ISIV; } if (memEQ(name, "HTTP_FIELD_WWW_AUTHENTICATE", 27)) { /* ^ */ *iv_return = HTTP_FIELD_WWW_AUTHENTICATE; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "HTTP_FIELD_CONTENT_LOCATION", 27)) { /* ^ */ *iv_return = HTTP_FIELD_CONTENT_LOCATION; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "IPP_OPERATION_NOT_SUPPORTED", 27)) { /* ^ */ *iv_return = IPP_OPERATION_NOT_SUPPORTED; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_CREATE_JOB_SUBSCRIPTION", 27)) { /* ^ */ *iv_return = IPP_CREATE_JOB_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_GET_PRINT_SUPPORT_FILES", 27)) { /* ^ */ *iv_return = IPP_GET_PRINT_SUPPORT_FILES; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_28 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_FIELD_IF_MODIFIED_SINCE HTTP_FIELD_TRANSFER_ENCODING IPP_FINISHINGS_BOOKLET_MAKER IPP_FINISHINGS_SADDLE_STITCH IPP_OK_IGNORED_NOTIFICATIONS IPP_OK_IGNORED_SUBSCRIPTIONS */ /* Offset 18 gives the best switch position. */ switch (name[18]) { case 'D': if (memEQ(name, "IPP_FINISHINGS_SADDLE_STITCH", 28)) { /* ^ */ *iv_return = IPP_FINISHINGS_SADDLE_STITCH; return PERL_constant_ISIV; } break; case 'F': if (memEQ(name, "HTTP_FIELD_IF_MODIFIED_SINCE", 28)) { /* ^ */ *iv_return = HTTP_FIELD_IF_MODIFIED_SINCE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_OK_IGNORED_NOTIFICATIONS", 28)) { /* ^ */ *iv_return = IPP_OK_IGNORED_NOTIFICATIONS; return PERL_constant_ISIV; } break; case 'K': if (memEQ(name, "IPP_FINISHINGS_BOOKLET_MAKER", 28)) { /* ^ */ *iv_return = IPP_FINISHINGS_BOOKLET_MAKER; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "HTTP_FIELD_TRANSFER_ENCODING", 28)) { /* ^ */ *iv_return = HTTP_FIELD_TRANSFER_ENCODING; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_OK_IGNORED_SUBSCRIPTIONS", 28)) { /* ^ */ *iv_return = IPP_OK_IGNORED_SUBSCRIPTIONS; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_29 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. IPP_COMPRESSION_NOT_SUPPORTED IPP_IGNORED_ALL_NOTIFICATIONS IPP_IGNORED_ALL_SUBSCRIPTIONS */ /* Offset 21 gives the best switch position. */ switch (name[21]) { case 'I': if (memEQ(name, "IPP_IGNORED_ALL_NOTIFICATIONS", 29)) { /* ^ */ *iv_return = IPP_IGNORED_ALL_NOTIFICATIONS; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_IGNORED_ALL_SUBSCRIPTIONS", 29)) { /* ^ */ *iv_return = IPP_IGNORED_ALL_SUBSCRIPTIONS; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_COMPRESSION_NOT_SUPPORTED", 29)) { /* ^ */ *iv_return = IPP_COMPRESSION_NOT_SUPPORTED; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_30 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. HTTP_FIELD_IF_UNMODIFIED_SINCE IPP_FINISHINGS_EDGE_STITCH_TOP IPP_FINISHINGS_STAPLE_DUAL_TOP IPP_FINISHINGS_STAPLE_TOP_LEFT IPP_OK_BUT_CANCEL_SUBSCRIPTION */ /* Offset 22 gives the best switch position. */ switch (name[22]) { case 'C': if (memEQ(name, "IPP_OK_BUT_CANCEL_SUBSCRIPTION", 30)) { /* ^ */ *iv_return = IPP_OK_BUT_CANCEL_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'D': if (memEQ(name, "IPP_FINISHINGS_STAPLE_DUAL_TOP", 30)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_DUAL_TOP; return PERL_constant_ISIV; } break; case 'E': if (memEQ(name, "HTTP_FIELD_IF_UNMODIFIED_SINCE", 30)) { /* ^ */ *iv_return = HTTP_FIELD_IF_UNMODIFIED_SINCE; return PERL_constant_ISIV; } break; case 'I': if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH_TOP", 30)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH_TOP; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_FINISHINGS_STAPLE_TOP_LEFT", 30)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_TOP_LEFT; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_31 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. IPP_CREATE_PRINTER_SUBSCRIPTION IPP_FINISHINGS_EDGE_STITCH_LEFT IPP_FINISHINGS_STAPLE_DUAL_LEFT IPP_FINISHINGS_STAPLE_TOP_RIGHT IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_MULTIPLE_JOBS_NOT_SUPPORTED */ /* Offset 27 gives the best switch position. */ switch (name[27]) { case 'I': if (memEQ(name, "IPP_FINISHINGS_STAPLE_TOP_RIGHT", 31)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_TOP_RIGHT; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH_LEFT", 31)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH_LEFT; return PERL_constant_ISIV; } if (memEQ(name, "IPP_FINISHINGS_STAPLE_DUAL_LEFT", 31)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_DUAL_LEFT; return PERL_constant_ISIV; } break; case 'R': if (memEQ(name, "IPP_MULTIPLE_JOBS_NOT_SUPPORTED", 31)) { /* ^ */ *iv_return = IPP_MULTIPLE_JOBS_NOT_SUPPORTED; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_CREATE_PRINTER_SUBSCRIPTION", 31)) { /* ^ */ *iv_return = IPP_CREATE_PRINTER_SUBSCRIPTION; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_GET_SUBSCRIPTION_ATTRIBUTES", 31)) { /* ^ */ *iv_return = IPP_GET_SUBSCRIPTION_ATTRIBUTES; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_32 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. IPP_FINISHINGS_EDGE_STITCH_RIGHT IPP_FINISHINGS_STAPLE_DUAL_RIGHT IPP_GET_PRINTER_SUPPORTED_VALUES IPP_PRINT_SUPPORT_FILE_NOT_FOUND */ /* Offset 20 gives the best switch position. */ switch (name[20]) { case 'E': if (memEQ(name, "IPP_FINISHINGS_STAPLE_DUAL_RIGHT", 32)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_DUAL_RIGHT; return PERL_constant_ISIV; } break; case 'L': if (memEQ(name, "IPP_PRINT_SUPPORT_FILE_NOT_FOUND", 32)) { /* ^ */ *iv_return = IPP_PRINT_SUPPORT_FILE_NOT_FOUND; return PERL_constant_ISIV; } break; case 'O': if (memEQ(name, "IPP_GET_PRINTER_SUPPORTED_VALUES", 32)) { /* ^ */ *iv_return = IPP_GET_PRINTER_SUPPORTED_VALUES; return PERL_constant_ISIV; } break; case 'S': if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH_RIGHT", 32)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH_RIGHT; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant_33 (pTHX_ const char *name, IV *iv_return) { /* When generated this function returned values for the list of names given here. However, subsequent manual editing may have added or removed some. IPP_FINISHINGS_EDGE_STITCH_BOTTOM IPP_FINISHINGS_STAPLE_BOTTOM_LEFT IPP_FINISHINGS_STAPLE_DUAL_BOTTOM */ /* Offset 23 gives the best switch position. */ switch (name[23]) { case 'O': if (memEQ(name, "IPP_FINISHINGS_STAPLE_BOTTOM_LEFT", 33)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_BOTTOM_LEFT; return PERL_constant_ISIV; } break; case 'T': if (memEQ(name, "IPP_FINISHINGS_EDGE_STITCH_BOTTOM", 33)) { /* ^ */ *iv_return = IPP_FINISHINGS_EDGE_STITCH_BOTTOM; return PERL_constant_ISIV; } break; case 'U': if (memEQ(name, "IPP_FINISHINGS_STAPLE_DUAL_BOTTOM", 33)) { /* ^ */ *iv_return = IPP_FINISHINGS_STAPLE_DUAL_BOTTOM; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } static int constant (pTHX_ const char *name, STRLEN len, IV *iv_return) { /* Initially switch on the length of the name. */ /* When generated this function returned values for the list of names given in this section of perl code. Rather than manually editing these functions to add or remove constants, which would result in this comment and section of code becoming inaccurate, we recommend that you edit this section of code, and use it to regenerate a new set of constant functions which you then use to replace the originals. Regenerate these constant functions by feeding this entire source file to perl -x #!/usr/bin/perl -w use ExtUtils::Constant qw (constant_types C_constant XS_constant); my $types = {map {($_, 1)} qw(IV)}; my @names = (qw(INET6), {name=>"AF_LOCAL", type=>"IV", macro=>"1"}, {name=>"CUPS_ACCEPT_JOBS", type=>"IV", macro=>"1"}, {name=>"CUPS_ADD_CLASS", type=>"IV", macro=>"1"}, {name=>"CUPS_ADD_MODIFY_CLASS", type=>"IV", macro=>"1"}, {name=>"CUPS_ADD_MODIFY_PRINTER", type=>"IV", macro=>"1"}, {name=>"CUPS_ADD_PRINTER", type=>"IV", macro=>"1"}, {name=>"CUPS_AUTHENTICATE_JOB", type=>"IV", macro=>"1"}, {name=>"CUPS_AUTO_ENCODING", type=>"IV", macro=>"1"}, {name=>"CUPS_BACKEND_AUTH_REQUIRED", type=>"IV", macro=>"1"}, {name=>"CUPS_BACKEND_CANCEL", type=>"IV", macro=>"1"}, {name=>"CUPS_BACKEND_FAILED", type=>"IV", macro=>"1"}, {name=>"CUPS_BACKEND_HOLD", type=>"IV", macro=>"1"}, {name=>"CUPS_BACKEND_OK", type=>"IV", macro=>"1"}, {name=>"CUPS_BACKEND_STOP", type=>"IV", macro=>"1"}, {name=>"CUPS_DATE_ANY", type=>"IV", macro=>"1"}, {name=>"CUPS_DELETE_CLASS", type=>"IV", macro=>"1"}, {name=>"CUPS_DELETE_PRINTER", type=>"IV", macro=>"1"}, {name=>"CUPS_ENCODING_DBCS_END", type=>"IV", macro=>"1"}, {name=>"CUPS_ENCODING_SBCS_END", type=>"IV", macro=>"1"}, {name=>"CUPS_ENCODING_VBCS_END", type=>"IV", macro=>"1"}, {name=>"CUPS_EUC_CN", type=>"IV", macro=>"1"}, {name=>"CUPS_EUC_JP", type=>"IV", macro=>"1"}, {name=>"CUPS_EUC_KR", type=>"IV", macro=>"1"}, {name=>"CUPS_EUC_TW", type=>"IV", macro=>"1"}, {name=>"CUPS_FILE_GZIP", type=>"IV", macro=>"1"}, {name=>"CUPS_FILE_NONE", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_CLASSES", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_DEFAULT", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_DEVICES", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_PPDS", type=>"IV", macro=>"1"}, {name=>"CUPS_GET_PRINTERS", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_BLACK", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_CMY", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_CMYK", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_RGB", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_RGB_CMYK", type=>"IV", macro=>"1"}, {name=>"CUPS_IMAGE_WHITE", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_1", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_10", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_11", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_13", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_14", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_15", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_16", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_2", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_3", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_4", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_5", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_6", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_7", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_8", type=>"IV", macro=>"1"}, {name=>"CUPS_ISO8859_9", type=>"IV", macro=>"1"}, {name=>"CUPS_KOI8_R", type=>"IV", macro=>"1"}, {name=>"CUPS_KOI8_U", type=>"IV", macro=>"1"}, {name=>"CUPS_MAC_ROMAN", type=>"IV", macro=>"1"}, {name=>"CUPS_MAX_USTRING", type=>"IV", macro=>"1"}, {name=>"CUPS_MOVE_JOB", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_AUTHENTICATED", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_BIND", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_BW", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_CLASS", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COLLATE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COLOR", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COMMANDS", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COPIES", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_COVER", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_DEFAULT", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_DELETE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_DUPLEX", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_FAX", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_IMPLICIT", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_LARGE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_LOCAL", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_MEDIUM", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_NOT_SHARED", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_OPTIONS", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_PUNCH", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_REJECTING", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_REMOTE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_SMALL", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_SORT", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_STAPLE", type=>"IV", macro=>"1"}, {name=>"CUPS_PRINTER_VARIABLE", type=>"IV", macro=>"1"}, {name=>"CUPS_REJECT_JOBS", type=>"IV", macro=>"1"}, {name=>"CUPS_SET_DEFAULT", type=>"IV", macro=>"1"}, {name=>"CUPS_US_ASCII", type=>"IV", macro=>"1"}, {name=>"CUPS_UTF8", type=>"IV", macro=>"1"}, {name=>"CUPS_VERSION", type=>"IV", macro=>"1"}, {name=>"CUPS_VERSION_MAJOR", type=>"IV", macro=>"1"}, {name=>"CUPS_VERSION_MINOR", type=>"IV", macro=>"1"}, {name=>"CUPS_VERSION_PATCH", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1250", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1251", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1252", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1253", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1254", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1255", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1256", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1257", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1258", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_1361", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_874", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_932", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_936", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_949", type=>"IV", macro=>"1"}, {name=>"CUPS_WINDOWS_950", type=>"IV", macro=>"1"}, {name=>"HTTP_0_9", type=>"IV", macro=>"1"}, {name=>"HTTP_1_0", type=>"IV", macro=>"1"}, {name=>"HTTP_1_1", type=>"IV", macro=>"1"}, {name=>"HTTP_ACCEPTED", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_BASIC", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_MD5", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_MD5_INT", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_MD5_SESS", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_MD5_SESS_INT", type=>"IV", macro=>"1"}, {name=>"HTTP_AUTH_NONE", type=>"IV", macro=>"1"}, {name=>"HTTP_BAD_GATEWAY", type=>"IV", macro=>"1"}, {name=>"HTTP_BAD_REQUEST", type=>"IV", macro=>"1"}, {name=>"HTTP_CLOSE", type=>"IV", macro=>"1"}, {name=>"HTTP_CONFLICT", type=>"IV", macro=>"1"}, {name=>"HTTP_CONTINUE", type=>"IV", macro=>"1"}, {name=>"HTTP_CREATED", type=>"IV", macro=>"1"}, {name=>"HTTP_DELETE", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCODE_CHUNKED", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCODE_FIELDS", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCODE_LENGTH", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCRYPT_ALWAYS", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCRYPT_IF_REQUESTED", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCRYPT_NEVER", type=>"IV", macro=>"1"}, {name=>"HTTP_ENCRYPT_REQUIRED", type=>"IV", macro=>"1"}, {name=>"HTTP_ERROR", type=>"IV", macro=>"1"}, {name=>"HTTP_EXPECTATION_FAILED", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_ACCEPT_LANGUAGE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_ACCEPT_RANGES", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_AUTHORIZATION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONNECTION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_ENCODING", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_LANGUAGE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_LENGTH", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_LOCATION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_MD5", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_RANGE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_TYPE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_CONTENT_VERSION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_DATE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_HOST", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_IF_MODIFIED_SINCE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_IF_UNMODIFIED_SINCE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_KEEP_ALIVE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_LAST_MODIFIED", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_LINK", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_LOCATION", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_MAX", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_RANGE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_REFERER", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_RETRY_AFTER", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_TRANSFER_ENCODING", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_UNKNOWN", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_UPGRADE", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_USER_AGENT", type=>"IV", macro=>"1"}, {name=>"HTTP_FIELD_WWW_AUTHENTICATE", type=>"IV", macro=>"1"}, {name=>"HTTP_FORBIDDEN", type=>"IV", macro=>"1"}, {name=>"HTTP_GATEWAY_TIMEOUT", type=>"IV", macro=>"1"}, {name=>"HTTP_GET", type=>"IV", macro=>"1"}, {name=>"HTTP_GET_SEND", type=>"IV", macro=>"1"}, {name=>"HTTP_GONE", type=>"IV", macro=>"1"}, {name=>"HTTP_HEAD", type=>"IV", macro=>"1"}, {name=>"HTTP_KEEPALIVE_OFF", type=>"IV", macro=>"1"}, {name=>"HTTP_KEEPALIVE_ON", type=>"IV", macro=>"1"}, {name=>"HTTP_LENGTH_REQUIRED", type=>"IV", macro=>"1"}, {name=>"HTTP_MAX_BUFFER", type=>"IV", macro=>"1"}, {name=>"HTTP_MAX_HOST", type=>"IV", macro=>"1"}, {name=>"HTTP_MAX_URI", type=>"IV", macro=>"1"}, {name=>"HTTP_MAX_VALUE", type=>"IV", macro=>"1"}, {name=>"HTTP_METHOD_NOT_ALLOWED", type=>"IV", macro=>"1"}, {name=>"HTTP_MOVED_PERMANENTLY", type=>"IV", macro=>"1"}, {name=>"HTTP_MOVED_TEMPORARILY", type=>"IV", macro=>"1"}, {name=>"HTTP_MULTIPLE_CHOICES", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_ACCEPTABLE", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_AUTHORITATIVE", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_FOUND", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_IMPLEMENTED", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_MODIFIED", type=>"IV", macro=>"1"}, {name=>"HTTP_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"HTTP_NO_CONTENT", type=>"IV", macro=>"1"}, {name=>"HTTP_OK", type=>"IV", macro=>"1"}, {name=>"HTTP_OPTIONS", type=>"IV", macro=>"1"}, {name=>"HTTP_PARTIAL_CONTENT", type=>"IV", macro=>"1"}, {name=>"HTTP_PAYMENT_REQUIRED", type=>"IV", macro=>"1"}, {name=>"HTTP_POST", type=>"IV", macro=>"1"}, {name=>"HTTP_POST_RECV", type=>"IV", macro=>"1"}, {name=>"HTTP_POST_SEND", type=>"IV", macro=>"1"}, {name=>"HTTP_PRECONDITION", type=>"IV", macro=>"1"}, {name=>"HTTP_PROXY_AUTHENTICATION", type=>"IV", macro=>"1"}, {name=>"HTTP_PUT", type=>"IV", macro=>"1"}, {name=>"HTTP_PUT_RECV", type=>"IV", macro=>"1"}, {name=>"HTTP_REQUESTED_RANGE", type=>"IV", macro=>"1"}, {name=>"HTTP_REQUEST_TIMEOUT", type=>"IV", macro=>"1"}, {name=>"HTTP_REQUEST_TOO_LARGE", type=>"IV", macro=>"1"}, {name=>"HTTP_RESET_CONTENT", type=>"IV", macro=>"1"}, {name=>"HTTP_SEE_OTHER", type=>"IV", macro=>"1"}, {name=>"HTTP_SERVER_ERROR", type=>"IV", macro=>"1"}, {name=>"HTTP_SERVICE_UNAVAILABLE", type=>"IV", macro=>"1"}, {name=>"HTTP_STATUS", type=>"IV", macro=>"1"}, {name=>"HTTP_SWITCHING_PROTOCOLS", type=>"IV", macro=>"1"}, {name=>"HTTP_TRACE", type=>"IV", macro=>"1"}, {name=>"HTTP_UNAUTHORIZED", type=>"IV", macro=>"1"}, {name=>"HTTP_UNSUPPORTED_MEDIATYPE", type=>"IV", macro=>"1"}, {name=>"HTTP_UPGRADE_REQUIRED", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_ARGUMENTS", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_HOSTNAME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_PORT", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_RESOURCE", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_SCHEME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_URI", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_BAD_USERNAME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_ALL", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_HOSTNAME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_MOST", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_NONE", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_QUERY", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_RESOURCE", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_CODING_USERNAME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_MISSING_RESOURCE", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_MISSING_SCHEME", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_OK", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_OVERFLOW", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_TOO_LONG", type=>"IV", macro=>"1"}, {name=>"HTTP_URI_UNKNOWN_SCHEME", type=>"IV", macro=>"1"}, {name=>"HTTP_USE_PROXY", type=>"IV", macro=>"1"}, {name=>"HTTP_WAITING", type=>"IV", macro=>"1"}, {name=>"IPP_ACTIVATE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_ATTRIBUTE", type=>"IV", macro=>"1"}, {name=>"IPP_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_ATTRIBUTES_NOT_SETTABLE", type=>"IV", macro=>"1"}, {name=>"IPP_BAD_REQUEST", type=>"IV", macro=>"1"}, {name=>"IPP_CANCEL_CURRENT_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_CANCEL_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_CANCEL_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_CHARSET", type=>"IV", macro=>"1"}, {name=>"IPP_COMPRESSION_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_COMPRESSION_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"IPP_CONFLICT", type=>"IV", macro=>"1"}, {name=>"IPP_CREATE_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_CREATE_JOB_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_CREATE_PRINTER_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_DATA", type=>"IV", macro=>"1"}, {name=>"IPP_DEACTIVATE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_DEVICE_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_DISABLE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_DOCUMENT_ACCESS_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_DOCUMENT_FORMAT", type=>"IV", macro=>"1"}, {name=>"IPP_DOCUMENT_FORMAT_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_ENABLE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_ERROR_JOB_CANCELED", type=>"IV", macro=>"1"}, {name=>"IPP_ERROR_JOB_CANCELLED", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BALE", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND_BOTTOM", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BIND_TOP", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_BOOKLET_MAKER", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_COVER", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH_BOTTOM", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_EDGE_STITCH_TOP", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_FOLD", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_JOB_OFFSET", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_NONE", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_PUNCH", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_SADDLE_STITCH", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_BOTTOM_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_DUAL_BOTTOM", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_DUAL_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_DUAL_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_DUAL_TOP", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_TOP_LEFT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_STAPLE_TOP_RIGHT", type=>"IV", macro=>"1"}, {name=>"IPP_FINISHINGS_TRIM", type=>"IV", macro=>"1"}, {name=>"IPP_FORBIDDEN", type=>"IV", macro=>"1"}, {name=>"IPP_GET_JOBS", type=>"IV", macro=>"1"}, {name=>"IPP_GET_JOB_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_GET_NOTIFICATIONS", type=>"IV", macro=>"1"}, {name=>"IPP_GET_PRINTER_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_GET_PRINTER_SUPPORTED_VALUES", type=>"IV", macro=>"1"}, {name=>"IPP_GET_PRINT_SUPPORT_FILES", type=>"IV", macro=>"1"}, {name=>"IPP_GET_SUBSCRIPTIONS", type=>"IV", macro=>"1"}, {name=>"IPP_GET_SUBSCRIPTION_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_GONE", type=>"IV", macro=>"1"}, {name=>"IPP_HEADER", type=>"IV", macro=>"1"}, {name=>"IPP_HOLD_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_HOLD_NEW_JOBS", type=>"IV", macro=>"1"}, {name=>"IPP_IDLE", type=>"IV", macro=>"1"}, {name=>"IPP_IGNORED_ALL_NOTIFICATIONS", type=>"IV", macro=>"1"}, {name=>"IPP_IGNORED_ALL_SUBSCRIPTIONS", type=>"IV", macro=>"1"}, {name=>"IPP_INTERNAL_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_ABORTED", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_CANCELED", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_CANCELLED", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_COMPLETED", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_HELD", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_PENDING", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_PROCESSING", type=>"IV", macro=>"1"}, {name=>"IPP_JOB_STOPPED", type=>"IV", macro=>"1"}, {name=>"IPP_LANDSCAPE", type=>"IV", macro=>"1"}, {name=>"IPP_MAX_NAME", type=>"IV", macro=>"1"}, {name=>"IPP_MAX_VALUES", type=>"IV", macro=>"1"}, {name=>"IPP_MULTIPLE_JOBS_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_ACCEPTING", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_AUTHENTICATED", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_AUTHORIZED", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_FOUND", type=>"IV", macro=>"1"}, {name=>"IPP_NOT_POSSIBLE", type=>"IV", macro=>"1"}, {name=>"IPP_OK", type=>"IV", macro=>"1"}, {name=>"IPP_OK_BUT_CANCEL_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_OK_CONFLICT", type=>"IV", macro=>"1"}, {name=>"IPP_OK_EVENTS_COMPLETE", type=>"IV", macro=>"1"}, {name=>"IPP_OK_IGNORED_NOTIFICATIONS", type=>"IV", macro=>"1"}, {name=>"IPP_OK_IGNORED_SUBSCRIPTIONS", type=>"IV", macro=>"1"}, {name=>"IPP_OK_SUBST", type=>"IV", macro=>"1"}, {name=>"IPP_OK_TOO_MANY_EVENTS", type=>"IV", macro=>"1"}, {name=>"IPP_OPERATION_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"IPP_PAUSE_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_PORT", type=>"IV", macro=>"1"}, {name=>"IPP_PORTRAIT", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_BUSY", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_IDLE", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_IS_DEACTIVATED", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_PROCESSING", type=>"IV", macro=>"1"}, {name=>"IPP_PRINTER_STOPPED", type=>"IV", macro=>"1"}, {name=>"IPP_PRINT_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_PRINT_SUPPORT_FILE_NOT_FOUND", type=>"IV", macro=>"1"}, {name=>"IPP_PRINT_URI", type=>"IV", macro=>"1"}, {name=>"IPP_PRIVATE", type=>"IV", macro=>"1"}, {name=>"IPP_PROMOTE_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_PURGE_JOBS", type=>"IV", macro=>"1"}, {name=>"IPP_QUALITY_DRAFT", type=>"IV", macro=>"1"}, {name=>"IPP_QUALITY_HIGH", type=>"IV", macro=>"1"}, {name=>"IPP_QUALITY_NORMAL", type=>"IV", macro=>"1"}, {name=>"IPP_REDIRECTION_OTHER_SITE", type=>"IV", macro=>"1"}, {name=>"IPP_RELEASE_HELD_NEW_JOBS", type=>"IV", macro=>"1"}, {name=>"IPP_RELEASE_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_RENEW_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_REPROCESS_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_REQUEST_ENTITY", type=>"IV", macro=>"1"}, {name=>"IPP_REQUEST_VALUE", type=>"IV", macro=>"1"}, {name=>"IPP_RESTART_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_RESTART_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_RESUME_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_RESUME_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_RES_PER_CM", type=>"IV", macro=>"1"}, {name=>"IPP_RES_PER_INCH", type=>"IV", macro=>"1"}, {name=>"IPP_REVERSE_LANDSCAPE", type=>"IV", macro=>"1"}, {name=>"IPP_REVERSE_PORTRAIT", type=>"IV", macro=>"1"}, {name=>"IPP_SCHEDULE_JOB_AFTER", type=>"IV", macro=>"1"}, {name=>"IPP_SEND_DOCUMENT", type=>"IV", macro=>"1"}, {name=>"IPP_SEND_NOTIFICATIONS", type=>"IV", macro=>"1"}, {name=>"IPP_SEND_URI", type=>"IV", macro=>"1"}, {name=>"IPP_SERVICE_UNAVAILABLE", type=>"IV", macro=>"1"}, {name=>"IPP_SET_JOB_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_SET_PRINTER_ATTRIBUTES", type=>"IV", macro=>"1"}, {name=>"IPP_SHUTDOWN_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_STARTUP_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_SUSPEND_CURRENT_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_ADMINDEFINE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_BEGIN_COLLECTION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_BOOLEAN", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_CHARSET", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_COPY", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_DATE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_DEFAULT", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_DELETEATTR", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_END", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_END_COLLECTION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_ENUM", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_EVENT_NOTIFICATION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_INTEGER", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_KEYWORD", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_LANGUAGE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_MASK", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_MEMBERNAME", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_MIMETYPE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_NAME", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_NAMELANG", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_NOTSETTABLE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_NOVALUE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_OPERATION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_PRINTER", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_RANGE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_RESOLUTION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_STRING", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_SUBSCRIPTION", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_TEXT", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_TEXTLANG", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_UNKNOWN", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_UNSUPPORTED_GROUP", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_UNSUPPORTED_VALUE", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_URI", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_URISCHEME", type=>"IV", macro=>"1"}, {name=>"IPP_TAG_ZERO", type=>"IV", macro=>"1"}, {name=>"IPP_TEMPORARY_ERROR", type=>"IV", macro=>"1"}, {name=>"IPP_TIMEOUT", type=>"IV", macro=>"1"}, {name=>"IPP_TOO_MANY_SUBSCRIPTIONS", type=>"IV", macro=>"1"}, {name=>"IPP_URI_SCHEME", type=>"IV", macro=>"1"}, {name=>"IPP_VALIDATE_JOB", type=>"IV", macro=>"1"}, {name=>"IPP_VERSION_NOT_SUPPORTED", type=>"IV", macro=>"1"}, {name=>"PPD_ALLOC_ERROR", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_CUSTOM_PARAM", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_OPEN_GROUP", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_OPEN_UI", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_ORDER_DEPENDENCY", type=>"IV", macro=>"1"}, {name=>"PPD_BAD_UI_CONSTRAINTS", type=>"IV", macro=>"1"}, {name=>"PPD_CONFORM_RELAXED", type=>"IV", macro=>"1"}, {name=>"PPD_CONFORM_STRICT", type=>"IV", macro=>"1"}, {name=>"PPD_CS_CMY", type=>"IV", macro=>"1"}, {name=>"PPD_CS_CMYK", type=>"IV", macro=>"1"}, {name=>"PPD_CS_GRAY", type=>"IV", macro=>"1"}, {name=>"PPD_CS_N", type=>"IV", macro=>"1"}, {name=>"PPD_CS_RGB", type=>"IV", macro=>"1"}, {name=>"PPD_CS_RGBK", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_CURVE", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_INT", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_INVCURVE", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_PASSCODE", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_PASSWORD", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_POINTS", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_REAL", type=>"IV", macro=>"1"}, {name=>"PPD_CUSTOM_STRING", type=>"IV", macro=>"1"}, {name=>"PPD_FILE_OPEN_ERROR", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_CHARACTER", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_MAIN_KEYWORD", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_OPTION_KEYWORD", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_TRANSLATION", type=>"IV", macro=>"1"}, {name=>"PPD_ILLEGAL_WHITESPACE", type=>"IV", macro=>"1"}, {name=>"PPD_INTERNAL_ERROR", type=>"IV", macro=>"1"}, {name=>"PPD_LINE_TOO_LONG", type=>"IV", macro=>"1"}, {name=>"PPD_MAX_LINE", type=>"IV", macro=>"1"}, {name=>"PPD_MAX_NAME", type=>"IV", macro=>"1"}, {name=>"PPD_MAX_TEXT", type=>"IV", macro=>"1"}, {name=>"PPD_MISSING_ASTERISK", type=>"IV", macro=>"1"}, {name=>"PPD_MISSING_PPDADOBE4", type=>"IV", macro=>"1"}, {name=>"PPD_MISSING_VALUE", type=>"IV", macro=>"1"}, {name=>"PPD_NESTED_OPEN_GROUP", type=>"IV", macro=>"1"}, {name=>"PPD_NESTED_OPEN_UI", type=>"IV", macro=>"1"}, {name=>"PPD_NULL_FILE", type=>"IV", macro=>"1"}, {name=>"PPD_OK", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_ANY", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_DOCUMENT", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_EXIT", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_JCL", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_PAGE", type=>"IV", macro=>"1"}, {name=>"PPD_ORDER_PROLOG", type=>"IV", macro=>"1"}, {name=>"PPD_UI_BOOLEAN", type=>"IV", macro=>"1"}, {name=>"PPD_UI_PICKMANY", type=>"IV", macro=>"1"}, {name=>"PPD_UI_PICKONE", type=>"IV", macro=>"1"}, {name=>"PPD_VERSION", type=>"IV", macro=>"1"}); print constant_types(); # macro defs foreach (C_constant ("Net::CUPS", 'constant', 'IV', $types, undef, 3, @names) ) { print $_, "\n"; # C constant subs } print "#### XS Section:\n"; print XS_constant ("Net::CUPS", $types); __END__ */ switch (len) { case 5: if (memEQ(name, "INET6", 5)) { #ifdef INET6 *iv_return = INET6; return PERL_constant_ISIV; #else return PERL_constant_NOTDEF; #endif } break; case 6: /* Names all of length 6. */ /* IPP_OK PPD_OK */ /* Offset 0 gives the best switch position. */ switch (*name++) { case 'I': if (memEQ(name, "PP_OK", 5)) { /* I */ *iv_return = IPP_OK; return PERL_constant_ISIV; } break; case 'P': if (memEQ(name, "PD_OK", 5)) { /* P */ *iv_return = PPD_OK; return PERL_constant_ISIV; } break; } break; case 7: if (memEQ(name, "HTTP_OK", 7)) { *iv_return = HTTP_OK; return PERL_constant_ISIV; } break; case 8: return constant_8 (aTHX_ name, iv_return); break; case 9: return constant_9 (aTHX_ name, iv_return); break; case 10: return constant_10 (aTHX_ name, iv_return); break; case 11: return constant_11 (aTHX_ name, iv_return); break; case 12: return constant_12 (aTHX_ name, iv_return); break; case 13: return constant_13 (aTHX_ name, iv_return); break; case 14: return constant_14 (aTHX_ name, iv_return); break; case 15: return constant_15 (aTHX_ name, iv_return); break; case 16: return constant_16 (aTHX_ name, iv_return); break; case 17: return constant_17 (aTHX_ name, iv_return); break; case 18: return constant_18 (aTHX_ name, iv_return); break; case 19: return constant_19 (aTHX_ name, iv_return); break; case 20: return constant_20 (aTHX_ name, iv_return); break; case 21: return constant_21 (aTHX_ name, iv_return); break; case 22: return constant_22 (aTHX_ name, iv_return); break; case 23: return constant_23 (aTHX_ name, iv_return); break; case 24: return constant_24 (aTHX_ name, iv_return); break; case 25: return constant_25 (aTHX_ name, iv_return); break; case 26: return constant_26 (aTHX_ name, iv_return); break; case 27: return constant_27 (aTHX_ name, iv_return); break; case 28: return constant_28 (aTHX_ name, iv_return); break; case 29: return constant_29 (aTHX_ name, iv_return); break; case 30: return constant_30 (aTHX_ name, iv_return); break; case 31: return constant_31 (aTHX_ name, iv_return); break; case 32: return constant_32 (aTHX_ name, iv_return); break; case 33: return constant_33 (aTHX_ name, iv_return); break; case 34: if (memEQ(name, "IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT", 34)) { *iv_return = IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT; return PERL_constant_ISIV; } break; case 35: if (memEQ(name, "IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB", 35)) { *iv_return = IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB; return PERL_constant_ISIV; } break; } return PERL_constant_NOTFOUND; } Net-CUPS-0.61/fallback/const-xs.inc0000644001127700037230000000513311010464324015357 0ustar dhagemanvoid constant(sv) PREINIT: #ifdef dXSTARG dXSTARG; /* Faster if we have it. */ #else dTARGET; #endif STRLEN len; int type; IV iv; /* NV nv; Uncomment this if you need to return NVs */ /* const char *pv; Uncomment this if you need to return PVs */ INPUT: SV * sv; const char * s = SvPV(sv, len); PPCODE: /* Change this to constant(aTHX_ s, len, &iv, &nv); if you need to return both NVs and IVs */ type = constant(aTHX_ s, len, &iv); /* Return 1 or 2 items. First is error message, or undef if no error. Second, if present, is found value */ switch (type) { case PERL_constant_NOTFOUND: sv = sv_2mortal(newSVpvf("%s is not a valid Net::CUPS macro", s)); PUSHs(sv); break; case PERL_constant_NOTDEF: sv = sv_2mortal(newSVpvf( "Your vendor has not defined Net::CUPS macro %s, used", s)); PUSHs(sv); break; case PERL_constant_ISIV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHi(iv); break; /* Uncomment this if you need to return NOs case PERL_constant_ISNO: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(&PL_sv_no); break; */ /* Uncomment this if you need to return NVs case PERL_constant_ISNV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHn(nv); break; */ /* Uncomment this if you need to return PVs case PERL_constant_ISPV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHp(pv, strlen(pv)); break; */ /* Uncomment this if you need to return PVNs case PERL_constant_ISPVN: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHp(pv, iv); break; */ /* Uncomment this if you need to return SVs case PERL_constant_ISSV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(sv); break; */ /* Uncomment this if you need to return UNDEFs case PERL_constant_ISUNDEF: break; */ /* Uncomment this if you need to return UVs case PERL_constant_ISUV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHu((UV)iv); break; */ /* Uncomment this if you need to return YESs case PERL_constant_ISYES: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(&PL_sv_yes); break; */ default: sv = sv_2mortal(newSVpvf( "Unexpected return type %d while processing Net::CUPS macro %s, used", type, s)); PUSHs(sv); } Net-CUPS-0.61/examples/0000755001127700037230000000000011242661040013164 5ustar dhagemanNet-CUPS-0.61/examples/list_dests.pl0000755001127700037230000000052311010464324015700 0ustar dhageman#!/usr/bin/perl use strict; use warnings; ## ## This is an example of how to get all of the destinations on ## the default server. ## use Net::CUPS; use Net::CUPS::Destination; { my $cups = Net::CUPS->new(); my @destinations = $cups->getDestinations(); foreach( @destinations ) { print $_->getName() ."\n"; } exit( 0 ); } Net-CUPS-0.61/examples/print_file.pl0000755001127700037230000000110611010464324015654 0ustar dhageman#!/usr/bin/perl ## ## This is a *simple* example with minimal error checking of how to ## print a file. ## use strict; use warnings; use Net::CUPS; use Net::CUPS::Destination; { die( "Please give me the name of a file to print!\n" ) if ( @ARGV < 1 ); my $filename = $ARGV[0]; my $cups = Net::CUPS->new(); my $dest = $cups->getDestination(); die( "You don't have a default printer setup!\n" ) if( !defined( $dest ) ); print "I am attempting to print $filename to " . $dest->getName() . ".\n"; $dest->printFile( $filename, "Net::CUPS Test Print!" ); exit( 0 ); } Net-CUPS-0.61/const-xs.inc0000644001127700037230000000514711242661241013631 0ustar dhagemanvoid constant(sv) PREINIT: #ifdef dXSTARG dXSTARG; /* Faster if we have it. */ #else dTARGET; #endif STRLEN len; int type; IV iv; /* NV nv; Uncomment this if you need to return NVs */ /* const char *pv; Uncomment this if you need to return PVs */ INPUT: SV * sv; const char * s = SvPV(sv, len); PPCODE: /* Change this to constant(aTHX_ s, len, &iv, &nv); if you need to return both NVs and IVs */ type = constant(aTHX_ s, len, &iv); /* Return 1 or 2 items. First is error message, or undef if no error. Second, if present, is found value */ switch (type) { case PERL_constant_NOTFOUND: sv = sv_2mortal(newSVpvf("%s is not a valid Net::CUPS macro", s)); PUSHs(sv); break; case PERL_constant_NOTDEF: sv = sv_2mortal(newSVpvf( "Your vendor has not defined Net::CUPS macro %s, used", s)); PUSHs(sv); break; case PERL_constant_ISIV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHi(iv); break; /* Uncomment this if you need to return NOs case PERL_constant_ISNO: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(&PL_sv_no); break; */ /* Uncomment this if you need to return NVs case PERL_constant_ISNV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHn(nv); break; */ /* Uncomment this if you need to return PVs case PERL_constant_ISPV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHp(pv, strlen(pv)); break; */ /* Uncomment this if you need to return PVNs case PERL_constant_ISPVN: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHp(pv, iv); break; */ /* Uncomment this if you need to return SVs case PERL_constant_ISSV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(sv); break; */ /* Uncomment this if you need to return UNDEFs case PERL_constant_ISUNDEF: break; */ /* Uncomment this if you need to return UVs case PERL_constant_ISUV: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHu((UV)iv); break; */ /* Uncomment this if you need to return YESs case PERL_constant_ISYES: EXTEND(SP, 1); PUSHs(&PL_sv_undef); PUSHs(&PL_sv_yes); break; */ default: sv = sv_2mortal(newSVpvf( "Unexpected return type %d while processing Net::CUPS macro %s, used", type, s)); PUSHs(sv); } Net-CUPS-0.61/CUPS.xs0000644001127700037230000005074111234321543012505 0ustar dhageman#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include /*#include */ #include #include #include #include #include #include #include #include #include #include "const-c.inc" #include "packer.c" static SV *password_cb = (SV*) NULL; const char * password_cb_wrapper(const char *prompt) { /* This variable will show up as unused on certain platforms. */ STRLEN n_a; static char password[255] = { '\0' }; if (! password_cb) return NULL; dSP; ENTER; SAVETMPS; PUSHMARK(SP); XPUSHs(sv_2mortal(newSVpv(prompt, 0))); PUTBACK; call_sv(password_cb, G_SCALAR); SPAGAIN; strncpy(password, POPpx, 254); PUTBACK; FREETMPS; LEAVE; return password; } MODULE = Net::CUPS PACKAGE = Net::CUPS PROTOTYPES: DISABLE INCLUDE: const-xs.inc const char* NETCUPS_getServer() CODE: RETVAL = cupsServer(); OUTPUT: RETVAL const char* NETCUPS_getUsername() CODE: RETVAL = cupsUser(); OUTPUT: RETVAL void NETCUPS_setServer( name ) const char* name; CODE: cupsSetServer( name ); void NETCUPS_setUsername( username ) const char* username; CODE: cupsSetUser( username ); void NETCUPS_setPasswordCB( callback ) SV* callback; CODE: if( password_cb == (SV*) NULL ) { password_cb = newSVsv( callback ); cupsSetPasswordCB( password_cb_wrapper ); } else { SvSetSV( password_cb, callback ); } const char* NETCUPS_getPassword( prompt ) const char* prompt; CODE: RETVAL = cupsGetPassword( prompt ); OUTPUT: RETVAL void NETCUPS_getDestination( name ) char* name; PPCODE: cups_dest_t * destinations = NULL; cups_dest_t * destination = NULL; int count = 0; SV* rv = NULL; count = cupsGetDests( &destinations ); /* If we have a NULL for destination name, then we are going to assume we want the default. */ if( !strlen( name ) ) { name = cupsGetDefault(); } destination = cupsGetDest( name, NULL, count, destinations ); rv = sv_newmortal(); sv_setref_pv( rv, "Net::CUPS::Destination", destination ); XPUSHs( rv ); XSRETURN( 1 ); void NETCUPS_getDestinations() PPCODE: cups_dest_t * destinations = NULL; int count = 0; int loop = 0; SV* rv = NULL; count = cupsGetDests( &destinations ); for( loop = 0; loop < count; loop++ ) { rv = sv_newmortal(); sv_setref_pv( rv, "Net::CUPS::Destination", &destinations[loop] ); XPUSHs( rv ); } XSRETURN( count ); ppd_file_t* NETCUPS_getPPD( name ) const char* name; INIT: const char* filename = NULL; CODE: filename = cupsGetPPD( name ); RETVAL = ppdOpenFile( filename ); OUTPUT: RETVAL void NETCUPS_requestData( request, resource, filename ) ipp_t* request; const char* resource; const char* filename; PPCODE: http_t* http = NULL; ipp_t* response = NULL; const char* server = NULL; SV* rv = NULL; int port; server = cupsServer(); port = ippPort(); httpInitialize(); http = httpConnect( server, port ); if( strlen( filename ) == 0 ) filename = NULL; response = cupsDoFileRequest( http, request, resource, filename ); rv = sv_newmortal(); sv_setref_pv( rv, "Net::CUPS::IPP", response ); XPUSHs( rv ); httpClose( http ); XSRETURN( 1 ); void NETCUPS_getPPDMakes() http_t *http; /* HTTP object */ ipp_t *request; /* IPP request object */ ipp_t *response; /* IPP response object */ ipp_attribute_t *attr; /* Current IPP attribute */ PPCODE: SV* rv = NULL; int count = 0; cups_lang_t *language; language = cupsLangDefault(); http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption()); request = ippNewRequest(CUPS_GET_PPDS); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, "utf-8"); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, language->language); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "requested-attributes", NULL, "ppd-make"); response = cupsDoRequest(http, request, "/"); if (response != NULL) { attr = ippFindAttribute(response, "ppd-make", IPP_TAG_TEXT); rv = sv_newmortal(); sv_setpv(rv, attr->values[0].string.text); XPUSHs(rv); count++; while (attr != NULL) { attr = ippFindNextAttribute(response, "ppd-make", IPP_TAG_TEXT); if (attr == NULL) { break; } rv = sv_newmortal(); sv_setpv(rv, attr->values[0].string.text); XPUSHs(rv); count++; } ippDelete(response); httpClose(http); } else { XSRETURN ( 0 ); } XSRETURN( count ); void NETCUPS_getAllPPDs () http_t *http; /* HTTP object */ ipp_t *request; /* IPP request object */ ipp_t *response; /* IPP response object */ ipp_attribute_t *attr; /* Current IPP attribute */ PPCODE: SV* rv = NULL; int count = 0; cups_lang_t *language; language = cupsLangDefault(); http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption()); request = ippNewRequest(CUPS_GET_PPDS); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, "utf-8"); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, language->language); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "requested-attributes", NULL, "ppd-make-and-model"); response = cupsDoRequest(http, request, "/"); if (response != NULL) { attr = ippFindAttribute(response, "ppd-make-and-model", IPP_TAG_TEXT); rv = sv_newmortal(); sv_setpv(rv, attr->values[0].string.text); XPUSHs(rv); count++; while (attr != NULL) { attr = ippFindNextAttribute(response, "ppd-make-and-model", IPP_TAG_TEXT); if (attr == NULL) { break; } rv = sv_newmortal(); sv_setpv(rv, attr->values[0].string.text); XPUSHs(rv); count++; } ippDelete(response); httpClose(http); } else { XSRETURN ( 0 ); } XSRETURN( count ); void NETCUPS_deleteDestination( destination ); const char* destination; PPCODE: ipp_t *request; http_t *http; char uri[HTTP_MAX_URI]; httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL, cupsServer(), 0, "/printers/%s", destination); http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption()); request = ippNewRequest(CUPS_DELETE_PRINTER); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); ippDelete(cupsDoRequest(http, request, "/admin/")); void NETCUPS_addDestination(name, location, printer_info, ppd_name, device_uri); const char* name; const char* location; const char* printer_info; const char* ppd_name; const char* device_uri; PPCODE: http_t *http = NULL; /* HTTP object */ ipp_t *request = NULL; /* IPP request object */ char uri[HTTP_MAX_URI]; /* Job URI */ http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption()); request = ippNewRequest(CUPS_ADD_PRINTER); httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL, cupsServer(), 0, "/printers/%s", name); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_TEXT, "printer-location", NULL, location); ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_TEXT, "printer-info", NULL, printer_info ); ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_NAME, "ppd-name", NULL, ppd_name); strncpy(uri, device_uri, sizeof(uri)); ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_URI, "device-uri", NULL, uri); ippAddBoolean(request, IPP_TAG_PRINTER, "printer-is-accepting-jobs", 1); ippAddInteger(request, IPP_TAG_PRINTER, IPP_TAG_ENUM, "printer-state", IPP_PRINTER_IDLE); ippDelete(cupsDoRequest(http, request, "/admin/")); void NETCUPS_getPPDFileName(ppdfilename); const char* ppdfilename; PPCODE: http_t *http; /* HTTP object */ ipp_t *request; /* IPP request object */ ipp_t *response; /* IPP response object */ ipp_attribute_t *attr; /* Current IPP attribute */ int i = 0; char* tmpppd; char test[1024]; SV* rv = NULL; http = httpConnectEncrypt(cupsServer(), ippPort(), cupsEncryption()); request = ippNewRequest(CUPS_GET_PPDS); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, "utf-8"); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, "en"); response = cupsDoRequest(http, request, "/"); if (response != NULL) { attr = ippFindAttribute(response, "ppd-name", IPP_TAG_NAME ); while ((attr != NULL) && (i < 1)) { tmpppd = attr->values[0].string.text; attr = ippFindNextAttribute(response, "ppd-make", IPP_TAG_TEXT); attr = ippFindNextAttribute(response, "ppd-make-and-model", IPP_TAG_TEXT); if (strcmp(attr->values[0].string.text, ppdfilename) == 0 ) { /* return tmpppd; */ strcpy(test, tmpppd); break; } attr = ippFindNextAttribute(response, "ppd-name", IPP_TAG_NAME); } } ippDelete(response); httpClose(http); rv = sv_newmortal(); sv_setpv( rv, test); XPUSHs( rv ); MODULE = Net::CUPS PACKAGE = Net::CUPS::Destination PROTOTYPES: DISABLE INCLUDE: const-xs.inc void NETCUPS_getDeviceAttribute( device, attribute, attribute_type ) const char* device; const char* attribute; int attribute_type; PPCODE: http_t *http = NULL; /* HTTP object */ ipp_t *request = NULL; /* IPP request */ ipp_t *response = NULL; /* IPP response */ ipp_attribute_t *attr = NULL; /* IPP attribute */ SV* rv = NULL; char *description = NULL; http = httpConnectEncrypt( cupsServer(), ippPort(), cupsEncryption() ); if (http == NULL) { perror ("Unable to connect to server"); /* return (1); */ } request = ippNewRequest (CUPS_GET_PRINTERS); if ((response = cupsDoRequest (http, request, "/")) != NULL) { attr = ippFindNextAttribute(response, "printer-name", IPP_TAG_NAME); while (attr != NULL) { if (strcmp(attr->values[0].string.text, device) == 0) { attr = ippFindNextAttribute( response, attribute, attribute_type); rv = sv_newmortal(); sv_setpv( rv, attr->values[0].string.text); XPUSHs( rv ); break; } attr = ippFindNextAttribute( response, "printer-name", IPP_TAG_NAME); if (attr == NULL) { break; } } } ippDelete( response ); httpClose( http ); XSRETURN( 1 ); int NETCUPS_addOption( self, name, value ) cups_dest_t* self; const char* name; const char* value; CODE: int num_options; num_options = cupsAddOption( name, value, self->num_options, &self->options ); self->num_options = num_options; RETVAL = num_options; OUTPUT: RETVAL int NETCUPS_cancelJob( self, jobid ) const char* self; int jobid; CODE: RETVAL = cupsCancelJob( self, jobid ); OUTPUT: RETVAL int NETCUPS_freeDestination( self ) cups_dest_t* self; CODE: /* If we use the following function, then we will get errors */ /* about double frees. */ /*cupsFreeDests( 1, self ); */ if( self->instance ) free( self->instance ); cupsFreeOptions( self->num_options, self->options ); /* I am working under the assumption that the actual 'cups_dest_t */ /* will be freed when perl does its garbage collection. */ /* I really need to research it more. */ RETVAL = 1; OUTPUT: RETVAL char* NETCUPS_getDestinationName( self ) cups_dest_t *self; CODE: RETVAL = self->name; OUTPUT: RETVAL const char* NETCUPS_getDestinationOptionValue( self, option ) cups_dest_t *self; char* option; CODE: RETVAL = cupsGetOption( option, self->num_options, self->options ); OUTPUT: RETVAL void NETCUPS_getDestinationOptions( self ) cups_dest_t* self INIT: int count = 0; int loop = 0; SV* rv = NULL; cups_option_t* options = NULL; PPCODE: count = self->num_options; options = self->options; for( loop = 0; loop < count; loop++ ) { rv = newSV(0); sv_setpv( rv, options[loop].name ); XPUSHs( rv ); } XSRETURN( count ); SV* NETCUPS_getJob( dest, jobid ) const char* dest; int jobid; CODE: int loop = 0; int count = 0; HV* hv = NULL; cups_job_t* jobs = NULL; char *tstate = NULL; RETVAL = &PL_sv_undef; count = cupsGetJobs( &jobs, dest, 0, -1 ); for( loop = 0; loop < count; loop++ ) { if( jobs[loop].id == jobid ) { hv = newHV(); hv_store( hv, "completed_time", strlen( "completed_time" ), newSVnv( jobs[loop].completed_time ), 0 ); hv_store( hv, "creation_time", strlen( "creation_time" ), newSVnv( jobs[loop].creation_time ), 0 ); hv_store( hv, "dest", strlen( "dest" ), newSVpv( jobs[loop].dest, strlen( jobs[loop].dest ) ), 0 ); hv_store( hv, "format", strlen( "format" ), newSVpv( jobs[loop].format, strlen( jobs[loop].format ) ), 0 ); hv_store( hv, "id", strlen( "id" ), newSViv( jobs[loop].id ), 0 ); hv_store( hv, "priority", strlen( "priority" ), newSViv( jobs[loop].priority ), 0 ); hv_store( hv, "processing_time", strlen( "processing_time" ), newSVnv( jobs[loop].processing_time ), 0 ); hv_store( hv, "size", strlen( "size" ), newSViv( jobs[loop].size ), 0 ); hv_store( hv, "state", strlen( "state" ), newSViv( jobs[loop].state ), 0 ); hv_store( hv, "title", strlen( "title" ), newSVpv( jobs[loop].title, strlen( jobs[loop].title ) ), 0 ); hv_store( hv, "user", strlen( "user" ), newSVpv( jobs[loop].user, strlen( jobs[loop].user ) ), 0 ); switch( jobs[loop].state ) { case IPP_JOB_PENDING: { tstate = "pending"; break; } case IPP_JOB_HELD: { tstate = "held"; break; } case IPP_JOB_PROCESSING: { tstate = "processing"; break; } case IPP_JOB_STOPPED: { tstate = "stopped"; break; } /* CANCELLED is not a TYPO! (Well, it is, but it is not my fault! */ case IPP_JOB_CANCELLED: { tstate = "canceled"; break; } case IPP_JOB_ABORTED: { tstate = "aborted"; break; } case IPP_JOB_COMPLETED: { tstate = "completed"; break; } default: { tstate = "unknown"; break; } } hv_store( hv, "state_text", strlen( "state_text" ), newSVpv( tstate, strlen( tstate ) ), 0 ); RETVAL = newRV((SV*)hv); } } OUTPUT: RETVAL void NETCUPS_getJobs( dest, whose, scope ) const char* dest; int whose; int scope; PPCODE: int loop = 0; int count = 0; SV* rv = NULL; cups_job_t* jobs = NULL; count = cupsGetJobs( &jobs, dest, whose, scope ); for( loop = 0; loop < count; loop++ ) { rv = newSV(0); sv_setiv( rv, jobs[loop].id ); XPUSHs( rv ); } XSRETURN( count ); const char* NETCUPS_getError() CODE: RETVAL = cupsLastErrorString(); OUTPUT: RETVAL int NETCUPS_printFile( self, filename, title ) cups_dest_t* self; const char* filename; const char* title; CODE: RETVAL = cupsPrintFile( self->name, filename, title, self->num_options, self->options ); OUTPUT: RETVAL MODULE = Net::CUPS PACKAGE = Net::CUPS::PPD PROTOTYPES: DISABLE INCLUDE: const-xs.inc int NETCUPS_freePPD( ppd ) ppd_file_t *ppd; CODE: ppdClose( ppd ); RETVAL = 1; OUTPUT: RETVAL HV* NETCUPS_getFirstOption( ppd ) ppd_file_t *ppd; INIT: ppd_option_t *option; CODE: option = ppdFirstOption( ppd ); RETVAL = hash_ppd_option_t( option ); OUTPUT: RETVAL HV* NETCUPS_getNextOption( ppd ) ppd_file_t *ppd; INIT: ppd_option_t *option; CODE: option = ppdNextOption( ppd ); RETVAL = hash_ppd_option_t( option ); OUTPUT: RETVAL HV* NETCUPS_getOption( ppd, keyword ) ppd_file_t *ppd; const char* keyword; INIT: ppd_option_t *option; CODE: option = ppdFindOption( ppd, keyword ); RETVAL = hash_ppd_option_t( option ); OUTPUT: RETVAL int NETCUPS_getPageLength( ppd, size ) ppd_file_t *ppd; const char* size; CODE: RETVAL = ppdPageLength( ppd, size ); OUTPUT: RETVAL HV* NETCUPS_getPageSize( ppd, size ) ppd_file_t *ppd; const char* size; INIT: ppd_size_t* page_size; HV* hv; CODE: page_size = ppdPageSize( ppd, size ); hv = newHV(); if( page_size != NULL ) { hv_store( hv, "bottom", strlen( "bottom" ), newSViv( page_size->bottom ), 0 ); hv_store( hv, "left", strlen( "left" ), newSViv( page_size->left ), 0 ); hv_store( hv, "length", strlen( "length" ), newSViv( page_size->length ), 0 ); hv_store( hv, "marked", strlen( "marked" ), newSViv( page_size->marked ), 0 ); hv_store( hv, "name", strlen( "name" ), newSVpv( page_size->name, PPD_MAX_NAME ), 0 ); hv_store( hv, "right", strlen( "right" ), newSViv( page_size->right ), 0 ); hv_store( hv, "top", strlen( "top" ), newSViv( page_size->top ), 0 ); hv_store( hv, "width", strlen( "width" ), newSViv( page_size->width ), 0 ); } RETVAL = hv; OUTPUT: RETVAL int NETCUPS_getPageWidth( ppd, size ) ppd_file_t *ppd; const char* size; CODE: RETVAL = ppdPageWidth( ppd, size ); OUTPUT: RETVAL int NETCUPS_isMarked( ppd, option, choice ) ppd_file_t *ppd; const char* option; const char* choice; CODE: RETVAL = ppdIsMarked( ppd, option, choice ); OUTPUT: RETVAL int NETCUPS_markDefaults( ppd ) ppd_file_t *ppd; CODE: ppdMarkDefaults( ppd ); RETVAL = 1; OUTPUT: RETVAL int NETCUPS_markOption( ppd, option, choice ) ppd_file_t *ppd; const char* option; const char* choice; CODE: RETVAL = ppdMarkOption( ppd, option, choice ); OUTPUT: RETVAL MODULE = Net::CUPS PACKAGE = Net::CUPS::IPP PROTOTYPES: DISABLE INCLUDE: const-xs.inc int NETCUPS_freeIPP( ipp ) ipp_t* ipp; CODE: ippDelete( ipp ); RETVAL = 1; OUTPUT: RETVAL int NETCUPS_addString( ipp, group, type, name, charset, value ) ipp_t* ipp; ipp_tag_t group; ipp_tag_t type; const char* name; const char* charset; const char* value; CODE: ipp_attribute_t* attribute = NULL; attribute = ippAddString( ipp, group, type, name, charset, value ); RETVAL = 1; OUTPUT: RETVAL void NETCUPS_getAttributes( ipp ) ipp_t* ipp; PPCODE: SV* rv = NULL; int count = 0; ipp_attribute_t* attr = NULL; for (attr = ipp->attrs; attr != NULL; attr = attr->next) { while (attr != NULL && attr->group_tag != IPP_TAG_JOB) attr = attr->next; if (attr == NULL) break; rv = sv_newmortal(); sv_setpv( rv, attr->name ); XPUSHs( rv ); count++; } XSRETURN( count ); void NETCUPS_getAttributeValue( ipp, name ) ipp_t* ipp; const char* name; PPCODE: SV* rv = NULL; int count = 0; ipp_attribute_t* attr = NULL; for (attr = ipp->attrs; attr != NULL; attr = attr->next) { while (attr != NULL && attr->group_tag != IPP_TAG_JOB) attr = attr->next; if (attr == NULL) break; if( !strcmp( attr->name, name ) ) { rv = sv_newmortal(); if( ( attr->value_tag == IPP_TAG_INTEGER ) || ( attr->value_tag == IPP_TAG_ENUM ) ) { /* We have a number with any luck ... */ sv_setiv( rv, attr->values[0].integer ); } else { /* We have a string ... maybe ... try to set it. */ sv_setpv( rv, attr->values[0].string.text ); } XPUSHs( rv ); count++; break; } } XSRETURN( count ); int NETCUPS_getPort() CODE: RETVAL = ippPort(); OUTPUT: RETVAL size_t NETCUPS_getSize( ipp ) ipp_t* ipp; CODE: RETVAL = ippLength( ipp ); OUTPUT: RETVAL void NETCUPS_newIPP() PPCODE: ipp_t * ipp = NULL; SV* rv = NULL; ipp = ippNew(); rv = sv_newmortal(); sv_setref_pv( rv, "Net::CUPS::IPP", ipp ); XPUSHs( rv ); XSRETURN( 1 ); void NETCUPS_newIPPRequest( op ) ipp_op_t op; PPCODE: ipp_t * ipp = NULL; SV* rv = NULL; ipp = ippNewRequest( op ); rv = sv_newmortal(); sv_setref_pv( rv, "Net::CUPS::IPP", ipp ); XPUSHs( rv ); XSRETURN( 1 ); int NETCUPS_setPort( port ) int port; CODE: ippSetPort( port ); RETVAL = ippPort(); OUTPUT: RETVAL Net-CUPS-0.61/ppport.h0000644001127700037230000041706511010464324013057 0ustar dhageman#if 0 <<'SKIP'; #endif /* ---------------------------------------------------------------------- ppport.h -- Perl/Pollution/Portability Version 3.10 Automatically created by Devel::PPPort running under perl 5.008008. Do NOT edit this file directly! -- Edit PPPort_pm.PL and the includes in parts/inc/ instead. Use 'perldoc ppport.h' to view the documentation below. ---------------------------------------------------------------------- SKIP =pod =head1 NAME ppport.h - Perl/Pollution/Portability version 3.10 =head1 SYNOPSIS perl ppport.h [options] [source files] Searches current directory for files if no [source files] are given --help show short help --version show version --patch=file write one patch file with changes --copy=suffix write changed copies with suffix --diff=program use diff program and options --compat-version=version provide compatibility with Perl version --cplusplus accept C++ comments --quiet don't output anything except fatal errors --nodiag don't show diagnostics --nohints don't show hints --nochanges don't suggest changes --nofilter don't filter input files --strip strip all script and doc functionality from ppport.h --list-provided list provided API --list-unsupported list unsupported API --api-info=name show Perl API portability information =head1 COMPATIBILITY This version of F is designed to support operation with Perl installations back to 5.003, and has been tested up to 5.9.4. =head1 OPTIONS =head2 --help Display a brief usage summary. =head2 --version Display the version of F. =head2 --patch=I If this option is given, a single patch file will be created if any changes are suggested. This requires a working diff program to be installed on your system. =head2 --copy=I If this option is given, a copy of each file will be saved with the given suffix that contains the suggested changes. This does not require any external programs. If neither C<--patch> or C<--copy> are given, the default is to simply print the diffs for each file. This requires either C or a C program to be installed. =head2 --diff=I Manually set the diff program and options to use. The default is to use C, when installed, and output unified context diffs. =head2 --compat-version=I Tell F to check for compatibility with the given Perl version. The default is to check for compatibility with Perl version 5.003. You can use this option to reduce the output of F if you intend to be backward compatible only down to a certain Perl version. =head2 --cplusplus Usually, F will detect C++ style comments and replace them with C style comments for portability reasons. Using this option instructs F to leave C++ comments untouched. =head2 --quiet Be quiet. Don't print anything except fatal errors. =head2 --nodiag Don't output any diagnostic messages. Only portability alerts will be printed. =head2 --nohints Don't output any hints. Hints often contain useful portability notes. =head2 --nochanges Don't suggest any changes. Only give diagnostic output and hints unless these are also deactivated. =head2 --nofilter Don't filter the list of input files. By default, files not looking like source code (i.e. not *.xs, *.c, *.cc, *.cpp or *.h) are skipped. =head2 --strip Strip all script and documentation functionality from F. This reduces the size of F dramatically and may be useful if you want to include F in smaller modules without increasing their distribution size too much. The stripped F will have a C<--unstrip> option that allows you to undo the stripping, but only if an appropriate C module is installed. =head2 --list-provided Lists the API elements for which compatibility is provided by F. Also lists if it must be explicitly requested, if it has dependencies, and if there are hints for it. =head2 --list-unsupported Lists the API elements that are known not to be supported by F and below which version of Perl they probably won't be available or work. =head2 --api-info=I Show portability information for API elements matching I. If I is surrounded by slashes, it is interpreted as a regular expression. =head1 DESCRIPTION In order for a Perl extension (XS) module to be as portable as possible across differing versions of Perl itself, certain steps need to be taken. =over 4 =item * Including this header is the first major one. This alone will give you access to a large part of the Perl API that hasn't been available in earlier Perl releases. Use perl ppport.h --list-provided to see which API elements are provided by ppport.h. =item * You should avoid using deprecated parts of the API. For example, using global Perl variables without the C prefix is deprecated. Also, some API functions used to have a C prefix. Using this form is also deprecated. You can safely use the supported API, as F will provide wrappers for older Perl versions. =item * If you use one of a few functions or variables that were not present in earlier versions of Perl, and that can't be provided using a macro, you have to explicitly request support for these functions by adding one or more C<#define>s in your source code before the inclusion of F. These functions or variables will be marked C in the list shown by C<--list-provided>. Depending on whether you module has a single or multiple files that use such functions or variables, you want either C or global variants. For a C function or variable (used only in a single source file), use: #define NEED_function #define NEED_variable For a global function or variable (used in multiple source files), use: #define NEED_function_GLOBAL #define NEED_variable_GLOBAL Note that you mustn't have more than one global request for the same function or variable in your project. Function / Variable Static Request Global Request ----------------------------------------------------------------------------------------- PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL grok_number() NEED_grok_number NEED_grok_number_GLOBAL grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL my_strlcat() NEED_my_strlcat NEED_my_strlcat_GLOBAL my_strlcpy() NEED_my_strlcpy NEED_my_strlcpy_GLOBAL newCONSTSUB() NEED_newCONSTSUB NEED_newCONSTSUB_GLOBAL newRV_noinc() NEED_newRV_noinc NEED_newRV_noinc_GLOBAL sv_2pv_nolen() NEED_sv_2pv_nolen NEED_sv_2pv_nolen_GLOBAL sv_2pvbyte() NEED_sv_2pvbyte NEED_sv_2pvbyte_GLOBAL sv_catpvf_mg() NEED_sv_catpvf_mg NEED_sv_catpvf_mg_GLOBAL sv_catpvf_mg_nocontext() NEED_sv_catpvf_mg_nocontext NEED_sv_catpvf_mg_nocontext_GLOBAL sv_setpvf_mg() NEED_sv_setpvf_mg NEED_sv_setpvf_mg_GLOBAL sv_setpvf_mg_nocontext() NEED_sv_setpvf_mg_nocontext NEED_sv_setpvf_mg_nocontext_GLOBAL vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL warner() NEED_warner NEED_warner_GLOBAL To avoid namespace conflicts, you can change the namespace of the explicitly exported functions / variables using the C macro. Just C<#define> the macro before including C: #define DPPP_NAMESPACE MyOwnNamespace_ #include "ppport.h" The default namespace is C. =back The good thing is that most of the above can be checked by running F on your source code. See the next section for details. =head1 EXAMPLES To verify whether F is needed for your module, whether you should make any changes to your code, and whether any special defines should be used, F can be run as a Perl script to check your source code. Simply say: perl ppport.h The result will usually be a list of patches suggesting changes that should at least be acceptable, if not necessarily the most efficient solution, or a fix for all possible problems. If you know that your XS module uses features only available in newer Perl releases, if you're aware that it uses C++ comments, and if you want all suggestions as a single patch file, you could use something like this: perl ppport.h --compat-version=5.6.0 --cplusplus --patch=test.diff If you only want your code to be scanned without any suggestions for changes, use: perl ppport.h --nochanges You can specify a different C program or options, using the C<--diff> option: perl ppport.h --diff='diff -C 10' This would output context diffs with 10 lines of context. To display portability information for the C function, use: perl ppport.h --api-info=newSVpvn Since the argument to C<--api-info> can be a regular expression, you can use perl ppport.h --api-info=/_nomg$/ to display portability information for all C<_nomg> functions or perl ppport.h --api-info=/./ to display information for all known API elements. =head1 BUGS If this version of F is causing failure during the compilation of this module, please check if newer versions of either this module or C are available on CPAN before sending a bug report. If F was generated using the latest version of C and is causing failure of this module, please file a bug report using the CPAN Request Tracker at L. Please include the following information: =over 4 =item 1. The complete output from running "perl -V" =item 2. This file. =item 3. The name and version of the module you were trying to build. =item 4. A full log of the build that failed. =item 5. Any other information that you think could be relevant. =back For the latest version of this code, please get the C module from CPAN. =head1 COPYRIGHT Version 3.x, Copyright (c) 2004-2006, Marcus Holland-Moritz. Version 2.x, Copyright (C) 2001, Paul Marquess. Version 1.x, Copyright (C) 1999, Kenneth Albanowski. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO See L. =cut use strict; my $VERSION = 3.10; my %opt = ( quiet => 0, diag => 1, hints => 1, changes => 1, cplusplus => 0, filter => 1, strip => 0, version => 0, ); my($ppport) = $0 =~ /([\w.]+)$/; my $LF = '(?:\r\n|[\r\n])'; # line feed my $HS = "[ \t]"; # horizontal whitespace eval { require Getopt::Long; Getopt::Long::GetOptions(\%opt, qw( help quiet diag! filter! hints! changes! cplusplus strip version patch=s copy=s diff=s compat-version=s list-provided list-unsupported api-info=s )) or usage(); }; if ($@ and grep /^-/, @ARGV) { usage() if "@ARGV" =~ /^--?h(?:elp)?$/; die "Getopt::Long not found. Please don't use any options.\n"; } if ($opt{version}) { print "This is $0 $VERSION.\n"; exit 0; } usage() if $opt{help}; strip() if $opt{strip}; if (exists $opt{'compat-version'}) { my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) }; if ($@) { die "Invalid version number format: '$opt{'compat-version'}'\n"; } die "Only Perl 5 is supported\n" if $r != 5; die "Invalid version number: $opt{'compat-version'}\n" if $v >= 1000 || $s >= 1000; $opt{'compat-version'} = sprintf "%d.%03d%03d", $r, $v, $s; } else { $opt{'compat-version'} = 5; } # Never use C comments in this file!!!!! my $ccs = '/'.'*'; my $cce = '*'.'/'; my $rccs = quotemeta $ccs; my $rcce = quotemeta $cce; my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/ ? ( $1 => { ($2 ? ( base => $2 ) : ()), ($3 ? ( todo => $3 ) : ()), (index($4, 'v') >= 0 ? ( varargs => 1 ) : ()), (index($4, 'p') >= 0 ? ( provided => 1 ) : ()), (index($4, 'n') >= 0 ? ( nothxarg => 1 ) : ()), } ) : die "invalid spec: $_" } qw( AvFILLp|5.004050||p AvFILL||| CLASS|||n CX_CURPAD_SAVE||| CX_CURPAD_SV||| CopFILEAV|5.006000||p CopFILEGV_set|5.006000||p CopFILEGV|5.006000||p CopFILESV|5.006000||p CopFILE_set|5.006000||p CopFILE|5.006000||p CopSTASHPV_set|5.006000||p CopSTASHPV|5.006000||p CopSTASH_eq|5.006000||p CopSTASH_set|5.006000||p CopSTASH|5.006000||p CopyD|5.009002||p Copy||| CvPADLIST||| CvSTASH||| CvWEAKOUTSIDE||| DEFSV|5.004050||p END_EXTERN_C|5.005000||p ENTER||| ERRSV|5.004050||p EXTEND||| EXTERN_C|5.005000||p F0convert|||n FREETMPS||| GIMME_V||5.004000|n GIMME|||n GROK_NUMERIC_RADIX|5.007002||p G_ARRAY||| G_DISCARD||| G_EVAL||| G_NOARGS||| G_SCALAR||| G_VOID||5.004000| GetVars||| GvSV||| Gv_AMupdate||| HEf_SVKEY||5.004000| HeHASH||5.004000| HeKEY||5.004000| HeKLEN||5.004000| HePV||5.004000| HeSVKEY_force||5.004000| HeSVKEY_set||5.004000| HeSVKEY||5.004000| HeVAL||5.004000| HvNAME||| INT2PTR|5.006000||p IN_LOCALE_COMPILETIME|5.007002||p IN_LOCALE_RUNTIME|5.007002||p IN_LOCALE|5.007002||p IN_PERL_COMPILETIME|5.008001||p IS_NUMBER_GREATER_THAN_UV_MAX|5.007002||p IS_NUMBER_INFINITY|5.007002||p IS_NUMBER_IN_UV|5.007002||p IS_NUMBER_NAN|5.007003||p IS_NUMBER_NEG|5.007002||p IS_NUMBER_NOT_INT|5.007002||p IVSIZE|5.006000||p IVTYPE|5.006000||p IVdf|5.006000||p LEAVE||| LVRET||| MARK||| MULTICALL||5.009004| MY_CXT_CLONE|5.009002||p MY_CXT_INIT|5.007003||p MY_CXT|5.007003||p MoveD|5.009002||p Move||| NOOP|5.005000||p NUM2PTR|5.006000||p NVTYPE|5.006000||p NVef|5.006001||p NVff|5.006001||p NVgf|5.006001||p Newxc|5.009003||p Newxz|5.009003||p Newx|5.009003||p Nullav||| Nullch||| Nullcv||| Nullhv||| Nullsv||| ORIGMARK||| PAD_BASE_SV||| PAD_CLONE_VARS||| PAD_COMPNAME_FLAGS||| PAD_COMPNAME_GEN_set||| PAD_COMPNAME_GEN||| PAD_COMPNAME_OURSTASH||| PAD_COMPNAME_PV||| PAD_COMPNAME_TYPE||| PAD_RESTORE_LOCAL||| PAD_SAVE_LOCAL||| PAD_SAVE_SETNULLPAD||| PAD_SETSV||| PAD_SET_CUR_NOSAVE||| PAD_SET_CUR||| PAD_SVl||| PAD_SV||| PERL_ABS|5.008001||p PERL_BCDVERSION|5.009004||p PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p PERL_INT_MAX|5.004000||p PERL_INT_MIN|5.004000||p PERL_LONG_MAX|5.004000||p PERL_LONG_MIN|5.004000||p PERL_MAGIC_arylen|5.007002||p PERL_MAGIC_backref|5.007002||p PERL_MAGIC_bm|5.007002||p PERL_MAGIC_collxfrm|5.007002||p PERL_MAGIC_dbfile|5.007002||p PERL_MAGIC_dbline|5.007002||p PERL_MAGIC_defelem|5.007002||p PERL_MAGIC_envelem|5.007002||p PERL_MAGIC_env|5.007002||p PERL_MAGIC_ext|5.007002||p PERL_MAGIC_fm|5.007002||p PERL_MAGIC_glob|5.007002||p PERL_MAGIC_isaelem|5.007002||p PERL_MAGIC_isa|5.007002||p PERL_MAGIC_mutex|5.007002||p PERL_MAGIC_nkeys|5.007002||p PERL_MAGIC_overload_elem|5.007002||p PERL_MAGIC_overload_table|5.007002||p PERL_MAGIC_overload|5.007002||p PERL_MAGIC_pos|5.007002||p PERL_MAGIC_qr|5.007002||p PERL_MAGIC_regdata|5.007002||p PERL_MAGIC_regdatum|5.007002||p PERL_MAGIC_regex_global|5.007002||p PERL_MAGIC_shared_scalar|5.007003||p PERL_MAGIC_shared|5.007003||p PERL_MAGIC_sigelem|5.007002||p PERL_MAGIC_sig|5.007002||p PERL_MAGIC_substr|5.007002||p PERL_MAGIC_sv|5.007002||p PERL_MAGIC_taint|5.007002||p PERL_MAGIC_tiedelem|5.007002||p PERL_MAGIC_tiedscalar|5.007002||p PERL_MAGIC_tied|5.007002||p PERL_MAGIC_utf8|5.008001||p PERL_MAGIC_uvar_elem|5.007003||p PERL_MAGIC_uvar|5.007002||p PERL_MAGIC_vec|5.007002||p PERL_MAGIC_vstring|5.008001||p PERL_QUAD_MAX|5.004000||p PERL_QUAD_MIN|5.004000||p PERL_REVISION|5.006000||p PERL_SCAN_ALLOW_UNDERSCORES|5.007003||p PERL_SCAN_DISALLOW_PREFIX|5.007003||p PERL_SCAN_GREATER_THAN_UV_MAX|5.007003||p PERL_SCAN_SILENT_ILLDIGIT|5.008001||p PERL_SHORT_MAX|5.004000||p PERL_SHORT_MIN|5.004000||p PERL_SIGNALS_UNSAFE_FLAG|5.008001||p PERL_SUBVERSION|5.006000||p PERL_UCHAR_MAX|5.004000||p PERL_UCHAR_MIN|5.004000||p PERL_UINT_MAX|5.004000||p PERL_UINT_MIN|5.004000||p PERL_ULONG_MAX|5.004000||p PERL_ULONG_MIN|5.004000||p PERL_UNUSED_ARG|5.009003||p PERL_UNUSED_CONTEXT|5.009004||p PERL_UNUSED_DECL|5.007002||p PERL_UNUSED_VAR|5.007002||p PERL_UQUAD_MAX|5.004000||p PERL_UQUAD_MIN|5.004000||p PERL_USE_GCC_BRACE_GROUPS|5.009004||p PERL_USHORT_MAX|5.004000||p PERL_USHORT_MIN|5.004000||p PERL_VERSION|5.006000||p PL_DBsingle|||pn PL_DBsub|||pn PL_DBtrace|||n PL_Sv|5.005000||p PL_compiling|5.004050||p PL_copline|5.005000||p PL_curcop|5.004050||p PL_curstash|5.004050||p PL_debstash|5.004050||p PL_defgv|5.004050||p PL_diehook|5.004050||p PL_dirty|5.004050||p PL_dowarn|||pn PL_errgv|5.004050||p PL_hexdigit|5.005000||p PL_hints|5.005000||p PL_last_in_gv|||n PL_modglobal||5.005000|n PL_na|5.004050||pn PL_no_modify|5.006000||p PL_ofs_sv|||n PL_perl_destruct_level|5.004050||p PL_perldb|5.004050||p PL_ppaddr|5.006000||p PL_rsfp_filters|5.004050||p PL_rsfp|5.004050||p PL_rs|||n PL_signals|5.008001||p PL_stack_base|5.004050||p PL_stack_sp|5.004050||p PL_stdingv|5.004050||p PL_sv_arenaroot|5.004050||p PL_sv_no|5.004050||pn PL_sv_undef|5.004050||pn PL_sv_yes|5.004050||pn PL_tainted|5.004050||p PL_tainting|5.004050||p POP_MULTICALL||5.009004| POPi|||n POPl|||n POPn|||n POPpbytex||5.007001|n POPpx||5.005030|n POPp|||n POPs|||n PTR2IV|5.006000||p PTR2NV|5.006000||p PTR2UV|5.006000||p PTR2ul|5.007001||p PTRV|5.006000||p PUSHMARK||| PUSH_MULTICALL||5.009004| PUSHi||| PUSHmortal|5.009002||p PUSHn||| PUSHp||| PUSHs||| PUSHu|5.004000||p PUTBACK||| PerlIO_clearerr||5.007003| PerlIO_close||5.007003| PerlIO_context_layers||5.009004| PerlIO_eof||5.007003| PerlIO_error||5.007003| PerlIO_fileno||5.007003| PerlIO_fill||5.007003| PerlIO_flush||5.007003| PerlIO_get_base||5.007003| PerlIO_get_bufsiz||5.007003| PerlIO_get_cnt||5.007003| PerlIO_get_ptr||5.007003| PerlIO_read||5.007003| PerlIO_seek||5.007003| PerlIO_set_cnt||5.007003| PerlIO_set_ptrcnt||5.007003| PerlIO_setlinebuf||5.007003| PerlIO_stderr||5.007003| PerlIO_stdin||5.007003| PerlIO_stdout||5.007003| PerlIO_tell||5.007003| PerlIO_unread||5.007003| PerlIO_write||5.007003| Perl_warner_nocontext|5.006000||p Perl_warner|5.006000||p PoisonFree|5.009004||p PoisonNew|5.009004||p PoisonWith|5.009004||p Poison|5.008000||p RETVAL|||n Renewc||| Renew||| SAVECLEARSV||| SAVECOMPPAD||| SAVEPADSV||| SAVETMPS||| SAVE_DEFSV|5.004050||p SPAGAIN||| SP||| START_EXTERN_C|5.005000||p START_MY_CXT|5.007003||p STMT_END|||p STMT_START|||p STR_WITH_LEN|5.009003||p ST||| SVf|5.006000||p SVt_IV||| SVt_NV||| SVt_PVAV||| SVt_PVCV||| SVt_PVHV||| SVt_PVMG||| SVt_PV||| Safefree||| Slab_Alloc||| Slab_Free||| StructCopy||| SvCUR_set||| SvCUR||| SvEND||| SvGAMAGIC||5.006001| SvGETMAGIC|5.004050||p SvGROW||| SvIOK_UV||5.006000| SvIOK_notUV||5.006000| SvIOK_off||| SvIOK_only_UV||5.006000| SvIOK_only||| SvIOK_on||| SvIOKp||| SvIOK||| SvIVX||| SvIV_nomg|5.009001||p SvIV_set||| SvIVx||| SvIV||| SvIsCOW_shared_hash||5.008003| SvIsCOW||5.008003| SvLEN_set||| SvLEN||| SvLOCK||5.007003| SvMAGIC_set|5.009003||p SvNIOK_off||| SvNIOKp||| SvNIOK||| SvNOK_off||| SvNOK_only||| SvNOK_on||| SvNOKp||| SvNOK||| SvNVX||| SvNV_set||| SvNVx||| SvNV||| SvOK||| SvOOK||| SvPOK_off||| SvPOK_only_UTF8||5.006000| SvPOK_only||| SvPOK_on||| SvPOKp||| SvPOK||| SvPVX_const|5.009003||p SvPVX_mutable|5.009003||p SvPVX||| SvPV_force_nomg|5.007002||p SvPV_force||| SvPV_nolen|5.006000||p SvPV_nomg|5.007002||p SvPV_set||| SvPVbyte_force||5.009002| SvPVbyte_nolen||5.006000| SvPVbytex_force||5.006000| SvPVbytex||5.006000| SvPVbyte|5.006000||p SvPVutf8_force||5.006000| SvPVutf8_nolen||5.006000| SvPVutf8x_force||5.006000| SvPVutf8x||5.006000| SvPVutf8||5.006000| SvPVx||| SvPV||| SvREFCNT_dec||| SvREFCNT_inc_NN|5.009004||p SvREFCNT_inc_simple_NN|5.009004||p SvREFCNT_inc_simple_void_NN|5.009004||p SvREFCNT_inc_simple_void|5.009004||p SvREFCNT_inc_simple|5.009004||p SvREFCNT_inc_void_NN|5.009004||p SvREFCNT_inc_void|5.009004||p SvREFCNT_inc|||p SvREFCNT||| SvROK_off||| SvROK_on||| SvROK||| SvRV_set|5.009003||p SvRV||| SvSETMAGIC||| SvSHARE||5.007003| SvSTASH_set|5.009003||p SvSTASH||| SvSetMagicSV_nosteal||5.004000| SvSetMagicSV||5.004000| SvSetSV_nosteal||5.004000| SvSetSV||| SvTAINTED_off||5.004000| SvTAINTED_on||5.004000| SvTAINTED||5.004000| SvTAINT||| SvTRUE||| SvTYPE||| SvUNLOCK||5.007003| SvUOK||5.007001| SvUPGRADE||| SvUTF8_off||5.006000| SvUTF8_on||5.006000| SvUTF8||5.006000| SvUVXx|5.004000||p SvUVX|5.004000||p SvUV_nomg|5.009001||p SvUV_set|5.009003||p SvUVx|5.004000||p SvUV|5.004000||p SvVOK||5.008001| SvVSTRING_mg|5.009004||p THIS|||n UNDERBAR|5.009002||p UVSIZE|5.006000||p UVTYPE|5.006000||p UVXf|5.007001||p UVof|5.006000||p UVuf|5.006000||p UVxf|5.006000||p WARN_ALL|5.006000||p WARN_AMBIGUOUS|5.006000||p WARN_ASSERTIONS|5.009000||p WARN_BAREWORD|5.006000||p WARN_CLOSED|5.006000||p WARN_CLOSURE|5.006000||p WARN_DEBUGGING|5.006000||p WARN_DEPRECATED|5.006000||p WARN_DIGIT|5.006000||p WARN_EXEC|5.006000||p WARN_EXITING|5.006000||p WARN_GLOB|5.006000||p WARN_INPLACE|5.006000||p WARN_INTERNAL|5.006000||p WARN_IO|5.006000||p WARN_LAYER|5.008000||p WARN_MALLOC|5.006000||p WARN_MISC|5.006000||p WARN_NEWLINE|5.006000||p WARN_NUMERIC|5.006000||p WARN_ONCE|5.006000||p WARN_OVERFLOW|5.006000||p WARN_PACK|5.006000||p WARN_PARENTHESIS|5.006000||p WARN_PIPE|5.006000||p WARN_PORTABLE|5.006000||p WARN_PRECEDENCE|5.006000||p WARN_PRINTF|5.006000||p WARN_PROTOTYPE|5.006000||p WARN_QW|5.006000||p WARN_RECURSION|5.006000||p WARN_REDEFINE|5.006000||p WARN_REGEXP|5.006000||p WARN_RESERVED|5.006000||p WARN_SEMICOLON|5.006000||p WARN_SEVERE|5.006000||p WARN_SIGNAL|5.006000||p WARN_SUBSTR|5.006000||p WARN_SYNTAX|5.006000||p WARN_TAINT|5.006000||p WARN_THREADS|5.008000||p WARN_UNINITIALIZED|5.006000||p WARN_UNOPENED|5.006000||p WARN_UNPACK|5.006000||p WARN_UNTIE|5.006000||p WARN_UTF8|5.006000||p WARN_VOID|5.006000||p XCPT_CATCH|5.009002||p XCPT_RETHROW|5.009002||p XCPT_TRY_END|5.009002||p XCPT_TRY_START|5.009002||p XPUSHi||| XPUSHmortal|5.009002||p XPUSHn||| XPUSHp||| XPUSHs||| XPUSHu|5.004000||p XSRETURN_EMPTY||| XSRETURN_IV||| XSRETURN_NO||| XSRETURN_NV||| XSRETURN_PV||| XSRETURN_UNDEF||| XSRETURN_UV|5.008001||p XSRETURN_YES||| XSRETURN|||p XST_mIV||| XST_mNO||| XST_mNV||| XST_mPV||| XST_mUNDEF||| XST_mUV|5.008001||p XST_mYES||| XS_VERSION_BOOTCHECK||| XS_VERSION||| XSprePUSH|5.006000||p XS||| ZeroD|5.009002||p Zero||| _aMY_CXT|5.007003||p _pMY_CXT|5.007003||p aMY_CXT_|5.007003||p aMY_CXT|5.007003||p aTHX_|5.006000||p aTHX|5.006000||p add_data|||n addmad||| allocmy||| amagic_call||| amagic_cmp_locale||| amagic_cmp||| amagic_i_ncmp||| amagic_ncmp||| any_dup||| ao||| append_elem||| append_list||| append_madprops||| apply_attrs_my||| apply_attrs_string||5.006001| apply_attrs||| apply||| atfork_lock||5.007003|n atfork_unlock||5.007003|n av_arylen_p||5.009003| av_clear||| av_delete||5.006000| av_exists||5.006000| av_extend||| av_fake||| av_fetch||| av_fill||| av_len||| av_make||| av_pop||| av_push||| av_reify||| av_shift||| av_store||| av_undef||| av_unshift||| ax|||n bad_type||| bind_match||| block_end||| block_gimme||5.004000| block_start||| boolSV|5.004000||p boot_core_PerlIO||| boot_core_UNIVERSAL||| boot_core_xsutils||| bytes_from_utf8||5.007001| bytes_to_uni|||n bytes_to_utf8||5.006001| call_argv|5.006000||p call_atexit||5.006000| call_list||5.004000| call_method|5.006000||p call_pv|5.006000||p call_sv|5.006000||p calloc||5.007002|n cando||| cast_i32||5.006000| cast_iv||5.006000| cast_ulong||5.006000| cast_uv||5.006000| check_type_and_open||| check_uni||| checkcomma||| checkposixcc||| ckWARN|5.006000||p ck_anoncode||| ck_bitop||| ck_concat||| ck_defined||| ck_delete||| ck_die||| ck_eof||| ck_eval||| ck_exec||| ck_exists||| ck_exit||| ck_ftst||| ck_fun||| ck_glob||| ck_grep||| ck_index||| ck_join||| ck_lengthconst||| ck_lfun||| ck_listiob||| ck_match||| ck_method||| ck_null||| ck_open||| ck_repeat||| ck_require||| ck_retarget||| ck_return||| ck_rfun||| ck_rvconst||| ck_sassign||| ck_say||| ck_select||| ck_shift||| ck_sort||| ck_spair||| ck_split||| ck_subr||| ck_substr||| ck_svconst||| ck_trunc||| ck_unpack||| ckwarn_d||5.009003| ckwarn||5.009003| cl_and|||n cl_anything|||n cl_init_zero|||n cl_init|||n cl_is_anything|||n cl_or|||n clear_placeholders||| closest_cop||| convert||| cop_free||| cr_textfilter||| create_eval_scope||| croak_nocontext|||vn croak|||v csighandler||5.009003|n curmad||| custom_op_desc||5.007003| custom_op_name||5.007003| cv_ckproto_len||| cv_ckproto||| cv_clone||| cv_const_sv||5.004000| cv_dump||| cv_undef||| cx_dump||5.005000| cx_dup||| cxinc||| dAXMARK|5.009003||p dAX|5.007002||p dITEMS|5.007002||p dMARK||| dMULTICALL||5.009003| dMY_CXT_SV|5.007003||p dMY_CXT|5.007003||p dNOOP|5.006000||p dORIGMARK||| dSP||| dTHR|5.004050||p dTHXa|5.006000||p dTHXoa|5.006000||p dTHX|5.006000||p dUNDERBAR|5.009002||p dVAR|5.009003||p dXCPT|5.009002||p dXSARGS||| dXSI32||| dXSTARG|5.006000||p deb_curcv||| deb_nocontext|||vn deb_stack_all||| deb_stack_n||| debop||5.005000| debprofdump||5.005000| debprof||| debstackptrs||5.007003| debstack||5.007003| debug_start_match||| deb||5.007003|v del_sv||| delete_eval_scope||| delimcpy||5.004000| deprecate_old||| deprecate||| despatch_signals||5.007001| destroy_matcher||| die_nocontext|||vn die_where||| die|||v dirp_dup||| div128||| djSP||| do_aexec5||| do_aexec||| do_aspawn||| do_binmode||5.004050| do_chomp||| do_chop||| do_close||| do_dump_pad||| do_eof||| do_exec3||| do_execfree||| do_exec||| do_gv_dump||5.006000| do_gvgv_dump||5.006000| do_hv_dump||5.006000| do_ipcctl||| do_ipcget||| do_join||| do_kv||| do_magic_dump||5.006000| do_msgrcv||| do_msgsnd||| do_oddball||| do_op_dump||5.006000| do_op_xmldump||| do_open9||5.006000| do_openn||5.007001| do_open||5.004000| do_pipe||| do_pmop_dump||5.006000| do_pmop_xmldump||| do_print||| do_readline||| do_seek||| do_semop||| do_shmio||| do_smartmatch||| do_spawn_nowait||| do_spawn||| do_sprintf||| do_sv_dump||5.006000| do_sysseek||| do_tell||| do_trans_complex_utf8||| do_trans_complex||| do_trans_count_utf8||| do_trans_count||| do_trans_simple_utf8||| do_trans_simple||| do_trans||| do_vecget||| do_vecset||| do_vop||| docatch_body||| docatch||| doeval||| dofile||| dofindlabel||| doform||| doing_taint||5.008001|n dooneliner||| doopen_pm||| doparseform||| dopoptoeval||| dopoptogiven||| dopoptolabel||| dopoptoloop||| dopoptosub_at||| dopoptosub||| dopoptowhen||| doref||5.009003| dounwind||| dowantarray||| dump_all||5.006000| dump_eval||5.006000| dump_exec_pos||| dump_fds||| dump_form||5.006000| dump_indent||5.006000|v dump_mstats||| dump_packsubs||5.006000| dump_sub||5.006000| dump_sv_child||| dump_trie_interim_list||| dump_trie_interim_table||| dump_trie||| dump_vindent||5.006000| dumpuntil||| dup_attrlist||| emulate_eaccess||| eval_pv|5.006000||p eval_sv|5.006000||p exec_failed||| expect_number||| fbm_compile||5.005000| fbm_instr||5.005000| fd_on_nosuid_fs||| feature_is_enabled||| filter_add||| filter_del||| filter_gets||| filter_read||| find_array_subscript||| find_beginning||| find_byclass||| find_hash_subscript||| find_in_my_stash||| find_runcv||| find_rundefsvoffset||5.009002| find_script||| find_uninit_var||| first_symbol|||n fold_constants||| forbid_setid||| force_ident||| force_list||| force_next||| force_version||| force_word||| form_nocontext|||vn form||5.004000|v fp_dup||| fprintf_nocontext|||vn free_global_struct||| free_tied_hv_pool||| free_tmps||| gen_constant_list||| get_arena||| get_av|5.006000||p get_context||5.006000|n get_cv|5.006000||p get_db_sub||| get_debug_opts||| get_hash_seed||| get_hv|5.006000||p get_mstats||| get_no_modify||| get_num||| get_op_descs||5.005000| get_op_names||5.005000| get_opargs||| get_ppaddr||5.006000| get_sv|5.006000||p get_vtbl||5.005030| getcwd_sv||5.007002| getenv_len||| glob_2number||| glob_2pv||| glob_assign_glob||| glob_assign_ref||| gp_dup||| gp_free||| gp_ref||| grok_bin|5.007003||p grok_hex|5.007003||p grok_number|5.007002||p grok_numeric_radix|5.007002||p grok_oct|5.007003||p group_end||| gv_AVadd||| gv_HVadd||| gv_IOadd||| gv_SVadd||| gv_autoload4||5.004000| gv_check||| gv_const_sv||5.009003| gv_dump||5.006000| gv_efullname3||5.004000| gv_efullname4||5.006001| gv_efullname||| gv_ename||| gv_fetchfile||| gv_fetchmeth_autoload||5.007003| gv_fetchmethod_autoload||5.004000| gv_fetchmethod||| gv_fetchmeth||| gv_fetchpvn_flags||5.009002| gv_fetchpv||| gv_fetchsv||5.009002| gv_fullname3||5.004000| gv_fullname4||5.006001| gv_fullname||| gv_handler||5.007001| gv_init_sv||| gv_init||| gv_name_set||5.009004| gv_stashpvn|5.004000||p gv_stashpvs||5.009003| gv_stashpv||| gv_stashsv||| he_dup||| hek_dup||| hfreeentries||| hsplit||| hv_assert||5.009001| hv_auxinit|||n hv_backreferences_p||| hv_clear_placeholders||5.009001| hv_clear||| hv_copy_hints_hv||| hv_delayfree_ent||5.004000| hv_delete_common||| hv_delete_ent||5.004000| hv_delete||| hv_eiter_p||5.009003| hv_eiter_set||5.009003| hv_exists_ent||5.004000| hv_exists||| hv_fetch_common||| hv_fetch_ent||5.004000| hv_fetchs|5.009003||p hv_fetch||| hv_free_ent||5.004000| hv_iterinit||| hv_iterkeysv||5.004000| hv_iterkey||| hv_iternext_flags||5.008000| hv_iternextsv||| hv_iternext||| hv_iterval||| hv_kill_backrefs||| hv_ksplit||5.004000| hv_magic_check|||n hv_magic_uvar_xkey||| hv_magic||| hv_name_set||5.009003| hv_notallowed||| hv_placeholders_get||5.009003| hv_placeholders_p||5.009003| hv_placeholders_set||5.009003| hv_riter_p||5.009003| hv_riter_set||5.009003| hv_scalar||5.009001| hv_store_ent||5.004000| hv_store_flags||5.008000| hv_stores|5.009004||p hv_store||| hv_undef||| ibcmp_locale||5.004000| ibcmp_utf8||5.007003| ibcmp||| incl_perldb||| incline||| incpush_if_exists||| incpush||| ingroup||| init_argv_symbols||| init_debugger||| init_global_struct||| init_i18nl10n||5.006000| init_i18nl14n||5.006000| init_ids||| init_interp||| init_lexer||| init_main_stash||| init_perllib||| init_postdump_symbols||| init_predump_symbols||| init_stacks||5.005000| init_tm||5.007002| instr||| intro_my||| intuit_method||| intuit_more||| invert||| io_close||| isALNUM||| isALPHA||| isDIGIT||| isLOWER||| isSPACE||| isUPPER||| is_an_int||| is_gv_magical_sv||| is_gv_magical||| is_handle_constructor|||n is_list_assignment||| is_lvalue_sub||5.007001| is_uni_alnum_lc||5.006000| is_uni_alnumc_lc||5.006000| is_uni_alnumc||5.006000| is_uni_alnum||5.006000| is_uni_alpha_lc||5.006000| is_uni_alpha||5.006000| is_uni_ascii_lc||5.006000| is_uni_ascii||5.006000| is_uni_cntrl_lc||5.006000| is_uni_cntrl||5.006000| is_uni_digit_lc||5.006000| is_uni_digit||5.006000| is_uni_graph_lc||5.006000| is_uni_graph||5.006000| is_uni_idfirst_lc||5.006000| is_uni_idfirst||5.006000| is_uni_lower_lc||5.006000| is_uni_lower||5.006000| is_uni_print_lc||5.006000| is_uni_print||5.006000| is_uni_punct_lc||5.006000| is_uni_punct||5.006000| is_uni_space_lc||5.006000| is_uni_space||5.006000| is_uni_upper_lc||5.006000| is_uni_upper||5.006000| is_uni_xdigit_lc||5.006000| is_uni_xdigit||5.006000| is_utf8_alnumc||5.006000| is_utf8_alnum||5.006000| is_utf8_alpha||5.006000| is_utf8_ascii||5.006000| is_utf8_char_slow|||n is_utf8_char||5.006000| is_utf8_cntrl||5.006000| is_utf8_common||| is_utf8_digit||5.006000| is_utf8_graph||5.006000| is_utf8_idcont||5.008000| is_utf8_idfirst||5.006000| is_utf8_lower||5.006000| is_utf8_mark||5.006000| is_utf8_print||5.006000| is_utf8_punct||5.006000| is_utf8_space||5.006000| is_utf8_string_loclen||5.009003| is_utf8_string_loc||5.008001| is_utf8_string||5.006001| is_utf8_upper||5.006000| is_utf8_xdigit||5.006000| isa_lookup||| items|||n ix|||n jmaybe||| join_exact||| keyword||| leave_scope||| lex_end||| lex_start||| linklist||| listkids||| list||| load_module_nocontext|||vn load_module||5.006000|v localize||| looks_like_bool||| looks_like_number||| lop||| mPUSHi|5.009002||p mPUSHn|5.009002||p mPUSHp|5.009002||p mPUSHu|5.009002||p mXPUSHi|5.009002||p mXPUSHn|5.009002||p mXPUSHp|5.009002||p mXPUSHu|5.009002||p mad_free||| madlex||| madparse||| magic_clear_all_env||| magic_clearenv||| magic_clearhint||| magic_clearpack||| magic_clearsig||| magic_dump||5.006000| magic_existspack||| magic_freearylen_p||| magic_freeovrld||| magic_freeregexp||| magic_getarylen||| magic_getdefelem||| magic_getnkeys||| magic_getpack||| magic_getpos||| magic_getsig||| magic_getsubstr||| magic_gettaint||| magic_getuvar||| magic_getvec||| magic_get||| magic_killbackrefs||| magic_len||| magic_methcall||| magic_methpack||| magic_nextpack||| magic_regdata_cnt||| magic_regdatum_get||| magic_regdatum_set||| magic_scalarpack||| magic_set_all_env||| magic_setamagic||| magic_setarylen||| magic_setbm||| magic_setcollxfrm||| magic_setdbline||| magic_setdefelem||| magic_setenv||| magic_setfm||| magic_setglob||| magic_sethint||| magic_setisa||| magic_setmglob||| magic_setnkeys||| magic_setpack||| magic_setpos||| magic_setregexp||| magic_setsig||| magic_setsubstr||| magic_settaint||| magic_setutf8||| magic_setuvar||| magic_setvec||| magic_set||| magic_sizepack||| magic_wipepack||| magicname||| make_matcher||| make_trie_failtable||| make_trie||| malloced_size|||n malloc||5.007002|n markstack_grow||| matcher_matches_sv||| measure_struct||| memEQ|5.004000||p memNE|5.004000||p mem_collxfrm||| mess_alloc||| mess_nocontext|||vn mess||5.006000|v method_common||| mfree||5.007002|n mg_clear||| mg_copy||| mg_dup||| mg_find||| mg_free||| mg_get||| mg_length||5.005000| mg_localize||| mg_magical||| mg_set||| mg_size||5.005000| mini_mktime||5.007002| missingterm||| mode_from_discipline||| modkids||| mod||| more_bodies||| more_sv||| moreswitches||| mul128||| mulexp10|||n my_atof2||5.007002| my_atof||5.006000| my_attrs||| my_bcopy|||n my_betoh16|||n my_betoh32|||n my_betoh64|||n my_betohi|||n my_betohl|||n my_betohs|||n my_bzero|||n my_chsize||| my_clearenv||| my_cxt_init||| my_exit_jump||| my_exit||| my_failure_exit||5.004000| my_fflush_all||5.006000| my_fork||5.007003|n my_htobe16|||n my_htobe32|||n my_htobe64|||n my_htobei|||n my_htobel|||n my_htobes|||n my_htole16|||n my_htole32|||n my_htole64|||n my_htolei|||n my_htolel|||n my_htoles|||n my_htonl||| my_kid||| my_letoh16|||n my_letoh32|||n my_letoh64|||n my_letohi|||n my_letohl|||n my_letohs|||n my_lstat||| my_memcmp||5.004000|n my_memset|||n my_ntohl||| my_pclose||5.004000| my_popen_list||5.007001| my_popen||5.004000| my_setenv||| my_snprintf|5.009004||pvn my_socketpair||5.007003|n my_sprintf||5.009003|vn my_stat||| my_strftime||5.007002| my_strlcat|5.009004||pn my_strlcpy|5.009004||pn my_swabn|||n my_swap||| my_unexec||| my_vsnprintf||5.009004|n my||| need_utf8|||n newANONATTRSUB||5.006000| newANONHASH||| newANONLIST||| newANONSUB||| newASSIGNOP||| newATTRSUB||5.006000| newAVREF||| newAV||| newBINOP||| newCONDOP||| newCONSTSUB|5.004050||p newCVREF||| newDEFSVOP||| newFORM||| newFOROP||| newGIVENOP||5.009003| newGIVWHENOP||| newGP||| newGVOP||| newGVREF||| newGVgen||| newHVREF||| newHVhv||5.005000| newHV||| newIO||| newLISTOP||| newLOGOP||| newLOOPEX||| newLOOPOP||| newMADPROP||| newMADsv||| newMYSUB||| newNULLLIST||| newOP||| newPADOP||5.006000| newPMOP||| newPROG||| newPVOP||| newRANGE||| newRV_inc|5.004000||p newRV_noinc|5.004000||p newRV||| newSLICEOP||| newSTATEOP||| newSUB||| newSVOP||| newSVREF||| newSVhek||5.009003| newSViv||| newSVnv||| newSVpvf_nocontext|||vn newSVpvf||5.004000|v newSVpvn_share||5.007001| newSVpvn|5.004050||p newSVpvs_share||5.009003| newSVpvs|5.009003||p newSVpv||| newSVrv||| newSVsv||| newSVuv|5.006000||p newSV||| newTOKEN||| newUNOP||| newWHENOP||5.009003| newWHILEOP||5.009003| newXS_flags||5.009004| newXSproto||5.006000| newXS||5.006000| new_collate||5.006000| new_constant||| new_ctype||5.006000| new_he||| new_logop||| new_numeric||5.006000| new_stackinfo||5.005000| new_version||5.009000| new_warnings_bitfield||| next_symbol||| nextargv||| nextchar||| ninstr||| no_bareword_allowed||| no_fh_allowed||| no_op||| not_a_number||| nothreadhook||5.008000| nuke_stacks||| num_overflow|||n offer_nice_chunk||| oopsAV||| oopsCV||| oopsHV||| op_clear||| op_const_sv||| op_dump||5.006000| op_free||| op_getmad_weak||| op_getmad||| op_null||5.007002| op_refcnt_lock||5.009002| op_refcnt_unlock||5.009002| op_xmldump||| open_script||| pMY_CXT_|5.007003||p pMY_CXT|5.007003||p pTHX_|5.006000||p pTHX|5.006000||p packWARN|5.007003||p pack_cat||5.007003| pack_rec||| package||| packlist||5.008001| pad_add_anon||| pad_add_name||| pad_alloc||| pad_block_start||| pad_check_dup||| pad_compname_type||| pad_findlex||| pad_findmy||| pad_fixup_inner_anons||| pad_free||| pad_leavemy||| pad_new||| pad_peg|||n pad_push||| pad_reset||| pad_setsv||| pad_sv||5.009004| pad_swipe||| pad_tidy||| pad_undef||| parse_body||| parse_unicode_opts||| path_is_absolute|||n peep||| pending_ident||| perl_alloc_using|||n perl_alloc|||n perl_clone_using|||n perl_clone|||n perl_construct|||n perl_destruct||5.007003|n perl_free|||n perl_parse||5.006000|n perl_run|||n pidgone||| pm_description||| pmflag||| pmop_dump||5.006000| pmop_xmldump||| pmruntime||| pmtrans||| pop_scope||| pregcomp||| pregexec||| pregfree||| prepend_elem||| prepend_madprops||| printbuf||| printf_nocontext|||vn ptr_table_clear||| ptr_table_fetch||| ptr_table_find|||n ptr_table_free||| ptr_table_new||| ptr_table_split||| ptr_table_store||| push_scope||| put_byte||| pv_display||5.006000| pv_escape||5.009004| pv_pretty||5.009004| pv_uni_display||5.007003| qerror||| qsortsvu||| re_croak2||| re_dup||| re_intuit_start||5.006000| re_intuit_string||5.006000| realloc||5.007002|n reentrant_free||| reentrant_init||| reentrant_retry|||vn reentrant_size||| ref_array_or_hash||| refcounted_he_chain_2hv||| refcounted_he_fetch||| refcounted_he_free||| refcounted_he_new||| refcounted_he_value||| refkids||| refto||| ref||5.009003| reg_node||| reganode||| regatom||| regbranch||| regclass_swash||5.009004| regclass||| regcppop||| regcppush||| regcurly|||n regdump||5.005000| regexec_flags||5.005000| reghop3|||n reghopmaybe3|||n reginclass||| reginitcolors||5.006000| reginsert||| regmatch||| regnext||5.005000| regpiece||| regpposixcc||| regprop||| regrepeat||| regtail_study||| regtail||| regtry||| reguni||| regwhite|||n reg||| repeatcpy||| report_evil_fh||| report_uninit||| require_errno||| require_pv||5.006000| restore_magic||| rninstr||| rsignal_restore||| rsignal_save||| rsignal_state||5.004000| rsignal||5.004000| run_body||| run_user_filter||| runops_debug||5.005000| runops_standard||5.005000| rvpv_dup||| rxres_free||| rxres_restore||| rxres_save||| safesyscalloc||5.006000|n safesysfree||5.006000|n safesysmalloc||5.006000|n safesysrealloc||5.006000|n same_dirent||| save_I16||5.004000| save_I32||| save_I8||5.006000| save_aelem||5.004050| save_alloc||5.006000| save_aptr||| save_ary||| save_bool||5.008001| save_clearsv||| save_delete||| save_destructor_x||5.006000| save_destructor||5.006000| save_freeop||| save_freepv||| save_freesv||| save_generic_pvref||5.006001| save_generic_svref||5.005030| save_gp||5.004000| save_hash||| save_hek_flags|||n save_helem||5.004050| save_hints||5.005000| save_hptr||| save_int||| save_item||| save_iv||5.005000| save_lines||| save_list||| save_long||| save_magic||| save_mortalizesv||5.007001| save_nogv||| save_op||| save_padsv||5.007001| save_pptr||| save_re_context||5.006000| save_scalar_at||| save_scalar||| save_set_svflags||5.009000| save_shared_pvref||5.007003| save_sptr||| save_svref||| save_vptr||5.006000| savepvn||| savepvs||5.009003| savepv||| savesharedpv||5.007003| savestack_grow_cnt||5.008001| savestack_grow||| savesvpv||5.009002| sawparens||| scalar_mod_type|||n scalarboolean||| scalarkids||| scalarseq||| scalarvoid||| scalar||| scan_bin||5.006000| scan_commit||| scan_const||| scan_formline||| scan_heredoc||| scan_hex||| scan_ident||| scan_inputsymbol||| scan_num||5.007001| scan_oct||| scan_pat||| scan_str||| scan_subst||| scan_trans||| scan_version||5.009001| scan_vstring||5.008001| scan_word||| scope||| screaminstr||5.005000| seed||5.008001| sequence_num||| sequence_tail||| sequence||| set_context||5.006000|n set_csh||| set_numeric_local||5.006000| set_numeric_radix||5.006000| set_numeric_standard||5.006000| setdefout||| setenv_getix||| share_hek_flags||| share_hek||5.004000| si_dup||| sighandler|||n simplify_sort||| skipspace0||| skipspace1||| skipspace2||| skipspace||| sortcv_stacked||| sortcv_xsub||| sortcv||| sortsv_flags||5.009003| sortsv||5.007003| space_join_names_mortal||| ss_dup||| stack_grow||| start_force||| start_glob||| start_subparse||5.004000| stashpv_hvname_match||5.009004| stdize_locale||| strEQ||| strGE||| strGT||| strLE||| strLT||| strNE||| str_to_version||5.006000| stringify_regexp||| strip_return||| strnEQ||| strnNE||| study_chunk||| sub_crush_depth||| sublex_done||| sublex_push||| sublex_start||| sv_2bool||| sv_2cv||| sv_2io||| sv_2iuv_common||| sv_2iuv_non_preserve||| sv_2iv_flags||5.009001| sv_2iv||| sv_2mortal||| sv_2nv||| sv_2pv_flags||5.007002| sv_2pv_nolen|5.006000||p sv_2pvbyte_nolen||| sv_2pvbyte|5.006000||p sv_2pvutf8_nolen||5.006000| sv_2pvutf8||5.006000| sv_2pv||| sv_2uv_flags||5.009001| sv_2uv|5.004000||p sv_add_arena||| sv_add_backref||| sv_backoff||| sv_bless||| sv_cat_decode||5.008001| sv_catpv_mg|5.004050||p sv_catpvf_mg_nocontext|||pvn sv_catpvf_mg|5.006000|5.004000|pv sv_catpvf_nocontext|||vn sv_catpvf||5.004000|v sv_catpvn_flags||5.007002| sv_catpvn_mg|5.004050||p sv_catpvn_nomg|5.007002||p sv_catpvn||| sv_catpvs|5.009003||p sv_catpv||| sv_catsv_flags||5.007002| sv_catsv_mg|5.004050||p sv_catsv_nomg|5.007002||p sv_catsv||| sv_catxmlpvn||| sv_catxmlsv||| sv_chop||| sv_clean_all||| sv_clean_objs||| sv_clear||| sv_cmp_locale||5.004000| sv_cmp||| sv_collxfrm||| sv_compile_2op||5.008001| sv_copypv||5.007003| sv_dec||| sv_del_backref||| sv_derived_from||5.004000| sv_does||5.009004| sv_dump||| sv_dup||| sv_eq||| sv_exp_grow||| sv_force_normal_flags||5.007001| sv_force_normal||5.006000| sv_free2||| sv_free_arenas||| sv_free||| sv_gets||5.004000| sv_grow||| sv_i_ncmp||| sv_inc||| sv_insert||| sv_isa||| sv_isobject||| sv_iv||5.005000| sv_kill_backrefs||| sv_len_utf8||5.006000| sv_len||| sv_magicext||5.007003| sv_magic||| sv_mortalcopy||| sv_ncmp||| sv_newmortal||| sv_newref||| sv_nolocking||5.007003| sv_nosharing||5.007003| sv_nounlocking||| sv_nv||5.005000| sv_peek||5.005000| sv_pos_b2u_forwards||| sv_pos_b2u_midway||| sv_pos_b2u||5.006000| sv_pos_u2b_cached||| sv_pos_u2b_forwards|||n sv_pos_u2b_midway|||n sv_pos_u2b||5.006000| sv_pvbyten_force||5.006000| sv_pvbyten||5.006000| sv_pvbyte||5.006000| sv_pvn_force_flags||5.007002| sv_pvn_force|||p sv_pvn_nomg|5.007003||p sv_pvn|5.005000||p sv_pvutf8n_force||5.006000| sv_pvutf8n||5.006000| sv_pvutf8||5.006000| sv_pv||5.006000| sv_recode_to_utf8||5.007003| sv_reftype||| sv_release_COW||| sv_release_IVX||| sv_replace||| sv_report_used||| sv_reset||| sv_rvweaken||5.006000| sv_setiv_mg|5.004050||p sv_setiv||| sv_setnv_mg|5.006000||p sv_setnv||| sv_setpv_mg|5.004050||p sv_setpvf_mg_nocontext|||pvn sv_setpvf_mg|5.006000|5.004000|pv sv_setpvf_nocontext|||vn sv_setpvf||5.004000|v sv_setpviv_mg||5.008001| sv_setpviv||5.008001| sv_setpvn_mg|5.004050||p sv_setpvn||| sv_setpvs|5.009004||p sv_setpv||| sv_setref_iv||| sv_setref_nv||| sv_setref_pvn||| sv_setref_pv||| sv_setref_uv||5.007001| sv_setsv_cow||| sv_setsv_flags||5.007002| sv_setsv_mg|5.004050||p sv_setsv_nomg|5.007002||p sv_setsv||| sv_setuv_mg|5.004050||p sv_setuv|5.004000||p sv_tainted||5.004000| sv_taint||5.004000| sv_true||5.005000| sv_unglob||| sv_uni_display||5.007003| sv_unmagic||| sv_unref_flags||5.007001| sv_unref||| sv_untaint||5.004000| sv_upgrade||| sv_usepvn_flags||5.009004| sv_usepvn_mg|5.004050||p sv_usepvn||| sv_utf8_decode||5.006000| sv_utf8_downgrade||5.006000| sv_utf8_encode||5.006000| sv_utf8_upgrade_flags||5.007002| sv_utf8_upgrade||5.007001| sv_uv|5.005000||p sv_vcatpvf_mg|5.006000|5.004000|p sv_vcatpvfn||5.004000| sv_vcatpvf|5.006000|5.004000|p sv_vsetpvf_mg|5.006000|5.004000|p sv_vsetpvfn||5.004000| sv_vsetpvf|5.006000|5.004000|p sv_xmlpeek||| svtype||| swallow_bom||| swash_fetch||5.007002| swash_get||| swash_init||5.006000| sys_intern_clear||| sys_intern_dup||| sys_intern_init||| taint_env||| taint_proper||| tmps_grow||5.006000| toLOWER||| toUPPER||| to_byte_substr||| to_uni_fold||5.007003| to_uni_lower_lc||5.006000| to_uni_lower||5.007003| to_uni_title_lc||5.006000| to_uni_title||5.007003| to_uni_upper_lc||5.006000| to_uni_upper||5.007003| to_utf8_case||5.007003| to_utf8_fold||5.007003| to_utf8_lower||5.007003| to_utf8_substr||| to_utf8_title||5.007003| to_utf8_upper||5.007003| token_free||| token_getmad||| tokenize_use||| tokeq||| tokereport||| too_few_arguments||| too_many_arguments||| uiv_2buf|||n unlnk||| unpack_rec||| unpack_str||5.007003| unpackstring||5.008001| unshare_hek_or_pvn||| unshare_hek||| unsharepvn||5.004000| unwind_handler_stack||| upg_version||5.009000| usage||| utf16_to_utf8_reversed||5.006001| utf16_to_utf8||5.006001| utf8_distance||5.006000| utf8_hop||5.006000| utf8_length||5.007001| utf8_mg_pos_cache_update||| utf8_to_bytes||5.006001| utf8_to_uvchr||5.007001| utf8_to_uvuni||5.007001| utf8n_to_uvchr||| utf8n_to_uvuni||5.007001| utilize||| uvchr_to_utf8_flags||5.007003| uvchr_to_utf8||| uvuni_to_utf8_flags||5.007003| uvuni_to_utf8||5.007001| validate_suid||| varname||| vcmp||5.009000| vcroak||5.006000| vdeb||5.007003| vdie_common||| vdie_croak_common||| vdie||| vform||5.006000| visit||| vivify_defelem||| vivify_ref||| vload_module||5.006000| vmess||5.006000| vnewSVpvf|5.006000|5.004000|p vnormal||5.009002| vnumify||5.009000| vstringify||5.009000| vverify||5.009003| vwarner||5.006000| vwarn||5.006000| wait4pid||| warn_nocontext|||vn warner_nocontext|||vn warner|5.006000|5.004000|pv warn|||v watch||| whichsig||| write_no_mem||| write_to_stderr||| xmldump_all||| xmldump_attr||| xmldump_eval||| xmldump_form||| xmldump_indent|||v xmldump_packsubs||| xmldump_sub||| xmldump_vindent||| yyerror||| yylex||| yyparse||| yywarn||| ); if (exists $opt{'list-unsupported'}) { my $f; for $f (sort { lc $a cmp lc $b } keys %API) { next unless $API{$f}{todo}; print "$f ", '.'x(40-length($f)), " ", format_version($API{$f}{todo}), "\n"; } exit 0; } # Scan for possible replacement candidates my(%replace, %need, %hints, %depends); my $replace = 0; my $hint = ''; while () { if ($hint) { if (m{^\s*\*\s(.*?)\s*$}) { $hints{$hint} ||= ''; # suppress warning with older perls $hints{$hint} .= "$1\n"; } else { $hint = ''; } } $hint = $1 if m{^\s*$rccs\sHint:\s+(\w+)\s*$}; $replace = $1 if m{^\s*$rccs\s+Replace:\s+(\d+)\s+$rcce\s*$}; $replace{$2} = $1 if $replace and m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+)}; $replace{$2} = $1 if m{^\s*#\s*define\s+(\w+)(?:\([^)]*\))?\s+(\w+).*$rccs\s+Replace\s+$rcce}; $replace{$1} = $2 if m{^\s*$rccs\s+Replace (\w+) with (\w+)\s+$rcce\s*$}; if (m{^\s*$rccs\s+(\w+)\s+depends\s+on\s+(\w+(\s*,\s*\w+)*)\s+$rcce\s*$}) { push @{$depends{$1}}, map { s/\s+//g; $_ } split /,/, $2; } $need{$1} = 1 if m{^#if\s+defined\(NEED_(\w+)(?:_GLOBAL)?\)}; } if (exists $opt{'api-info'}) { my $f; my $count = 0; my $match = $opt{'api-info'} =~ m!^/(.*)/$! ? $1 : "^\Q$opt{'api-info'}\E\$"; for $f (sort { lc $a cmp lc $b } keys %API) { next unless $f =~ /$match/; print "\n=== $f ===\n\n"; my $info = 0; if ($API{$f}{base} || $API{$f}{todo}) { my $base = format_version($API{$f}{base} || $API{$f}{todo}); print "Supported at least starting from perl-$base.\n"; $info++; } if ($API{$f}{provided}) { my $todo = $API{$f}{todo} ? format_version($API{$f}{todo}) : "5.003"; print "Support by $ppport provided back to perl-$todo.\n"; print "Support needs to be explicitly requested by NEED_$f.\n" if exists $need{$f}; print "Depends on: ", join(', ', @{$depends{$f}}), ".\n" if exists $depends{$f}; print "$hints{$f}" if exists $hints{$f}; $info++; } unless ($info) { print "No portability information available.\n"; } $count++; } if ($count > 0) { print "\n"; } else { print "Found no API matching '$opt{'api-info'}'.\n"; } exit 0; } if (exists $opt{'list-provided'}) { my $f; for $f (sort { lc $a cmp lc $b } keys %API) { next unless $API{$f}{provided}; my @flags; push @flags, 'explicit' if exists $need{$f}; push @flags, 'depend' if exists $depends{$f}; push @flags, 'hint' if exists $hints{$f}; my $flags = @flags ? ' ['.join(', ', @flags).']' : ''; print "$f$flags\n"; } exit 0; } my @files; my @srcext = qw( xs c h cc cpp ); my $srcext = join '|', @srcext; if (@ARGV) { my %seen; @files = grep { -f && !exists $seen{$_} } map { glob $_ } @ARGV; } else { eval { require File::Find; File::Find::find(sub { $File::Find::name =~ /\.($srcext)$/i and push @files, $File::Find::name; }, '.'); }; if ($@) { @files = map { glob "*.$_" } @srcext; } } if (!@ARGV || $opt{filter}) { my(@in, @out); my %xsc = map { /(.*)\.xs$/ ? ("$1.c" => 1, "$1.cc" => 1) : () } @files; for (@files) { my $out = exists $xsc{$_} || /\b\Q$ppport\E$/i || !/\.($srcext)$/i; push @{ $out ? \@out : \@in }, $_; } if (@ARGV && @out) { warning("Skipping the following files (use --nofilter to avoid this):\n| ", join "\n| ", @out); } @files = @in; } unless (@files) { die "No input files given!\n"; } my(%files, %global, %revreplace); %revreplace = reverse %replace; my $filename; my $patch_opened = 0; for $filename (@files) { unless (open IN, "<$filename") { warn "Unable to read from $filename: $!\n"; next; } info("Scanning $filename ..."); my $c = do { local $/; }; close IN; my %file = (orig => $c, changes => 0); # temporarily remove C comments from the code my @ccom; $c =~ s{ ( [^"'/]+ | (?:"[^"\\]*(?:\\.[^"\\]*)*" [^"'/]*)+ | (?:'[^'\\]*(?:\\.[^'\\]*)*' [^"'/]*)+ ) | (/ (?: \*[^*]*\*+(?:[^$ccs][^*]*\*+)* / | /[^\r\n]* )) }{ defined $2 and push @ccom, $2; defined $1 ? $1 : "$ccs$#ccom$cce"; }egsx; $file{ccom} = \@ccom; $file{code} = $c; $file{has_inc_ppport} = ($c =~ /#.*include.*\Q$ppport\E/); my $func; for $func (keys %API) { my $match = $func; $match .= "|$revreplace{$func}" if exists $revreplace{$func}; if ($c =~ /\b(?:Perl_)?($match)\b/) { $file{uses_replace}{$1}++ if exists $revreplace{$func} && $1 eq $revreplace{$func}; $file{uses_Perl}{$func}++ if $c =~ /\bPerl_$func\b/; if (exists $API{$func}{provided}) { if (!exists $API{$func}{base} || $API{$func}{base} > $opt{'compat-version'}) { $file{uses}{$func}++; my @deps = rec_depend($func); if (@deps) { $file{uses_deps}{$func} = \@deps; for (@deps) { $file{uses}{$_} = 0 unless exists $file{uses}{$_}; } } for ($func, @deps) { if (exists $need{$_}) { $file{needs}{$_} = 'static'; } } } } if (exists $API{$func}{todo} && $API{$func}{todo} > $opt{'compat-version'}) { if ($c =~ /\b$func\b/) { $file{uses_todo}{$func}++; } } } } while ($c =~ /^$HS*#$HS*define$HS+(NEED_(\w+?)(_GLOBAL)?)\b/mg) { if (exists $need{$2}) { $file{defined $3 ? 'needed_global' : 'needed_static'}{$2}++; } else { warning("Possibly wrong #define $1 in $filename"); } } for (qw(uses needs uses_todo needed_global needed_static)) { for $func (keys %{$file{$_}}) { push @{$global{$_}{$func}}, $filename; } } $files{$filename} = \%file; } # Globally resolve NEED_'s my $need; for $need (keys %{$global{needs}}) { if (@{$global{needs}{$need}} > 1) { my @targets = @{$global{needs}{$need}}; my @t = grep $files{$_}{needed_global}{$need}, @targets; @targets = @t if @t; @t = grep /\.xs$/i, @targets; @targets = @t if @t; my $target = shift @targets; $files{$target}{needs}{$need} = 'global'; for (@{$global{needs}{$need}}) { $files{$_}{needs}{$need} = 'extern' if $_ ne $target; } } } for $filename (@files) { exists $files{$filename} or next; info("=== Analyzing $filename ==="); my %file = %{$files{$filename}}; my $func; my $c = $file{code}; for $func (sort keys %{$file{uses_Perl}}) { if ($API{$func}{varargs}) { my $changes = ($c =~ s{\b(Perl_$func\s*\(\s*)(?!aTHX_?)(\)|[^\s)]*\))} { $1 . ($2 eq ')' ? 'aTHX' : 'aTHX_ ') . $2 }ge); if ($changes) { warning("Doesn't pass interpreter argument aTHX to Perl_$func"); $file{changes} += $changes; } } else { warning("Uses Perl_$func instead of $func"); $file{changes} += ($c =~ s{\bPerl_$func(\s*)\((\s*aTHX_?)?\s*} {$func$1(}g); } } for $func (sort keys %{$file{uses_replace}}) { warning("Uses $func instead of $replace{$func}"); $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g); } for $func (sort keys %{$file{uses}}) { next unless $file{uses}{$func}; # if it's only a dependency if (exists $file{uses_deps}{$func}) { diag("Uses $func, which depends on ", join(', ', @{$file{uses_deps}{$func}})); } elsif (exists $replace{$func}) { warning("Uses $func instead of $replace{$func}"); $file{changes} += ($c =~ s/\b$func\b/$replace{$func}/g); } else { diag("Uses $func"); } hint($func); } for $func (sort keys %{$file{uses_todo}}) { warning("Uses $func, which may not be portable below perl ", format_version($API{$func}{todo})); } for $func (sort keys %{$file{needed_static}}) { my $message = ''; if (not exists $file{uses}{$func}) { $message = "No need to define NEED_$func if $func is never used"; } elsif (exists $file{needs}{$func} && $file{needs}{$func} ne 'static') { $message = "No need to define NEED_$func when already needed globally"; } if ($message) { diag($message); $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_$func\b.*$LF//mg); } } for $func (sort keys %{$file{needed_global}}) { my $message = ''; if (not exists $global{uses}{$func}) { $message = "No need to define NEED_${func}_GLOBAL if $func is never used"; } elsif (exists $file{needs}{$func}) { if ($file{needs}{$func} eq 'extern') { $message = "No need to define NEED_${func}_GLOBAL when already needed globally"; } elsif ($file{needs}{$func} eq 'static') { $message = "No need to define NEED_${func}_GLOBAL when only used in this file"; } } if ($message) { diag($message); $file{changes} += ($c =~ s/^$HS*#$HS*define$HS+NEED_${func}_GLOBAL\b.*$LF//mg); } } $file{needs_inc_ppport} = keys %{$file{uses}}; if ($file{needs_inc_ppport}) { my $pp = ''; for $func (sort keys %{$file{needs}}) { my $type = $file{needs}{$func}; next if $type eq 'extern'; my $suffix = $type eq 'global' ? '_GLOBAL' : ''; unless (exists $file{"needed_$type"}{$func}) { if ($type eq 'global') { diag("Files [@{$global{needs}{$func}}] need $func, adding global request"); } else { diag("File needs $func, adding static request"); } $pp .= "#define NEED_$func$suffix\n"; } } if ($pp && ($c =~ s/^(?=$HS*#$HS*define$HS+NEED_\w+)/$pp/m)) { $pp = ''; $file{changes}++; } unless ($file{has_inc_ppport}) { diag("Needs to include '$ppport'"); $pp .= qq(#include "$ppport"\n) } if ($pp) { $file{changes} += ($c =~ s/^($HS*#$HS*define$HS+NEED_\w+.*?)^/$1$pp/ms) || ($c =~ s/^(?=$HS*#$HS*include.*\Q$ppport\E)/$pp/m) || ($c =~ s/^($HS*#$HS*include.*XSUB.*\s*?)^/$1$pp/m) || ($c =~ s/^/$pp/); } } else { if ($file{has_inc_ppport}) { diag("No need to include '$ppport'"); $file{changes} += ($c =~ s/^$HS*?#$HS*include.*\Q$ppport\E.*?$LF//m); } } # put back in our C comments my $ix; my $cppc = 0; my @ccom = @{$file{ccom}}; for $ix (0 .. $#ccom) { if (!$opt{cplusplus} && $ccom[$ix] =~ s!^//!!) { $cppc++; $file{changes} += $c =~ s/$rccs$ix$rcce/$ccs$ccom[$ix] $cce/; } else { $c =~ s/$rccs$ix$rcce/$ccom[$ix]/; } } if ($cppc) { my $s = $cppc != 1 ? 's' : ''; warning("Uses $cppc C++ style comment$s, which is not portable"); } if ($file{changes}) { if (exists $opt{copy}) { my $newfile = "$filename$opt{copy}"; if (-e $newfile) { error("'$newfile' already exists, refusing to write copy of '$filename'"); } else { local *F; if (open F, ">$newfile") { info("Writing copy of '$filename' with changes to '$newfile'"); print F $c; close F; } else { error("Cannot open '$newfile' for writing: $!"); } } } elsif (exists $opt{patch} || $opt{changes}) { if (exists $opt{patch}) { unless ($patch_opened) { if (open PATCH, ">$opt{patch}") { $patch_opened = 1; } else { error("Cannot open '$opt{patch}' for writing: $!"); delete $opt{patch}; $opt{changes} = 1; goto fallback; } } mydiff(\*PATCH, $filename, $c); } else { fallback: info("Suggested changes:"); mydiff(\*STDOUT, $filename, $c); } } else { my $s = $file{changes} == 1 ? '' : 's'; info("$file{changes} potentially required change$s detected"); } } else { info("Looks good"); } } close PATCH if $patch_opened; exit 0; sub mydiff { local *F = shift; my($file, $str) = @_; my $diff; if (exists $opt{diff}) { $diff = run_diff($opt{diff}, $file, $str); } if (!defined $diff and can_use('Text::Diff')) { $diff = Text::Diff::diff($file, \$str, { STYLE => 'Unified' }); $diff = <
$tmp") { print F $str; close F; if (open F, "$prog $file $tmp |") { while () { s/\Q$tmp\E/$file.patched/; $diff .= $_; } close F; unlink $tmp; return $diff; } unlink $tmp; } else { error("Cannot open '$tmp' for writing: $!"); } return undef; } sub can_use { eval "use @_;"; return $@ eq ''; } sub rec_depend { my $func = shift; my %seen; return () unless exists $depends{$func}; grep !$seen{$_}++, map { ($_, rec_depend($_)) } @{$depends{$func}}; } sub parse_version { my $ver = shift; if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) { return ($1, $2, $3); } elsif ($ver !~ /^\d+\.[\d_]+$/) { die "cannot parse version '$ver'\n"; } $ver =~ s/_//g; $ver =~ s/$/000000/; my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/; $v = int $v; $s = int $s; if ($r < 5 || ($r == 5 && $v < 6)) { if ($s % 10) { die "cannot parse version '$ver'\n"; } } return ($r, $v, $s); } sub format_version { my $ver = shift; $ver =~ s/$/000000/; my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/; $v = int $v; $s = int $s; if ($r < 5 || ($r == 5 && $v < 6)) { if ($s % 10) { die "invalid version '$ver'\n"; } $s /= 10; $ver = sprintf "%d.%03d", $r, $v; $s > 0 and $ver .= sprintf "_%02d", $s; return $ver; } return sprintf "%d.%d.%d", $r, $v, $s; } sub info { $opt{quiet} and return; print @_, "\n"; } sub diag { $opt{quiet} and return; $opt{diag} and print @_, "\n"; } sub warning { $opt{quiet} and return; print "*** ", @_, "\n"; } sub error { print "*** ERROR: ", @_, "\n"; } my %given_hints; sub hint { $opt{quiet} and return; $opt{hints} or return; my $func = shift; exists $hints{$func} or return; $given_hints{$func}++ and return; my $hint = $hints{$func}; $hint =~ s/^/ /mg; print " --- hint for $func ---\n", $hint; } sub usage { my($usage) = do { local(@ARGV,$/)=($0); <> } =~ /^=head\d$HS+SYNOPSIS\s*^(.*?)\s*^=/ms; my %M = ( 'I' => '*' ); $usage =~ s/^\s*perl\s+\S+/$^X $0/; $usage =~ s/([A-Z])<([^>]+)>/$M{$1}$2$M{$1}/g; print < }; my($copy) = $self =~ /^=head\d\s+COPYRIGHT\s*^(.*?)^=\w+/ms; $copy =~ s/^(?=\S+)/ /gms; $self =~ s/^$HS+Do NOT edit.*?(?=^-)/$copy/ms; $self =~ s/^SKIP.*(?=^__DATA__)/SKIP if (\@ARGV && \$ARGV[0] eq '--unstrip') { eval { require Devel::PPPort }; \$@ and die "Cannot require Devel::PPPort, please install.\\n"; if (\$Devel::PPPort::VERSION < $VERSION) { die "$0 was originally generated with Devel::PPPort $VERSION.\\n" . "Your Devel::PPPort is only version \$Devel::PPPort::VERSION.\\n" . "Please install a newer version, or --unstrip will not work.\\n"; } Devel::PPPort::WriteFile(\$0); exit 0; } print <$0" or die "cannot strip $0: $!\n"; print OUT $self; exit 0; } __DATA__ */ #ifndef _P_P_PORTABILITY_H_ #define _P_P_PORTABILITY_H_ #ifndef DPPP_NAMESPACE # define DPPP_NAMESPACE DPPP_ #endif #define DPPP_CAT2(x,y) CAT2(x,y) #define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name) #ifndef PERL_REVISION # if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION)) # define PERL_PATCHLEVEL_H_IMPLICIT # include # endif # if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL))) # include # endif # ifndef PERL_REVISION # define PERL_REVISION (5) /* Replace: 1 */ # define PERL_VERSION PATCHLEVEL # define PERL_SUBVERSION SUBVERSION /* Replace PERL_PATCHLEVEL with PERL_VERSION */ /* Replace: 0 */ # endif #endif #define PERL_BCDVERSION ((PERL_REVISION * 0x1000000L) + (PERL_VERSION * 0x1000L) + PERL_SUBVERSION) /* It is very unlikely that anyone will try to use this with Perl 6 (or greater), but who knows. */ #if PERL_REVISION != 5 # error ppport.h only works with Perl version 5 #endif /* PERL_REVISION != 5 */ #ifdef I_LIMITS # include #endif #ifndef PERL_UCHAR_MIN # define PERL_UCHAR_MIN ((unsigned char)0) #endif #ifndef PERL_UCHAR_MAX # ifdef UCHAR_MAX # define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX) # else # ifdef MAXUCHAR # define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR) # else # define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0) # endif # endif #endif #ifndef PERL_USHORT_MIN # define PERL_USHORT_MIN ((unsigned short)0) #endif #ifndef PERL_USHORT_MAX # ifdef USHORT_MAX # define PERL_USHORT_MAX ((unsigned short)USHORT_MAX) # else # ifdef MAXUSHORT # define PERL_USHORT_MAX ((unsigned short)MAXUSHORT) # else # ifdef USHRT_MAX # define PERL_USHORT_MAX ((unsigned short)USHRT_MAX) # else # define PERL_USHORT_MAX ((unsigned short)~(unsigned)0) # endif # endif # endif #endif #ifndef PERL_SHORT_MAX # ifdef SHORT_MAX # define PERL_SHORT_MAX ((short)SHORT_MAX) # else # ifdef MAXSHORT /* Often used in */ # define PERL_SHORT_MAX ((short)MAXSHORT) # else # ifdef SHRT_MAX # define PERL_SHORT_MAX ((short)SHRT_MAX) # else # define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1)) # endif # endif # endif #endif #ifndef PERL_SHORT_MIN # ifdef SHORT_MIN # define PERL_SHORT_MIN ((short)SHORT_MIN) # else # ifdef MINSHORT # define PERL_SHORT_MIN ((short)MINSHORT) # else # ifdef SHRT_MIN # define PERL_SHORT_MIN ((short)SHRT_MIN) # else # define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3)) # endif # endif # endif #endif #ifndef PERL_UINT_MAX # ifdef UINT_MAX # define PERL_UINT_MAX ((unsigned int)UINT_MAX) # else # ifdef MAXUINT # define PERL_UINT_MAX ((unsigned int)MAXUINT) # else # define PERL_UINT_MAX (~(unsigned int)0) # endif # endif #endif #ifndef PERL_UINT_MIN # define PERL_UINT_MIN ((unsigned int)0) #endif #ifndef PERL_INT_MAX # ifdef INT_MAX # define PERL_INT_MAX ((int)INT_MAX) # else # ifdef MAXINT /* Often used in */ # define PERL_INT_MAX ((int)MAXINT) # else # define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1)) # endif # endif #endif #ifndef PERL_INT_MIN # ifdef INT_MIN # define PERL_INT_MIN ((int)INT_MIN) # else # ifdef MININT # define PERL_INT_MIN ((int)MININT) # else # define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3)) # endif # endif #endif #ifndef PERL_ULONG_MAX # ifdef ULONG_MAX # define PERL_ULONG_MAX ((unsigned long)ULONG_MAX) # else # ifdef MAXULONG # define PERL_ULONG_MAX ((unsigned long)MAXULONG) # else # define PERL_ULONG_MAX (~(unsigned long)0) # endif # endif #endif #ifndef PERL_ULONG_MIN # define PERL_ULONG_MIN ((unsigned long)0L) #endif #ifndef PERL_LONG_MAX # ifdef LONG_MAX # define PERL_LONG_MAX ((long)LONG_MAX) # else # ifdef MAXLONG # define PERL_LONG_MAX ((long)MAXLONG) # else # define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1)) # endif # endif #endif #ifndef PERL_LONG_MIN # ifdef LONG_MIN # define PERL_LONG_MIN ((long)LONG_MIN) # else # ifdef MINLONG # define PERL_LONG_MIN ((long)MINLONG) # else # define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3)) # endif # endif #endif #if defined(HAS_QUAD) && (defined(convex) || defined(uts)) # ifndef PERL_UQUAD_MAX # ifdef ULONGLONG_MAX # define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX) # else # ifdef MAXULONGLONG # define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG) # else # define PERL_UQUAD_MAX (~(unsigned long long)0) # endif # endif # endif # ifndef PERL_UQUAD_MIN # define PERL_UQUAD_MIN ((unsigned long long)0L) # endif # ifndef PERL_QUAD_MAX # ifdef LONGLONG_MAX # define PERL_QUAD_MAX ((long long)LONGLONG_MAX) # else # ifdef MAXLONGLONG # define PERL_QUAD_MAX ((long long)MAXLONGLONG) # else # define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1)) # endif # endif # endif # ifndef PERL_QUAD_MIN # ifdef LONGLONG_MIN # define PERL_QUAD_MIN ((long long)LONGLONG_MIN) # else # ifdef MINLONGLONG # define PERL_QUAD_MIN ((long long)MINLONGLONG) # else # define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3)) # endif # endif # endif #endif /* This is based on code from 5.003 perl.h */ #ifdef HAS_QUAD # ifdef cray #ifndef IVTYPE # define IVTYPE int #endif #ifndef IV_MIN # define IV_MIN PERL_INT_MIN #endif #ifndef IV_MAX # define IV_MAX PERL_INT_MAX #endif #ifndef UV_MIN # define UV_MIN PERL_UINT_MIN #endif #ifndef UV_MAX # define UV_MAX PERL_UINT_MAX #endif # ifdef INTSIZE #ifndef IVSIZE # define IVSIZE INTSIZE #endif # endif # else # if defined(convex) || defined(uts) #ifndef IVTYPE # define IVTYPE long long #endif #ifndef IV_MIN # define IV_MIN PERL_QUAD_MIN #endif #ifndef IV_MAX # define IV_MAX PERL_QUAD_MAX #endif #ifndef UV_MIN # define UV_MIN PERL_UQUAD_MIN #endif #ifndef UV_MAX # define UV_MAX PERL_UQUAD_MAX #endif # ifdef LONGLONGSIZE #ifndef IVSIZE # define IVSIZE LONGLONGSIZE #endif # endif # else #ifndef IVTYPE # define IVTYPE long #endif #ifndef IV_MIN # define IV_MIN PERL_LONG_MIN #endif #ifndef IV_MAX # define IV_MAX PERL_LONG_MAX #endif #ifndef UV_MIN # define UV_MIN PERL_ULONG_MIN #endif #ifndef UV_MAX # define UV_MAX PERL_ULONG_MAX #endif # ifdef LONGSIZE #ifndef IVSIZE # define IVSIZE LONGSIZE #endif # endif # endif # endif #ifndef IVSIZE # define IVSIZE 8 #endif #ifndef PERL_QUAD_MIN # define PERL_QUAD_MIN IV_MIN #endif #ifndef PERL_QUAD_MAX # define PERL_QUAD_MAX IV_MAX #endif #ifndef PERL_UQUAD_MIN # define PERL_UQUAD_MIN UV_MIN #endif #ifndef PERL_UQUAD_MAX # define PERL_UQUAD_MAX UV_MAX #endif #else #ifndef IVTYPE # define IVTYPE long #endif #ifndef IV_MIN # define IV_MIN PERL_LONG_MIN #endif #ifndef IV_MAX # define IV_MAX PERL_LONG_MAX #endif #ifndef UV_MIN # define UV_MIN PERL_ULONG_MIN #endif #ifndef UV_MAX # define UV_MAX PERL_ULONG_MAX #endif #endif #ifndef IVSIZE # ifdef LONGSIZE # define IVSIZE LONGSIZE # else # define IVSIZE 4 /* A bold guess, but the best we can make. */ # endif #endif #ifndef UVTYPE # define UVTYPE unsigned IVTYPE #endif #ifndef UVSIZE # define UVSIZE IVSIZE #endif #ifndef sv_setuv # define sv_setuv(sv, uv) \ STMT_START { \ UV TeMpUv = uv; \ if (TeMpUv <= IV_MAX) \ sv_setiv(sv, TeMpUv); \ else \ sv_setnv(sv, (double)TeMpUv); \ } STMT_END #endif #ifndef newSVuv # define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv)) #endif #ifndef sv_2uv # define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv))) #endif #ifndef SvUVX # define SvUVX(sv) ((UV)SvIVX(sv)) #endif #ifndef SvUVXx # define SvUVXx(sv) SvUVX(sv) #endif #ifndef SvUV # define SvUV(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv)) #endif #ifndef SvUVx # define SvUVx(sv) ((PL_Sv = (sv)), SvUV(PL_Sv)) #endif /* Hint: sv_uv * Always use the SvUVx() macro instead of sv_uv(). */ #ifndef sv_uv # define sv_uv(sv) SvUVx(sv) #endif #ifndef XST_mUV # define XST_mUV(i,v) (ST(i) = sv_2mortal(newSVuv(v)) ) #endif #ifndef XSRETURN_UV # define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END #endif #ifndef PUSHu # define PUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG; } STMT_END #endif #ifndef XPUSHu # define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END #endif #ifdef HAS_MEMCMP #ifndef memNE # define memNE(s1,s2,l) (memcmp(s1,s2,l)) #endif #ifndef memEQ # define memEQ(s1,s2,l) (!memcmp(s1,s2,l)) #endif #else #ifndef memNE # define memNE(s1,s2,l) (bcmp(s1,s2,l)) #endif #ifndef memEQ # define memEQ(s1,s2,l) (!bcmp(s1,s2,l)) #endif #endif #ifndef MoveD # define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t)) #endif #ifndef CopyD # define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t)) #endif #ifdef HAS_MEMSET #ifndef ZeroD # define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t)) #endif #else #ifndef ZeroD # define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d) #endif #endif #ifndef PoisonWith # define PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t)) #endif #ifndef PoisonNew # define PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB) #endif #ifndef PoisonFree # define PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF) #endif #ifndef Poison # define Poison(d,n,t) PoisonFree(d,n,t) #endif #ifndef Newx # define Newx(v,n,t) New(0,v,n,t) #endif #ifndef Newxc # define Newxc(v,n,t,c) Newc(0,v,n,t,c) #endif #ifndef Newxz # define Newxz(v,n,t) Newz(0,v,n,t) #endif #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5))) /* Replace: 1 */ # define PL_DBsingle DBsingle # define PL_DBsub DBsub # define PL_Sv Sv # define PL_compiling compiling # define PL_copline copline # define PL_curcop curcop # define PL_curstash curstash # define PL_debstash debstash # define PL_defgv defgv # define PL_diehook diehook # define PL_dirty dirty # define PL_dowarn dowarn # define PL_errgv errgv # define PL_hexdigit hexdigit # define PL_hints hints # define PL_na na # define PL_no_modify no_modify # define PL_perl_destruct_level perl_destruct_level # define PL_perldb perldb # define PL_ppaddr ppaddr # define PL_rsfp_filters rsfp_filters # define PL_rsfp rsfp # define PL_stack_base stack_base # define PL_stack_sp stack_sp # define PL_stdingv stdingv # define PL_sv_arenaroot sv_arenaroot # define PL_sv_no sv_no # define PL_sv_undef sv_undef # define PL_sv_yes sv_yes # define PL_tainted tainted # define PL_tainting tainting /* Replace: 0 */ #endif #ifndef PERL_UNUSED_DECL # ifdef HASATTRIBUTE # if (defined(__GNUC__) && defined(__cplusplus)) || defined(__INTEL_COMPILER) # define PERL_UNUSED_DECL # else # define PERL_UNUSED_DECL __attribute__((unused)) # endif # else # define PERL_UNUSED_DECL # endif #endif #ifndef PERL_UNUSED_ARG # if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */ # include # define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x)) # else # define PERL_UNUSED_ARG(x) ((void)x) # endif #endif #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(x) ((void)x) #endif #ifndef PERL_UNUSED_CONTEXT # ifdef USE_ITHREADS # define PERL_UNUSED_CONTEXT PERL_UNUSED_ARG(my_perl) # else # define PERL_UNUSED_CONTEXT # endif #endif #ifndef NOOP # define NOOP /*EMPTY*/(void)0 #endif #ifndef dNOOP # define dNOOP extern int /*@unused@*/ Perl___notused PERL_UNUSED_DECL #endif #ifndef NVTYPE # if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) # define NVTYPE long double # else # define NVTYPE double # endif typedef NVTYPE NV; #endif #ifndef INT2PTR # if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE) # define PTRV UV # define INT2PTR(any,d) (any)(d) # else # if PTRSIZE == LONGSIZE # define PTRV unsigned long # else # define PTRV unsigned # endif # define INT2PTR(any,d) (any)(PTRV)(d) # endif # define NUM2PTR(any,d) (any)(PTRV)(d) # define PTR2IV(p) INT2PTR(IV,p) # define PTR2UV(p) INT2PTR(UV,p) # define PTR2NV(p) NUM2PTR(NV,p) # if PTRSIZE == LONGSIZE # define PTR2ul(p) (unsigned long)(p) # else # define PTR2ul(p) INT2PTR(unsigned long,p) # endif #endif /* !INT2PTR */ #undef START_EXTERN_C #undef END_EXTERN_C #undef EXTERN_C #ifdef __cplusplus # define START_EXTERN_C extern "C" { # define END_EXTERN_C } # define EXTERN_C extern "C" #else # define START_EXTERN_C # define END_EXTERN_C # define EXTERN_C extern #endif #if defined(PERL_GCC_PEDANTIC) # ifndef PERL_GCC_BRACE_GROUPS_FORBIDDEN # define PERL_GCC_BRACE_GROUPS_FORBIDDEN # endif #endif #if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__cplusplus) # ifndef PERL_USE_GCC_BRACE_GROUPS # define PERL_USE_GCC_BRACE_GROUPS # endif #endif #undef STMT_START #undef STMT_END #ifdef PERL_USE_GCC_BRACE_GROUPS # define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */ # define STMT_END ) #else # if defined(VOIDFLAGS) && (VOIDFLAGS) && (defined(sun) || defined(__sun__)) && !defined(__GNUC__) # define STMT_START if (1) # define STMT_END else (void)0 # else # define STMT_START do # define STMT_END while (0) # endif #endif #ifndef boolSV # define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no) #endif /* DEFSV appears first in 5.004_56 */ #ifndef DEFSV # define DEFSV GvSV(PL_defgv) #endif #ifndef SAVE_DEFSV # define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv)) #endif /* Older perls (<=5.003) lack AvFILLp */ #ifndef AvFILLp # define AvFILLp AvFILL #endif #ifndef ERRSV # define ERRSV get_sv("@",FALSE) #endif #ifndef newSVpvn # define newSVpvn(data,len) ((data) \ ? ((len) ? newSVpv((data), (len)) : newSVpv("", 0)) \ : newSV(0)) #endif /* Hint: gv_stashpvn * This function's backport doesn't support the length parameter, but * rather ignores it. Portability can only be ensured if the length * parameter is used for speed reasons, but the length can always be * correctly computed from the string argument. */ #ifndef gv_stashpvn # define gv_stashpvn(str,len,create) gv_stashpv(str,create) #endif /* Replace: 1 */ #ifndef get_cv # define get_cv perl_get_cv #endif #ifndef get_sv # define get_sv perl_get_sv #endif #ifndef get_av # define get_av perl_get_av #endif #ifndef get_hv # define get_hv perl_get_hv #endif /* Replace: 0 */ #ifndef dUNDERBAR # define dUNDERBAR dNOOP #endif #ifndef UNDERBAR # define UNDERBAR DEFSV #endif #ifndef dAX # define dAX I32 ax = MARK - PL_stack_base + 1 #endif #ifndef dITEMS # define dITEMS I32 items = SP - MARK #endif #ifndef dXSTARG # define dXSTARG SV * targ = sv_newmortal() #endif #ifndef dAXMARK # define dAXMARK I32 ax = POPMARK; \ register SV ** const mark = PL_stack_base + ax++ #endif #ifndef XSprePUSH # define XSprePUSH (sp = PL_stack_base + ax - 1) #endif #if ((PERL_VERSION < 5) || ((PERL_VERSION == 5) && (PERL_SUBVERSION < 0))) # undef XSRETURN # define XSRETURN(off) \ STMT_START { \ PL_stack_sp = PL_stack_base + ax + ((off) - 1); \ return; \ } STMT_END #endif #ifndef PERL_ABS # define PERL_ABS(x) ((x) < 0 ? -(x) : (x)) #endif #ifndef dVAR # define dVAR dNOOP #endif #ifndef SVf # define SVf "_" #endif #ifndef PERL_SIGNALS_UNSAFE_FLAG #define PERL_SIGNALS_UNSAFE_FLAG 0x0001 #if defined(NEED_PL_signals) static U32 DPPP_(my_PL_signals) = PERL_SIGNALS_UNSAFE_FLAG; #elif defined(NEED_PL_signals_GLOBAL) U32 DPPP_(my_PL_signals) = PERL_SIGNALS_UNSAFE_FLAG; #else extern U32 DPPP_(my_PL_signals); #endif #define PL_signals DPPP_(my_PL_signals) #endif #ifndef dTHR # define dTHR dNOOP #endif #ifndef dTHX # define dTHX dNOOP #endif #ifndef dTHXa # define dTHXa(x) dNOOP #endif #ifndef pTHX # define pTHX void #endif #ifndef pTHX_ # define pTHX_ #endif #ifndef aTHX # define aTHX #endif #ifndef aTHX_ # define aTHX_ #endif #ifndef dTHXoa # define dTHXoa(x) dTHXa(x) #endif #ifndef PUSHmortal # define PUSHmortal PUSHs(sv_newmortal()) #endif #ifndef mPUSHp # define mPUSHp(p,l) sv_setpvn_mg(PUSHmortal, (p), (l)) #endif #ifndef mPUSHn # define mPUSHn(n) sv_setnv_mg(PUSHmortal, (NV)(n)) #endif #ifndef mPUSHi # define mPUSHi(i) sv_setiv_mg(PUSHmortal, (IV)(i)) #endif #ifndef mPUSHu # define mPUSHu(u) sv_setuv_mg(PUSHmortal, (UV)(u)) #endif #ifndef XPUSHmortal # define XPUSHmortal XPUSHs(sv_newmortal()) #endif #ifndef mXPUSHp # define mXPUSHp(p,l) STMT_START { EXTEND(sp,1); sv_setpvn_mg(PUSHmortal, (p), (l)); } STMT_END #endif #ifndef mXPUSHn # define mXPUSHn(n) STMT_START { EXTEND(sp,1); sv_setnv_mg(PUSHmortal, (NV)(n)); } STMT_END #endif #ifndef mXPUSHi # define mXPUSHi(i) STMT_START { EXTEND(sp,1); sv_setiv_mg(PUSHmortal, (IV)(i)); } STMT_END #endif #ifndef mXPUSHu # define mXPUSHu(u) STMT_START { EXTEND(sp,1); sv_setuv_mg(PUSHmortal, (UV)(u)); } STMT_END #endif /* Replace: 1 */ #ifndef call_sv # define call_sv perl_call_sv #endif #ifndef call_pv # define call_pv perl_call_pv #endif #ifndef call_argv # define call_argv perl_call_argv #endif #ifndef call_method # define call_method perl_call_method #endif #ifndef eval_sv # define eval_sv perl_eval_sv #endif /* Replace: 0 */ /* Replace perl_eval_pv with eval_pv */ /* eval_pv depends on eval_sv */ #ifndef eval_pv #if defined(NEED_eval_pv) static SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); static #else extern SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); #endif #ifdef eval_pv # undef eval_pv #endif #define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b) #define Perl_eval_pv DPPP_(my_eval_pv) #if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL) SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error) { dSP; SV* sv = newSVpv(p, 0); PUSHMARK(sp); eval_sv(sv, G_SCALAR); SvREFCNT_dec(sv); SPAGAIN; sv = POPs; PUTBACK; if (croak_on_error && SvTRUE(GvSV(errgv))) croak(SvPVx(GvSV(errgv), na)); return sv; } #endif #endif #ifndef newRV_inc # define newRV_inc(sv) newRV(sv) /* Replace */ #endif #ifndef newRV_noinc #if defined(NEED_newRV_noinc) static SV * DPPP_(my_newRV_noinc)(SV *sv); static #else extern SV * DPPP_(my_newRV_noinc)(SV *sv); #endif #ifdef newRV_noinc # undef newRV_noinc #endif #define newRV_noinc(a) DPPP_(my_newRV_noinc)(aTHX_ a) #define Perl_newRV_noinc DPPP_(my_newRV_noinc) #if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL) SV * DPPP_(my_newRV_noinc)(SV *sv) { SV *rv = (SV *)newRV(sv); SvREFCNT_dec(sv); return rv; } #endif #endif /* Hint: newCONSTSUB * Returns a CV* as of perl-5.7.1. This return value is not supported * by Devel::PPPort. */ /* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */ #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 63))) && ((PERL_VERSION != 4) || (PERL_SUBVERSION != 5)) #if defined(NEED_newCONSTSUB) static void DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv); static #else extern void DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv); #endif #ifdef newCONSTSUB # undef newCONSTSUB #endif #define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c) #define Perl_newCONSTSUB DPPP_(my_newCONSTSUB) #if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) void DPPP_(my_newCONSTSUB)(HV *stash, char *name, SV *sv) { U32 oldhints = PL_hints; HV *old_cop_stash = PL_curcop->cop_stash; HV *old_curstash = PL_curstash; line_t oldline = PL_curcop->cop_line; PL_curcop->cop_line = PL_copline; PL_hints &= ~HINT_BLOCK_SCOPE; if (stash) PL_curstash = PL_curcop->cop_stash = stash; newSUB( #if ((PERL_VERSION < 3) || ((PERL_VERSION == 3) && (PERL_SUBVERSION < 22))) start_subparse(), #elif ((PERL_VERSION == 3) && (PERL_SUBVERSION == 22)) start_subparse(0), #else /* 5.003_23 onwards */ start_subparse(FALSE, 0), #endif newSVOP(OP_CONST, 0, newSVpv(name,0)), newSVOP(OP_CONST, 0, &PL_sv_no), /* SvPV(&PL_sv_no) == "" -- GMB */ newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv)) ); PL_hints = oldhints; PL_curcop->cop_stash = old_cop_stash; PL_curstash = old_curstash; PL_curcop->cop_line = oldline; } #endif #endif /* * Boilerplate macros for initializing and accessing interpreter-local * data from C. All statics in extensions should be reworked to use * this, if you want to make the extension thread-safe. See ext/re/re.xs * for an example of the use of these macros. * * Code that uses these macros is responsible for the following: * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts" * 2. Declare a typedef named my_cxt_t that is a structure that contains * all the data that needs to be interpreter-local. * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t. * 4. Use the MY_CXT_INIT macro such that it is called exactly once * (typically put in the BOOT: section). * 5. Use the members of the my_cxt_t structure everywhere as * MY_CXT.member. * 6. Use the dMY_CXT macro (a declaration) in all the functions that * access MY_CXT. */ #if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \ defined(PERL_CAPI) || defined(PERL_IMPLICIT_CONTEXT) #ifndef START_MY_CXT /* This must appear in all extensions that define a my_cxt_t structure, * right after the definition (i.e. at file scope). The non-threads * case below uses it to declare the data as static. */ #define START_MY_CXT #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 68))) /* Fetches the SV that keeps the per-interpreter data. */ #define dMY_CXT_SV \ SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE) #else /* >= perl5.004_68 */ #define dMY_CXT_SV \ SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY, \ sizeof(MY_CXT_KEY)-1, TRUE) #endif /* < perl5.004_68 */ /* This declaration should be used within all functions that use the * interpreter-local data. */ #define dMY_CXT \ dMY_CXT_SV; \ my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv)) /* Creates and zeroes the per-interpreter data. * (We allocate my_cxtp in a Perl SV so that it will be released when * the interpreter goes away.) */ #define MY_CXT_INIT \ dMY_CXT_SV; \ /* newSV() allocates one more than needed */ \ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ Zero(my_cxtp, 1, my_cxt_t); \ sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) /* This macro must be used to access members of the my_cxt_t structure. * e.g. MYCXT.some_data */ #define MY_CXT (*my_cxtp) /* Judicious use of these macros can reduce the number of times dMY_CXT * is used. Use is similar to pTHX, aTHX etc. */ #define pMY_CXT my_cxt_t *my_cxtp #define pMY_CXT_ pMY_CXT, #define _pMY_CXT ,pMY_CXT #define aMY_CXT my_cxtp #define aMY_CXT_ aMY_CXT, #define _aMY_CXT ,aMY_CXT #endif /* START_MY_CXT */ #ifndef MY_CXT_CLONE /* Clones the per-interpreter data. */ #define MY_CXT_CLONE \ dMY_CXT_SV; \ my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\ Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\ sv_setuv(my_cxt_sv, PTR2UV(my_cxtp)) #endif #else /* single interpreter */ #ifndef START_MY_CXT #define START_MY_CXT static my_cxt_t my_cxt; #define dMY_CXT_SV dNOOP #define dMY_CXT dNOOP #define MY_CXT_INIT NOOP #define MY_CXT my_cxt #define pMY_CXT void #define pMY_CXT_ #define _pMY_CXT #define aMY_CXT #define aMY_CXT_ #define _aMY_CXT #endif /* START_MY_CXT */ #ifndef MY_CXT_CLONE #define MY_CXT_CLONE NOOP #endif #endif #ifndef IVdf # if IVSIZE == LONGSIZE # define IVdf "ld" # define UVuf "lu" # define UVof "lo" # define UVxf "lx" # define UVXf "lX" # else # if IVSIZE == INTSIZE # define IVdf "d" # define UVuf "u" # define UVof "o" # define UVxf "x" # define UVXf "X" # endif # endif #endif #ifndef NVef # if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \ defined(PERL_PRIfldbl) /* Not very likely, but let's try anyway. */ # define NVef PERL_PRIeldbl # define NVff PERL_PRIfldbl # define NVgf PERL_PRIgldbl # else # define NVef "e" # define NVff "f" # define NVgf "g" # endif #endif #ifndef SvREFCNT_inc # ifdef PERL_USE_GCC_BRACE_GROUPS # define SvREFCNT_inc(sv) \ ({ \ SV * const _sv = (SV*)(sv); \ if (_sv) \ (SvREFCNT(_sv))++; \ _sv; \ }) # else # define SvREFCNT_inc(sv) \ ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL) # endif #endif #ifndef SvREFCNT_inc_simple # ifdef PERL_USE_GCC_BRACE_GROUPS # define SvREFCNT_inc_simple(sv) \ ({ \ if (sv) \ (SvREFCNT(sv))++; \ (SV *)(sv); \ }) # else # define SvREFCNT_inc_simple(sv) \ ((sv) ? (SvREFCNT(sv)++,(SV*)(sv)) : NULL) # endif #endif #ifndef SvREFCNT_inc_NN # ifdef PERL_USE_GCC_BRACE_GROUPS # define SvREFCNT_inc_NN(sv) \ ({ \ SV * const _sv = (SV*)(sv); \ SvREFCNT(_sv)++; \ _sv; \ }) # else # define SvREFCNT_inc_NN(sv) \ (PL_Sv=(SV*)(sv),++(SvREFCNT(PL_Sv)),PL_Sv) # endif #endif #ifndef SvREFCNT_inc_void # ifdef PERL_USE_GCC_BRACE_GROUPS # define SvREFCNT_inc_void(sv) \ ({ \ SV * const _sv = (SV*)(sv); \ if (_sv) \ (void)(SvREFCNT(_sv)++); \ }) # else # define SvREFCNT_inc_void(sv) \ (void)((PL_Sv=(SV*)(sv)) ? ++(SvREFCNT(PL_Sv)) : 0) # endif #endif #ifndef SvREFCNT_inc_simple_void # define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END #endif #ifndef SvREFCNT_inc_simple_NN # define SvREFCNT_inc_simple_NN(sv) (++SvREFCNT(sv), (SV*)(sv)) #endif #ifndef SvREFCNT_inc_void_NN # define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif #ifndef SvREFCNT_inc_simple_void_NN # define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #endif #ifndef SvPV_nolen #if defined(NEED_sv_2pv_nolen) static char * DPPP_(my_sv_2pv_nolen)(pTHX_ register SV *sv); static #else extern char * DPPP_(my_sv_2pv_nolen)(pTHX_ register SV *sv); #endif #ifdef sv_2pv_nolen # undef sv_2pv_nolen #endif #define sv_2pv_nolen(a) DPPP_(my_sv_2pv_nolen)(aTHX_ a) #define Perl_sv_2pv_nolen DPPP_(my_sv_2pv_nolen) #if defined(NEED_sv_2pv_nolen) || defined(NEED_sv_2pv_nolen_GLOBAL) char * DPPP_(my_sv_2pv_nolen)(pTHX_ register SV *sv) { STRLEN n_a; return sv_2pv(sv, &n_a); } #endif /* Hint: sv_2pv_nolen * Use the SvPV_nolen() macro instead of sv_2pv_nolen(). */ /* SvPV_nolen depends on sv_2pv_nolen */ #define SvPV_nolen(sv) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? SvPVX(sv) : sv_2pv_nolen(sv)) #endif #ifdef SvPVbyte /* Hint: SvPVbyte * Does not work in perl-5.6.1, ppport.h implements a version * borrowed from perl-5.7.3. */ #if ((PERL_VERSION < 7) || ((PERL_VERSION == 7) && (PERL_SUBVERSION < 0))) #if defined(NEED_sv_2pvbyte) static char * DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp); static #else extern char * DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp); #endif #ifdef sv_2pvbyte # undef sv_2pvbyte #endif #define sv_2pvbyte(a,b) DPPP_(my_sv_2pvbyte)(aTHX_ a,b) #define Perl_sv_2pvbyte DPPP_(my_sv_2pvbyte) #if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL) char * DPPP_(my_sv_2pvbyte)(pTHX_ register SV *sv, STRLEN *lp) { sv_utf8_downgrade(sv,0); return SvPV(sv,*lp); } #endif /* Hint: sv_2pvbyte * Use the SvPVbyte() macro instead of sv_2pvbyte(). */ #undef SvPVbyte /* SvPVbyte depends on sv_2pvbyte */ #define SvPVbyte(sv, lp) \ ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \ ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pvbyte(sv, &lp)) #endif #else # define SvPVbyte SvPV # define sv_2pvbyte sv_2pv #endif /* sv_2pvbyte_nolen depends on sv_2pv_nolen */ #ifndef sv_2pvbyte_nolen # define sv_2pvbyte_nolen sv_2pv_nolen #endif /* Hint: sv_pvn * Always use the SvPV() macro instead of sv_pvn(). */ #ifndef sv_pvn # define sv_pvn(sv, len) SvPV(sv, len) #endif /* Hint: sv_pvn_force * Always use the SvPV_force() macro instead of sv_pvn_force(). */ #ifndef sv_pvn_force # define sv_pvn_force(sv, len) SvPV_force(sv, len) #endif #ifndef SvMAGIC_set # define SvMAGIC_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END #endif #if ((PERL_VERSION < 9) || ((PERL_VERSION == 9) && (PERL_SUBVERSION < 3))) #ifndef SvPVX_const # define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv))) #endif #ifndef SvPVX_mutable # define SvPVX_mutable(sv) (0 + SvPVX(sv)) #endif #ifndef SvRV_set # define SvRV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END #endif #else #ifndef SvPVX_const # define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv)) #endif #ifndef SvPVX_mutable # define SvPVX_mutable(sv) ((sv)->sv_u.svu_pv) #endif #ifndef SvRV_set # define SvRV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_RV); \ ((sv)->sv_u.svu_rv = (val)); } STMT_END #endif #endif #ifndef SvSTASH_set # define SvSTASH_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \ (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END #endif #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 0))) #ifndef SvUV_set # define SvUV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END #endif #else #ifndef SvUV_set # define SvUV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \ (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END #endif #endif #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(vnewSVpvf) #if defined(NEED_vnewSVpvf) static SV * DPPP_(my_vnewSVpvf)(pTHX_ const char * pat, va_list * args); static #else extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char * pat, va_list * args); #endif #ifdef vnewSVpvf # undef vnewSVpvf #endif #define vnewSVpvf(a,b) DPPP_(my_vnewSVpvf)(aTHX_ a,b) #define Perl_vnewSVpvf DPPP_(my_vnewSVpvf) #if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL) SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args) { register SV *sv = newSV(0); sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); return sv; } #endif #endif /* sv_vcatpvf depends on sv_vcatpvfn */ #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_vcatpvf) # define sv_vcatpvf(sv, pat, args) sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif /* sv_vsetpvf depends on sv_vsetpvfn */ #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_vsetpvf) # define sv_vsetpvf(sv, pat, args) sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)) #endif /* sv_catpvf_mg depends on sv_vcatpvfn, sv_catpvf_mg_nocontext */ #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_catpvf_mg) #if defined(NEED_sv_catpvf_mg) static void DPPP_(my_sv_catpvf_mg)(pTHX_ SV * sv, const char * pat, ...); static #else extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV * sv, const char * pat, ...); #endif #define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) #if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL) void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...) { va_list args; va_start(args, pat); sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); va_end(args); } #endif #endif /* sv_catpvf_mg_nocontext depends on sv_vcatpvfn */ #ifdef PERL_IMPLICIT_CONTEXT #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_catpvf_mg_nocontext) #if defined(NEED_sv_catpvf_mg_nocontext) static void DPPP_(my_sv_catpvf_mg_nocontext)(SV * sv, const char * pat, ...); static #else extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV * sv, const char * pat, ...); #endif #define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) #define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) #if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL) void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...) { dTHX; va_list args; va_start(args, pat); sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); va_end(args); } #endif #endif #endif #ifndef sv_catpvf_mg # ifdef PERL_IMPLICIT_CONTEXT # define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext # else # define sv_catpvf_mg Perl_sv_catpvf_mg # endif #endif /* sv_vcatpvf_mg depends on sv_vcatpvfn */ #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_vcatpvf_mg) # define sv_vcatpvf_mg(sv, pat, args) \ STMT_START { \ sv_vcatpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ SvSETMAGIC(sv); \ } STMT_END #endif /* sv_setpvf_mg depends on sv_vsetpvfn, sv_setpvf_mg_nocontext */ #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_setpvf_mg) #if defined(NEED_sv_setpvf_mg) static void DPPP_(my_sv_setpvf_mg)(pTHX_ SV * sv, const char * pat, ...); static #else extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV * sv, const char * pat, ...); #endif #define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) #if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL) void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...) { va_list args; va_start(args, pat); sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); va_end(args); } #endif #endif /* sv_setpvf_mg_nocontext depends on sv_vsetpvfn */ #ifdef PERL_IMPLICIT_CONTEXT #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_setpvf_mg_nocontext) #if defined(NEED_sv_setpvf_mg_nocontext) static void DPPP_(my_sv_setpvf_mg_nocontext)(SV * sv, const char * pat, ...); static #else extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV * sv, const char * pat, ...); #endif #define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) #define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) #if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL) void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...) { dTHX; va_list args; va_start(args, pat); sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); SvSETMAGIC(sv); va_end(args); } #endif #endif #endif #ifndef sv_setpvf_mg # ifdef PERL_IMPLICIT_CONTEXT # define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext # else # define sv_setpvf_mg Perl_sv_setpvf_mg # endif #endif /* sv_vsetpvf_mg depends on sv_vsetpvfn */ #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(sv_vsetpvf_mg) # define sv_vsetpvf_mg(sv, pat, args) \ STMT_START { \ sv_vsetpvfn(sv, pat, strlen(pat), args, Null(SV**), 0, Null(bool*)); \ SvSETMAGIC(sv); \ } STMT_END #endif #ifndef WARN_ALL # define WARN_ALL 0 #endif #ifndef WARN_CLOSURE # define WARN_CLOSURE 1 #endif #ifndef WARN_DEPRECATED # define WARN_DEPRECATED 2 #endif #ifndef WARN_EXITING # define WARN_EXITING 3 #endif #ifndef WARN_GLOB # define WARN_GLOB 4 #endif #ifndef WARN_IO # define WARN_IO 5 #endif #ifndef WARN_CLOSED # define WARN_CLOSED 6 #endif #ifndef WARN_EXEC # define WARN_EXEC 7 #endif #ifndef WARN_LAYER # define WARN_LAYER 8 #endif #ifndef WARN_NEWLINE # define WARN_NEWLINE 9 #endif #ifndef WARN_PIPE # define WARN_PIPE 10 #endif #ifndef WARN_UNOPENED # define WARN_UNOPENED 11 #endif #ifndef WARN_MISC # define WARN_MISC 12 #endif #ifndef WARN_NUMERIC # define WARN_NUMERIC 13 #endif #ifndef WARN_ONCE # define WARN_ONCE 14 #endif #ifndef WARN_OVERFLOW # define WARN_OVERFLOW 15 #endif #ifndef WARN_PACK # define WARN_PACK 16 #endif #ifndef WARN_PORTABLE # define WARN_PORTABLE 17 #endif #ifndef WARN_RECURSION # define WARN_RECURSION 18 #endif #ifndef WARN_REDEFINE # define WARN_REDEFINE 19 #endif #ifndef WARN_REGEXP # define WARN_REGEXP 20 #endif #ifndef WARN_SEVERE # define WARN_SEVERE 21 #endif #ifndef WARN_DEBUGGING # define WARN_DEBUGGING 22 #endif #ifndef WARN_INPLACE # define WARN_INPLACE 23 #endif #ifndef WARN_INTERNAL # define WARN_INTERNAL 24 #endif #ifndef WARN_MALLOC # define WARN_MALLOC 25 #endif #ifndef WARN_SIGNAL # define WARN_SIGNAL 26 #endif #ifndef WARN_SUBSTR # define WARN_SUBSTR 27 #endif #ifndef WARN_SYNTAX # define WARN_SYNTAX 28 #endif #ifndef WARN_AMBIGUOUS # define WARN_AMBIGUOUS 29 #endif #ifndef WARN_BAREWORD # define WARN_BAREWORD 30 #endif #ifndef WARN_DIGIT # define WARN_DIGIT 31 #endif #ifndef WARN_PARENTHESIS # define WARN_PARENTHESIS 32 #endif #ifndef WARN_PRECEDENCE # define WARN_PRECEDENCE 33 #endif #ifndef WARN_PRINTF # define WARN_PRINTF 34 #endif #ifndef WARN_PROTOTYPE # define WARN_PROTOTYPE 35 #endif #ifndef WARN_QW # define WARN_QW 36 #endif #ifndef WARN_RESERVED # define WARN_RESERVED 37 #endif #ifndef WARN_SEMICOLON # define WARN_SEMICOLON 38 #endif #ifndef WARN_TAINT # define WARN_TAINT 39 #endif #ifndef WARN_THREADS # define WARN_THREADS 40 #endif #ifndef WARN_UNINITIALIZED # define WARN_UNINITIALIZED 41 #endif #ifndef WARN_UNPACK # define WARN_UNPACK 42 #endif #ifndef WARN_UNTIE # define WARN_UNTIE 43 #endif #ifndef WARN_UTF8 # define WARN_UTF8 44 #endif #ifndef WARN_VOID # define WARN_VOID 45 #endif #ifndef WARN_ASSERTIONS # define WARN_ASSERTIONS 46 #endif #ifndef packWARN # define packWARN(a) (a) #endif #ifndef ckWARN # ifdef G_WARN_ON # define ckWARN(a) (PL_dowarn & G_WARN_ON) # else # define ckWARN(a) PL_dowarn # endif #endif /* warner depends on vnewSVpvf */ #if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(warner) #if defined(NEED_warner) static void DPPP_(my_warner)(U32 err, const char *pat, ...); static #else extern void DPPP_(my_warner)(U32 err, const char *pat, ...); #endif #define Perl_warner DPPP_(my_warner) #if defined(NEED_warner) || defined(NEED_warner_GLOBAL) void DPPP_(my_warner)(U32 err, const char *pat, ...) { SV *sv; va_list args; PERL_UNUSED_ARG(err); va_start(args, pat); sv = vnewSVpvf(pat, &args); va_end(args); sv_2mortal(sv); warn("%s", SvPV_nolen(sv)); } #define warner Perl_warner /* Perl_warner_nocontext depends on warner */ #define Perl_warner_nocontext Perl_warner #endif #endif /* concatenating with "" ensures that only literal strings are accepted as argument * note that STR_WITH_LEN() can't be used as argument to macros or functions that * under some configurations might be macros */ #ifndef STR_WITH_LEN # define STR_WITH_LEN(s) (s ""), (sizeof(s)-1) #endif #ifndef newSVpvs # define newSVpvs(str) newSVpvn(str "", sizeof(str) - 1) #endif #ifndef sv_catpvs # define sv_catpvs(sv, str) sv_catpvn(sv, str "", sizeof(str) - 1) #endif #ifndef sv_setpvs # define sv_setpvs(sv, str) sv_setpvn(sv, str "", sizeof(str) - 1) #endif #ifndef hv_fetchs # define hv_fetchs(hv, key, lval) hv_fetch(hv, key "", sizeof(key) - 1, lval) #endif #ifndef hv_stores # define hv_stores(hv, key, val) hv_store(hv, key "", sizeof(key) - 1, val, 0) #endif #ifndef SvGETMAGIC # define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END #endif #ifndef PERL_MAGIC_sv # define PERL_MAGIC_sv '\0' #endif #ifndef PERL_MAGIC_overload # define PERL_MAGIC_overload 'A' #endif #ifndef PERL_MAGIC_overload_elem # define PERL_MAGIC_overload_elem 'a' #endif #ifndef PERL_MAGIC_overload_table # define PERL_MAGIC_overload_table 'c' #endif #ifndef PERL_MAGIC_bm # define PERL_MAGIC_bm 'B' #endif #ifndef PERL_MAGIC_regdata # define PERL_MAGIC_regdata 'D' #endif #ifndef PERL_MAGIC_regdatum # define PERL_MAGIC_regdatum 'd' #endif #ifndef PERL_MAGIC_env # define PERL_MAGIC_env 'E' #endif #ifndef PERL_MAGIC_envelem # define PERL_MAGIC_envelem 'e' #endif #ifndef PERL_MAGIC_fm # define PERL_MAGIC_fm 'f' #endif #ifndef PERL_MAGIC_regex_global # define PERL_MAGIC_regex_global 'g' #endif #ifndef PERL_MAGIC_isa # define PERL_MAGIC_isa 'I' #endif #ifndef PERL_MAGIC_isaelem # define PERL_MAGIC_isaelem 'i' #endif #ifndef PERL_MAGIC_nkeys # define PERL_MAGIC_nkeys 'k' #endif #ifndef PERL_MAGIC_dbfile # define PERL_MAGIC_dbfile 'L' #endif #ifndef PERL_MAGIC_dbline # define PERL_MAGIC_dbline 'l' #endif #ifndef PERL_MAGIC_mutex # define PERL_MAGIC_mutex 'm' #endif #ifndef PERL_MAGIC_shared # define PERL_MAGIC_shared 'N' #endif #ifndef PERL_MAGIC_shared_scalar # define PERL_MAGIC_shared_scalar 'n' #endif #ifndef PERL_MAGIC_collxfrm # define PERL_MAGIC_collxfrm 'o' #endif #ifndef PERL_MAGIC_tied # define PERL_MAGIC_tied 'P' #endif #ifndef PERL_MAGIC_tiedelem # define PERL_MAGIC_tiedelem 'p' #endif #ifndef PERL_MAGIC_tiedscalar # define PERL_MAGIC_tiedscalar 'q' #endif #ifndef PERL_MAGIC_qr # define PERL_MAGIC_qr 'r' #endif #ifndef PERL_MAGIC_sig # define PERL_MAGIC_sig 'S' #endif #ifndef PERL_MAGIC_sigelem # define PERL_MAGIC_sigelem 's' #endif #ifndef PERL_MAGIC_taint # define PERL_MAGIC_taint 't' #endif #ifndef PERL_MAGIC_uvar # define PERL_MAGIC_uvar 'U' #endif #ifndef PERL_MAGIC_uvar_elem # define PERL_MAGIC_uvar_elem 'u' #endif #ifndef PERL_MAGIC_vstring # define PERL_MAGIC_vstring 'V' #endif #ifndef PERL_MAGIC_vec # define PERL_MAGIC_vec 'v' #endif #ifndef PERL_MAGIC_utf8 # define PERL_MAGIC_utf8 'w' #endif #ifndef PERL_MAGIC_substr # define PERL_MAGIC_substr 'x' #endif #ifndef PERL_MAGIC_defelem # define PERL_MAGIC_defelem 'y' #endif #ifndef PERL_MAGIC_glob # define PERL_MAGIC_glob '*' #endif #ifndef PERL_MAGIC_arylen # define PERL_MAGIC_arylen '#' #endif #ifndef PERL_MAGIC_pos # define PERL_MAGIC_pos '.' #endif #ifndef PERL_MAGIC_backref # define PERL_MAGIC_backref '<' #endif #ifndef PERL_MAGIC_ext # define PERL_MAGIC_ext '~' #endif /* That's the best we can do... */ #ifndef SvPV_force_nomg # define SvPV_force_nomg SvPV_force #endif #ifndef SvPV_nomg # define SvPV_nomg SvPV #endif #ifndef sv_catpvn_nomg # define sv_catpvn_nomg sv_catpvn #endif #ifndef sv_catsv_nomg # define sv_catsv_nomg sv_catsv #endif #ifndef sv_setsv_nomg # define sv_setsv_nomg sv_setsv #endif #ifndef sv_pvn_nomg # define sv_pvn_nomg sv_pvn #endif #ifndef SvIV_nomg # define SvIV_nomg SvIV #endif #ifndef SvUV_nomg # define SvUV_nomg SvUV #endif #ifndef sv_catpv_mg # define sv_catpv_mg(sv, ptr) \ STMT_START { \ SV *TeMpSv = sv; \ sv_catpv(TeMpSv,ptr); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_catpvn_mg # define sv_catpvn_mg(sv, ptr, len) \ STMT_START { \ SV *TeMpSv = sv; \ sv_catpvn(TeMpSv,ptr,len); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_catsv_mg # define sv_catsv_mg(dsv, ssv) \ STMT_START { \ SV *TeMpSv = dsv; \ sv_catsv(TeMpSv,ssv); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setiv_mg # define sv_setiv_mg(sv, i) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setiv(TeMpSv,i); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setnv_mg # define sv_setnv_mg(sv, num) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setnv(TeMpSv,num); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setpv_mg # define sv_setpv_mg(sv, ptr) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setpv(TeMpSv,ptr); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setpvn_mg # define sv_setpvn_mg(sv, ptr, len) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setpvn(TeMpSv,ptr,len); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setsv_mg # define sv_setsv_mg(dsv, ssv) \ STMT_START { \ SV *TeMpSv = dsv; \ sv_setsv(TeMpSv,ssv); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_setuv_mg # define sv_setuv_mg(sv, i) \ STMT_START { \ SV *TeMpSv = sv; \ sv_setuv(TeMpSv,i); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef sv_usepvn_mg # define sv_usepvn_mg(sv, ptr, len) \ STMT_START { \ SV *TeMpSv = sv; \ sv_usepvn(TeMpSv,ptr,len); \ SvSETMAGIC(TeMpSv); \ } STMT_END #endif #ifndef SvVSTRING_mg # define SvVSTRING_mg(sv) (SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_vstring) : NULL) #endif #ifdef USE_ITHREADS #ifndef CopFILE # define CopFILE(c) ((c)->cop_file) #endif #ifndef CopFILEGV # define CopFILEGV(c) (CopFILE(c) ? gv_fetchfile(CopFILE(c)) : Nullgv) #endif #ifndef CopFILE_set # define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv)) #endif #ifndef CopFILESV # define CopFILESV(c) (CopFILE(c) ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv) #endif #ifndef CopFILEAV # define CopFILEAV(c) (CopFILE(c) ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav) #endif #ifndef CopSTASHPV # define CopSTASHPV(c) ((c)->cop_stashpv) #endif #ifndef CopSTASHPV_set # define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch)) #endif #ifndef CopSTASH # define CopSTASH(c) (CopSTASHPV(c) ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv) #endif #ifndef CopSTASH_set # define CopSTASH_set(c,hv) CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch) #endif #ifndef CopSTASH_eq # define CopSTASH_eq(c,hv) ((hv) && (CopSTASHPV(c) == HvNAME(hv) \ || (CopSTASHPV(c) && HvNAME(hv) \ && strEQ(CopSTASHPV(c), HvNAME(hv))))) #endif #else #ifndef CopFILEGV # define CopFILEGV(c) ((c)->cop_filegv) #endif #ifndef CopFILEGV_set # define CopFILEGV_set(c,gv) ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv)) #endif #ifndef CopFILE_set # define CopFILE_set(c,pv) CopFILEGV_set((c), gv_fetchfile(pv)) #endif #ifndef CopFILESV # define CopFILESV(c) (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv) #endif #ifndef CopFILEAV # define CopFILEAV(c) (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav) #endif #ifndef CopFILE # define CopFILE(c) (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch) #endif #ifndef CopSTASH # define CopSTASH(c) ((c)->cop_stash) #endif #ifndef CopSTASH_set # define CopSTASH_set(c,hv) ((c)->cop_stash = (hv)) #endif #ifndef CopSTASHPV # define CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch) #endif #ifndef CopSTASHPV_set # define CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD)) #endif #ifndef CopSTASH_eq # define CopSTASH_eq(c,hv) (CopSTASH(c) == (hv)) #endif #endif /* USE_ITHREADS */ #ifndef IN_PERL_COMPILETIME # define IN_PERL_COMPILETIME (PL_curcop == &PL_compiling) #endif #ifndef IN_LOCALE_RUNTIME # define IN_LOCALE_RUNTIME (PL_curcop->op_private & HINT_LOCALE) #endif #ifndef IN_LOCALE_COMPILETIME # define IN_LOCALE_COMPILETIME (PL_hints & HINT_LOCALE) #endif #ifndef IN_LOCALE # define IN_LOCALE (IN_PERL_COMPILETIME ? IN_LOCALE_COMPILETIME : IN_LOCALE_RUNTIME) #endif #ifndef IS_NUMBER_IN_UV # define IS_NUMBER_IN_UV 0x01 #endif #ifndef IS_NUMBER_GREATER_THAN_UV_MAX # define IS_NUMBER_GREATER_THAN_UV_MAX 0x02 #endif #ifndef IS_NUMBER_NOT_INT # define IS_NUMBER_NOT_INT 0x04 #endif #ifndef IS_NUMBER_NEG # define IS_NUMBER_NEG 0x08 #endif #ifndef IS_NUMBER_INFINITY # define IS_NUMBER_INFINITY 0x10 #endif #ifndef IS_NUMBER_NAN # define IS_NUMBER_NAN 0x20 #endif /* GROK_NUMERIC_RADIX depends on grok_numeric_radix */ #ifndef GROK_NUMERIC_RADIX # define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send) #endif #ifndef PERL_SCAN_GREATER_THAN_UV_MAX # define PERL_SCAN_GREATER_THAN_UV_MAX 0x02 #endif #ifndef PERL_SCAN_SILENT_ILLDIGIT # define PERL_SCAN_SILENT_ILLDIGIT 0x04 #endif #ifndef PERL_SCAN_ALLOW_UNDERSCORES # define PERL_SCAN_ALLOW_UNDERSCORES 0x01 #endif #ifndef PERL_SCAN_DISALLOW_PREFIX # define PERL_SCAN_DISALLOW_PREFIX 0x02 #endif #ifndef grok_numeric_radix #if defined(NEED_grok_numeric_radix) static bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send); static #else extern bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send); #endif #ifdef grok_numeric_radix # undef grok_numeric_radix #endif #define grok_numeric_radix(a,b) DPPP_(my_grok_numeric_radix)(aTHX_ a,b) #define Perl_grok_numeric_radix DPPP_(my_grok_numeric_radix) #if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL) bool DPPP_(my_grok_numeric_radix)(pTHX_ const char **sp, const char *send) { #ifdef USE_LOCALE_NUMERIC #ifdef PL_numeric_radix_sv if (PL_numeric_radix_sv && IN_LOCALE) { STRLEN len; char* radix = SvPV(PL_numeric_radix_sv, len); if (*sp + len <= send && memEQ(*sp, radix, len)) { *sp += len; return TRUE; } } #else /* older perls don't have PL_numeric_radix_sv so the radix * must manually be requested from locale.h */ #include dTHR; /* needed for older threaded perls */ struct lconv *lc = localeconv(); char *radix = lc->decimal_point; if (radix && IN_LOCALE) { STRLEN len = strlen(radix); if (*sp + len <= send && memEQ(*sp, radix, len)) { *sp += len; return TRUE; } } #endif #endif /* USE_LOCALE_NUMERIC */ /* always try "." if numeric radix didn't match because * we may have data from different locales mixed */ if (*sp < send && **sp == '.') { ++*sp; return TRUE; } return FALSE; } #endif #endif /* grok_number depends on grok_numeric_radix */ #ifndef grok_number #if defined(NEED_grok_number) static int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep); static #else extern int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep); #endif #ifdef grok_number # undef grok_number #endif #define grok_number(a,b,c) DPPP_(my_grok_number)(aTHX_ a,b,c) #define Perl_grok_number DPPP_(my_grok_number) #if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL) int DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep) { const char *s = pv; const char *send = pv + len; const UV max_div_10 = UV_MAX / 10; const char max_mod_10 = UV_MAX % 10; int numtype = 0; int sawinf = 0; int sawnan = 0; while (s < send && isSPACE(*s)) s++; if (s == send) { return 0; } else if (*s == '-') { s++; numtype = IS_NUMBER_NEG; } else if (*s == '+') s++; if (s == send) return 0; /* next must be digit or the radix separator or beginning of infinity */ if (isDIGIT(*s)) { /* UVs are at least 32 bits, so the first 9 decimal digits cannot overflow. */ UV value = *s - '0'; /* This construction seems to be more optimiser friendly. (without it gcc does the isDIGIT test and the *s - '0' separately) With it gcc on arm is managing 6 instructions (6 cycles) per digit. In theory the optimiser could deduce how far to unroll the loop before checking for overflow. */ if (++s < send) { int digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; if (++s < send) { /* Now got 9 digits, so need to check each time for overflow. */ digit = *s - '0'; while (digit >= 0 && digit <= 9 && (value < max_div_10 || (value == max_div_10 && digit <= max_mod_10))) { value = value * 10 + digit; if (++s < send) digit = *s - '0'; else break; } if (digit >= 0 && digit <= 9 && (s < send)) { /* value overflowed. skip the remaining digits, don't worry about setting *valuep. */ do { s++; } while (s < send && isDIGIT(*s)); numtype |= IS_NUMBER_GREATER_THAN_UV_MAX; goto skip_value; } } } } } } } } } } } } } } } } } } numtype |= IS_NUMBER_IN_UV; if (valuep) *valuep = value; skip_value: if (GROK_NUMERIC_RADIX(&s, send)) { numtype |= IS_NUMBER_NOT_INT; while (s < send && isDIGIT(*s)) /* optional digits after the radix */ s++; } } else if (GROK_NUMERIC_RADIX(&s, send)) { numtype |= IS_NUMBER_NOT_INT | IS_NUMBER_IN_UV; /* valuep assigned below */ /* no digits before the radix means we need digits after it */ if (s < send && isDIGIT(*s)) { do { s++; } while (s < send && isDIGIT(*s)); if (valuep) { /* integer approximation is valid - it's 0. */ *valuep = 0; } } else return 0; } else if (*s == 'I' || *s == 'i') { s++; if (s == send || (*s != 'N' && *s != 'n')) return 0; s++; if (s == send || (*s != 'F' && *s != 'f')) return 0; s++; if (s < send && (*s == 'I' || *s == 'i')) { s++; if (s == send || (*s != 'N' && *s != 'n')) return 0; s++; if (s == send || (*s != 'I' && *s != 'i')) return 0; s++; if (s == send || (*s != 'T' && *s != 't')) return 0; s++; if (s == send || (*s != 'Y' && *s != 'y')) return 0; s++; } sawinf = 1; } else if (*s == 'N' || *s == 'n') { /* XXX TODO: There are signaling NaNs and quiet NaNs. */ s++; if (s == send || (*s != 'A' && *s != 'a')) return 0; s++; if (s == send || (*s != 'N' && *s != 'n')) return 0; s++; sawnan = 1; } else return 0; if (sawinf) { numtype &= IS_NUMBER_NEG; /* Keep track of sign */ numtype |= IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT; } else if (sawnan) { numtype &= IS_NUMBER_NEG; /* Keep track of sign */ numtype |= IS_NUMBER_NAN | IS_NUMBER_NOT_INT; } else if (s < send) { /* we can have an optional exponent part */ if (*s == 'e' || *s == 'E') { /* The only flag we keep is sign. Blow away any "it's UV" */ numtype &= IS_NUMBER_NEG; numtype |= IS_NUMBER_NOT_INT; s++; if (s < send && (*s == '-' || *s == '+')) s++; if (s < send && isDIGIT(*s)) { do { s++; } while (s < send && isDIGIT(*s)); } else return 0; } } while (s < send && isSPACE(*s)) s++; if (s >= send) return numtype; if (len == 10 && memEQ(pv, "0 but true", 10)) { if (valuep) *valuep = 0; return IS_NUMBER_IN_UV; } return 0; } #endif #endif /* * The grok_* routines have been modified to use warn() instead of * Perl_warner(). Also, 'hexdigit' was the former name of PL_hexdigit, * which is why the stack variable has been renamed to 'xdigit'. */ #ifndef grok_bin #if defined(NEED_grok_bin) static UV DPPP_(my_grok_bin)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result); static #else extern UV DPPP_(my_grok_bin)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result); #endif #ifdef grok_bin # undef grok_bin #endif #define grok_bin(a,b,c,d) DPPP_(my_grok_bin)(aTHX_ a,b,c,d) #define Perl_grok_bin DPPP_(my_grok_bin) #if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL) UV DPPP_(my_grok_bin)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result) { const char *s = start; STRLEN len = *len_p; UV value = 0; NV value_nv = 0; const UV max_div_2 = UV_MAX / 2; bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES; bool overflowed = FALSE; if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) { /* strip off leading b or 0b. for compatibility silently suffer "b" and "0b" as valid binary numbers. */ if (len >= 1) { if (s[0] == 'b') { s++; len--; } else if (len >= 2 && s[0] == '0' && s[1] == 'b') { s+=2; len-=2; } } } for (; len-- && *s; s++) { char bit = *s; if (bit == '0' || bit == '1') { /* Write it in this wonky order with a goto to attempt to get the compiler to make the common case integer-only loop pretty tight. With gcc seems to be much straighter code than old scan_bin. */ redo: if (!overflowed) { if (value <= max_div_2) { value = (value << 1) | (bit - '0'); continue; } /* Bah. We're just overflowed. */ warn("Integer overflow in binary number"); overflowed = TRUE; value_nv = (NV) value; } value_nv *= 2.0; /* If an NV has not enough bits in its mantissa to * represent a UV this summing of small low-order numbers * is a waste of time (because the NV cannot preserve * the low-order bits anyway): we could just remember when * did we overflow and in the end just multiply value_nv by the * right amount. */ value_nv += (NV)(bit - '0'); continue; } if (bit == '_' && len && allow_underscores && (bit = s[1]) && (bit == '0' || bit == '1')) { --len; ++s; goto redo; } if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal binary digit '%c' ignored", *s); break; } if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 || (!overflowed && value > 0xffffffff ) #endif ) { warn("Binary number > 0b11111111111111111111111111111111 non-portable"); } *len_p = s - start; if (!overflowed) { *flags = 0; return value; } *flags = PERL_SCAN_GREATER_THAN_UV_MAX; if (result) *result = value_nv; return UV_MAX; } #endif #endif #ifndef grok_hex #if defined(NEED_grok_hex) static UV DPPP_(my_grok_hex)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result); static #else extern UV DPPP_(my_grok_hex)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result); #endif #ifdef grok_hex # undef grok_hex #endif #define grok_hex(a,b,c,d) DPPP_(my_grok_hex)(aTHX_ a,b,c,d) #define Perl_grok_hex DPPP_(my_grok_hex) #if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL) UV DPPP_(my_grok_hex)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result) { const char *s = start; STRLEN len = *len_p; UV value = 0; NV value_nv = 0; const UV max_div_16 = UV_MAX / 16; bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES; bool overflowed = FALSE; const char *xdigit; if (!(*flags & PERL_SCAN_DISALLOW_PREFIX)) { /* strip off leading x or 0x. for compatibility silently suffer "x" and "0x" as valid hex numbers. */ if (len >= 1) { if (s[0] == 'x') { s++; len--; } else if (len >= 2 && s[0] == '0' && s[1] == 'x') { s+=2; len-=2; } } } for (; len-- && *s; s++) { xdigit = strchr((char *) PL_hexdigit, *s); if (xdigit) { /* Write it in this wonky order with a goto to attempt to get the compiler to make the common case integer-only loop pretty tight. With gcc seems to be much straighter code than old scan_hex. */ redo: if (!overflowed) { if (value <= max_div_16) { value = (value << 4) | ((xdigit - PL_hexdigit) & 15); continue; } warn("Integer overflow in hexadecimal number"); overflowed = TRUE; value_nv = (NV) value; } value_nv *= 16.0; /* If an NV has not enough bits in its mantissa to * represent a UV this summing of small low-order numbers * is a waste of time (because the NV cannot preserve * the low-order bits anyway): we could just remember when * did we overflow and in the end just multiply value_nv by the * right amount of 16-tuples. */ value_nv += (NV)((xdigit - PL_hexdigit) & 15); continue; } if (*s == '_' && len && allow_underscores && s[1] && (xdigit = strchr((char *) PL_hexdigit, s[1]))) { --len; ++s; goto redo; } if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal hexadecimal digit '%c' ignored", *s); break; } if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 || (!overflowed && value > 0xffffffff ) #endif ) { warn("Hexadecimal number > 0xffffffff non-portable"); } *len_p = s - start; if (!overflowed) { *flags = 0; return value; } *flags = PERL_SCAN_GREATER_THAN_UV_MAX; if (result) *result = value_nv; return UV_MAX; } #endif #endif #ifndef grok_oct #if defined(NEED_grok_oct) static UV DPPP_(my_grok_oct)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result); static #else extern UV DPPP_(my_grok_oct)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result); #endif #ifdef grok_oct # undef grok_oct #endif #define grok_oct(a,b,c,d) DPPP_(my_grok_oct)(aTHX_ a,b,c,d) #define Perl_grok_oct DPPP_(my_grok_oct) #if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL) UV DPPP_(my_grok_oct)(pTHX_ char *start, STRLEN *len_p, I32 *flags, NV *result) { const char *s = start; STRLEN len = *len_p; UV value = 0; NV value_nv = 0; const UV max_div_8 = UV_MAX / 8; bool allow_underscores = *flags & PERL_SCAN_ALLOW_UNDERSCORES; bool overflowed = FALSE; for (; len-- && *s; s++) { /* gcc 2.95 optimiser not smart enough to figure that this subtraction out front allows slicker code. */ int digit = *s - '0'; if (digit >= 0 && digit <= 7) { /* Write it in this wonky order with a goto to attempt to get the compiler to make the common case integer-only loop pretty tight. */ redo: if (!overflowed) { if (value <= max_div_8) { value = (value << 3) | digit; continue; } /* Bah. We're just overflowed. */ warn("Integer overflow in octal number"); overflowed = TRUE; value_nv = (NV) value; } value_nv *= 8.0; /* If an NV has not enough bits in its mantissa to * represent a UV this summing of small low-order numbers * is a waste of time (because the NV cannot preserve * the low-order bits anyway): we could just remember when * did we overflow and in the end just multiply value_nv by the * right amount of 8-tuples. */ value_nv += (NV)digit; continue; } if (digit == ('_' - '0') && len && allow_underscores && (digit = s[1] - '0') && (digit >= 0 && digit <= 7)) { --len; ++s; goto redo; } /* Allow \octal to work the DWIM way (that is, stop scanning * as soon as non-octal characters are seen, complain only iff * someone seems to want to use the digits eight and nine). */ if (digit == 8 || digit == 9) { if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT)) warn("Illegal octal digit '%c' ignored", *s); } break; } if ( ( overflowed && value_nv > 4294967295.0) #if UVSIZE > 4 || (!overflowed && value > 0xffffffff ) #endif ) { warn("Octal number > 037777777777 non-portable"); } *len_p = s - start; if (!overflowed) { *flags = 0; return value; } *flags = PERL_SCAN_GREATER_THAN_UV_MAX; if (result) *result = value_nv; return UV_MAX; } #endif #endif #if !defined(my_snprintf) #if defined(NEED_my_snprintf) static int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); static #else extern int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); #endif #define my_snprintf DPPP_(my_my_snprintf) #define Perl_my_snprintf DPPP_(my_my_snprintf) #if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL) int DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...) { dTHX; int retval; va_list ap; va_start(ap, format); #ifdef HAS_VSNPRINTF retval = vsnprintf(buffer, len, format, ap); #else retval = vsprintf(buffer, format, ap); #endif va_end(ap); if (retval >= (int)len) Perl_croak(aTHX_ "panic: my_snprintf buffer overflow"); return retval; } #endif #endif #ifdef NO_XSLOCKS # ifdef dJMPENV # define dXCPT dJMPENV; int rEtV = 0 # define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0) # define XCPT_TRY_END JMPENV_POP; # define XCPT_CATCH if (rEtV != 0) # define XCPT_RETHROW JMPENV_JUMP(rEtV) # else # define dXCPT Sigjmp_buf oldTOP; int rEtV = 0 # define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0) # define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf); # define XCPT_CATCH if (rEtV != 0) # define XCPT_RETHROW Siglongjmp(top_env, rEtV) # endif #endif #if !defined(my_strlcat) #if defined(NEED_my_strlcat) static Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); static #else extern Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); #endif #define my_strlcat DPPP_(my_my_strlcat) #define Perl_my_strlcat DPPP_(my_my_strlcat) #if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL) Size_t DPPP_(my_my_strlcat)(char *dst, const char *src, Size_t size) { Size_t used, length, copy; used = strlen(dst); length = strlen(src); if (size > 0 && used < size - 1) { copy = (length >= size - used) ? size - used - 1 : length; memcpy(dst + used, src, copy); dst[used + copy] = '\0'; } return used + length; } #endif #endif #if !defined(my_strlcpy) #if defined(NEED_my_strlcpy) static Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); static #else extern Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); #endif #define my_strlcpy DPPP_(my_my_strlcpy) #define Perl_my_strlcpy DPPP_(my_my_strlcpy) #if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL) Size_t DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size) { Size_t length, copy; length = strlen(src); if (size > 0) { copy = (length >= size) ? size - 1 : length; memcpy(dst, src, copy); dst[copy] = '\0'; } return length; } #endif #endif #endif /* _P_P_PORTABILITY_H_ */ /* End of File ppport.h */