Skip to content
Snippets Groups Projects
Select Git revision
  • f2b3b7f8259c6e69655d62b2e06b72ba9da3ac3f
  • master default protected
  • hpke
  • ppc-chacha-4core
  • delete-internal-name-mangling
  • master-updates
  • ppc-gcm
  • ppc-chacha-2core
  • refactor-ecc-mod
  • ppc-chacha-core
  • use-mpn_cnd-functions
  • optimize-ecc-invert
  • default-m4-quote-char
  • power-asm-wip
  • test-fat
  • chacha-3core-neon
  • x86_64-salsa20-2core
  • salsa20-2core-neon
  • bcrypt
  • arm-salsa20-chacha-vsra
  • test-shlib-dir
  • nettle_3.6_release_20200429
  • nettle_3.6rc3
  • nettle_3.6rc2
  • nettle_3.6rc1
  • nettle_3.5.1_release_20190627
  • nettle_3.5_release_20190626
  • nettle_3.5rc1
  • nettle_3.4.1_release_20181204
  • nettle_3.4.1rc1
  • nettle_3.4_release_20171119
  • nettle_3.4rc2
  • nettle_3.4rc1
  • nettle_3.3_release_20161001
  • nettle_3.2_release_20160128
  • nettle_3.1.1_release_20150424
  • nettle_3.1_release_20150407
  • nettle_3.1rc3
  • nettle_3.1rc2
  • nettle_3.1rc1
  • nettle_3.0_release_20140607
41 results

knuth-lfib.h

Blame
  • Forked from Nettle / nettle
    Source project has a limited visibility.
    • Niels Möller's avatar
      4fd20960
      * New name mangling, to reduce the risk of link collisions. All · 4fd20960
      Niels Möller authored
      functions (except memxor) now use a nettle_ or _nettle prefix when
      seen by the linker. For most functions, the header file that declares
      a function also use #define to provide a shorter more readable name
      without the prefix.
      
      Rev: src/nettle/aes-internal.h:1.9
      Rev: src/nettle/aes.h:1.6
      Rev: src/nettle/arcfour.h:1.4
      Rev: src/nettle/base16.h:1.2
      Rev: src/nettle/base64.h:1.12
      Rev: src/nettle/blowfish.h:1.8
      Rev: src/nettle/cast128.h:1.4
      Rev: src/nettle/cbc.h:1.4
      Rev: src/nettle/des.h:1.8
      Rev: src/nettle/dsa.h:1.7
      Rev: src/nettle/hmac.h:1.5
      Rev: src/nettle/knuth-lfib.h:1.2
      Rev: src/nettle/md5-compat.h:1.2
      Rev: src/nettle/md5.h:1.6
      Rev: src/nettle/pgp.h:1.2
      Rev: src/nettle/pkcs1.h:1.2
      Rev: src/nettle/rsa-compat.h:1.3
      Rev: src/nettle/rsa.h:1.22
      Rev: src/nettle/serpent.h:1.6
      Rev: src/nettle/sexp.h:1.15
      Rev: src/nettle/sha.h:1.3
      Rev: src/nettle/twofish.h:1.5
      Rev: src/nettle/yarrow.h:1.10
      4fd20960
      History
      * New name mangling, to reduce the risk of link collisions. All
      Niels Möller authored
      functions (except memxor) now use a nettle_ or _nettle prefix when
      seen by the linker. For most functions, the header file that declares
      a function also use #define to provide a shorter more readable name
      without the prefix.
      
      Rev: src/nettle/aes-internal.h:1.9
      Rev: src/nettle/aes.h:1.6
      Rev: src/nettle/arcfour.h:1.4
      Rev: src/nettle/base16.h:1.2
      Rev: src/nettle/base64.h:1.12
      Rev: src/nettle/blowfish.h:1.8
      Rev: src/nettle/cast128.h:1.4
      Rev: src/nettle/cbc.h:1.4
      Rev: src/nettle/des.h:1.8
      Rev: src/nettle/dsa.h:1.7
      Rev: src/nettle/hmac.h:1.5
      Rev: src/nettle/knuth-lfib.h:1.2
      Rev: src/nettle/md5-compat.h:1.2
      Rev: src/nettle/md5.h:1.6
      Rev: src/nettle/pgp.h:1.2
      Rev: src/nettle/pkcs1.h:1.2
      Rev: src/nettle/rsa-compat.h:1.3
      Rev: src/nettle/rsa.h:1.22
      Rev: src/nettle/serpent.h:1.6
      Rev: src/nettle/sexp.h:1.15
      Rev: src/nettle/sha.h:1.3
      Rev: src/nettle/twofish.h:1.5
      Rev: src/nettle/yarrow.h:1.10
    iterators.cmod 53.49 KiB
    /* -*- c -*-
    || This file is part of Pike. For copyright information see COPYRIGHT.
    || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
    || for more information.
    || $Id: iterators.cmod,v 1.70 2008/06/29 12:37:10 nilsson Exp $
    */
    
    #include "global.h"
    #include "main.h"
    #include "object.h"
    #include "mapping.h"
    #include "multiset.h"
    #include "svalue.h"
    #include "array.h"
    #include "pike_macros.h"
    #include "pike_error.h"
    #include "pike_memory.h"
    #include "dynamic_buffer.h"
    #include "interpret.h"
    #include "las.h"
    #include "gc.h"
    #include "stralloc.h"
    #include "pike_security.h"
    #include "opcodes.h"
    #include "pike_error.h"
    #include "program.h"
    #include "operators.h"
    #include "builtin_functions.h"
    #include "constants.h"
    
    #define sp Pike_sp
    
    DECLARATIONS
    
    /*! @class Iterator
     *!
     *! This is the interface for iterator objects. They implement an
     *! interface to a collection or stream of data items and a cursor
     *! that can be used to iterate over and examine individual items in
     *! the data set.
     *!
     *! Iterators are typically created to access a data set in some
     *! specific object, array, mapping, multiset or string. An object can
     *! have several iterators that access different data sets in it, or
     *! the same in different ways. E.g. strings have both an iterator for
     *! access char-by-char (@[String.Iterator]), and another for access
     *! over splitted substrings (@[String.SplitIterator]).
     *! @[lfun::_get_iterator] may be defined in an object to get an
     *! instance of the canonical iterator type for it. It's used by e.g.
     *! @[foreach] to iterate over objects conveniently.
     *!
     *! It's not an error to advance an iterator past the beginning or end
     *! of the data set; @[`!()] will only return true then, and @[index]
     *! and @[value] will return @[UNDEFINED]. An iterator in that state
     *! need not keep track of positions, so it's undefined what happens
     *! if it's "moved back" into the set of items.
     *!
     *! Backward movement for iterators is optional. It's supported if and
     *! only if @[`-()] is defined, but even then it's undefined how far
     *! back the iterator can move. Therefore iterators may support only a
     *! limited amount of backward movement, e.g. when they access a
     *! stream through a limited buffer. If such an iterator is moved back
     *! past the limit then it'll behave as if it's pointing entirely
     *! outside the data set (see above).
     *!
     *! An iterator that doesn't support backward movement at all should
     *! throw an error if it's attempted.
     *!
     *! @seealso
     *!   @[predef::get_iterator], @[lfun::_get_iterator],