1Noteworthy changes in version 1.42 (2021-03-22) [C32/A32/R0] 2----------------------------------------------- 3 4 * Allow Unicode file names under Windows for the gettext domain. 5 6 * Improve cross-compiling support. [#5289] 7 8 * Improve $libdir determination by gpgrt-config. [#5293] 9 10 * Support --disable-thread by gen-lock-obj.sh. [#5296] 11 12 * Interface changes relative to the 1.40 release: 13 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14 GPG_ERR_SOURCE_TPM2D NEW. 15 16 Release-info: https://dev.gnupg.org/T5194 17 18 19Noteworthy changes in version 1.41 (2020-12-21) [C31/A31/R1] 20----------------------------------------------- 21 22 * Fixes another glitch in the "ignore" meta command. 23 24 * Fixes two typos in the German translation. 25 26 Release-info: https://dev.gnupg.org/T5192 27 28 29Noteworthy changes in version 1.40 (2020-12-21) [C31/A31/R0] 30----------------------------------------------- 31 32 * New function gpgrt_access. 33 34 * Make "ignore" meta command work correctly in the option parser. 35 36 * On Windows gpgrt_getcwd and the internal getusername now handle 37 Unicode values. [#5098] 38 39 * Update the build system. 40 41 * Interface changes relative to the 1.39 release: 42 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 gpgrt_access NEW. 44 45 Release-info: https://dev.gnupg.org/T5191 46 47 48Noteworthy changes in version 1.39 (2020-08-24) [C30/A30/R0] 49----------------------------------------------- 50 51 * On Windows gpgrt_fopen, gpgrt_chdir, and gpgrt_mkdir now handle 52 UTF-8 names. [#4083] 53 54 * Make timeout of gpgrt_poll work correctly on Windows if no file 55 descriptors are active. 56 57 * New function gpgrt_fcancel as alternative to gpgrt_close. This 58 function avoid flushing out buffered data and also tries to delete 59 a newly created file. 60 61 * Changes to ease cross-building. [#4973] 62 63 * "gpg-error --lib-version" works again. 64 65 * Interface changes relative to the 1.38 release: 66 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 67 gpgrt_fcancel NEW. 68 69 Release-info: https://dev.gnupg.org/T5031 70 71 72Noteworthy changes in version 1.38 (2020-05-29) [C29/A29/R0] 73----------------------------------------------- 74 75 * New option parser with features to implement system wide 76 configuration files. 77 78 * New functions to build file names. 79 80 * New function to help reallocating arrays. 81 82 * Protect gpgrt_inc_errorcount against counter overflow. 83 84 * Improve cross-building for new platforms. [#4774] 85 86 * Support 64-bit big-endian MIPS architecture. [#4952] 87 88 * Support static link for Windows with -lws2_32. [#4623] 89 90 * Interface changes relative to the 1.37 release: 91 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 92 gpgrt_fnameconcat NEW. 93 gpgrt_absfnameconcat NEW. 94 gpgrt_reallocarray NEW. 95 gpgrt_set_confdir NEW. 96 gpgrt_argparser NEW. 97 ARGPARSE_FLAG_SYS NEW. 98 ARGPARSE_FLAG_USER NEW. 99 ARGPARSE_FLAG_VERBOSE NEW. 100 ARGPARSE_FLAG_USERVERS NEW. 101 ARGPARSE_FLAG_WITHATTR NEW. 102 ARGPARSE_NO_CONFFILE NEW. 103 ARGPARSE_CONFFILE NEW. 104 ARGPARSE_OPT_CONFFILE NEW. 105 ARGPARSE_ATTR_FORCE NEW. 106 ARGPARSE_ATTR_IGNORE NEW. 107 ARGPARSE_TYPE_MASK NEW. 108 ARGPARSE_PERMISSION_ERROR NEW. 109 ARGPARSE_INVALID_META NEW. 110 ARGPARSE_UNKNOWN_META NEW. 111 ARGPARSE_UNEXPECTED_META NEW. 112 ARGPARSE_conffile NEW. 113 ARGPARSE_noconffile NEW. 114 ARGPARSE_verbatim NEW. 115 ARGPARSE_header NEW. 116 GPGRT_CONFDIR_USER NEW. 117 GPGRT_CONFDIR_SYS NEW. 118 119 Release-info: https://dev.gnupg.org/T4859 120 121 122Noteworthy changes in version 1.37 (2020-02-07) [C28/A28/R0] 123----------------------------------------------- 124 125 * Fixes a build problems when using Gawk 5.0 [#4459] 126 127 * Fixes Bourne shell incompatibilities on Solaris. [#4574] 128 129 * Improves cross-comiling support. [#4643] 130 131 * On Windows strerror_s is now used to emulate strerror_r. [#4539] 132 133 * New error codes to map SQLite primary error codes. 134 135 * Now uses poll(2) instead of select(2) in gpgrt_poll if possible. 136 137 * Fixes a bug in gpgrt_close. [#4698] 138 139 * Fixes build problem under Cygwin. [#4474] 140 141 * Fixes a few minor portability bugs. 142 143 * Interface changes relative to the 1.36 release: 144 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 GPG_ERR_NO_KEYBOXD NEW. 146 GPG_ERR_KEYBOXD NEW. 147 GPG_ERR_NO_SERVICE NEW. 148 GPG_ERR_SERVICE. NEW. 149 GPG_ERR_SQL_OK NEW. 150 GPG_ERR_SQL_ERROR NEW. 151 GPG_ERR_SQL_INTERNAL NEW. 152 GPG_ERR_SQL_PERM NEW. 153 GPG_ERR_SQL_ABORT NEW. 154 GPG_ERR_SQL_BUSY NEW. 155 GPG_ERR_SQL_LOCKED NEW. 156 GPG_ERR_SQL_NOMEM NEW. 157 GPG_ERR_SQL_READONLY NEW. 158 GPG_ERR_SQL_INTERRUPT NEW. 159 GPG_ERR_SQL_IOERR NEW. 160 GPG_ERR_SQL_CORRUPT NEW. 161 GPG_ERR_SQL_NOTFOUND NEW. 162 GPG_ERR_SQL_FULL NEW. 163 GPG_ERR_SQL_CANTOPEN NEW. 164 GPG_ERR_SQL_PROTOCOL NEW. 165 GPG_ERR_SQL_EMPTY NEW. 166 GPG_ERR_SQL_SCHEMA NEW. 167 GPG_ERR_SQL_TOOBIG NEW. 168 GPG_ERR_SQL_CONSTRAINT NEW. 169 GPG_ERR_SQL_MISMATCH NEW. 170 GPG_ERR_SQL_MISUSE NEW. 171 GPG_ERR_SQL_NOLFS NEW. 172 GPG_ERR_SQL_AUTH NEW. 173 GPG_ERR_SQL_FORMAT NEW. 174 GPG_ERR_SQL_RANGE NEW. 175 GPG_ERR_SQL_NOTADB NEW. 176 GPG_ERR_SQL_NOTICE NEW. 177 GPG_ERR_SQL_WARNING NEW. 178 GPG_ERR_SQL_ROW NEW. 179 GPG_ERR_SQL_DONE NEW. 180 gpg_err_code_from_sqlite NEW. 181 182 Release-info: https://dev.gnupg.org/T4772 183 184 185Noteworthy changes in version 1.36 (2019-03-19) [C27/A27/R0] 186----------------------------------------------- 187 188 * Two new error codes to better support PIV cards. 189 190 * Support armv7a-unknown-linux-gnueabihf. 191 192 * Increased estream buffer sizes for Windows. 193 194 * Interface changes relative to the 1.34 release: 195 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 GPG_ERR_NO_AUTH NEW. 197 GPG_ERR_BAD_AUTH NEW. 198 199 Release-info: https://dev.gnupg.org/T4413 200 201 202Noteworthy changes in version 1.35 (2019-01-28) [C26/A26/R1] 203----------------------------------------------- 204 205 * Distribute the correct gpgrt-config. 206 207 208Noteworthy changes in version 1.34 (2019-01-16) [C26/A26/R0] 209----------------------------------------------- 210 211 * Support for riscv32. 212 213 * New API to allow emergency cleanup after internal fatal errors. 214 215 * Minor bug and portability fixes. [#4286,#4298 216 217 * Interface changes relative to the 1.33 release: 218 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 gpgrt_abort NEW. 220 gpgrt_add_emergency_cleanup NEW. 221 222 Release-info: https://dev.gnupg.org/T4296 223 224 225Noteworthy changes in version 1.33 (2018-12-07) [C25/A25/R0] 226----------------------------------------------- 227 228 * New unified config script gpgrt-config which can now be used by all 229 GnuPG related packages. 230 231 * Support for ARC and arm64ilp32. 232 233 * The log functions now sanitize strings printed with the "%s" format 234 specifier. All control characters are C-escaped in the output. 235 Users of that function may want to remove their own escaping to 236 avoid doubling of backslashes. 237 238 * New fprintf style function to apply a custom filter for string 239 arguments. 240 241 * New function to compare version strings. 242 243 * Interface changes relative to the 1.28 release: 244 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 245 gpgrt_cmp_version New. 246 gpgrt_string_filter_t New. 247 gpgrt_fprintf_sf New. 248 gpgrt_fprintf_sf_unlocked New. 249 gpgrt_ftruncate New but limited functionality. 250 gpgrt_w32_override_locale New. 251 252 Release-info: https://dev.gnupg.org/T4205 253 254 255Noteworthy changes in version 1.32 (2018-07-12) [C24/A24/R3] 256----------------------------------------------- 257 258 * Fixes a problem with gpgrt_fflush and gpgrt_fopencookie. [#4069] 259 260 * Fixes a problem with the C11 header stdnoreturn.h. [#4002] 261 262 * The yat2m tool can now also be build on Windows. 263 264 * Updates translations for Spanish, Russian and Ukrainian. 265 266 267Noteworthy changes in version 1.31 (2018-05-02) [C24/A24/R2] 268----------------------------------------------- 269 270 * Fixes another problem with gpgrt_poll under Windows. [#3937] 271 272 * New translation for Spanish. 273 274 275Noteworthy changes in version 1.30 (2018-04-30) [C24/A24/R1] 276----------------------------------------------- 277 278 * Fixes a hang on Windows when using gpgrt_poll under nPth. 279 280 * Build fix for Solaris. [#3869] 281 282 283Noteworthy changes in version 1.29 (2018-04-11) [C24/A24/R0] 284----------------------------------------------- 285 286 * The yat2m tool is during cross-compile now also installed on the 287 host platform. 288 289 * New option parser and associated functions similar to the one used 290 by GnuPG. 291 292 * New Base-64 encoder. 293 294 * Fixes regression in 1.28 for arm64 and w64 builds. 295 296 * Interface changes relative to the 1.28 release: 297 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 gpgrt_argparse New. 299 gpgrt_usage New. 300 gpgrt_strusage New. 301 gpgrt_set_strusage New. 302 gpgrt_set_usage_outfnc New. 303 gpgrt_set_fixed_string_mapper New. 304 GPGRT_ENABLE_ARGPARSE_MACROS New macro. 305 gpgrt_b64enc_start New. 306 gpgrt_b64enc_write New. 307 gpgrt_b64enc_finish New. 308 309 310Noteworthy changes in version 1.28 (2018-03-13) [C23/A23/R0] 311----------------------------------------------- 312 313 * The formerly internal yat2m tool is now installed for a native 314 build. 315 316 * The new files gpgrt.m4 and gpgrt-config are now installed. They 317 can be used instead of gpg-error.m4 and gpg-error-config. 318 319 * New logging functions similar to those used by GnuPG. 320 321 * New helper functions for platform abstraction. 322 323 * Interface changes relative to the 1.27 release: 324 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 gpgrt_get_errorcount New API. 326 gpgrt_inc_errorcount New API. 327 gpgrt_log_set_sink New API. 328 gpgrt_log_set_socket_dir_cb New API. 329 gpgrt_log_set_pid_suffix_cb New API. 330 gpgrt_log_set_prefix New API. 331 gpgrt_log_get_prefix New API. 332 gpgrt_log_test_fd New API. 333 gpgrt_log_get_fd New API. 334 gpgrt_log_get_stream New API. 335 gpgrt_log New API. 336 gpgrt_logv New API. 337 gpgrt_logv_prefix New API. 338 gpgrt_log_string New API. 339 gpgrt_log_info New API. 340 gpgrt_log_error New API. 341 gpgrt_log_fatal New API. 342 gpgrt_log_bug New API. 343 gpgrt_log_debug New API. 344 gpgrt_log_debug_string New API. 345 gpgrt_log_printf New API. 346 gpgrt_log_flush New API. 347 gpgrt_log_printhex New API. 348 gpgrt_log_clock New API. 349 gpgrt_assert New macro. 350 _gpgrt_log_assert New internal API. 351 GPGRT_LOGLVL_BEGIN New const. 352 GPGRT_LOGLVL_CONT New const. 353 GPGRT_LOGLVL_INFO New const. 354 GPGRT_LOGLVL_WARN New const. 355 GPGRT_LOGLVL_ERROR New const. 356 GPGRT_LOGLVL_FATAL New const. 357 GPGRT_LOGLVL_BUG New const. 358 GPGRT_LOGLVL_DEBUG New const. 359 gpgrt_realloc New API. 360 gpgrt_malloc New API. 361 gpgrt_calloc New API. 362 gpgrt_strdup New API. 363 gpgrt_strconcat New API. 364 gpgrt_w32_reg_query_string New API. 365 gpgrt_getenv New API. 366 gpgrt_setenv New API. 367 gpgrt_mkdir New API. 368 gpgrt_chdir New API. 369 gpgrt_getcwd New API. 370 371 372Noteworthy changes in version 1.27 (2017-02-28) [C22/A22/R0] 373----------------------------------------------- 374 375 * Added a Base64 decoder. 376 377 * Added support for the sh3 architecture. 378 379 * Added header gpgrt.h as an alias for gpg-error.h. 380 381 * Fixed macro GPGRT_GCC_VERSION. 382 383 * Fixed a race in non-blocking I/O on Windows. 384 385 * Interface changes relative to the 1.26 release: 386 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 387 gpgrt_b64state_t NEW type. 388 gpgrt_b64dec_start NEW. 389 gpgrt_b64dec_proc NEW. 390 gpgrt_b64dec_finish NEW. 391 GPG_ERR_WRONG_NAME NEW. 392 gpgrt.h NEW header. 393 394 395Noteworthy changes in version 1.26 (2016-12-21) [C21/A21/R0] 396----------------------------------------------- 397 398 * New option --desc for gpg-error. 399 400 * Interface changes relative to the 1.25 release: 401 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 GPG_ERR_UNKNOWN_FLAG NEW. 403 GPG_ERR_INV_ORDER NEW. 404 GPG_ERR_ALREADY_FETCHED NEW. 405 GPG_ERR_TRY_LATER NEW. 406 GPG_ERR_SYSTEM_BUG NEW. 407 GPG_ERR_DNS_UNKNOWN NEW. 408 GPG_ERR_DNS_SECTION NEW. 409 GPG_ERR_DNS_ADDRESS NEW. 410 GPG_ERR_DNS_NO_QUERY NEW. 411 GPG_ERR_DNS_NO_ANSWER NEW. 412 GPG_ERR_DNS_CLOSED NEW. 413 GPG_ERR_DNS_VERIFY NEW. 414 GPG_ERR_DNS_TIMEOUT NEW. 415 416 417Noteworthy changes in version 1.25 (2016-11-14) [C20/A20/R0] 418----------------------------------------------- 419 420 * New interface gpgrt_get_syscall_clamp to allow libaries to make use 421 of Libgpg-error's system call wrapper functions. 422 423 * gpgrt_poll does now work under Windows. 424 425 * Fixed bug in the locking code when used with the nPth threading 426 library. 427 428 * Added support for {i686,x86_64}-apple-darwin. 429 430 * Added new error codes. 431 432 * Interface changes relative to the 1.23 release: 433 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 gpgrt_get_syscall_clamp NEW. 435 GPG_ERR_ENGINE_TOO_OLD NEW. 436 GPG_ERR_WINDOW_TOO_SMALL NEW. 437 GPG_ERR_WINDOW_TOO_LARGE NEW. 438 GPG_ERR_MISSING_ENVVAR NEW. 439 GPG_ERR_USER_ID_EXISTS NEW. 440 GPG_ERR_NAME_EXISTS NEW. 441 GPG_ERR_DUP_NAME NEW. 442 GPG_ERR_TOO_OLD NEW. 443 GPG_ERR_TOO_YOUNG NEW. 444 445 446Noteworthy changes in version 1.24 (2016-07-14) [C19/A19/R1] 447----------------------------------------------- 448 449 * Fixes a bug in es_fclose_snatch when used used after es_fseek. 450 451 * Fixes building without thread support. 452 453 * New configure option --disable-tests. 454 455 456Noteworthy changes in version 1.23 (2016-06-15) [C19/A19/R0] 457----------------------------------------------- 458 459 * Fixes an assertion failure due to es_flush on read/write streams. 460 461 * Fixes a bug with a too short memory limit is es_fopenmen. 462 463 * Cross-build support for powerpc-unknown-linux-gnuspe and 464 tilegx-unknown-linux-gnu architectures. 465 466 * Interface changes relative to the 1.22 release: 467 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 468 GPG_ERR_SUBKEYS_EXP_OR_REV NEW. 469 470 471Noteworthy changes in version 1.22 (2016-04-25) [C18/A18/R0] 472----------------------------------------------- 473 474 * New functions and macros to to provide iconv(3) on Windows. 475 476 * Support for LeakSanitizer with the gpgrt_annotate_leaked_object 477 inline function. 478 479 * Interface changes relative to the 1.21 release: 480 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 GPG_ERR_DB_CORRUPTED NEW. 482 gpgrt_annotate_leaked_object NEW inline func. 483 GPGRT_ENABLE_W32_ICONV_MACROS NEW. 484 gpgrt_w32_iconv_open NEW. 485 gpgrt_w32_iconv_close NEW. 486 gpgrt_w32_iconv NEW. 487 488 489Noteworthy changes in version 1.21 (2015-12-12) [C17/A17/R0] 490----------------------------------------------- 491 492 * New functions gpgrt_poll and gpgrt_set_nonblock. For now only 493 pipes and sockets on Unix are supported. 494 495 * Fixes gettext output encoding problems on Windows. 496 497 * Interface changes relative to the 1.20 release: 498 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 gpgrt_set_nonblock NEW. 500 gpgrt_get_nonblock NEW. 501 gpgrt_poll NEW. 502 gpgrt_poll_t NEW type. 503 es_poll_t NEW type. 504 es_set_nonblock NEW macro. 505 es_get_nonblock NEW macro. 506 es_poll NEW macro. 507 GPG_ERR_TRUE NEW. 508 GPG_ERR_FALSE NEW. 509 GPG_ERR_NO_NAME NEW. 510 GPG_ERR_NO_KEY NEW. 511 GPG_ERR_SERVER_FAILED NEW. 512 513 514Noteworthy changes in version 1.20 (2015-08-26) [C16/A16/R0] 515----------------------------------------------- 516 517 * New macros for GCC attributes. 518 519 * Make es_set_binary actually work for Windows. 520 521 * Allow building without thread support. 522 523 * Build without a build timestamp by default. 524 525 * Interface changes relative to the 1.19 release: 526 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 GPGRT_VERSION NEW macro. 528 GPGRT_VERSION_NUMBER NEW macro. 529 GPGRT_INLINE NEW macro. 530 GPGRT_GCC_VERSION NEW macro. 531 GPGRT_ATTR_NORETURN NEW macro. 532 GPGRT_ATTR_PRINTF NEW macro. 533 GPGRT_ATTR_NR_PRINTF NEW macro. 534 GPGRT_ATTR_FORMAT_ARG NEW macro. 535 GPGRT_ATTR_SENTINEL NEW macro. 536 GPGRT_ATTR_USED NEW macro. 537 GPGRT_ATTR_UNUSED NEW macro. 538 GPGRT_ATTR_DEPRECATED NEW macro. 539 GPGRT_ATTR_PURE NEW macro. 540 GPGRT_ATTR_MALLOC NEW macro. 541 GPGRT_HAVE_MACRO_FUNCTION NEW macro. 542 GPGRT_HAVE_PRAGMA_GCC_PUSH NEW macro. 543 544 545Noteworthy changes in version 1.19 (2015-04-10) [C15/A15/R0] 546----------------------------------------------- 547 548 * New set of error codes for use with LDAP. 549 550 * New options --help and --defines for gpg-error. 551 552 * Allow building with gcc 5. 553 554 * Interface changes relative to the 1.18 release: 555 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 556 GPG_ERR_LDAP_* NEW. 557 558 559Noteworthy changes in version 1.18 (2015-01-26) [C14/A14/R0] 560----------------------------------------------- 561 562 * New translations for Hungarian, Portuguese, Russian, and 563 traditional Chinese. Updated other translations. 564 565 * New error codes. 566 567 * Interface changes relative to the 1.17 release: 568 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 GPG_ERR_FORBIDDEN NEW. 570 GPG_ERR_OBJ_TERM_STATE NEW. 571 GPG_ERR_REQUEST_TOO_SHORT NEW. 572 GPG_ERR_REQUEST_TOO_LONG NEW. 573 GPG_ERR_LEGACY_KEY NEW. 574 575 576Noteworthy changes in version 1.17 (2014-10-15) [C13/A13/R0] 577----------------------------------------------- 578 579 * New error codes for TLS protocol libraries. 580 581 * New configure option --enable-build-timestamp. 582 583 * New man page for gpg-error-config. 584 585 * Interface changes relative to the 1.16 release: 586 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 GPG_ERR_SOURCE_TLS NEW. 588 GPG_ERR_NO_CERT_CHAIN NEW. 589 GPG_ERR_CERT_TOO_LARGE NEW. 590 GPG_ERR_INV_RECORD NEW. 591 GPG_ERR_BAD_MAC NEW. 592 GPG_ERR_UNEXPECTED_MSG NEW. 593 GPG_ERR_COMPR_FAILED NEW. 594 GPG_ERR_WOULD_WRAP NEW. 595 GPG_ERR_FATAL_ALERT NEW. 596 GPG_ERR_NO_CIPHER NEW. 597 GPG_ERR_MISSING_CLIENT_CERT NEW. 598 GPG_ERR_CLOSE_NOTIFY NEW. 599 GPG_ERR_TICKET_EXPIRED NEW. 600 GPG_ERR_BAD_TICKET NEW. 601 GPG_ERR_UNKNOWN_IDENTITY NEW. 602 GPG_ERR_BAD_HS_CERT NEW. 603 GPG_ERR_BAD_HS_CERT_REQ NEW. 604 GPG_ERR_BAD_HS_CERT_VER NEW. 605 GPG_ERR_BAD_HS_CHANGE_CIPHER NEW. 606 GPG_ERR_BAD_HS_CLIENT_HELLO NEW. 607 GPG_ERR_BAD_HS_SERVER_HELLO NEW. 608 GPG_ERR_BAD_HS_SERVER_HELLO_DONE NEW. 609 GPG_ERR_BAD_HS_FINISHED NEW. 610 GPG_ERR_BAD_HS_SERVER_KEX NEW. 611 GPG_ERR_BAD_HS_CLIENT_KEX NEW. 612 GPG_ERR_BOGUS_STRING NEW. 613 gpgrt_pending NEW. 614 gpgrt_pending_unlocked NEW. 615 616 617Noteworthy changes in version 1.16 (2014-09-18) [C12/A12/R2] 618----------------------------------------------- 619 620 * Support building for iOS. 621 622 * Fixed a prototype mismatch. 623 624 * Fix es_fclose for streams opened with "samethread". 625 626 627Noteworthy changes in version 1.15 (2014-09-11) [C12/A12/R1] 628----------------------------------------------- 629 630 * This releases fixes problems with the use of off_t and ssize_t by 631 the estream functions introduced with 1.14. Although this is 632 technically an ABI break on some platforms, we take this as a 633 simple bug fix for 1.14. The new functions are very unlikely in 634 use by any code and thus no breakage should happen. The 1.14 635 tarball will be removed from the archive. 636 637 * Add type gpgrt_off_t which is guaranteed to be 64 bit. 638 639 * Add type gpgrt_ssize_t to make use on Windows easier. On Unix 640 platforms this is an alias for ssize_t. 641 642 643Noteworthy changes in version 1.14 (2014-09-08) [C12/A12/R0] 644----------------------------------------------- 645 646 * Added gpgrt_lock_trylock. 647 648 * Added the estream library under the name gpgrt and a set of macros 649 to use them with their "es_" names. 650 651 * Interface changes relative to the 1.13 release: 652 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 GPG_ERR_KEY_DISABLED NEW. 654 gpgrt_init NEW macro. 655 gpgrt_check_version NEW. 656 gpgrt_lock_trylock NEW. 657 gpgrt_set_syscall_clamp NEW. 658 gpgrt_set_alloc_func NEW. 659 gpgrt_stream_t NEW. 660 gpgrt_cookie_io_functions_t NEW. 661 gpgrt_syshd_t NEW. 662 GPGRT_SYSHD_NONE NEW. 663 GPGRT_SYSHD_FD NEW. 664 GPGRT_SYSHD_SOCK NEW. 665 GPGRT_SYSHD_RVID NEW. 666 GPGRT_SYSHD_HANDLE NEW. 667 gpgrt_stdin NEW macro. 668 gpgrt_stdout NEW macro. 669 gpgrt_stderr NEW macro. 670 gpgrt_fopen NEW. 671 gpgrt_mopen NEW. 672 gpgrt_fopenmem NEW. 673 gpgrt_fopenmem_init NEW. 674 gpgrt_fdopen NEW. 675 gpgrt_fdopen_nc NEW. 676 gpgrt_sysopen NEW. 677 gpgrt_sysopen_nc NEW. 678 gpgrt_fpopen NEW. 679 gpgrt_fpopen_nc NEW. 680 gpgrt_freopen NEW. 681 gpgrt_fopencookie NEW. 682 gpgrt_fclose NEW. 683 gpgrt_fclose_snatch NEW. 684 gpgrt_onclose NEW. 685 gpgrt_fileno NEW. 686 gpgrt_fileno_unlocked NEW. 687 gpgrt_syshd NEW. 688 gpgrt_syshd_unlocked NEW. 689 gpgrt_flockfile NEW. 690 gpgrt_ftrylockfile NEW. 691 gpgrt_funlockfile NEW. 692 gpgrt_feof NEW. 693 gpgrt_feof_unlocked NEW. 694 gpgrt_ferror NEW. 695 gpgrt_ferror_unlocked NEW. 696 gpgrt_clearerr NEW. 697 gpgrt_clearerr_unlocked NEW. 698 gpgrt_fflush NEW. 699 gpgrt_fseek NEW. 700 gpgrt_fseeko NEW. 701 gpgrt_ftell NEW. 702 gpgrt_ftello NEW. 703 gpgrt_rewind NEW. 704 gpgrt_getc NEW macro. 705 gpgrt_getc_unlocked NEW macro. 706 gpgrt_fgetc NEW. 707 gpgrt_fputc NEW. 708 gpgrt_ungetc NEW. 709 gpgrt_read NEW. 710 gpgrt_write NEW. 711 gpgrt_write_sanitized NEW. 712 gpgrt_write_hexstring NEW. 713 gpgrt_fread NEW. 714 gpgrt_fwrite NEW. 715 gpgrt_fgets NEW. 716 gpgrt_putc NEW macro. 717 gpgrt_putc_unlocked NEW macro. 718 gpgrt_fputs NEW. 719 gpgrt_fputs_unlocked NEW. 720 gpgrt_getline NEW. 721 gpgrt_read_line NEW. 722 gpgrt_free NEW. 723 gpgrt_fprintf NEW. 724 gpgrt_fprintf_unlocked NEW. 725 gpgrt_printf NEW. 726 gpgrt_printf_unlocked NEW. 727 gpgrt_vfprintf NEW. 728 gpgrt_vfprintf_unlocked NEW. 729 gpgrt_setvbuf NEW. 730 gpgrt_setbuf NEW. 731 gpgrt_set_binary NEW. 732 gpgrt_tmpfile NEW. 733 gpgrt_opaque_set NEW. 734 gpgrt_opaque_get NEW. 735 gpgrt_fname_set NEW. 736 gpgrt_fname_get NEW. 737 gpgrt_asprintf NEW. 738 gpgrt_vasprintf NEW. 739 gpgrt_bsprintf NEW. 740 gpgrt_vbsprintf NEW. 741 gpgrt_snprintf NEW. 742 gpgrt_vsnprintf NEW. 743 744 745Noteworthy changes in version 1.13 (2014-04-15) [C11/A11/R0] 746----------------------------------------------- 747 748 * Added a portable mutex API. 749 750 * The AM_PATH_GPG_ERROR macro now defines GPG_ERROR_MT_CFLAGS and 751 GPG_ERROR_MT_LIBS autoconf output variables for use by programs 752 which need gpgrt based thread support. gpg-error-config has a new 753 option --mt. 754 755 * Interface changes relative to the 1.12 release: 756 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 757 GPG_ERR_KEY_ON_CARD NEW. 758 GPG_ERR_MAC_ALGO NEW. 759 GPG_ERR_INV_LOCK_OBJ NEW. 760 gpgrt_lock_t NEW. 761 GPGRT_LOCK_INITIALIZER NEW. 762 GPGRT_LOCK_DEFINE NEW. 763 gpgrt_lock_init NEW. 764 gpgrt_lock_lock NEW. 765 gpgrt_lock_unlock NEW. 766 gpgrt_lock_destroy NEW. 767 gpgrt_yield NEW. 768 769 770Noteworthy changes in version 1.12 (2013-06-24) 771----------------------------------------------- 772 773 * Add support for 64 bit Windows (use ./autogen.sh --build-w64). 774 775 * Fixed parsing and installing of the Windows .def file. 776 777 * Interface changes relative to the 1.11 release: 778 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 779 GPG_ERR_NO_CRYPT_CTX NEW. 780 GPG_ERR_WRONG_CRYPT_CTX NEW. 781 GPG_ERR_BAD_CRYPT_CTX NEW. 782 GPG_ERR_CRYPT_CTX_CONFLICT NEW. 783 GPG_ERR_BROKEN_PUBKEY NEW. 784 GPG_ERR_BROKEN_SECKEY NEW. 785 786 787Noteworthy changes in version 1.11 (2013-02-25) 788----------------------------------------------- 789 790 * New error source GPG_ERR_SOURCE_ASSUAN for Libassuan related 791 errors. 792 793 * New macros GPG_ERROR_VERSION and GPG_ERROR_VERSION_NUMBER. New 794 function gpg_error_check_version. 795 796 * Interface changes relative to the 1.10 release: 797 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 GPG_ERR_NO_KEYSERVER NEW. 799 GPG_ERR_INV_CURVE NEW. 800 GPG_ERR_UNKNOWN_CURVE NEW. 801 GPG_ERR_DUP_KEY NEW. 802 GPG_ERR_AMBIGUOUS NEW. 803 GPG_ERR_SOURCE_ASSUAN NEW. 804 gpg_error_check_version NEW. 805 GPG_ERROR_VERSION NEW. 806 GPG_ERROR_VERSION_NUMBER NEW. 807 808 809Noteworthy changes in version 1.10 (2010-10-26) 810----------------------------------------------- 811 812 * Using a static library on W32 does now work. 813 814 * Interface changes relative to the 1.9 release: 815 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 816 GPG_ERR_NOT_INITIALIZED NEW. 817 GPG_ERR_MISSING_ISSUER_CERT NEW. 818 GPG_ERR_FULLY_CANCELED NEW. 819 820 821Noteworthy changes in version 1.9 (2010-07-21) 822---------------------------------------------- 823 824 * New function gpg_err_deinit. 825 826 * Fix building of static lib under W32. 827 828 * Interface changes relative to the 1.8 release: 829 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 830 GPG_ERR_MISSING_KEY NEW. 831 GPG_ERR_TOO_MANY NEW. 832 GPG_ERR_LIMIT_REACHED NEW. 833 gpg_err_deinit NEW. 834 835 836Noteworthy changes in version 1.8 (2010-05-06) 837---------------------------------------------- 838 839 * Support for WindowsCE. 840 841 * New option --list for gpg-error. 842 843 * Interface changes relative to the 1.7 release: 844 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 845 GPG_ERR_NOT_ENABLED NEW. 846 GPG_ERR_SOURCE_G13 NEW. 847 GPG_ERR_NO_ENGINE NEW. 848 gpg_err_set_errno NEW. 849 850 851Noteworthy changes in version 1.7 (2008-11-26) 852---------------------------------------------- 853 854 * Minor fixes and a few new error codes. 855 856 * Interface changes relative to the 1.6 release: 857 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 858 GPG_ERR_NOT_OPERATIONAL NEW 859 GPG_ERR_NO_PASSPHRASE NEW 860 GPG_ERR_NO_PIN NEW 861 862 863Noteworthy changes in version 1.6 (2007-10-29) 864---------------------------------------------- 865 866 * Fixed a build problem under Windows. 867 868 * Interface changes relative to the 1.4 release: 869 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 GPG_ERR_UNFINISHED NEW 871 GPG_ERR_SOURCE_GPA NEW 872 GPG_ERR_SOURCE_KLEO NEW 873 874 875Noteworthy changes in version 1.5 (2006-11-30) 876---------------------------------------------- 877 878 * Minor build system fixes. 879 880 * Updated gettext. Removed included gettext copy. 881 882 * gpg-error has a new option --version. 883 884 885Noteworthy changes in version 1.4 (2006-09-14) 886---------------------------------------------- 887 888 * Support for Common Lisp is included. 889 890 * New error codes for the Assuan IPC library. 891 892 * New error code GPG_ERR_MISSING_ERRNO to be used in cases when a 893 system accidentally does not set errno but a system error 894 definitely occurred. 895 896 * New error source GPG_ERR_SOURCE_ANY to allow proper use of 897 libgpg-error even if a specific source is not available. 898 899 * New convenience functions gpg_err_code_from_syserror and 900 gpg_error_from_syserror which make sure never to return 0. 901 902 * Interface changes relative to the 1.2 release: 903 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 904 gpg_err_code_from_syserror NEW 905 gpg_error_from_syserror NEW 906 GPG_ERR_SOURCE_ANY NEW 907 GPG_ERR_MISSING_ERRNO NEW 908 GPG_ERR_UNKNOWN_OPTION NEW 909 GPG_ERR_UNKNOWN_COMMAND NEW 910 GPG_ERR_ASS_GENERAL NEW 911 GPG_ERR_ASS_ACCEPT_FAILED NEW 912 GPG_ERR_ASS_CONNECT_FAILED NEW 913 GPG_ERR_ASS_INV_RESPONSE NEW 914 GPG_ERR_ASS_INV_VALUE NEW 915 GPG_ERR_ASS_INCOMPLETE_LINE NEW 916 GPG_ERR_ASS_LINE_TOO_LONG NEW 917 GPG_ERR_ASS_NESTED_COMMANDS NEW 918 GPG_ERR_ASS_NO_DATA_CB NEW 919 GPG_ERR_ASS_NO_INQUIRE_CB NEW 920 GPG_ERR_ASS_NOT_A_SERVER NEW 921 GPG_ERR_ASS_NOT_A_CLIENT NEW 922 GPG_ERR_ASS_SERVER_START NEW 923 GPG_ERR_ASS_READ_ERROR NEW 924 GPG_ERR_ASS_WRITE_ERROR NEW 925 GPG_ERR_ASS_TOO_MUCH_DATA NEW 926 GPG_ERR_ASS_UNEXPECTED_CMD NEW 927 GPG_ERR_ASS_UNKNOWN_CMD NEW 928 GPG_ERR_ASS_SYNTAX NEW 929 GPG_ERR_ASS_CANCELED NEW 930 GPG_ERR_ASS_NO_INPUT NEW 931 GPG_ERR_ASS_NO_OUTPUT NEW 932 GPG_ERR_ASS_PARAMETER NEW 933 GPG_ERR_ASS_UNKNOWN_INQUIRE NEW 934 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 936 937Noteworthy changes in version 1.3 (2006-03-14) 938---------------------------------------------- 939 940 * GNU gettext is included for systems that do not provide it. 941 942 943Noteworthy changes in version 1.2 (2006-03-03) 944---------------------------------------------- 945 946 * New function gpg_err_init, which binds the locale directory to 947 the text domain. This function is a constructor on GCC targets, 948 so it does not need to be called explicitely. The header file 949 defines GPG_ERR_INITIALIZED in this case. This is experimental for 950 now. 951 952 * "./autogen.sh --build-w32" does now also build a DLL for W32. 953 Translations are not yet provided for this platform. 954 955 * New error codes GPG_ERR_UNKNOWN_EXTN and GPG_ERR_UNKNOWN_CRIT_EXTN. 956 957 * New error code GPG_ERR_LOCKED. 958 959 * New translations included for France, Romania, and Vietnamese. 960 961 * Interface changes relative to the 1.1 release: 962~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 963GPG_ERR_UNKNOWN_EXTN NEW 964GPG_ERR_UNKNOWN_CRIT_EXTN NEW 965GPG_ERR_LOCKED NEW 966gpg_err_init NEW 967GPG_ERR_INITIALIZED NEW 968~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 969 970 971Noteworthy changes in version 1.1 (2005-06-20) 972---------------------------------------------- 973 974 * Bug fixes. 975 976 977Noteworthy changes in version 1.0 (2004-07-30) 978---------------------------------------------- 979 980 * Ported to Solaris 2.8. 981 982 * Added a new error source GPG_ERR_SOURCE_GSTI, and new error 983 codes GPG_ERR_PROTOCOL_VIOLATION and GPG_ERR_INV_MAC for this 984 source. 985 986 * Interface changes relative to the 0.7 release: 987~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988GPG_ERR_SOURCE_GSTI NEW 989GPG_ERR_PROTOCOL_VIOLATION NEW 990GPG_ERR_INV_MAC NEW 991GPG_ERR_INV_REQUEST NEW 992~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 993 994Noteworthy changes in version 0.7 (2004-03-07) 995---------------------------------------------- 996 997 * libgpg-error can be built on systems where the errno macros do not 998 evaluate to plain numbers, but expressions. If you want to 999 cross-compile, you might have to set CC_FOR_BUILD, though. 1000 1001 * A new tool gpg-error to convert error numbers into symbols into 1002 strings is provided. 1003 1004 * Interface changes relative to the 0.6 release: 1005~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006GPG_ERR_LOCALE_PROBLEM NEW 1007GPG_ERR_NOT_LOCKED NEW 1008~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 1010Noteworthy changes in version 0.6 (2003-11-14) 1011---------------------------------------------- 1012 1013 * German translation included. 1014 1015 * It is now possible to use the inline functions even for non C99 1016 compliant compilers by given e.g. -DGPG_ERR_INLINE=inline when 1017 compiling an application using this library. Note, that gcc will 1018 use inline anyway. 1019 1020 * Interface changes relative to the 0.5 release: 1021~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1022GPG_ERR_SOURCE_KSBA NEW 1023GPG_ERR_SOURCE_DIRMNGR NEW 1024GPG_ERR_TRUNCATED NEW 1025GPG_ERR_NO_ENCODING_METHOD NEW 1026GPG_ERR_NO_ENCRYPTION_SCHEME NEW 1027GPG_ERR_NO_SIGNATURE_SCHEME NEW 1028GPG_ERR_INV_ATTR NEW 1029GPG_ERR_NO_VALUE NEW 1030GPG_ERR_NOT_FOUND NEW 1031GPG_ERR_VALUE_NOT_FOUND NEW 1032GPG_ERR_SYNTAX NEW 1033GPG_ERR_INV_CRL NEW 1034GPG_ERR_BAD_BER NEW 1035GPG_ERR_INV_BER NEW 1036GPG_ERR_ELEMENT_NOT_FOUND NEW 1037GPG_ERR_IDENTIFIER_NOT_FOUND NEW 1038GPG_ERR_INV_TAG NEW 1039GPG_ERR_INV_LENGTH NEW 1040GPG_ERR_INV_KEYINFO NEW 1041GPG_ERR_UNEXPECTED_TAG NEW 1042GPG_ERR_NOT_DER_ENCODED, NEW 1043GPG_ERR_NO_CMS_OBJ NEW 1044GPG_ERR_INV_CMS_OBJ NEW 1045GPG_ERR_UNKNOWN_CMS_OBJ, NEW 1046GPG_ERR_UNSUPPORTED_CMS_OBJ NEW 1047GPG_ERR_UNSUPPORTED_ENCODING, NEW 1048GPG_ERR_UNSUPPORTED_CMS_VERSION NEW 1049GPG_ERR_UNKNOWN_ALGORITHM NEW 1050GPG_ERR_ENCODING_PROBLEM NEW 1051GPG_ERR_INV_STATE NEW 1052GPG_ERR_DUP_VALUE, NEW 1053GPG_ERR_MISSING_ACTION NEW 1054GPG_ERR_MODULE_NOT_FOUND NEW 1055GPG_ERR_INV_OID_STRING NEW 1056GPG_ERR_INV_TIME NEW 1057GPG_ERR_INV_CRL_OBJ NEW 1058GPG_ERR_UNSUPPORTED_CRL_VERSION NEW 1059GPG_ERR_INV_CERT_OBJ NEW 1060GPG_ERR_UNKNOWN_NAME NEW 1061GPG_ERR_BUFFER_TOO_SHORT. NEW 1062~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1063 1064Noteworthy changes in version 0.5 (2003-10-06) 1065---------------------------------------------- 1066 1067 * New thread safe interface gpg_strerror_r. 1068 1069 * New error code GPG_ERR_PIN_NOT_SYNCED has been added. 1070 1071 * Interface changes relative to the 0.4 release: 1072~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1073gpg_strerror_r NEW 1074GPG_ERR_PIN_NOT_SYNCED NEW 1075~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1076 1077 1078Noteworthy changes in version 0.4 (2003-09-03) 1079---------------------------------------------- 1080 1081 * Fixed another bug that prevented that system errors were created 1082 correctly in the first place. 1083 1084 * Use inline in public header file only on C99 compilers. 1085 1086 1087Noteworthy changes in version 0.3 (2003-07-31) 1088---------------------------------------------- 1089 1090 * Fixed bug that prevented that system errors were mapped to error 1091 strings correctly. 1092 1093 1094Noteworthy changes in version 0.2 (2003-07-30) 1095---------------------------------------------- 1096 1097 * Value of the error code GPG_ERR_CANCELED was fixed. 1098 1099 * New error codes GPG_ERR_WRONG_CARD, GPG_ERR_HARDWARE, 1100 GPG_ERR_PIN_BLOCKED and GPG_ERR_USE_CONDITIONS have been added. 1101 1102 * The header file has been made C++ clean. 1103 1104 * AM_PATH_GPG_ERR has been fixed to work without explicit version 1105 number. 1106 1107 * The header file now uses inline instead __inline__ for non-GNU 1108 compilers. 1109 1110 1111Noteworthy changes in version 0.1 (2003-06-06) 1112---------------------------------------------- 1113 1114 * Initial release. 1115 1116 1117 Copyright 2003, 2004, 2005, 2010 g10 Code GmbH 1118 1119 This file is free software; as a special exception the author gives 1120 unlimited permission to copy and/or distribute it, with or without 1121 modifications, as long as this notice is preserved. 1122 1123 This file is distributed in the hope that it will be useful, but 1124 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the 1125 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1126