summaryrefslogtreecommitdiffstats
path: root/Include/internal/pycore_pyhash.h
blob: 84cb72fa6fd1b26e9413f1b6efe568164204651d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#ifndef Py_INTERNAL_PYHASH_H
#define Py_INTERNAL_PYHASH_H

#ifndef Py_BUILD_CORE
#  error "this header requires Py_BUILD_CORE define"
#endif

// Similar to Py_HashPointer(), but don't replace -1 with -2.
static inline Py_hash_t
_Py_HashPointerRaw(const void *ptr)
{
    uintptr_t x = (uintptr_t)ptr;
    Py_BUILD_ASSERT(sizeof(x) == sizeof(ptr));

    // Bottom 3 or 4 bits are likely to be 0; rotate x by 4 to the right
    // to avoid excessive hash collisions for dicts and sets.
    x = (x >> 4) | (x << (8 * sizeof(uintptr_t) - 4));

    Py_BUILD_ASSERT(sizeof(x) == sizeof(Py_hash_t));
    return (Py_hash_t)x;
}

/* Hash secret
 *
 * memory layout on 64 bit systems
 *   cccccccc cccccccc cccccccc  uc -- unsigned char[24]
 *   pppppppp ssssssss ........  fnv -- two Py_hash_t
 *   k0k0k0k0 k1k1k1k1 ........  siphash -- two uint64_t
 *   ........ ........ ssssssss  djbx33a -- 16 bytes padding + one Py_hash_t
 *   ........ ........ eeeeeeee  pyexpat XML hash salt
 *
 * memory layout on 32 bit systems
 *   cccccccc cccccccc cccccccc  uc
 *   ppppssss ........ ........  fnv -- two Py_hash_t
 *   k0k0k0k0 k1k1k1k1 ........  siphash -- two uint64_t (*)
 *   ........ ........ ssss....  djbx33a -- 16 bytes padding + one Py_hash_t
 *   ........ ........ eeee....  pyexpat XML hash salt
 *
 * (*) The siphash member may not be available on 32 bit platforms without
 *     an unsigned int64 data type.
 */
typedef union {
    /* ensure 24 bytes */
    unsigned char uc[24];
    /* two Py_hash_t for FNV */
    struct {
        Py_hash_t prefix;
        Py_hash_t suffix;
    } fnv;
    /* two uint64 for SipHash24 */
    struct {
        uint64_t k0;
        uint64_t k1;
    } siphash;
    /* a different (!) Py_hash_t for small string optimization */
    struct {
        unsigned char padding[16];
        Py_hash_t suffix;
    } djbx33a;
    struct {
        unsigned char padding[16];
        Py_hash_t hashsalt;
    } expat;
} _Py_HashSecret_t;

// Export for '_elementtree' shared extension
PyAPI_DATA(_Py_HashSecret_t) _Py_HashSecret;

#ifdef Py_DEBUG
extern int _Py_HashSecret_Initialized;
#endif


#ifndef MS_WINDOWS
# define _py_urandom_cache_INIT \
    { \
        .fd = -1, \
    }
#else
# define _py_urandom_cache_INIT {0}
#endif

#define pyhash_state_INIT \
    { \
        .urandom_cache = _py_urandom_cache_INIT, \
    }


extern uint64_t _Py_KeyedHash(uint64_t key, const void *src, Py_ssize_t src_sz);

#endif  // !Py_INTERNAL_PYHASH_H
external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = qtools_docs/qtools.tag=../../qtools_docs/html -GENERATE_TAGFILE = +GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = NO -MSCGEN_PATH = +MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES HAVE_DOT = YES DOT_FONTNAME = FreeSans DOT_FONTSIZE = 10 -DOT_FONTPATH = +DOT_FONTPATH = CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES @@ -270,8 +282,8 @@ CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = +DOT_PATH = +DOTFILE_DIRS = DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO diff --git a/INSTALL b/INSTALL index b69fafd..1ecaac2 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.6.3-20100507 +DOXYGEN Version 1.6.3-20100603 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (07 May 2010) +Dimitri van Heesch (03 June 2010) diff --git a/README b/README index 2cb931b..45fd5b1 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.6.3_20100507 +DOXYGEN Version 1.6.3_20100603 Please read INSTALL for compilation instructions. @@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (07 May 2010) +Dimitri van Heesch (dimitri@stack.nl) (03 June 2010) diff --git a/addon/doxywizard/Makefile.in b/addon/doxywizard/Makefile.in index 75a3a6d..6f7c4bd 100644 --- a/addon/doxywizard/Makefile.in +++ b/addon/doxywizard/Makefile.in @@ -10,7 +10,7 @@ # See the GNU General Public License for more details. # -QMAKE=qmake +QMAKE=qmake $(MKSPECS) all: Makefile.doxywizard $(MAKE) -f Makefile.doxywizard diff --git a/addon/doxywizard/doxywizard.cpp b/addon/doxywizard/doxywizard.cpp index 329f60e..5299c10 100644 --- a/addon/doxywizard/doxywizard.cpp +++ b/addon/doxywizard/doxywizard.cpp @@ -4,6 +4,10 @@ #include "expert.h" #include "wizard.h" +#ifdef WIN32 +#include +#endif + #define MAX_RECENT_FILES 10 const int messageTimeout = 5000; //!< status bar message timeout in millisec. @@ -520,12 +524,13 @@ void MainWindow::showHtmlOutput() QFileInfo fi(indexFile); // TODO: the following doesn't seem to work with IE #ifdef WIN32 - QString indexUrl(QString::fromAscii("file:///")); + //QString indexUrl(QString::fromAscii("file:///")); + ShellExecute(NULL, L"open", fi.absoluteFilePath().utf16(), NULL, NULL, SW_SHOWNORMAL); #else QString indexUrl(QString::fromAscii("file://")); -#endif indexUrl+=fi.absoluteFilePath(); QDesktopServices::openUrl(QUrl(indexUrl)); +#endif } void MainWindow::saveLog() diff --git a/addon/doxywizard/doxywizard.ico b/addon/doxywizard/doxywizard.ico new file mode 100644 index 0000000..d91f219 Binary files /dev/null and b/addon/doxywizard/doxywizard.ico differ diff --git a/addon/doxywizard/doxywizard.pro.in b/addon/doxywizard/doxywizard.pro.in index b9f8f70..3b40576 100644 --- a/addon/doxywizard/doxywizard.pro.in +++ b/addon/doxywizard/doxywizard.pro.in @@ -25,3 +25,4 @@ SOURCES += doxywizard.cpp ../../src/version.cpp expert.cpp wizard.cpp \ inputbool.cpp inputstring.cpp inputint.cpp inputstrlist.cpp LEXSOURCES += config.l RESOURCES += doxywizard.qrc +win32:RC_FILE += doxywizard.rc diff --git a/addon/doxywizard/doxywizard.rc b/addon/doxywizard/doxywizard.rc new file mode 100644 index 0000000..7f5327c --- /dev/null +++ b/addon/doxywizard/doxywizard.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "doxywizard.ico" diff --git a/configure b/configure index ced9687..f1d483a 100755 --- a/configure +++ b/configure @@ -20,7 +20,7 @@ doxygen_version_minor=6 doxygen_version_revision=3 #NOTE: Setting version_mmn to "NO" will omit mmn info from the package. -doxygen_version_mmn=20100507 +doxygen_version_mmn=20100603 bin_dirs=`echo $PATH | sed -e "s/:/ /g"` @@ -268,7 +268,7 @@ if test "$f_wizard" = YES; then if test -z "$QTDIR"; then echo " QTDIR environment variable not set!" echo -n " Checking for Qt..." - for d in /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4}; do + for d in /usr /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4}; do if test -x "$d/bin/qmake"; then QTDIR=$d fi @@ -499,6 +499,17 @@ TMAKE += -unix EOF fi +if test "$f_platform" = "macosx-c++"; then + cat >> .makeconfig <> .makeconfig <com.mycompany.MyDocSet. Doxygen will append .docset to the name. +\anchor cfg_docset_publisher_id +
\c DOCSET_PUBLISHER_ID
+When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +the documentation publisher. This should be a reverse domain-name style +string, e.g. com.mycompany.MyDocSet.documentation. + +\anchor cfg_docset_publisher_name +
\c DOCSET_PUBLISHER_NAME
+The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. \anchor cfg_generate_htmlhelp
\c GENERATE_HTMLHELP
@@ -1561,6 +1574,12 @@ and Class Hierarchy pages using a tree view instead of an ordered list. used to set the initial width (in pixels) of the frame in which the tree is shown. +\anchor cfg_ext_links_in_window +
\c EXT_LINKS_IN_WINDOW
+ \addindex EXT_LINKS_IN_WINDOW + When the \c EXT_LINKS_IN_WINDOW option is set to \c YES doxygen will open + links to external symbols imported via tag files in a separate window. + \anchor cfg_formula_fontsize
\c FORMULA_FONTSIZE
\addindex FORMULA_FONTSIZE @@ -2036,6 +2055,15 @@ TAGFILES = file1=loc1 "file2 = loc2" ... visualization toolkit from AT\&T and Lucent Bell Labs. The other options in this section have no effect if this option is set to \c NO (the default) +\anchor cfg_dot_num_threads +
\c DOT_NUM_THREADS
+ \addindex DOT_NUM_THREADS + The \c DOT_NUM_THREADS specifies the number of dot invocations doxygen is + allowed to run in parallel. When set to 0 (the default) doxygen will + base this on the number of processors available in the system. You can set it + explicitly to a value larger than 0 to get control over the balance + between CPU load and processing speed. + \anchor cfg_dot_fontname
\c DOT_FONTNAME
\addindex DOT_FONTNAME diff --git a/doc/install.doc b/doc/install.doc index e1a6a29..b213555 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -56,8 +56,8 @@ tools should be installed.
  • Qt Software's GUI toolkit - Qt - \latexonly(see {\tt http://www.trolltech.com/products/qt.html})\endlatexonly + Qt + \latexonly(see {\tt http://qt.nokia.com/})\endlatexonly \addindex Qt version 4.3 or higher. This is needed to build the GUI front-end doxywizard. @@ -410,7 +410,7 @@ You can now build the Release or Debug flavor of Doxygen and Doxytag by right-cl the project in the solutions explorer, and selecting Build. Note that compiling Doxywizard currently requires Qt version 4 -(see http://www.trolltech.com/products/qt/qt3). +(see http://qt.nokia.com/products/platform/qt-for-windows). If you do not have a commercial license, you can build Doxywizard with the open source version (see http://qtwin.sourceforge.net/qt3-win32/compile-msvc-2005.php), but I have not tried this myself. @@ -497,17 +497,11 @@ Here is what is required: steps.
  • From Doxygen-1.2.2-20001015 onwards, the distribution includes the part - of Qt-2.x.y that is needed for to compile doxygen and doxytag, + of Qt that is needed for to compile doxygen and doxytag, The Windows specific part were also created. - As a result doxygen can be compiled on systems without X11 or the - commerical version of Qt. - - For doxywizard, a complete Qt library is - still a requirement however. A commercial license to build - doxywizard with the latest Qt library was kindly donated to me - by the nice people at Qt Software. - See doxygen download page for a link. - + As a result doxygen (without the wizard) can be compiled on systems + without X11 or the (commerical) version of Qt. +
  • If you used WinZip to extract the tar archive it will (apparently) not create empty folders, so you have to add the folders objects and bin manually in the root of the diff --git a/doc/language.doc b/doc/language.doc index a26d36f..b61b9f4 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -68,12 +68,12 @@ when the translator was updated. Brazilian Portuguese Fabio "FJTC" Jun Takada Chino jun-chino at uol dot com dot br - 1.6.3 + up-to-date Catalan Maximiliano Pin
    Albert Mora - max.pin at bitroit dot com
    amora at iua dot upf dot es + max.pin at bitroit dot com
    [unreachable] 1.6.3 @@ -91,8 +91,8 @@ when the translator was updated. Croatian Boris Bralo - boris.bralo at zg dot htnet dot hr - 1.6.3 + boris.bralo at gmail dot com + up-to-date Czech @@ -145,13 +145,13 @@ when the translator was updated. Greek Paul Gessos - nickreserved at yahoo dot com - 1.5.4 + gessos.paul at yahoo dot gr + up-to-date Hungarian Ákos Kiss
    Földvári György - akiss at users dot sourceforge dot net
    foldvari lost at cyberspace + akiss at users dot sourceforge dot net
    [unreachable] 1.4.6 @@ -169,7 +169,7 @@ when the translator was updated. Japanese Hiroki Iseri
    Ryunosuke Satoh
    Kenji Nagamatsu
    Iwasa Kazmi - goyoki at gmail dot com
    sun594 at hotmail dot com
    naga at joyful dot club dot ne dot jp
    iwasa at cosmo-system dot jp + goyoki at gmail dot com
    sun594 at hotmail dot com
    naga at joyful dot club dot ne dot jp
    [unreachable] 1.6.0 @@ -181,7 +181,7 @@ when the translator was updated. Korean Kim Taedong
    SooYoung Jung
    Richard Kim - fly1004 at gmail dot com
    jung5000 at gmail dot com
    ryk at dspwiz dot com + fly1004 at gmail dot com
    jung5000 at gmail dot com
    [unreachable] 1.6.3 @@ -192,8 +192,8 @@ when the translator was updated. Lithuanian - Tomas Simonaitis
    Mindaugas Radzius
    Aidas Berukstis - haden at homelan dot lt
    mindaugasradzius at takas dot lt
    aidasber at takas dot lt + Tomas Simonaitis
    Mindaugas Radzius
    Aidas Berukstis
    -- contact lost -- + [unreachable]
    [unreachable]
    [unreachable]
    1.4.6 @@ -217,13 +217,13 @@ when the translator was updated. Polish Piotr Kaminski
    Grzegorz Kowal
    Krzysztof Kral - Piotr.Kaminski at ctm dot gdynia dot pl
    g_kowal at poczta dot onet dot pl
    krzysztof.kral at gmail dot com + [unreachable]
    [unreachable]
    krzysztof.kral at gmail dot com 1.6.3 Portuguese Rui Godinho Lopes - ruiglopes at yahoo dot com + [unreachable] 1.3.3 @@ -241,7 +241,7 @@ when the translator was updated. Serbian Dejan Milosavljevic - dmilos at email dot com + [unreachable] 1.6.0 @@ -252,8 +252,8 @@ when the translator was updated. Slovak - Stanislav Kudláč - skudlac at pobox dot sk + -- searching for the maintainer -- + 1.2.18 @@ -265,8 +265,8 @@ when the translator was updated. Spanish Bartomeu
    Francisco Oltra Thennet
    David Vaquero - bartomeu at loteria3cornella dot com
    foltra at puc dot cl
    david at grupoikusnet dot com - 1.6.3 + bartomeu at loteria3cornella dot com
    [unreachable]
    david at grupoikusnet dot com + up-to-date Swedish @@ -282,8 +282,8 @@ when the translator was updated. Ukrainian - Olexij Tkatchenko - olexij.tkatchenko at parcs dot de + -- searching for the maintainer -- + 1.4.1 @@ -311,10 +311,10 @@ when the translator was updated. \hline Arabic & Moaz Reyad & {\tt\tiny moazreyad@yahoo.com} & 1.4.6 \\ \hline - Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} & 1.6.3 \\ + Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} & up-to-date \\ \hline Catalan & Maximiliano Pin & {\tt\tiny max.pin@bitroit.com} & 1.6.3 \\ - ~ & Albert Mora & {\tt\tiny amora@iua.upf.es} & ~ \\ + ~ & Albert Mora & {\tt\tiny [unreachable] amora@iua.upf.es} & ~ \\ \hline Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & 1.6.0 \\ ~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\ @@ -322,7 +322,7 @@ when the translator was updated. Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin.tw@gmail.com} & 1.6.0 \\ ~ & Gary Lee & {\tt\tiny garywlee@gmail.com} & ~ \\ \hline - Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & 1.6.3 \\ + Croatian & Boris Bralo & {\tt\tiny boris.bralo@gmail.com} & up-to-date \\ \hline Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & 1.6.3 \\ \hline @@ -340,10 +340,10 @@ when the translator was updated. \hline German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & 1.6.3 \\ \hline - Greek & Paul Gessos & {\tt\tiny nickreserved@yahoo.com} & 1.5.4 \\ + Greek & Paul Gessos & {\tt\tiny gessos.paul@yahoo.gr} & up-to-date \\ \hline Hungarian & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & 1.4.6 \\ - ~ & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari lost@cyberspace} & ~ \\ + ~ & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny [unreachable] foldvari lost@cyberspace} & ~ \\ \hline Indonesian & Hendy Irawan & {\tt\tiny ceefour@gauldong.net} & 1.4.6 \\ \hline @@ -353,19 +353,20 @@ when the translator was updated. Japanese & Hiroki Iseri & {\tt\tiny goyoki@gmail.com} & 1.6.0 \\ ~ & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & ~ \\ ~ & Kenji Nagamatsu & {\tt\tiny naga@joyful.club.ne.jp} & ~ \\ - ~ & Iwasa Kazmi & {\tt\tiny iwasa@cosmo-system.jp} & ~ \\ + ~ & Iwasa Kazmi & {\tt\tiny [unreachable] iwasa@cosmo-system.jp} & ~ \\ \hline JapaneseEn & see the Japanese language & {\tt\tiny ~} & English based \\ \hline Korean & Kim Taedong & {\tt\tiny fly1004@gmail.com} & 1.6.3 \\ ~ & SooYoung Jung & {\tt\tiny jung5000@gmail.com} & ~ \\ - ~ & Richard Kim & {\tt\tiny ryk@dspwiz.com} & ~ \\ + ~ & Richard Kim & {\tt\tiny [unreachable] ryk@dspwiz.com} & ~ \\ \hline KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\ \hline - Lithuanian & Tomas Simonaitis & {\tt\tiny haden@homelan.lt} & 1.4.6 \\ - ~ & Mindaugas Radzius & {\tt\tiny mindaugasradzius@takas.lt} & ~ \\ - ~ & Aidas Berukstis & {\tt\tiny aidasber@takas.lt} & ~ \\ + Lithuanian & Tomas Simonaitis & {\tt\tiny [unreachable] haden@homelan.lt} & 1.4.6 \\ + ~ & Mindaugas Radzius & {\tt\tiny [unreachable] mindaugasradzius@takas.lt} & ~ \\ + ~ & Aidas Berukstis & {\tt\tiny [unreachable] aidasber@takas.lt} & ~ \\ + ~ & -- contact lost -- & {\tt\tiny } & ~ \\ \hline Macedonian & Slave Jovanovski & {\tt\tiny slavejovanovski@yahoo.com} & 1.6.0 \\ \hline @@ -373,34 +374,34 @@ when the translator was updated. \hline Persian & Ali Nadalizadeh & {\tt\tiny nadalizadeh@gmail.com} & 1.6.0 \\ \hline - Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.6.3 \\ - ~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\ + Polish & Piotr Kaminski & {\tt\tiny [unreachable] Piotr.Kaminski@ctm.gdynia.pl} & 1.6.3 \\ + ~ & Grzegorz Kowal & {\tt\tiny [unreachable] g\_kowal@poczta.onet.pl} & ~ \\ ~ & Krzysztof Kral & {\tt\tiny krzysztof.kral@gmail.com} & ~ \\ \hline - Portuguese & Rui Godinho Lopes & {\tt\tiny ruiglopes@yahoo.com} & 1.3.3 \\ + Portuguese & Rui Godinho Lopes & {\tt\tiny [unreachable] ruiglopes@yahoo.com} & 1.3.3 \\ \hline Romanian & Ionut Dumitrascu & {\tt\tiny reddumy@yahoo.com} & 1.6.0 \\ ~ & Alexandru Iosup & {\tt\tiny aiosup@yahoo.com} & ~ \\ \hline Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & 1.6.0 \\ \hline - Serbian & Dejan Milosavljevic & {\tt\tiny dmilos@email.com} & 1.6.0 \\ + Serbian & Dejan Milosavljevic & {\tt\tiny [unreachable] dmilos@email.com} & 1.6.0 \\ \hline SerbianCyrilic & Nedeljko Stefanovic & {\tt\tiny stenedjo@yahoo.com} & 1.6.0 \\ \hline - Slovak & Stanislav Kudl\'{a}\v{c} & {\tt\tiny skudlac@pobox.sk} & 1.2.18 \\ + Slovak & -- searching for the maintainer -- & {\tt\tiny } & 1.2.18 \\ \hline Slovene & Matja\v{z} Ostrover\v{s}nik & {\tt\tiny matjaz.ostroversnik@ostri.org} & 1.4.6 \\ \hline - Spanish & Bartomeu & {\tt\tiny bartomeu@loteria3cornella.com} & 1.6.3 \\ - ~ & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & ~ \\ + Spanish & Bartomeu & {\tt\tiny bartomeu@loteria3cornella.com} & up-to-date \\ + ~ & Francisco Oltra Thennet & {\tt\tiny [unreachable] foltra@puc.cl} & ~ \\ ~ & David Vaquero & {\tt\tiny david@grupoikusnet.com} & ~ \\ \hline Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.6.0 \\ \hline Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3@yahoo.com} & 1.6.0 \\ \hline - Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@parcs.de} & 1.4.1 \\ + Ukrainian & -- searching for the maintainer -- & {\tt\tiny } & 1.4.1 \\ \hline Vietnamese & Dang Minh Tuan & {\tt\tiny tuanvietkey@gmail.com} & 1.6.0 \\ \hline diff --git a/doc/maintainers.txt b/doc/maintainers.txt index 754cb1b..e7a1028 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -8,135 +8,141 @@ % The following one or more lines contain information about % the maintainer(s) for the language (one line, one maintainer) % in the form: +% If the is prefixed [unreachable] it is not displayed in the table +% of maintainers in the Doxygen documentation, nor it is used when building +% the mailto.txt by translator.py. TranslatorAfrikaans -Johan Prinsloo: johan@zippysnoek.com +Johan Prinsloo: johan at zippysnoek dot com TranslatorArabic -Moaz Reyad: moazreyad@yahoo.com +Moaz Reyad: moazreyad at yahoo dot com TranslatorBrazilian -Fabio "FJTC" Jun Takada Chino: jun-chino@uol.com.br +Fabio "FJTC" Jun Takada Chino: jun-chino at uol dot com dot br TranslatorCatalan -Maximiliano Pin: max.pin@bitroit.com -Albert Mora: amora@iua.upf.es +Maximiliano Pin: max dot pin at bitroit dot com +Albert Mora: [unreachable] amora at iua dot upf dot es TranslatorChinese -Li Daobing: lidaobing@gmail.com -Wei Liu: liuwei@asiainfo.com +Li Daobing: lidaobing at gmail dot com +Wei Liu: liuwei at asiainfo dot com TranslatorChinesetraditional -Daniel YC Lin: dlin.tw@gmail.com -Gary Lee: garywlee@gmail.com +Daniel YC Lin: dlin dot tw at gmail dot com +Gary Lee: garywlee at gmail dot com TranslatorCroatian -Boris Bralo: boris.bralo@zg.htnet.hr +Boris Bralo: boris dot bralo at gmail dot com TranslatorCzech -Petr Přikryl: prikrylp@skil.cz +Petr Přikryl: prikrylp at skil dot cz TranslatorDanish -Erik Søe Sørensen: eriksoe+doxygen@daimi.au.dk +Erik Søe Sørensen: eriksoe+doxygen at daimi dot au dot dk TranslatorDutch -Dimitri van Heesch: dimitri@stack.nl +Dimitri van Heesch: dimitri at stack dot nl TranslatorEnglish -Dimitri van Heesch: dimitri@stack.nl +Dimitri van Heesch: dimitri at stack dot nl TranslatorEsperanto -Ander Martinez: dwarfnauko@gmail.com +Ander Martinez: dwarfnauko at gmail dot com TranslatorFinnish -Antti Laine: antti.a.laine@tut.fi +Antti Laine: antti dot a dot laine at tut dot fi TranslatorFrench -Xavier Outhier: xouthier@yahoo.fr +Xavier Outhier: xouthier at yahoo dot fr TranslatorGerman -Jens Seidel: jensseidel@users.sf.net +Jens Seidel: jensseidel at users dot sf dot net TranslatorGreek -Paul Gessos: nickreserved@yahoo.com +Paul Gessos: gessos dot paul at yahoo dot gr TranslatorHungarian -Ákos Kiss: akiss@users.sourceforge.net -Földvári György: foldvari lost@cyberspace +Ákos Kiss: akiss at users dot sourceforge dot net +Földvári György: [unreachable] foldvari lost at cyberspace TranslatorIndonesian -Hendy Irawan: ceefour@gauldong.net +Hendy Irawan: ceefour at gauldong dot net TranslatorItalian -Alessandro Falappa: alessandro@falappa.net -Ahmed Aldo Faisal: aaf23@cam.ac.uk +Alessandro Falappa: alessandro at falappa dot net +Ahmed Aldo Faisal: aaf23 at cam dot ac dot uk TranslatorJapanese -Hiroki Iseri: goyoki@gmail.com -Ryunosuke Satoh: sun594@hotmail.com -Kenji Nagamatsu: naga@joyful.club.ne.jp -Iwasa Kazmi: iwasa@cosmo-system.jp +Hiroki Iseri: goyoki at gmail dot com +Ryunosuke Satoh: sun594 at hotmail dot com +Kenji Nagamatsu: naga at joyful dot club dot ne dot jp +Iwasa Kazmi: [unreachable] iwasa at cosmo-system dot jp TranslatorKorean -Kim Taedong: fly1004@gmail.com -SooYoung Jung: jung5000@gmail.com -Richard Kim: ryk@dspwiz.com +Kim Taedong: fly1004 at gmail dot com +SooYoung Jung: jung5000 at gmail dot com +Richard Kim: [unreachable] ryk at dspwiz dot com TranslatorLithuanian -Tomas Simonaitis: haden@homelan.lt -Mindaugas Radzius: mindaugasradzius@takas.lt -Aidas Berukstis: aidasber@takas.lt +Tomas Simonaitis: [unreachable] haden at homelan dot lt +Mindaugas Radzius: [unreachable] mindaugasradzius at takas dot lt +Aidas Berukstis: [unreachable] aidasber at takas dot lt +-- contact lost --: TranslatorNorwegian -Lars Erik Jordet: lejordet@gmail.com +Lars Erik Jordet: lejordet at gmail dot com TranslatorMacedonian -Slave Jovanovski: slavejovanovski@yahoo.com +Slave Jovanovski: slavejovanovski at yahoo dot com TranslatorPersian -Ali Nadalizadeh: nadalizadeh@gmail.com +Ali Nadalizadeh: nadalizadeh at gmail dot com TranslatorPolish -Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl -Grzegorz Kowal: g_kowal@poczta.onet.pl -Krzysztof Kral: krzysztof.kral@gmail.com +Piotr Kaminski: [unreachable] Piotr dot Kaminski at ctm dot gdynia dot pl +Grzegorz Kowal: [unreachable] g_kowal at poczta dot onet dot pl +Krzysztof Kral: krzysztof dot kral at gmail dot com TranslatorPortuguese -Rui Godinho Lopes: ruiglopes@yahoo.com +Rui Godinho Lopes: [unreachable] ruiglopes at yahoo dot com TranslatorRomanian -Ionut Dumitrascu: reddumy@yahoo.com -Alexandru Iosup: aiosup@yahoo.com +Ionut Dumitrascu: reddumy at yahoo dot com +Alexandru Iosup: aiosup at yahoo dot com TranslatorRussian -Alexandr Chelpanov: cav@cryptopro.ru +Alexandr Chelpanov: cav at cryptopro dot ru TranslatorSerbian -Dejan Milosavljevic: dmilos@email.com +Dejan Milosavljevic: [unreachable] dmilos at email dot com TranslatorSerbianCyrilic -Nedeljko Stefanovic: stenedjo@yahoo.com +Nedeljko Stefanovic: stenedjo at yahoo dot com TranslatorSlovak -Stanislav Kudláč: skudlac@pobox.sk +% Stanislav Kudláč: [unreachable] skudlac at pobox dot sk +-- searching for the maintainer --: TranslatorSlovene -Matjaž Ostroveršnik: matjaz.ostroversnik@ostri.org +Matjaž Ostroveršnik: matjaz dot ostroversnik at ostri dot org TranslatorSpanish -Bartomeu: bartomeu@loteria3cornella.com -Francisco Oltra Thennet: foltra@puc.cl -David Vaquero: david@grupoikusnet.com +Bartomeu: bartomeu at loteria3cornella dot com +Francisco Oltra Thennet: [unreachable] foltra at puc dot cl +David Vaquero: david at grupoikusnet dot com TranslatorSwedish -Mikael Hallin: mikaelhallin@yahoo.se +Mikael Hallin: mikaelhallin at yahoo dot se TranslatorUkrainian -Olexij Tkatchenko: olexij.tkatchenko@parcs.de +% (resigned) Olexij Tkatchenko: olexij at tkatchenko dot com +-- searching for the maintainer --: TranslatorVietnamese -Dang Minh Tuan: tuanvietkey@gmail.com +Dang Minh Tuan: tuanvietkey at gmail dot com TranslatorTurkish -Emin Ilker Cetinbas: niw3@yahoo.com +Emin Ilker Cetinbas: niw3 at yahoo dot com diff --git a/doc/translator.py b/doc/translator.py index 409b9ec..dd8fa00 100644 --- a/doc/translator.py +++ b/doc/translator.py @@ -52,6 +52,10 @@ 2008/06/09 - Warning when the MAX_DOT_GRAPH_HEIGHT is still part of trLegendDocs(). 2009/05/09 - Changed HTML output to fit it with XHTML DTD 2009/09/02 - Added percentage info to the report (implemented / to be implemented). + 2010/02/09 - Added checking/suggestion 'Reimplementation using UTF-8 suggested. + 2010/03/03 - Added [unreachable] prefix used in maintainers.txt. + 2010/05/28 - BOM skipped; minor code cleaning. + 2010/05/31 - e-mail mangled already in maintainers.txt """ from __future__ import generators @@ -223,7 +227,7 @@ class Transl: # Open the file for reading and extracting tokens until the eof. # Initialize the finite automaton. - f = file(self.fname) + f = open(self.fname) lineNo = 0 line = '' # init -- see the pos initialization below linelen = 0 # init @@ -242,9 +246,11 @@ class Transl: else: lineNo += 1 line = f.readline() + if line.startswith('\xef\xbb\xbf'): + line = line[3:] # skip the BOM linelen = len(line) pos = 0 - if line == '': # eof + if line == '': # eof status = 777 else: c = line[pos] @@ -1439,7 +1445,7 @@ class TrManager: self.numLang -= 1 # the couple will be counted as one # Extract the version of Doxygen. - f = file(os.path.join(self.doxy_path, 'VERSION')) + f = open(os.path.join(self.doxy_path, 'VERSION')) self.doxVersion = f.readline().strip() f.close() @@ -1487,7 +1493,7 @@ class TrManager: # Read content of the file as one string. assert os.path.isfile(fname) - f = file(fname) + f = open(fname) cont = f.read() f.close() @@ -1525,11 +1531,19 @@ class TrManager: return trdic - + def __emails(self, classId): + """Returns the list of maintainer emails. - def __email(self, classId): - """Returns the first maintainer for the translator class""" - return self.__maintainersDic[classId][0][1] + The method returns the list of e-mail adresses for the translator + class, but only the addresses that were not marked as [unreachable].""" + lst = [] + for m in self.__maintainersDic[classId]: + if not m[1].startswith('[unreachable]'): + email = m[1] + email = email.replace(' at ', '@') # Unmangle the mangled e-mail + email = email.replace(' dot ', '.') + lst.append(email) + return lst def generateTranslatorReport(self): @@ -1538,7 +1552,7 @@ class TrManager: output = os.path.join(self.doc_path, self.translatorReportFileName) # Open the textual report file for the output. - f = file(output, 'w') + f = open(output, 'w') # Output the information about the version. f.write('(' + self.doxVersion + ')\n\n') @@ -1566,7 +1580,7 @@ class TrManager: # The e-mail addresses of the maintainers will be collected to # the auxiliary file in the order of translator classes listed # in the translator report. - fmail = file('mailto.txt', 'w') + fmail = open('mailto.txt', 'w') # Write the list of up-to-date translator classes. if self.upToDateIdLst: @@ -1586,7 +1600,7 @@ class TrManager: if obj.note: f.write(' -- ' + obj.note) f.write('\n') - mailtoLst.append(self.__email(obj.classId)) + mailtoLst.extend(self.__emails(obj.classId)) fmail.write('up-to-date\n') fmail.write('; '.join(mailtoLst)) @@ -1620,7 +1634,7 @@ class TrManager: if obj.note: f.write('\n\tNote: ' + obj.note + '\n') f.write('\n') - mailtoLst.append(self.__email(obj.classId)) # to maintainer + mailtoLst.extend(self.__emails(obj.classId)) # to maintainer # Check the level of required adapter classes. if obj.status != '0.0.00' and obj.status < adaptMinVersion: @@ -1723,7 +1737,7 @@ class TrManager: self.lastModificationTime = tim # Process the content of the maintainers file. - f = file(fname) + f = open(fname) inside = False # inside the record for the language lineReady = True classId = None @@ -1753,7 +1767,8 @@ class TrManager: self.__maintainersDic[classId] = [] # Split the information about the maintainer and append - # the tuple. + # the tuple. The address may be prefixed '[unreachable]'. + # This will be processed later. lst = line.split(':', 1) assert(len(lst) == 2) t = (lst[0].strip(), lst[1].strip()) @@ -1786,7 +1801,7 @@ class TrManager: # # Read the template of the documentation, and remove the first # attention lines. - f = file(fTplName) + f = open(fTplName) line = f.readline() while line[0] != '/': line = f.readline() @@ -1862,20 +1877,17 @@ class TrManager: if not mm and self.__maintainersDic.has_key(obj.classId): lm = [ m[0] for m in self.__maintainersDic[obj.classId] ] mm = '
    '.join(lm) - le = [ m[1] for m in self.__maintainersDic[obj.classId] ] + + # Unreachable adresses will not be displayed at all. + le = [] + for m in self.__maintainersDic[obj.classId]: + address = m[1] + if address.startswith('[unreachable]'): + address = '[unreachable]' + le.append(address) ee = '
    '.join(le) - # Mangle the e-mail and replace the entity references. - if ee and ee != ' ': - # More than one maintainer address separated by
    can be used. - emails = ee.split('
    ') - mangled_list = [] - for email in emails: - name, domain = email.split('@') - domain = domain.replace('.', ' dot ') - mangled_list.append(name + ' at ' + domain) - ee = '
    '.join(mangled_list) - + # Replace the entity references. if mm: mm = mm.replace('č', 'č') mm = mm.replace('ř', 'ř') @@ -1973,7 +1985,7 @@ class TrManager: tplDic['informationTable'] = htmlTable + '\n' + latexTable # Insert the symbols into the document template and write it down. - f = file(fDocName, 'w') + f = open(fDocName, 'w') f.write(doctpl % tplDic) f.close() diff --git a/doc/translator_report.txt b/doc/translator_report.txt index e2d9cc8..9501c7d 100644 --- a/doc/translator_report.txt +++ b/doc/translator_report.txt @@ -10,7 +10,7 @@ Persian, Polish, Portuguese, Romanian, Russian, Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, and Vietnamese. -Of them, 2 translators are up-to-date, 36 translators are based on +Of them, 6 translators are up-to-date, 32 translators are based on some adapter class, and 2 are English based. ---------------------------------------------------------------------- @@ -19,8 +19,12 @@ alphabetically). This means that they derive from the Translator class and they implement all 225 of the required methods. Anyway, there still may be some details listed even for them: + TranslatorBrazilian + TranslatorCroatian TranslatorDutch TranslatorEnglish + TranslatorGreek + TranslatorSpanish -- The MAX_DOT_GRAPH_HEIGHT found in trLegendDocs() ---------------------------------------------------------------------- The following translator classes need some maintenance (the most @@ -28,7 +32,6 @@ obsolete at the end). The other info shows the estimation of Doxygen version when the class was last updated and number of methods that must be implemented to become up-to-date: - TranslatorSpanish 1.6.3 4 methods to implement (1 %) TranslatorPolish 1.6.3 4 methods to implement (1 %) TranslatorKorean 1.6.3 4 methods to implement (1 %) Note: Reimplementation using UTF-8 suggested. @@ -39,11 +42,7 @@ must be implemented to become up-to-date: TranslatorEsperanto 1.6.3 4 methods to implement (1 %) TranslatorCzech 1.6.3 4 methods to implement (1 %) - TranslatorCroatian 1.6.3 4 methods to implement (1 %) TranslatorCatalan 1.6.3 4 methods to implement (1 %) - TranslatorBrazilian 1.6.3 4 methods to implement (1 %) - Note: Reimplementation using UTF-8 suggested. - TranslatorVietnamese 1.6.0 9 methods to implement (4 %) TranslatorTurkish 1.6.0 9 methods to implement (4 %) TranslatorSwedish 1.6.0 9 methods to implement (4 %) @@ -77,9 +76,6 @@ must be implemented to become up-to-date: TranslatorAfrikaans 1.6.0 9 methods to implement (4 %) Note: Reimplementation using UTF-8 suggested. - TranslatorGreek 1.5.4 31 methods to implement (13 %) - Note: Reimplementation using UTF-8 suggested. - TranslatorDanish 1.5.4 31 methods to implement (13 %) Note: Reimplementation using UTF-8 suggested. @@ -209,19 +205,6 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 32 methods to implement (14 %) virtual QCString trNoDescriptionAvailable() -TranslatorBrazilian (TranslatorAdapter_1_6_3) 4 methods to implement (1 %) -------------------- - - Implements 221 of the required methods (98 %). - - Missing methods (should be implemented): - - virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) - virtual QCString trFileIn(const char * name) - virtual QCString trDirDependency(const char * name) - virtual QCString trIncludesFileIn(const char * name) - - TranslatorCatalan (TranslatorAdapter_1_6_3) 4 methods to implement (1 %) ----------------- @@ -271,19 +254,6 @@ TranslatorChinesetraditional (TranslatorAdapter_1_6_0) 9 methods to implement virtual QCString trIncludesFileIn(const char * name) -TranslatorCroatian (TranslatorAdapter_1_6_3) 4 methods to implement (1 %) ------------------- - - Implements 221 of the required methods (98 %). - - Missing methods (should be implemented): - - virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) - virtual QCString trFileIn(const char * name) - virtual QCString trDirDependency(const char * name) - virtual QCString trIncludesFileIn(const char * name) - - TranslatorCzech (TranslatorAdapter_1_6_3) 4 methods to implement (1 %) --------------- @@ -394,58 +364,6 @@ TranslatorGerman (TranslatorAdapter_1_6_3) 4 methods to implement (1 %) virtual QCString trIncludesFileIn(const char * name) -TranslatorGreek (TranslatorAdapter_1_5_4) 31 methods to implement (13 %) ---------------- - - Implements 194 of the required methods (86 %). - - Missing methods (should be implemented): - - virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) - virtual QCString trSearching() - virtual QCString trNoMatches() - virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single) - virtual QCString trLoading() - virtual QCString trSubprograms() - virtual QCString trDateTime(int year, int month, int day, int day