netsurf: branch master updated. afa408c7506842cea88d2a93701ce86f6c87c178
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/afa408c7506842cea88d2...
...commit http://git.netsurf-browser.org/netsurf.git/commit/afa408c7506842cea88d2a9...
...tree http://git.netsurf-browser.org/netsurf.git/tree/afa408c7506842cea88d2a937...
The branch, master has been updated
via afa408c7506842cea88d2a93701ce86f6c87c178 (commit)
via 65486f93bf9f4b2362c53d6c6b0e170798b2e83b (commit)
via 6efada5a85259390a4e5d5f344c23d0d15baa9b1 (commit)
via 1d9d0467505ca0a30b59d9d3b49927a80d104143 (commit)
from c22fbf937756a1b35085a8577e138bd1dc540eea (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commitdiff/afa408c7506842cea88...
commit afa408c7506842cea88d2a93701ce86f6c87c178
Merge: 65486f9 c22fbf9
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Merge branch 'master' of git://git.netsurf-browser.org/netsurf
commitdiff http://git.netsurf-browser.org/netsurf.git/commitdiff/65486f93bf9f4b2362c...
commit 65486f93bf9f4b2362c53d6c6b0e170798b2e83b
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Italian translation updates from Samir
diff --git a/resources/FatMessages b/resources/FatMessages
index 640654b..c2988a5 100644
--- a/resources/FatMessages
+++ b/resources/FatMessages
@@ -955,7 +955,7 @@ nl.all.Close:Close
en.all.ObjShow:Show object
de.all.ObjShow:Zeige Objekt
fr.all.ObjShow:Show object
-it.all.ObjShow:Mostra immagine
+it.all.ObjShow:Mostra
nl.all.ObjShow:Show object
en.all.Frame:Frame
de.all.Frame:Frame
@@ -1865,12 +1865,12 @@ nl.gtk.gtkToggleDebugging:T_oggle debug rendering
en.gtk.gtkSaveBoxTree:_Save box tree
de.gtk.gtkSaveBoxTree:_Save box tree
fr.gtk.gtkSaveBoxTree:_Save box tree
-it.gtk.gtkSaveBoxTree:_Salva Box tree
+it.gtk.gtkSaveBoxTree:_Salva albero Box
nl.gtk.gtkSaveBoxTree:_Save box tree
en.gtk.gtkSaveDomTree:Save DOM tree
de.gtk.gtkSaveDomTree:Save DOM tree
fr.gtk.gtkSaveDomTree:Save DOM tree
-it.gtk.gtkSaveDomTree:Salva DOM tree
+it.gtk.gtkSaveDomTree:Salva albero DOM
nl.gtk.gtkSaveDomTree:Save DOM tree
en.gtk.gtkBack:_Back
@@ -2672,7 +2672,7 @@ nl.all.AbortDownload:Zeker weten dat u deze download af wilt breken?
en.all.QuitDownload:One or more downloads are still in progress. Are you sure you wish to quit?
de.all.QuitDownload:Das Herunterladen ein oder mehrerer Dateien wurde noch nicht abgeschlossen. Soll NetSurf trotzdem beendet werden ?
fr.all.QuitDownload:Un ou plusieurs téléchargements sont en cours. Êtes-vous sûr de vouloir quitter ?
-it.all.QuitDownload:Uno o più file sono in attesa di essere scaricati completamente. Sei sicuro di voler chiudere?
+it.all.QuitDownload:Uno o più file si trovano in fase di scaricamento, sei sicuro di voler chiudere NetSurf?
nl.all.QuitDownload:Een of meer downloads zijn nog bezig. Toch afbreken?
en.all.OverwriteFile:A file with that name already exists and would be lost.
de.all.OverwriteFile:Eine Datei mit diesem Namen existiert bereits und würde überschrieben werden.
@@ -2810,7 +2810,7 @@ nl.all.MNGError:MNG library fout: %i
en.all.BadSprite:Invalid or corrupt Sprite data.
de.all.BadSprite:Ungültiges oder beschädigtes Sprite.
fr.all.BadSprite:Les données du sprite sont invalides ou corrompues.
-it.all.BadSprite:Dati Sprite invalidi o corrotti.
+it.all.BadSprite:Dati del file Sprite invalidi o corrotti.
nl.all.BadSprite:foutief sprite bestand.
# HTTP status codes
@@ -2903,7 +2903,7 @@ nl.all.HTTP401:Unauthorized
en.all.HTTP402:Payment required
de.all.HTTP402:Payment required
fr.all.HTTP402:Paiment nécessaire
-it.all.HTTP402:Richiesto pagamento
+it.all.HTTP402:Richiesto di pagamento
nl.all.HTTP402:Payment required
en.all.HTTP403:Forbidden
de.all.HTTP403:Forbidden
@@ -3145,7 +3145,7 @@ nl.all.ThemeInstActive:A theme is currently being downloaded or installed. Pleas
en.all.ThemeInstDown:Please wait for the theme to download.
de.all.ThemeInstDown:Bitte warten bis das Thema vollständig heruntergeladen wurde.
fr.all.ThemeInstDown:Veuillez attendre le téléchargement du thème.
-it.all.ThemeInstDown:Per favore attendere lo scaricamento del tema.
+it.all.ThemeInstDown:Per favore attendere lo scaricamento del tema grafico.
nl.all.ThemeInstDown:Please wait for the theme to download.
en.all.ThemeInvalid:The downloaded theme is invalid or requires a newer version of NetSurf.
de.all.ThemeInvalid:Das geladene Thema ist fehlerhaft oder benötigt eine neuere Version von NetSurf.
@@ -3578,7 +3578,7 @@ nl.ro.HelpBrowserMenu3:\Rsee the navigation options.
en.ro.HelpBrowserMenu3-0:\Sreturn to the configured home page.
de.ro.HelpBrowserMenu3-0:Öffnet die Homepage im aktuellen Fenster.
fr.ro.HelpBrowserMenu3-0:\Srevenir à la page d'accueil configurée.
-it.ro.HelpBrowserMenu3-0:\Storna alla preconfigurata pagina iniziale
+it.ro.HelpBrowserMenu3-0:\Storna alla pagina iniziale preconfigurata
nl.ro.HelpBrowserMenu3-0:\Sreturn to the configured home page.
en.ro.HelpBrowserMenu3-1:\Sgo back a page in the local history.|MForm information is not resubmitted.
de.ro.HelpBrowserMenu3-1:Schaltet zurück zur vorher dargestellten Seite.|MDie Seite wird dabei nicht aktualisiert.
@@ -4589,7 +4589,7 @@ nl.ro.HelpFontConfig3:\Tcurrently selected sans-serif font.|MNetSurf will use th
en.ro.HelpFontConfig4:\Sselect a sans-serif font.
de.ro.HelpFontConfig4:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig4:\Ssélectionner une fonte sans-sérif.
-it.ro.HelpFontConfig4:\Sselect a sans-serif font.
+it.ro.HelpFontConfig4:\Sseleziona un font sans-serif
nl.ro.HelpFontConfig4:\Sselect a sans-serif font.
en.ro.HelpFontConfig6:\Tcurrently selected serif font.|MNetSurf will use this font wherever a web page specifies a serif typeface.
de.ro.HelpFontConfig6:Das ist die aktuell gewählte Schriftart für Serif.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite ein Schriftbild in Serif vorgegeben wird.
@@ -4599,7 +4599,7 @@ nl.ro.HelpFontConfig6:\Tcurrently selected serif font.|MNetSurf will use this fo
en.ro.HelpFontConfig7:\Sselect a sans-serif font.
de.ro.HelpFontConfig7:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig7:\Ssélectionner une fonte sérif.
-it.ro.HelpFontConfig7:\Sselect a sans-serif font.
+it.ro.HelpFontConfig7:\Sseleziona un font sans-serif
nl.ro.HelpFontConfig7:\Sselect a sans-serif font.
en.ro.HelpFontConfig9:\Tcurrently selected monospace font.|MNetSurf will use this font wherever a web page specifies a monospace typeface.
de.ro.HelpFontConfig9:Das ist die aktuell gewählte Schriftart für Monospace.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite ein Schriftbild in Monospace vorgegeben wird.
@@ -4609,7 +4609,7 @@ nl.ro.HelpFontConfig9:\Tcurrently selected monospace font.|MNetSurf will use thi
en.ro.HelpFontConfig10:\Sselect a monospace font.
de.ro.HelpFontConfig10:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig10:\Ssélectionner une fonte monospace.
-it.ro.HelpFontConfig10:\Sselect a monospace font.
+it.ro.HelpFontConfig10:\Sseleziona un font monospaziato
nl.ro.HelpFontConfig10:\Sselect a monospace font.
en.ro.HelpFontConfig12:\Tcurrently selected cursive font.|MNetSurf will use this font wherever a web page specifies a cursive typeface.
de.ro.HelpFontConfig12:Das ist die aktuell gewählte Schriftart für Kursiv.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite ein Schriftbild in Kursiv vorgegeben wird.
@@ -4619,7 +4619,7 @@ nl.ro.HelpFontConfig12:\Tcurrently selected cursive font.|MNetSurf will use this
en.ro.HelpFontConfig13:\Sselect a cursive font.
de.ro.HelpFontConfig13:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig13:\Ssélectionner une fonte cursive.
-it.ro.HelpFontConfig13:\Sselect a cursive font.
+it.ro.HelpFontConfig13:\Sseleziona un font corsivo
nl.ro.HelpFontConfig13:\Sselect a cursive font.
en.ro.HelpFontConfig15:\Tcurrently selected fantasy font.|MNetSurf will use this font wherever a web page specifies a fantasy typeface.
de.ro.HelpFontConfig15:Das ist die aktuell gewählte Schriftart für Fantasy.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite ein Schriftbild in Fantasy vorgegeben wird.
@@ -4629,7 +4629,7 @@ nl.ro.HelpFontConfig15:\Tcurrently selected fantasy font.|MNetSurf will use this
en.ro.HelpFontConfig16:\Sselect a fantasy font.
de.ro.HelpFontConfig16:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig16:\Ssélectionner une fonte fantaisie.
-it.ro.HelpFontConfig16:\Sselect a fantasy font.
+it.ro.HelpFontConfig16:\Sseleziona un font fantasia
nl.ro.HelpFontConfig16:\Sselect a fantasy font.
en.ro.HelpFontConfig18:\Tcurrently selected font family.|MNetSurf will use this wherever a web page does not specify a typeface.
de.ro.HelpFontConfig18:Das ist die aktuell gewählte Schriftart für die Standardtextanzeige.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite KEIN bestimmtes Schriftbild vorgegeben wird.
@@ -4639,7 +4639,7 @@ nl.ro.HelpFontConfig18:\Tcurrently selected font family.|MNetSurf will use this
en.ro.HelpFontConfig19:\Sselect a default font family.
de.ro.HelpFontConfig19:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig19:\Ssélectionner une famille de fontes par défaut.
-it.ro.HelpFontConfig19:\Sselect a default font family.
+it.ro.HelpFontConfig19:\Sseleziona una famiglia font predefinita
nl.ro.HelpFontConfig19:\Sselect a default font family.
en.ro.HelpFontConfig23:You can enter a default font size here.|MNetSurf will use this wherever a web page does not specify a font size of its own.
de.ro.HelpFontConfig23:Hier kann eine Standarfontgröße gewählt werden.|MNetSurf wird diese Größe immer dann verwenden, wenn von der Webseite keine eigene Schriftgröße eingestellt wird.
@@ -4649,12 +4649,12 @@ nl.ro.HelpFontConfig23:You can enter a default font size here.|MNetSurf will use
en.ro.HelpFontConfig24:\Sreduce the default font size.
de.ro.HelpFontConfig24:Klicken mit AUSWAHL verkleinert die Standardfontgröße.
fr.ro.HelpFontConfig24:\Sréduire la taille de fonte.
-it.ro.HelpFontConfig24:\Sreduce the default font size.
+it.ro.HelpFontConfig24:\Sriduce la dimensione del font predefinito
nl.ro.HelpFontConfig24:\Sreduce the default font size.
en.ro.HelpFontConfig25:\Sincrease the default font size.
de.ro.HelpFontConfig25:Klicken mit AUSWAHL vergrößert die Standardfontgröße.
fr.ro.HelpFontConfig25:\Saugmenter la taille de fonte.
-it.ro.HelpFontConfig25:\Sincrease the default font size.
+it.ro.HelpFontConfig25:\Saumenta la dimensione del font predefinito
nl.ro.HelpFontConfig25:\Sincrease the default font size.
en.ro.HelpFontConfig28:You can enter a minimum font size here.|MNetSurf will not allow web pages to display smaller text than this.
de.ro.HelpFontConfig28:Hier kann eine minimale Schriftgröße eingestellt werden.|MNetSurf wird keine Darstellung von noch kleineren Schriften zulassen.
@@ -4664,17 +4664,17 @@ nl.ro.HelpFontConfig28:You can enter a minimum font size here.|MNetSurf will not
en.ro.HelpFontConfig29:\Sreduce the minimum font size.
de.ro.HelpFontConfig29:Klicken mit AUSWAHL verkleinert die minimal zugelassene Schriftgröße.
fr.ro.HelpFontConfig29:\Sréduire la taille de fonte minimum.
-it.ro.HelpFontConfig29:\Sreduce the minimum font size.
+it.ro.HelpFontConfig29:\Sriduce la dimensione minima del font
nl.ro.HelpFontConfig29:\Sreduce the minimum font size.
en.ro.HelpFontConfig30:\Sincrease the minimum font size.
de.ro.HelpFontConfig30:Klicken mit AUSWAHL vergrößert die minimal zugelassene Schriftgröße.
fr.ro.HelpFontConfig30:\Saugmenter la taille de fonte minimum.
-it.ro.HelpFontConfig30:\Sincrease the minimum font size.
+it.ro.HelpFontConfig30:\Saumenta la dimensione minima del font
nl.ro.HelpFontConfig30:\Sincrease the minimum font size.
en.ro.HelpFontConfig32:\Sreset the Font options back to their default values.
de.ro.HelpFontConfig32:Stellt die Standardeinstellungen wieder her.
fr.ro.HelpFontConfig32:\Srevenir aux valeurs par défaut des options de Fontes.
-it.ro.HelpFontConfig32:\Sreset the Font options back to their default values.
+it.ro.HelpFontConfig32:\Sripristina le impostazioni dei font ai loro valori originali
nl.ro.HelpFontConfig32:\Sreset the Font options back to their default values.
en.ro.HelpFontConfig33:\Sclose this \w without saving changes.|M\Areturn the font options to the last saved configuration.
de.ro.HelpFontConfig33:Klicken mit AUSWAHL schließt das Fenster ohne die Änderungen zu speichern.|MKlicken mit SPEZIAL stellt die zuletzt abgespeicherten Einstellungen wieder her.
@@ -5021,32 +5021,32 @@ nl.ro.HelpThemePConfig:This pane shows the available themes.|MThe selected icon
en.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
de.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
fr.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
-it.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
+it.ami.HelpToolbarBack:Indietro
nl.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
en.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
de.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
fr.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
-it.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
+it.ami.HelpToolbarForward:Avanti
nl.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
en.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
de.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
fr.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
-it.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
+it.ami.HelpToolbarStop:Stop
nl.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
en.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
de.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
fr.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
-it.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
+it.ami.HelpToolbarReload:Ricarica
nl.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
en.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
de.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
fr.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
-it.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
+it.ami.HelpToolbarHome:Pagina iniziale
nl.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
en.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
de.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
fr.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
-it.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
+it.ami.HelpToolbarURL:Barra indirizzi
nl.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
en.ami.HelpToolbarWebSearch:Web search bar\nType text and press Return to search using your default search provider
de.ami.HelpToolbarWebSearch:Websuchleiste\nText eingeben und Enter drücken um mit der Standardsuchmaschine zu suchen
@@ -5209,7 +5209,7 @@ nl.all.Scripting:Scripting
en.all.EnableJS:Enable Javascript
de.all.EnableJS:Enable Javascript
fr.all.EnableJS:Enable Javascript
-it.all.EnableJS:Enable Javascript
+it.all.EnableJS:Attiva Javascript
nl.all.EnableJS:Enable Javascript
en.all.Miscellaneous:Miscellaneous
de.all.Miscellaneous:Verschiedenes
@@ -5229,7 +5229,7 @@ nl.all.SendReferer:Send site referral information
en.ami.DoNotTrack:Send header to tell websites not to track
de.ami.DoNotTrack:Send header to tell websites not to track
fr.ami.DoNotTrack:Send header to tell websites not to track
-it.ami.DoNotTrack:Invia header al sito con la richiesta di non tracciamento
+it.ami.DoNotTrack:Invia header al sito per la richiesta di non tracciamento
nl.ami.DoNotTrack:Send header to tell websites not to track
en.all.FastScrolling:Fast scrolling
de.all.FastScrolling:Schnelles Scrollen
@@ -5444,7 +5444,7 @@ nl.all.Pt:pt
en.ami.FontScanning:Scanning fonts...
de.ami.FontScanning:Scanning fonts...
fr.ami.FontScanning:Scanning fonts...
-it.ami.FontScanning:Scansione dei font...
+it.ami.FontScanning:Scansione dei font in corso...
nl.ami.FontScanning:Scanning fonts...
en.ami.FontGlyphs:%ld unique glyphs found
de.ami.FontGlyphs:%ld unique glyphs found
@@ -5458,7 +5458,7 @@ nl.ami.FontGlyphs:%ld unique glyphs found
en.all.CacheMemory:Memory cache
de.all.CacheMemory:Arbeitsspeicher Cache
fr.all.CacheMemory:Memory cache
-it.all.CacheMemory:Cache in memoria
+it.all.CacheMemory:Memoria cache
nl.all.CacheMemory:Memory cache
en.all.CacheDisc:Disc cache
de.all.CacheDisc:Festplatten Cache
commitdiff http://git.netsurf-browser.org/netsurf.git/commitdiff/6efada5a85259390a4e...
commit 6efada5a85259390a4e5d5f344c23d0d15baa9b1
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
set the redraw to non-tiled by default. people can play with these settings if they are low on memory.
diff --git a/amiga/options.h b/amiga/options.h
index 8d026cf..977e5ae 100644
--- a/amiga/options.h
+++ b/amiga/options.h
@@ -141,8 +141,8 @@
.cairo_renderer = 1, \
.direct_render = false, \
.window_simple_refresh = false, \
- .redraw_tile_size_x = 400, \
- .redraw_tile_size_y = 150, \
+ .redraw_tile_size_x = 0, \
+ .redraw_tile_size_y = 0, \
.monitor_aspect_x = 0, \
.monitor_aspect_y = 0, \
.accept_lang_locale = true, \
commitdiff http://git.netsurf-browser.org/netsurf.git/commitdiff/1d9d0467505ca0a30b5...
commit 1d9d0467505ca0a30b59d9d3b49927a80d104143
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
libjpeg.so.12 is the current version
diff --git a/amiga/Makefile.target b/amiga/Makefile.target
index c3b75cd..718b261 100644
--- a/amiga/Makefile.target
+++ b/amiga/Makefile.target
@@ -110,7 +110,7 @@ AMIGA_GENERIC_RESOURCES := $(AMIGA_LANGUAGES) ca-bundle
AMIGA_RESOURCES := $(addprefix amiga/resources/,$(AMIGA_PLATFORM_RESOURCES)) $(addprefix \!NetSurf/Resources/,$(AMIGA_GENERIC_RESOURCES))
AMIGA_LIBRARIES := parserutils.library nsgif.library nsbmp.library iconv.library hubbub.library
AMIGA_LIBS := $(addprefix /Libs/,$(AMIGA_LIBRARIES))
-AMIGA_SHARED_OBJS := libjpeg.so.8 libxml2.so.9 libcurl.so.7 librtmp.so.0 libsvgtiny.so.0 libssl.so.1.0.0 libcrypto.so.1.0.0 libcss.so.0 libwapcaplet.so.0 libpng12.so libdom.so.0 libhubbub.so.0
+AMIGA_SHARED_OBJS := libjpeg.so.12 libxml2.so.9 libcurl.so.7 librtmp.so.0 libsvgtiny.so.0 libssl.so.1.0.0 libcrypto.so.1.0.0 libcss.so.0 libwapcaplet.so.0 libpng12.so libdom.so.0 libhubbub.so.0
AMIGA_SOBJS := $(addprefix /SObjs/,$(AMIGA_SHARED_OBJS))
AMIGA_DISTRIBUTION_FILES := amiga/dist/*
AMIGA_INSTALL_TARGET_DIR := NetSurf_Amiga
-----------------------------------------------------------------------
Summary of changes:
amiga/Makefile.target | 2 +-
amiga/options.h | 4 +-
resources/FatMessages | 58 ++++++++++++++++++++++++------------------------
3 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/amiga/Makefile.target b/amiga/Makefile.target
index c3b75cd..718b261 100644
--- a/amiga/Makefile.target
+++ b/amiga/Makefile.target
@@ -110,7 +110,7 @@ AMIGA_GENERIC_RESOURCES := $(AMIGA_LANGUAGES) ca-bundle
AMIGA_RESOURCES := $(addprefix amiga/resources/,$(AMIGA_PLATFORM_RESOURCES)) $(addprefix \!NetSurf/Resources/,$(AMIGA_GENERIC_RESOURCES))
AMIGA_LIBRARIES := parserutils.library nsgif.library nsbmp.library iconv.library hubbub.library
AMIGA_LIBS := $(addprefix /Libs/,$(AMIGA_LIBRARIES))
-AMIGA_SHARED_OBJS := libjpeg.so.8 libxml2.so.9 libcurl.so.7 librtmp.so.0 libsvgtiny.so.0 libssl.so.1.0.0 libcrypto.so.1.0.0 libcss.so.0 libwapcaplet.so.0 libpng12.so libdom.so.0 libhubbub.so.0
+AMIGA_SHARED_OBJS := libjpeg.so.12 libxml2.so.9 libcurl.so.7 librtmp.so.0 libsvgtiny.so.0 libssl.so.1.0.0 libcrypto.so.1.0.0 libcss.so.0 libwapcaplet.so.0 libpng12.so libdom.so.0 libhubbub.so.0
AMIGA_SOBJS := $(addprefix /SObjs/,$(AMIGA_SHARED_OBJS))
AMIGA_DISTRIBUTION_FILES := amiga/dist/*
AMIGA_INSTALL_TARGET_DIR := NetSurf_Amiga
diff --git a/amiga/options.h b/amiga/options.h
index 8d026cf..977e5ae 100644
--- a/amiga/options.h
+++ b/amiga/options.h
@@ -141,8 +141,8 @@
.cairo_renderer = 1, \
.direct_render = false, \
.window_simple_refresh = false, \
- .redraw_tile_size_x = 400, \
- .redraw_tile_size_y = 150, \
+ .redraw_tile_size_x = 0, \
+ .redraw_tile_size_y = 0, \
.monitor_aspect_x = 0, \
.monitor_aspect_y = 0, \
.accept_lang_locale = true, \
diff --git a/resources/FatMessages b/resources/FatMessages
index 640654b..c2988a5 100644
--- a/resources/FatMessages
+++ b/resources/FatMessages
@@ -955,7 +955,7 @@ nl.all.Close:Close
en.all.ObjShow:Show object
de.all.ObjShow:Zeige Objekt
fr.all.ObjShow:Show object
-it.all.ObjShow:Mostra immagine
+it.all.ObjShow:Mostra
nl.all.ObjShow:Show object
en.all.Frame:Frame
de.all.Frame:Frame
@@ -1865,12 +1865,12 @@ nl.gtk.gtkToggleDebugging:T_oggle debug rendering
en.gtk.gtkSaveBoxTree:_Save box tree
de.gtk.gtkSaveBoxTree:_Save box tree
fr.gtk.gtkSaveBoxTree:_Save box tree
-it.gtk.gtkSaveBoxTree:_Salva Box tree
+it.gtk.gtkSaveBoxTree:_Salva albero Box
nl.gtk.gtkSaveBoxTree:_Save box tree
en.gtk.gtkSaveDomTree:Save DOM tree
de.gtk.gtkSaveDomTree:Save DOM tree
fr.gtk.gtkSaveDomTree:Save DOM tree
-it.gtk.gtkSaveDomTree:Salva DOM tree
+it.gtk.gtkSaveDomTree:Salva albero DOM
nl.gtk.gtkSaveDomTree:Save DOM tree
en.gtk.gtkBack:_Back
@@ -2672,7 +2672,7 @@ nl.all.AbortDownload:Zeker weten dat u deze download af wilt breken?
en.all.QuitDownload:One or more downloads are still in progress. Are you sure you wish to quit?
de.all.QuitDownload:Das Herunterladen ein oder mehrerer Dateien wurde noch nicht abgeschlossen. Soll NetSurf trotzdem beendet werden ?
fr.all.QuitDownload:Un ou plusieurs téléchargements sont en cours. Êtes-vous sûr de vouloir quitter ?
-it.all.QuitDownload:Uno o più file sono in attesa di essere scaricati completamente. Sei sicuro di voler chiudere?
+it.all.QuitDownload:Uno o più file si trovano in fase di scaricamento, sei sicuro di voler chiudere NetSurf?
nl.all.QuitDownload:Een of meer downloads zijn nog bezig. Toch afbreken?
en.all.OverwriteFile:A file with that name already exists and would be lost.
de.all.OverwriteFile:Eine Datei mit diesem Namen existiert bereits und würde überschrieben werden.
@@ -2810,7 +2810,7 @@ nl.all.MNGError:MNG library fout: %i
en.all.BadSprite:Invalid or corrupt Sprite data.
de.all.BadSprite:Ungültiges oder beschädigtes Sprite.
fr.all.BadSprite:Les données du sprite sont invalides ou corrompues.
-it.all.BadSprite:Dati Sprite invalidi o corrotti.
+it.all.BadSprite:Dati del file Sprite invalidi o corrotti.
nl.all.BadSprite:foutief sprite bestand.
# HTTP status codes
@@ -2903,7 +2903,7 @@ nl.all.HTTP401:Unauthorized
en.all.HTTP402:Payment required
de.all.HTTP402:Payment required
fr.all.HTTP402:Paiment nécessaire
-it.all.HTTP402:Richiesto pagamento
+it.all.HTTP402:Richiesto di pagamento
nl.all.HTTP402:Payment required
en.all.HTTP403:Forbidden
de.all.HTTP403:Forbidden
@@ -3145,7 +3145,7 @@ nl.all.ThemeInstActive:A theme is currently being downloaded or installed. Pleas
en.all.ThemeInstDown:Please wait for the theme to download.
de.all.ThemeInstDown:Bitte warten bis das Thema vollständig heruntergeladen wurde.
fr.all.ThemeInstDown:Veuillez attendre le téléchargement du thème.
-it.all.ThemeInstDown:Per favore attendere lo scaricamento del tema.
+it.all.ThemeInstDown:Per favore attendere lo scaricamento del tema grafico.
nl.all.ThemeInstDown:Please wait for the theme to download.
en.all.ThemeInvalid:The downloaded theme is invalid or requires a newer version of NetSurf.
de.all.ThemeInvalid:Das geladene Thema ist fehlerhaft oder benötigt eine neuere Version von NetSurf.
@@ -3578,7 +3578,7 @@ nl.ro.HelpBrowserMenu3:\Rsee the navigation options.
en.ro.HelpBrowserMenu3-0:\Sreturn to the configured home page.
de.ro.HelpBrowserMenu3-0:Öffnet die Homepage im aktuellen Fenster.
fr.ro.HelpBrowserMenu3-0:\Srevenir à la page d'accueil configurée.
-it.ro.HelpBrowserMenu3-0:\Storna alla preconfigurata pagina iniziale
+it.ro.HelpBrowserMenu3-0:\Storna alla pagina iniziale preconfigurata
nl.ro.HelpBrowserMenu3-0:\Sreturn to the configured home page.
en.ro.HelpBrowserMenu3-1:\Sgo back a page in the local history.|MForm information is not resubmitted.
de.ro.HelpBrowserMenu3-1:Schaltet zurück zur vorher dargestellten Seite.|MDie Seite wird dabei nicht aktualisiert.
@@ -4589,7 +4589,7 @@ nl.ro.HelpFontConfig3:\Tcurrently selected sans-serif font.|MNetSurf will use th
en.ro.HelpFontConfig4:\Sselect a sans-serif font.
de.ro.HelpFontConfig4:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig4:\Ssélectionner une fonte sans-sérif.
-it.ro.HelpFontConfig4:\Sselect a sans-serif font.
+it.ro.HelpFontConfig4:\Sseleziona un font sans-serif
nl.ro.HelpFontConfig4:\Sselect a sans-serif font.
en.ro.HelpFontConfig6:\Tcurrently selected serif font.|MNetSurf will use this font wherever a web page specifies a serif typeface.
de.ro.HelpFontConfig6:Das ist die aktuell gewählte Schriftart für Serif.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite ein Schriftbild in Serif vorgegeben wird.
@@ -4599,7 +4599,7 @@ nl.ro.HelpFontConfig6:\Tcurrently selected serif font.|MNetSurf will use this fo
en.ro.HelpFontConfig7:\Sselect a sans-serif font.
de.ro.HelpFontConfig7:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig7:\Ssélectionner une fonte sérif.
-it.ro.HelpFontConfig7:\Sselect a sans-serif font.
+it.ro.HelpFontConfig7:\Sseleziona un font sans-serif
nl.ro.HelpFontConfig7:\Sselect a sans-serif font.
en.ro.HelpFontConfig9:\Tcurrently selected monospace font.|MNetSurf will use this font wherever a web page specifies a monospace typeface.
de.ro.HelpFontConfig9:Das ist die aktuell gewählte Schriftart für Monospace.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite ein Schriftbild in Monospace vorgegeben wird.
@@ -4609,7 +4609,7 @@ nl.ro.HelpFontConfig9:\Tcurrently selected monospace font.|MNetSurf will use thi
en.ro.HelpFontConfig10:\Sselect a monospace font.
de.ro.HelpFontConfig10:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig10:\Ssélectionner une fonte monospace.
-it.ro.HelpFontConfig10:\Sselect a monospace font.
+it.ro.HelpFontConfig10:\Sseleziona un font monospaziato
nl.ro.HelpFontConfig10:\Sselect a monospace font.
en.ro.HelpFontConfig12:\Tcurrently selected cursive font.|MNetSurf will use this font wherever a web page specifies a cursive typeface.
de.ro.HelpFontConfig12:Das ist die aktuell gewählte Schriftart für Kursiv.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite ein Schriftbild in Kursiv vorgegeben wird.
@@ -4619,7 +4619,7 @@ nl.ro.HelpFontConfig12:\Tcurrently selected cursive font.|MNetSurf will use this
en.ro.HelpFontConfig13:\Sselect a cursive font.
de.ro.HelpFontConfig13:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig13:\Ssélectionner une fonte cursive.
-it.ro.HelpFontConfig13:\Sselect a cursive font.
+it.ro.HelpFontConfig13:\Sseleziona un font corsivo
nl.ro.HelpFontConfig13:\Sselect a cursive font.
en.ro.HelpFontConfig15:\Tcurrently selected fantasy font.|MNetSurf will use this font wherever a web page specifies a fantasy typeface.
de.ro.HelpFontConfig15:Das ist die aktuell gewählte Schriftart für Fantasy.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite ein Schriftbild in Fantasy vorgegeben wird.
@@ -4629,7 +4629,7 @@ nl.ro.HelpFontConfig15:\Tcurrently selected fantasy font.|MNetSurf will use this
en.ro.HelpFontConfig16:\Sselect a fantasy font.
de.ro.HelpFontConfig16:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig16:\Ssélectionner une fonte fantaisie.
-it.ro.HelpFontConfig16:\Sselect a fantasy font.
+it.ro.HelpFontConfig16:\Sseleziona un font fantasia
nl.ro.HelpFontConfig16:\Sselect a fantasy font.
en.ro.HelpFontConfig18:\Tcurrently selected font family.|MNetSurf will use this wherever a web page does not specify a typeface.
de.ro.HelpFontConfig18:Das ist die aktuell gewählte Schriftart für die Standardtextanzeige.|MNetSurf wird diese Schriftart überall dort verwenden, wo von der Webseite KEIN bestimmtes Schriftbild vorgegeben wird.
@@ -4639,7 +4639,7 @@ nl.ro.HelpFontConfig18:\Tcurrently selected font family.|MNetSurf will use this
en.ro.HelpFontConfig19:\Sselect a default font family.
de.ro.HelpFontConfig19:Klicken mit AUSWAHL, um eine Schriftart auszuwählen.
fr.ro.HelpFontConfig19:\Ssélectionner une famille de fontes par défaut.
-it.ro.HelpFontConfig19:\Sselect a default font family.
+it.ro.HelpFontConfig19:\Sseleziona una famiglia font predefinita
nl.ro.HelpFontConfig19:\Sselect a default font family.
en.ro.HelpFontConfig23:You can enter a default font size here.|MNetSurf will use this wherever a web page does not specify a font size of its own.
de.ro.HelpFontConfig23:Hier kann eine Standarfontgröße gewählt werden.|MNetSurf wird diese Größe immer dann verwenden, wenn von der Webseite keine eigene Schriftgröße eingestellt wird.
@@ -4649,12 +4649,12 @@ nl.ro.HelpFontConfig23:You can enter a default font size here.|MNetSurf will use
en.ro.HelpFontConfig24:\Sreduce the default font size.
de.ro.HelpFontConfig24:Klicken mit AUSWAHL verkleinert die Standardfontgröße.
fr.ro.HelpFontConfig24:\Sréduire la taille de fonte.
-it.ro.HelpFontConfig24:\Sreduce the default font size.
+it.ro.HelpFontConfig24:\Sriduce la dimensione del font predefinito
nl.ro.HelpFontConfig24:\Sreduce the default font size.
en.ro.HelpFontConfig25:\Sincrease the default font size.
de.ro.HelpFontConfig25:Klicken mit AUSWAHL vergrößert die Standardfontgröße.
fr.ro.HelpFontConfig25:\Saugmenter la taille de fonte.
-it.ro.HelpFontConfig25:\Sincrease the default font size.
+it.ro.HelpFontConfig25:\Saumenta la dimensione del font predefinito
nl.ro.HelpFontConfig25:\Sincrease the default font size.
en.ro.HelpFontConfig28:You can enter a minimum font size here.|MNetSurf will not allow web pages to display smaller text than this.
de.ro.HelpFontConfig28:Hier kann eine minimale Schriftgröße eingestellt werden.|MNetSurf wird keine Darstellung von noch kleineren Schriften zulassen.
@@ -4664,17 +4664,17 @@ nl.ro.HelpFontConfig28:You can enter a minimum font size here.|MNetSurf will not
en.ro.HelpFontConfig29:\Sreduce the minimum font size.
de.ro.HelpFontConfig29:Klicken mit AUSWAHL verkleinert die minimal zugelassene Schriftgröße.
fr.ro.HelpFontConfig29:\Sréduire la taille de fonte minimum.
-it.ro.HelpFontConfig29:\Sreduce the minimum font size.
+it.ro.HelpFontConfig29:\Sriduce la dimensione minima del font
nl.ro.HelpFontConfig29:\Sreduce the minimum font size.
en.ro.HelpFontConfig30:\Sincrease the minimum font size.
de.ro.HelpFontConfig30:Klicken mit AUSWAHL vergrößert die minimal zugelassene Schriftgröße.
fr.ro.HelpFontConfig30:\Saugmenter la taille de fonte minimum.
-it.ro.HelpFontConfig30:\Sincrease the minimum font size.
+it.ro.HelpFontConfig30:\Saumenta la dimensione minima del font
nl.ro.HelpFontConfig30:\Sincrease the minimum font size.
en.ro.HelpFontConfig32:\Sreset the Font options back to their default values.
de.ro.HelpFontConfig32:Stellt die Standardeinstellungen wieder her.
fr.ro.HelpFontConfig32:\Srevenir aux valeurs par défaut des options de Fontes.
-it.ro.HelpFontConfig32:\Sreset the Font options back to their default values.
+it.ro.HelpFontConfig32:\Sripristina le impostazioni dei font ai loro valori originali
nl.ro.HelpFontConfig32:\Sreset the Font options back to their default values.
en.ro.HelpFontConfig33:\Sclose this \w without saving changes.|M\Areturn the font options to the last saved configuration.
de.ro.HelpFontConfig33:Klicken mit AUSWAHL schließt das Fenster ohne die Änderungen zu speichern.|MKlicken mit SPEZIAL stellt die zuletzt abgespeicherten Einstellungen wieder her.
@@ -5021,32 +5021,32 @@ nl.ro.HelpThemePConfig:This pane shows the available themes.|MThe selected icon
en.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
de.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
fr.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
-it.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
+it.ami.HelpToolbarBack:Indietro
nl.ami.HelpToolbarBack:Back\nLMB: Steps back one page\nRMB: Display a menu of recent pages
en.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
de.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
fr.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
-it.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
+it.ami.HelpToolbarForward:Avanti
nl.ami.HelpToolbarForward:Forward\nLMB: Steps forward one page
en.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
de.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
fr.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
-it.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
+it.ami.HelpToolbarStop:Stop
nl.ami.HelpToolbarStop:Stop\nLMB: Stops loading the page
en.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
de.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
fr.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
-it.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
+it.ami.HelpToolbarReload:Ricarica
nl.ami.HelpToolbarReload:Reload\nLMB: Reloads the page\nShift+LMB: Reloads the page and all objects
en.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
de.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
fr.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
-it.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
+it.ami.HelpToolbarHome:Pagina iniziale
nl.ami.HelpToolbarHome:Home\nLMB: Goes to the homepage
en.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
de.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
fr.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
-it.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
+it.ami.HelpToolbarURL:Barra indirizzi
nl.ami.HelpToolbarURL:URL bar\nType a URL and press Return\nSuggestions can be selected with up/down
en.ami.HelpToolbarWebSearch:Web search bar\nType text and press Return to search using your default search provider
de.ami.HelpToolbarWebSearch:Websuchleiste\nText eingeben und Enter drücken um mit der Standardsuchmaschine zu suchen
@@ -5209,7 +5209,7 @@ nl.all.Scripting:Scripting
en.all.EnableJS:Enable Javascript
de.all.EnableJS:Enable Javascript
fr.all.EnableJS:Enable Javascript
-it.all.EnableJS:Enable Javascript
+it.all.EnableJS:Attiva Javascript
nl.all.EnableJS:Enable Javascript
en.all.Miscellaneous:Miscellaneous
de.all.Miscellaneous:Verschiedenes
@@ -5229,7 +5229,7 @@ nl.all.SendReferer:Send site referral information
en.ami.DoNotTrack:Send header to tell websites not to track
de.ami.DoNotTrack:Send header to tell websites not to track
fr.ami.DoNotTrack:Send header to tell websites not to track
-it.ami.DoNotTrack:Invia header al sito con la richiesta di non tracciamento
+it.ami.DoNotTrack:Invia header al sito per la richiesta di non tracciamento
nl.ami.DoNotTrack:Send header to tell websites not to track
en.all.FastScrolling:Fast scrolling
de.all.FastScrolling:Schnelles Scrollen
@@ -5444,7 +5444,7 @@ nl.all.Pt:pt
en.ami.FontScanning:Scanning fonts...
de.ami.FontScanning:Scanning fonts...
fr.ami.FontScanning:Scanning fonts...
-it.ami.FontScanning:Scansione dei font...
+it.ami.FontScanning:Scansione dei font in corso...
nl.ami.FontScanning:Scanning fonts...
en.ami.FontGlyphs:%ld unique glyphs found
de.ami.FontGlyphs:%ld unique glyphs found
@@ -5458,7 +5458,7 @@ nl.ami.FontGlyphs:%ld unique glyphs found
en.all.CacheMemory:Memory cache
de.all.CacheMemory:Arbeitsspeicher Cache
fr.all.CacheMemory:Memory cache
-it.all.CacheMemory:Cache in memoria
+it.all.CacheMemory:Memoria cache
nl.all.CacheMemory:Memory cache
en.all.CacheDisc:Disc cache
de.all.CacheDisc:Festplatten Cache
--
NetSurf Browser
10 years, 6 months
nsgenjsbind: branch master updated. d58d0289a7b7817e2d96f4666ebb370add8d1a81
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/nsgenjsbind.git/shortlog/d58d0289a7b7817e2...
...commit http://git.netsurf-browser.org/nsgenjsbind.git/commit/d58d0289a7b7817e2d9...
...tree http://git.netsurf-browser.org/nsgenjsbind.git/tree/d58d0289a7b7817e2d96f...
The branch, master has been updated
via d58d0289a7b7817e2d96f4666ebb370add8d1a81 (commit)
via 2133ce26a2ec07fb37a5f4cc6cab5326fdf49546 (commit)
from 94259becfc4441d9061c6f34f3e801dda834d01d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/nsgenjsbind.git/commitdiff/d58d0289a7b7817...
commit d58d0289a7b7817e2d96f4666ebb370add8d1a81
Author: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
Commit: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
cope with partial interfaces
diff --git a/src/jsapi-libdom.c b/src/jsapi-libdom.c
index 54c548c..aba6bdf 100644
--- a/src/jsapi-libdom.c
+++ b/src/jsapi-libdom.c
@@ -122,7 +122,7 @@ static int webidl_property_spec_cb(struct webidl_node *node, void *ctx)
return 1;
} else {
fprintf(outfile,
- " JSAPI_PS(%s, 0, JSPROP_ENUMERATE | JSPROP_SHARED),\n",
+ " JSAPI_PS(%s, 0, JSPROP_ENUMERATE | JSPROP_SHARED),\n",
webidl_node_gettext(ident_node));
}
return 0;
@@ -137,6 +137,7 @@ generate_property_spec(FILE *outfile,
struct webidl_node *members_node;
struct webidl_node *inherit_node;
+
/* find interface in webidl with correct ident attached */
interface_node = webidl_node_find_type_ident(webidl_ast,
WEBIDL_NODE_TYPE_INTERFACE,
@@ -153,21 +154,25 @@ generate_property_spec(FILE *outfile,
NULL,
webidl_cmp_node_type,
(void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
- if (members_node == NULL) {
- fprintf(stderr,
- "Unable to find members within interface %s\n",
- interface);
- return -1;
- }
+ while (members_node != NULL) {
+
+ fprintf(outfile," /**** %s ****/\n", interface);
+
+
+ /* for each function emit a JSAPI_FS()*/
+ webidl_node_for_each_type(webidl_node_getnode(members_node),
+ WEBIDL_NODE_TYPE_ATTRIBUTE,
+ webidl_property_spec_cb,
+ outfile);
- /* for each function emit a JSAPI_FS()*/
- webidl_node_for_each_type(webidl_node_getnode(members_node),
- WEBIDL_NODE_TYPE_ATTRIBUTE,
- webidl_property_spec_cb,
- outfile);
+ members_node = webidl_node_find(webidl_node_getnode(interface_node),
+ members_node,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
+ }
/* check for inherited nodes and insert them too */
inherit_node = webidl_node_find(webidl_node_getnode(interface_node),
NULL,
@@ -195,7 +200,7 @@ output_property_spec(FILE *outfile,
res = generate_property_spec(outfile, binding->interface, webidl_ast);
- fprintf(outfile, " JSAPI_PS_END\n};\n");
+ fprintf(outfile, " JSAPI_PS_END\n};\n");
return res;
}
@@ -217,7 +222,7 @@ static int webidl_func_spec_cb(struct webidl_node *node, void *ctx)
*/
} else {
fprintf(outfile,
- " JSAPI_FS(%s, 0, 0),\n",
+ " JSAPI_FS(%s, 0, 0),\n",
webidl_node_gettext(ident_node));
}
return 0;
@@ -232,6 +237,7 @@ generate_function_spec(FILE *outfile,
struct webidl_node *members_node;
struct webidl_node *inherit_node;
+
/* find interface in webidl with correct ident attached */
interface_node = webidl_node_find_type_ident(webidl_ast,
WEBIDL_NODE_TYPE_INTERFACE,
@@ -248,20 +254,21 @@ generate_function_spec(FILE *outfile,
NULL,
webidl_cmp_node_type,
(void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
- if (members_node == NULL) {
- fprintf(stderr,
- "Unable to find members within interface %s\n",
- interface);
- return -1;
- }
+ while (members_node != NULL) {
+ fprintf(outfile," /**** %s ****/\n", interface);
- /* for each function emit a JSAPI_FS()*/
- webidl_node_for_each_type(webidl_node_getnode(members_node),
- WEBIDL_NODE_TYPE_OPERATION,
- webidl_func_spec_cb,
- outfile);
+ /* for each function emit a JSAPI_FS()*/
+ webidl_node_for_each_type(webidl_node_getnode(members_node),
+ WEBIDL_NODE_TYPE_OPERATION,
+ webidl_func_spec_cb,
+ outfile);
+ members_node = webidl_node_find(webidl_node_getnode(interface_node),
+ members_node,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
+ }
/* check for inherited nodes and insert them too */
inherit_node = webidl_node_find(webidl_node_getnode(interface_node),
diff --git a/src/webidl-ast.c b/src/webidl-ast.c
index 396fd4b..aa8e279 100644
--- a/src/webidl-ast.c
+++ b/src/webidl-ast.c
@@ -20,6 +20,15 @@ extern int webidl__flex_debug;
extern void webidl_restart(FILE*);
extern int webidl_parse(struct webidl_node **webidl_ast);
+struct webidl_node {
+ enum webidl_node_type type;
+ struct webidl_node *l;
+ union {
+ void *value;
+ struct webidl_node *node;
+ char *text;
+ } r;
+};
struct webidl_node *
@@ -42,6 +51,12 @@ struct webidl_node *webidl_node_new(enum webidl_node_type type, struct webidl_no
return nn;
}
+void
+webidl_node_set(struct webidl_node *node, enum webidl_node_type type, void *r)
+{
+ node->type = type;
+ node->r.value = r;
+}
int
webidl_node_for_each_type(struct webidl_node *node,
@@ -76,7 +91,7 @@ webidl_node_find(struct webidl_node *node,
{
struct webidl_node *ret;
- if (node == NULL) {
+ if ((node == NULL) || (node == prev)){
return NULL;
}
@@ -150,17 +165,20 @@ char *webidl_node_gettext(struct webidl_node *node)
struct webidl_node *webidl_node_getnode(struct webidl_node *node)
{
- switch(node->type) {
- case WEBIDL_NODE_TYPE_ROOT:
- case WEBIDL_NODE_TYPE_INTERFACE:
- case WEBIDL_NODE_TYPE_INTERFACE_MEMBERS:
- case WEBIDL_NODE_TYPE_ATTRIBUTE:
- case WEBIDL_NODE_TYPE_OPERATION:
- return node->r.node;
-
- default:
- return NULL;
+ if (node != NULL) {
+ switch (node->type) {
+ case WEBIDL_NODE_TYPE_ROOT:
+ case WEBIDL_NODE_TYPE_INTERFACE:
+ case WEBIDL_NODE_TYPE_INTERFACE_MEMBERS:
+ case WEBIDL_NODE_TYPE_ATTRIBUTE:
+ case WEBIDL_NODE_TYPE_OPERATION:
+ return node->r.node;
+ default:
+ break;
+ }
}
+ return NULL;
+
}
static const char *webidl_node_type_to_str(enum webidl_node_type type)
diff --git a/src/webidl-ast.h b/src/webidl-ast.h
index 682bb27..b421615 100644
--- a/src/webidl-ast.h
+++ b/src/webidl-ast.h
@@ -19,14 +19,7 @@ enum webidl_node_type {
WEBIDL_NODE_TYPE_OPERATION,
};
-struct webidl_node {
- enum webidl_node_type type;
- struct webidl_node *l;
- union {
- struct webidl_node *node;
- char *text;
- } r;
-};
+struct webidl_node;
/** callback for search and iteration routines */
typedef int (webidl_callback_t)(struct webidl_node *node, void *ctx);
@@ -35,6 +28,8 @@ int webidl_cmp_node_type(struct webidl_node *node, void *ctx);
struct webidl_node *webidl_node_new(enum webidl_node_type, struct webidl_node *l, void *r);
+void webidl_node_set(struct webidl_node *node, enum webidl_node_type type, void *r);
+
struct webidl_node *webidl_node_link(struct webidl_node *tgt, struct webidl_node *src);
/* node contents acessors */
diff --git a/src/webidl-parser.y b/src/webidl-parser.y
index f0f1830..d9be0b9 100644
--- a/src/webidl-parser.y
+++ b/src/webidl-parser.y
@@ -113,7 +113,6 @@ webidl_error(YYLTYPE *locp, struct webidl_node **winbind_ast, const char *str)
%type <node> Partial
%type <node> PartialDefinition
-%type <node> PartialInterface
%type <node> Dictionary
%type <node> PartialDictionary
@@ -122,9 +121,11 @@ webidl_error(YYLTYPE *locp, struct webidl_node **winbind_ast, const char *str)
%type <node> Enum
%type <node> Typedef
%type <node> ImplementsStatement
+
%type <node> Interface
%type <node> InterfaceMembers
%type <node> InterfaceMember
+%type <node> PartialInterface
%type <node> CallbackOrInterface
%type <node> CallbackRest
@@ -137,7 +138,7 @@ webidl_error(YYLTYPE *locp, struct webidl_node **winbind_ast, const char *str)
%type <node> Operation
%type <node> OperationRest
-%type <node> OptionalIdentifier
+%type <text> OptionalIdentifier
%%
@@ -206,19 +207,43 @@ CallbackRestOrInterface:
Interface:
TOK_INTERFACE TOK_IDENTIFIER Inheritance '{' InterfaceMembers '}' ';'
{
- struct webidl_node *ident;
- struct webidl_node *members;
- struct webidl_node *inheritance = NULL;
-
- if ($3 != NULL) {
- inheritance = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE, NULL, $3);
+ /* extend interface with additional members */
+ struct webidl_node *interface_node;
+ interface_node = webidl_node_find_type_ident(*webidl_ast,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ $2);
+ if (interface_node == NULL) {
+ struct webidl_node *members;
+ struct webidl_node *ident;
+ struct webidl_node *inheritance = NULL;
+
+ if ($3 != NULL) {
+ inheritance = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE, NULL, $3);
+ }
+
+ members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS, inheritance, $5);
+
+ ident = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, members, $2);
+
+ $$ = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE, NULL, ident);
+ } else {
+ struct webidl_node *members;
+ struct webidl_node *inheritance = webidl_node_getnode(interface_node);
+
+ if ($3 != NULL) {
+ inheritance = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE, inheritance, $3);
+ }
+
+ members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS,
+ inheritance,
+ $5);
+
+ /* link member node into interfaces_node */
+ webidl_node_set(interface_node,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ members);
+ $$ = NULL; /* updated existing interface do not add it again */
}
-
- members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS, inheritance, $5);
-
- ident = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, members, $2);
-
- $$ = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE, NULL, ident);
}
;
@@ -241,7 +266,35 @@ PartialDefinition:
PartialInterface:
TOK_INTERFACE TOK_IDENTIFIER '{' InterfaceMembers '}' ';'
{
- $$=NULL;
+ /* extend interface with additional members */
+ struct webidl_node *interface_node;
+ interface_node = webidl_node_find_type_ident(*webidl_ast,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ $2);
+ if (interface_node == NULL) {
+ /* doesnt already exist so create it */
+ struct webidl_node *members;
+ struct webidl_node *ident;
+
+ members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS, NULL, $4);
+
+ ident = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, members, $2);
+
+ $$ = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE, NULL, ident);
+
+ } else {
+ struct webidl_node *members;
+ members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS,
+ webidl_node_getnode(interface_node),
+ $4);
+
+ /* link member node into interfaces_node */
+ webidl_node_set(interface_node,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ members);
+
+ $$ = NULL; /* updated existing interface do not add it again */
+ }
}
;
@@ -289,7 +342,6 @@ DictionaryMember:
PartialDictionary:
TOK_DICTIONARY TOK_IDENTIFIER '{' DictionaryMembers '}' ';'
{
- $$=NULL;
}
/* [15] */
@@ -515,7 +567,7 @@ OperationRest:
OptionalIdentifier:
/* empty */
{
- $$=NULL;
+ $$ = NULL;
}
|
TOK_IDENTIFIER
commitdiff http://git.netsurf-browser.org/nsgenjsbind.git/commitdiff/2133ce26a2ec07f...
commit 2133ce26a2ec07fb37a5f4cc6cab5326fdf49546
Author: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
Commit: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
add property and function array generation
diff --git a/src/jsapi-libdom.c b/src/jsapi-libdom.c
index 1f5b6d4..54c548c 100644
--- a/src/jsapi-libdom.c
+++ b/src/jsapi-libdom.c
@@ -1,4 +1,4 @@
-/* binding output generator for jsapi(spidermonkey) to libdom
+/* binding output generator for jsapi(spidermonkey) to libdom
*
* This file is part of nsgenjsbind.
* Licensed under the MIT License,
@@ -34,12 +34,12 @@ static int webidl_preamble_cb(struct genbind_node *node, void *ctx)
return 0;
}
-static int
+static int
output_preamble(FILE *outfile, struct genbind_node *genbind_ast)
{
genbind_node_for_each_type(genbind_ast,
- GENBIND_NODE_TYPE_PREAMBLE,
- webidl_preamble_cb,
+ GENBIND_NODE_TYPE_PREAMBLE,
+ webidl_preamble_cb,
outfile);
return 0;
}
@@ -56,19 +56,19 @@ static int webidl_hdrcomments_cb(struct genbind_node *node, void *ctx)
static int webidl_hdrcomment_cb(struct genbind_node *node, void *ctx)
{
genbind_node_for_each_type(genbind_node_getnode(node),
- GENBIND_NODE_TYPE_STRING,
- webidl_hdrcomments_cb,
+ GENBIND_NODE_TYPE_STRING,
+ webidl_hdrcomments_cb,
ctx);
return 0;
}
-static int
+static int
output_header_comments(FILE *outfile, struct genbind_node *genbind_ast)
{
fprintf(outfile, "/* "HDR_COMMENT_PREABLE);
genbind_node_for_each_type(genbind_ast,
- GENBIND_NODE_TYPE_HDRCOMMENT,
- webidl_hdrcomment_cb,
+ GENBIND_NODE_TYPE_HDRCOMMENT,
+ webidl_hdrcomment_cb,
outfile);
fprintf(outfile,"\n */\n\n");
return 0;
@@ -85,17 +85,17 @@ static int webidl_file_cb(struct genbind_node *node, void *ctx)
}
-static int
+static int
read_webidl(struct genbind_node *genbind_ast, struct webidl_node **webidl_ast)
{
int res;
res = genbind_node_for_each_type(genbind_ast,
- GENBIND_NODE_TYPE_WEBIDLFILE,
- webidl_file_cb,
+ GENBIND_NODE_TYPE_WEBIDLFILE,
+ webidl_file_cb,
webidl_ast);
- /* debug dump of web idl AST */
+ /* debug dump of web idl AST */
if (options->verbose) {
webidl_ast_dump(*webidl_ast, 0);
}
@@ -103,24 +103,198 @@ read_webidl(struct genbind_node *genbind_ast, struct webidl_node **webidl_ast)
}
-static int
-output_function_spec(FILE *outfile,
- struct genbind_node *genbind_ast,
- struct binding *binding)
+
+
+static int webidl_property_spec_cb(struct webidl_node *node, void *ctx)
{
-/* find interface element with correct ident attached in webidl */
-/* for each function (WEBIDL_NODE_TYPE_OPERATION) emit a JSAPI_FS()*/
-/* static JSFunctionSpec jsfunctions_document[] = {
- JSAPI_FS_DOCUMENT,
- JSAPI_FS(write, 1, 0),
- JSAPI_FS_END
-};
-*/
- fprintf(outfile, "%s\n%s\n", binding->name, binding->interface);
+ FILE *outfile = ctx;
+ struct webidl_node *ident_node;
+
+ ident_node = webidl_node_find(webidl_node_getnode(node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_IDENT);
+ if (ident_node == NULL) {
+ /* properties must have an operator
+ * http://www.w3.org/TR/WebIDL/#idl-attributes
+ */
+ return 1;
+ } else {
+ fprintf(outfile,
+ " JSAPI_PS(%s, 0, JSPROP_ENUMERATE | JSPROP_SHARED),\n",
+ webidl_node_gettext(ident_node));
+ }
return 0;
}
+static int
+generate_property_spec(FILE *outfile,
+ const char *interface,
+ struct webidl_node *webidl_ast)
+{
+ struct webidl_node *interface_node;
+ struct webidl_node *members_node;
+ struct webidl_node *inherit_node;
+
+ /* find interface in webidl with correct ident attached */
+ interface_node = webidl_node_find_type_ident(webidl_ast,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ interface);
+
+ if (interface_node == NULL) {
+ fprintf(stderr,
+ "Unable to find interface %s in loaded WebIDL\n",
+ interface);
+ return -1;
+ }
+
+ members_node = webidl_node_find(webidl_node_getnode(interface_node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
+ if (members_node == NULL) {
+ fprintf(stderr,
+ "Unable to find members within interface %s\n",
+ interface);
+ return -1;
+ }
+
+
+ /* for each function emit a JSAPI_FS()*/
+ webidl_node_for_each_type(webidl_node_getnode(members_node),
+ WEBIDL_NODE_TYPE_ATTRIBUTE,
+ webidl_property_spec_cb,
+ outfile);
+
+
+ /* check for inherited nodes and insert them too */
+ inherit_node = webidl_node_find(webidl_node_getnode(interface_node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE);
+
+ if (inherit_node != NULL) {
+ return generate_property_spec(outfile,
+ webidl_node_gettext(inherit_node),
+ webidl_ast);
+ }
+
+ return 0;
+}
+
+static int
+output_property_spec(FILE *outfile,
+ struct binding *binding,
+ struct webidl_node *webidl_ast)
+{
+ int res;
+ fprintf(outfile,
+ "static JSPropertySpec jsproperties_%s[] = {\n",
+ binding->name);
+
+ res = generate_property_spec(outfile, binding->interface, webidl_ast);
+
+ fprintf(outfile, " JSAPI_PS_END\n};\n");
+
+ return res;
+}
+
+
+static int webidl_func_spec_cb(struct webidl_node *node, void *ctx)
+{
+ FILE *outfile = ctx;
+ struct webidl_node *ident_node;
+
+ ident_node = webidl_node_find(webidl_node_getnode(node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_IDENT);
+
+ if (ident_node == NULL) {
+ /* operation without identifier - must have special keyword
+ * http://www.w3.org/TR/WebIDL/#idl-operations
+ */
+ } else {
+ fprintf(outfile,
+ " JSAPI_FS(%s, 0, 0),\n",
+ webidl_node_gettext(ident_node));
+ }
+ return 0;
+}
+
+static int
+generate_function_spec(FILE *outfile,
+ const char *interface,
+ struct webidl_node *webidl_ast)
+{
+ struct webidl_node *interface_node;
+ struct webidl_node *members_node;
+ struct webidl_node *inherit_node;
+
+ /* find interface in webidl with correct ident attached */
+ interface_node = webidl_node_find_type_ident(webidl_ast,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ interface);
+
+ if (interface_node == NULL) {
+ fprintf(stderr,
+ "Unable to find interface %s in loaded WebIDL\n",
+ interface);
+ return -1;
+ }
+
+ members_node = webidl_node_find(webidl_node_getnode(interface_node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
+ if (members_node == NULL) {
+ fprintf(stderr,
+ "Unable to find members within interface %s\n",
+ interface);
+ return -1;
+ }
+
+
+ /* for each function emit a JSAPI_FS()*/
+ webidl_node_for_each_type(webidl_node_getnode(members_node),
+ WEBIDL_NODE_TYPE_OPERATION,
+ webidl_func_spec_cb,
+ outfile);
+
+
+ /* check for inherited nodes and insert them too */
+ inherit_node = webidl_node_find(webidl_node_getnode(interface_node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE);
+
+ if (inherit_node != NULL) {
+ return generate_function_spec(outfile,
+ webidl_node_gettext(inherit_node),
+ webidl_ast);
+ }
+
+ return 0;
+}
+
+static int
+output_function_spec(FILE *outfile,
+ struct binding *binding,
+ struct webidl_node *webidl_ast)
+{
+ int res;
+ fprintf(outfile,
+ "static JSFunctionSpec jsfunctions_%s[] = {\n",
+ binding->name);
+
+ res = generate_function_spec(outfile, binding->interface, webidl_ast);
+
+ fprintf(outfile, " JSAPI_FS_END\n};\n");
+
+ return res;
+}
+
static struct binding *binding_new(struct genbind_node *genbind_ast)
{
struct binding *nb;
@@ -165,7 +339,7 @@ static struct binding *binding_new(struct genbind_node *genbind_ast)
int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
{
- FILE *outfile = NULL;
+ FILE *outfile = NULL;
struct webidl_node *webidl_ast = NULL;
int res;
struct binding *binding;
@@ -180,7 +354,7 @@ int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
/* get general binding information used in output */
binding = binding_new(genbind_ast);
- /* open output file */
+ /* open output file */
if (outfilename == NULL) {
outfile = stdout;
} else {
@@ -189,7 +363,7 @@ int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
if (!outfile) {
fprintf(stderr, "Error opening output %s: %s\n",
- outfilename,
+ outfilename,
strerror(errno));
return 4;
}
@@ -198,9 +372,15 @@ int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
output_preamble(outfile, genbind_ast);
- output_function_spec(outfile, genbind_ast, binding);
+ res = output_function_spec(outfile, binding, webidl_ast);
+ if (res) {
+ return 5;
+ }
- //output_property_spec(outfile, genbind_ast);
+ res = output_property_spec(outfile, binding, webidl_ast);
+ if (res) {
+ return 5;
+ }
fclose(outfile);
diff --git a/src/webidl-ast.c b/src/webidl-ast.c
index 810ac24..396fd4b 100644
--- a/src/webidl-ast.c
+++ b/src/webidl-ast.c
@@ -67,6 +67,73 @@ webidl_node_for_each_type(struct webidl_node *node,
return 0;
}
+/* exported interface defined in genjsbind-ast.h */
+struct webidl_node *
+webidl_node_find(struct webidl_node *node,
+ struct webidl_node *prev,
+ webidl_callback_t *cb,
+ void *ctx)
+{
+ struct webidl_node *ret;
+
+ if (node == NULL) {
+ return NULL;
+ }
+
+ if (node->l != prev) {
+ ret = webidl_node_find(node->l, prev, cb, ctx);
+ if (ret != NULL) {
+ return ret;
+ }
+ }
+
+ if (cb(node, ctx) != 0) {
+ return node;
+ }
+
+ return NULL;
+}
+
+int webidl_cmp_node_type(struct webidl_node *node, void *ctx)
+{
+ if (node->type == (enum webidl_node_type)ctx)
+ return 1;
+ return 0;
+}
+
+struct webidl_node *
+webidl_node_find_type_ident(struct webidl_node *root_node,
+ enum webidl_node_type type,
+ const char *ident)
+{
+ struct webidl_node *node;
+ struct webidl_node *ident_node;
+
+ node = webidl_node_find(root_node,
+ NULL,
+ webidl_cmp_node_type,
+ (void *)type);
+
+ while (node != NULL) {
+
+ ident_node = webidl_node_find(webidl_node_getnode(node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_IDENT);
+ if (ident_node != NULL) {
+ if (strcmp(ident_node->r.text, ident) == 0)
+ break;
+ }
+
+ node = webidl_node_find(root_node,
+ node,
+ webidl_cmp_node_type,
+ (void *)type);
+
+ }
+ return node;
+}
+
char *webidl_node_gettext(struct webidl_node *node)
{
diff --git a/src/webidl-ast.h b/src/webidl-ast.h
index 8af3aeb..682bb27 100644
--- a/src/webidl-ast.h
+++ b/src/webidl-ast.h
@@ -31,6 +31,7 @@ struct webidl_node {
/** callback for search and iteration routines */
typedef int (webidl_callback_t)(struct webidl_node *node, void *ctx);
+int webidl_cmp_node_type(struct webidl_node *node, void *ctx);
struct webidl_node *webidl_node_new(enum webidl_node_type, struct webidl_node *l, void *r);
@@ -47,6 +48,18 @@ int webidl_node_for_each_type(struct webidl_node *node,
webidl_callback_t *cb,
void *ctx);
+struct webidl_node *
+webidl_node_find(struct webidl_node *node,
+ struct webidl_node *prev,
+ webidl_callback_t *cb,
+ void *ctx);
+
+struct webidl_node *
+webidl_node_find_type_ident(struct webidl_node *root_node,
+ enum webidl_node_type type,
+ const char *ident);
+
+
/* debug dump */
int webidl_ast_dump(struct webidl_node *node, int indent);
-----------------------------------------------------------------------
Summary of changes:
src/jsapi-libdom.c | 249 ++++++++++++++++++++++++++++++++++++++++++++-------
src/webidl-ast.c | 105 +++++++++++++++++++--
src/webidl-ast.h | 24 ++++--
src/webidl-parser.y | 86 ++++++++++++++----
4 files changed, 398 insertions(+), 66 deletions(-)
diff --git a/src/jsapi-libdom.c b/src/jsapi-libdom.c
index 1f5b6d4..aba6bdf 100644
--- a/src/jsapi-libdom.c
+++ b/src/jsapi-libdom.c
@@ -1,4 +1,4 @@
-/* binding output generator for jsapi(spidermonkey) to libdom
+/* binding output generator for jsapi(spidermonkey) to libdom
*
* This file is part of nsgenjsbind.
* Licensed under the MIT License,
@@ -34,12 +34,12 @@ static int webidl_preamble_cb(struct genbind_node *node, void *ctx)
return 0;
}
-static int
+static int
output_preamble(FILE *outfile, struct genbind_node *genbind_ast)
{
genbind_node_for_each_type(genbind_ast,
- GENBIND_NODE_TYPE_PREAMBLE,
- webidl_preamble_cb,
+ GENBIND_NODE_TYPE_PREAMBLE,
+ webidl_preamble_cb,
outfile);
return 0;
}
@@ -56,19 +56,19 @@ static int webidl_hdrcomments_cb(struct genbind_node *node, void *ctx)
static int webidl_hdrcomment_cb(struct genbind_node *node, void *ctx)
{
genbind_node_for_each_type(genbind_node_getnode(node),
- GENBIND_NODE_TYPE_STRING,
- webidl_hdrcomments_cb,
+ GENBIND_NODE_TYPE_STRING,
+ webidl_hdrcomments_cb,
ctx);
return 0;
}
-static int
+static int
output_header_comments(FILE *outfile, struct genbind_node *genbind_ast)
{
fprintf(outfile, "/* "HDR_COMMENT_PREABLE);
genbind_node_for_each_type(genbind_ast,
- GENBIND_NODE_TYPE_HDRCOMMENT,
- webidl_hdrcomment_cb,
+ GENBIND_NODE_TYPE_HDRCOMMENT,
+ webidl_hdrcomment_cb,
outfile);
fprintf(outfile,"\n */\n\n");
return 0;
@@ -85,17 +85,17 @@ static int webidl_file_cb(struct genbind_node *node, void *ctx)
}
-static int
+static int
read_webidl(struct genbind_node *genbind_ast, struct webidl_node **webidl_ast)
{
int res;
res = genbind_node_for_each_type(genbind_ast,
- GENBIND_NODE_TYPE_WEBIDLFILE,
- webidl_file_cb,
+ GENBIND_NODE_TYPE_WEBIDLFILE,
+ webidl_file_cb,
webidl_ast);
- /* debug dump of web idl AST */
+ /* debug dump of web idl AST */
if (options->verbose) {
webidl_ast_dump(*webidl_ast, 0);
}
@@ -103,24 +103,205 @@ read_webidl(struct genbind_node *genbind_ast, struct webidl_node **webidl_ast)
}
-static int
-output_function_spec(FILE *outfile,
- struct genbind_node *genbind_ast,
- struct binding *binding)
+
+
+static int webidl_property_spec_cb(struct webidl_node *node, void *ctx)
{
-/* find interface element with correct ident attached in webidl */
-/* for each function (WEBIDL_NODE_TYPE_OPERATION) emit a JSAPI_FS()*/
-/* static JSFunctionSpec jsfunctions_document[] = {
- JSAPI_FS_DOCUMENT,
- JSAPI_FS(write, 1, 0),
- JSAPI_FS_END
-};
-*/
- fprintf(outfile, "%s\n%s\n", binding->name, binding->interface);
+ FILE *outfile = ctx;
+ struct webidl_node *ident_node;
+
+ ident_node = webidl_node_find(webidl_node_getnode(node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_IDENT);
+ if (ident_node == NULL) {
+ /* properties must have an operator
+ * http://www.w3.org/TR/WebIDL/#idl-attributes
+ */
+ return 1;
+ } else {
+ fprintf(outfile,
+ " JSAPI_PS(%s, 0, JSPROP_ENUMERATE | JSPROP_SHARED),\n",
+ webidl_node_gettext(ident_node));
+ }
return 0;
}
+static int
+generate_property_spec(FILE *outfile,
+ const char *interface,
+ struct webidl_node *webidl_ast)
+{
+ struct webidl_node *interface_node;
+ struct webidl_node *members_node;
+ struct webidl_node *inherit_node;
+
+
+ /* find interface in webidl with correct ident attached */
+ interface_node = webidl_node_find_type_ident(webidl_ast,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ interface);
+
+ if (interface_node == NULL) {
+ fprintf(stderr,
+ "Unable to find interface %s in loaded WebIDL\n",
+ interface);
+ return -1;
+ }
+
+ members_node = webidl_node_find(webidl_node_getnode(interface_node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
+
+ while (members_node != NULL) {
+
+ fprintf(outfile," /**** %s ****/\n", interface);
+
+
+ /* for each function emit a JSAPI_FS()*/
+ webidl_node_for_each_type(webidl_node_getnode(members_node),
+ WEBIDL_NODE_TYPE_ATTRIBUTE,
+ webidl_property_spec_cb,
+ outfile);
+
+
+ members_node = webidl_node_find(webidl_node_getnode(interface_node),
+ members_node,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
+
+ }
+ /* check for inherited nodes and insert them too */
+ inherit_node = webidl_node_find(webidl_node_getnode(interface_node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE);
+
+ if (inherit_node != NULL) {
+ return generate_property_spec(outfile,
+ webidl_node_gettext(inherit_node),
+ webidl_ast);
+ }
+
+ return 0;
+}
+
+static int
+output_property_spec(FILE *outfile,
+ struct binding *binding,
+ struct webidl_node *webidl_ast)
+{
+ int res;
+ fprintf(outfile,
+ "static JSPropertySpec jsproperties_%s[] = {\n",
+ binding->name);
+
+ res = generate_property_spec(outfile, binding->interface, webidl_ast);
+
+ fprintf(outfile, " JSAPI_PS_END\n};\n");
+
+ return res;
+}
+
+
+static int webidl_func_spec_cb(struct webidl_node *node, void *ctx)
+{
+ FILE *outfile = ctx;
+ struct webidl_node *ident_node;
+
+ ident_node = webidl_node_find(webidl_node_getnode(node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_IDENT);
+
+ if (ident_node == NULL) {
+ /* operation without identifier - must have special keyword
+ * http://www.w3.org/TR/WebIDL/#idl-operations
+ */
+ } else {
+ fprintf(outfile,
+ " JSAPI_FS(%s, 0, 0),\n",
+ webidl_node_gettext(ident_node));
+ }
+ return 0;
+}
+
+static int
+generate_function_spec(FILE *outfile,
+ const char *interface,
+ struct webidl_node *webidl_ast)
+{
+ struct webidl_node *interface_node;
+ struct webidl_node *members_node;
+ struct webidl_node *inherit_node;
+
+
+ /* find interface in webidl with correct ident attached */
+ interface_node = webidl_node_find_type_ident(webidl_ast,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ interface);
+
+ if (interface_node == NULL) {
+ fprintf(stderr,
+ "Unable to find interface %s in loaded WebIDL\n",
+ interface);
+ return -1;
+ }
+
+ members_node = webidl_node_find(webidl_node_getnode(interface_node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
+ while (members_node != NULL) {
+
+ fprintf(outfile," /**** %s ****/\n", interface);
+
+ /* for each function emit a JSAPI_FS()*/
+ webidl_node_for_each_type(webidl_node_getnode(members_node),
+ WEBIDL_NODE_TYPE_OPERATION,
+ webidl_func_spec_cb,
+ outfile);
+
+ members_node = webidl_node_find(webidl_node_getnode(interface_node),
+ members_node,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_MEMBERS);
+ }
+
+ /* check for inherited nodes and insert them too */
+ inherit_node = webidl_node_find(webidl_node_getnode(interface_node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE);
+
+ if (inherit_node != NULL) {
+ return generate_function_spec(outfile,
+ webidl_node_gettext(inherit_node),
+ webidl_ast);
+ }
+
+ return 0;
+}
+
+static int
+output_function_spec(FILE *outfile,
+ struct binding *binding,
+ struct webidl_node *webidl_ast)
+{
+ int res;
+ fprintf(outfile,
+ "static JSFunctionSpec jsfunctions_%s[] = {\n",
+ binding->name);
+
+ res = generate_function_spec(outfile, binding->interface, webidl_ast);
+
+ fprintf(outfile, " JSAPI_FS_END\n};\n");
+
+ return res;
+}
+
static struct binding *binding_new(struct genbind_node *genbind_ast)
{
struct binding *nb;
@@ -165,7 +346,7 @@ static struct binding *binding_new(struct genbind_node *genbind_ast)
int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
{
- FILE *outfile = NULL;
+ FILE *outfile = NULL;
struct webidl_node *webidl_ast = NULL;
int res;
struct binding *binding;
@@ -180,7 +361,7 @@ int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
/* get general binding information used in output */
binding = binding_new(genbind_ast);
- /* open output file */
+ /* open output file */
if (outfilename == NULL) {
outfile = stdout;
} else {
@@ -189,7 +370,7 @@ int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
if (!outfile) {
fprintf(stderr, "Error opening output %s: %s\n",
- outfilename,
+ outfilename,
strerror(errno));
return 4;
}
@@ -198,9 +379,15 @@ int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
output_preamble(outfile, genbind_ast);
- output_function_spec(outfile, genbind_ast, binding);
+ res = output_function_spec(outfile, binding, webidl_ast);
+ if (res) {
+ return 5;
+ }
- //output_property_spec(outfile, genbind_ast);
+ res = output_property_spec(outfile, binding, webidl_ast);
+ if (res) {
+ return 5;
+ }
fclose(outfile);
diff --git a/src/webidl-ast.c b/src/webidl-ast.c
index 810ac24..aa8e279 100644
--- a/src/webidl-ast.c
+++ b/src/webidl-ast.c
@@ -20,6 +20,15 @@ extern int webidl__flex_debug;
extern void webidl_restart(FILE*);
extern int webidl_parse(struct webidl_node **webidl_ast);
+struct webidl_node {
+ enum webidl_node_type type;
+ struct webidl_node *l;
+ union {
+ void *value;
+ struct webidl_node *node;
+ char *text;
+ } r;
+};
struct webidl_node *
@@ -42,6 +51,12 @@ struct webidl_node *webidl_node_new(enum webidl_node_type type, struct webidl_no
return nn;
}
+void
+webidl_node_set(struct webidl_node *node, enum webidl_node_type type, void *r)
+{
+ node->type = type;
+ node->r.value = r;
+}
int
webidl_node_for_each_type(struct webidl_node *node,
@@ -67,6 +82,73 @@ webidl_node_for_each_type(struct webidl_node *node,
return 0;
}
+/* exported interface defined in genjsbind-ast.h */
+struct webidl_node *
+webidl_node_find(struct webidl_node *node,
+ struct webidl_node *prev,
+ webidl_callback_t *cb,
+ void *ctx)
+{
+ struct webidl_node *ret;
+
+ if ((node == NULL) || (node == prev)){
+ return NULL;
+ }
+
+ if (node->l != prev) {
+ ret = webidl_node_find(node->l, prev, cb, ctx);
+ if (ret != NULL) {
+ return ret;
+ }
+ }
+
+ if (cb(node, ctx) != 0) {
+ return node;
+ }
+
+ return NULL;
+}
+
+int webidl_cmp_node_type(struct webidl_node *node, void *ctx)
+{
+ if (node->type == (enum webidl_node_type)ctx)
+ return 1;
+ return 0;
+}
+
+struct webidl_node *
+webidl_node_find_type_ident(struct webidl_node *root_node,
+ enum webidl_node_type type,
+ const char *ident)
+{
+ struct webidl_node *node;
+ struct webidl_node *ident_node;
+
+ node = webidl_node_find(root_node,
+ NULL,
+ webidl_cmp_node_type,
+ (void *)type);
+
+ while (node != NULL) {
+
+ ident_node = webidl_node_find(webidl_node_getnode(node),
+ NULL,
+ webidl_cmp_node_type,
+ (void *)WEBIDL_NODE_TYPE_IDENT);
+ if (ident_node != NULL) {
+ if (strcmp(ident_node->r.text, ident) == 0)
+ break;
+ }
+
+ node = webidl_node_find(root_node,
+ node,
+ webidl_cmp_node_type,
+ (void *)type);
+
+ }
+ return node;
+}
+
char *webidl_node_gettext(struct webidl_node *node)
{
@@ -83,17 +165,20 @@ char *webidl_node_gettext(struct webidl_node *node)
struct webidl_node *webidl_node_getnode(struct webidl_node *node)
{
- switch(node->type) {
- case WEBIDL_NODE_TYPE_ROOT:
- case WEBIDL_NODE_TYPE_INTERFACE:
- case WEBIDL_NODE_TYPE_INTERFACE_MEMBERS:
- case WEBIDL_NODE_TYPE_ATTRIBUTE:
- case WEBIDL_NODE_TYPE_OPERATION:
- return node->r.node;
-
- default:
- return NULL;
+ if (node != NULL) {
+ switch (node->type) {
+ case WEBIDL_NODE_TYPE_ROOT:
+ case WEBIDL_NODE_TYPE_INTERFACE:
+ case WEBIDL_NODE_TYPE_INTERFACE_MEMBERS:
+ case WEBIDL_NODE_TYPE_ATTRIBUTE:
+ case WEBIDL_NODE_TYPE_OPERATION:
+ return node->r.node;
+ default:
+ break;
+ }
}
+ return NULL;
+
}
static const char *webidl_node_type_to_str(enum webidl_node_type type)
diff --git a/src/webidl-ast.h b/src/webidl-ast.h
index 8af3aeb..b421615 100644
--- a/src/webidl-ast.h
+++ b/src/webidl-ast.h
@@ -19,21 +19,17 @@ enum webidl_node_type {
WEBIDL_NODE_TYPE_OPERATION,
};
-struct webidl_node {
- enum webidl_node_type type;
- struct webidl_node *l;
- union {
- struct webidl_node *node;
- char *text;
- } r;
-};
+struct webidl_node;
/** callback for search and iteration routines */
typedef int (webidl_callback_t)(struct webidl_node *node, void *ctx);
+int webidl_cmp_node_type(struct webidl_node *node, void *ctx);
struct webidl_node *webidl_node_new(enum webidl_node_type, struct webidl_node *l, void *r);
+void webidl_node_set(struct webidl_node *node, enum webidl_node_type type, void *r);
+
struct webidl_node *webidl_node_link(struct webidl_node *tgt, struct webidl_node *src);
/* node contents acessors */
@@ -47,6 +43,18 @@ int webidl_node_for_each_type(struct webidl_node *node,
webidl_callback_t *cb,
void *ctx);
+struct webidl_node *
+webidl_node_find(struct webidl_node *node,
+ struct webidl_node *prev,
+ webidl_callback_t *cb,
+ void *ctx);
+
+struct webidl_node *
+webidl_node_find_type_ident(struct webidl_node *root_node,
+ enum webidl_node_type type,
+ const char *ident);
+
+
/* debug dump */
int webidl_ast_dump(struct webidl_node *node, int indent);
diff --git a/src/webidl-parser.y b/src/webidl-parser.y
index f0f1830..d9be0b9 100644
--- a/src/webidl-parser.y
+++ b/src/webidl-parser.y
@@ -113,7 +113,6 @@ webidl_error(YYLTYPE *locp, struct webidl_node **winbind_ast, const char *str)
%type <node> Partial
%type <node> PartialDefinition
-%type <node> PartialInterface
%type <node> Dictionary
%type <node> PartialDictionary
@@ -122,9 +121,11 @@ webidl_error(YYLTYPE *locp, struct webidl_node **winbind_ast, const char *str)
%type <node> Enum
%type <node> Typedef
%type <node> ImplementsStatement
+
%type <node> Interface
%type <node> InterfaceMembers
%type <node> InterfaceMember
+%type <node> PartialInterface
%type <node> CallbackOrInterface
%type <node> CallbackRest
@@ -137,7 +138,7 @@ webidl_error(YYLTYPE *locp, struct webidl_node **winbind_ast, const char *str)
%type <node> Operation
%type <node> OperationRest
-%type <node> OptionalIdentifier
+%type <text> OptionalIdentifier
%%
@@ -206,19 +207,43 @@ CallbackRestOrInterface:
Interface:
TOK_INTERFACE TOK_IDENTIFIER Inheritance '{' InterfaceMembers '}' ';'
{
- struct webidl_node *ident;
- struct webidl_node *members;
- struct webidl_node *inheritance = NULL;
-
- if ($3 != NULL) {
- inheritance = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE, NULL, $3);
+ /* extend interface with additional members */
+ struct webidl_node *interface_node;
+ interface_node = webidl_node_find_type_ident(*webidl_ast,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ $2);
+ if (interface_node == NULL) {
+ struct webidl_node *members;
+ struct webidl_node *ident;
+ struct webidl_node *inheritance = NULL;
+
+ if ($3 != NULL) {
+ inheritance = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE, NULL, $3);
+ }
+
+ members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS, inheritance, $5);
+
+ ident = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, members, $2);
+
+ $$ = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE, NULL, ident);
+ } else {
+ struct webidl_node *members;
+ struct webidl_node *inheritance = webidl_node_getnode(interface_node);
+
+ if ($3 != NULL) {
+ inheritance = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE, inheritance, $3);
+ }
+
+ members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS,
+ inheritance,
+ $5);
+
+ /* link member node into interfaces_node */
+ webidl_node_set(interface_node,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ members);
+ $$ = NULL; /* updated existing interface do not add it again */
}
-
- members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS, inheritance, $5);
-
- ident = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, members, $2);
-
- $$ = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE, NULL, ident);
}
;
@@ -241,7 +266,35 @@ PartialDefinition:
PartialInterface:
TOK_INTERFACE TOK_IDENTIFIER '{' InterfaceMembers '}' ';'
{
- $$=NULL;
+ /* extend interface with additional members */
+ struct webidl_node *interface_node;
+ interface_node = webidl_node_find_type_ident(*webidl_ast,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ $2);
+ if (interface_node == NULL) {
+ /* doesnt already exist so create it */
+ struct webidl_node *members;
+ struct webidl_node *ident;
+
+ members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS, NULL, $4);
+
+ ident = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, members, $2);
+
+ $$ = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE, NULL, ident);
+
+ } else {
+ struct webidl_node *members;
+ members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS,
+ webidl_node_getnode(interface_node),
+ $4);
+
+ /* link member node into interfaces_node */
+ webidl_node_set(interface_node,
+ WEBIDL_NODE_TYPE_INTERFACE,
+ members);
+
+ $$ = NULL; /* updated existing interface do not add it again */
+ }
}
;
@@ -289,7 +342,6 @@ DictionaryMember:
PartialDictionary:
TOK_DICTIONARY TOK_IDENTIFIER '{' DictionaryMembers '}' ';'
{
- $$=NULL;
}
/* [15] */
@@ -515,7 +567,7 @@ OperationRest:
OptionalIdentifier:
/* empty */
{
- $$=NULL;
+ $$ = NULL;
}
|
TOK_IDENTIFIER
--
NetSurf Generator for JavaScript bindings
10 years, 6 months
netsurf: branch master updated. c22fbf937756a1b35085a8577e138bd1dc540eea
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/c22fbf937756a1b35085a...
...commit http://git.netsurf-browser.org/netsurf.git/commit/c22fbf937756a1b35085a85...
...tree http://git.netsurf-browser.org/netsurf.git/tree/c22fbf937756a1b35085a8577...
The branch, master has been updated
via c22fbf937756a1b35085a8577e138bd1dc540eea (commit)
from d5e1616a454ffd1a2e9f7b2abf479f0c1aee4425 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commitdiff/c22fbf937756a1b3508...
commit c22fbf937756a1b35085a8577e138bd1dc540eea
Author: John-Mark Bell <jmb(a)netsurf-browser.org>
Commit: John-Mark Bell <jmb(a)netsurf-browser.org>
Avoid trying to mmap zero-length files.
Remove buf size limit in mmap case: prevented processing entire file.
diff --git a/content/fetchers/file.c b/content/fetchers/file.c
index abedaa7..73bfbdb 100644
--- a/content/fetchers/file.c
+++ b/content/fetchers/file.c
@@ -256,7 +256,7 @@ static void fetch_file_process_plain(struct fetch_file_context *ctx,
{
#ifdef HAVE_MMAP
fetch_msg msg;
- char *buf;
+ char *buf = NULL;
size_t buf_size;
int fd; /**< The file descriptor of the object */
@@ -279,17 +279,17 @@ static void fetch_file_process_plain(struct fetch_file_context *ctx,
/* set buffer size */
buf_size = fdstat->st_size;
- if (buf_size > FETCH_FILE_MAX_BUF_SIZE)
- buf_size = FETCH_FILE_MAX_BUF_SIZE;
/* allocate the buffer storage */
- buf = mmap(NULL, buf_size, PROT_READ, MAP_SHARED, fd, 0);
- if (buf == MAP_FAILED) {
- msg.type = FETCH_ERROR;
- msg.data.error = "Unable to map memory for file data buffer";
- fetch_file_send_callback(&msg, ctx);
- close(fd);
- return;
+ if (buf_size > 0) {
+ buf = mmap(NULL, buf_size, PROT_READ, MAP_SHARED, fd, 0);
+ if (buf == MAP_FAILED) {
+ msg.type = FETCH_ERROR;
+ msg.data.error = "Unable to map memory for file data buffer";
+ fetch_file_send_callback(&msg, ctx);
+ close(fd);
+ return;
+ }
}
/* fetch is going to be successful */
@@ -327,7 +327,8 @@ static void fetch_file_process_plain(struct fetch_file_context *ctx,
fetch_file_process_aborted:
- munmap(buf, buf_size);
+ if (buf != NULL)
+ munmap(buf, buf_size);
close(fd);
#else
fetch_msg msg;
-----------------------------------------------------------------------
Summary of changes:
content/fetchers/file.c | 23 ++++++++++++-----------
1 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/content/fetchers/file.c b/content/fetchers/file.c
index abedaa7..73bfbdb 100644
--- a/content/fetchers/file.c
+++ b/content/fetchers/file.c
@@ -256,7 +256,7 @@ static void fetch_file_process_plain(struct fetch_file_context *ctx,
{
#ifdef HAVE_MMAP
fetch_msg msg;
- char *buf;
+ char *buf = NULL;
size_t buf_size;
int fd; /**< The file descriptor of the object */
@@ -279,17 +279,17 @@ static void fetch_file_process_plain(struct fetch_file_context *ctx,
/* set buffer size */
buf_size = fdstat->st_size;
- if (buf_size > FETCH_FILE_MAX_BUF_SIZE)
- buf_size = FETCH_FILE_MAX_BUF_SIZE;
/* allocate the buffer storage */
- buf = mmap(NULL, buf_size, PROT_READ, MAP_SHARED, fd, 0);
- if (buf == MAP_FAILED) {
- msg.type = FETCH_ERROR;
- msg.data.error = "Unable to map memory for file data buffer";
- fetch_file_send_callback(&msg, ctx);
- close(fd);
- return;
+ if (buf_size > 0) {
+ buf = mmap(NULL, buf_size, PROT_READ, MAP_SHARED, fd, 0);
+ if (buf == MAP_FAILED) {
+ msg.type = FETCH_ERROR;
+ msg.data.error = "Unable to map memory for file data buffer";
+ fetch_file_send_callback(&msg, ctx);
+ close(fd);
+ return;
+ }
}
/* fetch is going to be successful */
@@ -327,7 +327,8 @@ static void fetch_file_process_plain(struct fetch_file_context *ctx,
fetch_file_process_aborted:
- munmap(buf, buf_size);
+ if (buf != NULL)
+ munmap(buf, buf_size);
close(fd);
#else
fetch_msg msg;
--
NetSurf Browser
10 years, 6 months
nsgenjsbind: branch master updated. 94259becfc4441d9061c6f34f3e801dda834d01d
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/nsgenjsbind.git/shortlog/94259becfc4441d90...
...commit http://git.netsurf-browser.org/nsgenjsbind.git/commit/94259becfc4441d9061...
...tree http://git.netsurf-browser.org/nsgenjsbind.git/tree/94259becfc4441d9061c6...
The branch, master has been updated
via 94259becfc4441d9061c6f34f3e801dda834d01d (commit)
via 96054410e6e8e7d80dab0634d5369148e3062e7d (commit)
via 46cfe5f47ce0034bb8804d0bd04d573bc6213ab8 (commit)
from d5c2e8d0843abd94e4fed57f25186147f56a3976 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/nsgenjsbind.git/commitdiff/94259becfc4441d...
commit 94259becfc4441d9061c6f34f3e801dda834d01d
Author: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
Commit: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
add comments on generating jsapi function output
diff --git a/src/jsapi-libdom.c b/src/jsapi-libdom.c
index 4dc2db8..1f5b6d4 100644
--- a/src/jsapi-libdom.c
+++ b/src/jsapi-libdom.c
@@ -108,6 +108,14 @@ output_function_spec(FILE *outfile,
struct genbind_node *genbind_ast,
struct binding *binding)
{
+/* find interface element with correct ident attached in webidl */
+/* for each function (WEBIDL_NODE_TYPE_OPERATION) emit a JSAPI_FS()*/
+/* static JSFunctionSpec jsfunctions_document[] = {
+ JSAPI_FS_DOCUMENT,
+ JSAPI_FS(write, 1, 0),
+ JSAPI_FS_END
+};
+*/
fprintf(outfile, "%s\n%s\n", binding->name, binding->interface);
return 0;
commitdiff http://git.netsurf-browser.org/nsgenjsbind.git/commitdiff/96054410e6e8e7d...
commit 96054410e6e8e7d80dab0634d5369148e3062e7d
Author: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
Commit: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
improve binding debug tree dump output
diff --git a/src/genjsbind-ast.c b/src/genjsbind-ast.c
index 94f306c..32d5553 100644
--- a/src/genjsbind-ast.c
+++ b/src/genjsbind-ast.c
@@ -181,31 +181,33 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type)
return "Type";
case GENBIND_NODE_TYPE_TYPE_NODE:
- return "Type: Node";
+ return "Node";
case GENBIND_NODE_TYPE_TYPE_EXTRA:
- return "Type: Extra";
+ return "Extra";
case GENBIND_NODE_TYPE_TYPE_INTERFACE:
- return "Type: Interface";
+ return "Interface";
default:
return "Unknown";
}
}
-int genbind_ast_dump(struct genbind_node *node)
+int genbind_ast_dump(struct genbind_node *node, int indent)
{
+ const char *SPACES=" ";
char *txt;
- while (node != NULL) {
- printf("%s\n", genbind_node_type_to_str(node->type));
+ while (node != NULL) {
+ printf("%.*s%s", indent, SPACES, genbind_node_type_to_str(node->type));
txt = genbind_node_gettext(node);
if (txt == NULL) {
- genbind_ast_dump(genbind_node_getnode(node));
+ printf("\n");
+ genbind_ast_dump(genbind_node_getnode(node), indent + 2);
} else {
- printf(" %s\n", txt);
+ printf(": \"%.*s\"\n", 75 - indent, txt);
}
node = node->l;
}
diff --git a/src/genjsbind-ast.h b/src/genjsbind-ast.h
index 66d66c2..9d25aad 100644
--- a/src/genjsbind-ast.h
+++ b/src/genjsbind-ast.h
@@ -38,7 +38,7 @@ char *genbind_strapp(char *a, char *b);
struct genbind_node *genbind_new_node(enum genbind_node_type type, struct genbind_node *l, void *r);
struct genbind_node *genbind_node_link(struct genbind_node *tgt, struct genbind_node *src);
-int genbind_ast_dump(struct genbind_node *ast);
+int genbind_ast_dump(struct genbind_node *ast, int indent);
/** Depth first left hand search using user provided comparison
*
diff --git a/src/genjsbind.c b/src/genjsbind.c
index 559602b..bcaf62f 100644
--- a/src/genjsbind.c
+++ b/src/genjsbind.c
@@ -94,7 +94,7 @@ int main(int argc, char **argv)
}
if (options->verbose) {
- genbind_ast_dump(genbind_root);
+ genbind_ast_dump(genbind_root, 0);
}
res = jsapi_libdom_output(options->outfilename, genbind_root);
commitdiff http://git.netsurf-browser.org/nsgenjsbind.git/commitdiff/46cfe5f47ce0034...
commit 46cfe5f47ce0034bb8804d0bd04d573bc6213ab8
Author: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
Commit: Vincent Sanders <vincent.sanders(a)collabora.co.uk>
extract and output binding parameters
diff --git a/src/genjsbind-ast.c b/src/genjsbind-ast.c
index 28208e0..94f306c 100644
--- a/src/genjsbind-ast.c
+++ b/src/genjsbind-ast.c
@@ -129,8 +129,7 @@ char *genbind_node_gettext(struct genbind_node *node)
case GENBIND_NODE_TYPE_WEBIDLFILE:
case GENBIND_NODE_TYPE_STRING:
case GENBIND_NODE_TYPE_PREAMBLE:
- case GENBIND_NODE_TYPE_BINDING_IDENT:
- case GENBIND_NODE_TYPE_TYPE_IDENT:
+ case GENBIND_NODE_TYPE_IDENT:
case GENBIND_NODE_TYPE_TYPE_NODE:
case GENBIND_NODE_TYPE_TYPE_INTERFACE:
return node->r.text;
@@ -157,6 +156,9 @@ struct genbind_node *genbind_node_getnode(struct genbind_node *node)
static const char *genbind_node_type_to_str(enum genbind_node_type type)
{
switch(type) {
+ case GENBIND_NODE_TYPE_IDENT:
+ return "Ident";
+
case GENBIND_NODE_TYPE_ROOT:
return "Root";
@@ -175,15 +177,9 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type)
case GENBIND_NODE_TYPE_BINDING:
return "Binding";
- case GENBIND_NODE_TYPE_BINDING_IDENT:
- return "Binding: Ident";
-
case GENBIND_NODE_TYPE_TYPE:
return "Type";
- case GENBIND_NODE_TYPE_TYPE_IDENT:
- return "Type: Ident";
-
case GENBIND_NODE_TYPE_TYPE_NODE:
return "Type: Node";
diff --git a/src/genjsbind-ast.h b/src/genjsbind-ast.h
index eaa42f9..66d66c2 100644
--- a/src/genjsbind-ast.h
+++ b/src/genjsbind-ast.h
@@ -11,14 +11,13 @@
enum genbind_node_type {
GENBIND_NODE_TYPE_ROOT = 0,
+ GENBIND_NODE_TYPE_IDENT,
GENBIND_NODE_TYPE_WEBIDLFILE,
GENBIND_NODE_TYPE_HDRCOMMENT,
GENBIND_NODE_TYPE_STRING,
GENBIND_NODE_TYPE_PREAMBLE,
GENBIND_NODE_TYPE_BINDING,
- GENBIND_NODE_TYPE_BINDING_IDENT,
GENBIND_NODE_TYPE_TYPE,
- GENBIND_NODE_TYPE_TYPE_IDENT,
GENBIND_NODE_TYPE_TYPE_NODE,
GENBIND_NODE_TYPE_TYPE_EXTRA,
GENBIND_NODE_TYPE_TYPE_INTERFACE,
diff --git a/src/genjsbind-parser.y b/src/genjsbind-parser.y
index 98ae18a..de2bd10 100644
--- a/src/genjsbind-parser.y
+++ b/src/genjsbind-parser.y
@@ -162,7 +162,7 @@ Binding
{
$$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING,
NULL,
- genbind_new_node(GENBIND_NODE_TYPE_BINDING_IDENT, $4, $2));
+ genbind_new_node(GENBIND_NODE_TYPE_IDENT, $4, $2));
}
;
@@ -191,7 +191,7 @@ Type
{
$$ = genbind_new_node(GENBIND_NODE_TYPE_TYPE,
NULL,
- genbind_new_node(GENBIND_NODE_TYPE_TYPE_IDENT, $4, $2));
+ genbind_new_node(GENBIND_NODE_TYPE_IDENT, $4, $2));
}
;
diff --git a/src/jsapi-libdom.c b/src/jsapi-libdom.c
index 505f115..4dc2db8 100644
--- a/src/jsapi-libdom.c
+++ b/src/jsapi-libdom.c
@@ -6,10 +6,11 @@
* Copyright 2012 Vincent Sanders <vince(a)netsurf-browser.org>
*/
+#include <stdbool.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
-#include <stdbool.h>
+#include <stdlib.h>
#include "options.h"
#include "genjsbind-ast.h"
@@ -19,6 +20,11 @@
#define HDR_COMMENT_SEP "\n * "
#define HDR_COMMENT_PREABLE "Generated by nsgenjsapi"
+struct binding {
+ const char *name; /* name of the binding */
+ const char *interface; /* webidl interface binding is for */
+};
+
static int webidl_preamble_cb(struct genbind_node *node, void *ctx)
{
FILE *outfile = ctx;
@@ -91,29 +97,62 @@ read_webidl(struct genbind_node *genbind_ast, struct webidl_node **webidl_ast)
/* debug dump of web idl AST */
if (options->verbose) {
- webidl_ast_dump(webidl_ast, 0);
+ webidl_ast_dump(*webidl_ast, 0);
}
return res;
}
-struct binding {
- const char *name; /* name of the binding */
- const char *interface; /* webidl interface binding is for */
-};
+static int
+output_function_spec(FILE *outfile,
+ struct genbind_node *genbind_ast,
+ struct binding *binding)
+{
+ fprintf(outfile, "%s\n%s\n", binding->name, binding->interface);
+
+ return 0;
+}
static struct binding *binding_new(struct genbind_node *genbind_ast)
{
struct binding *nb;
- nb = calloc(1, sizeof(struct binding));
-
struct genbind_node *binding_node;
+ struct genbind_node *ident_node;
+ struct genbind_node *interface_node;
binding_node = genbind_node_find(genbind_ast,
- NULL,
- genbind_cmp_node_type,
- GENBIND_NODE_TYPE_BINDING);
+ NULL,
+ genbind_cmp_node_type,
+ (void *)GENBIND_NODE_TYPE_BINDING);
+
+ if (binding_node == NULL) {
+ return NULL;
+ }
+
+ ident_node = genbind_node_find(genbind_node_getnode(binding_node),
+ NULL,
+ genbind_cmp_node_type,
+ (void *)GENBIND_NODE_TYPE_IDENT);
+
+ if (ident_node == NULL) {
+ return NULL;
+ }
+
+ interface_node = genbind_node_find(genbind_node_getnode(binding_node),
+ NULL,
+ genbind_cmp_node_type,
+ (void *)GENBIND_NODE_TYPE_TYPE_INTERFACE);
+
+ if (interface_node == NULL) {
+ return NULL;
+ }
+
+ nb = calloc(1, sizeof(struct binding));
+
+ nb->name = genbind_node_gettext(ident_node);
+ nb->interface = genbind_node_gettext(interface_node);
+ return nb;
}
int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
@@ -151,7 +190,7 @@ int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
output_preamble(outfile, genbind_ast);
- //output_function_spec(outfile, genbind_ast);
+ output_function_spec(outfile, genbind_ast, binding);
//output_property_spec(outfile, genbind_ast);
-----------------------------------------------------------------------
Summary of changes:
src/genjsbind-ast.c | 30 +++++++++-----------
src/genjsbind-ast.h | 5 +--
src/genjsbind-parser.y | 4 +-
src/genjsbind.c | 2 +-
src/jsapi-libdom.c | 69 ++++++++++++++++++++++++++++++++++++++++-------
5 files changed, 77 insertions(+), 33 deletions(-)
diff --git a/src/genjsbind-ast.c b/src/genjsbind-ast.c
index 28208e0..32d5553 100644
--- a/src/genjsbind-ast.c
+++ b/src/genjsbind-ast.c
@@ -129,8 +129,7 @@ char *genbind_node_gettext(struct genbind_node *node)
case GENBIND_NODE_TYPE_WEBIDLFILE:
case GENBIND_NODE_TYPE_STRING:
case GENBIND_NODE_TYPE_PREAMBLE:
- case GENBIND_NODE_TYPE_BINDING_IDENT:
- case GENBIND_NODE_TYPE_TYPE_IDENT:
+ case GENBIND_NODE_TYPE_IDENT:
case GENBIND_NODE_TYPE_TYPE_NODE:
case GENBIND_NODE_TYPE_TYPE_INTERFACE:
return node->r.text;
@@ -157,6 +156,9 @@ struct genbind_node *genbind_node_getnode(struct genbind_node *node)
static const char *genbind_node_type_to_str(enum genbind_node_type type)
{
switch(type) {
+ case GENBIND_NODE_TYPE_IDENT:
+ return "Ident";
+
case GENBIND_NODE_TYPE_ROOT:
return "Root";
@@ -175,41 +177,37 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type)
case GENBIND_NODE_TYPE_BINDING:
return "Binding";
- case GENBIND_NODE_TYPE_BINDING_IDENT:
- return "Binding: Ident";
-
case GENBIND_NODE_TYPE_TYPE:
return "Type";
- case GENBIND_NODE_TYPE_TYPE_IDENT:
- return "Type: Ident";
-
case GENBIND_NODE_TYPE_TYPE_NODE:
- return "Type: Node";
+ return "Node";
case GENBIND_NODE_TYPE_TYPE_EXTRA:
- return "Type: Extra";
+ return "Extra";
case GENBIND_NODE_TYPE_TYPE_INTERFACE:
- return "Type: Interface";
+ return "Interface";
default:
return "Unknown";
}
}
-int genbind_ast_dump(struct genbind_node *node)
+int genbind_ast_dump(struct genbind_node *node, int indent)
{
+ const char *SPACES=" ";
char *txt;
- while (node != NULL) {
- printf("%s\n", genbind_node_type_to_str(node->type));
+ while (node != NULL) {
+ printf("%.*s%s", indent, SPACES, genbind_node_type_to_str(node->type));
txt = genbind_node_gettext(node);
if (txt == NULL) {
- genbind_ast_dump(genbind_node_getnode(node));
+ printf("\n");
+ genbind_ast_dump(genbind_node_getnode(node), indent + 2);
} else {
- printf(" %s\n", txt);
+ printf(": \"%.*s\"\n", 75 - indent, txt);
}
node = node->l;
}
diff --git a/src/genjsbind-ast.h b/src/genjsbind-ast.h
index eaa42f9..9d25aad 100644
--- a/src/genjsbind-ast.h
+++ b/src/genjsbind-ast.h
@@ -11,14 +11,13 @@
enum genbind_node_type {
GENBIND_NODE_TYPE_ROOT = 0,
+ GENBIND_NODE_TYPE_IDENT,
GENBIND_NODE_TYPE_WEBIDLFILE,
GENBIND_NODE_TYPE_HDRCOMMENT,
GENBIND_NODE_TYPE_STRING,
GENBIND_NODE_TYPE_PREAMBLE,
GENBIND_NODE_TYPE_BINDING,
- GENBIND_NODE_TYPE_BINDING_IDENT,
GENBIND_NODE_TYPE_TYPE,
- GENBIND_NODE_TYPE_TYPE_IDENT,
GENBIND_NODE_TYPE_TYPE_NODE,
GENBIND_NODE_TYPE_TYPE_EXTRA,
GENBIND_NODE_TYPE_TYPE_INTERFACE,
@@ -39,7 +38,7 @@ char *genbind_strapp(char *a, char *b);
struct genbind_node *genbind_new_node(enum genbind_node_type type, struct genbind_node *l, void *r);
struct genbind_node *genbind_node_link(struct genbind_node *tgt, struct genbind_node *src);
-int genbind_ast_dump(struct genbind_node *ast);
+int genbind_ast_dump(struct genbind_node *ast, int indent);
/** Depth first left hand search using user provided comparison
*
diff --git a/src/genjsbind-parser.y b/src/genjsbind-parser.y
index 98ae18a..de2bd10 100644
--- a/src/genjsbind-parser.y
+++ b/src/genjsbind-parser.y
@@ -162,7 +162,7 @@ Binding
{
$$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING,
NULL,
- genbind_new_node(GENBIND_NODE_TYPE_BINDING_IDENT, $4, $2));
+ genbind_new_node(GENBIND_NODE_TYPE_IDENT, $4, $2));
}
;
@@ -191,7 +191,7 @@ Type
{
$$ = genbind_new_node(GENBIND_NODE_TYPE_TYPE,
NULL,
- genbind_new_node(GENBIND_NODE_TYPE_TYPE_IDENT, $4, $2));
+ genbind_new_node(GENBIND_NODE_TYPE_IDENT, $4, $2));
}
;
diff --git a/src/genjsbind.c b/src/genjsbind.c
index 559602b..bcaf62f 100644
--- a/src/genjsbind.c
+++ b/src/genjsbind.c
@@ -94,7 +94,7 @@ int main(int argc, char **argv)
}
if (options->verbose) {
- genbind_ast_dump(genbind_root);
+ genbind_ast_dump(genbind_root, 0);
}
res = jsapi_libdom_output(options->outfilename, genbind_root);
diff --git a/src/jsapi-libdom.c b/src/jsapi-libdom.c
index 505f115..1f5b6d4 100644
--- a/src/jsapi-libdom.c
+++ b/src/jsapi-libdom.c
@@ -6,10 +6,11 @@
* Copyright 2012 Vincent Sanders <vince(a)netsurf-browser.org>
*/
+#include <stdbool.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
-#include <stdbool.h>
+#include <stdlib.h>
#include "options.h"
#include "genjsbind-ast.h"
@@ -19,6 +20,11 @@
#define HDR_COMMENT_SEP "\n * "
#define HDR_COMMENT_PREABLE "Generated by nsgenjsapi"
+struct binding {
+ const char *name; /* name of the binding */
+ const char *interface; /* webidl interface binding is for */
+};
+
static int webidl_preamble_cb(struct genbind_node *node, void *ctx)
{
FILE *outfile = ctx;
@@ -91,29 +97,70 @@ read_webidl(struct genbind_node *genbind_ast, struct webidl_node **webidl_ast)
/* debug dump of web idl AST */
if (options->verbose) {
- webidl_ast_dump(webidl_ast, 0);
+ webidl_ast_dump(*webidl_ast, 0);
}
return res;
}
-struct binding {
- const char *name; /* name of the binding */
- const char *interface; /* webidl interface binding is for */
+
+static int
+output_function_spec(FILE *outfile,
+ struct genbind_node *genbind_ast,
+ struct binding *binding)
+{
+/* find interface element with correct ident attached in webidl */
+/* for each function (WEBIDL_NODE_TYPE_OPERATION) emit a JSAPI_FS()*/
+/* static JSFunctionSpec jsfunctions_document[] = {
+ JSAPI_FS_DOCUMENT,
+ JSAPI_FS(write, 1, 0),
+ JSAPI_FS_END
};
+*/
+ fprintf(outfile, "%s\n%s\n", binding->name, binding->interface);
+ return 0;
+}
static struct binding *binding_new(struct genbind_node *genbind_ast)
{
struct binding *nb;
- nb = calloc(1, sizeof(struct binding));
-
struct genbind_node *binding_node;
+ struct genbind_node *ident_node;
+ struct genbind_node *interface_node;
binding_node = genbind_node_find(genbind_ast,
- NULL,
- genbind_cmp_node_type,
- GENBIND_NODE_TYPE_BINDING);
+ NULL,
+ genbind_cmp_node_type,
+ (void *)GENBIND_NODE_TYPE_BINDING);
+
+ if (binding_node == NULL) {
+ return NULL;
+ }
+
+ ident_node = genbind_node_find(genbind_node_getnode(binding_node),
+ NULL,
+ genbind_cmp_node_type,
+ (void *)GENBIND_NODE_TYPE_IDENT);
+
+ if (ident_node == NULL) {
+ return NULL;
+ }
+
+ interface_node = genbind_node_find(genbind_node_getnode(binding_node),
+ NULL,
+ genbind_cmp_node_type,
+ (void *)GENBIND_NODE_TYPE_TYPE_INTERFACE);
+
+ if (interface_node == NULL) {
+ return NULL;
+ }
+
+ nb = calloc(1, sizeof(struct binding));
+
+ nb->name = genbind_node_gettext(ident_node);
+ nb->interface = genbind_node_gettext(interface_node);
+ return nb;
}
int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
@@ -151,7 +198,7 @@ int jsapi_libdom_output(char *outfilename, struct genbind_node *genbind_ast)
output_preamble(outfile, genbind_ast);
- //output_function_spec(outfile, genbind_ast);
+ output_function_spec(outfile, genbind_ast, binding);
//output_property_spec(outfile, genbind_ast);
--
NetSurf Generator for JavaScript bindings
10 years, 6 months
netsurf: branch master updated. d5e1616a454ffd1a2e9f7b2abf479f0c1aee4425
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/d5e1616a454ffd1a2e9f7...
...commit http://git.netsurf-browser.org/netsurf.git/commit/d5e1616a454ffd1a2e9f7b2...
...tree http://git.netsurf-browser.org/netsurf.git/tree/d5e1616a454ffd1a2e9f7b2ab...
The branch, master has been updated
via d5e1616a454ffd1a2e9f7b2abf479f0c1aee4425 (commit)
from ee9ab42f75213ea5905f43985de989f863b2165b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commitdiff/d5e1616a454ffd1a2e9...
commit d5e1616a454ffd1a2e9f7b2abf479f0c1aee4425
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Fix select elements. Requires latest libdom.
diff --git a/render/html_forms.c b/render/html_forms.c
index 2165dc8..739947d 100644
--- a/render/html_forms.c
+++ b/render/html_forms.c
@@ -455,6 +455,56 @@ out:
}
static struct form_control *
+parse_select_element(struct form *forms, dom_html_select_element *select)
+{
+ struct form_control *control = NULL;
+ dom_html_form_element *form = NULL;
+ dom_string *ds_name = NULL;
+
+ char *name = NULL;
+
+ if (dom_html_select_element_get_form(select, &form) != DOM_NO_ERR)
+ goto out;
+
+ if (dom_html_select_element_get_name(select, &ds_name) != DOM_NO_ERR)
+ goto out;
+
+ if (ds_name != NULL)
+ name = strndup(dom_string_data(ds_name),
+ dom_string_byte_length(ds_name));
+
+ control = form_new_control(select, GADGET_SELECT);
+
+ if (control == NULL)
+ goto out;
+
+ if (name != NULL) {
+ /* Hand the name string over */
+ control->name = name;
+ name = NULL;
+ }
+
+ dom_html_select_element_get_multiple(select,
+ &(control->data.select.multiple));
+
+ if (form != NULL && control != NULL)
+ form_add_control(find_form(forms, form), control);
+
+out:
+ if (form != NULL)
+ dom_node_unref(form);
+ if (ds_name != NULL)
+ dom_string_unref(ds_name);
+
+ if (name != NULL)
+ free(name);
+
+
+ return control;
+}
+
+
+static struct form_control *
invent_fake_gadget(dom_node *node)
{
struct form_control *ctl = form_new_control(node, GADGET_HIDDEN);
@@ -505,6 +555,10 @@ struct form_control *html_forms_get_control_for_node(struct form *forms, dom_nod
corestring_lwc_textarea)) {
ctl = parse_textarea_element(forms,
(dom_html_text_area_element *) node);
+ } else if (dom_string_caseless_lwc_isequal(ds_name,
+ corestring_lwc_select)) {
+ ctl = parse_select_element(forms,
+ (dom_html_select_element *) node);
}
}
diff --git a/utils/corestrings.c b/utils/corestrings.c
index af87ce2..86f2c4c 100644
--- a/utils/corestrings.c
+++ b/utils/corestrings.c
@@ -85,6 +85,7 @@ lwc_string *corestring_lwc_rectangle;
lwc_string *corestring_lwc_refresh;
lwc_string *corestring_lwc_reset;
lwc_string *corestring_lwc_right;
+lwc_string *corestring_lwc_select;
lwc_string *corestring_lwc_src;
lwc_string *corestring_lwc_style;
lwc_string *corestring_lwc_submit;
@@ -224,6 +225,7 @@ void corestrings_fini(void)
CSS_LWC_STRING_UNREF(refresh);
CSS_LWC_STRING_UNREF(reset);
CSS_LWC_STRING_UNREF(right);
+ CSS_LWC_STRING_UNREF(select);
CSS_LWC_STRING_UNREF(src);
CSS_LWC_STRING_UNREF(style);
CSS_LWC_STRING_UNREF(submit);
@@ -382,6 +384,7 @@ nserror corestrings_init(void)
CSS_LWC_STRING_INTERN(refresh);
CSS_LWC_STRING_INTERN(reset);
CSS_LWC_STRING_INTERN(right);
+ CSS_LWC_STRING_INTERN(select);
CSS_LWC_STRING_INTERN(src);
CSS_LWC_STRING_INTERN(style);
CSS_LWC_STRING_INTERN(submit);
diff --git a/utils/corestrings.h b/utils/corestrings.h
index 1bcf8ae..a64f62f 100644
--- a/utils/corestrings.h
+++ b/utils/corestrings.h
@@ -89,6 +89,7 @@ extern lwc_string *corestring_lwc_rectangle;
extern lwc_string *corestring_lwc_refresh;
extern lwc_string *corestring_lwc_reset;
extern lwc_string *corestring_lwc_right;
+extern lwc_string *corestring_lwc_select;
extern lwc_string *corestring_lwc_src;
extern lwc_string *corestring_lwc_style;
extern lwc_string *corestring_lwc_submit;
-----------------------------------------------------------------------
Summary of changes:
render/html_forms.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++
utils/corestrings.c | 3 ++
utils/corestrings.h | 1 +
3 files changed, 58 insertions(+), 0 deletions(-)
diff --git a/render/html_forms.c b/render/html_forms.c
index 2165dc8..739947d 100644
--- a/render/html_forms.c
+++ b/render/html_forms.c
@@ -455,6 +455,56 @@ out:
}
static struct form_control *
+parse_select_element(struct form *forms, dom_html_select_element *select)
+{
+ struct form_control *control = NULL;
+ dom_html_form_element *form = NULL;
+ dom_string *ds_name = NULL;
+
+ char *name = NULL;
+
+ if (dom_html_select_element_get_form(select, &form) != DOM_NO_ERR)
+ goto out;
+
+ if (dom_html_select_element_get_name(select, &ds_name) != DOM_NO_ERR)
+ goto out;
+
+ if (ds_name != NULL)
+ name = strndup(dom_string_data(ds_name),
+ dom_string_byte_length(ds_name));
+
+ control = form_new_control(select, GADGET_SELECT);
+
+ if (control == NULL)
+ goto out;
+
+ if (name != NULL) {
+ /* Hand the name string over */
+ control->name = name;
+ name = NULL;
+ }
+
+ dom_html_select_element_get_multiple(select,
+ &(control->data.select.multiple));
+
+ if (form != NULL && control != NULL)
+ form_add_control(find_form(forms, form), control);
+
+out:
+ if (form != NULL)
+ dom_node_unref(form);
+ if (ds_name != NULL)
+ dom_string_unref(ds_name);
+
+ if (name != NULL)
+ free(name);
+
+
+ return control;
+}
+
+
+static struct form_control *
invent_fake_gadget(dom_node *node)
{
struct form_control *ctl = form_new_control(node, GADGET_HIDDEN);
@@ -505,6 +555,10 @@ struct form_control *html_forms_get_control_for_node(struct form *forms, dom_nod
corestring_lwc_textarea)) {
ctl = parse_textarea_element(forms,
(dom_html_text_area_element *) node);
+ } else if (dom_string_caseless_lwc_isequal(ds_name,
+ corestring_lwc_select)) {
+ ctl = parse_select_element(forms,
+ (dom_html_select_element *) node);
}
}
diff --git a/utils/corestrings.c b/utils/corestrings.c
index af87ce2..86f2c4c 100644
--- a/utils/corestrings.c
+++ b/utils/corestrings.c
@@ -85,6 +85,7 @@ lwc_string *corestring_lwc_rectangle;
lwc_string *corestring_lwc_refresh;
lwc_string *corestring_lwc_reset;
lwc_string *corestring_lwc_right;
+lwc_string *corestring_lwc_select;
lwc_string *corestring_lwc_src;
lwc_string *corestring_lwc_style;
lwc_string *corestring_lwc_submit;
@@ -224,6 +225,7 @@ void corestrings_fini(void)
CSS_LWC_STRING_UNREF(refresh);
CSS_LWC_STRING_UNREF(reset);
CSS_LWC_STRING_UNREF(right);
+ CSS_LWC_STRING_UNREF(select);
CSS_LWC_STRING_UNREF(src);
CSS_LWC_STRING_UNREF(style);
CSS_LWC_STRING_UNREF(submit);
@@ -382,6 +384,7 @@ nserror corestrings_init(void)
CSS_LWC_STRING_INTERN(refresh);
CSS_LWC_STRING_INTERN(reset);
CSS_LWC_STRING_INTERN(right);
+ CSS_LWC_STRING_INTERN(select);
CSS_LWC_STRING_INTERN(src);
CSS_LWC_STRING_INTERN(style);
CSS_LWC_STRING_INTERN(submit);
diff --git a/utils/corestrings.h b/utils/corestrings.h
index 1bcf8ae..a64f62f 100644
--- a/utils/corestrings.h
+++ b/utils/corestrings.h
@@ -89,6 +89,7 @@ extern lwc_string *corestring_lwc_rectangle;
extern lwc_string *corestring_lwc_refresh;
extern lwc_string *corestring_lwc_reset;
extern lwc_string *corestring_lwc_right;
+extern lwc_string *corestring_lwc_select;
extern lwc_string *corestring_lwc_src;
extern lwc_string *corestring_lwc_style;
extern lwc_string *corestring_lwc_submit;
--
NetSurf Browser
10 years, 6 months
libdom: branch master updated. 35068046a8bb4d6d2d6e0dcd08957fe954bbbdd4
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/35068046a8bb4d6d2d6e0d...
...commit http://git.netsurf-browser.org/libdom.git/commit/35068046a8bb4d6d2d6e0dcd...
...tree http://git.netsurf-browser.org/libdom.git/tree/35068046a8bb4d6d2d6e0dcd08...
The branch, master has been updated
via 35068046a8bb4d6d2d6e0dcd08957fe954bbbdd4 (commit)
from 47e3fe106a9cd7ae72272955194a0ea9ae528820 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commitdiff/35068046a8bb4d6d2d6e...
commit 35068046a8bb4d6d2d6e0dcd08957fe954bbbdd4
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Test index is generated.
diff --git a/.gitignore b/.gitignore
index 9d29615..a12a172 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,5 @@ build-*
build/docs
examples/dom-structure-dump
test/level*.c
+test/INDEX
*~
diff --git a/test/INDEX b/test/INDEX
deleted file mode 100644
index b3b14bc..0000000
--- a/test/INDEX
+++ /dev/null
@@ -1,628 +0,0 @@
-#test desc dir
-level1_core_attrcreatedocumentfragment level1_core_attrcreatedocumentfragment
-level1_core_attrcreatetextnode level1_core_attrcreatetextnode
-level1_core_attrcreatetextnode2 level1_core_attrcreatetextnode2
-level1_core_attrdefaultvalue level1_core_attrdefaultvalue
-level1_core_attreffectivevalue level1_core_attreffectivevalue
-level1_core_attrname level1_core_attrname
-level1_core_attrnextsiblingnull level1_core_attrnextsiblingnull
-level1_core_attrparentnodenull level1_core_attrparentnodenull
-level1_core_attrprevioussiblingnull level1_core_attrprevioussiblingnull
-level1_core_attrspecifiedvalue level1_core_attrspecifiedvalue
-level1_core_attrspecifiedvaluechanged level1_core_attrspecifiedvaluechanged
-level1_core_cdatasectiongetdata level1_core_cdatasectiongetdata
-level1_core_characterdataappenddata level1_core_characterdataappenddata
-level1_core_characterdataappenddatagetdata level1_core_characterdataappenddatagetdata
-level1_core_characterdatadeletedatabegining level1_core_characterdatadeletedatabegining
-level1_core_characterdatadeletedataend level1_core_characterdatadeletedataend
-level1_core_characterdatadeletedataexceedslength level1_core_characterdatadeletedataexceedslength
-level1_core_characterdatadeletedatagetlengthanddata level1_core_characterdatadeletedatagetlengthanddata
-level1_core_characterdatadeletedatamiddle level1_core_characterdatadeletedatamiddle
-level1_core_characterdatagetdata level1_core_characterdatagetdata
-level1_core_characterdatagetlength level1_core_characterdatagetlength
-level1_core_characterdataindexsizeerrdeletedatacountnegative level1_core_characterdataindexsizeerrdeletedatacountnegative
-level1_core_characterdataindexsizeerrdeletedataoffsetgreater level1_core_characterdataindexsizeerrdeletedataoffsetgreater
-level1_core_characterdataindexsizeerrdeletedataoffsetnegative level1_core_characterdataindexsizeerrdeletedataoffsetnegative
-level1_core_characterdataindexsizeerrinsertdataoffsetgreater level1_core_characterdataindexsizeerrinsertdataoffsetgreater
-level1_core_characterdataindexsizeerrinsertdataoffsetnegative level1_core_characterdataindexsizeerrinsertdataoffsetnegative
-level1_core_characterdataindexsizeerrreplacedatacountnegative level1_core_characterdataindexsizeerrreplacedatacountnegative
-level1_core_characterdataindexsizeerrreplacedataoffsetgreater level1_core_characterdataindexsizeerrreplacedataoffsetgreater
-level1_core_characterdataindexsizeerrreplacedataoffsetnegative level1_core_characterdataindexsizeerrreplacedataoffsetnegative
-level1_core_characterdataindexsizeerrsubstringcountnegative level1_core_characterdataindexsizeerrsubstringcountnegative
-level1_core_characterdataindexsizeerrsubstringnegativeoffset level1_core_characterdataindexsizeerrsubstringnegativeoffset
-level1_core_characterdataindexsizeerrsubstringoffsetgreater level1_core_characterdataindexsizeerrsubstringoffsetgreater
-level1_core_characterdatainsertdatabeginning level1_core_characterdatainsertdatabeginning
-level1_core_characterdatainsertdataend level1_core_characterdatainsertdataend
-level1_core_characterdatainsertdatamiddle level1_core_characterdatainsertdatamiddle
-level1_core_characterdatareplacedatabegining level1_core_characterdatareplacedatabegining
-level1_core_characterdatareplacedataexceedslengthofarg level1_core_characterdatareplacedataexceedslengthofarg
-level1_core_characterdatasetnodevalue level1_core_characterdatasetnodevalue
-level1_core_characterdatasubstringexceedsvalue level1_core_characterdatasubstringexceedsvalue
-level1_core_characterdatasubstringvalue level1_core_characterdatasubstringvalue
-level1_core_commentgetcomment level1_core_commentgetcomment
-level1_core_documentcreateattribute level1_core_documentcreateattribute
-level1_core_documentcreatecdatasection level1_core_documentcreatecdatasection
-level1_core_documentcreatecomment level1_core_documentcreatecomment
-level1_core_documentcreateelement level1_core_documentcreateelement
-level1_core_documentcreateelementcasesensitive level1_core_documentcreateelementcasesensitive
-level1_core_documentcreateentityreference level1_core_documentcreateentityreference
-level1_core_documentcreateprocessinginstruction level1_core_documentcreateprocessinginstruction
-level1_core_documentcreatetextnode level1_core_documentcreatetextnode
-level1_core_documentgetdoctype level1_core_documentgetdoctype
-level1_core_documentgetdoctypenodtd level1_core_documentgetdoctypenodtd
-level1_core_documentgetelementsbytagnamelength level1_core_documentgetelementsbytagnamelength
-level1_core_documentgetelementsbytagnametotallength level1_core_documentgetelementsbytagnametotallength
-level1_core_documentgetelementsbytagnamevalue level1_core_documentgetelementsbytagnamevalue
-level1_core_documentgetrootnode level1_core_documentgetrootnode
-level1_core_documentinvalidcharacterexceptioncreateattribute level1_core_documentinvalidcharacterexceptioncreateattribute
-level1_core_documentinvalidcharacterexceptioncreateelement level1_core_documentinvalidcharacterexceptioncreateelement
-level1_core_documentinvalidcharacterexceptioncreateentref level1_core_documentinvalidcharacterexceptioncreateentref
-level1_core_documentinvalidcharacterexceptioncreateentref1 level1_core_documentinvalidcharacterexceptioncreateentref1
-level1_core_documentinvalidcharacterexceptioncreatepi level1_core_documentinvalidcharacterexceptioncreatepi
-level1_core_documentinvalidcharacterexceptioncreatepi1 level1_core_documentinvalidcharacterexceptioncreatepi1
-level1_core_documenttypegetdoctype level1_core_documenttypegetdoctype
-level1_core_elementaddnewattribute level1_core_elementaddnewattribute
-level1_core_elementassociatedattribute level1_core_elementassociatedattribute
-level1_core_elementchangeattributevalue level1_core_elementchangeattributevalue
-level1_core_elementcreatenewattribute level1_core_elementcreatenewattribute
-level1_core_elementgetattributenode level1_core_elementgetattributenode
-level1_core_elementgetattributenodenull level1_core_elementgetattributenodenull
-level1_core_elementgetelementempty level1_core_elementgetelementempty
-level1_core_elementgetelementsbytagname level1_core_elementgetelementsbytagname
-level1_core_elementgetelementsbytagnameaccessnodelist level1_core_elementgetelementsbytagnameaccessnodelist
-level1_core_elementgetelementsbytagnamenomatch level1_core_elementgetelementsbytagnamenomatch
-level1_core_elementgetelementsbytagnamespecialvalue level1_core_elementgetelementsbytagnamespecialvalue
-level1_core_elementgettagname level1_core_elementgettagname
-level1_core_elementinuseattributeerr level1_core_elementinuseattributeerr
-level1_core_elementinvalidcharacterexception level1_core_elementinvalidcharacterexception
-level1_core_elementnotfounderr level1_core_elementnotfounderr
-level1_core_elementremoveattributeaftercreate level1_core_elementremoveattributeaftercreate
-level1_core_elementremoveattributenode level1_core_elementremoveattributenode
-level1_core_elementreplaceattributewithself level1_core_elementreplaceattributewithself
-level1_core_elementreplaceexistingattribute level1_core_elementreplaceexistingattribute
-level1_core_elementreplaceexistingattributegevalue level1_core_elementreplaceexistingattributegevalue
-level1_core_elementretrieveallattributes level1_core_elementretrieveallattributes
-level1_core_elementretrieveattrvalue level1_core_elementretrieveattrvalue
-level1_core_elementretrievetagname level1_core_elementretrievetagname
-level1_core_elementsetattributenodenull level1_core_elementsetattributenodenull
-level1_core_elementwrongdocumenterr level1_core_elementwrongdocumenterr
-level1_core_hc_attrappendchild1 level1_core_hc_attrappendchild1
-level1_core_hc_attrappendchild2 level1_core_hc_attrappendchild2
-level1_core_hc_attrappendchild3 level1_core_hc_attrappendchild3
-level1_core_hc_attrappendchild4 level1_core_hc_attrappendchild4
-level1_core_hc_attrappendchild5 level1_core_hc_attrappendchild5
-level1_core_hc_attrappendchild6 level1_core_hc_attrappendchild6
-level1_core_hc_attrchildnodes1 level1_core_hc_attrchildnodes1
-level1_core_hc_attrchildnodes2 level1_core_hc_attrchildnodes2
-level1_core_hc_attrclonenode1 level1_core_hc_attrclonenode1
-level1_core_hc_attrcreatedocumentfragment level1_core_hc_attrcreatedocumentfragment
-level1_core_hc_attrcreatetextnode level1_core_hc_attrcreatetextnode
-level1_core_hc_attrcreatetextnode2 level1_core_hc_attrcreatetextnode2
-level1_core_hc_attreffectivevalue level1_core_hc_attreffectivevalue
-level1_core_hc_attrfirstchild level1_core_hc_attrfirstchild
-level1_core_hc_attrgetvalue1 level1_core_hc_attrgetvalue1
-level1_core_hc_attrhaschildnodes level1_core_hc_attrhaschildnodes
-level1_core_hc_attrinsertbefore1 level1_core_hc_attrinsertbefore1
-level1_core_hc_attrinsertbefore2 level1_core_hc_attrinsertbefore2
-level1_core_hc_attrinsertbefore3 level1_core_hc_attrinsertbefore3
-level1_core_hc_attrinsertbefore4 level1_core_hc_attrinsertbefore4
-level1_core_hc_attrinsertbefore5 level1_core_hc_attrinsertbefore5
-level1_core_hc_attrinsertbefore6 level1_core_hc_attrinsertbefore6
-level1_core_hc_attrinsertbefore7 level1_core_hc_attrinsertbefore7
-level1_core_hc_attrlastchild level1_core_hc_attrlastchild
-level1_core_hc_attrname level1_core_hc_attrname
-level1_core_hc_attrnextsiblingnull level1_core_hc_attrnextsiblingnull
-level1_core_hc_attrparentnodenull level1_core_hc_attrparentnodenull
-level1_core_hc_attrprevioussiblingnull level1_core_hc_attrprevioussiblingnull
-level1_core_hc_attrremovechild1 level1_core_hc_attrremovechild1
-level1_core_hc_attrremovechild2 level1_core_hc_attrremovechild2
-level1_core_hc_attrreplacechild1 level1_core_hc_attrreplacechild1
-level1_core_hc_attrreplacechild2 level1_core_hc_attrreplacechild2
-level1_core_hc_attrsetvalue1 level1_core_hc_attrsetvalue1
-level1_core_hc_attrsetvalue2 level1_core_hc_attrsetvalue2
-level1_core_hc_attrspecifiedvalue level1_core_hc_attrspecifiedvalue
-level1_core_hc_attrspecifiedvaluechanged level1_core_hc_attrspecifiedvaluechanged
-level1_core_hc_characterdataappenddata level1_core_hc_characterdataappenddata
-level1_core_hc_characterdataappenddatagetdata level1_core_hc_characterdataappenddatagetdata
-level1_core_hc_characterdatagetdata level1_core_hc_characterdatagetdata
-level1_core_hc_characterdatagetlength level1_core_hc_characterdatagetlength
-level1_core_hc_characterdataindexsizeerrdeletedatacountnegative level1_core_hc_characterdataindexsizeerrdeletedatacountnegative
-level1_core_hc_characterdataindexsizeerrdeletedataoffsetgreater level1_core_hc_characterdataindexsizeerrdeletedataoffsetgreater
-level1_core_hc_characterdataindexsizeerrdeletedataoffsetnegative level1_core_hc_characterdataindexsizeerrdeletedataoffsetnegative
-level1_core_hc_characterdataindexsizeerrinsertdataoffsetgreater level1_core_hc_characterdataindexsizeerrinsertdataoffsetgreater
-level1_core_hc_characterdataindexsizeerrinsertdataoffsetnegative level1_core_hc_characterdataindexsizeerrinsertdataoffsetnegative
-level1_core_hc_characterdataindexsizeerrreplacedatacountnegative level1_core_hc_characterdataindexsizeerrreplacedatacountnegative
-level1_core_hc_characterdataindexsizeerrreplacedataoffsetgreater level1_core_hc_characterdataindexsizeerrreplacedataoffsetgreater
-level1_core_hc_characterdataindexsizeerrreplacedataoffsetnegative level1_core_hc_characterdataindexsizeerrreplacedataoffsetnegative
-level1_core_hc_characterdataindexsizeerrsubstringcountnegative level1_core_hc_characterdataindexsizeerrsubstringcountnegative
-level1_core_hc_characterdataindexsizeerrsubstringnegativeoffset level1_core_hc_characterdataindexsizeerrsubstringnegativeoffset
-level1_core_hc_characterdataindexsizeerrsubstringoffsetgreater level1_core_hc_characterdataindexsizeerrsubstringoffsetgreater
-level1_core_hc_characterdatainsertdatabeginning level1_core_hc_characterdatainsertdatabeginning
-level1_core_hc_characterdatainsertdataend level1_core_hc_characterdatainsertdataend
-level1_core_hc_characterdatainsertdatamiddle level1_core_hc_characterdatainsertdatamiddle
-level1_core_hc_characterdatareplacedatabegining level1_core_hc_characterdatareplacedatabegining
-level1_core_hc_characterdatareplacedataexceedslengthofarg level1_core_hc_characterdatareplacedataexceedslengthofarg
-level1_core_hc_characterdatasetnodevalue level1_core_hc_characterdatasetnodevalue
-level1_core_hc_characterdatasubstringexceedsvalue level1_core_hc_characterdatasubstringexceedsvalue
-level1_core_hc_characterdatasubstringvalue level1_core_hc_characterdatasubstringvalue
-level1_core_hc_commentgetcomment level1_core_hc_commentgetcomment
-level1_core_hc_documentcreateattribute level1_core_hc_documentcreateattribute
-level1_core_hc_documentcreatecomment level1_core_hc_documentcreatecomment
-level1_core_hc_documentcreateelement level1_core_hc_documentcreateelement
-level1_core_hc_documentcreateelementcasesensitive level1_core_hc_documentcreateelementcasesensitive
-level1_core_hc_documentcreatetextnode level1_core_hc_documentcreatetextnode
-level1_core_hc_documentgetdoctype level1_core_hc_documentgetdoctype
-level1_core_hc_documentgetelementsbytagnamelength level1_core_hc_documentgetelementsbytagnamelength
-level1_core_hc_documentgetelementsbytagnametotallength level1_core_hc_documentgetelementsbytagnametotallength
-level1_core_hc_documentgetelementsbytagnamevalue level1_core_hc_documentgetelementsbytagnamevalue
-level1_core_hc_documentgetrootnode level1_core_hc_documentgetrootnode
-level1_core_hc_documentinvalidcharacterexceptioncreateattribute level1_core_hc_documentinvalidcharacterexceptioncreateattribute
-level1_core_hc_documentinvalidcharacterexceptioncreateattribute1 level1_core_hc_documentinvalidcharacterexceptioncreateattribute1
-level1_core_hc_documentinvalidcharacterexceptioncreateelement level1_core_hc_documentinvalidcharacterexceptioncreateelement
-level1_core_hc_documentinvalidcharacterexceptioncreateelement1 level1_core_hc_documentinvalidcharacterexceptioncreateelement1
-level1_core_hc_elementaddnewattribute level1_core_hc_elementaddnewattribute
-level1_core_hc_elementassociatedattribute level1_core_hc_elementassociatedattribute
-level1_core_hc_elementchangeattributevalue level1_core_hc_elementchangeattributevalue
-level1_core_hc_elementcreatenewattribute level1_core_hc_elementcreatenewattribute
-level1_core_hc_elementgetattributenode level1_core_hc_elementgetattributenode
-level1_core_hc_elementgetattributenodenull level1_core_hc_elementgetattributenodenull
-level1_core_hc_elementgetelementempty level1_core_hc_elementgetelementempty
-level1_core_hc_elementgetelementsbytagname level1_core_hc_elementgetelementsbytagname
-level1_core_hc_elementgetelementsbytagnameaccessnodelist level1_core_hc_elementgetelementsbytagnameaccessnodelist
-level1_core_hc_elementgetelementsbytagnamenomatch level1_core_hc_elementgetelementsbytagnamenomatch
-level1_core_hc_elementgetelementsbytagnamespecialvalue level1_core_hc_elementgetelementsbytagnamespecialvalue
-level1_core_hc_elementgettagname level1_core_hc_elementgettagname
-level1_core_hc_elementinuseattributeerr level1_core_hc_elementinuseattributeerr
-level1_core_hc_elementinvalidcharacterexception level1_core_hc_elementinvalidcharacterexception
-level1_core_hc_elementinvalidcharacterexception1 level1_core_hc_elementinvalidcharacterexception1
-level1_core_hc_elementnotfounderr level1_core_hc_elementnotfounderr
-level1_core_hc_elementremoveattribute level1_core_hc_elementremoveattribute
-level1_core_hc_elementremoveattributeaftercreate level1_core_hc_elementremoveattributeaftercreate
-level1_core_hc_elementremoveattributenode level1_core_hc_elementremoveattributenode
-level1_core_hc_elementreplaceattributewithself level1_core_hc_elementreplaceattributewithself
-level1_core_hc_elementreplaceexistingattribute level1_core_hc_elementreplaceexistingattribute
-level1_core_hc_elementreplaceexistingattributegevalue level1_core_hc_elementreplaceexistingattributegevalue
-level1_core_hc_elementretrieveattrvalue level1_core_hc_elementretrieveattrvalue
-level1_core_hc_elementretrievetagname level1_core_hc_elementretrievetagname
-level1_core_hc_elementsetattributenodenull level1_core_hc_elementsetattributenodenull
-level1_core_hc_elementwrongdocumenterr level1_core_hc_elementwrongdocumenterr
-level1_core_hc_namednodemapgetnameditem level1_core_hc_namednodemapgetnameditem
-level1_core_hc_namednodemapnotfounderr level1_core_hc_namednodemapnotfounderr
-level1_core_hc_namednodemapremovenameditem level1_core_hc_namednodemapremovenameditem
-level1_core_hc_namednodemapreturnnull level1_core_hc_namednodemapreturnnull
-level1_core_hc_namednodemapsetnameditem level1_core_hc_namednodemapsetnameditem
-level1_core_hc_namednodemapsetnameditemreturnvalue level1_core_hc_namednodemapsetnameditemreturnvalue
-level1_core_hc_namednodemapsetnameditemthatexists level1_core_hc_namednodemapsetnameditemthatexists
-level1_core_hc_namednodemapsetnameditemwithnewvalue level1_core_hc_namednodemapsetnameditemwithnewvalue
-level1_core_hc_namednodemapwrongdocumenterr level1_core_hc_namednodemapwrongdocumenterr
-level1_core_hc_nodeappendchild level1_core_hc_nodeappendchild
-level1_core_hc_nodeappendchildchildexists level1_core_hc_nodeappendchildchildexists
-level1_core_hc_nodeappendchilddocfragment level1_core_hc_nodeappendchilddocfragment
-level1_core_hc_nodeappendchildgetnodename level1_core_hc_nodeappendchildgetnodename
-level1_core_hc_nodeappendchildinvalidnodetype level1_core_hc_nodeappendchildinvalidnodetype
-level1_core_hc_nodeappendchildnewchilddiffdocument level1_core_hc_nodeappendchildnewchilddiffdocument
-level1_core_hc_nodeappendchildnodeancestor level1_core_hc_nodeappendchildnodeancestor
-level1_core_hc_nodeattributenodeattribute level1_core_hc_nodeattributenodeattribute
-level1_core_hc_nodeattributenodename level1_core_hc_nodeattributenodename
-level1_core_hc_nodeattributenodetype level1_core_hc_nodeattributenodetype
-level1_core_hc_nodeattributenodevalue level1_core_hc_nodeattributenodevalue
-level1_core_hc_nodechildnodes level1_core_hc_nodechildnodes
-level1_core_hc_nodechildnodesappendchild level1_core_hc_nodechildnodesappendchild
-level1_core_hc_nodeclonefalsenocopytext level1_core_hc_nodeclonefalsenocopytext
-level1_core_hc_nodeclonegetparentnull level1_core_hc_nodeclonegetparentnull
-level1_core_hc_nodeclonetruecopytext level1_core_hc_nodeclonetruecopytext
-level1_core_hc_nodecommentnodeattributes level1_core_hc_nodecommentnodeattributes
-level1_core_hc_nodecommentnodename level1_core_hc_nodecommentnodename
-level1_core_hc_nodecommentnodetype level1_core_hc_nodecommentnodetype
-level1_core_hc_nodecommentnodevalue level1_core_hc_nodecommentnodevalue
-level1_core_hc_nodedocumentfragmentnodename level1_core_hc_nodedocumentfragmentnodename
-level1_core_hc_nodedocumentfragmentnodetype level1_core_hc_nodedocumentfragmentnodetype
-level1_core_hc_nodedocumentfragmentnodevalue level1_core_hc_nodedocumentfragmentnodevalue
-level1_core_hc_nodedocumentnodeattribute level1_core_hc_nodedocumentnodeattribute
-level1_core_hc_nodedocumentnodename level1_core_hc_nodedocumentnodename
-level1_core_hc_nodedocumentnodetype level1_core_hc_nodedocumentnodetype
-level1_core_hc_nodedocumentnodevalue level1_core_hc_nodedocumentnodevalue
-level1_core_hc_nodeelementnodename level1_core_hc_nodeelementnodename
-level1_core_hc_nodeelementnodetype level1_core_hc_nodeelementnodetype
-level1_core_hc_nodeelementnodevalue level1_core_hc_nodeelementnodevalue
-level1_core_hc_nodegetfirstchild level1_core_hc_nodegetfirstchild
-level1_core_hc_nodegetfirstchildnull level1_core_hc_nodegetfirstchildnull
-level1_core_hc_nodegetlastchild level1_core_hc_nodegetlastchild
-level1_core_hc_nodegetlastchildnull level1_core_hc_nodegetlastchildnull
-level1_core_hc_nodegetnextsibling level1_core_hc_nodegetnextsibling
-level1_core_hc_nodegetnextsiblingnull level1_core_hc_nodegetnextsiblingnull
-level1_core_hc_nodegetownerdocument level1_core_hc_nodegetownerdocument
-level1_core_hc_nodegetownerdocumentnull level1_core_hc_nodegetownerdocumentnull
-level1_core_hc_nodegetprevioussibling level1_core_hc_nodegetprevioussibling
-level1_core_hc_nodegetprevioussiblingnull level1_core_hc_nodegetprevioussiblingnull
-level1_core_hc_nodehaschildnodes level1_core_hc_nodehaschildnodes
-level1_core_hc_nodehaschildnodesfalse level1_core_hc_nodehaschildnodesfalse
-level1_core_hc_nodeinsertbefore level1_core_hc_nodeinsertbefore
-level1_core_hc_nodeinsertbeforedocfragment level1_core_hc_nodeinsertbeforedocfragment
-level1_core_hc_nodeinsertbeforeinvalidnodetype level1_core_hc_nodeinsertbeforeinvalidnodetype
-level1_core_hc_nodeinsertbeforenewchilddiffdocument level1_core_hc_nodeinsertbeforenewchilddiffdocument
-level1_core_hc_nodeinsertbeforenewchildexists level1_core_hc_nodeinsertbeforenewchildexists
-level1_core_hc_nodeinsertbeforenodeancestor level1_core_hc_nodeinsertbeforenodeancestor
-level1_core_hc_nodeinsertbeforenodename level1_core_hc_nodeinsertbeforenodename
-level1_core_hc_nodeinsertbeforerefchildnonexistent level1_core_hc_nodeinsertbeforerefchildnonexistent
-level1_core_hc_nodeinsertbeforerefchildnull level1_core_hc_nodeinsertbeforerefchildnull
-level1_core_hc_nodelistindexnotzero level1_core_hc_nodelistindexnotzero
-level1_core_hc_nodelistreturnfirstitem level1_core_hc_nodelistreturnfirstitem
-level1_core_hc_nodelisttraverselist level1_core_hc_nodelisttraverselist
-level1_core_hc_nodeparentnode level1_core_hc_nodeparentnode
-level1_core_hc_nodeparentnodenull level1_core_hc_nodeparentnodenull
-level1_core_hc_noderemovechild level1_core_hc_noderemovechild
-level1_core_hc_noderemovechildgetnodename level1_core_hc_noderemovechildgetnodename
-level1_core_hc_noderemovechildnode level1_core_hc_noderemovechildnode
-level1_core_hc_noderemovechildoldchildnonexistent level1_core_hc_noderemovechildoldchildnonexistent
-level1_core_hc_nodereplacechild level1_core_hc_nodereplacechild
-level1_core_hc_nodereplacechildinvalidnodetype level1_core_hc_nodereplacechildinvalidnodetype
-level1_core_hc_nodereplacechildnewchilddiffdocument level1_core_hc_nodereplacechildnewchilddiffdocument
-level1_core_hc_nodereplacechildnewchildexists level1_core_hc_nodereplacechildnewchildexists
-level1_core_hc_nodereplacechildnodeancestor level1_core_hc_nodereplacechildnodeancestor
-level1_core_hc_nodereplacechildnodename level1_core_hc_nodereplacechildnodename
-level1_core_hc_nodereplacechildoldchildnonexistent level1_core_hc_nodereplacechildoldchildnonexistent
-level1_core_hc_nodetextnodeattribute level1_core_hc_nodetextnodeattribute
-level1_core_hc_nodetextnodename level1_core_hc_nodetextnodename
-level1_core_hc_nodetextnodetype level1_core_hc_nodetextnodetype
-level1_core_hc_nodetextnodevalue level1_core_hc_nodetextnodevalue
-level1_core_hc_nodevalue01 level1_core_hc_nodevalue01
-level1_core_hc_nodevalue02 level1_core_hc_nodevalue02
-level1_core_hc_nodevalue03 level1_core_hc_nodevalue03
-level1_core_hc_nodevalue04 level1_core_hc_nodevalue04
-level1_core_hc_nodevalue05 level1_core_hc_nodevalue05
-level1_core_hc_nodevalue06 level1_core_hc_nodevalue06
-level1_core_hc_textindexsizeerrnegativeoffset level1_core_hc_textindexsizeerrnegativeoffset
-level1_core_hc_textindexsizeerroffsetoutofbounds level1_core_hc_textindexsizeerroffsetoutofbounds
-level1_core_hc_textwithnomarkup level1_core_hc_textwithnomarkup
-level1_core_namednodemapgetnameditem level1_core_namednodemapgetnameditem
-level1_core_namednodemapnotfounderr level1_core_namednodemapnotfounderr
-level1_core_namednodemapremovenameditemreturnnodevalue level1_core_namednodemapremovenameditemreturnnodevalue
-level1_core_namednodemapreturnfirstitem level1_core_namednodemapreturnfirstitem
-level1_core_namednodemapreturnlastitem level1_core_namednodemapreturnlastitem
-level1_core_namednodemapreturnnull level1_core_namednodemapreturnnull
-level1_core_namednodemapsetnameditem level1_core_namednodemapsetnameditem
-level1_core_namednodemapsetnameditemreturnvalue level1_core_namednodemapsetnameditemreturnvalue
-level1_core_namednodemapsetnameditemthatexists level1_core_namednodemapsetnameditemthatexists
-level1_core_namednodemapsetnameditemwithnewvalue level1_core_namednodemapsetnameditemwithnewvalue
-level1_core_namednodemapwrongdocumenterr level1_core_namednodemapwrongdocumenterr
-level1_core_nodeappendchild level1_core_nodeappendchild
-level1_core_nodeappendchildchildexists level1_core_nodeappendchildchildexists
-level1_core_nodeappendchilddocfragment level1_core_nodeappendchilddocfragment
-level1_core_nodeappendchildgetnodename level1_core_nodeappendchildgetnodename
-level1_core_nodeappendchildinvalidnodetype level1_core_nodeappendchildinvalidnodetype
-level1_core_nodeappendchildnewchilddiffdocument level1_core_nodeappendchildnewchilddiffdocument
-level1_core_nodeappendchildnodeancestor level1_core_nodeappendchildnodeancestor
-level1_core_nodeappendchildnomodificationallowederrEE level1_core_nodeappendchildnomodificationallowederrEE
-level1_core_nodeattributenodeattribute level1_core_nodeattributenodeattribute
-level1_core_nodeattributenodename level1_core_nodeattributenodename
-level1_core_nodeattributenodetype level1_core_nodeattributenodetype
-level1_core_nodeattributenodevalue level1_core_nodeattributenodevalue
-level1_core_nodecdatasectionnodeattribute level1_core_nodecdatasectionnodeattribute
-level1_core_nodecdatasectionnodename level1_core_nodecdatasectionnodename
-level1_core_nodecdatasectionnodetype level1_core_nodecdatasectionnodetype
-level1_core_nodecdatasectionnodevalue level1_core_nodecdatasectionnodevalue
-level1_core_nodechildnodes level1_core_nodechildnodes
-level1_core_nodechildnodesempty level1_core_nodechildnodesempty
-level1_core_nodeclonefalsenocopytext level1_core_nodeclonefalsenocopytext
-level1_core_nodeclonegetparentnull level1_core_nodeclonegetparentnull
-level1_core_nodeclonetruecopytext level1_core_nodeclonetruecopytext
-level1_core_nodecommentnodeattributes level1_core_nodecommentnodeattributes
-level1_core_nodecommentnodename level1_core_nodecommentnodename
-level1_core_nodecommentnodetype level1_core_nodecommentnodetype
-level1_core_nodecommentnodevalue level1_core_nodecommentnodevalue
-level1_core_nodedocumentfragmentnodename level1_core_nodedocumentfragmentnodename
-level1_core_nodedocumentfragmentnodetype level1_core_nodedocumentfragmentnodetype
-level1_core_nodedocumentfragmentnodevalue level1_core_nodedocumentfragmentnodevalue
-level1_core_nodedocumentnodeattribute level1_core_nodedocumentnodeattribute
-level1_core_nodedocumentnodename level1_core_nodedocumentnodename
-level1_core_nodedocumentnodetype level1_core_nodedocumentnodetype
-level1_core_nodedocumentnodevalue level1_core_nodedocumentnodevalue
-level1_core_nodedocumenttypenodename level1_core_nodedocumenttypenodename
-level1_core_nodedocumenttypenodetype level1_core_nodedocumenttypenodetype
-level1_core_nodedocumenttypenodevalue level1_core_nodedocumenttypenodevalue
-level1_core_nodeelementnodeattributes level1_core_nodeelementnodeattributes
-level1_core_nodeelementnodename level1_core_nodeelementnodename
-level1_core_nodeelementnodetype level1_core_nodeelementnodetype
-level1_core_nodeelementnodevalue level1_core_nodeelementnodevalue
-level1_core_nodeentityreferencenodeattributes level1_core_nodeentityreferencenodeattributes
-level1_core_nodeentityreferencenodename level1_core_nodeentityreferencenodename
-level1_core_nodeentityreferencenodetype level1_core_nodeentityreferencenodetype
-level1_core_nodeentityreferencenodevalue level1_core_nodeentityreferencenodevalue
-level1_core_nodegetfirstchild level1_core_nodegetfirstchild
-level1_core_nodegetfirstchildnull level1_core_nodegetfirstchildnull
-level1_core_nodegetlastchild level1_core_nodegetlastchild
-level1_core_nodegetlastchildnull level1_core_nodegetlastchildnull
-level1_core_nodegetnextsibling level1_core_nodegetnextsibling
-level1_core_nodegetnextsiblingnull level1_core_nodegetnextsiblingnull
-level1_core_nodegetownerdocument level1_core_nodegetownerdocument
-level1_core_nodegetownerdocumentnull level1_core_nodegetownerdocumentnull
-level1_core_nodegetprevioussibling level1_core_nodegetprevioussibling
-level1_core_nodegetprevioussiblingnull level1_core_nodegetprevioussiblingnull
-level1_core_nodehaschildnodes level1_core_nodehaschildnodes
-level1_core_nodehaschildnodesfalse level1_core_nodehaschildnodesfalse
-level1_core_nodeinsertbeforedocfragment level1_core_nodeinsertbeforedocfragment
-level1_core_nodeinsertbeforeinvalidnodetype level1_core_nodeinsertbeforeinvalidnodetype
-level1_core_nodeinsertbeforenewchilddiffdocument level1_core_nodeinsertbeforenewchilddiffdocument
-level1_core_nodeinsertbeforenodeancestor level1_core_nodeinsertbeforenodeancestor
-level1_core_nodeinsertbeforenodename level1_core_nodeinsertbeforenodename
-level1_core_nodeinsertbeforenomodificationallowederrEE level1_core_nodeinsertbeforenomodificationallowederrEE
-level1_core_nodeinsertbeforerefchildnonexistent level1_core_nodeinsertbeforerefchildnonexistent
-level1_core_nodeinsertbeforerefchildnull level1_core_nodeinsertbeforerefchildnull
-level1_core_nodelistindexequalzero level1_core_nodelistindexequalzero
-level1_core_nodelistindexgetlengthofemptylist level1_core_nodelistindexgetlengthofemptylist
-level1_core_nodeparentnode level1_core_nodeparentnode
-level1_core_nodeparentnodenull level1_core_nodeparentnodenull
-level1_core_nodeprocessinginstructionnodeattributes level1_core_nodeprocessinginstructionnodeattributes
-level1_core_noderemovechild level1_core_noderemovechild
-level1_core_noderemovechildoldchildnonexistent level1_core_noderemovechildoldchildnonexistent
-level1_core_nodereplacechild level1_core_nodereplacechild
-level1_core_nodereplacechildinvalidnodetype level1_core_nodereplacechildinvalidnodetype
-level1_core_nodereplacechildnewchilddiffdocument level1_core_nodereplacechildnewchilddiffdocument
-level1_core_nodereplacechildnodeancestor level1_core_nodereplacechildnodeancestor
-level1_core_nodereplacechildnomodificationallowederr level1_core_nodereplacechildnomodificationallowederr
-level1_core_nodereplacechildnomodificationallowederrEE level1_core_nodereplacechildnomodificationallowederrEE
-level1_core_nodereplacechildoldchildnonexistent level1_core_nodereplacechildoldchildnonexistent
-level1_core_nodetextnodeattribute level1_core_nodetextnodeattribute
-level1_core_nodetextnodename level1_core_nodetextnodename
-level1_core_nodetextnodetype level1_core_nodetextnodetype
-level1_core_nodetextnodevalue level1_core_nodetextnodevalue
-level1_core_nodevalue01 level1_core_nodevalue01
-level1_core_nodevalue02 level1_core_nodevalue02
-level1_core_nodevalue03 level1_core_nodevalue03
-level1_core_nodevalue04 level1_core_nodevalue04
-level1_core_nodevalue05 level1_core_nodevalue05
-level1_core_nodevalue06 level1_core_nodevalue06
-level1_core_nodevalue09 level1_core_nodevalue09
-level1_core_textindexsizeerrnegativeoffset level1_core_textindexsizeerrnegativeoffset
-level1_core_textindexsizeerroffsetoutofbounds level1_core_textindexsizeerroffsetoutofbounds
-level1_core_textwithnomarkup level1_core_textwithnomarkup
-level1_html_HTMLBodyElement01 level1_html_HTMLBodyElement01
-level1_html_HTMLBodyElement02 level1_html_HTMLBodyElement02
-level1_html_HTMLBodyElement03 level1_html_HTMLBodyElement03
-level1_html_HTMLBodyElement04 level1_html_HTMLBodyElement04
-level1_html_HTMLBodyElement05 level1_html_HTMLBodyElement05
-level1_html_HTMLBodyElement06 level1_html_HTMLBodyElement06
-level1_html_HTMLButtonElement01 level1_html_HTMLButtonElement01
-level1_html_HTMLButtonElement02 level1_html_HTMLButtonElement02
-level1_html_HTMLButtonElement03 level1_html_HTMLButtonElement03
-level1_html_HTMLButtonElement04 level1_html_HTMLButtonElement04
-level1_html_HTMLButtonElement05 level1_html_HTMLButtonElement05
-level1_html_HTMLButtonElement06 level1_html_HTMLButtonElement06
-level1_html_HTMLButtonElement07 level1_html_HTMLButtonElement07
-level1_html_HTMLButtonElement08 level1_html_HTMLButtonElement08
-level1_html_HTMLCollection12 level1_html_HTMLCollection12
-level1_html_HTMLDocument01 level1_html_HTMLDocument01
-level1_html_HTMLDocument02 level1_html_HTMLDocument02
-level1_html_HTMLDocument03 level1_html_HTMLDocument03
-level1_html_HTMLElement01 level1_html_HTMLElement01
-level1_html_HTMLElement02 level1_html_HTMLElement02
-level1_html_HTMLElement03 level1_html_HTMLElement03
-level1_html_HTMLElement04 level1_html_HTMLElement04
-level1_html_HTMLElement05 level1_html_HTMLElement05
-level1_html_HTMLElement06 level1_html_HTMLElement06
-level1_html_HTMLElement07 level1_html_HTMLElement07
-level1_html_HTMLElement08 level1_html_HTMLElement08
-level1_html_HTMLElement09 level1_html_HTMLElement09
-level1_html_HTMLElement10 level1_html_HTMLElement10
-level1_html_HTMLElement100 level1_html_HTMLElement100
-level1_html_HTMLElement101 level1_html_HTMLElement101
-level1_html_HTMLElement102 level1_html_HTMLElement102
-level1_html_HTMLElement103 level1_html_HTMLElement103
-level1_html_HTMLElement104 level1_html_HTMLElement104
-level1_html_HTMLElement105 level1_html_HTMLElement105
-level1_html_HTMLElement106 level1_html_HTMLElement106
-level1_html_HTMLElement107 level1_html_HTMLElement107
-level1_html_HTMLElement108 level1_html_HTMLElement108
-level1_html_HTMLElement109 level1_html_HTMLElement109
-level1_html_HTMLElement11 level1_html_HTMLElement11
-level1_html_HTMLElement110 level1_html_HTMLElement110
-level1_html_HTMLElement111 level1_html_HTMLElement111
-level1_html_HTMLElement112 level1_html_HTMLElement112
-level1_html_HTMLElement113 level1_html_HTMLElement113
-level1_html_HTMLElement114 level1_html_HTMLElement114
-level1_html_HTMLElement115 level1_html_HTMLElement115
-level1_html_HTMLElement116 level1_html_HTMLElement116
-level1_html_HTMLElement117 level1_html_HTMLElement117
-level1_html_HTMLElement118 level1_html_HTMLElement118
-level1_html_HTMLElement119 level1_html_HTMLElement119
-level1_html_HTMLElement12 level1_html_HTMLElement12
-level1_html_HTMLElement120 level1_html_HTMLElement120
-level1_html_HTMLElement121 level1_html_HTMLElement121
-level1_html_HTMLElement122 level1_html_HTMLElement122
-level1_html_HTMLElement123 level1_html_HTMLElement123
-level1_html_HTMLElement124 level1_html_HTMLElement124
-level1_html_HTMLElement125 level1_html_HTMLElement125
-level1_html_HTMLElement126 level1_html_HTMLElement126
-level1_html_HTMLElement127 level1_html_HTMLElement127
-level1_html_HTMLElement128 level1_html_HTMLElement128
-level1_html_HTMLElement129 level1_html_HTMLElement129
-level1_html_HTMLElement13 level1_html_HTMLElement13
-level1_html_HTMLElement130 level1_html_HTMLElement130
-level1_html_HTMLElement131 level1_html_HTMLElement131
-level1_html_HTMLElement132 level1_html_HTMLElement132
-level1_html_HTMLElement133 level1_html_HTMLElement133
-level1_html_HTMLElement134 level1_html_HTMLElement134
-level1_html_HTMLElement135 level1_html_HTMLElement135
-level1_html_HTMLElement136 level1_html_HTMLElement136
-level1_html_HTMLElement137 level1_html_HTMLElement137
-level1_html_HTMLElement138 level1_html_HTMLElement138
-level1_html_HTMLElement139 level1_html_HTMLElement139
-level1_html_HTMLElement14 level1_html_HTMLElement14
-level1_html_HTMLElement140 level1_html_HTMLElement140
-level1_html_HTMLElement141 level1_html_HTMLElement141
-level1_html_HTMLElement142 level1_html_HTMLElement142
-level1_html_HTMLElement143 level1_html_HTMLElement143
-level1_html_HTMLElement144 level1_html_HTMLElement144
-level1_html_HTMLElement145 level1_html_HTMLElement145
-level1_html_HTMLElement15 level1_html_HTMLElement15
-level1_html_HTMLElement16 level1_html_HTMLElement16
-level1_html_HTMLElement17 level1_html_HTMLElement17
-level1_html_HTMLElement18 level1_html_HTMLElement18
-level1_html_HTMLElement19 level1_html_HTMLElement19
-level1_html_HTMLElement20 level1_html_HTMLElement20
-level1_html_HTMLElement21 level1_html_HTMLElement21
-level1_html_HTMLElement22 level1_html_HTMLElement22
-level1_html_HTMLElement23 level1_html_HTMLElement23
-level1_html_HTMLElement24 level1_html_HTMLElement24
-level1_html_HTMLElement25 level1_html_HTMLElement25
-level1_html_HTMLElement26 level1_html_HTMLElement26
-level1_html_HTMLElement27 level1_html_HTMLElement27
-level1_html_HTMLElement28 level1_html_HTMLElement28
-level1_html_HTMLElement29 level1_html_HTMLElement29
-level1_html_HTMLElement30 level1_html_HTMLElement30
-level1_html_HTMLElement31 level1_html_HTMLElement31
-level1_html_HTMLElement32 level1_html_HTMLElement32
-level1_html_HTMLElement33 level1_html_HTMLElement33
-level1_html_HTMLElement34 level1_html_HTMLElement34
-level1_html_HTMLElement35 level1_html_HTMLElement35
-level1_html_HTMLElement36 level1_html_HTMLElement36
-level1_html_HTMLElement37 level1_html_HTMLElement37
-level1_html_HTMLElement38 level1_html_HTMLElement38
-level1_html_HTMLElement39 level1_html_HTMLElement39
-level1_html_HTMLElement40 level1_html_HTMLElement40
-level1_html_HTMLElement41 level1_html_HTMLElement41
-level1_html_HTMLElement42 level1_html_HTMLElement42
-level1_html_HTMLElement43 level1_html_HTMLElement43
-level1_html_HTMLElement44 level1_html_HTMLElement44
-level1_html_HTMLElement45 level1_html_HTMLElement45
-level1_html_HTMLElement46 level1_html_HTMLElement46
-level1_html_HTMLElement47 level1_html_HTMLElement47
-level1_html_HTMLElement48 level1_html_HTMLElement48
-level1_html_HTMLElement49 level1_html_HTMLElement49
-level1_html_HTMLElement50 level1_html_HTMLElement50
-level1_html_HTMLElement51 level1_html_HTMLElement51
-level1_html_HTMLElement52 level1_html_HTMLElement52
-level1_html_HTMLElement53 level1_html_HTMLElement53
-level1_html_HTMLElement54 level1_html_HTMLElement54
-level1_html_HTMLElement55 level1_html_HTMLElement55
-level1_html_HTMLElement56 level1_html_HTMLElement56
-level1_html_HTMLElement57 level1_html_HTMLElement57
-level1_html_HTMLElement58 level1_html_HTMLElement58
-level1_html_HTMLElement59 level1_html_HTMLElement59
-level1_html_HTMLElement60 level1_html_HTMLElement60
-level1_html_HTMLElement61 level1_html_HTMLElement61
-level1_html_HTMLElement62 level1_html_HTMLElement62
-level1_html_HTMLElement63 level1_html_HTMLElement63
-level1_html_HTMLElement64 level1_html_HTMLElement64
-level1_html_HTMLElement65 level1_html_HTMLElement65
-level1_html_HTMLElement66 level1_html_HTMLElement66
-level1_html_HTMLElement67 level1_html_HTMLElement67
-level1_html_HTMLElement68 level1_html_HTMLElement68
-level1_html_HTMLElement69 level1_html_HTMLElement69
-level1_html_HTMLElement70 level1_html_HTMLElement70
-level1_html_HTMLElement71 level1_html_HTMLElement71
-level1_html_HTMLElement72 level1_html_HTMLElement72
-level1_html_HTMLElement73 level1_html_HTMLElement73
-level1_html_HTMLElement74 level1_html_HTMLElement74
-level1_html_HTMLElement75 level1_html_HTMLElement75
-level1_html_HTMLElement76 level1_html_HTMLElement76
-level1_html_HTMLElement77 level1_html_HTMLElement77
-level1_html_HTMLElement78 level1_html_HTMLElement78
-level1_html_HTMLElement79 level1_html_HTMLElement79
-level1_html_HTMLElement80 level1_html_HTMLElement80
-level1_html_HTMLElement81 level1_html_HTMLElement81
-level1_html_HTMLElement82 level1_html_HTMLElement82
-level1_html_HTMLElement83 level1_html_HTMLElement83
-level1_html_HTMLElement84 level1_html_HTMLElement84
-level1_html_HTMLElement85 level1_html_HTMLElement85
-level1_html_HTMLElement86 level1_html_HTMLElement86
-level1_html_HTMLElement87 level1_html_HTMLElement87
-level1_html_HTMLElement88 level1_html_HTMLElement88
-level1_html_HTMLElement89 level1_html_HTMLElement89
-level1_html_HTMLElement90 level1_html_HTMLElement90
-level1_html_HTMLElement91 level1_html_HTMLElement91
-level1_html_HTMLElement92 level1_html_HTMLElement92
-level1_html_HTMLElement93 level1_html_HTMLElement93
-level1_html_HTMLElement94 level1_html_HTMLElement94
-level1_html_HTMLElement95 level1_html_HTMLElement95
-level1_html_HTMLElement96 level1_html_HTMLElement96
-level1_html_HTMLElement97 level1_html_HTMLElement97
-level1_html_HTMLElement98 level1_html_HTMLElement98
-level1_html_HTMLElement99 level1_html_HTMLElement99
-level1_html_HTMLFormElement03 level1_html_HTMLFormElement03
-level1_html_HTMLFormElement04 level1_html_HTMLFormElement04
-level1_html_HTMLFormElement05 level1_html_HTMLFormElement05
-level1_html_HTMLFormElement06 level1_html_HTMLFormElement06
-level1_html_HTMLFormElement07 level1_html_HTMLFormElement07
-level1_html_HTMLFormElement08 level1_html_HTMLFormElement08
-level1_html_HTMLFormElement09 level1_html_HTMLFormElement09
-level1_html_HTMLFormElement10 level1_html_HTMLFormElement10
-level1_html_HTMLHeadElement01 level1_html_HTMLHeadElement01
-level1_html_HTMLHtmlElement01 level1_html_HTMLHtmlElement01
-level1_html_HTMLInputElement01 level1_html_HTMLInputElement01
-level1_html_HTMLInputElement02 level1_html_HTMLInputElement02
-level1_html_HTMLInputElement03 level1_html_HTMLInputElement03
-level1_html_HTMLInputElement04 level1_html_HTMLInputElement04
-level1_html_HTMLInputElement05 level1_html_HTMLInputElement05
-level1_html_HTMLInputElement06 level1_html_HTMLInputElement06
-level1_html_HTMLInputElement07 level1_html_HTMLInputElement07
-level1_html_HTMLInputElement08 level1_html_HTMLInputElement08
-level1_html_HTMLInputElement09 level1_html_HTMLInputElement09
-level1_html_HTMLInputElement10 level1_html_HTMLInputElement10
-level1_html_HTMLInputElement11 level1_html_HTMLInputElement11
-level1_html_HTMLInputElement12 level1_html_HTMLInputElement12
-level1_html_HTMLInputElement14 level1_html_HTMLInputElement14
-level1_html_HTMLInputElement15 level1_html_HTMLInputElement15
-level1_html_HTMLInputElement16 level1_html_HTMLInputElement16
-level1_html_HTMLInputElement17 level1_html_HTMLInputElement17
-level1_html_HTMLInputElement18 level1_html_HTMLInputElement18
-level1_html_HTMLInputElement19 level1_html_HTMLInputElement19
-level1_html_HTMLInputElement20 level1_html_HTMLInputElement20
-level1_html_HTMLInputElement22 level1_html_HTMLInputElement22
-level1_html_HTMLLinkElement01 level1_html_HTMLLinkElement01
-level1_html_HTMLLinkElement02 level1_html_HTMLLinkElement02
-level1_html_HTMLLinkElement03 level1_html_HTMLLinkElement03
-level1_html_HTMLLinkElement04 level1_html_HTMLLinkElement04
-level1_html_HTMLLinkElement05 level1_html_HTMLLinkElement05
-level1_html_HTMLLinkElement06 level1_html_HTMLLinkElement06
-level1_html_HTMLLinkElement07 level1_html_HTMLLinkElement07
-level1_html_HTMLLinkElement08 level1_html_HTMLLinkElement08
-level1_html_HTMLLinkElement09 level1_html_HTMLLinkElement09
-level1_html_HTMLMetaElement01 level1_html_HTMLMetaElement01
-level1_html_HTMLMetaElement02 level1_html_HTMLMetaElement02
-level1_html_HTMLMetaElement03 level1_html_HTMLMetaElement03
-level1_html_HTMLMetaElement04 level1_html_HTMLMetaElement04
-level1_html_HTMLOptGroupElement01 level1_html_HTMLOptGroupElement01
-level1_html_HTMLOptGroupElement02 level1_html_HTMLOptGroupElement02
-level1_html_HTMLOptionElement01 level1_html_HTMLOptionElement01
-level1_html_HTMLOptionElement02 level1_html_HTMLOptionElement02
-level1_html_HTMLOptionElement03 level1_html_HTMLOptionElement03
-level1_html_HTMLOptionElement04 level1_html_HTMLOptionElement04
-level1_html_HTMLOptionElement06 level1_html_HTMLOptionElement06
-level1_html_HTMLOptionElement07 level1_html_HTMLOptionElement07
-level1_html_HTMLOptionElement08 level1_html_HTMLOptionElement08
-level1_html_HTMLOptionElement09 level1_html_HTMLOptionElement09
-level1_html_HTMLSelectElement01 level1_html_HTMLSelectElement01
-level1_html_HTMLSelectElement02 level1_html_HTMLSelectElement02
-level1_html_HTMLSelectElement03 level1_html_HTMLSelectElement03
-level1_html_HTMLSelectElement04 level1_html_HTMLSelectElement04
-level1_html_HTMLSelectElement06 level1_html_HTMLSelectElement06
-level1_html_HTMLSelectElement07 level1_html_HTMLSelectElement07
-level1_html_HTMLSelectElement08 level1_html_HTMLSelectElement08
-level1_html_HTMLSelectElement09 level1_html_HTMLSelectElement09
-level1_html_HTMLSelectElement10 level1_html_HTMLSelectElement10
-level1_html_HTMLSelectElement11 level1_html_HTMLSelectElement11
-level1_html_HTMLSelectElement12 level1_html_HTMLSelectElement12
-level1_html_HTMLSelectElement13 level1_html_HTMLSelectElement13
-level1_html_HTMLSelectElement14 level1_html_HTMLSelectElement14
-level1_html_HTMLSelectElement15 level1_html_HTMLSelectElement15
-level1_html_HTMLTextAreaElement01 level1_html_HTMLTextAreaElement01
-level1_html_HTMLTextAreaElement02 level1_html_HTMLTextAreaElement02
-level1_html_HTMLTextAreaElement03 level1_html_HTMLTextAreaElement03
-level1_html_HTMLTextAreaElement04 level1_html_HTMLTextAreaElement04
-level1_html_HTMLTextAreaElement05 level1_html_HTMLTextAreaElement05
-level1_html_HTMLTextAreaElement06 level1_html_HTMLTextAreaElement06
-level1_html_HTMLTextAreaElement07 level1_html_HTMLTextAreaElement07
-level1_html_HTMLTextAreaElement08 level1_html_HTMLTextAreaElement08
-level1_html_HTMLTextAreaElement09 level1_html_HTMLTextAreaElement09
-level1_html_HTMLTextAreaElement10 level1_html_HTMLTextAreaElement10
-level1_html_HTMLTextAreaElement11 level1_html_HTMLTextAreaElement11
-level1_html_HTMLTextAreaElement12 level1_html_HTMLTextAreaElement12
-level1_html_HTMLTextAreaElement13 level1_html_HTMLTextAreaElement13
-level1_html_HTMLTextAreaElement14 level1_html_HTMLTextAreaElement14
-level1_html_HTMLTextAreaElement15 level1_html_HTMLTextAreaElement15
-level1_html_HTMLTitleElement01 level1_html_HTMLTitleElement01
-level2_core_documentgetelementbyid01 level2_core_documentgetelementbyid01
-level2_core_documentgetelementsbytagnameNS02 level2_core_documentgetelementsbytagnameNS02
-level2_core_getElementById02 level2_core_getElementById02
-----------------------------------------------------------------------
Summary of changes:
.gitignore | 1 +
test/INDEX | 628 ------------------------------------------------------------
2 files changed, 1 insertions(+), 628 deletions(-)
delete mode 100644 test/INDEX
diff --git a/.gitignore b/.gitignore
index 9d29615..a12a172 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,5 @@ build-*
build/docs
examples/dom-structure-dump
test/level*.c
+test/INDEX
*~
diff --git a/test/INDEX b/test/INDEX
deleted file mode 100644
index b3b14bc..0000000
--- a/test/INDEX
+++ /dev/null
@@ -1,628 +0,0 @@
-#test desc dir
-level1_core_attrcreatedocumentfragment level1_core_attrcreatedocumentfragment
-level1_core_attrcreatetextnode level1_core_attrcreatetextnode
-level1_core_attrcreatetextnode2 level1_core_attrcreatetextnode2
-level1_core_attrdefaultvalue level1_core_attrdefaultvalue
-level1_core_attreffectivevalue level1_core_attreffectivevalue
-level1_core_attrname level1_core_attrname
-level1_core_attrnextsiblingnull level1_core_attrnextsiblingnull
-level1_core_attrparentnodenull level1_core_attrparentnodenull
-level1_core_attrprevioussiblingnull level1_core_attrprevioussiblingnull
-level1_core_attrspecifiedvalue level1_core_attrspecifiedvalue
-level1_core_attrspecifiedvaluechanged level1_core_attrspecifiedvaluechanged
-level1_core_cdatasectiongetdata level1_core_cdatasectiongetdata
-level1_core_characterdataappenddata level1_core_characterdataappenddata
-level1_core_characterdataappenddatagetdata level1_core_characterdataappenddatagetdata
-level1_core_characterdatadeletedatabegining level1_core_characterdatadeletedatabegining
-level1_core_characterdatadeletedataend level1_core_characterdatadeletedataend
-level1_core_characterdatadeletedataexceedslength level1_core_characterdatadeletedataexceedslength
-level1_core_characterdatadeletedatagetlengthanddata level1_core_characterdatadeletedatagetlengthanddata
-level1_core_characterdatadeletedatamiddle level1_core_characterdatadeletedatamiddle
-level1_core_characterdatagetdata level1_core_characterdatagetdata
-level1_core_characterdatagetlength level1_core_characterdatagetlength
-level1_core_characterdataindexsizeerrdeletedatacountnegative level1_core_characterdataindexsizeerrdeletedatacountnegative
-level1_core_characterdataindexsizeerrdeletedataoffsetgreater level1_core_characterdataindexsizeerrdeletedataoffsetgreater
-level1_core_characterdataindexsizeerrdeletedataoffsetnegative level1_core_characterdataindexsizeerrdeletedataoffsetnegative
-level1_core_characterdataindexsizeerrinsertdataoffsetgreater level1_core_characterdataindexsizeerrinsertdataoffsetgreater
-level1_core_characterdataindexsizeerrinsertdataoffsetnegative level1_core_characterdataindexsizeerrinsertdataoffsetnegative
-level1_core_characterdataindexsizeerrreplacedatacountnegative level1_core_characterdataindexsizeerrreplacedatacountnegative
-level1_core_characterdataindexsizeerrreplacedataoffsetgreater level1_core_characterdataindexsizeerrreplacedataoffsetgreater
-level1_core_characterdataindexsizeerrreplacedataoffsetnegative level1_core_characterdataindexsizeerrreplacedataoffsetnegative
-level1_core_characterdataindexsizeerrsubstringcountnegative level1_core_characterdataindexsizeerrsubstringcountnegative
-level1_core_characterdataindexsizeerrsubstringnegativeoffset level1_core_characterdataindexsizeerrsubstringnegativeoffset
-level1_core_characterdataindexsizeerrsubstringoffsetgreater level1_core_characterdataindexsizeerrsubstringoffsetgreater
-level1_core_characterdatainsertdatabeginning level1_core_characterdatainsertdatabeginning
-level1_core_characterdatainsertdataend level1_core_characterdatainsertdataend
-level1_core_characterdatainsertdatamiddle level1_core_characterdatainsertdatamiddle
-level1_core_characterdatareplacedatabegining level1_core_characterdatareplacedatabegining
-level1_core_characterdatareplacedataexceedslengthofarg level1_core_characterdatareplacedataexceedslengthofarg
-level1_core_characterdatasetnodevalue level1_core_characterdatasetnodevalue
-level1_core_characterdatasubstringexceedsvalue level1_core_characterdatasubstringexceedsvalue
-level1_core_characterdatasubstringvalue level1_core_characterdatasubstringvalue
-level1_core_commentgetcomment level1_core_commentgetcomment
-level1_core_documentcreateattribute level1_core_documentcreateattribute
-level1_core_documentcreatecdatasection level1_core_documentcreatecdatasection
-level1_core_documentcreatecomment level1_core_documentcreatecomment
-level1_core_documentcreateelement level1_core_documentcreateelement
-level1_core_documentcreateelementcasesensitive level1_core_documentcreateelementcasesensitive
-level1_core_documentcreateentityreference level1_core_documentcreateentityreference
-level1_core_documentcreateprocessinginstruction level1_core_documentcreateprocessinginstruction
-level1_core_documentcreatetextnode level1_core_documentcreatetextnode
-level1_core_documentgetdoctype level1_core_documentgetdoctype
-level1_core_documentgetdoctypenodtd level1_core_documentgetdoctypenodtd
-level1_core_documentgetelementsbytagnamelength level1_core_documentgetelementsbytagnamelength
-level1_core_documentgetelementsbytagnametotallength level1_core_documentgetelementsbytagnametotallength
-level1_core_documentgetelementsbytagnamevalue level1_core_documentgetelementsbytagnamevalue
-level1_core_documentgetrootnode level1_core_documentgetrootnode
-level1_core_documentinvalidcharacterexceptioncreateattribute level1_core_documentinvalidcharacterexceptioncreateattribute
-level1_core_documentinvalidcharacterexceptioncreateelement level1_core_documentinvalidcharacterexceptioncreateelement
-level1_core_documentinvalidcharacterexceptioncreateentref level1_core_documentinvalidcharacterexceptioncreateentref
-level1_core_documentinvalidcharacterexceptioncreateentref1 level1_core_documentinvalidcharacterexceptioncreateentref1
-level1_core_documentinvalidcharacterexceptioncreatepi level1_core_documentinvalidcharacterexceptioncreatepi
-level1_core_documentinvalidcharacterexceptioncreatepi1 level1_core_documentinvalidcharacterexceptioncreatepi1
-level1_core_documenttypegetdoctype level1_core_documenttypegetdoctype
-level1_core_elementaddnewattribute level1_core_elementaddnewattribute
-level1_core_elementassociatedattribute level1_core_elementassociatedattribute
-level1_core_elementchangeattributevalue level1_core_elementchangeattributevalue
-level1_core_elementcreatenewattribute level1_core_elementcreatenewattribute
-level1_core_elementgetattributenode level1_core_elementgetattributenode
-level1_core_elementgetattributenodenull level1_core_elementgetattributenodenull
-level1_core_elementgetelementempty level1_core_elementgetelementempty
-level1_core_elementgetelementsbytagname level1_core_elementgetelementsbytagname
-level1_core_elementgetelementsbytagnameaccessnodelist level1_core_elementgetelementsbytagnameaccessnodelist
-level1_core_elementgetelementsbytagnamenomatch level1_core_elementgetelementsbytagnamenomatch
-level1_core_elementgetelementsbytagnamespecialvalue level1_core_elementgetelementsbytagnamespecialvalue
-level1_core_elementgettagname level1_core_elementgettagname
-level1_core_elementinuseattributeerr level1_core_elementinuseattributeerr
-level1_core_elementinvalidcharacterexception level1_core_elementinvalidcharacterexception
-level1_core_elementnotfounderr level1_core_elementnotfounderr
-level1_core_elementremoveattributeaftercreate level1_core_elementremoveattributeaftercreate
-level1_core_elementremoveattributenode level1_core_elementremoveattributenode
-level1_core_elementreplaceattributewithself level1_core_elementreplaceattributewithself
-level1_core_elementreplaceexistingattribute level1_core_elementreplaceexistingattribute
-level1_core_elementreplaceexistingattributegevalue level1_core_elementreplaceexistingattributegevalue
-level1_core_elementretrieveallattributes level1_core_elementretrieveallattributes
-level1_core_elementretrieveattrvalue level1_core_elementretrieveattrvalue
-level1_core_elementretrievetagname level1_core_elementretrievetagname
-level1_core_elementsetattributenodenull level1_core_elementsetattributenodenull
-level1_core_elementwrongdocumenterr level1_core_elementwrongdocumenterr
-level1_core_hc_attrappendchild1 level1_core_hc_attrappendchild1
-level1_core_hc_attrappendchild2 level1_core_hc_attrappendchild2
-level1_core_hc_attrappendchild3 level1_core_hc_attrappendchild3
-level1_core_hc_attrappendchild4 level1_core_hc_attrappendchild4
-level1_core_hc_attrappendchild5 level1_core_hc_attrappendchild5
-level1_core_hc_attrappendchild6 level1_core_hc_attrappendchild6
-level1_core_hc_attrchildnodes1 level1_core_hc_attrchildnodes1
-level1_core_hc_attrchildnodes2 level1_core_hc_attrchildnodes2
-level1_core_hc_attrclonenode1 level1_core_hc_attrclonenode1
-level1_core_hc_attrcreatedocumentfragment level1_core_hc_attrcreatedocumentfragment
-level1_core_hc_attrcreatetextnode level1_core_hc_attrcreatetextnode
-level1_core_hc_attrcreatetextnode2 level1_core_hc_attrcreatetextnode2
-level1_core_hc_attreffectivevalue level1_core_hc_attreffectivevalue
-level1_core_hc_attrfirstchild level1_core_hc_attrfirstchild
-level1_core_hc_attrgetvalue1 level1_core_hc_attrgetvalue1
-level1_core_hc_attrhaschildnodes level1_core_hc_attrhaschildnodes
-level1_core_hc_attrinsertbefore1 level1_core_hc_attrinsertbefore1
-level1_core_hc_attrinsertbefore2 level1_core_hc_attrinsertbefore2
-level1_core_hc_attrinsertbefore3 level1_core_hc_attrinsertbefore3
-level1_core_hc_attrinsertbefore4 level1_core_hc_attrinsertbefore4
-level1_core_hc_attrinsertbefore5 level1_core_hc_attrinsertbefore5
-level1_core_hc_attrinsertbefore6 level1_core_hc_attrinsertbefore6
-level1_core_hc_attrinsertbefore7 level1_core_hc_attrinsertbefore7
-level1_core_hc_attrlastchild level1_core_hc_attrlastchild
-level1_core_hc_attrname level1_core_hc_attrname
-level1_core_hc_attrnextsiblingnull level1_core_hc_attrnextsiblingnull
-level1_core_hc_attrparentnodenull level1_core_hc_attrparentnodenull
-level1_core_hc_attrprevioussiblingnull level1_core_hc_attrprevioussiblingnull
-level1_core_hc_attrremovechild1 level1_core_hc_attrremovechild1
-level1_core_hc_attrremovechild2 level1_core_hc_attrremovechild2
-level1_core_hc_attrreplacechild1 level1_core_hc_attrreplacechild1
-level1_core_hc_attrreplacechild2 level1_core_hc_attrreplacechild2
-level1_core_hc_attrsetvalue1 level1_core_hc_attrsetvalue1
-level1_core_hc_attrsetvalue2 level1_core_hc_attrsetvalue2
-level1_core_hc_attrspecifiedvalue level1_core_hc_attrspecifiedvalue
-level1_core_hc_attrspecifiedvaluechanged level1_core_hc_attrspecifiedvaluechanged
-level1_core_hc_characterdataappenddata level1_core_hc_characterdataappenddata
-level1_core_hc_characterdataappenddatagetdata level1_core_hc_characterdataappenddatagetdata
-level1_core_hc_characterdatagetdata level1_core_hc_characterdatagetdata
-level1_core_hc_characterdatagetlength level1_core_hc_characterdatagetlength
-level1_core_hc_characterdataindexsizeerrdeletedatacountnegative level1_core_hc_characterdataindexsizeerrdeletedatacountnegative
-level1_core_hc_characterdataindexsizeerrdeletedataoffsetgreater level1_core_hc_characterdataindexsizeerrdeletedataoffsetgreater
-level1_core_hc_characterdataindexsizeerrdeletedataoffsetnegative level1_core_hc_characterdataindexsizeerrdeletedataoffsetnegative
-level1_core_hc_characterdataindexsizeerrinsertdataoffsetgreater level1_core_hc_characterdataindexsizeerrinsertdataoffsetgreater
-level1_core_hc_characterdataindexsizeerrinsertdataoffsetnegative level1_core_hc_characterdataindexsizeerrinsertdataoffsetnegative
-level1_core_hc_characterdataindexsizeerrreplacedatacountnegative level1_core_hc_characterdataindexsizeerrreplacedatacountnegative
-level1_core_hc_characterdataindexsizeerrreplacedataoffsetgreater level1_core_hc_characterdataindexsizeerrreplacedataoffsetgreater
-level1_core_hc_characterdataindexsizeerrreplacedataoffsetnegative level1_core_hc_characterdataindexsizeerrreplacedataoffsetnegative
-level1_core_hc_characterdataindexsizeerrsubstringcountnegative level1_core_hc_characterdataindexsizeerrsubstringcountnegative
-level1_core_hc_characterdataindexsizeerrsubstringnegativeoffset level1_core_hc_characterdataindexsizeerrsubstringnegativeoffset
-level1_core_hc_characterdataindexsizeerrsubstringoffsetgreater level1_core_hc_characterdataindexsizeerrsubstringoffsetgreater
-level1_core_hc_characterdatainsertdatabeginning level1_core_hc_characterdatainsertdatabeginning
-level1_core_hc_characterdatainsertdataend level1_core_hc_characterdatainsertdataend
-level1_core_hc_characterdatainsertdatamiddle level1_core_hc_characterdatainsertdatamiddle
-level1_core_hc_characterdatareplacedatabegining level1_core_hc_characterdatareplacedatabegining
-level1_core_hc_characterdatareplacedataexceedslengthofarg level1_core_hc_characterdatareplacedataexceedslengthofarg
-level1_core_hc_characterdatasetnodevalue level1_core_hc_characterdatasetnodevalue
-level1_core_hc_characterdatasubstringexceedsvalue level1_core_hc_characterdatasubstringexceedsvalue
-level1_core_hc_characterdatasubstringvalue level1_core_hc_characterdatasubstringvalue
-level1_core_hc_commentgetcomment level1_core_hc_commentgetcomment
-level1_core_hc_documentcreateattribute level1_core_hc_documentcreateattribute
-level1_core_hc_documentcreatecomment level1_core_hc_documentcreatecomment
-level1_core_hc_documentcreateelement level1_core_hc_documentcreateelement
-level1_core_hc_documentcreateelementcasesensitive level1_core_hc_documentcreateelementcasesensitive
-level1_core_hc_documentcreatetextnode level1_core_hc_documentcreatetextnode
-level1_core_hc_documentgetdoctype level1_core_hc_documentgetdoctype
-level1_core_hc_documentgetelementsbytagnamelength level1_core_hc_documentgetelementsbytagnamelength
-level1_core_hc_documentgetelementsbytagnametotallength level1_core_hc_documentgetelementsbytagnametotallength
-level1_core_hc_documentgetelementsbytagnamevalue level1_core_hc_documentgetelementsbytagnamevalue
-level1_core_hc_documentgetrootnode level1_core_hc_documentgetrootnode
-level1_core_hc_documentinvalidcharacterexceptioncreateattribute level1_core_hc_documentinvalidcharacterexceptioncreateattribute
-level1_core_hc_documentinvalidcharacterexceptioncreateattribute1 level1_core_hc_documentinvalidcharacterexceptioncreateattribute1
-level1_core_hc_documentinvalidcharacterexceptioncreateelement level1_core_hc_documentinvalidcharacterexceptioncreateelement
-level1_core_hc_documentinvalidcharacterexceptioncreateelement1 level1_core_hc_documentinvalidcharacterexceptioncreateelement1
-level1_core_hc_elementaddnewattribute level1_core_hc_elementaddnewattribute
-level1_core_hc_elementassociatedattribute level1_core_hc_elementassociatedattribute
-level1_core_hc_elementchangeattributevalue level1_core_hc_elementchangeattributevalue
-level1_core_hc_elementcreatenewattribute level1_core_hc_elementcreatenewattribute
-level1_core_hc_elementgetattributenode level1_core_hc_elementgetattributenode
-level1_core_hc_elementgetattributenodenull level1_core_hc_elementgetattributenodenull
-level1_core_hc_elementgetelementempty level1_core_hc_elementgetelementempty
-level1_core_hc_elementgetelementsbytagname level1_core_hc_elementgetelementsbytagname
-level1_core_hc_elementgetelementsbytagnameaccessnodelist level1_core_hc_elementgetelementsbytagnameaccessnodelist
-level1_core_hc_elementgetelementsbytagnamenomatch level1_core_hc_elementgetelementsbytagnamenomatch
-level1_core_hc_elementgetelementsbytagnamespecialvalue level1_core_hc_elementgetelementsbytagnamespecialvalue
-level1_core_hc_elementgettagname level1_core_hc_elementgettagname
-level1_core_hc_elementinuseattributeerr level1_core_hc_elementinuseattributeerr
-level1_core_hc_elementinvalidcharacterexception level1_core_hc_elementinvalidcharacterexception
-level1_core_hc_elementinvalidcharacterexception1 level1_core_hc_elementinvalidcharacterexception1
-level1_core_hc_elementnotfounderr level1_core_hc_elementnotfounderr
-level1_core_hc_elementremoveattribute level1_core_hc_elementremoveattribute
-level1_core_hc_elementremoveattributeaftercreate level1_core_hc_elementremoveattributeaftercreate
-level1_core_hc_elementremoveattributenode level1_core_hc_elementremoveattributenode
-level1_core_hc_elementreplaceattributewithself level1_core_hc_elementreplaceattributewithself
-level1_core_hc_elementreplaceexistingattribute level1_core_hc_elementreplaceexistingattribute
-level1_core_hc_elementreplaceexistingattributegevalue level1_core_hc_elementreplaceexistingattributegevalue
-level1_core_hc_elementretrieveattrvalue level1_core_hc_elementretrieveattrvalue
-level1_core_hc_elementretrievetagname level1_core_hc_elementretrievetagname
-level1_core_hc_elementsetattributenodenull level1_core_hc_elementsetattributenodenull
-level1_core_hc_elementwrongdocumenterr level1_core_hc_elementwrongdocumenterr
-level1_core_hc_namednodemapgetnameditem level1_core_hc_namednodemapgetnameditem
-level1_core_hc_namednodemapnotfounderr level1_core_hc_namednodemapnotfounderr
-level1_core_hc_namednodemapremovenameditem level1_core_hc_namednodemapremovenameditem
-level1_core_hc_namednodemapreturnnull level1_core_hc_namednodemapreturnnull
-level1_core_hc_namednodemapsetnameditem level1_core_hc_namednodemapsetnameditem
-level1_core_hc_namednodemapsetnameditemreturnvalue level1_core_hc_namednodemapsetnameditemreturnvalue
-level1_core_hc_namednodemapsetnameditemthatexists level1_core_hc_namednodemapsetnameditemthatexists
-level1_core_hc_namednodemapsetnameditemwithnewvalue level1_core_hc_namednodemapsetnameditemwithnewvalue
-level1_core_hc_namednodemapwrongdocumenterr level1_core_hc_namednodemapwrongdocumenterr
-level1_core_hc_nodeappendchild level1_core_hc_nodeappendchild
-level1_core_hc_nodeappendchildchildexists level1_core_hc_nodeappendchildchildexists
-level1_core_hc_nodeappendchilddocfragment level1_core_hc_nodeappendchilddocfragment
-level1_core_hc_nodeappendchildgetnodename level1_core_hc_nodeappendchildgetnodename
-level1_core_hc_nodeappendchildinvalidnodetype level1_core_hc_nodeappendchildinvalidnodetype
-level1_core_hc_nodeappendchildnewchilddiffdocument level1_core_hc_nodeappendchildnewchilddiffdocument
-level1_core_hc_nodeappendchildnodeancestor level1_core_hc_nodeappendchildnodeancestor
-level1_core_hc_nodeattributenodeattribute level1_core_hc_nodeattributenodeattribute
-level1_core_hc_nodeattributenodename level1_core_hc_nodeattributenodename
-level1_core_hc_nodeattributenodetype level1_core_hc_nodeattributenodetype
-level1_core_hc_nodeattributenodevalue level1_core_hc_nodeattributenodevalue
-level1_core_hc_nodechildnodes level1_core_hc_nodechildnodes
-level1_core_hc_nodechildnodesappendchild level1_core_hc_nodechildnodesappendchild
-level1_core_hc_nodeclonefalsenocopytext level1_core_hc_nodeclonefalsenocopytext
-level1_core_hc_nodeclonegetparentnull level1_core_hc_nodeclonegetparentnull
-level1_core_hc_nodeclonetruecopytext level1_core_hc_nodeclonetruecopytext
-level1_core_hc_nodecommentnodeattributes level1_core_hc_nodecommentnodeattributes
-level1_core_hc_nodecommentnodename level1_core_hc_nodecommentnodename
-level1_core_hc_nodecommentnodetype level1_core_hc_nodecommentnodetype
-level1_core_hc_nodecommentnodevalue level1_core_hc_nodecommentnodevalue
-level1_core_hc_nodedocumentfragmentnodename level1_core_hc_nodedocumentfragmentnodename
-level1_core_hc_nodedocumentfragmentnodetype level1_core_hc_nodedocumentfragmentnodetype
-level1_core_hc_nodedocumentfragmentnodevalue level1_core_hc_nodedocumentfragmentnodevalue
-level1_core_hc_nodedocumentnodeattribute level1_core_hc_nodedocumentnodeattribute
-level1_core_hc_nodedocumentnodename level1_core_hc_nodedocumentnodename
-level1_core_hc_nodedocumentnodetype level1_core_hc_nodedocumentnodetype
-level1_core_hc_nodedocumentnodevalue level1_core_hc_nodedocumentnodevalue
-level1_core_hc_nodeelementnodename level1_core_hc_nodeelementnodename
-level1_core_hc_nodeelementnodetype level1_core_hc_nodeelementnodetype
-level1_core_hc_nodeelementnodevalue level1_core_hc_nodeelementnodevalue
-level1_core_hc_nodegetfirstchild level1_core_hc_nodegetfirstchild
-level1_core_hc_nodegetfirstchildnull level1_core_hc_nodegetfirstchildnull
-level1_core_hc_nodegetlastchild level1_core_hc_nodegetlastchild
-level1_core_hc_nodegetlastchildnull level1_core_hc_nodegetlastchildnull
-level1_core_hc_nodegetnextsibling level1_core_hc_nodegetnextsibling
-level1_core_hc_nodegetnextsiblingnull level1_core_hc_nodegetnextsiblingnull
-level1_core_hc_nodegetownerdocument level1_core_hc_nodegetownerdocument
-level1_core_hc_nodegetownerdocumentnull level1_core_hc_nodegetownerdocumentnull
-level1_core_hc_nodegetprevioussibling level1_core_hc_nodegetprevioussibling
-level1_core_hc_nodegetprevioussiblingnull level1_core_hc_nodegetprevioussiblingnull
-level1_core_hc_nodehaschildnodes level1_core_hc_nodehaschildnodes
-level1_core_hc_nodehaschildnodesfalse level1_core_hc_nodehaschildnodesfalse
-level1_core_hc_nodeinsertbefore level1_core_hc_nodeinsertbefore
-level1_core_hc_nodeinsertbeforedocfragment level1_core_hc_nodeinsertbeforedocfragment
-level1_core_hc_nodeinsertbeforeinvalidnodetype level1_core_hc_nodeinsertbeforeinvalidnodetype
-level1_core_hc_nodeinsertbeforenewchilddiffdocument level1_core_hc_nodeinsertbeforenewchilddiffdocument
-level1_core_hc_nodeinsertbeforenewchildexists level1_core_hc_nodeinsertbeforenewchildexists
-level1_core_hc_nodeinsertbeforenodeancestor level1_core_hc_nodeinsertbeforenodeancestor
-level1_core_hc_nodeinsertbeforenodename level1_core_hc_nodeinsertbeforenodename
-level1_core_hc_nodeinsertbeforerefchildnonexistent level1_core_hc_nodeinsertbeforerefchildnonexistent
-level1_core_hc_nodeinsertbeforerefchildnull level1_core_hc_nodeinsertbeforerefchildnull
-level1_core_hc_nodelistindexnotzero level1_core_hc_nodelistindexnotzero
-level1_core_hc_nodelistreturnfirstitem level1_core_hc_nodelistreturnfirstitem
-level1_core_hc_nodelisttraverselist level1_core_hc_nodelisttraverselist
-level1_core_hc_nodeparentnode level1_core_hc_nodeparentnode
-level1_core_hc_nodeparentnodenull level1_core_hc_nodeparentnodenull
-level1_core_hc_noderemovechild level1_core_hc_noderemovechild
-level1_core_hc_noderemovechildgetnodename level1_core_hc_noderemovechildgetnodename
-level1_core_hc_noderemovechildnode level1_core_hc_noderemovechildnode
-level1_core_hc_noderemovechildoldchildnonexistent level1_core_hc_noderemovechildoldchildnonexistent
-level1_core_hc_nodereplacechild level1_core_hc_nodereplacechild
-level1_core_hc_nodereplacechildinvalidnodetype level1_core_hc_nodereplacechildinvalidnodetype
-level1_core_hc_nodereplacechildnewchilddiffdocument level1_core_hc_nodereplacechildnewchilddiffdocument
-level1_core_hc_nodereplacechildnewchildexists level1_core_hc_nodereplacechildnewchildexists
-level1_core_hc_nodereplacechildnodeancestor level1_core_hc_nodereplacechildnodeancestor
-level1_core_hc_nodereplacechildnodename level1_core_hc_nodereplacechildnodename
-level1_core_hc_nodereplacechildoldchildnonexistent level1_core_hc_nodereplacechildoldchildnonexistent
-level1_core_hc_nodetextnodeattribute level1_core_hc_nodetextnodeattribute
-level1_core_hc_nodetextnodename level1_core_hc_nodetextnodename
-level1_core_hc_nodetextnodetype level1_core_hc_nodetextnodetype
-level1_core_hc_nodetextnodevalue level1_core_hc_nodetextnodevalue
-level1_core_hc_nodevalue01 level1_core_hc_nodevalue01
-level1_core_hc_nodevalue02 level1_core_hc_nodevalue02
-level1_core_hc_nodevalue03 level1_core_hc_nodevalue03
-level1_core_hc_nodevalue04 level1_core_hc_nodevalue04
-level1_core_hc_nodevalue05 level1_core_hc_nodevalue05
-level1_core_hc_nodevalue06 level1_core_hc_nodevalue06
-level1_core_hc_textindexsizeerrnegativeoffset level1_core_hc_textindexsizeerrnegativeoffset
-level1_core_hc_textindexsizeerroffsetoutofbounds level1_core_hc_textindexsizeerroffsetoutofbounds
-level1_core_hc_textwithnomarkup level1_core_hc_textwithnomarkup
-level1_core_namednodemapgetnameditem level1_core_namednodemapgetnameditem
-level1_core_namednodemapnotfounderr level1_core_namednodemapnotfounderr
-level1_core_namednodemapremovenameditemreturnnodevalue level1_core_namednodemapremovenameditemreturnnodevalue
-level1_core_namednodemapreturnfirstitem level1_core_namednodemapreturnfirstitem
-level1_core_namednodemapreturnlastitem level1_core_namednodemapreturnlastitem
-level1_core_namednodemapreturnnull level1_core_namednodemapreturnnull
-level1_core_namednodemapsetnameditem level1_core_namednodemapsetnameditem
-level1_core_namednodemapsetnameditemreturnvalue level1_core_namednodemapsetnameditemreturnvalue
-level1_core_namednodemapsetnameditemthatexists level1_core_namednodemapsetnameditemthatexists
-level1_core_namednodemapsetnameditemwithnewvalue level1_core_namednodemapsetnameditemwithnewvalue
-level1_core_namednodemapwrongdocumenterr level1_core_namednodemapwrongdocumenterr
-level1_core_nodeappendchild level1_core_nodeappendchild
-level1_core_nodeappendchildchildexists level1_core_nodeappendchildchildexists
-level1_core_nodeappendchilddocfragment level1_core_nodeappendchilddocfragment
-level1_core_nodeappendchildgetnodename level1_core_nodeappendchildgetnodename
-level1_core_nodeappendchildinvalidnodetype level1_core_nodeappendchildinvalidnodetype
-level1_core_nodeappendchildnewchilddiffdocument level1_core_nodeappendchildnewchilddiffdocument
-level1_core_nodeappendchildnodeancestor level1_core_nodeappendchildnodeancestor
-level1_core_nodeappendchildnomodificationallowederrEE level1_core_nodeappendchildnomodificationallowederrEE
-level1_core_nodeattributenodeattribute level1_core_nodeattributenodeattribute
-level1_core_nodeattributenodename level1_core_nodeattributenodename
-level1_core_nodeattributenodetype level1_core_nodeattributenodetype
-level1_core_nodeattributenodevalue level1_core_nodeattributenodevalue
-level1_core_nodecdatasectionnodeattribute level1_core_nodecdatasectionnodeattribute
-level1_core_nodecdatasectionnodename level1_core_nodecdatasectionnodename
-level1_core_nodecdatasectionnodetype level1_core_nodecdatasectionnodetype
-level1_core_nodecdatasectionnodevalue level1_core_nodecdatasectionnodevalue
-level1_core_nodechildnodes level1_core_nodechildnodes
-level1_core_nodechildnodesempty level1_core_nodechildnodesempty
-level1_core_nodeclonefalsenocopytext level1_core_nodeclonefalsenocopytext
-level1_core_nodeclonegetparentnull level1_core_nodeclonegetparentnull
-level1_core_nodeclonetruecopytext level1_core_nodeclonetruecopytext
-level1_core_nodecommentnodeattributes level1_core_nodecommentnodeattributes
-level1_core_nodecommentnodename level1_core_nodecommentnodename
-level1_core_nodecommentnodetype level1_core_nodecommentnodetype
-level1_core_nodecommentnodevalue level1_core_nodecommentnodevalue
-level1_core_nodedocumentfragmentnodename level1_core_nodedocumentfragmentnodename
-level1_core_nodedocumentfragmentnodetype level1_core_nodedocumentfragmentnodetype
-level1_core_nodedocumentfragmentnodevalue level1_core_nodedocumentfragmentnodevalue
-level1_core_nodedocumentnodeattribute level1_core_nodedocumentnodeattribute
-level1_core_nodedocumentnodename level1_core_nodedocumentnodename
-level1_core_nodedocumentnodetype level1_core_nodedocumentnodetype
-level1_core_nodedocumentnodevalue level1_core_nodedocumentnodevalue
-level1_core_nodedocumenttypenodename level1_core_nodedocumenttypenodename
-level1_core_nodedocumenttypenodetype level1_core_nodedocumenttypenodetype
-level1_core_nodedocumenttypenodevalue level1_core_nodedocumenttypenodevalue
-level1_core_nodeelementnodeattributes level1_core_nodeelementnodeattributes
-level1_core_nodeelementnodename level1_core_nodeelementnodename
-level1_core_nodeelementnodetype level1_core_nodeelementnodetype
-level1_core_nodeelementnodevalue level1_core_nodeelementnodevalue
-level1_core_nodeentityreferencenodeattributes level1_core_nodeentityreferencenodeattributes
-level1_core_nodeentityreferencenodename level1_core_nodeentityreferencenodename
-level1_core_nodeentityreferencenodetype level1_core_nodeentityreferencenodetype
-level1_core_nodeentityreferencenodevalue level1_core_nodeentityreferencenodevalue
-level1_core_nodegetfirstchild level1_core_nodegetfirstchild
-level1_core_nodegetfirstchildnull level1_core_nodegetfirstchildnull
-level1_core_nodegetlastchild level1_core_nodegetlastchild
-level1_core_nodegetlastchildnull level1_core_nodegetlastchildnull
-level1_core_nodegetnextsibling level1_core_nodegetnextsibling
-level1_core_nodegetnextsiblingnull level1_core_nodegetnextsiblingnull
-level1_core_nodegetownerdocument level1_core_nodegetownerdocument
-level1_core_nodegetownerdocumentnull level1_core_nodegetownerdocumentnull
-level1_core_nodegetprevioussibling level1_core_nodegetprevioussibling
-level1_core_nodegetprevioussiblingnull level1_core_nodegetprevioussiblingnull
-level1_core_nodehaschildnodes level1_core_nodehaschildnodes
-level1_core_nodehaschildnodesfalse level1_core_nodehaschildnodesfalse
-level1_core_nodeinsertbeforedocfragment level1_core_nodeinsertbeforedocfragment
-level1_core_nodeinsertbeforeinvalidnodetype level1_core_nodeinsertbeforeinvalidnodetype
-level1_core_nodeinsertbeforenewchilddiffdocument level1_core_nodeinsertbeforenewchilddiffdocument
-level1_core_nodeinsertbeforenodeancestor level1_core_nodeinsertbeforenodeancestor
-level1_core_nodeinsertbeforenodename level1_core_nodeinsertbeforenodename
-level1_core_nodeinsertbeforenomodificationallowederrEE level1_core_nodeinsertbeforenomodificationallowederrEE
-level1_core_nodeinsertbeforerefchildnonexistent level1_core_nodeinsertbeforerefchildnonexistent
-level1_core_nodeinsertbeforerefchildnull level1_core_nodeinsertbeforerefchildnull
-level1_core_nodelistindexequalzero level1_core_nodelistindexequalzero
-level1_core_nodelistindexgetlengthofemptylist level1_core_nodelistindexgetlengthofemptylist
-level1_core_nodeparentnode level1_core_nodeparentnode
-level1_core_nodeparentnodenull level1_core_nodeparentnodenull
-level1_core_nodeprocessinginstructionnodeattributes level1_core_nodeprocessinginstructionnodeattributes
-level1_core_noderemovechild level1_core_noderemovechild
-level1_core_noderemovechildoldchildnonexistent level1_core_noderemovechildoldchildnonexistent
-level1_core_nodereplacechild level1_core_nodereplacechild
-level1_core_nodereplacechildinvalidnodetype level1_core_nodereplacechildinvalidnodetype
-level1_core_nodereplacechildnewchilddiffdocument level1_core_nodereplacechildnewchilddiffdocument
-level1_core_nodereplacechildnodeancestor level1_core_nodereplacechildnodeancestor
-level1_core_nodereplacechildnomodificationallowederr level1_core_nodereplacechildnomodificationallowederr
-level1_core_nodereplacechildnomodificationallowederrEE level1_core_nodereplacechildnomodificationallowederrEE
-level1_core_nodereplacechildoldchildnonexistent level1_core_nodereplacechildoldchildnonexistent
-level1_core_nodetextnodeattribute level1_core_nodetextnodeattribute
-level1_core_nodetextnodename level1_core_nodetextnodename
-level1_core_nodetextnodetype level1_core_nodetextnodetype
-level1_core_nodetextnodevalue level1_core_nodetextnodevalue
-level1_core_nodevalue01 level1_core_nodevalue01
-level1_core_nodevalue02 level1_core_nodevalue02
-level1_core_nodevalue03 level1_core_nodevalue03
-level1_core_nodevalue04 level1_core_nodevalue04
-level1_core_nodevalue05 level1_core_nodevalue05
-level1_core_nodevalue06 level1_core_nodevalue06
-level1_core_nodevalue09 level1_core_nodevalue09
-level1_core_textindexsizeerrnegativeoffset level1_core_textindexsizeerrnegativeoffset
-level1_core_textindexsizeerroffsetoutofbounds level1_core_textindexsizeerroffsetoutofbounds
-level1_core_textwithnomarkup level1_core_textwithnomarkup
-level1_html_HTMLBodyElement01 level1_html_HTMLBodyElement01
-level1_html_HTMLBodyElement02 level1_html_HTMLBodyElement02
-level1_html_HTMLBodyElement03 level1_html_HTMLBodyElement03
-level1_html_HTMLBodyElement04 level1_html_HTMLBodyElement04
-level1_html_HTMLBodyElement05 level1_html_HTMLBodyElement05
-level1_html_HTMLBodyElement06 level1_html_HTMLBodyElement06
-level1_html_HTMLButtonElement01 level1_html_HTMLButtonElement01
-level1_html_HTMLButtonElement02 level1_html_HTMLButtonElement02
-level1_html_HTMLButtonElement03 level1_html_HTMLButtonElement03
-level1_html_HTMLButtonElement04 level1_html_HTMLButtonElement04
-level1_html_HTMLButtonElement05 level1_html_HTMLButtonElement05
-level1_html_HTMLButtonElement06 level1_html_HTMLButtonElement06
-level1_html_HTMLButtonElement07 level1_html_HTMLButtonElement07
-level1_html_HTMLButtonElement08 level1_html_HTMLButtonElement08
-level1_html_HTMLCollection12 level1_html_HTMLCollection12
-level1_html_HTMLDocument01 level1_html_HTMLDocument01
-level1_html_HTMLDocument02 level1_html_HTMLDocument02
-level1_html_HTMLDocument03 level1_html_HTMLDocument03
-level1_html_HTMLElement01 level1_html_HTMLElement01
-level1_html_HTMLElement02 level1_html_HTMLElement02
-level1_html_HTMLElement03 level1_html_HTMLElement03
-level1_html_HTMLElement04 level1_html_HTMLElement04
-level1_html_HTMLElement05 level1_html_HTMLElement05
-level1_html_HTMLElement06 level1_html_HTMLElement06
-level1_html_HTMLElement07 level1_html_HTMLElement07
-level1_html_HTMLElement08 level1_html_HTMLElement08
-level1_html_HTMLElement09 level1_html_HTMLElement09
-level1_html_HTMLElement10 level1_html_HTMLElement10
-level1_html_HTMLElement100 level1_html_HTMLElement100
-level1_html_HTMLElement101 level1_html_HTMLElement101
-level1_html_HTMLElement102 level1_html_HTMLElement102
-level1_html_HTMLElement103 level1_html_HTMLElement103
-level1_html_HTMLElement104 level1_html_HTMLElement104
-level1_html_HTMLElement105 level1_html_HTMLElement105
-level1_html_HTMLElement106 level1_html_HTMLElement106
-level1_html_HTMLElement107 level1_html_HTMLElement107
-level1_html_HTMLElement108 level1_html_HTMLElement108
-level1_html_HTMLElement109 level1_html_HTMLElement109
-level1_html_HTMLElement11 level1_html_HTMLElement11
-level1_html_HTMLElement110 level1_html_HTMLElement110
-level1_html_HTMLElement111 level1_html_HTMLElement111
-level1_html_HTMLElement112 level1_html_HTMLElement112
-level1_html_HTMLElement113 level1_html_HTMLElement113
-level1_html_HTMLElement114 level1_html_HTMLElement114
-level1_html_HTMLElement115 level1_html_HTMLElement115
-level1_html_HTMLElement116 level1_html_HTMLElement116
-level1_html_HTMLElement117 level1_html_HTMLElement117
-level1_html_HTMLElement118 level1_html_HTMLElement118
-level1_html_HTMLElement119 level1_html_HTMLElement119
-level1_html_HTMLElement12 level1_html_HTMLElement12
-level1_html_HTMLElement120 level1_html_HTMLElement120
-level1_html_HTMLElement121 level1_html_HTMLElement121
-level1_html_HTMLElement122 level1_html_HTMLElement122
-level1_html_HTMLElement123 level1_html_HTMLElement123
-level1_html_HTMLElement124 level1_html_HTMLElement124
-level1_html_HTMLElement125 level1_html_HTMLElement125
-level1_html_HTMLElement126 level1_html_HTMLElement126
-level1_html_HTMLElement127 level1_html_HTMLElement127
-level1_html_HTMLElement128 level1_html_HTMLElement128
-level1_html_HTMLElement129 level1_html_HTMLElement129
-level1_html_HTMLElement13 level1_html_HTMLElement13
-level1_html_HTMLElement130 level1_html_HTMLElement130
-level1_html_HTMLElement131 level1_html_HTMLElement131
-level1_html_HTMLElement132 level1_html_HTMLElement132
-level1_html_HTMLElement133 level1_html_HTMLElement133
-level1_html_HTMLElement134 level1_html_HTMLElement134
-level1_html_HTMLElement135 level1_html_HTMLElement135
-level1_html_HTMLElement136 level1_html_HTMLElement136
-level1_html_HTMLElement137 level1_html_HTMLElement137
-level1_html_HTMLElement138 level1_html_HTMLElement138
-level1_html_HTMLElement139 level1_html_HTMLElement139
-level1_html_HTMLElement14 level1_html_HTMLElement14
-level1_html_HTMLElement140 level1_html_HTMLElement140
-level1_html_HTMLElement141 level1_html_HTMLElement141
-level1_html_HTMLElement142 level1_html_HTMLElement142
-level1_html_HTMLElement143 level1_html_HTMLElement143
-level1_html_HTMLElement144 level1_html_HTMLElement144
-level1_html_HTMLElement145 level1_html_HTMLElement145
-level1_html_HTMLElement15 level1_html_HTMLElement15
-level1_html_HTMLElement16 level1_html_HTMLElement16
-level1_html_HTMLElement17 level1_html_HTMLElement17
-level1_html_HTMLElement18 level1_html_HTMLElement18
-level1_html_HTMLElement19 level1_html_HTMLElement19
-level1_html_HTMLElement20 level1_html_HTMLElement20
-level1_html_HTMLElement21 level1_html_HTMLElement21
-level1_html_HTMLElement22 level1_html_HTMLElement22
-level1_html_HTMLElement23 level1_html_HTMLElement23
-level1_html_HTMLElement24 level1_html_HTMLElement24
-level1_html_HTMLElement25 level1_html_HTMLElement25
-level1_html_HTMLElement26 level1_html_HTMLElement26
-level1_html_HTMLElement27 level1_html_HTMLElement27
-level1_html_HTMLElement28 level1_html_HTMLElement28
-level1_html_HTMLElement29 level1_html_HTMLElement29
-level1_html_HTMLElement30 level1_html_HTMLElement30
-level1_html_HTMLElement31 level1_html_HTMLElement31
-level1_html_HTMLElement32 level1_html_HTMLElement32
-level1_html_HTMLElement33 level1_html_HTMLElement33
-level1_html_HTMLElement34 level1_html_HTMLElement34
-level1_html_HTMLElement35 level1_html_HTMLElement35
-level1_html_HTMLElement36 level1_html_HTMLElement36
-level1_html_HTMLElement37 level1_html_HTMLElement37
-level1_html_HTMLElement38 level1_html_HTMLElement38
-level1_html_HTMLElement39 level1_html_HTMLElement39
-level1_html_HTMLElement40 level1_html_HTMLElement40
-level1_html_HTMLElement41 level1_html_HTMLElement41
-level1_html_HTMLElement42 level1_html_HTMLElement42
-level1_html_HTMLElement43 level1_html_HTMLElement43
-level1_html_HTMLElement44 level1_html_HTMLElement44
-level1_html_HTMLElement45 level1_html_HTMLElement45
-level1_html_HTMLElement46 level1_html_HTMLElement46
-level1_html_HTMLElement47 level1_html_HTMLElement47
-level1_html_HTMLElement48 level1_html_HTMLElement48
-level1_html_HTMLElement49 level1_html_HTMLElement49
-level1_html_HTMLElement50 level1_html_HTMLElement50
-level1_html_HTMLElement51 level1_html_HTMLElement51
-level1_html_HTMLElement52 level1_html_HTMLElement52
-level1_html_HTMLElement53 level1_html_HTMLElement53
-level1_html_HTMLElement54 level1_html_HTMLElement54
-level1_html_HTMLElement55 level1_html_HTMLElement55
-level1_html_HTMLElement56 level1_html_HTMLElement56
-level1_html_HTMLElement57 level1_html_HTMLElement57
-level1_html_HTMLElement58 level1_html_HTMLElement58
-level1_html_HTMLElement59 level1_html_HTMLElement59
-level1_html_HTMLElement60 level1_html_HTMLElement60
-level1_html_HTMLElement61 level1_html_HTMLElement61
-level1_html_HTMLElement62 level1_html_HTMLElement62
-level1_html_HTMLElement63 level1_html_HTMLElement63
-level1_html_HTMLElement64 level1_html_HTMLElement64
-level1_html_HTMLElement65 level1_html_HTMLElement65
-level1_html_HTMLElement66 level1_html_HTMLElement66
-level1_html_HTMLElement67 level1_html_HTMLElement67
-level1_html_HTMLElement68 level1_html_HTMLElement68
-level1_html_HTMLElement69 level1_html_HTMLElement69
-level1_html_HTMLElement70 level1_html_HTMLElement70
-level1_html_HTMLElement71 level1_html_HTMLElement71
-level1_html_HTMLElement72 level1_html_HTMLElement72
-level1_html_HTMLElement73 level1_html_HTMLElement73
-level1_html_HTMLElement74 level1_html_HTMLElement74
-level1_html_HTMLElement75 level1_html_HTMLElement75
-level1_html_HTMLElement76 level1_html_HTMLElement76
-level1_html_HTMLElement77 level1_html_HTMLElement77
-level1_html_HTMLElement78 level1_html_HTMLElement78
-level1_html_HTMLElement79 level1_html_HTMLElement79
-level1_html_HTMLElement80 level1_html_HTMLElement80
-level1_html_HTMLElement81 level1_html_HTMLElement81
-level1_html_HTMLElement82 level1_html_HTMLElement82
-level1_html_HTMLElement83 level1_html_HTMLElement83
-level1_html_HTMLElement84 level1_html_HTMLElement84
-level1_html_HTMLElement85 level1_html_HTMLElement85
-level1_html_HTMLElement86 level1_html_HTMLElement86
-level1_html_HTMLElement87 level1_html_HTMLElement87
-level1_html_HTMLElement88 level1_html_HTMLElement88
-level1_html_HTMLElement89 level1_html_HTMLElement89
-level1_html_HTMLElement90 level1_html_HTMLElement90
-level1_html_HTMLElement91 level1_html_HTMLElement91
-level1_html_HTMLElement92 level1_html_HTMLElement92
-level1_html_HTMLElement93 level1_html_HTMLElement93
-level1_html_HTMLElement94 level1_html_HTMLElement94
-level1_html_HTMLElement95 level1_html_HTMLElement95
-level1_html_HTMLElement96 level1_html_HTMLElement96
-level1_html_HTMLElement97 level1_html_HTMLElement97
-level1_html_HTMLElement98 level1_html_HTMLElement98
-level1_html_HTMLElement99 level1_html_HTMLElement99
-level1_html_HTMLFormElement03 level1_html_HTMLFormElement03
-level1_html_HTMLFormElement04 level1_html_HTMLFormElement04
-level1_html_HTMLFormElement05 level1_html_HTMLFormElement05
-level1_html_HTMLFormElement06 level1_html_HTMLFormElement06
-level1_html_HTMLFormElement07 level1_html_HTMLFormElement07
-level1_html_HTMLFormElement08 level1_html_HTMLFormElement08
-level1_html_HTMLFormElement09 level1_html_HTMLFormElement09
-level1_html_HTMLFormElement10 level1_html_HTMLFormElement10
-level1_html_HTMLHeadElement01 level1_html_HTMLHeadElement01
-level1_html_HTMLHtmlElement01 level1_html_HTMLHtmlElement01
-level1_html_HTMLInputElement01 level1_html_HTMLInputElement01
-level1_html_HTMLInputElement02 level1_html_HTMLInputElement02
-level1_html_HTMLInputElement03 level1_html_HTMLInputElement03
-level1_html_HTMLInputElement04 level1_html_HTMLInputElement04
-level1_html_HTMLInputElement05 level1_html_HTMLInputElement05
-level1_html_HTMLInputElement06 level1_html_HTMLInputElement06
-level1_html_HTMLInputElement07 level1_html_HTMLInputElement07
-level1_html_HTMLInputElement08 level1_html_HTMLInputElement08
-level1_html_HTMLInputElement09 level1_html_HTMLInputElement09
-level1_html_HTMLInputElement10 level1_html_HTMLInputElement10
-level1_html_HTMLInputElement11 level1_html_HTMLInputElement11
-level1_html_HTMLInputElement12 level1_html_HTMLInputElement12
-level1_html_HTMLInputElement14 level1_html_HTMLInputElement14
-level1_html_HTMLInputElement15 level1_html_HTMLInputElement15
-level1_html_HTMLInputElement16 level1_html_HTMLInputElement16
-level1_html_HTMLInputElement17 level1_html_HTMLInputElement17
-level1_html_HTMLInputElement18 level1_html_HTMLInputElement18
-level1_html_HTMLInputElement19 level1_html_HTMLInputElement19
-level1_html_HTMLInputElement20 level1_html_HTMLInputElement20
-level1_html_HTMLInputElement22 level1_html_HTMLInputElement22
-level1_html_HTMLLinkElement01 level1_html_HTMLLinkElement01
-level1_html_HTMLLinkElement02 level1_html_HTMLLinkElement02
-level1_html_HTMLLinkElement03 level1_html_HTMLLinkElement03
-level1_html_HTMLLinkElement04 level1_html_HTMLLinkElement04
-level1_html_HTMLLinkElement05 level1_html_HTMLLinkElement05
-level1_html_HTMLLinkElement06 level1_html_HTMLLinkElement06
-level1_html_HTMLLinkElement07 level1_html_HTMLLinkElement07
-level1_html_HTMLLinkElement08 level1_html_HTMLLinkElement08
-level1_html_HTMLLinkElement09 level1_html_HTMLLinkElement09
-level1_html_HTMLMetaElement01 level1_html_HTMLMetaElement01
-level1_html_HTMLMetaElement02 level1_html_HTMLMetaElement02
-level1_html_HTMLMetaElement03 level1_html_HTMLMetaElement03
-level1_html_HTMLMetaElement04 level1_html_HTMLMetaElement04
-level1_html_HTMLOptGroupElement01 level1_html_HTMLOptGroupElement01
-level1_html_HTMLOptGroupElement02 level1_html_HTMLOptGroupElement02
-level1_html_HTMLOptionElement01 level1_html_HTMLOptionElement01
-level1_html_HTMLOptionElement02 level1_html_HTMLOptionElement02
-level1_html_HTMLOptionElement03 level1_html_HTMLOptionElement03
-level1_html_HTMLOptionElement04 level1_html_HTMLOptionElement04
-level1_html_HTMLOptionElement06 level1_html_HTMLOptionElement06
-level1_html_HTMLOptionElement07 level1_html_HTMLOptionElement07
-level1_html_HTMLOptionElement08 level1_html_HTMLOptionElement08
-level1_html_HTMLOptionElement09 level1_html_HTMLOptionElement09
-level1_html_HTMLSelectElement01 level1_html_HTMLSelectElement01
-level1_html_HTMLSelectElement02 level1_html_HTMLSelectElement02
-level1_html_HTMLSelectElement03 level1_html_HTMLSelectElement03
-level1_html_HTMLSelectElement04 level1_html_HTMLSelectElement04
-level1_html_HTMLSelectElement06 level1_html_HTMLSelectElement06
-level1_html_HTMLSelectElement07 level1_html_HTMLSelectElement07
-level1_html_HTMLSelectElement08 level1_html_HTMLSelectElement08
-level1_html_HTMLSelectElement09 level1_html_HTMLSelectElement09
-level1_html_HTMLSelectElement10 level1_html_HTMLSelectElement10
-level1_html_HTMLSelectElement11 level1_html_HTMLSelectElement11
-level1_html_HTMLSelectElement12 level1_html_HTMLSelectElement12
-level1_html_HTMLSelectElement13 level1_html_HTMLSelectElement13
-level1_html_HTMLSelectElement14 level1_html_HTMLSelectElement14
-level1_html_HTMLSelectElement15 level1_html_HTMLSelectElement15
-level1_html_HTMLTextAreaElement01 level1_html_HTMLTextAreaElement01
-level1_html_HTMLTextAreaElement02 level1_html_HTMLTextAreaElement02
-level1_html_HTMLTextAreaElement03 level1_html_HTMLTextAreaElement03
-level1_html_HTMLTextAreaElement04 level1_html_HTMLTextAreaElement04
-level1_html_HTMLTextAreaElement05 level1_html_HTMLTextAreaElement05
-level1_html_HTMLTextAreaElement06 level1_html_HTMLTextAreaElement06
-level1_html_HTMLTextAreaElement07 level1_html_HTMLTextAreaElement07
-level1_html_HTMLTextAreaElement08 level1_html_HTMLTextAreaElement08
-level1_html_HTMLTextAreaElement09 level1_html_HTMLTextAreaElement09
-level1_html_HTMLTextAreaElement10 level1_html_HTMLTextAreaElement10
-level1_html_HTMLTextAreaElement11 level1_html_HTMLTextAreaElement11
-level1_html_HTMLTextAreaElement12 level1_html_HTMLTextAreaElement12
-level1_html_HTMLTextAreaElement13 level1_html_HTMLTextAreaElement13
-level1_html_HTMLTextAreaElement14 level1_html_HTMLTextAreaElement14
-level1_html_HTMLTextAreaElement15 level1_html_HTMLTextAreaElement15
-level1_html_HTMLTitleElement01 level1_html_HTMLTitleElement01
-level2_core_documentgetelementbyid01 level2_core_documentgetelementbyid01
-level2_core_documentgetelementsbytagnameNS02 level2_core_documentgetelementsbytagnameNS02
-level2_core_getElementById02 level2_core_getElementById02
--
Document Object Model library
10 years, 6 months
libdom: branch master updated. 47e3fe106a9cd7ae72272955194a0ea9ae528820
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/47e3fe106a9cd7ae722729...
...commit http://git.netsurf-browser.org/libdom.git/commit/47e3fe106a9cd7ae72272955...
...tree http://git.netsurf-browser.org/libdom.git/tree/47e3fe106a9cd7ae7227295519...
The branch, master has been updated
via 47e3fe106a9cd7ae72272955194a0ea9ae528820 (commit)
from d621b4cc86289f23b11f2050d5dcfbf025a3218f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commitdiff/47e3fe106a9cd7ae7227...
commit 47e3fe106a9cd7ae72272955194a0ea9ae528820
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Fix comparison of signed/unsigned variables.
diff --git a/.gitignore b/.gitignore
index a12a172..9d29615 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,5 +3,4 @@ build-*
build/docs
examples/dom-structure-dump
test/level*.c
-test/INDEX
*~
diff --git a/include/dom/html/html_select_element.h b/include/dom/html/html_select_element.h
index 6999368..42aef00 100644
--- a/include/dom/html/html_select_element.h
+++ b/include/dom/html/html_select_element.h
@@ -80,7 +80,7 @@ dom_exception dom__html_select_element_add(dom_html_select_element *select,
(struct dom_html_element *) (e), \
(struct dom_html_element *) (b))
dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
- long index);
+ int32_t index);
dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele);
dom_exception dom_html_select_element_focus(struct dom_html_select_element *ele);
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index 4efffb9..12ea6ba 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -536,7 +536,7 @@ dom_exception dom__html_select_element_add(dom_html_select_element *select,
}
dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
- long index)
+ int32_t index)
{
dom_exception err;
uint32_t len;
@@ -547,7 +547,7 @@ dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
return err;
/* Ensure index is in range */
- if (index >= len)
+ if (index < 0 || (uint32_t)index >= len)
return DOM_NO_ERR;
err = dom_html_options_collection_item(ele->options, index, &option);
-----------------------------------------------------------------------
Summary of changes:
.gitignore | 1 -
include/dom/html/html_select_element.h | 2 +-
src/html/html_select_element.c | 4 ++--
3 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index a12a172..9d29615 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,5 +3,4 @@ build-*
build/docs
examples/dom-structure-dump
test/level*.c
-test/INDEX
*~
diff --git a/include/dom/html/html_select_element.h b/include/dom/html/html_select_element.h
index 6999368..42aef00 100644
--- a/include/dom/html/html_select_element.h
+++ b/include/dom/html/html_select_element.h
@@ -80,7 +80,7 @@ dom_exception dom__html_select_element_add(dom_html_select_element *select,
(struct dom_html_element *) (e), \
(struct dom_html_element *) (b))
dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
- long index);
+ int32_t index);
dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele);
dom_exception dom_html_select_element_focus(struct dom_html_select_element *ele);
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index 4efffb9..12ea6ba 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -536,7 +536,7 @@ dom_exception dom__html_select_element_add(dom_html_select_element *select,
}
dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
- long index)
+ int32_t index)
{
dom_exception err;
uint32_t len;
@@ -547,7 +547,7 @@ dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
return err;
/* Ensure index is in range */
- if (index >= len)
+ if (index < 0 || (uint32_t)index >= len)
return DOM_NO_ERR;
err = dom_html_options_collection_item(ele->options, index, &option);
--
Document Object Model library
10 years, 6 months
libdom: branch master updated. d621b4cc86289f23b11f2050d5dcfbf025a3218f
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/d621b4cc86289f23b11f20...
...commit http://git.netsurf-browser.org/libdom.git/commit/d621b4cc86289f23b11f2050...
...tree http://git.netsurf-browser.org/libdom.git/tree/d621b4cc86289f23b11f2050d5...
The branch, master has been updated
via d621b4cc86289f23b11f2050d5dcfbf025a3218f (commit)
via 55e606196f97c2b2ded75933f7643d3acf57033f (commit)
via 15fa04e97c7c0c9108c0324bae4dfd384e2eb3be (commit)
via 2a9572f844e04332d6a448b2f52be8ba2a5e8784 (commit)
from 83ace96a3046ec0f6bdbd258280b50292a4e8caf (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commitdiff/d621b4cc86289f23b11f...
commit d621b4cc86289f23b11f2050d5dcfbf025a3218f
Merge: 83ace96 55e6061
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Merge branch 'tlsa/selectstuff'
Conflicts:
include/dom/html/html_select_element.h
src/html/html_select_element.c
src/html/html_select_element.h
diff --cc include/dom/html/html_select_element.h
index a052be1,b92abd6..6999368
--- a/include/dom/html/html_select_element.h
+++ b/include/dom/html/html_select_element.h
@@@ -17,17 -19,34 +19,34 @@@ typedef struct dom_html_select_element
struct dom_html_options_collection;
struct dom_html_element;
+ dom_exception dom_html_select_element_get_type(
+ dom_html_select_element *ele, dom_string **type);
+
dom_exception dom_html_select_element_get_selected_index(
- dom_html_select_element *ele, uint32_t *index);
- dom_html_select_element *ele, unsigned long *index);
++ dom_html_select_element *ele, int32_t *index);
dom_exception dom_html_select_element_set_selected_index(
- dom_html_select_element *ele, uint32_t index);
- dom_html_select_element *ele, unsigned long index);
++ dom_html_select_element *ele, int32_t index);
+
+ dom_exception dom_html_select_element_get_value(
+ dom_html_select_element *ele, dom_string **value);
+ dom_exception dom_html_select_element_set_value(
+ dom_html_select_element *ele, dom_string *value);
+
dom_exception dom_html_select_element_get_length(
- dom_html_select_element *ele, unsigned long *len);
+ dom_html_select_element *ele, uint32_t *len);
dom_exception dom_html_select_element_set_length(
- dom_html_select_element *ele, unsigned long len);
+ dom_html_select_element *ele, uint32_t len);
- dom_exception dom_html_select_element_get_options(
+
+ dom_exception dom_html_select_element_get_form(
+ dom_html_select_element *ele, dom_html_form_element **form);
+
+ dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col);
+ #define dom_html_select_element_get_options(e, c) \
+ dom__html_select_element_get_options((dom_html_select_element *) (e), \
+ (struct dom_html_options_collection **) (c))
+
dom_exception dom_html_select_element_get_disabled(
dom_html_select_element *ele, bool *disabled);
dom_exception dom_html_select_element_set_disabled(
@@@ -36,20 -56,33 +56,33 @@@ dom_exception dom_html_select_element_g
dom_html_select_element *ele, bool *multiple);
dom_exception dom_html_select_element_set_multiple(
dom_html_select_element *ele, bool multiple);
+
+ dom_exception dom_html_select_element_get_name(
+ dom_html_select_element *ele, dom_string **name);
+ dom_exception dom_html_select_element_set_name(
+ dom_html_select_element *ele, dom_string *name);
+
dom_exception dom_html_select_element_get_size(
- dom_html_select_element *ele, uint32_t *size);
- dom_html_select_element *ele, unsigned long *size);
++ dom_html_select_element *ele, int32_t *size);
dom_exception dom_html_select_element_set_size(
- dom_html_select_element *ele, uint32_t size);
- dom_html_select_element *ele, unsigned long size);
++ dom_html_select_element *ele, int32_t size);
+
dom_exception dom_html_select_element_get_tab_index(
- dom_html_select_element *ele, uint32_t *tab_index);
- dom_html_select_element *ele, unsigned long *tab_index);
++ dom_html_select_element *ele, int32_t *tab_index);
dom_exception dom_html_select_element_set_tab_index(
- dom_html_select_element *ele, uint32_t tab_index);
- dom_html_select_element *ele, unsigned long tab_index);
++ dom_html_select_element *ele, int32_t tab_index);
/* Functions */
- dom_exception dom_html_select_element_add(struct dom_html_element *ele,
- struct dom_html_element *before);
- dom_exception dom_html_element_blur(struct dom_html_select_element *ele);
- dom_exception dom_html_element_focus(struct dom_html_select_element *ele);
+ dom_exception dom__html_select_element_add(dom_html_select_element *select,
+ struct dom_html_element *ele, struct dom_html_element *before);
+ #define dom_html_select_element_add(s, e, b) \
+ dom__html_select_element_add((dom_html_select_element *) (s), \
+ (struct dom_html_element *) (e), \
+ (struct dom_html_element *) (b))
+ dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
+ long index);
+ dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele);
+ dom_exception dom_html_select_element_focus(struct dom_html_select_element *ele);
#endif
diff --cc src/html/html_select_element.c
index 58c08bc,89e46a9..4efffb9
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@@ -137,9 -181,38 +181,38 @@@ dom_exception dom_html_select_element_g
* \return DOM_NO_ERR on success.
*/
dom_exception dom_html_select_element_get_selected_index(
- dom_html_select_element *ele, uint32_t *index)
- dom_html_select_element *ele, unsigned long *index)
++ dom_html_select_element *ele, int32_t *index)
{
- *index = ele->selected;
+ dom_exception err;
- unsigned long idx, len;
++ uint32_t idx, len;
+ dom_node *option;
+ bool selected;
+
+ err = dom_html_select_element_get_length(ele, &len);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ for (idx = 0; idx < len; idx++) {
+ err = dom_html_options_collection_item(ele->options,
+ idx, &option);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ err = dom_html_option_element_get_selected(
+ (dom_html_option_element *) option, &selected);
+
+ dom_node_unref(option);
+
+ if (err != DOM_NO_ERR)
+ return err;
+
+ if (selected) {
+ *index = idx;
+ return DOM_NO_ERR;
+ }
+ }
+
+ *index = -1;
return DOM_NO_ERR;
}
@@@ -152,9 -225,59 +225,59 @@@
* \return DOM_NO_ERR on success.
*/
dom_exception dom_html_select_element_set_selected_index(
- dom_html_select_element *ele, uint32_t index)
- dom_html_select_element *ele, unsigned long index)
++ dom_html_select_element *ele, int32_t index)
{
- ele->selected = index;
+ UNUSED(ele);
+ UNUSED(index);
+
+ /** \todo Implement */
+ return DOM_NOT_SUPPORTED_ERR;
+ }
+
+ /**
+ * Get the value of this form control
+ *
+ * \param ele The select element
+ * \param value Pointer to location to receive value
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+ dom_exception dom_html_select_element_get_value(
+ dom_html_select_element *ele, dom_string **value)
+ {
+ dom_exception err;
- unsigned long idx, len;
++ uint32_t idx, len;
+ dom_node *option;
+ bool selected;
+
+ err = dom_html_select_element_get_length(ele, &len);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ for (idx = 0; idx < len; idx++) {
+ err = dom_html_options_collection_item(ele->options,
+ idx, &option);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ err = dom_html_option_element_get_selected(
+ (dom_html_option_element *) option, &selected);
+ if (err != DOM_NO_ERR) {
+ dom_node_unref(option);
+ return err;
+ }
+
+ if (selected) {
+ err = dom_html_option_element_get_value(
+ (dom_html_option_element *) option,
+ value);
+
+ dom_node_unref(option);
+
+ return err;
+ }
+ }
+
+ *value = NULL;
return DOM_NO_ERR;
}
@@@ -167,19 -307,13 +307,13 @@@ dom_exception dom_html_select_element_s
* \return DOM_NO_ERR on success.
*/
dom_exception dom_html_select_element_get_length(
- dom_html_select_element *ele, unsigned long *len)
+ dom_html_select_element *ele, uint32_t *len)
{
dom_exception err;
- dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
- assert(doc != NULL);
- if (ele->options == NULL) {
- err = _dom_html_options_collection_create(doc,
- (dom_node_internal *) ele,
- is_option, NULL, &ele->options);
- if (err != DOM_NO_ERR)
- return err;
- }
+ err = _dom_html_select_element_ensure_collection(ele);
+ if (err != DOM_NO_ERR)
+ return err;
return dom_html_options_collection_get_length(ele->options, len);
}
@@@ -290,20 -433,166 +433,166 @@@ dom_exception dom_html_select_element_s
"multiple", SLEN("multiple"), multiple);
}
+ /**
+ * Get the name property
+ *
+ * \param ele The select element
+ * \param name Pointer to location to receive name
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+ dom_exception dom_html_select_element_get_name(
+ dom_html_select_element *ele, dom_string **name)
+ {
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
+
+ return dom_element_get_attribute(ele,
+ doc->memoised[hds_name], name);
+ }
+
+ /**
+ * Set the name property
+ *
+ * \param ele The select element
+ * \param name New name
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+ dom_exception dom_html_select_element_set_name(
+ dom_html_select_element *ele, dom_string *name)
+ {
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
+
+ return dom_element_set_attribute(ele,
+ doc->memoised[hds_name], name);
+
+ }
+
+ /**
+ * Get the size property
+ *
+ * \param ele The select element
+ * \param size Pointer to location to receive size
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
dom_exception dom_html_select_element_get_size(
- dom_html_select_element *ele, uint32_t *size);
- dom_html_select_element *ele, unsigned long *size)
++ dom_html_select_element *ele, int32_t *size)
+ {
- return dom_html_element_get_long_property(&ele->base, "size",
++ return dom_html_element_get_int32_t_property(&ele->base, "size",
+ SLEN("size"), size);
+ }
+
+ /**
+ * Set the size property
+ *
+ * \param ele The select element
+ * \param size New size
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
dom_exception dom_html_select_element_set_size(
- dom_html_select_element *ele, uint32_t size);
- dom_html_select_element *ele, unsigned long size)
++ dom_html_select_element *ele, int32_t size)
+ {
- return dom_html_element_set_long_property(&ele->base, "size",
++ return dom_html_element_set_int32_t_property(&ele->base, "size",
+ SLEN("size"), size);
+ }
+
+ /**
+ * Get the tabindex property
+ *
+ * \param ele The select element
+ * \param tab_index Pointer to location to receive tab index
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
dom_exception dom_html_select_element_get_tab_index(
- dom_html_select_element *ele, uint32_t *tab_index);
- dom_html_select_element *ele, unsigned long *tab_index)
++ dom_html_select_element *ele, int32_t *tab_index)
+ {
- return dom_html_element_get_long_property(&ele->base, "tabindex",
++ return dom_html_element_get_int32_t_property(&ele->base, "tabindex",
+ SLEN("tabindex"), tab_index);
+ }
+
+ /**
+ * Set the tabindex property
+ *
+ * \param ele The select element
+ * \param tab_index New tab index
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
dom_exception dom_html_select_element_set_tab_index(
- dom_html_select_element *ele, uint32_t tab_index);
- dom_html_select_element *ele, unsigned long tab_index)
++ dom_html_select_element *ele, int32_t tab_index)
+ {
- return dom_html_element_set_long_property(&ele->base, "tabindex",
++ return dom_html_element_set_int32_t_property(&ele->base, "tabindex",
+ SLEN("tabindex"), tab_index);
+ }
+
/* Functions */
- dom_exception dom_html_select_element_add(struct dom_html_element *ele,
- struct dom_html_element *before);
- dom_exception dom_html_element_blur(struct dom_html_select_element *ele);
- dom_exception dom_html_element_focus(struct dom_html_select_element *ele);
+ dom_exception dom__html_select_element_add(dom_html_select_element *select,
+ struct dom_html_element *ele, struct dom_html_element *before)
+ {
+ UNUSED(select);
+ UNUSED(ele);
+ UNUSED(before);
+
+ /** \todo Implement */
+ return DOM_NOT_SUPPORTED_ERR;
+ }
+
+ dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
+ long index)
+ {
+ dom_exception err;
- unsigned long len;
++ uint32_t len;
+ dom_node *option;
+
+ err = dom_html_select_element_get_length(ele, &len);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ /* Ensure index is in range */
- if ((unsigned long) index >= len)
++ if (index >= len)
+ return DOM_NO_ERR;
+
+ err = dom_html_options_collection_item(ele->options, index, &option);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ /** \todo What does remove mean? Remove option from tree and destroy it? */
+ return DOM_NOT_SUPPORTED_ERR;
+ }
+
+ /**
+ * Blur this control
+ *
+ * \param ele Element to blur
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+ dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele)
+ {
+ struct dom_document *doc = dom_node_get_owner(ele);
+ bool success = false;
+ assert(doc != NULL);
+
+ /** \todo Is this event (a) default (b) bubbling and (c) cancelable? */
+ return _dom_dispatch_generic_event(doc, (dom_event_target *) ele,
+ (const uint8_t *) "blur", SLEN("blur"), true,
+ true, &success);
+ }
+
+ /**
+ * Focus this control
+ *
+ * \param ele Element to focus
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+ dom_exception dom_html_select_element_focus(struct dom_html_select_element *ele)
+ {
+ struct dom_document *doc = dom_node_get_owner(ele);
+ bool success = false;
+ assert(doc != NULL);
+
+ /** \todo Is this event (a) default (b) bubbling and (c) cancelable? */
+ return _dom_dispatch_generic_event(doc, (dom_event_target *) ele,
+ (const uint8_t *) "focus", SLEN("focus"), true,
+ true, &success);
+ }
/*-----------------------------------------------------------------------*/
diff --cc src/html/html_select_element.h
index ae5c7dd,6fb7bf1..bd45614
--- a/src/html/html_select_element.h
+++ b/src/html/html_select_element.h
@@@ -16,8 -16,8 +16,10 @@@
struct dom_html_select_element {
struct dom_html_element base;
/**< The base class */
+ int32_t selected;
+ /**< The selected element's index */
+ dom_html_form_element *form;
+ /**< The form associated with select */
dom_html_options_collection *options;
/**< The options objects */
};
diff --cc test/INDEX
index 0000000,0000000..b3b14bc
new file mode 100644
--- /dev/null
+++ b/test/INDEX
@@@ -1,0 -1,0 +1,628 @@@
++#test desc dir
++level1_core_attrcreatedocumentfragment level1_core_attrcreatedocumentfragment
++level1_core_attrcreatetextnode level1_core_attrcreatetextnode
++level1_core_attrcreatetextnode2 level1_core_attrcreatetextnode2
++level1_core_attrdefaultvalue level1_core_attrdefaultvalue
++level1_core_attreffectivevalue level1_core_attreffectivevalue
++level1_core_attrname level1_core_attrname
++level1_core_attrnextsiblingnull level1_core_attrnextsiblingnull
++level1_core_attrparentnodenull level1_core_attrparentnodenull
++level1_core_attrprevioussiblingnull level1_core_attrprevioussiblingnull
++level1_core_attrspecifiedvalue level1_core_attrspecifiedvalue
++level1_core_attrspecifiedvaluechanged level1_core_attrspecifiedvaluechanged
++level1_core_cdatasectiongetdata level1_core_cdatasectiongetdata
++level1_core_characterdataappenddata level1_core_characterdataappenddata
++level1_core_characterdataappenddatagetdata level1_core_characterdataappenddatagetdata
++level1_core_characterdatadeletedatabegining level1_core_characterdatadeletedatabegining
++level1_core_characterdatadeletedataend level1_core_characterdatadeletedataend
++level1_core_characterdatadeletedataexceedslength level1_core_characterdatadeletedataexceedslength
++level1_core_characterdatadeletedatagetlengthanddata level1_core_characterdatadeletedatagetlengthanddata
++level1_core_characterdatadeletedatamiddle level1_core_characterdatadeletedatamiddle
++level1_core_characterdatagetdata level1_core_characterdatagetdata
++level1_core_characterdatagetlength level1_core_characterdatagetlength
++level1_core_characterdataindexsizeerrdeletedatacountnegative level1_core_characterdataindexsizeerrdeletedatacountnegative
++level1_core_characterdataindexsizeerrdeletedataoffsetgreater level1_core_characterdataindexsizeerrdeletedataoffsetgreater
++level1_core_characterdataindexsizeerrdeletedataoffsetnegative level1_core_characterdataindexsizeerrdeletedataoffsetnegative
++level1_core_characterdataindexsizeerrinsertdataoffsetgreater level1_core_characterdataindexsizeerrinsertdataoffsetgreater
++level1_core_characterdataindexsizeerrinsertdataoffsetnegative level1_core_characterdataindexsizeerrinsertdataoffsetnegative
++level1_core_characterdataindexsizeerrreplacedatacountnegative level1_core_characterdataindexsizeerrreplacedatacountnegative
++level1_core_characterdataindexsizeerrreplacedataoffsetgreater level1_core_characterdataindexsizeerrreplacedataoffsetgreater
++level1_core_characterdataindexsizeerrreplacedataoffsetnegative level1_core_characterdataindexsizeerrreplacedataoffsetnegative
++level1_core_characterdataindexsizeerrsubstringcountnegative level1_core_characterdataindexsizeerrsubstringcountnegative
++level1_core_characterdataindexsizeerrsubstringnegativeoffset level1_core_characterdataindexsizeerrsubstringnegativeoffset
++level1_core_characterdataindexsizeerrsubstringoffsetgreater level1_core_characterdataindexsizeerrsubstringoffsetgreater
++level1_core_characterdatainsertdatabeginning level1_core_characterdatainsertdatabeginning
++level1_core_characterdatainsertdataend level1_core_characterdatainsertdataend
++level1_core_characterdatainsertdatamiddle level1_core_characterdatainsertdatamiddle
++level1_core_characterdatareplacedatabegining level1_core_characterdatareplacedatabegining
++level1_core_characterdatareplacedataexceedslengthofarg level1_core_characterdatareplacedataexceedslengthofarg
++level1_core_characterdatasetnodevalue level1_core_characterdatasetnodevalue
++level1_core_characterdatasubstringexceedsvalue level1_core_characterdatasubstringexceedsvalue
++level1_core_characterdatasubstringvalue level1_core_characterdatasubstringvalue
++level1_core_commentgetcomment level1_core_commentgetcomment
++level1_core_documentcreateattribute level1_core_documentcreateattribute
++level1_core_documentcreatecdatasection level1_core_documentcreatecdatasection
++level1_core_documentcreatecomment level1_core_documentcreatecomment
++level1_core_documentcreateelement level1_core_documentcreateelement
++level1_core_documentcreateelementcasesensitive level1_core_documentcreateelementcasesensitive
++level1_core_documentcreateentityreference level1_core_documentcreateentityreference
++level1_core_documentcreateprocessinginstruction level1_core_documentcreateprocessinginstruction
++level1_core_documentcreatetextnode level1_core_documentcreatetextnode
++level1_core_documentgetdoctype level1_core_documentgetdoctype
++level1_core_documentgetdoctypenodtd level1_core_documentgetdoctypenodtd
++level1_core_documentgetelementsbytagnamelength level1_core_documentgetelementsbytagnamelength
++level1_core_documentgetelementsbytagnametotallength level1_core_documentgetelementsbytagnametotallength
++level1_core_documentgetelementsbytagnamevalue level1_core_documentgetelementsbytagnamevalue
++level1_core_documentgetrootnode level1_core_documentgetrootnode
++level1_core_documentinvalidcharacterexceptioncreateattribute level1_core_documentinvalidcharacterexceptioncreateattribute
++level1_core_documentinvalidcharacterexceptioncreateelement level1_core_documentinvalidcharacterexceptioncreateelement
++level1_core_documentinvalidcharacterexceptioncreateentref level1_core_documentinvalidcharacterexceptioncreateentref
++level1_core_documentinvalidcharacterexceptioncreateentref1 level1_core_documentinvalidcharacterexceptioncreateentref1
++level1_core_documentinvalidcharacterexceptioncreatepi level1_core_documentinvalidcharacterexceptioncreatepi
++level1_core_documentinvalidcharacterexceptioncreatepi1 level1_core_documentinvalidcharacterexceptioncreatepi1
++level1_core_documenttypegetdoctype level1_core_documenttypegetdoctype
++level1_core_elementaddnewattribute level1_core_elementaddnewattribute
++level1_core_elementassociatedattribute level1_core_elementassociatedattribute
++level1_core_elementchangeattributevalue level1_core_elementchangeattributevalue
++level1_core_elementcreatenewattribute level1_core_elementcreatenewattribute
++level1_core_elementgetattributenode level1_core_elementgetattributenode
++level1_core_elementgetattributenodenull level1_core_elementgetattributenodenull
++level1_core_elementgetelementempty level1_core_elementgetelementempty
++level1_core_elementgetelementsbytagname level1_core_elementgetelementsbytagname
++level1_core_elementgetelementsbytagnameaccessnodelist level1_core_elementgetelementsbytagnameaccessnodelist
++level1_core_elementgetelementsbytagnamenomatch level1_core_elementgetelementsbytagnamenomatch
++level1_core_elementgetelementsbytagnamespecialvalue level1_core_elementgetelementsbytagnamespecialvalue
++level1_core_elementgettagname level1_core_elementgettagname
++level1_core_elementinuseattributeerr level1_core_elementinuseattributeerr
++level1_core_elementinvalidcharacterexception level1_core_elementinvalidcharacterexception
++level1_core_elementnotfounderr level1_core_elementnotfounderr
++level1_core_elementremoveattributeaftercreate level1_core_elementremoveattributeaftercreate
++level1_core_elementremoveattributenode level1_core_elementremoveattributenode
++level1_core_elementreplaceattributewithself level1_core_elementreplaceattributewithself
++level1_core_elementreplaceexistingattribute level1_core_elementreplaceexistingattribute
++level1_core_elementreplaceexistingattributegevalue level1_core_elementreplaceexistingattributegevalue
++level1_core_elementretrieveallattributes level1_core_elementretrieveallattributes
++level1_core_elementretrieveattrvalue level1_core_elementretrieveattrvalue
++level1_core_elementretrievetagname level1_core_elementretrievetagname
++level1_core_elementsetattributenodenull level1_core_elementsetattributenodenull
++level1_core_elementwrongdocumenterr level1_core_elementwrongdocumenterr
++level1_core_hc_attrappendchild1 level1_core_hc_attrappendchild1
++level1_core_hc_attrappendchild2 level1_core_hc_attrappendchild2
++level1_core_hc_attrappendchild3 level1_core_hc_attrappendchild3
++level1_core_hc_attrappendchild4 level1_core_hc_attrappendchild4
++level1_core_hc_attrappendchild5 level1_core_hc_attrappendchild5
++level1_core_hc_attrappendchild6 level1_core_hc_attrappendchild6
++level1_core_hc_attrchildnodes1 level1_core_hc_attrchildnodes1
++level1_core_hc_attrchildnodes2 level1_core_hc_attrchildnodes2
++level1_core_hc_attrclonenode1 level1_core_hc_attrclonenode1
++level1_core_hc_attrcreatedocumentfragment level1_core_hc_attrcreatedocumentfragment
++level1_core_hc_attrcreatetextnode level1_core_hc_attrcreatetextnode
++level1_core_hc_attrcreatetextnode2 level1_core_hc_attrcreatetextnode2
++level1_core_hc_attreffectivevalue level1_core_hc_attreffectivevalue
++level1_core_hc_attrfirstchild level1_core_hc_attrfirstchild
++level1_core_hc_attrgetvalue1 level1_core_hc_attrgetvalue1
++level1_core_hc_attrhaschildnodes level1_core_hc_attrhaschildnodes
++level1_core_hc_attrinsertbefore1 level1_core_hc_attrinsertbefore1
++level1_core_hc_attrinsertbefore2 level1_core_hc_attrinsertbefore2
++level1_core_hc_attrinsertbefore3 level1_core_hc_attrinsertbefore3
++level1_core_hc_attrinsertbefore4 level1_core_hc_attrinsertbefore4
++level1_core_hc_attrinsertbefore5 level1_core_hc_attrinsertbefore5
++level1_core_hc_attrinsertbefore6 level1_core_hc_attrinsertbefore6
++level1_core_hc_attrinsertbefore7 level1_core_hc_attrinsertbefore7
++level1_core_hc_attrlastchild level1_core_hc_attrlastchild
++level1_core_hc_attrname level1_core_hc_attrname
++level1_core_hc_attrnextsiblingnull level1_core_hc_attrnextsiblingnull
++level1_core_hc_attrparentnodenull level1_core_hc_attrparentnodenull
++level1_core_hc_attrprevioussiblingnull level1_core_hc_attrprevioussiblingnull
++level1_core_hc_attrremovechild1 level1_core_hc_attrremovechild1
++level1_core_hc_attrremovechild2 level1_core_hc_attrremovechild2
++level1_core_hc_attrreplacechild1 level1_core_hc_attrreplacechild1
++level1_core_hc_attrreplacechild2 level1_core_hc_attrreplacechild2
++level1_core_hc_attrsetvalue1 level1_core_hc_attrsetvalue1
++level1_core_hc_attrsetvalue2 level1_core_hc_attrsetvalue2
++level1_core_hc_attrspecifiedvalue level1_core_hc_attrspecifiedvalue
++level1_core_hc_attrspecifiedvaluechanged level1_core_hc_attrspecifiedvaluechanged
++level1_core_hc_characterdataappenddata level1_core_hc_characterdataappenddata
++level1_core_hc_characterdataappenddatagetdata level1_core_hc_characterdataappenddatagetdata
++level1_core_hc_characterdatagetdata level1_core_hc_characterdatagetdata
++level1_core_hc_characterdatagetlength level1_core_hc_characterdatagetlength
++level1_core_hc_characterdataindexsizeerrdeletedatacountnegative level1_core_hc_characterdataindexsizeerrdeletedatacountnegative
++level1_core_hc_characterdataindexsizeerrdeletedataoffsetgreater level1_core_hc_characterdataindexsizeerrdeletedataoffsetgreater
++level1_core_hc_characterdataindexsizeerrdeletedataoffsetnegative level1_core_hc_characterdataindexsizeerrdeletedataoffsetnegative
++level1_core_hc_characterdataindexsizeerrinsertdataoffsetgreater level1_core_hc_characterdataindexsizeerrinsertdataoffsetgreater
++level1_core_hc_characterdataindexsizeerrinsertdataoffsetnegative level1_core_hc_characterdataindexsizeerrinsertdataoffsetnegative
++level1_core_hc_characterdataindexsizeerrreplacedatacountnegative level1_core_hc_characterdataindexsizeerrreplacedatacountnegative
++level1_core_hc_characterdataindexsizeerrreplacedataoffsetgreater level1_core_hc_characterdataindexsizeerrreplacedataoffsetgreater
++level1_core_hc_characterdataindexsizeerrreplacedataoffsetnegative level1_core_hc_characterdataindexsizeerrreplacedataoffsetnegative
++level1_core_hc_characterdataindexsizeerrsubstringcountnegative level1_core_hc_characterdataindexsizeerrsubstringcountnegative
++level1_core_hc_characterdataindexsizeerrsubstringnegativeoffset level1_core_hc_characterdataindexsizeerrsubstringnegativeoffset
++level1_core_hc_characterdataindexsizeerrsubstringoffsetgreater level1_core_hc_characterdataindexsizeerrsubstringoffsetgreater
++level1_core_hc_characterdatainsertdatabeginning level1_core_hc_characterdatainsertdatabeginning
++level1_core_hc_characterdatainsertdataend level1_core_hc_characterdatainsertdataend
++level1_core_hc_characterdatainsertdatamiddle level1_core_hc_characterdatainsertdatamiddle
++level1_core_hc_characterdatareplacedatabegining level1_core_hc_characterdatareplacedatabegining
++level1_core_hc_characterdatareplacedataexceedslengthofarg level1_core_hc_characterdatareplacedataexceedslengthofarg
++level1_core_hc_characterdatasetnodevalue level1_core_hc_characterdatasetnodevalue
++level1_core_hc_characterdatasubstringexceedsvalue level1_core_hc_characterdatasubstringexceedsvalue
++level1_core_hc_characterdatasubstringvalue level1_core_hc_characterdatasubstringvalue
++level1_core_hc_commentgetcomment level1_core_hc_commentgetcomment
++level1_core_hc_documentcreateattribute level1_core_hc_documentcreateattribute
++level1_core_hc_documentcreatecomment level1_core_hc_documentcreatecomment
++level1_core_hc_documentcreateelement level1_core_hc_documentcreateelement
++level1_core_hc_documentcreateelementcasesensitive level1_core_hc_documentcreateelementcasesensitive
++level1_core_hc_documentcreatetextnode level1_core_hc_documentcreatetextnode
++level1_core_hc_documentgetdoctype level1_core_hc_documentgetdoctype
++level1_core_hc_documentgetelementsbytagnamelength level1_core_hc_documentgetelementsbytagnamelength
++level1_core_hc_documentgetelementsbytagnametotallength level1_core_hc_documentgetelementsbytagnametotallength
++level1_core_hc_documentgetelementsbytagnamevalue level1_core_hc_documentgetelementsbytagnamevalue
++level1_core_hc_documentgetrootnode level1_core_hc_documentgetrootnode
++level1_core_hc_documentinvalidcharacterexceptioncreateattribute level1_core_hc_documentinvalidcharacterexceptioncreateattribute
++level1_core_hc_documentinvalidcharacterexceptioncreateattribute1 level1_core_hc_documentinvalidcharacterexceptioncreateattribute1
++level1_core_hc_documentinvalidcharacterexceptioncreateelement level1_core_hc_documentinvalidcharacterexceptioncreateelement
++level1_core_hc_documentinvalidcharacterexceptioncreateelement1 level1_core_hc_documentinvalidcharacterexceptioncreateelement1
++level1_core_hc_elementaddnewattribute level1_core_hc_elementaddnewattribute
++level1_core_hc_elementassociatedattribute level1_core_hc_elementassociatedattribute
++level1_core_hc_elementchangeattributevalue level1_core_hc_elementchangeattributevalue
++level1_core_hc_elementcreatenewattribute level1_core_hc_elementcreatenewattribute
++level1_core_hc_elementgetattributenode level1_core_hc_elementgetattributenode
++level1_core_hc_elementgetattributenodenull level1_core_hc_elementgetattributenodenull
++level1_core_hc_elementgetelementempty level1_core_hc_elementgetelementempty
++level1_core_hc_elementgetelementsbytagname level1_core_hc_elementgetelementsbytagname
++level1_core_hc_elementgetelementsbytagnameaccessnodelist level1_core_hc_elementgetelementsbytagnameaccessnodelist
++level1_core_hc_elementgetelementsbytagnamenomatch level1_core_hc_elementgetelementsbytagnamenomatch
++level1_core_hc_elementgetelementsbytagnamespecialvalue level1_core_hc_elementgetelementsbytagnamespecialvalue
++level1_core_hc_elementgettagname level1_core_hc_elementgettagname
++level1_core_hc_elementinuseattributeerr level1_core_hc_elementinuseattributeerr
++level1_core_hc_elementinvalidcharacterexception level1_core_hc_elementinvalidcharacterexception
++level1_core_hc_elementinvalidcharacterexception1 level1_core_hc_elementinvalidcharacterexception1
++level1_core_hc_elementnotfounderr level1_core_hc_elementnotfounderr
++level1_core_hc_elementremoveattribute level1_core_hc_elementremoveattribute
++level1_core_hc_elementremoveattributeaftercreate level1_core_hc_elementremoveattributeaftercreate
++level1_core_hc_elementremoveattributenode level1_core_hc_elementremoveattributenode
++level1_core_hc_elementreplaceattributewithself level1_core_hc_elementreplaceattributewithself
++level1_core_hc_elementreplaceexistingattribute level1_core_hc_elementreplaceexistingattribute
++level1_core_hc_elementreplaceexistingattributegevalue level1_core_hc_elementreplaceexistingattributegevalue
++level1_core_hc_elementretrieveattrvalue level1_core_hc_elementretrieveattrvalue
++level1_core_hc_elementretrievetagname level1_core_hc_elementretrievetagname
++level1_core_hc_elementsetattributenodenull level1_core_hc_elementsetattributenodenull
++level1_core_hc_elementwrongdocumenterr level1_core_hc_elementwrongdocumenterr
++level1_core_hc_namednodemapgetnameditem level1_core_hc_namednodemapgetnameditem
++level1_core_hc_namednodemapnotfounderr level1_core_hc_namednodemapnotfounderr
++level1_core_hc_namednodemapremovenameditem level1_core_hc_namednodemapremovenameditem
++level1_core_hc_namednodemapreturnnull level1_core_hc_namednodemapreturnnull
++level1_core_hc_namednodemapsetnameditem level1_core_hc_namednodemapsetnameditem
++level1_core_hc_namednodemapsetnameditemreturnvalue level1_core_hc_namednodemapsetnameditemreturnvalue
++level1_core_hc_namednodemapsetnameditemthatexists level1_core_hc_namednodemapsetnameditemthatexists
++level1_core_hc_namednodemapsetnameditemwithnewvalue level1_core_hc_namednodemapsetnameditemwithnewvalue
++level1_core_hc_namednodemapwrongdocumenterr level1_core_hc_namednodemapwrongdocumenterr
++level1_core_hc_nodeappendchild level1_core_hc_nodeappendchild
++level1_core_hc_nodeappendchildchildexists level1_core_hc_nodeappendchildchildexists
++level1_core_hc_nodeappendchilddocfragment level1_core_hc_nodeappendchilddocfragment
++level1_core_hc_nodeappendchildgetnodename level1_core_hc_nodeappendchildgetnodename
++level1_core_hc_nodeappendchildinvalidnodetype level1_core_hc_nodeappendchildinvalidnodetype
++level1_core_hc_nodeappendchildnewchilddiffdocument level1_core_hc_nodeappendchildnewchilddiffdocument
++level1_core_hc_nodeappendchildnodeancestor level1_core_hc_nodeappendchildnodeancestor
++level1_core_hc_nodeattributenodeattribute level1_core_hc_nodeattributenodeattribute
++level1_core_hc_nodeattributenodename level1_core_hc_nodeattributenodename
++level1_core_hc_nodeattributenodetype level1_core_hc_nodeattributenodetype
++level1_core_hc_nodeattributenodevalue level1_core_hc_nodeattributenodevalue
++level1_core_hc_nodechildnodes level1_core_hc_nodechildnodes
++level1_core_hc_nodechildnodesappendchild level1_core_hc_nodechildnodesappendchild
++level1_core_hc_nodeclonefalsenocopytext level1_core_hc_nodeclonefalsenocopytext
++level1_core_hc_nodeclonegetparentnull level1_core_hc_nodeclonegetparentnull
++level1_core_hc_nodeclonetruecopytext level1_core_hc_nodeclonetruecopytext
++level1_core_hc_nodecommentnodeattributes level1_core_hc_nodecommentnodeattributes
++level1_core_hc_nodecommentnodename level1_core_hc_nodecommentnodename
++level1_core_hc_nodecommentnodetype level1_core_hc_nodecommentnodetype
++level1_core_hc_nodecommentnodevalue level1_core_hc_nodecommentnodevalue
++level1_core_hc_nodedocumentfragmentnodename level1_core_hc_nodedocumentfragmentnodename
++level1_core_hc_nodedocumentfragmentnodetype level1_core_hc_nodedocumentfragmentnodetype
++level1_core_hc_nodedocumentfragmentnodevalue level1_core_hc_nodedocumentfragmentnodevalue
++level1_core_hc_nodedocumentnodeattribute level1_core_hc_nodedocumentnodeattribute
++level1_core_hc_nodedocumentnodename level1_core_hc_nodedocumentnodename
++level1_core_hc_nodedocumentnodetype level1_core_hc_nodedocumentnodetype
++level1_core_hc_nodedocumentnodevalue level1_core_hc_nodedocumentnodevalue
++level1_core_hc_nodeelementnodename level1_core_hc_nodeelementnodename
++level1_core_hc_nodeelementnodetype level1_core_hc_nodeelementnodetype
++level1_core_hc_nodeelementnodevalue level1_core_hc_nodeelementnodevalue
++level1_core_hc_nodegetfirstchild level1_core_hc_nodegetfirstchild
++level1_core_hc_nodegetfirstchildnull level1_core_hc_nodegetfirstchildnull
++level1_core_hc_nodegetlastchild level1_core_hc_nodegetlastchild
++level1_core_hc_nodegetlastchildnull level1_core_hc_nodegetlastchildnull
++level1_core_hc_nodegetnextsibling level1_core_hc_nodegetnextsibling
++level1_core_hc_nodegetnextsiblingnull level1_core_hc_nodegetnextsiblingnull
++level1_core_hc_nodegetownerdocument level1_core_hc_nodegetownerdocument
++level1_core_hc_nodegetownerdocumentnull level1_core_hc_nodegetownerdocumentnull
++level1_core_hc_nodegetprevioussibling level1_core_hc_nodegetprevioussibling
++level1_core_hc_nodegetprevioussiblingnull level1_core_hc_nodegetprevioussiblingnull
++level1_core_hc_nodehaschildnodes level1_core_hc_nodehaschildnodes
++level1_core_hc_nodehaschildnodesfalse level1_core_hc_nodehaschildnodesfalse
++level1_core_hc_nodeinsertbefore level1_core_hc_nodeinsertbefore
++level1_core_hc_nodeinsertbeforedocfragment level1_core_hc_nodeinsertbeforedocfragment
++level1_core_hc_nodeinsertbeforeinvalidnodetype level1_core_hc_nodeinsertbeforeinvalidnodetype
++level1_core_hc_nodeinsertbeforenewchilddiffdocument level1_core_hc_nodeinsertbeforenewchilddiffdocument
++level1_core_hc_nodeinsertbeforenewchildexists level1_core_hc_nodeinsertbeforenewchildexists
++level1_core_hc_nodeinsertbeforenodeancestor level1_core_hc_nodeinsertbeforenodeancestor
++level1_core_hc_nodeinsertbeforenodename level1_core_hc_nodeinsertbeforenodename
++level1_core_hc_nodeinsertbeforerefchildnonexistent level1_core_hc_nodeinsertbeforerefchildnonexistent
++level1_core_hc_nodeinsertbeforerefchildnull level1_core_hc_nodeinsertbeforerefchildnull
++level1_core_hc_nodelistindexnotzero level1_core_hc_nodelistindexnotzero
++level1_core_hc_nodelistreturnfirstitem level1_core_hc_nodelistreturnfirstitem
++level1_core_hc_nodelisttraverselist level1_core_hc_nodelisttraverselist
++level1_core_hc_nodeparentnode level1_core_hc_nodeparentnode
++level1_core_hc_nodeparentnodenull level1_core_hc_nodeparentnodenull
++level1_core_hc_noderemovechild level1_core_hc_noderemovechild
++level1_core_hc_noderemovechildgetnodename level1_core_hc_noderemovechildgetnodename
++level1_core_hc_noderemovechildnode level1_core_hc_noderemovechildnode
++level1_core_hc_noderemovechildoldchildnonexistent level1_core_hc_noderemovechildoldchildnonexistent
++level1_core_hc_nodereplacechild level1_core_hc_nodereplacechild
++level1_core_hc_nodereplacechildinvalidnodetype level1_core_hc_nodereplacechildinvalidnodetype
++level1_core_hc_nodereplacechildnewchilddiffdocument level1_core_hc_nodereplacechildnewchilddiffdocument
++level1_core_hc_nodereplacechildnewchildexists level1_core_hc_nodereplacechildnewchildexists
++level1_core_hc_nodereplacechildnodeancestor level1_core_hc_nodereplacechildnodeancestor
++level1_core_hc_nodereplacechildnodename level1_core_hc_nodereplacechildnodename
++level1_core_hc_nodereplacechildoldchildnonexistent level1_core_hc_nodereplacechildoldchildnonexistent
++level1_core_hc_nodetextnodeattribute level1_core_hc_nodetextnodeattribute
++level1_core_hc_nodetextnodename level1_core_hc_nodetextnodename
++level1_core_hc_nodetextnodetype level1_core_hc_nodetextnodetype
++level1_core_hc_nodetextnodevalue level1_core_hc_nodetextnodevalue
++level1_core_hc_nodevalue01 level1_core_hc_nodevalue01
++level1_core_hc_nodevalue02 level1_core_hc_nodevalue02
++level1_core_hc_nodevalue03 level1_core_hc_nodevalue03
++level1_core_hc_nodevalue04 level1_core_hc_nodevalue04
++level1_core_hc_nodevalue05 level1_core_hc_nodevalue05
++level1_core_hc_nodevalue06 level1_core_hc_nodevalue06
++level1_core_hc_textindexsizeerrnegativeoffset level1_core_hc_textindexsizeerrnegativeoffset
++level1_core_hc_textindexsizeerroffsetoutofbounds level1_core_hc_textindexsizeerroffsetoutofbounds
++level1_core_hc_textwithnomarkup level1_core_hc_textwithnomarkup
++level1_core_namednodemapgetnameditem level1_core_namednodemapgetnameditem
++level1_core_namednodemapnotfounderr level1_core_namednodemapnotfounderr
++level1_core_namednodemapremovenameditemreturnnodevalue level1_core_namednodemapremovenameditemreturnnodevalue
++level1_core_namednodemapreturnfirstitem level1_core_namednodemapreturnfirstitem
++level1_core_namednodemapreturnlastitem level1_core_namednodemapreturnlastitem
++level1_core_namednodemapreturnnull level1_core_namednodemapreturnnull
++level1_core_namednodemapsetnameditem level1_core_namednodemapsetnameditem
++level1_core_namednodemapsetnameditemreturnvalue level1_core_namednodemapsetnameditemreturnvalue
++level1_core_namednodemapsetnameditemthatexists level1_core_namednodemapsetnameditemthatexists
++level1_core_namednodemapsetnameditemwithnewvalue level1_core_namednodemapsetnameditemwithnewvalue
++level1_core_namednodemapwrongdocumenterr level1_core_namednodemapwrongdocumenterr
++level1_core_nodeappendchild level1_core_nodeappendchild
++level1_core_nodeappendchildchildexists level1_core_nodeappendchildchildexists
++level1_core_nodeappendchilddocfragment level1_core_nodeappendchilddocfragment
++level1_core_nodeappendchildgetnodename level1_core_nodeappendchildgetnodename
++level1_core_nodeappendchildinvalidnodetype level1_core_nodeappendchildinvalidnodetype
++level1_core_nodeappendchildnewchilddiffdocument level1_core_nodeappendchildnewchilddiffdocument
++level1_core_nodeappendchildnodeancestor level1_core_nodeappendchildnodeancestor
++level1_core_nodeappendchildnomodificationallowederrEE level1_core_nodeappendchildnomodificationallowederrEE
++level1_core_nodeattributenodeattribute level1_core_nodeattributenodeattribute
++level1_core_nodeattributenodename level1_core_nodeattributenodename
++level1_core_nodeattributenodetype level1_core_nodeattributenodetype
++level1_core_nodeattributenodevalue level1_core_nodeattributenodevalue
++level1_core_nodecdatasectionnodeattribute level1_core_nodecdatasectionnodeattribute
++level1_core_nodecdatasectionnodename level1_core_nodecdatasectionnodename
++level1_core_nodecdatasectionnodetype level1_core_nodecdatasectionnodetype
++level1_core_nodecdatasectionnodevalue level1_core_nodecdatasectionnodevalue
++level1_core_nodechildnodes level1_core_nodechildnodes
++level1_core_nodechildnodesempty level1_core_nodechildnodesempty
++level1_core_nodeclonefalsenocopytext level1_core_nodeclonefalsenocopytext
++level1_core_nodeclonegetparentnull level1_core_nodeclonegetparentnull
++level1_core_nodeclonetruecopytext level1_core_nodeclonetruecopytext
++level1_core_nodecommentnodeattributes level1_core_nodecommentnodeattributes
++level1_core_nodecommentnodename level1_core_nodecommentnodename
++level1_core_nodecommentnodetype level1_core_nodecommentnodetype
++level1_core_nodecommentnodevalue level1_core_nodecommentnodevalue
++level1_core_nodedocumentfragmentnodename level1_core_nodedocumentfragmentnodename
++level1_core_nodedocumentfragmentnodetype level1_core_nodedocumentfragmentnodetype
++level1_core_nodedocumentfragmentnodevalue level1_core_nodedocumentfragmentnodevalue
++level1_core_nodedocumentnodeattribute level1_core_nodedocumentnodeattribute
++level1_core_nodedocumentnodename level1_core_nodedocumentnodename
++level1_core_nodedocumentnodetype level1_core_nodedocumentnodetype
++level1_core_nodedocumentnodevalue level1_core_nodedocumentnodevalue
++level1_core_nodedocumenttypenodename level1_core_nodedocumenttypenodename
++level1_core_nodedocumenttypenodetype level1_core_nodedocumenttypenodetype
++level1_core_nodedocumenttypenodevalue level1_core_nodedocumenttypenodevalue
++level1_core_nodeelementnodeattributes level1_core_nodeelementnodeattributes
++level1_core_nodeelementnodename level1_core_nodeelementnodename
++level1_core_nodeelementnodetype level1_core_nodeelementnodetype
++level1_core_nodeelementnodevalue level1_core_nodeelementnodevalue
++level1_core_nodeentityreferencenodeattributes level1_core_nodeentityreferencenodeattributes
++level1_core_nodeentityreferencenodename level1_core_nodeentityreferencenodename
++level1_core_nodeentityreferencenodetype level1_core_nodeentityreferencenodetype
++level1_core_nodeentityreferencenodevalue level1_core_nodeentityreferencenodevalue
++level1_core_nodegetfirstchild level1_core_nodegetfirstchild
++level1_core_nodegetfirstchildnull level1_core_nodegetfirstchildnull
++level1_core_nodegetlastchild level1_core_nodegetlastchild
++level1_core_nodegetlastchildnull level1_core_nodegetlastchildnull
++level1_core_nodegetnextsibling level1_core_nodegetnextsibling
++level1_core_nodegetnextsiblingnull level1_core_nodegetnextsiblingnull
++level1_core_nodegetownerdocument level1_core_nodegetownerdocument
++level1_core_nodegetownerdocumentnull level1_core_nodegetownerdocumentnull
++level1_core_nodegetprevioussibling level1_core_nodegetprevioussibling
++level1_core_nodegetprevioussiblingnull level1_core_nodegetprevioussiblingnull
++level1_core_nodehaschildnodes level1_core_nodehaschildnodes
++level1_core_nodehaschildnodesfalse level1_core_nodehaschildnodesfalse
++level1_core_nodeinsertbeforedocfragment level1_core_nodeinsertbeforedocfragment
++level1_core_nodeinsertbeforeinvalidnodetype level1_core_nodeinsertbeforeinvalidnodetype
++level1_core_nodeinsertbeforenewchilddiffdocument level1_core_nodeinsertbeforenewchilddiffdocument
++level1_core_nodeinsertbeforenodeancestor level1_core_nodeinsertbeforenodeancestor
++level1_core_nodeinsertbeforenodename level1_core_nodeinsertbeforenodename
++level1_core_nodeinsertbeforenomodificationallowederrEE level1_core_nodeinsertbeforenomodificationallowederrEE
++level1_core_nodeinsertbeforerefchildnonexistent level1_core_nodeinsertbeforerefchildnonexistent
++level1_core_nodeinsertbeforerefchildnull level1_core_nodeinsertbeforerefchildnull
++level1_core_nodelistindexequalzero level1_core_nodelistindexequalzero
++level1_core_nodelistindexgetlengthofemptylist level1_core_nodelistindexgetlengthofemptylist
++level1_core_nodeparentnode level1_core_nodeparentnode
++level1_core_nodeparentnodenull level1_core_nodeparentnodenull
++level1_core_nodeprocessinginstructionnodeattributes level1_core_nodeprocessinginstructionnodeattributes
++level1_core_noderemovechild level1_core_noderemovechild
++level1_core_noderemovechildoldchildnonexistent level1_core_noderemovechildoldchildnonexistent
++level1_core_nodereplacechild level1_core_nodereplacechild
++level1_core_nodereplacechildinvalidnodetype level1_core_nodereplacechildinvalidnodetype
++level1_core_nodereplacechildnewchilddiffdocument level1_core_nodereplacechildnewchilddiffdocument
++level1_core_nodereplacechildnodeancestor level1_core_nodereplacechildnodeancestor
++level1_core_nodereplacechildnomodificationallowederr level1_core_nodereplacechildnomodificationallowederr
++level1_core_nodereplacechildnomodificationallowederrEE level1_core_nodereplacechildnomodificationallowederrEE
++level1_core_nodereplacechildoldchildnonexistent level1_core_nodereplacechildoldchildnonexistent
++level1_core_nodetextnodeattribute level1_core_nodetextnodeattribute
++level1_core_nodetextnodename level1_core_nodetextnodename
++level1_core_nodetextnodetype level1_core_nodetextnodetype
++level1_core_nodetextnodevalue level1_core_nodetextnodevalue
++level1_core_nodevalue01 level1_core_nodevalue01
++level1_core_nodevalue02 level1_core_nodevalue02
++level1_core_nodevalue03 level1_core_nodevalue03
++level1_core_nodevalue04 level1_core_nodevalue04
++level1_core_nodevalue05 level1_core_nodevalue05
++level1_core_nodevalue06 level1_core_nodevalue06
++level1_core_nodevalue09 level1_core_nodevalue09
++level1_core_textindexsizeerrnegativeoffset level1_core_textindexsizeerrnegativeoffset
++level1_core_textindexsizeerroffsetoutofbounds level1_core_textindexsizeerroffsetoutofbounds
++level1_core_textwithnomarkup level1_core_textwithnomarkup
++level1_html_HTMLBodyElement01 level1_html_HTMLBodyElement01
++level1_html_HTMLBodyElement02 level1_html_HTMLBodyElement02
++level1_html_HTMLBodyElement03 level1_html_HTMLBodyElement03
++level1_html_HTMLBodyElement04 level1_html_HTMLBodyElement04
++level1_html_HTMLBodyElement05 level1_html_HTMLBodyElement05
++level1_html_HTMLBodyElement06 level1_html_HTMLBodyElement06
++level1_html_HTMLButtonElement01 level1_html_HTMLButtonElement01
++level1_html_HTMLButtonElement02 level1_html_HTMLButtonElement02
++level1_html_HTMLButtonElement03 level1_html_HTMLButtonElement03
++level1_html_HTMLButtonElement04 level1_html_HTMLButtonElement04
++level1_html_HTMLButtonElement05 level1_html_HTMLButtonElement05
++level1_html_HTMLButtonElement06 level1_html_HTMLButtonElement06
++level1_html_HTMLButtonElement07 level1_html_HTMLButtonElement07
++level1_html_HTMLButtonElement08 level1_html_HTMLButtonElement08
++level1_html_HTMLCollection12 level1_html_HTMLCollection12
++level1_html_HTMLDocument01 level1_html_HTMLDocument01
++level1_html_HTMLDocument02 level1_html_HTMLDocument02
++level1_html_HTMLDocument03 level1_html_HTMLDocument03
++level1_html_HTMLElement01 level1_html_HTMLElement01
++level1_html_HTMLElement02 level1_html_HTMLElement02
++level1_html_HTMLElement03 level1_html_HTMLElement03
++level1_html_HTMLElement04 level1_html_HTMLElement04
++level1_html_HTMLElement05 level1_html_HTMLElement05
++level1_html_HTMLElement06 level1_html_HTMLElement06
++level1_html_HTMLElement07 level1_html_HTMLElement07
++level1_html_HTMLElement08 level1_html_HTMLElement08
++level1_html_HTMLElement09 level1_html_HTMLElement09
++level1_html_HTMLElement10 level1_html_HTMLElement10
++level1_html_HTMLElement100 level1_html_HTMLElement100
++level1_html_HTMLElement101 level1_html_HTMLElement101
++level1_html_HTMLElement102 level1_html_HTMLElement102
++level1_html_HTMLElement103 level1_html_HTMLElement103
++level1_html_HTMLElement104 level1_html_HTMLElement104
++level1_html_HTMLElement105 level1_html_HTMLElement105
++level1_html_HTMLElement106 level1_html_HTMLElement106
++level1_html_HTMLElement107 level1_html_HTMLElement107
++level1_html_HTMLElement108 level1_html_HTMLElement108
++level1_html_HTMLElement109 level1_html_HTMLElement109
++level1_html_HTMLElement11 level1_html_HTMLElement11
++level1_html_HTMLElement110 level1_html_HTMLElement110
++level1_html_HTMLElement111 level1_html_HTMLElement111
++level1_html_HTMLElement112 level1_html_HTMLElement112
++level1_html_HTMLElement113 level1_html_HTMLElement113
++level1_html_HTMLElement114 level1_html_HTMLElement114
++level1_html_HTMLElement115 level1_html_HTMLElement115
++level1_html_HTMLElement116 level1_html_HTMLElement116
++level1_html_HTMLElement117 level1_html_HTMLElement117
++level1_html_HTMLElement118 level1_html_HTMLElement118
++level1_html_HTMLElement119 level1_html_HTMLElement119
++level1_html_HTMLElement12 level1_html_HTMLElement12
++level1_html_HTMLElement120 level1_html_HTMLElement120
++level1_html_HTMLElement121 level1_html_HTMLElement121
++level1_html_HTMLElement122 level1_html_HTMLElement122
++level1_html_HTMLElement123 level1_html_HTMLElement123
++level1_html_HTMLElement124 level1_html_HTMLElement124
++level1_html_HTMLElement125 level1_html_HTMLElement125
++level1_html_HTMLElement126 level1_html_HTMLElement126
++level1_html_HTMLElement127 level1_html_HTMLElement127
++level1_html_HTMLElement128 level1_html_HTMLElement128
++level1_html_HTMLElement129 level1_html_HTMLElement129
++level1_html_HTMLElement13 level1_html_HTMLElement13
++level1_html_HTMLElement130 level1_html_HTMLElement130
++level1_html_HTMLElement131 level1_html_HTMLElement131
++level1_html_HTMLElement132 level1_html_HTMLElement132
++level1_html_HTMLElement133 level1_html_HTMLElement133
++level1_html_HTMLElement134 level1_html_HTMLElement134
++level1_html_HTMLElement135 level1_html_HTMLElement135
++level1_html_HTMLElement136 level1_html_HTMLElement136
++level1_html_HTMLElement137 level1_html_HTMLElement137
++level1_html_HTMLElement138 level1_html_HTMLElement138
++level1_html_HTMLElement139 level1_html_HTMLElement139
++level1_html_HTMLElement14 level1_html_HTMLElement14
++level1_html_HTMLElement140 level1_html_HTMLElement140
++level1_html_HTMLElement141 level1_html_HTMLElement141
++level1_html_HTMLElement142 level1_html_HTMLElement142
++level1_html_HTMLElement143 level1_html_HTMLElement143
++level1_html_HTMLElement144 level1_html_HTMLElement144
++level1_html_HTMLElement145 level1_html_HTMLElement145
++level1_html_HTMLElement15 level1_html_HTMLElement15
++level1_html_HTMLElement16 level1_html_HTMLElement16
++level1_html_HTMLElement17 level1_html_HTMLElement17
++level1_html_HTMLElement18 level1_html_HTMLElement18
++level1_html_HTMLElement19 level1_html_HTMLElement19
++level1_html_HTMLElement20 level1_html_HTMLElement20
++level1_html_HTMLElement21 level1_html_HTMLElement21
++level1_html_HTMLElement22 level1_html_HTMLElement22
++level1_html_HTMLElement23 level1_html_HTMLElement23
++level1_html_HTMLElement24 level1_html_HTMLElement24
++level1_html_HTMLElement25 level1_html_HTMLElement25
++level1_html_HTMLElement26 level1_html_HTMLElement26
++level1_html_HTMLElement27 level1_html_HTMLElement27
++level1_html_HTMLElement28 level1_html_HTMLElement28
++level1_html_HTMLElement29 level1_html_HTMLElement29
++level1_html_HTMLElement30 level1_html_HTMLElement30
++level1_html_HTMLElement31 level1_html_HTMLElement31
++level1_html_HTMLElement32 level1_html_HTMLElement32
++level1_html_HTMLElement33 level1_html_HTMLElement33
++level1_html_HTMLElement34 level1_html_HTMLElement34
++level1_html_HTMLElement35 level1_html_HTMLElement35
++level1_html_HTMLElement36 level1_html_HTMLElement36
++level1_html_HTMLElement37 level1_html_HTMLElement37
++level1_html_HTMLElement38 level1_html_HTMLElement38
++level1_html_HTMLElement39 level1_html_HTMLElement39
++level1_html_HTMLElement40 level1_html_HTMLElement40
++level1_html_HTMLElement41 level1_html_HTMLElement41
++level1_html_HTMLElement42 level1_html_HTMLElement42
++level1_html_HTMLElement43 level1_html_HTMLElement43
++level1_html_HTMLElement44 level1_html_HTMLElement44
++level1_html_HTMLElement45 level1_html_HTMLElement45
++level1_html_HTMLElement46 level1_html_HTMLElement46
++level1_html_HTMLElement47 level1_html_HTMLElement47
++level1_html_HTMLElement48 level1_html_HTMLElement48
++level1_html_HTMLElement49 level1_html_HTMLElement49
++level1_html_HTMLElement50 level1_html_HTMLElement50
++level1_html_HTMLElement51 level1_html_HTMLElement51
++level1_html_HTMLElement52 level1_html_HTMLElement52
++level1_html_HTMLElement53 level1_html_HTMLElement53
++level1_html_HTMLElement54 level1_html_HTMLElement54
++level1_html_HTMLElement55 level1_html_HTMLElement55
++level1_html_HTMLElement56 level1_html_HTMLElement56
++level1_html_HTMLElement57 level1_html_HTMLElement57
++level1_html_HTMLElement58 level1_html_HTMLElement58
++level1_html_HTMLElement59 level1_html_HTMLElement59
++level1_html_HTMLElement60 level1_html_HTMLElement60
++level1_html_HTMLElement61 level1_html_HTMLElement61
++level1_html_HTMLElement62 level1_html_HTMLElement62
++level1_html_HTMLElement63 level1_html_HTMLElement63
++level1_html_HTMLElement64 level1_html_HTMLElement64
++level1_html_HTMLElement65 level1_html_HTMLElement65
++level1_html_HTMLElement66 level1_html_HTMLElement66
++level1_html_HTMLElement67 level1_html_HTMLElement67
++level1_html_HTMLElement68 level1_html_HTMLElement68
++level1_html_HTMLElement69 level1_html_HTMLElement69
++level1_html_HTMLElement70 level1_html_HTMLElement70
++level1_html_HTMLElement71 level1_html_HTMLElement71
++level1_html_HTMLElement72 level1_html_HTMLElement72
++level1_html_HTMLElement73 level1_html_HTMLElement73
++level1_html_HTMLElement74 level1_html_HTMLElement74
++level1_html_HTMLElement75 level1_html_HTMLElement75
++level1_html_HTMLElement76 level1_html_HTMLElement76
++level1_html_HTMLElement77 level1_html_HTMLElement77
++level1_html_HTMLElement78 level1_html_HTMLElement78
++level1_html_HTMLElement79 level1_html_HTMLElement79
++level1_html_HTMLElement80 level1_html_HTMLElement80
++level1_html_HTMLElement81 level1_html_HTMLElement81
++level1_html_HTMLElement82 level1_html_HTMLElement82
++level1_html_HTMLElement83 level1_html_HTMLElement83
++level1_html_HTMLElement84 level1_html_HTMLElement84
++level1_html_HTMLElement85 level1_html_HTMLElement85
++level1_html_HTMLElement86 level1_html_HTMLElement86
++level1_html_HTMLElement87 level1_html_HTMLElement87
++level1_html_HTMLElement88 level1_html_HTMLElement88
++level1_html_HTMLElement89 level1_html_HTMLElement89
++level1_html_HTMLElement90 level1_html_HTMLElement90
++level1_html_HTMLElement91 level1_html_HTMLElement91
++level1_html_HTMLElement92 level1_html_HTMLElement92
++level1_html_HTMLElement93 level1_html_HTMLElement93
++level1_html_HTMLElement94 level1_html_HTMLElement94
++level1_html_HTMLElement95 level1_html_HTMLElement95
++level1_html_HTMLElement96 level1_html_HTMLElement96
++level1_html_HTMLElement97 level1_html_HTMLElement97
++level1_html_HTMLElement98 level1_html_HTMLElement98
++level1_html_HTMLElement99 level1_html_HTMLElement99
++level1_html_HTMLFormElement03 level1_html_HTMLFormElement03
++level1_html_HTMLFormElement04 level1_html_HTMLFormElement04
++level1_html_HTMLFormElement05 level1_html_HTMLFormElement05
++level1_html_HTMLFormElement06 level1_html_HTMLFormElement06
++level1_html_HTMLFormElement07 level1_html_HTMLFormElement07
++level1_html_HTMLFormElement08 level1_html_HTMLFormElement08
++level1_html_HTMLFormElement09 level1_html_HTMLFormElement09
++level1_html_HTMLFormElement10 level1_html_HTMLFormElement10
++level1_html_HTMLHeadElement01 level1_html_HTMLHeadElement01
++level1_html_HTMLHtmlElement01 level1_html_HTMLHtmlElement01
++level1_html_HTMLInputElement01 level1_html_HTMLInputElement01
++level1_html_HTMLInputElement02 level1_html_HTMLInputElement02
++level1_html_HTMLInputElement03 level1_html_HTMLInputElement03
++level1_html_HTMLInputElement04 level1_html_HTMLInputElement04
++level1_html_HTMLInputElement05 level1_html_HTMLInputElement05
++level1_html_HTMLInputElement06 level1_html_HTMLInputElement06
++level1_html_HTMLInputElement07 level1_html_HTMLInputElement07
++level1_html_HTMLInputElement08 level1_html_HTMLInputElement08
++level1_html_HTMLInputElement09 level1_html_HTMLInputElement09
++level1_html_HTMLInputElement10 level1_html_HTMLInputElement10
++level1_html_HTMLInputElement11 level1_html_HTMLInputElement11
++level1_html_HTMLInputElement12 level1_html_HTMLInputElement12
++level1_html_HTMLInputElement14 level1_html_HTMLInputElement14
++level1_html_HTMLInputElement15 level1_html_HTMLInputElement15
++level1_html_HTMLInputElement16 level1_html_HTMLInputElement16
++level1_html_HTMLInputElement17 level1_html_HTMLInputElement17
++level1_html_HTMLInputElement18 level1_html_HTMLInputElement18
++level1_html_HTMLInputElement19 level1_html_HTMLInputElement19
++level1_html_HTMLInputElement20 level1_html_HTMLInputElement20
++level1_html_HTMLInputElement22 level1_html_HTMLInputElement22
++level1_html_HTMLLinkElement01 level1_html_HTMLLinkElement01
++level1_html_HTMLLinkElement02 level1_html_HTMLLinkElement02
++level1_html_HTMLLinkElement03 level1_html_HTMLLinkElement03
++level1_html_HTMLLinkElement04 level1_html_HTMLLinkElement04
++level1_html_HTMLLinkElement05 level1_html_HTMLLinkElement05
++level1_html_HTMLLinkElement06 level1_html_HTMLLinkElement06
++level1_html_HTMLLinkElement07 level1_html_HTMLLinkElement07
++level1_html_HTMLLinkElement08 level1_html_HTMLLinkElement08
++level1_html_HTMLLinkElement09 level1_html_HTMLLinkElement09
++level1_html_HTMLMetaElement01 level1_html_HTMLMetaElement01
++level1_html_HTMLMetaElement02 level1_html_HTMLMetaElement02
++level1_html_HTMLMetaElement03 level1_html_HTMLMetaElement03
++level1_html_HTMLMetaElement04 level1_html_HTMLMetaElement04
++level1_html_HTMLOptGroupElement01 level1_html_HTMLOptGroupElement01
++level1_html_HTMLOptGroupElement02 level1_html_HTMLOptGroupElement02
++level1_html_HTMLOptionElement01 level1_html_HTMLOptionElement01
++level1_html_HTMLOptionElement02 level1_html_HTMLOptionElement02
++level1_html_HTMLOptionElement03 level1_html_HTMLOptionElement03
++level1_html_HTMLOptionElement04 level1_html_HTMLOptionElement04
++level1_html_HTMLOptionElement06 level1_html_HTMLOptionElement06
++level1_html_HTMLOptionElement07 level1_html_HTMLOptionElement07
++level1_html_HTMLOptionElement08 level1_html_HTMLOptionElement08
++level1_html_HTMLOptionElement09 level1_html_HTMLOptionElement09
++level1_html_HTMLSelectElement01 level1_html_HTMLSelectElement01
++level1_html_HTMLSelectElement02 level1_html_HTMLSelectElement02
++level1_html_HTMLSelectElement03 level1_html_HTMLSelectElement03
++level1_html_HTMLSelectElement04 level1_html_HTMLSelectElement04
++level1_html_HTMLSelectElement06 level1_html_HTMLSelectElement06
++level1_html_HTMLSelectElement07 level1_html_HTMLSelectElement07
++level1_html_HTMLSelectElement08 level1_html_HTMLSelectElement08
++level1_html_HTMLSelectElement09 level1_html_HTMLSelectElement09
++level1_html_HTMLSelectElement10 level1_html_HTMLSelectElement10
++level1_html_HTMLSelectElement11 level1_html_HTMLSelectElement11
++level1_html_HTMLSelectElement12 level1_html_HTMLSelectElement12
++level1_html_HTMLSelectElement13 level1_html_HTMLSelectElement13
++level1_html_HTMLSelectElement14 level1_html_HTMLSelectElement14
++level1_html_HTMLSelectElement15 level1_html_HTMLSelectElement15
++level1_html_HTMLTextAreaElement01 level1_html_HTMLTextAreaElement01
++level1_html_HTMLTextAreaElement02 level1_html_HTMLTextAreaElement02
++level1_html_HTMLTextAreaElement03 level1_html_HTMLTextAreaElement03
++level1_html_HTMLTextAreaElement04 level1_html_HTMLTextAreaElement04
++level1_html_HTMLTextAreaElement05 level1_html_HTMLTextAreaElement05
++level1_html_HTMLTextAreaElement06 level1_html_HTMLTextAreaElement06
++level1_html_HTMLTextAreaElement07 level1_html_HTMLTextAreaElement07
++level1_html_HTMLTextAreaElement08 level1_html_HTMLTextAreaElement08
++level1_html_HTMLTextAreaElement09 level1_html_HTMLTextAreaElement09
++level1_html_HTMLTextAreaElement10 level1_html_HTMLTextAreaElement10
++level1_html_HTMLTextAreaElement11 level1_html_HTMLTextAreaElement11
++level1_html_HTMLTextAreaElement12 level1_html_HTMLTextAreaElement12
++level1_html_HTMLTextAreaElement13 level1_html_HTMLTextAreaElement13
++level1_html_HTMLTextAreaElement14 level1_html_HTMLTextAreaElement14
++level1_html_HTMLTextAreaElement15 level1_html_HTMLTextAreaElement15
++level1_html_HTMLTitleElement01 level1_html_HTMLTitleElement01
++level2_core_documentgetelementbyid01 level2_core_documentgetelementbyid01
++level2_core_documentgetelementsbytagnameNS02 level2_core_documentgetelementsbytagnameNS02
++level2_core_getElementById02 level2_core_getElementById02
diff --cc test/testcases/tests/level1/html/HTMLSelectElement05.xml.int-broken
index 0000000,0000000..16c78e1
new file mode 100644
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement05.xml.int-broken
@@@ -1,0 -1,0 +1,43 @@@
++<?xml version="1.0" encoding="UTF-8"?>
++<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
++
++<!--
++
++Copyright (c) 2001 World Wide Web Consortium,
++(Massachusetts Institute of Technology, Institut National de
++Recherche en Informatique et en Automatique, Keio University). All
++Rights Reserved. This program is distributed under the W3C's Software
++Intellectual Property License. This program is distributed in the
++hope that it will be useful, but WITHOUT ANY WARRANTY; without even
++the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
++PURPOSE.
++
++See W3C License http://www.w3.org/Consortium/Legal/ for more details.
++
++-->
++<!DOCTYPE test SYSTEM "dom1.dtd">
++<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement05">
++<metadata>
++<title>HTMLSelectElement05</title>
++<creator>NIST</creator>
++<description>
++ The length attribute specifies the number of options in this select.
++
++ Retrieve the length attribute from the first SELECT element and
++ examine its value.
++</description>
++<contributor>Mary Brady</contributor>
++<date qualifier="created">2002-02-22</date>
++<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-5933486"/>
++</metadata>
++<var name="nodeList" type="NodeList"/>
++<var name="testNode" type="Node"/>
++<var name="vlength" type="int"/>
++<var name="doc" type="Document"/>
++<load var="doc" href="select" willBeModified="false"/>
++<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
++<assertSize collection="nodeList" size="3" id="Asize"/>
++<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
++<length interface="HTMLSelectElement" obj="testNode" var="vlength"/>
++<assertEquals actual="vlength" expected="5" id="lengthLink" ignoreCase="false"/>
++</test>
diff --cc test/testcases/tests/level1/html/HTMLSelectElement17.xml.int-broken
index 0000000,0000000..03549ff
new file mode 100644
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement17.xml.int-broken
@@@ -1,0 -1,0 +1,43 @@@
++<?xml version="1.0" encoding="UTF-8"?>
++<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
++
++<!--
++
++Copyright (c) 2004 World Wide Web Consortium,
++(Massachusetts Institute of Technology, Institut National de
++Recherche en Informatique et en Automatique, Keio University). All
++Rights Reserved. This program is distributed under the W3C's Software
++Intellectual Property License. This program is distributed in the
++hope that it will be useful, but WITHOUT ANY WARRANTY; without even
++the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
++PURPOSE.
++
++See W3C License http://www.w3.org/Consortium/Legal/ for more details.
++
++-->
++<!DOCTYPE test SYSTEM "dom1.dtd">
++<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement17">
++<metadata>
++<title>HTMLSelectElement17</title>
++<creator>Curt Arnold</creator>
++<description>
++Removes a non-existant option using HTMLSelectElement.remove.
++</description>
++<date qualifier="created">2004-03-18</date>
++<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-3340..."/>
++</metadata>
++<var name="nodeList" type="NodeList"/>
++<var name="testNode" type="Node"/>
++<var name="doc" type="Document"/>
++<var name="optLength" type="int"/>
++<var name="selected" type="int"/>
++<load var="doc" href="select" willBeModified="true"/>
++<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
++<assertSize collection="nodeList" size="3" id="Asize"/>
++<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
++<remove interface="HTMLSelectElement" obj="testNode" index="6"/>
++<length interface="HTMLSelectElement" obj="testNode" var="optLength"/>
++<assertEquals actual="optLength" expected="5" id="optLength" ignoreCase="false"/>
++<selectedIndex interface="HTMLSelectElement" obj="testNode" var="selected"/>
++<assertEquals actual="selected" expected="0" id="selected" ignoreCase="false"/>
++</test>
diff --cc test/testutils/foreach.c
index e068201,bbc8a47..05d7f2a
--- a/test/testutils/foreach.c
+++ b/test/testutils/foreach.c
@@@ -97,3 -102,24 +102,24 @@@ bool _get_next_domnamednodemap(dom_name
return true;
}
+
+ bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret)
+ {
+ dom_exception err;
- unsigned long len;
++ uint32_t len;
+
+ err = dom_html_collection_get_length(coll, &len);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ if (*iterator >= len)
+ return false;
+
+ err = dom_html_collection_item(coll, (*iterator), ret);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ (*iterator)++;
+
+ return true;
+ }
commitdiff http://git.netsurf-browser.org/libdom.git/commitdiff/55e606196f97c2b2ded7...
commit 55e606196f97c2b2ded75933f7643d3acf57033f
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Add select and option .h files to install target.
diff --git a/Makefile b/Makefile
index 6918bb7..b9e1d8b 100644
--- a/Makefile
+++ b/Makefile
@@ -91,7 +91,9 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_meta_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_form_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_button_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_input_element.h
+INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_select_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_text_area_element.h
+INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_option_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_opt_group_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) /lib/pkgconfig:lib$(COMPONENT).pc.in
-----------------------------------------------------------------------
Summary of changes:
Makefile | 2 +
bindings/hubbub/parser.c | 12 +-
include/dom/dom.h | 2 +
include/dom/html/html_option_element.h | 52 ++-
include/dom/html/html_select_element.h | 55 ++-
src/html/Makefile | 4 +-
src/html/html_collection.c | 4 +-
src/html/html_document.c | 8 +
src/html/html_document_strings.h | 7 +
src/html/html_option_element.c | 359 +++++++++++-
src/html/html_option_element.h | 49 ++-
src/html/html_options_collection.c | 68 +++-
src/html/html_select_element.c | 412 +++++++++++--
src/html/html_select_element.h | 9 +
test/DOMTSHandler.pm | 7 +
test/INDEX | 628 ++++++++++++++++++++
...Element01.xml.kfail => HTMLOptionElement01.xml} | 0
...Element02.xml.kfail => HTMLOptionElement02.xml} | 0
...Element03.xml.kfail => HTMLOptionElement03.xml} | 0
...Element04.xml.kfail => HTMLOptionElement04.xml} | 0
...Element06.xml.kfail => HTMLOptionElement06.xml} | 0
...Element07.xml.kfail => HTMLOptionElement07.xml} | 0
...Element08.xml.kfail => HTMLOptionElement08.xml} | 0
...Element09.xml.kfail => HTMLOptionElement09.xml} | 0
...Element01.xml.kfail => HTMLSelectElement01.xml} | 0
...Element02.xml.kfail => HTMLSelectElement02.xml} | 0
...Element03.xml.kfail => HTMLSelectElement03.xml} | 0
...Element04.xml.kfail => HTMLSelectElement04.xml} | 0
...ml.kfail => HTMLSelectElement05.xml.int-broken} | 0
...Element06.xml.kfail => HTMLSelectElement06.xml} | 0
...Element07.xml.kfail => HTMLSelectElement07.xml} | 0
...Element08.xml.kfail => HTMLSelectElement08.xml} | 0
...Element09.xml.kfail => HTMLSelectElement09.xml} | 0
...Element10.xml.kfail => HTMLSelectElement10.xml} | 0
...Element11.xml.kfail => HTMLSelectElement11.xml} | 0
...Element12.xml.kfail => HTMLSelectElement12.xml} | 0
...Element13.xml.kfail => HTMLSelectElement13.xml} | 0
...Element14.xml.kfail => HTMLSelectElement14.xml} | 0
...Element15.xml.kfail => HTMLSelectElement15.xml} | 0
...ml.kfail => HTMLSelectElement17.xml.int-broken} | 0
test/testutils/foreach.c | 26 +
test/testutils/foreach.h | 4 +
42 files changed, 1625 insertions(+), 83 deletions(-)
create mode 100644 test/INDEX
rename test/testcases/tests/level1/html/{HTMLOptionElement01.xml.kfail => HTMLOptionElement01.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLOptionElement02.xml.kfail => HTMLOptionElement02.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLOptionElement03.xml.kfail => HTMLOptionElement03.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLOptionElement04.xml.kfail => HTMLOptionElement04.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLOptionElement06.xml.kfail => HTMLOptionElement06.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLOptionElement07.xml.kfail => HTMLOptionElement07.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLOptionElement08.xml.kfail => HTMLOptionElement08.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLOptionElement09.xml.kfail => HTMLOptionElement09.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement01.xml.kfail => HTMLSelectElement01.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement02.xml.kfail => HTMLSelectElement02.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement03.xml.kfail => HTMLSelectElement03.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement04.xml.kfail => HTMLSelectElement04.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement05.xml.kfail => HTMLSelectElement05.xml.int-broken} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement06.xml.kfail => HTMLSelectElement06.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement07.xml.kfail => HTMLSelectElement07.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement08.xml.kfail => HTMLSelectElement08.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement09.xml.kfail => HTMLSelectElement09.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement10.xml.kfail => HTMLSelectElement10.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement11.xml.kfail => HTMLSelectElement11.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement12.xml.kfail => HTMLSelectElement12.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement13.xml.kfail => HTMLSelectElement13.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement14.xml.kfail => HTMLSelectElement14.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement15.xml.kfail => HTMLSelectElement15.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement17.xml.kfail => HTMLSelectElement17.xml.int-broken} (100%)
diff --git a/Makefile b/Makefile
index 6918bb7..b9e1d8b 100644
--- a/Makefile
+++ b/Makefile
@@ -91,7 +91,9 @@ INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_meta_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_form_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_button_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_input_element.h
+INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_select_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_text_area_element.h
+INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_option_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_opt_group_element.h
INSTALL_ITEMS := $(INSTALL_ITEMS) /lib/pkgconfig:lib$(COMPONENT).pc.in
diff --git a/bindings/hubbub/parser.c b/bindings/hubbub/parser.c
index 6174823..8296fe8 100644
--- a/bindings/hubbub/parser.c
+++ b/bindings/hubbub/parser.c
@@ -26,6 +26,7 @@
#include "html/html_document.h"
#include "html/html_button_element.h"
#include "html/html_input_element.h"
+#include "html/html_select_element.h"
#include "html/html_text_area_element.h"
#include <libwapcaplet/libwapcaplet.h>
@@ -496,6 +497,15 @@ static hubbub_error form_associate(void *parser, void *form, void *node)
return HUBBUB_UNKNOWN;
}
} else if (dom_string_caseless_isequal(ele->name,
+ doc->memoised[hds_SELECT])) {
+ err = _dom_html_select_element_set_form(
+ (dom_html_select_element *)node, form_ele);
+ if (err != DOM_NO_ERR) {
+ dom_parser->msg(DOM_MSG_CRITICAL, dom_parser->mctx,
+ "Error in form_associate");
+ return HUBBUB_UNKNOWN;
+ }
+ } else if (dom_string_caseless_isequal(ele->name,
doc->memoised[hds_TEXTAREA])) {
err = _dom_html_text_area_element_set_form(
(dom_html_text_area_element *)node, form_ele);
@@ -505,7 +515,7 @@ static hubbub_error form_associate(void *parser, void *form, void *node)
return HUBBUB_UNKNOWN;
}
}
-
+
return HUBBUB_OK;
}
diff --git a/include/dom/dom.h b/include/dom/dom.h
index b68085a..f9d8817 100644
--- a/include/dom/dom.h
+++ b/include/dom/dom.h
@@ -52,6 +52,8 @@
#include <dom/html/html_button_element.h>
#include <dom/html/html_text_area_element.h>
#include <dom/html/html_opt_group_element.h>
+#include <dom/html/html_option_element.h>
+#include <dom/html/html_select_element.h>
/* DOM Events header */
#include <dom/events/events.h>
diff --git a/include/dom/html/html_option_element.h b/include/dom/html/html_option_element.h
index 2e182d5..53ba286 100644
--- a/include/dom/html/html_option_element.h
+++ b/include/dom/html/html_option_element.h
@@ -2,6 +2,56 @@
* This file is part of libdom.
* Licensed under the MIT License,
* http://www.opensource.org/licenses/mit-license.php
- * Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
+ * Copyright 2012 John-Mark Bell <jmb(a)netsurf-browser.org>
*/
+#ifndef dom_html_option_element_h_
+#define dom_html_option_element_h_
+
+#include <stdbool.h>
+#include <dom/core/exceptions.h>
+#include <dom/core/string.h>
+#include <dom/html/html_form_element.h>
+
+typedef struct dom_html_option_element dom_html_option_element;
+
+dom_exception dom_html_option_element_get_form(
+ dom_html_option_element *option, dom_html_form_element **form);
+
+dom_exception dom_html_option_element_get_default_selected(
+ dom_html_option_element *option, bool *default_selected);
+
+dom_exception dom_html_option_element_set_default_selected(
+ dom_html_option_element *option, bool default_selected);
+
+dom_exception dom_html_option_element_get_text(
+ dom_html_option_element *option, dom_string **text);
+
+dom_exception dom_html_option_element_get_index(
+ dom_html_option_element *option, unsigned long *index);
+
+dom_exception dom_html_option_element_get_disabled(
+ dom_html_option_element *option, bool *disabled);
+
+dom_exception dom_html_option_element_set_disabled(
+ dom_html_option_element *option, bool disabled);
+
+dom_exception dom_html_option_element_get_label(
+ dom_html_option_element *option, dom_string **label);
+
+dom_exception dom_html_option_element_set_label(
+ dom_html_option_element *option, dom_string *label);
+
+dom_exception dom_html_option_element_get_selected(
+ dom_html_option_element *option, bool *selected);
+
+dom_exception dom_html_option_element_set_selected(
+ dom_html_option_element *option, bool selected);
+
+dom_exception dom_html_option_element_get_value(
+ dom_html_option_element *option, dom_string **value);
+
+dom_exception dom_html_option_element_set_value(
+ dom_html_option_element *option, dom_string *value);
+
+#endif
diff --git a/include/dom/html/html_select_element.h b/include/dom/html/html_select_element.h
index a052be1..6999368 100644
--- a/include/dom/html/html_select_element.h
+++ b/include/dom/html/html_select_element.h
@@ -12,44 +12,77 @@
#include <dom/core/exceptions.h>
+#include <dom/html/html_form_element.h>
+
typedef struct dom_html_select_element dom_html_select_element;
struct dom_html_options_collection;
struct dom_html_element;
+dom_exception dom_html_select_element_get_type(
+ dom_html_select_element *ele, dom_string **type);
+
dom_exception dom_html_select_element_get_selected_index(
- dom_html_select_element *ele, uint32_t *index);
+ dom_html_select_element *ele, int32_t *index);
dom_exception dom_html_select_element_set_selected_index(
- dom_html_select_element *ele, uint32_t index);
+ dom_html_select_element *ele, int32_t index);
+
+dom_exception dom_html_select_element_get_value(
+ dom_html_select_element *ele, dom_string **value);
+dom_exception dom_html_select_element_set_value(
+ dom_html_select_element *ele, dom_string *value);
+
dom_exception dom_html_select_element_get_length(
dom_html_select_element *ele, uint32_t *len);
dom_exception dom_html_select_element_set_length(
dom_html_select_element *ele, uint32_t len);
-dom_exception dom_html_select_element_get_options(
+
+dom_exception dom_html_select_element_get_form(
+ dom_html_select_element *ele, dom_html_form_element **form);
+
+dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col);
+#define dom_html_select_element_get_options(e, c) \
+ dom__html_select_element_get_options((dom_html_select_element *) (e), \
+ (struct dom_html_options_collection **) (c))
+
dom_exception dom_html_select_element_get_disabled(
dom_html_select_element *ele, bool *disabled);
dom_exception dom_html_select_element_set_disabled(
dom_html_select_element *ele, bool disabled);
+
dom_exception dom_html_select_element_get_multiple(
dom_html_select_element *ele, bool *multiple);
dom_exception dom_html_select_element_set_multiple(
dom_html_select_element *ele, bool multiple);
+
+dom_exception dom_html_select_element_get_name(
+ dom_html_select_element *ele, dom_string **name);
+dom_exception dom_html_select_element_set_name(
+ dom_html_select_element *ele, dom_string *name);
+
dom_exception dom_html_select_element_get_size(
- dom_html_select_element *ele, uint32_t *size);
+ dom_html_select_element *ele, int32_t *size);
dom_exception dom_html_select_element_set_size(
- dom_html_select_element *ele, uint32_t size);
+ dom_html_select_element *ele, int32_t size);
+
dom_exception dom_html_select_element_get_tab_index(
- dom_html_select_element *ele, uint32_t *tab_index);
+ dom_html_select_element *ele, int32_t *tab_index);
dom_exception dom_html_select_element_set_tab_index(
- dom_html_select_element *ele, uint32_t tab_index);
+ dom_html_select_element *ele, int32_t tab_index);
/* Functions */
-dom_exception dom_html_select_element_add(struct dom_html_element *ele,
- struct dom_html_element *before);
-dom_exception dom_html_element_blur(struct dom_html_select_element *ele);
-dom_exception dom_html_element_focus(struct dom_html_select_element *ele);
+dom_exception dom__html_select_element_add(dom_html_select_element *select,
+ struct dom_html_element *ele, struct dom_html_element *before);
+#define dom_html_select_element_add(s, e, b) \
+ dom__html_select_element_add((dom_html_select_element *) (s), \
+ (struct dom_html_element *) (e), \
+ (struct dom_html_element *) (b))
+dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
+ long index);
+dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele);
+dom_exception dom_html_select_element_focus(struct dom_html_select_element *ele);
#endif
diff --git a/src/html/Makefile b/src/html/Makefile
index 3001c59..4e1b4c4 100644
--- a/src/html/Makefile
+++ b/src/html/Makefile
@@ -6,9 +6,9 @@ DIR_SOURCES := \
html_base_element.c html_isindex_element.c html_style_element.c \
html_body_element.c html_form_element.c html_select_element.c \
html_button_element.c html_input_element.c html_text_area_element.c \
- html_opt_group_element.c
+ html_opt_group_element.c html_option_element.c
-UNINMPLEMENTED_SOURCES := html_option_element.c \
+UNINMPLEMENTED_SOURCES := \
html_label_element.c html_fieldset_element.c \
html_legend_element.c html_ulist_element.c html_olist_element.c \
html_dlist_element.c html_directory_element.c html_menu_element.c \
diff --git a/src/html/html_collection.c b/src/html/html_collection.c
index 704d384..a99297f 100644
--- a/src/html/html_collection.c
+++ b/src/html/html_collection.c
@@ -214,9 +214,7 @@ dom_exception dom_html_collection_named_item(dom_html_collection *col,
struct dom_node_internal *n = col->root;
dom_exception err;
- while (*node != NULL) {
- assert(n != NULL);
-
+ while (n != NULL) {
if (n->type == DOM_ELEMENT_NODE &&
col->ic(n, col->ctx) == true) {
dom_string *id = NULL;
diff --git a/src/html/html_document.c b/src/html/html_document.c
index 1b238e9..a27fcaa 100644
--- a/src/html/html_document.c
+++ b/src/html/html_document.c
@@ -22,6 +22,8 @@
#include "html/html_input_element.h"
#include "html/html_text_area_element.h"
#include "html/html_opt_group_element.h"
+#include "html/html_option_element.h"
+#include "html/html_select_element.h"
#include "core/string.h"
#include "utils/namespace.h"
@@ -210,6 +212,12 @@ _dom_html_document_create_element_internal(dom_html_document *html,
} else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OPTGROUP])) {
exc = _dom_html_opt_group_element_create(html, namespace, prefix,
(dom_html_opt_group_element **) result);
+ } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OPTION])) {
+ exc = _dom_html_option_element_create(html, namespace, prefix,
+ (dom_html_option_element **) result);
+ } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_SELECT])) {
+ exc = _dom_html_select_element_create(html, namespace, prefix,
+ (dom_html_select_element **) result);
} else {
exc = _dom_html_element_create(html, tag_name, namespace,
prefix, result);
diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h
index bd33866..fa9c4e4 100644
--- a/src/html/html_document_strings.h
+++ b/src/html/html_document_strings.h
@@ -88,6 +88,13 @@ HTML_DOCUMENT_STRINGS_ACTION(use_map,usemap)
HTML_DOCUMENT_STRINGS_ACTION1(textarea)
/* HTMLOptGroupElement attributes */
HTML_DOCUMENT_STRINGS_ACTION1(label)
+/* HTMLOptionElement attributes */
+/* HTML_DOCUMENT_STRINGS_ACTION1(label) */
+HTML_DOCUMENT_STRINGS_ACTION1(selected)
+/* HTML_DOCUMENT_STRINGS_ACTION1(value) */
+/* HTMLSelectElement strings */
+HTML_DOCUMENT_STRINGS_ACTION(select_multiple,select-multiple)
+HTML_DOCUMENT_STRINGS_ACTION(select_one,select-one)
/* Names for elements which get specialised. */
HTML_DOCUMENT_STRINGS_ACTION1(HTML)
HTML_DOCUMENT_STRINGS_ACTION1(HEAD)
diff --git a/src/html/html_option_element.c b/src/html/html_option_element.c
index 2e182d5..1584bac 100644
--- a/src/html/html_option_element.c
+++ b/src/html/html_option_element.c
@@ -2,6 +2,363 @@
* This file is part of libdom.
* Licensed under the MIT License,
* http://www.opensource.org/licenses/mit-license.php
- * Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
+ * Copyright 2012 John-Mark Bell <jmb(a)netsurf-browser.org>
*/
+#include <assert.h>
+#include <stdlib.h>
+
+#include <dom/html/html_option_element.h>
+#include <dom/html/html_select_element.h>
+
+#include "html/html_document.h"
+#include "html/html_option_element.h"
+
+#include "core/node.h"
+#include "core/attr.h"
+#include "utils/utils.h"
+
+static struct dom_element_protected_vtable _protect_vtable = {
+ {
+ DOM_NODE_PROTECT_VTABLE_HTML_OPTION_ELEMENT
+ },
+ DOM_HTML_OPTION_ELEMENT_PROTECT_VTABLE
+};
+
+/**
+ * Create a dom_html_option_element object
+ *
+ * \param doc The document object
+ * \param ele The returned element object
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception _dom_html_option_element_create(struct dom_html_document *doc,
+ dom_string *namespace, dom_string *prefix,
+ struct dom_html_option_element **ele)
+{
+ struct dom_node_internal *node;
+
+ *ele = malloc(sizeof(dom_html_option_element));
+ if (*ele == NULL)
+ return DOM_NO_MEM_ERR;
+
+ /* Set up vtables */
+ node = (struct dom_node_internal *) *ele;
+ node->base.vtable = &_dom_html_element_vtable;
+ node->vtable = &_protect_vtable;
+
+ return _dom_html_option_element_initialise(doc, namespace, prefix, *ele);
+}
+
+/**
+ * Initialise a dom_html_option_element object
+ *
+ * \param doc The document object
+ * \param ele The dom_html_option_element object
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception _dom_html_option_element_initialise(struct dom_html_document *doc,
+ dom_string *namespace, dom_string *prefix,
+ struct dom_html_option_element *ele)
+{
+ ele->default_selected = false;
+ ele->default_selected_set = false;
+
+ return _dom_html_element_initialise(doc, &ele->base,
+ doc->memoised[hds_OPTION],
+ namespace, prefix);
+}
+
+/**
+ * Finalise a dom_html_option_element object
+ *
+ * \param ele The dom_html_option_element object
+ */
+void _dom_html_option_element_finalise(struct dom_html_option_element *ele)
+{
+ _dom_html_element_finalise(&ele->base);
+}
+
+/**
+ * Destroy a dom_html_option_element object
+ *
+ * \param ele The dom_html_option_element object
+ */
+void _dom_html_option_element_destroy(struct dom_html_option_element *ele)
+{
+ _dom_html_option_element_finalise(ele);
+ free(ele);
+}
+
+/*-----------------------------------------------------------------------*/
+/* Public APIs */
+
+dom_exception dom_html_option_element_get_form(
+ dom_html_option_element *option, dom_html_form_element **form)
+{
+ dom_html_document *doc;
+ dom_node_internal *select = ((dom_node_internal *) option)->parent;
+
+ doc = (dom_html_document *) ((dom_node_internal *) option)->owner;
+
+ /* Search ancestor chain for SELECT element */
+ while (select != NULL) {
+ if (select->type == DOM_ELEMENT_NODE &&
+ dom_string_caseless_isequal(select->name,
+ doc->memoised[hds_SELECT]))
+ break;
+
+ select = select->parent;
+ }
+
+ if (select != NULL) {
+ return dom_html_select_element_get_form((dom_html_select_element *) select,
+ form);
+ }
+
+ *form = NULL;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Get the defaultSelected property
+ *
+ * \param option The dom_html_option_element object
+ * \param default_selected Pointer to location to receive value
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_option_element_get_default_selected(
+ dom_html_option_element *option, bool *default_selected)
+{
+ *default_selected = option->default_selected;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Set the defaultSelected property
+ *
+ * \param option The dom_html_option_element object
+ * \param default_selected New value for property
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_option_element_set_default_selected(
+ dom_html_option_element *option, bool default_selected)
+{
+ option->default_selected = default_selected;
+ option->default_selected_set = true;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Get the text contained in the option
+ *
+ * \param option The dom_html_option_element object
+ * \param text Pointer to location to receive text
+ * \return DOM_NO_ERR on success, appropriate error otherwise
+ */
+dom_exception dom_html_option_element_get_text(
+ dom_html_option_element *option, dom_string **text)
+{
+ return dom_node_get_text_content(option, text);
+}
+
+/**
+ * Obtain the index of this option in its parent
+ *
+ * \param option The dom_html_option_element object
+ * \param index Pointer to receive zero-based index
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_option_element_get_index(
+ dom_html_option_element *option, unsigned long *index)
+{
+ UNUSED(option);
+ UNUSED(index);
+
+ /** \todo Implement */
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Get the disabled property
+ *
+ * \param ele The dom_html_option_element object
+ * \param disabled The returned status
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception dom_html_option_element_get_disabled(dom_html_option_element *ele,
+ bool *disabled)
+{
+ return dom_html_element_get_bool_property(&ele->base, "disabled",
+ SLEN("disabled"), disabled);
+}
+
+/**
+ * Set the disabled property
+ *
+ * \param ele The dom_html_option_element object
+ * \param disabled The status
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception dom_html_option_element_set_disabled(dom_html_option_element *ele,
+ bool disabled)
+{
+ return dom_html_element_set_bool_property(&ele->base, "disabled",
+ SLEN("disabled"), disabled);
+}
+
+/**
+ * Get the label property
+ *
+ * \param option The dom_html_option_element object
+ * \param label Pointer to location to receive label
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_option_element_get_label(
+ dom_html_option_element *option, dom_string **label)
+{
+ dom_html_document *doc;
+
+ doc = (dom_html_document *) ((dom_node_internal *) option)->owner;
+
+ return dom_element_get_attribute(option,
+ doc->memoised[hds_label], label);
+}
+
+/**
+ * Set the label property
+ *
+ * \param option The dom_html_option_element object
+ * \param label Label value
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_option_element_set_label(
+ dom_html_option_element *option, dom_string *label)
+{
+ dom_html_document *doc;
+
+ doc = (dom_html_document *) ((dom_node_internal *) option)->owner;
+
+ return dom_element_set_attribute(option,
+ doc->memoised[hds_label], label);
+}
+
+/**
+ * Get the selected property
+ *
+ * \param ele The dom_html_option_element object
+ * \param selected The returned status
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception dom_html_option_element_get_selected(dom_html_option_element *ele,
+ bool *selected)
+{
+ return dom_html_element_get_bool_property(&ele->base, "selected",
+ SLEN("selected"), selected);
+}
+
+/**
+ * Set the selected property
+ *
+ * \param ele The dom_html_option_element object
+ * \param selected The status
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception dom_html_option_element_set_selected(dom_html_option_element *ele,
+ bool selected)
+{
+ return dom_html_element_set_bool_property(&ele->base, "selected",
+ SLEN("selected"), selected);
+}
+
+/**
+ * Get the value property
+ *
+ * \param option The dom_html_option_element object
+ * \param value Pointer to location to receive property value
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_option_element_get_value(
+ dom_html_option_element *option, dom_string **value)
+{
+ dom_html_document *doc;
+ bool has_value = false;
+ dom_exception err;
+
+ doc = (dom_html_document *) ((dom_node_internal *) option)->owner;
+
+ err = dom_element_has_attribute(option,
+ doc->memoised[hds_value], &has_value);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ if (has_value) {
+ return dom_element_get_attribute(option,
+ doc->memoised[hds_value], value);
+ }
+
+ return dom_html_option_element_get_text(option, value);
+}
+
+/**
+ * Set the value property
+ *
+ * \param option The dom_html_option_element object
+ * \param value Property value
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_option_element_set_value(
+ dom_html_option_element *option, dom_string *value)
+{
+ dom_html_document *doc;
+
+ doc = (dom_html_document *) ((dom_node_internal *) option)->owner;
+
+ return dom_element_set_attribute(option,
+ doc->memoised[hds_value], value);
+}
+
+/*------------------------------------------------------------------------*/
+/* The protected virtual functions */
+
+/* The virtual function used to parse attribute value, see src/core/element.c
+ * for detail */
+dom_exception _dom_html_option_element_parse_attribute(dom_element *ele,
+ dom_string *name, dom_string *value,
+ dom_string **parsed)
+{
+ dom_html_option_element *option = (dom_html_option_element *)ele;
+ dom_html_document *html = (dom_html_document *)(ele->base.owner);
+
+ /** \todo Find some way to do the equiv for default_selected to be
+ * false instead of true. Some end-tag hook in the binding perhaps?
+ */
+ if (dom_string_caseless_isequal(name, html->memoised[hds_selected])) {
+ if (option->default_selected_set == false) {
+ option->default_selected = true;
+ option->default_selected_set = true;
+ }
+ }
+
+ dom_string_ref(value);
+ *parsed = value;
+
+ return DOM_NO_ERR;
+}
+
+/* The virtual destroy function, see src/core/node.c for detail */
+void _dom_virtual_html_option_element_destroy(dom_node_internal *node)
+{
+ _dom_html_option_element_destroy((struct dom_html_option_element *) node);
+}
+
+/* The virtual copy function, see src/core/node.c for detail */
+dom_exception _dom_html_option_element_copy(dom_node_internal *old,
+ dom_node_internal **copy)
+{
+ return _dom_html_element_copy(old, copy);
+}
+
diff --git a/src/html/html_option_element.h b/src/html/html_option_element.h
index 2e182d5..bc8ff6f 100644
--- a/src/html/html_option_element.h
+++ b/src/html/html_option_element.h
@@ -2,6 +2,53 @@
* This file is part of libdom.
* Licensed under the MIT License,
* http://www.opensource.org/licenses/mit-license.php
- * Copyright 2009 Bo Yang <struggleyb.nku(a)gmail.com>
+ * Copyright 2012 John-Mark Bell <jmb(a)netsurf-browser.org>
*/
+#ifndef dom_internal_html_option_element_h_
+#define dom_internal_html_option_element_h_
+
+#include <dom/html/html_option_element.h>
+
+#include "html/html_element.h"
+
+struct dom_html_option_element {
+ struct dom_html_element base;
+ /**< The base class */
+ bool default_selected; /**< Initial selected value */
+ bool default_selected_set; /**< Whether default_selected has been set */
+};
+
+/* Create a dom_html_option_element object */
+dom_exception _dom_html_option_element_create(struct dom_html_document *doc,
+ dom_string *namespace, dom_string *prefix,
+ struct dom_html_option_element **ele);
+
+/* Initialise a dom_html_option_element object */
+dom_exception _dom_html_option_element_initialise(struct dom_html_document *doc,
+ dom_string *namespace, dom_string *prefix,
+ struct dom_html_option_element *ele);
+
+/* Finalise a dom_html_option_element object */
+void _dom_html_option_element_finalise(struct dom_html_option_element *ele);
+
+/* Destroy a dom_html_option_element object */
+void _dom_html_option_element_destroy(struct dom_html_option_element *ele);
+
+/* The protected virtual functions */
+dom_exception _dom_html_option_element_parse_attribute(dom_element *ele,
+ dom_string *name, dom_string *value,
+ dom_string **parsed);
+void _dom_virtual_html_option_element_destroy(dom_node_internal *node);
+dom_exception _dom_html_option_element_copy(dom_node_internal *old,
+ dom_node_internal **copy);
+
+#define DOM_HTML_OPTION_ELEMENT_PROTECT_VTABLE \
+ _dom_html_option_element_parse_attribute
+
+#define DOM_NODE_PROTECT_VTABLE_HTML_OPTION_ELEMENT \
+ _dom_virtual_html_option_element_destroy, \
+ _dom_html_option_element_copy
+
+#endif
+
diff --git a/src/html/html_options_collection.c b/src/html/html_options_collection.c
index 0583d9c..85001ad 100644
--- a/src/html/html_options_collection.c
+++ b/src/html/html_options_collection.c
@@ -142,7 +142,73 @@ dom_exception dom_html_options_collection_item(dom_html_options_collection *col,
dom_exception dom_html_options_collection_named_item(dom_html_options_collection *col,
dom_string *name, struct dom_node **node)
{
- return dom_html_collection_named_item(&col->base, name, node);
+ struct dom_node_internal *n = col->base.root;
+ dom_string *kname;
+ dom_exception err;
+
+ /* Search for an element with an appropriate ID */
+ err = dom_html_collection_named_item(&col->base, name, node);
+ if (err == DOM_NO_ERR && *node != NULL)
+ return err;
+
+ /* Didn't find one, so consider name attribute */
+ err = dom_string_create_interned((const uint8_t *) "name", SLEN("name"),
+ &kname);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ while (n != NULL) {
+ if (n->type == DOM_ELEMENT_NODE &&
+ col->base.ic(n, col->base.ctx) == true) {
+ dom_string *nval = NULL;
+
+ err = dom_element_get_attribute(n, kname, &nval);
+ if (err != DOM_NO_ERR) {
+ dom_string_unref(kname);
+ return err;
+ }
+
+ if (nval != NULL && dom_string_isequal(name, nval)) {
+ *node = (struct dom_node *) n;
+ dom_node_ref(n);
+ dom_string_unref(nval);
+ dom_string_unref(kname);
+
+ return DOM_NO_ERR;
+ }
+
+ if (nval != NULL)
+ dom_string_unref(nval);
+ }
+
+ /* Depth first iterating */
+ if (n->first_child != NULL) {
+ n = n->first_child;
+ } else if (n->next != NULL) {
+ n = n->next;
+ } else {
+ /* No children and siblings */
+ struct dom_node_internal *parent = n->parent;
+
+ while (parent != col->base.root &&
+ n == parent->last_child) {
+ n = parent;
+ parent = parent->parent;
+ }
+
+ if (parent == col->base.root)
+ n = NULL;
+ else
+ n = n->next;
+ }
+ }
+
+ dom_string_unref(kname);
+
+ /* Not found the target node */
+ *node = NULL;
+
+ return DOM_NO_ERR;
}
/**
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index 58c08bc..4efffb9 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -8,6 +8,9 @@
#include <assert.h>
#include <stdlib.h>
+#include <dom/html/html_option_element.h>
+#include <dom/html/html_options_collection.h>
+
#include "html/html_document.h"
#include "html/html_select_element.h"
@@ -31,6 +34,7 @@ static bool is_option(struct dom_node_internal *node, void *ctx);
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
+ dom_string *namespace, dom_string *prefix,
struct dom_html_select_element **ele)
{
struct dom_node_internal *node;
@@ -44,7 +48,7 @@ dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_select_element_initialise(doc, *ele);
+ return _dom_html_select_element_initialise(doc, namespace, prefix, *ele);
}
/**
@@ -55,23 +59,15 @@ dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
dom_exception _dom_html_select_element_initialise(struct dom_html_document *doc,
+ dom_string *namespace, dom_string *prefix,
struct dom_html_select_element *ele)
{
- dom_string *name = NULL;
- dom_exception err;
-
- err = dom_string_create((const uint8_t *) "SELECT", SLEN("SELECT"),
- &name);
- if (err != DOM_NO_ERR)
- return err;
-
- err = _dom_html_element_initialise(doc, &ele->base, name, NULL, NULL);
- dom_string_unref(name);
-
- ele->selected = -1;
+ ele->form = NULL;
ele->options = NULL;
- return err;
+ return _dom_html_element_initialise(doc, &ele->base,
+ doc->memoised[hds_SELECT],
+ namespace, prefix);
}
/**
@@ -81,6 +77,9 @@ dom_exception _dom_html_select_element_initialise(struct dom_html_document *doc,
*/
void _dom_html_select_element_finalise(struct dom_html_select_element *ele)
{
+ if (ele->options != NULL)
+ dom_html_options_collection_unref(ele->options);
+
_dom_html_element_finalise(&ele->base);
}
@@ -129,6 +128,51 @@ dom_exception _dom_html_select_element_copy(dom_node_internal *old,
/*-----------------------------------------------------------------------*/
/* Public APIs */
+static dom_exception _dom_html_select_element_ensure_collection(
+ dom_html_select_element *ele)
+{
+ dom_exception err;
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
+
+ assert(doc != NULL);
+
+ if (ele->options == NULL) {
+ err = _dom_html_options_collection_create(doc,
+ (dom_node_internal *) ele,
+ is_option, ele, &ele->options);
+ if (err != DOM_NO_ERR)
+ return err;
+ }
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Get the type of selection control
+ *
+ * \param ele The Select element
+ * \param type Pointer to location to receive type
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_select_element_get_type(
+ dom_html_select_element *ele, dom_string **type)
+{
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
+ dom_exception err;
+ bool multiple;
+
+ err = dom_html_select_element_get_multiple(ele, &multiple);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ if (multiple)
+ *type = dom_string_ref(doc->memoised[hds_select_multiple]);
+ else
+ *type = dom_string_ref(doc->memoised[hds_select_one]);
+
+ return DOM_NO_ERR;
+}
+
/**
* Get the ordinal index of the selected option
*
@@ -137,9 +181,38 @@ dom_exception _dom_html_select_element_copy(dom_node_internal *old,
* \return DOM_NO_ERR on success.
*/
dom_exception dom_html_select_element_get_selected_index(
- dom_html_select_element *ele, uint32_t *index)
+ dom_html_select_element *ele, int32_t *index)
{
- *index = ele->selected;
+ dom_exception err;
+ uint32_t idx, len;
+ dom_node *option;
+ bool selected;
+
+ err = dom_html_select_element_get_length(ele, &len);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ for (idx = 0; idx < len; idx++) {
+ err = dom_html_options_collection_item(ele->options,
+ idx, &option);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ err = dom_html_option_element_get_selected(
+ (dom_html_option_element *) option, &selected);
+
+ dom_node_unref(option);
+
+ if (err != DOM_NO_ERR)
+ return err;
+
+ if (selected) {
+ *index = idx;
+ return DOM_NO_ERR;
+ }
+ }
+
+ *index = -1;
return DOM_NO_ERR;
}
@@ -152,14 +225,81 @@ dom_exception dom_html_select_element_get_selected_index(
* \return DOM_NO_ERR on success.
*/
dom_exception dom_html_select_element_set_selected_index(
- dom_html_select_element *ele, uint32_t index)
+ dom_html_select_element *ele, int32_t index)
{
- ele->selected = index;
+ UNUSED(ele);
+ UNUSED(index);
+
+ /** \todo Implement */
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Get the value of this form control
+ *
+ * \param ele The select element
+ * \param value Pointer to location to receive value
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_select_element_get_value(
+ dom_html_select_element *ele, dom_string **value)
+{
+ dom_exception err;
+ uint32_t idx, len;
+ dom_node *option;
+ bool selected;
+
+ err = dom_html_select_element_get_length(ele, &len);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ for (idx = 0; idx < len; idx++) {
+ err = dom_html_options_collection_item(ele->options,
+ idx, &option);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ err = dom_html_option_element_get_selected(
+ (dom_html_option_element *) option, &selected);
+ if (err != DOM_NO_ERR) {
+ dom_node_unref(option);
+ return err;
+ }
+
+ if (selected) {
+ err = dom_html_option_element_get_value(
+ (dom_html_option_element *) option,
+ value);
+
+ dom_node_unref(option);
+
+ return err;
+ }
+ }
+
+ *value = NULL;
return DOM_NO_ERR;
}
/**
+ * Set the value of this form control
+ *
+ * \param ele The select element
+ * \param value New value
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_select_element_set_value(
+ dom_html_select_element *ele, dom_string *value)
+{
+ UNUSED(ele);
+ UNUSED(value);
+
+ /** \todo Implement */
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
* Get the number of options in this select element
*
* \param ele The element object
@@ -170,16 +310,10 @@ dom_exception dom_html_select_element_get_length(
dom_html_select_element *ele, uint32_t *len)
{
dom_exception err;
- dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
- assert(doc != NULL);
- if (ele->options == NULL) {
- err = _dom_html_options_collection_create(doc,
- (dom_node_internal *) ele,
- is_option, NULL, &ele->options);
- if (err != DOM_NO_ERR)
- return err;
- }
+ err = _dom_html_select_element_ensure_collection(ele);
+ if (err != DOM_NO_ERR)
+ return err;
return dom_html_options_collection_get_length(ele->options, len);
}
@@ -203,30 +337,39 @@ dom_exception dom_html_select_element_set_length(
}
/**
+ * Get the form associated with a select
+ *
+ * \param select The dom_html_select_element object
+ * \param form Pointer to location to receive form
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_select_element_get_form(
+ dom_html_select_element *select, dom_html_form_element **form)
+{
+ *form = select->form;
+
+ if (*form != NULL)
+ dom_node_ref(*form);
+
+ return DOM_NO_ERR;
+}
+
+/**
* The collection of OPTION elements of this element
*
* \param ele The element object
* \param col THe returned collection object
* \return DOM_NO_ERR on success.
*/
-dom_exception dom_html_select_element_get_options(
+dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col)
{
dom_exception err;
- dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
- assert(doc != NULL);
- if (ele->options == NULL) {
- err = _dom_html_options_collection_create(doc,
- (dom_node_internal *) ele,
- is_option, NULL, &ele->options);
- if (err != DOM_NO_ERR)
- return err;
-
- *col = ele->options;
- return DOM_NO_ERR;
- }
+ err = _dom_html_select_element_ensure_collection(ele);
+ if (err != DOM_NO_ERR)
+ return err;
dom_html_options_collection_ref(ele->options);
*col = ele->options;
@@ -290,20 +433,166 @@ dom_exception dom_html_select_element_set_multiple(
"multiple", SLEN("multiple"), multiple);
}
+/**
+ * Get the name property
+ *
+ * \param ele The select element
+ * \param name Pointer to location to receive name
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_select_element_get_name(
+ dom_html_select_element *ele, dom_string **name)
+{
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
+
+ return dom_element_get_attribute(ele,
+ doc->memoised[hds_name], name);
+}
+
+/**
+ * Set the name property
+ *
+ * \param ele The select element
+ * \param name New name
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
+dom_exception dom_html_select_element_set_name(
+ dom_html_select_element *ele, dom_string *name)
+{
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
+
+ return dom_element_set_attribute(ele,
+ doc->memoised[hds_name], name);
+
+}
+
+/**
+ * Get the size property
+ *
+ * \param ele The select element
+ * \param size Pointer to location to receive size
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
dom_exception dom_html_select_element_get_size(
- dom_html_select_element *ele, uint32_t *size);
+ dom_html_select_element *ele, int32_t *size)
+{
+ return dom_html_element_get_int32_t_property(&ele->base, "size",
+ SLEN("size"), size);
+}
+
+/**
+ * Set the size property
+ *
+ * \param ele The select element
+ * \param size New size
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
dom_exception dom_html_select_element_set_size(
- dom_html_select_element *ele, uint32_t size);
+ dom_html_select_element *ele, int32_t size)
+{
+ return dom_html_element_set_int32_t_property(&ele->base, "size",
+ SLEN("size"), size);
+}
+
+/**
+ * Get the tabindex property
+ *
+ * \param ele The select element
+ * \param tab_index Pointer to location to receive tab index
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
dom_exception dom_html_select_element_get_tab_index(
- dom_html_select_element *ele, uint32_t *tab_index);
+ dom_html_select_element *ele, int32_t *tab_index)
+{
+ return dom_html_element_get_int32_t_property(&ele->base, "tabindex",
+ SLEN("tabindex"), tab_index);
+}
+
+/**
+ * Set the tabindex property
+ *
+ * \param ele The select element
+ * \param tab_index New tab index
+ * \return DOM_NO_ERR on success, appropriate error otherwise.
+ */
dom_exception dom_html_select_element_set_tab_index(
- dom_html_select_element *ele, uint32_t tab_index);
+ dom_html_select_element *ele, int32_t tab_index)
+{
+ return dom_html_element_set_int32_t_property(&ele->base, "tabindex",
+ SLEN("tabindex"), tab_index);
+}
+
/* Functions */
-dom_exception dom_html_select_element_add(struct dom_html_element *ele,
- struct dom_html_element *before);
-dom_exception dom_html_element_blur(struct dom_html_select_element *ele);
-dom_exception dom_html_element_focus(struct dom_html_select_element *ele);
+dom_exception dom__html_select_element_add(dom_html_select_element *select,
+ struct dom_html_element *ele, struct dom_html_element *before)
+{
+ UNUSED(select);
+ UNUSED(ele);
+ UNUSED(before);
+
+ /** \todo Implement */
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
+ long index)
+{
+ dom_exception err;
+ uint32_t len;
+ dom_node *option;
+
+ err = dom_html_select_element_get_length(ele, &len);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ /* Ensure index is in range */
+ if (index >= len)
+ return DOM_NO_ERR;
+
+ err = dom_html_options_collection_item(ele->options, index, &option);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ /** \todo What does remove mean? Remove option from tree and destroy it? */
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Blur this control
+ *
+ * \param ele Element to blur
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele)
+{
+ struct dom_document *doc = dom_node_get_owner(ele);
+ bool success = false;
+ assert(doc != NULL);
+
+ /** \todo Is this event (a) default (b) bubbling and (c) cancelable? */
+ return _dom_dispatch_generic_event(doc, (dom_event_target *) ele,
+ (const uint8_t *) "blur", SLEN("blur"), true,
+ true, &success);
+}
+
+/**
+ * Focus this control
+ *
+ * \param ele Element to focus
+ * \return DOM_NO_ERR on success, appropriate dom_exception on failure.
+ */
+dom_exception dom_html_select_element_focus(struct dom_html_select_element *ele)
+{
+ struct dom_document *doc = dom_node_get_owner(ele);
+ bool success = false;
+ assert(doc != NULL);
+
+ /** \todo Is this event (a) default (b) bubbling and (c) cancelable? */
+ return _dom_dispatch_generic_event(doc, (dom_event_target *) ele,
+ (const uint8_t *) "focus", SLEN("focus"), true,
+ true, &success);
+}
/*-----------------------------------------------------------------------*/
@@ -312,21 +601,20 @@ dom_exception dom_html_element_focus(struct dom_html_select_element *ele);
/* Test whether certain node is an option node */
bool is_option(struct dom_node_internal *node, void *ctx)
{
- dom_string *name = NULL;
- bool ret = false;
- dom_exception err;
-
- UNUSED(ctx);
+ dom_html_select_element *ele = ctx;
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
- err = dom_string_create((const uint8_t *) "OPTION", SLEN("OPTION"),
- &name);
- if (err != DOM_NO_ERR)
- return false;
+ if (dom_string_isequal(node->name, doc->memoised[hds_OPTION]))
+ return true;
- if (dom_string_isequal(name, node->name))
- ret = true;
-
- dom_string_unref(name);
+ return false;
+}
+
+dom_exception _dom_html_select_element_set_form(
+ dom_html_select_element *select, dom_html_form_element *form)
+{
+ select->form = form;
- return ret;
+ return DOM_NO_ERR;
}
+
diff --git a/src/html/html_select_element.h b/src/html/html_select_element.h
index ae5c7dd..bd45614 100644
--- a/src/html/html_select_element.h
+++ b/src/html/html_select_element.h
@@ -18,16 +18,20 @@ struct dom_html_select_element {
/**< The base class */
int32_t selected;
/**< The selected element's index */
+ dom_html_form_element *form;
+ /**< The form associated with select */
dom_html_options_collection *options;
/**< The options objects */
};
/* Create a dom_html_select_element object */
dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
+ dom_string *namespace, dom_string *prefix,
struct dom_html_select_element **ele);
/* Initialise a dom_html_select_element object */
dom_exception _dom_html_select_element_initialise(struct dom_html_document *doc,
+ dom_string *namespace, dom_string *prefix,
struct dom_html_select_element *ele);
/* Finalise a dom_html_select_element object */
@@ -51,5 +55,10 @@ dom_exception _dom_html_select_element_copy(dom_node_internal *old,
_dom_virtual_html_select_element_destroy, \
_dom_html_select_element_copy
+/* Internal function for bindings */
+
+dom_exception _dom_html_select_element_set_form(
+ dom_html_select_element *select, dom_html_form_element *form);
+
#endif
diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm
index 5d11b62..22fb418 100644
--- a/test/DOMTSHandler.pm
+++ b/test/DOMTSHandler.pm
@@ -1244,6 +1244,13 @@ sub generate_control_statement {
print "foreach_initialise_domnamednodemap($coll, \&iterator$iterator_index);\n";
print "while(get_next_domnamednodemap($coll, \&iterator$iterator_index, \&$member)) {\n";
}
+
+ if ($self->{"var"}->{$coll} eq "HTMLCollection") {
+ $iterator_index++;
+ print "unsigned int iterator$iterator_index = 0;";
+ print "foreach_initialise_domhtmlcollection($coll, \&iterator$iterator_index);\n";
+ print "while(get_next_domhtmlcollection($coll, \&iterator$iterator_index, \&$member)) {\n";
+ }
}
}
diff --git a/test/INDEX b/test/INDEX
new file mode 100644
index 0000000..b3b14bc
--- /dev/null
+++ b/test/INDEX
@@ -0,0 +1,628 @@
+#test desc dir
+level1_core_attrcreatedocumentfragment level1_core_attrcreatedocumentfragment
+level1_core_attrcreatetextnode level1_core_attrcreatetextnode
+level1_core_attrcreatetextnode2 level1_core_attrcreatetextnode2
+level1_core_attrdefaultvalue level1_core_attrdefaultvalue
+level1_core_attreffectivevalue level1_core_attreffectivevalue
+level1_core_attrname level1_core_attrname
+level1_core_attrnextsiblingnull level1_core_attrnextsiblingnull
+level1_core_attrparentnodenull level1_core_attrparentnodenull
+level1_core_attrprevioussiblingnull level1_core_attrprevioussiblingnull
+level1_core_attrspecifiedvalue level1_core_attrspecifiedvalue
+level1_core_attrspecifiedvaluechanged level1_core_attrspecifiedvaluechanged
+level1_core_cdatasectiongetdata level1_core_cdatasectiongetdata
+level1_core_characterdataappenddata level1_core_characterdataappenddata
+level1_core_characterdataappenddatagetdata level1_core_characterdataappenddatagetdata
+level1_core_characterdatadeletedatabegining level1_core_characterdatadeletedatabegining
+level1_core_characterdatadeletedataend level1_core_characterdatadeletedataend
+level1_core_characterdatadeletedataexceedslength level1_core_characterdatadeletedataexceedslength
+level1_core_characterdatadeletedatagetlengthanddata level1_core_characterdatadeletedatagetlengthanddata
+level1_core_characterdatadeletedatamiddle level1_core_characterdatadeletedatamiddle
+level1_core_characterdatagetdata level1_core_characterdatagetdata
+level1_core_characterdatagetlength level1_core_characterdatagetlength
+level1_core_characterdataindexsizeerrdeletedatacountnegative level1_core_characterdataindexsizeerrdeletedatacountnegative
+level1_core_characterdataindexsizeerrdeletedataoffsetgreater level1_core_characterdataindexsizeerrdeletedataoffsetgreater
+level1_core_characterdataindexsizeerrdeletedataoffsetnegative level1_core_characterdataindexsizeerrdeletedataoffsetnegative
+level1_core_characterdataindexsizeerrinsertdataoffsetgreater level1_core_characterdataindexsizeerrinsertdataoffsetgreater
+level1_core_characterdataindexsizeerrinsertdataoffsetnegative level1_core_characterdataindexsizeerrinsertdataoffsetnegative
+level1_core_characterdataindexsizeerrreplacedatacountnegative level1_core_characterdataindexsizeerrreplacedatacountnegative
+level1_core_characterdataindexsizeerrreplacedataoffsetgreater level1_core_characterdataindexsizeerrreplacedataoffsetgreater
+level1_core_characterdataindexsizeerrreplacedataoffsetnegative level1_core_characterdataindexsizeerrreplacedataoffsetnegative
+level1_core_characterdataindexsizeerrsubstringcountnegative level1_core_characterdataindexsizeerrsubstringcountnegative
+level1_core_characterdataindexsizeerrsubstringnegativeoffset level1_core_characterdataindexsizeerrsubstringnegativeoffset
+level1_core_characterdataindexsizeerrsubstringoffsetgreater level1_core_characterdataindexsizeerrsubstringoffsetgreater
+level1_core_characterdatainsertdatabeginning level1_core_characterdatainsertdatabeginning
+level1_core_characterdatainsertdataend level1_core_characterdatainsertdataend
+level1_core_characterdatainsertdatamiddle level1_core_characterdatainsertdatamiddle
+level1_core_characterdatareplacedatabegining level1_core_characterdatareplacedatabegining
+level1_core_characterdatareplacedataexceedslengthofarg level1_core_characterdatareplacedataexceedslengthofarg
+level1_core_characterdatasetnodevalue level1_core_characterdatasetnodevalue
+level1_core_characterdatasubstringexceedsvalue level1_core_characterdatasubstringexceedsvalue
+level1_core_characterdatasubstringvalue level1_core_characterdatasubstringvalue
+level1_core_commentgetcomment level1_core_commentgetcomment
+level1_core_documentcreateattribute level1_core_documentcreateattribute
+level1_core_documentcreatecdatasection level1_core_documentcreatecdatasection
+level1_core_documentcreatecomment level1_core_documentcreatecomment
+level1_core_documentcreateelement level1_core_documentcreateelement
+level1_core_documentcreateelementcasesensitive level1_core_documentcreateelementcasesensitive
+level1_core_documentcreateentityreference level1_core_documentcreateentityreference
+level1_core_documentcreateprocessinginstruction level1_core_documentcreateprocessinginstruction
+level1_core_documentcreatetextnode level1_core_documentcreatetextnode
+level1_core_documentgetdoctype level1_core_documentgetdoctype
+level1_core_documentgetdoctypenodtd level1_core_documentgetdoctypenodtd
+level1_core_documentgetelementsbytagnamelength level1_core_documentgetelementsbytagnamelength
+level1_core_documentgetelementsbytagnametotallength level1_core_documentgetelementsbytagnametotallength
+level1_core_documentgetelementsbytagnamevalue level1_core_documentgetelementsbytagnamevalue
+level1_core_documentgetrootnode level1_core_documentgetrootnode
+level1_core_documentinvalidcharacterexceptioncreateattribute level1_core_documentinvalidcharacterexceptioncreateattribute
+level1_core_documentinvalidcharacterexceptioncreateelement level1_core_documentinvalidcharacterexceptioncreateelement
+level1_core_documentinvalidcharacterexceptioncreateentref level1_core_documentinvalidcharacterexceptioncreateentref
+level1_core_documentinvalidcharacterexceptioncreateentref1 level1_core_documentinvalidcharacterexceptioncreateentref1
+level1_core_documentinvalidcharacterexceptioncreatepi level1_core_documentinvalidcharacterexceptioncreatepi
+level1_core_documentinvalidcharacterexceptioncreatepi1 level1_core_documentinvalidcharacterexceptioncreatepi1
+level1_core_documenttypegetdoctype level1_core_documenttypegetdoctype
+level1_core_elementaddnewattribute level1_core_elementaddnewattribute
+level1_core_elementassociatedattribute level1_core_elementassociatedattribute
+level1_core_elementchangeattributevalue level1_core_elementchangeattributevalue
+level1_core_elementcreatenewattribute level1_core_elementcreatenewattribute
+level1_core_elementgetattributenode level1_core_elementgetattributenode
+level1_core_elementgetattributenodenull level1_core_elementgetattributenodenull
+level1_core_elementgetelementempty level1_core_elementgetelementempty
+level1_core_elementgetelementsbytagname level1_core_elementgetelementsbytagname
+level1_core_elementgetelementsbytagnameaccessnodelist level1_core_elementgetelementsbytagnameaccessnodelist
+level1_core_elementgetelementsbytagnamenomatch level1_core_elementgetelementsbytagnamenomatch
+level1_core_elementgetelementsbytagnamespecialvalue level1_core_elementgetelementsbytagnamespecialvalue
+level1_core_elementgettagname level1_core_elementgettagname
+level1_core_elementinuseattributeerr level1_core_elementinuseattributeerr
+level1_core_elementinvalidcharacterexception level1_core_elementinvalidcharacterexception
+level1_core_elementnotfounderr level1_core_elementnotfounderr
+level1_core_elementremoveattributeaftercreate level1_core_elementremoveattributeaftercreate
+level1_core_elementremoveattributenode level1_core_elementremoveattributenode
+level1_core_elementreplaceattributewithself level1_core_elementreplaceattributewithself
+level1_core_elementreplaceexistingattribute level1_core_elementreplaceexistingattribute
+level1_core_elementreplaceexistingattributegevalue level1_core_elementreplaceexistingattributegevalue
+level1_core_elementretrieveallattributes level1_core_elementretrieveallattributes
+level1_core_elementretrieveattrvalue level1_core_elementretrieveattrvalue
+level1_core_elementretrievetagname level1_core_elementretrievetagname
+level1_core_elementsetattributenodenull level1_core_elementsetattributenodenull
+level1_core_elementwrongdocumenterr level1_core_elementwrongdocumenterr
+level1_core_hc_attrappendchild1 level1_core_hc_attrappendchild1
+level1_core_hc_attrappendchild2 level1_core_hc_attrappendchild2
+level1_core_hc_attrappendchild3 level1_core_hc_attrappendchild3
+level1_core_hc_attrappendchild4 level1_core_hc_attrappendchild4
+level1_core_hc_attrappendchild5 level1_core_hc_attrappendchild5
+level1_core_hc_attrappendchild6 level1_core_hc_attrappendchild6
+level1_core_hc_attrchildnodes1 level1_core_hc_attrchildnodes1
+level1_core_hc_attrchildnodes2 level1_core_hc_attrchildnodes2
+level1_core_hc_attrclonenode1 level1_core_hc_attrclonenode1
+level1_core_hc_attrcreatedocumentfragment level1_core_hc_attrcreatedocumentfragment
+level1_core_hc_attrcreatetextnode level1_core_hc_attrcreatetextnode
+level1_core_hc_attrcreatetextnode2 level1_core_hc_attrcreatetextnode2
+level1_core_hc_attreffectivevalue level1_core_hc_attreffectivevalue
+level1_core_hc_attrfirstchild level1_core_hc_attrfirstchild
+level1_core_hc_attrgetvalue1 level1_core_hc_attrgetvalue1
+level1_core_hc_attrhaschildnodes level1_core_hc_attrhaschildnodes
+level1_core_hc_attrinsertbefore1 level1_core_hc_attrinsertbefore1
+level1_core_hc_attrinsertbefore2 level1_core_hc_attrinsertbefore2
+level1_core_hc_attrinsertbefore3 level1_core_hc_attrinsertbefore3
+level1_core_hc_attrinsertbefore4 level1_core_hc_attrinsertbefore4
+level1_core_hc_attrinsertbefore5 level1_core_hc_attrinsertbefore5
+level1_core_hc_attrinsertbefore6 level1_core_hc_attrinsertbefore6
+level1_core_hc_attrinsertbefore7 level1_core_hc_attrinsertbefore7
+level1_core_hc_attrlastchild level1_core_hc_attrlastchild
+level1_core_hc_attrname level1_core_hc_attrname
+level1_core_hc_attrnextsiblingnull level1_core_hc_attrnextsiblingnull
+level1_core_hc_attrparentnodenull level1_core_hc_attrparentnodenull
+level1_core_hc_attrprevioussiblingnull level1_core_hc_attrprevioussiblingnull
+level1_core_hc_attrremovechild1 level1_core_hc_attrremovechild1
+level1_core_hc_attrremovechild2 level1_core_hc_attrremovechild2
+level1_core_hc_attrreplacechild1 level1_core_hc_attrreplacechild1
+level1_core_hc_attrreplacechild2 level1_core_hc_attrreplacechild2
+level1_core_hc_attrsetvalue1 level1_core_hc_attrsetvalue1
+level1_core_hc_attrsetvalue2 level1_core_hc_attrsetvalue2
+level1_core_hc_attrspecifiedvalue level1_core_hc_attrspecifiedvalue
+level1_core_hc_attrspecifiedvaluechanged level1_core_hc_attrspecifiedvaluechanged
+level1_core_hc_characterdataappenddata level1_core_hc_characterdataappenddata
+level1_core_hc_characterdataappenddatagetdata level1_core_hc_characterdataappenddatagetdata
+level1_core_hc_characterdatagetdata level1_core_hc_characterdatagetdata
+level1_core_hc_characterdatagetlength level1_core_hc_characterdatagetlength
+level1_core_hc_characterdataindexsizeerrdeletedatacountnegative level1_core_hc_characterdataindexsizeerrdeletedatacountnegative
+level1_core_hc_characterdataindexsizeerrdeletedataoffsetgreater level1_core_hc_characterdataindexsizeerrdeletedataoffsetgreater
+level1_core_hc_characterdataindexsizeerrdeletedataoffsetnegative level1_core_hc_characterdataindexsizeerrdeletedataoffsetnegative
+level1_core_hc_characterdataindexsizeerrinsertdataoffsetgreater level1_core_hc_characterdataindexsizeerrinsertdataoffsetgreater
+level1_core_hc_characterdataindexsizeerrinsertdataoffsetnegative level1_core_hc_characterdataindexsizeerrinsertdataoffsetnegative
+level1_core_hc_characterdataindexsizeerrreplacedatacountnegative level1_core_hc_characterdataindexsizeerrreplacedatacountnegative
+level1_core_hc_characterdataindexsizeerrreplacedataoffsetgreater level1_core_hc_characterdataindexsizeerrreplacedataoffsetgreater
+level1_core_hc_characterdataindexsizeerrreplacedataoffsetnegative level1_core_hc_characterdataindexsizeerrreplacedataoffsetnegative
+level1_core_hc_characterdataindexsizeerrsubstringcountnegative level1_core_hc_characterdataindexsizeerrsubstringcountnegative
+level1_core_hc_characterdataindexsizeerrsubstringnegativeoffset level1_core_hc_characterdataindexsizeerrsubstringnegativeoffset
+level1_core_hc_characterdataindexsizeerrsubstringoffsetgreater level1_core_hc_characterdataindexsizeerrsubstringoffsetgreater
+level1_core_hc_characterdatainsertdatabeginning level1_core_hc_characterdatainsertdatabeginning
+level1_core_hc_characterdatainsertdataend level1_core_hc_characterdatainsertdataend
+level1_core_hc_characterdatainsertdatamiddle level1_core_hc_characterdatainsertdatamiddle
+level1_core_hc_characterdatareplacedatabegining level1_core_hc_characterdatareplacedatabegining
+level1_core_hc_characterdatareplacedataexceedslengthofarg level1_core_hc_characterdatareplacedataexceedslengthofarg
+level1_core_hc_characterdatasetnodevalue level1_core_hc_characterdatasetnodevalue
+level1_core_hc_characterdatasubstringexceedsvalue level1_core_hc_characterdatasubstringexceedsvalue
+level1_core_hc_characterdatasubstringvalue level1_core_hc_characterdatasubstringvalue
+level1_core_hc_commentgetcomment level1_core_hc_commentgetcomment
+level1_core_hc_documentcreateattribute level1_core_hc_documentcreateattribute
+level1_core_hc_documentcreatecomment level1_core_hc_documentcreatecomment
+level1_core_hc_documentcreateelement level1_core_hc_documentcreateelement
+level1_core_hc_documentcreateelementcasesensitive level1_core_hc_documentcreateelementcasesensitive
+level1_core_hc_documentcreatetextnode level1_core_hc_documentcreatetextnode
+level1_core_hc_documentgetdoctype level1_core_hc_documentgetdoctype
+level1_core_hc_documentgetelementsbytagnamelength level1_core_hc_documentgetelementsbytagnamelength
+level1_core_hc_documentgetelementsbytagnametotallength level1_core_hc_documentgetelementsbytagnametotallength
+level1_core_hc_documentgetelementsbytagnamevalue level1_core_hc_documentgetelementsbytagnamevalue
+level1_core_hc_documentgetrootnode level1_core_hc_documentgetrootnode
+level1_core_hc_documentinvalidcharacterexceptioncreateattribute level1_core_hc_documentinvalidcharacterexceptioncreateattribute
+level1_core_hc_documentinvalidcharacterexceptioncreateattribute1 level1_core_hc_documentinvalidcharacterexceptioncreateattribute1
+level1_core_hc_documentinvalidcharacterexceptioncreateelement level1_core_hc_documentinvalidcharacterexceptioncreateelement
+level1_core_hc_documentinvalidcharacterexceptioncreateelement1 level1_core_hc_documentinvalidcharacterexceptioncreateelement1
+level1_core_hc_elementaddnewattribute level1_core_hc_elementaddnewattribute
+level1_core_hc_elementassociatedattribute level1_core_hc_elementassociatedattribute
+level1_core_hc_elementchangeattributevalue level1_core_hc_elementchangeattributevalue
+level1_core_hc_elementcreatenewattribute level1_core_hc_elementcreatenewattribute
+level1_core_hc_elementgetattributenode level1_core_hc_elementgetattributenode
+level1_core_hc_elementgetattributenodenull level1_core_hc_elementgetattributenodenull
+level1_core_hc_elementgetelementempty level1_core_hc_elementgetelementempty
+level1_core_hc_elementgetelementsbytagname level1_core_hc_elementgetelementsbytagname
+level1_core_hc_elementgetelementsbytagnameaccessnodelist level1_core_hc_elementgetelementsbytagnameaccessnodelist
+level1_core_hc_elementgetelementsbytagnamenomatch level1_core_hc_elementgetelementsbytagnamenomatch
+level1_core_hc_elementgetelementsbytagnamespecialvalue level1_core_hc_elementgetelementsbytagnamespecialvalue
+level1_core_hc_elementgettagname level1_core_hc_elementgettagname
+level1_core_hc_elementinuseattributeerr level1_core_hc_elementinuseattributeerr
+level1_core_hc_elementinvalidcharacterexception level1_core_hc_elementinvalidcharacterexception
+level1_core_hc_elementinvalidcharacterexception1 level1_core_hc_elementinvalidcharacterexception1
+level1_core_hc_elementnotfounderr level1_core_hc_elementnotfounderr
+level1_core_hc_elementremoveattribute level1_core_hc_elementremoveattribute
+level1_core_hc_elementremoveattributeaftercreate level1_core_hc_elementremoveattributeaftercreate
+level1_core_hc_elementremoveattributenode level1_core_hc_elementremoveattributenode
+level1_core_hc_elementreplaceattributewithself level1_core_hc_elementreplaceattributewithself
+level1_core_hc_elementreplaceexistingattribute level1_core_hc_elementreplaceexistingattribute
+level1_core_hc_elementreplaceexistingattributegevalue level1_core_hc_elementreplaceexistingattributegevalue
+level1_core_hc_elementretrieveattrvalue level1_core_hc_elementretrieveattrvalue
+level1_core_hc_elementretrievetagname level1_core_hc_elementretrievetagname
+level1_core_hc_elementsetattributenodenull level1_core_hc_elementsetattributenodenull
+level1_core_hc_elementwrongdocumenterr level1_core_hc_elementwrongdocumenterr
+level1_core_hc_namednodemapgetnameditem level1_core_hc_namednodemapgetnameditem
+level1_core_hc_namednodemapnotfounderr level1_core_hc_namednodemapnotfounderr
+level1_core_hc_namednodemapremovenameditem level1_core_hc_namednodemapremovenameditem
+level1_core_hc_namednodemapreturnnull level1_core_hc_namednodemapreturnnull
+level1_core_hc_namednodemapsetnameditem level1_core_hc_namednodemapsetnameditem
+level1_core_hc_namednodemapsetnameditemreturnvalue level1_core_hc_namednodemapsetnameditemreturnvalue
+level1_core_hc_namednodemapsetnameditemthatexists level1_core_hc_namednodemapsetnameditemthatexists
+level1_core_hc_namednodemapsetnameditemwithnewvalue level1_core_hc_namednodemapsetnameditemwithnewvalue
+level1_core_hc_namednodemapwrongdocumenterr level1_core_hc_namednodemapwrongdocumenterr
+level1_core_hc_nodeappendchild level1_core_hc_nodeappendchild
+level1_core_hc_nodeappendchildchildexists level1_core_hc_nodeappendchildchildexists
+level1_core_hc_nodeappendchilddocfragment level1_core_hc_nodeappendchilddocfragment
+level1_core_hc_nodeappendchildgetnodename level1_core_hc_nodeappendchildgetnodename
+level1_core_hc_nodeappendchildinvalidnodetype level1_core_hc_nodeappendchildinvalidnodetype
+level1_core_hc_nodeappendchildnewchilddiffdocument level1_core_hc_nodeappendchildnewchilddiffdocument
+level1_core_hc_nodeappendchildnodeancestor level1_core_hc_nodeappendchildnodeancestor
+level1_core_hc_nodeattributenodeattribute level1_core_hc_nodeattributenodeattribute
+level1_core_hc_nodeattributenodename level1_core_hc_nodeattributenodename
+level1_core_hc_nodeattributenodetype level1_core_hc_nodeattributenodetype
+level1_core_hc_nodeattributenodevalue level1_core_hc_nodeattributenodevalue
+level1_core_hc_nodechildnodes level1_core_hc_nodechildnodes
+level1_core_hc_nodechildnodesappendchild level1_core_hc_nodechildnodesappendchild
+level1_core_hc_nodeclonefalsenocopytext level1_core_hc_nodeclonefalsenocopytext
+level1_core_hc_nodeclonegetparentnull level1_core_hc_nodeclonegetparentnull
+level1_core_hc_nodeclonetruecopytext level1_core_hc_nodeclonetruecopytext
+level1_core_hc_nodecommentnodeattributes level1_core_hc_nodecommentnodeattributes
+level1_core_hc_nodecommentnodename level1_core_hc_nodecommentnodename
+level1_core_hc_nodecommentnodetype level1_core_hc_nodecommentnodetype
+level1_core_hc_nodecommentnodevalue level1_core_hc_nodecommentnodevalue
+level1_core_hc_nodedocumentfragmentnodename level1_core_hc_nodedocumentfragmentnodename
+level1_core_hc_nodedocumentfragmentnodetype level1_core_hc_nodedocumentfragmentnodetype
+level1_core_hc_nodedocumentfragmentnodevalue level1_core_hc_nodedocumentfragmentnodevalue
+level1_core_hc_nodedocumentnodeattribute level1_core_hc_nodedocumentnodeattribute
+level1_core_hc_nodedocumentnodename level1_core_hc_nodedocumentnodename
+level1_core_hc_nodedocumentnodetype level1_core_hc_nodedocumentnodetype
+level1_core_hc_nodedocumentnodevalue level1_core_hc_nodedocumentnodevalue
+level1_core_hc_nodeelementnodename level1_core_hc_nodeelementnodename
+level1_core_hc_nodeelementnodetype level1_core_hc_nodeelementnodetype
+level1_core_hc_nodeelementnodevalue level1_core_hc_nodeelementnodevalue
+level1_core_hc_nodegetfirstchild level1_core_hc_nodegetfirstchild
+level1_core_hc_nodegetfirstchildnull level1_core_hc_nodegetfirstchildnull
+level1_core_hc_nodegetlastchild level1_core_hc_nodegetlastchild
+level1_core_hc_nodegetlastchildnull level1_core_hc_nodegetlastchildnull
+level1_core_hc_nodegetnextsibling level1_core_hc_nodegetnextsibling
+level1_core_hc_nodegetnextsiblingnull level1_core_hc_nodegetnextsiblingnull
+level1_core_hc_nodegetownerdocument level1_core_hc_nodegetownerdocument
+level1_core_hc_nodegetownerdocumentnull level1_core_hc_nodegetownerdocumentnull
+level1_core_hc_nodegetprevioussibling level1_core_hc_nodegetprevioussibling
+level1_core_hc_nodegetprevioussiblingnull level1_core_hc_nodegetprevioussiblingnull
+level1_core_hc_nodehaschildnodes level1_core_hc_nodehaschildnodes
+level1_core_hc_nodehaschildnodesfalse level1_core_hc_nodehaschildnodesfalse
+level1_core_hc_nodeinsertbefore level1_core_hc_nodeinsertbefore
+level1_core_hc_nodeinsertbeforedocfragment level1_core_hc_nodeinsertbeforedocfragment
+level1_core_hc_nodeinsertbeforeinvalidnodetype level1_core_hc_nodeinsertbeforeinvalidnodetype
+level1_core_hc_nodeinsertbeforenewchilddiffdocument level1_core_hc_nodeinsertbeforenewchilddiffdocument
+level1_core_hc_nodeinsertbeforenewchildexists level1_core_hc_nodeinsertbeforenewchildexists
+level1_core_hc_nodeinsertbeforenodeancestor level1_core_hc_nodeinsertbeforenodeancestor
+level1_core_hc_nodeinsertbeforenodename level1_core_hc_nodeinsertbeforenodename
+level1_core_hc_nodeinsertbeforerefchildnonexistent level1_core_hc_nodeinsertbeforerefchildnonexistent
+level1_core_hc_nodeinsertbeforerefchildnull level1_core_hc_nodeinsertbeforerefchildnull
+level1_core_hc_nodelistindexnotzero level1_core_hc_nodelistindexnotzero
+level1_core_hc_nodelistreturnfirstitem level1_core_hc_nodelistreturnfirstitem
+level1_core_hc_nodelisttraverselist level1_core_hc_nodelisttraverselist
+level1_core_hc_nodeparentnode level1_core_hc_nodeparentnode
+level1_core_hc_nodeparentnodenull level1_core_hc_nodeparentnodenull
+level1_core_hc_noderemovechild level1_core_hc_noderemovechild
+level1_core_hc_noderemovechildgetnodename level1_core_hc_noderemovechildgetnodename
+level1_core_hc_noderemovechildnode level1_core_hc_noderemovechildnode
+level1_core_hc_noderemovechildoldchildnonexistent level1_core_hc_noderemovechildoldchildnonexistent
+level1_core_hc_nodereplacechild level1_core_hc_nodereplacechild
+level1_core_hc_nodereplacechildinvalidnodetype level1_core_hc_nodereplacechildinvalidnodetype
+level1_core_hc_nodereplacechildnewchilddiffdocument level1_core_hc_nodereplacechildnewchilddiffdocument
+level1_core_hc_nodereplacechildnewchildexists level1_core_hc_nodereplacechildnewchildexists
+level1_core_hc_nodereplacechildnodeancestor level1_core_hc_nodereplacechildnodeancestor
+level1_core_hc_nodereplacechildnodename level1_core_hc_nodereplacechildnodename
+level1_core_hc_nodereplacechildoldchildnonexistent level1_core_hc_nodereplacechildoldchildnonexistent
+level1_core_hc_nodetextnodeattribute level1_core_hc_nodetextnodeattribute
+level1_core_hc_nodetextnodename level1_core_hc_nodetextnodename
+level1_core_hc_nodetextnodetype level1_core_hc_nodetextnodetype
+level1_core_hc_nodetextnodevalue level1_core_hc_nodetextnodevalue
+level1_core_hc_nodevalue01 level1_core_hc_nodevalue01
+level1_core_hc_nodevalue02 level1_core_hc_nodevalue02
+level1_core_hc_nodevalue03 level1_core_hc_nodevalue03
+level1_core_hc_nodevalue04 level1_core_hc_nodevalue04
+level1_core_hc_nodevalue05 level1_core_hc_nodevalue05
+level1_core_hc_nodevalue06 level1_core_hc_nodevalue06
+level1_core_hc_textindexsizeerrnegativeoffset level1_core_hc_textindexsizeerrnegativeoffset
+level1_core_hc_textindexsizeerroffsetoutofbounds level1_core_hc_textindexsizeerroffsetoutofbounds
+level1_core_hc_textwithnomarkup level1_core_hc_textwithnomarkup
+level1_core_namednodemapgetnameditem level1_core_namednodemapgetnameditem
+level1_core_namednodemapnotfounderr level1_core_namednodemapnotfounderr
+level1_core_namednodemapremovenameditemreturnnodevalue level1_core_namednodemapremovenameditemreturnnodevalue
+level1_core_namednodemapreturnfirstitem level1_core_namednodemapreturnfirstitem
+level1_core_namednodemapreturnlastitem level1_core_namednodemapreturnlastitem
+level1_core_namednodemapreturnnull level1_core_namednodemapreturnnull
+level1_core_namednodemapsetnameditem level1_core_namednodemapsetnameditem
+level1_core_namednodemapsetnameditemreturnvalue level1_core_namednodemapsetnameditemreturnvalue
+level1_core_namednodemapsetnameditemthatexists level1_core_namednodemapsetnameditemthatexists
+level1_core_namednodemapsetnameditemwithnewvalue level1_core_namednodemapsetnameditemwithnewvalue
+level1_core_namednodemapwrongdocumenterr level1_core_namednodemapwrongdocumenterr
+level1_core_nodeappendchild level1_core_nodeappendchild
+level1_core_nodeappendchildchildexists level1_core_nodeappendchildchildexists
+level1_core_nodeappendchilddocfragment level1_core_nodeappendchilddocfragment
+level1_core_nodeappendchildgetnodename level1_core_nodeappendchildgetnodename
+level1_core_nodeappendchildinvalidnodetype level1_core_nodeappendchildinvalidnodetype
+level1_core_nodeappendchildnewchilddiffdocument level1_core_nodeappendchildnewchilddiffdocument
+level1_core_nodeappendchildnodeancestor level1_core_nodeappendchildnodeancestor
+level1_core_nodeappendchildnomodificationallowederrEE level1_core_nodeappendchildnomodificationallowederrEE
+level1_core_nodeattributenodeattribute level1_core_nodeattributenodeattribute
+level1_core_nodeattributenodename level1_core_nodeattributenodename
+level1_core_nodeattributenodetype level1_core_nodeattributenodetype
+level1_core_nodeattributenodevalue level1_core_nodeattributenodevalue
+level1_core_nodecdatasectionnodeattribute level1_core_nodecdatasectionnodeattribute
+level1_core_nodecdatasectionnodename level1_core_nodecdatasectionnodename
+level1_core_nodecdatasectionnodetype level1_core_nodecdatasectionnodetype
+level1_core_nodecdatasectionnodevalue level1_core_nodecdatasectionnodevalue
+level1_core_nodechildnodes level1_core_nodechildnodes
+level1_core_nodechildnodesempty level1_core_nodechildnodesempty
+level1_core_nodeclonefalsenocopytext level1_core_nodeclonefalsenocopytext
+level1_core_nodeclonegetparentnull level1_core_nodeclonegetparentnull
+level1_core_nodeclonetruecopytext level1_core_nodeclonetruecopytext
+level1_core_nodecommentnodeattributes level1_core_nodecommentnodeattributes
+level1_core_nodecommentnodename level1_core_nodecommentnodename
+level1_core_nodecommentnodetype level1_core_nodecommentnodetype
+level1_core_nodecommentnodevalue level1_core_nodecommentnodevalue
+level1_core_nodedocumentfragmentnodename level1_core_nodedocumentfragmentnodename
+level1_core_nodedocumentfragmentnodetype level1_core_nodedocumentfragmentnodetype
+level1_core_nodedocumentfragmentnodevalue level1_core_nodedocumentfragmentnodevalue
+level1_core_nodedocumentnodeattribute level1_core_nodedocumentnodeattribute
+level1_core_nodedocumentnodename level1_core_nodedocumentnodename
+level1_core_nodedocumentnodetype level1_core_nodedocumentnodetype
+level1_core_nodedocumentnodevalue level1_core_nodedocumentnodevalue
+level1_core_nodedocumenttypenodename level1_core_nodedocumenttypenodename
+level1_core_nodedocumenttypenodetype level1_core_nodedocumenttypenodetype
+level1_core_nodedocumenttypenodevalue level1_core_nodedocumenttypenodevalue
+level1_core_nodeelementnodeattributes level1_core_nodeelementnodeattributes
+level1_core_nodeelementnodename level1_core_nodeelementnodename
+level1_core_nodeelementnodetype level1_core_nodeelementnodetype
+level1_core_nodeelementnodevalue level1_core_nodeelementnodevalue
+level1_core_nodeentityreferencenodeattributes level1_core_nodeentityreferencenodeattributes
+level1_core_nodeentityreferencenodename level1_core_nodeentityreferencenodename
+level1_core_nodeentityreferencenodetype level1_core_nodeentityreferencenodetype
+level1_core_nodeentityreferencenodevalue level1_core_nodeentityreferencenodevalue
+level1_core_nodegetfirstchild level1_core_nodegetfirstchild
+level1_core_nodegetfirstchildnull level1_core_nodegetfirstchildnull
+level1_core_nodegetlastchild level1_core_nodegetlastchild
+level1_core_nodegetlastchildnull level1_core_nodegetlastchildnull
+level1_core_nodegetnextsibling level1_core_nodegetnextsibling
+level1_core_nodegetnextsiblingnull level1_core_nodegetnextsiblingnull
+level1_core_nodegetownerdocument level1_core_nodegetownerdocument
+level1_core_nodegetownerdocumentnull level1_core_nodegetownerdocumentnull
+level1_core_nodegetprevioussibling level1_core_nodegetprevioussibling
+level1_core_nodegetprevioussiblingnull level1_core_nodegetprevioussiblingnull
+level1_core_nodehaschildnodes level1_core_nodehaschildnodes
+level1_core_nodehaschildnodesfalse level1_core_nodehaschildnodesfalse
+level1_core_nodeinsertbeforedocfragment level1_core_nodeinsertbeforedocfragment
+level1_core_nodeinsertbeforeinvalidnodetype level1_core_nodeinsertbeforeinvalidnodetype
+level1_core_nodeinsertbeforenewchilddiffdocument level1_core_nodeinsertbeforenewchilddiffdocument
+level1_core_nodeinsertbeforenodeancestor level1_core_nodeinsertbeforenodeancestor
+level1_core_nodeinsertbeforenodename level1_core_nodeinsertbeforenodename
+level1_core_nodeinsertbeforenomodificationallowederrEE level1_core_nodeinsertbeforenomodificationallowederrEE
+level1_core_nodeinsertbeforerefchildnonexistent level1_core_nodeinsertbeforerefchildnonexistent
+level1_core_nodeinsertbeforerefchildnull level1_core_nodeinsertbeforerefchildnull
+level1_core_nodelistindexequalzero level1_core_nodelistindexequalzero
+level1_core_nodelistindexgetlengthofemptylist level1_core_nodelistindexgetlengthofemptylist
+level1_core_nodeparentnode level1_core_nodeparentnode
+level1_core_nodeparentnodenull level1_core_nodeparentnodenull
+level1_core_nodeprocessinginstructionnodeattributes level1_core_nodeprocessinginstructionnodeattributes
+level1_core_noderemovechild level1_core_noderemovechild
+level1_core_noderemovechildoldchildnonexistent level1_core_noderemovechildoldchildnonexistent
+level1_core_nodereplacechild level1_core_nodereplacechild
+level1_core_nodereplacechildinvalidnodetype level1_core_nodereplacechildinvalidnodetype
+level1_core_nodereplacechildnewchilddiffdocument level1_core_nodereplacechildnewchilddiffdocument
+level1_core_nodereplacechildnodeancestor level1_core_nodereplacechildnodeancestor
+level1_core_nodereplacechildnomodificationallowederr level1_core_nodereplacechildnomodificationallowederr
+level1_core_nodereplacechildnomodificationallowederrEE level1_core_nodereplacechildnomodificationallowederrEE
+level1_core_nodereplacechildoldchildnonexistent level1_core_nodereplacechildoldchildnonexistent
+level1_core_nodetextnodeattribute level1_core_nodetextnodeattribute
+level1_core_nodetextnodename level1_core_nodetextnodename
+level1_core_nodetextnodetype level1_core_nodetextnodetype
+level1_core_nodetextnodevalue level1_core_nodetextnodevalue
+level1_core_nodevalue01 level1_core_nodevalue01
+level1_core_nodevalue02 level1_core_nodevalue02
+level1_core_nodevalue03 level1_core_nodevalue03
+level1_core_nodevalue04 level1_core_nodevalue04
+level1_core_nodevalue05 level1_core_nodevalue05
+level1_core_nodevalue06 level1_core_nodevalue06
+level1_core_nodevalue09 level1_core_nodevalue09
+level1_core_textindexsizeerrnegativeoffset level1_core_textindexsizeerrnegativeoffset
+level1_core_textindexsizeerroffsetoutofbounds level1_core_textindexsizeerroffsetoutofbounds
+level1_core_textwithnomarkup level1_core_textwithnomarkup
+level1_html_HTMLBodyElement01 level1_html_HTMLBodyElement01
+level1_html_HTMLBodyElement02 level1_html_HTMLBodyElement02
+level1_html_HTMLBodyElement03 level1_html_HTMLBodyElement03
+level1_html_HTMLBodyElement04 level1_html_HTMLBodyElement04
+level1_html_HTMLBodyElement05 level1_html_HTMLBodyElement05
+level1_html_HTMLBodyElement06 level1_html_HTMLBodyElement06
+level1_html_HTMLButtonElement01 level1_html_HTMLButtonElement01
+level1_html_HTMLButtonElement02 level1_html_HTMLButtonElement02
+level1_html_HTMLButtonElement03 level1_html_HTMLButtonElement03
+level1_html_HTMLButtonElement04 level1_html_HTMLButtonElement04
+level1_html_HTMLButtonElement05 level1_html_HTMLButtonElement05
+level1_html_HTMLButtonElement06 level1_html_HTMLButtonElement06
+level1_html_HTMLButtonElement07 level1_html_HTMLButtonElement07
+level1_html_HTMLButtonElement08 level1_html_HTMLButtonElement08
+level1_html_HTMLCollection12 level1_html_HTMLCollection12
+level1_html_HTMLDocument01 level1_html_HTMLDocument01
+level1_html_HTMLDocument02 level1_html_HTMLDocument02
+level1_html_HTMLDocument03 level1_html_HTMLDocument03
+level1_html_HTMLElement01 level1_html_HTMLElement01
+level1_html_HTMLElement02 level1_html_HTMLElement02
+level1_html_HTMLElement03 level1_html_HTMLElement03
+level1_html_HTMLElement04 level1_html_HTMLElement04
+level1_html_HTMLElement05 level1_html_HTMLElement05
+level1_html_HTMLElement06 level1_html_HTMLElement06
+level1_html_HTMLElement07 level1_html_HTMLElement07
+level1_html_HTMLElement08 level1_html_HTMLElement08
+level1_html_HTMLElement09 level1_html_HTMLElement09
+level1_html_HTMLElement10 level1_html_HTMLElement10
+level1_html_HTMLElement100 level1_html_HTMLElement100
+level1_html_HTMLElement101 level1_html_HTMLElement101
+level1_html_HTMLElement102 level1_html_HTMLElement102
+level1_html_HTMLElement103 level1_html_HTMLElement103
+level1_html_HTMLElement104 level1_html_HTMLElement104
+level1_html_HTMLElement105 level1_html_HTMLElement105
+level1_html_HTMLElement106 level1_html_HTMLElement106
+level1_html_HTMLElement107 level1_html_HTMLElement107
+level1_html_HTMLElement108 level1_html_HTMLElement108
+level1_html_HTMLElement109 level1_html_HTMLElement109
+level1_html_HTMLElement11 level1_html_HTMLElement11
+level1_html_HTMLElement110 level1_html_HTMLElement110
+level1_html_HTMLElement111 level1_html_HTMLElement111
+level1_html_HTMLElement112 level1_html_HTMLElement112
+level1_html_HTMLElement113 level1_html_HTMLElement113
+level1_html_HTMLElement114 level1_html_HTMLElement114
+level1_html_HTMLElement115 level1_html_HTMLElement115
+level1_html_HTMLElement116 level1_html_HTMLElement116
+level1_html_HTMLElement117 level1_html_HTMLElement117
+level1_html_HTMLElement118 level1_html_HTMLElement118
+level1_html_HTMLElement119 level1_html_HTMLElement119
+level1_html_HTMLElement12 level1_html_HTMLElement12
+level1_html_HTMLElement120 level1_html_HTMLElement120
+level1_html_HTMLElement121 level1_html_HTMLElement121
+level1_html_HTMLElement122 level1_html_HTMLElement122
+level1_html_HTMLElement123 level1_html_HTMLElement123
+level1_html_HTMLElement124 level1_html_HTMLElement124
+level1_html_HTMLElement125 level1_html_HTMLElement125
+level1_html_HTMLElement126 level1_html_HTMLElement126
+level1_html_HTMLElement127 level1_html_HTMLElement127
+level1_html_HTMLElement128 level1_html_HTMLElement128
+level1_html_HTMLElement129 level1_html_HTMLElement129
+level1_html_HTMLElement13 level1_html_HTMLElement13
+level1_html_HTMLElement130 level1_html_HTMLElement130
+level1_html_HTMLElement131 level1_html_HTMLElement131
+level1_html_HTMLElement132 level1_html_HTMLElement132
+level1_html_HTMLElement133 level1_html_HTMLElement133
+level1_html_HTMLElement134 level1_html_HTMLElement134
+level1_html_HTMLElement135 level1_html_HTMLElement135
+level1_html_HTMLElement136 level1_html_HTMLElement136
+level1_html_HTMLElement137 level1_html_HTMLElement137
+level1_html_HTMLElement138 level1_html_HTMLElement138
+level1_html_HTMLElement139 level1_html_HTMLElement139
+level1_html_HTMLElement14 level1_html_HTMLElement14
+level1_html_HTMLElement140 level1_html_HTMLElement140
+level1_html_HTMLElement141 level1_html_HTMLElement141
+level1_html_HTMLElement142 level1_html_HTMLElement142
+level1_html_HTMLElement143 level1_html_HTMLElement143
+level1_html_HTMLElement144 level1_html_HTMLElement144
+level1_html_HTMLElement145 level1_html_HTMLElement145
+level1_html_HTMLElement15 level1_html_HTMLElement15
+level1_html_HTMLElement16 level1_html_HTMLElement16
+level1_html_HTMLElement17 level1_html_HTMLElement17
+level1_html_HTMLElement18 level1_html_HTMLElement18
+level1_html_HTMLElement19 level1_html_HTMLElement19
+level1_html_HTMLElement20 level1_html_HTMLElement20
+level1_html_HTMLElement21 level1_html_HTMLElement21
+level1_html_HTMLElement22 level1_html_HTMLElement22
+level1_html_HTMLElement23 level1_html_HTMLElement23
+level1_html_HTMLElement24 level1_html_HTMLElement24
+level1_html_HTMLElement25 level1_html_HTMLElement25
+level1_html_HTMLElement26 level1_html_HTMLElement26
+level1_html_HTMLElement27 level1_html_HTMLElement27
+level1_html_HTMLElement28 level1_html_HTMLElement28
+level1_html_HTMLElement29 level1_html_HTMLElement29
+level1_html_HTMLElement30 level1_html_HTMLElement30
+level1_html_HTMLElement31 level1_html_HTMLElement31
+level1_html_HTMLElement32 level1_html_HTMLElement32
+level1_html_HTMLElement33 level1_html_HTMLElement33
+level1_html_HTMLElement34 level1_html_HTMLElement34
+level1_html_HTMLElement35 level1_html_HTMLElement35
+level1_html_HTMLElement36 level1_html_HTMLElement36
+level1_html_HTMLElement37 level1_html_HTMLElement37
+level1_html_HTMLElement38 level1_html_HTMLElement38
+level1_html_HTMLElement39 level1_html_HTMLElement39
+level1_html_HTMLElement40 level1_html_HTMLElement40
+level1_html_HTMLElement41 level1_html_HTMLElement41
+level1_html_HTMLElement42 level1_html_HTMLElement42
+level1_html_HTMLElement43 level1_html_HTMLElement43
+level1_html_HTMLElement44 level1_html_HTMLElement44
+level1_html_HTMLElement45 level1_html_HTMLElement45
+level1_html_HTMLElement46 level1_html_HTMLElement46
+level1_html_HTMLElement47 level1_html_HTMLElement47
+level1_html_HTMLElement48 level1_html_HTMLElement48
+level1_html_HTMLElement49 level1_html_HTMLElement49
+level1_html_HTMLElement50 level1_html_HTMLElement50
+level1_html_HTMLElement51 level1_html_HTMLElement51
+level1_html_HTMLElement52 level1_html_HTMLElement52
+level1_html_HTMLElement53 level1_html_HTMLElement53
+level1_html_HTMLElement54 level1_html_HTMLElement54
+level1_html_HTMLElement55 level1_html_HTMLElement55
+level1_html_HTMLElement56 level1_html_HTMLElement56
+level1_html_HTMLElement57 level1_html_HTMLElement57
+level1_html_HTMLElement58 level1_html_HTMLElement58
+level1_html_HTMLElement59 level1_html_HTMLElement59
+level1_html_HTMLElement60 level1_html_HTMLElement60
+level1_html_HTMLElement61 level1_html_HTMLElement61
+level1_html_HTMLElement62 level1_html_HTMLElement62
+level1_html_HTMLElement63 level1_html_HTMLElement63
+level1_html_HTMLElement64 level1_html_HTMLElement64
+level1_html_HTMLElement65 level1_html_HTMLElement65
+level1_html_HTMLElement66 level1_html_HTMLElement66
+level1_html_HTMLElement67 level1_html_HTMLElement67
+level1_html_HTMLElement68 level1_html_HTMLElement68
+level1_html_HTMLElement69 level1_html_HTMLElement69
+level1_html_HTMLElement70 level1_html_HTMLElement70
+level1_html_HTMLElement71 level1_html_HTMLElement71
+level1_html_HTMLElement72 level1_html_HTMLElement72
+level1_html_HTMLElement73 level1_html_HTMLElement73
+level1_html_HTMLElement74 level1_html_HTMLElement74
+level1_html_HTMLElement75 level1_html_HTMLElement75
+level1_html_HTMLElement76 level1_html_HTMLElement76
+level1_html_HTMLElement77 level1_html_HTMLElement77
+level1_html_HTMLElement78 level1_html_HTMLElement78
+level1_html_HTMLElement79 level1_html_HTMLElement79
+level1_html_HTMLElement80 level1_html_HTMLElement80
+level1_html_HTMLElement81 level1_html_HTMLElement81
+level1_html_HTMLElement82 level1_html_HTMLElement82
+level1_html_HTMLElement83 level1_html_HTMLElement83
+level1_html_HTMLElement84 level1_html_HTMLElement84
+level1_html_HTMLElement85 level1_html_HTMLElement85
+level1_html_HTMLElement86 level1_html_HTMLElement86
+level1_html_HTMLElement87 level1_html_HTMLElement87
+level1_html_HTMLElement88 level1_html_HTMLElement88
+level1_html_HTMLElement89 level1_html_HTMLElement89
+level1_html_HTMLElement90 level1_html_HTMLElement90
+level1_html_HTMLElement91 level1_html_HTMLElement91
+level1_html_HTMLElement92 level1_html_HTMLElement92
+level1_html_HTMLElement93 level1_html_HTMLElement93
+level1_html_HTMLElement94 level1_html_HTMLElement94
+level1_html_HTMLElement95 level1_html_HTMLElement95
+level1_html_HTMLElement96 level1_html_HTMLElement96
+level1_html_HTMLElement97 level1_html_HTMLElement97
+level1_html_HTMLElement98 level1_html_HTMLElement98
+level1_html_HTMLElement99 level1_html_HTMLElement99
+level1_html_HTMLFormElement03 level1_html_HTMLFormElement03
+level1_html_HTMLFormElement04 level1_html_HTMLFormElement04
+level1_html_HTMLFormElement05 level1_html_HTMLFormElement05
+level1_html_HTMLFormElement06 level1_html_HTMLFormElement06
+level1_html_HTMLFormElement07 level1_html_HTMLFormElement07
+level1_html_HTMLFormElement08 level1_html_HTMLFormElement08
+level1_html_HTMLFormElement09 level1_html_HTMLFormElement09
+level1_html_HTMLFormElement10 level1_html_HTMLFormElement10
+level1_html_HTMLHeadElement01 level1_html_HTMLHeadElement01
+level1_html_HTMLHtmlElement01 level1_html_HTMLHtmlElement01
+level1_html_HTMLInputElement01 level1_html_HTMLInputElement01
+level1_html_HTMLInputElement02 level1_html_HTMLInputElement02
+level1_html_HTMLInputElement03 level1_html_HTMLInputElement03
+level1_html_HTMLInputElement04 level1_html_HTMLInputElement04
+level1_html_HTMLInputElement05 level1_html_HTMLInputElement05
+level1_html_HTMLInputElement06 level1_html_HTMLInputElement06
+level1_html_HTMLInputElement07 level1_html_HTMLInputElement07
+level1_html_HTMLInputElement08 level1_html_HTMLInputElement08
+level1_html_HTMLInputElement09 level1_html_HTMLInputElement09
+level1_html_HTMLInputElement10 level1_html_HTMLInputElement10
+level1_html_HTMLInputElement11 level1_html_HTMLInputElement11
+level1_html_HTMLInputElement12 level1_html_HTMLInputElement12
+level1_html_HTMLInputElement14 level1_html_HTMLInputElement14
+level1_html_HTMLInputElement15 level1_html_HTMLInputElement15
+level1_html_HTMLInputElement16 level1_html_HTMLInputElement16
+level1_html_HTMLInputElement17 level1_html_HTMLInputElement17
+level1_html_HTMLInputElement18 level1_html_HTMLInputElement18
+level1_html_HTMLInputElement19 level1_html_HTMLInputElement19
+level1_html_HTMLInputElement20 level1_html_HTMLInputElement20
+level1_html_HTMLInputElement22 level1_html_HTMLInputElement22
+level1_html_HTMLLinkElement01 level1_html_HTMLLinkElement01
+level1_html_HTMLLinkElement02 level1_html_HTMLLinkElement02
+level1_html_HTMLLinkElement03 level1_html_HTMLLinkElement03
+level1_html_HTMLLinkElement04 level1_html_HTMLLinkElement04
+level1_html_HTMLLinkElement05 level1_html_HTMLLinkElement05
+level1_html_HTMLLinkElement06 level1_html_HTMLLinkElement06
+level1_html_HTMLLinkElement07 level1_html_HTMLLinkElement07
+level1_html_HTMLLinkElement08 level1_html_HTMLLinkElement08
+level1_html_HTMLLinkElement09 level1_html_HTMLLinkElement09
+level1_html_HTMLMetaElement01 level1_html_HTMLMetaElement01
+level1_html_HTMLMetaElement02 level1_html_HTMLMetaElement02
+level1_html_HTMLMetaElement03 level1_html_HTMLMetaElement03
+level1_html_HTMLMetaElement04 level1_html_HTMLMetaElement04
+level1_html_HTMLOptGroupElement01 level1_html_HTMLOptGroupElement01
+level1_html_HTMLOptGroupElement02 level1_html_HTMLOptGroupElement02
+level1_html_HTMLOptionElement01 level1_html_HTMLOptionElement01
+level1_html_HTMLOptionElement02 level1_html_HTMLOptionElement02
+level1_html_HTMLOptionElement03 level1_html_HTMLOptionElement03
+level1_html_HTMLOptionElement04 level1_html_HTMLOptionElement04
+level1_html_HTMLOptionElement06 level1_html_HTMLOptionElement06
+level1_html_HTMLOptionElement07 level1_html_HTMLOptionElement07
+level1_html_HTMLOptionElement08 level1_html_HTMLOptionElement08
+level1_html_HTMLOptionElement09 level1_html_HTMLOptionElement09
+level1_html_HTMLSelectElement01 level1_html_HTMLSelectElement01
+level1_html_HTMLSelectElement02 level1_html_HTMLSelectElement02
+level1_html_HTMLSelectElement03 level1_html_HTMLSelectElement03
+level1_html_HTMLSelectElement04 level1_html_HTMLSelectElement04
+level1_html_HTMLSelectElement06 level1_html_HTMLSelectElement06
+level1_html_HTMLSelectElement07 level1_html_HTMLSelectElement07
+level1_html_HTMLSelectElement08 level1_html_HTMLSelectElement08
+level1_html_HTMLSelectElement09 level1_html_HTMLSelectElement09
+level1_html_HTMLSelectElement10 level1_html_HTMLSelectElement10
+level1_html_HTMLSelectElement11 level1_html_HTMLSelectElement11
+level1_html_HTMLSelectElement12 level1_html_HTMLSelectElement12
+level1_html_HTMLSelectElement13 level1_html_HTMLSelectElement13
+level1_html_HTMLSelectElement14 level1_html_HTMLSelectElement14
+level1_html_HTMLSelectElement15 level1_html_HTMLSelectElement15
+level1_html_HTMLTextAreaElement01 level1_html_HTMLTextAreaElement01
+level1_html_HTMLTextAreaElement02 level1_html_HTMLTextAreaElement02
+level1_html_HTMLTextAreaElement03 level1_html_HTMLTextAreaElement03
+level1_html_HTMLTextAreaElement04 level1_html_HTMLTextAreaElement04
+level1_html_HTMLTextAreaElement05 level1_html_HTMLTextAreaElement05
+level1_html_HTMLTextAreaElement06 level1_html_HTMLTextAreaElement06
+level1_html_HTMLTextAreaElement07 level1_html_HTMLTextAreaElement07
+level1_html_HTMLTextAreaElement08 level1_html_HTMLTextAreaElement08
+level1_html_HTMLTextAreaElement09 level1_html_HTMLTextAreaElement09
+level1_html_HTMLTextAreaElement10 level1_html_HTMLTextAreaElement10
+level1_html_HTMLTextAreaElement11 level1_html_HTMLTextAreaElement11
+level1_html_HTMLTextAreaElement12 level1_html_HTMLTextAreaElement12
+level1_html_HTMLTextAreaElement13 level1_html_HTMLTextAreaElement13
+level1_html_HTMLTextAreaElement14 level1_html_HTMLTextAreaElement14
+level1_html_HTMLTextAreaElement15 level1_html_HTMLTextAreaElement15
+level1_html_HTMLTitleElement01 level1_html_HTMLTitleElement01
+level2_core_documentgetelementbyid01 level2_core_documentgetelementbyid01
+level2_core_documentgetelementsbytagnameNS02 level2_core_documentgetelementsbytagnameNS02
+level2_core_getElementById02 level2_core_getElementById02
diff --git a/test/testcases/tests/level1/html/HTMLOptionElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLOptionElement01.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLOptionElement01.xml.kfail
rename to test/testcases/tests/level1/html/HTMLOptionElement01.xml
diff --git a/test/testcases/tests/level1/html/HTMLOptionElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLOptionElement02.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLOptionElement02.xml.kfail
rename to test/testcases/tests/level1/html/HTMLOptionElement02.xml
diff --git a/test/testcases/tests/level1/html/HTMLOptionElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLOptionElement03.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLOptionElement03.xml.kfail
rename to test/testcases/tests/level1/html/HTMLOptionElement03.xml
diff --git a/test/testcases/tests/level1/html/HTMLOptionElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLOptionElement04.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLOptionElement04.xml.kfail
rename to test/testcases/tests/level1/html/HTMLOptionElement04.xml
diff --git a/test/testcases/tests/level1/html/HTMLOptionElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLOptionElement06.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLOptionElement06.xml.kfail
rename to test/testcases/tests/level1/html/HTMLOptionElement06.xml
diff --git a/test/testcases/tests/level1/html/HTMLOptionElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLOptionElement07.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLOptionElement07.xml.kfail
rename to test/testcases/tests/level1/html/HTMLOptionElement07.xml
diff --git a/test/testcases/tests/level1/html/HTMLOptionElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLOptionElement08.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLOptionElement08.xml.kfail
rename to test/testcases/tests/level1/html/HTMLOptionElement08.xml
diff --git a/test/testcases/tests/level1/html/HTMLOptionElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLOptionElement09.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLOptionElement09.xml.kfail
rename to test/testcases/tests/level1/html/HTMLOptionElement09.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement01.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement01.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement02.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement02.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement03.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement03.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement04.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement04.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement05.xml.int-broken
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement05.xml.int-broken
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement06.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement06.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement07.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement07.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement08.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement08.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement09.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement09.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement10.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement10.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement11.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement11.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement12.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement12.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement13.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement13.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement14.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement14.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement15.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement15.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement17.xml.int-broken
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement17.xml.int-broken
diff --git a/test/testutils/foreach.c b/test/testutils/foreach.c
index e068201..05d7f2a 100644
--- a/test/testutils/foreach.c
+++ b/test/testutils/foreach.c
@@ -34,6 +34,11 @@ void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *ite
*iterator = 0;
}
+void foreach_initialise_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator)
+{
+ (void)coll;
+ *iterator = 0;
+}
bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret)
{
@@ -97,3 +102,24 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
return true;
}
+
+bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret)
+{
+ dom_exception err;
+ uint32_t len;
+
+ err = dom_html_collection_get_length(coll, &len);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ if (*iterator >= len)
+ return false;
+
+ err = dom_html_collection_item(coll, (*iterator), ret);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ (*iterator)++;
+
+ return true;
+}
diff --git a/test/testutils/foreach.h b/test/testutils/foreach.h
index 75874bc..aa9543d 100644
--- a/test/testutils/foreach.h
+++ b/test/testutils/foreach.h
@@ -26,6 +26,7 @@
void foreach_initialise_domnodelist(dom_nodelist *list, unsigned int *iterator);
void foreach_initialise_list(list *list, unsigned int *iterator);
void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *iterator);
+void foreach_initialise_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator);
bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret);
#define get_next_domnodelist(l, i, r) _get_next_domnodelist( \
@@ -37,5 +38,8 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
#define get_next_domnamednodemap(m, i, r) _get_next_domnamednodemap( \
(dom_namednodemap *) (m), (unsigned int *) (i), (dom_node **) (r))
+bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret);
+#define get_next_domhtmlcollection(c, i, r) _get_next_domhtmlcollection( \
+ (dom_html_collection *) (c), (unsigned int *) (i), (dom_node **) (r))
#endif
--
Document Object Model library
10 years, 6 months
libdom: branch jmb/libdom-select updated. 15fa04e97c7c0c9108c0324bae4dfd384e2eb3be
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/15fa04e97c7c0c9108c032...
...commit http://git.netsurf-browser.org/libdom.git/commit/15fa04e97c7c0c9108c0324b...
...tree http://git.netsurf-browser.org/libdom.git/tree/15fa04e97c7c0c9108c0324bae...
The branch, jmb/libdom-select has been updated
via 15fa04e97c7c0c9108c0324bae4dfd384e2eb3be (commit)
from 2a9572f844e04332d6a448b2f52be8ba2a5e8784 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commitdiff/15fa04e97c7c0c9108c0...
commit 15fa04e97c7c0c9108c0324bae4dfd384e2eb3be
Author: John-Mark Bell <jmb(a)netsurf-browser.org>
Commit: John-Mark Bell <jmb(a)netsurf-browser.org>
Enable HTMLSelectElement tests
diff --git a/include/dom/html/html_select_element.h b/include/dom/html/html_select_element.h
index 89b6844..b92abd6 100644
--- a/include/dom/html/html_select_element.h
+++ b/include/dom/html/html_select_element.h
@@ -40,9 +40,12 @@ dom_exception dom_html_select_element_set_length(
dom_exception dom_html_select_element_get_form(
dom_html_select_element *ele, dom_html_form_element **form);
-dom_exception dom_html_select_element_get_options(
+dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col);
+#define dom_html_select_element_get_options(e, c) \
+ dom__html_select_element_get_options((dom_html_select_element *) (e), \
+ (struct dom_html_options_collection **) (c))
dom_exception dom_html_select_element_get_disabled(
dom_html_select_element *ele, bool *disabled);
@@ -70,8 +73,12 @@ dom_exception dom_html_select_element_set_tab_index(
dom_html_select_element *ele, unsigned long tab_index);
/* Functions */
-dom_exception dom_html_select_element_add(dom_html_select_element *select,
+dom_exception dom__html_select_element_add(dom_html_select_element *select,
struct dom_html_element *ele, struct dom_html_element *before);
+#define dom_html_select_element_add(s, e, b) \
+ dom__html_select_element_add((dom_html_select_element *) (s), \
+ (struct dom_html_element *) (e), \
+ (struct dom_html_element *) (b))
dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
long index);
dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele);
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index 9992376..89e46a9 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -361,7 +361,7 @@ dom_exception dom_html_select_element_get_form(
* \param col THe returned collection object
* \return DOM_NO_ERR on success.
*/
-dom_exception dom_html_select_element_get_options(
+dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col)
{
@@ -524,7 +524,7 @@ dom_exception dom_html_select_element_set_tab_index(
/* Functions */
-dom_exception dom_html_select_element_add(dom_html_select_element *select,
+dom_exception dom__html_select_element_add(dom_html_select_element *select,
struct dom_html_element *ele, struct dom_html_element *before)
{
UNUSED(select);
diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm
index 890a8ff..93a97e9 100644
--- a/test/DOMTSHandler.pm
+++ b/test/DOMTSHandler.pm
@@ -1244,6 +1244,13 @@ sub generate_control_statement {
print "foreach_initialise_domnamednodemap($coll, \&iterator$iterator_index);\n";
print "while(get_next_domnamednodemap($coll, \&iterator$iterator_index, \&$member)) {\n";
}
+
+ if ($self->{"var"}->{$coll} eq "HTMLCollection") {
+ $iterator_index++;
+ print "unsigned int iterator$iterator_index = 0;";
+ print "foreach_initialise_domhtmlcollection($coll, \&iterator$iterator_index);\n";
+ print "while(get_next_domhtmlcollection($coll, \&iterator$iterator_index, \&$member)) {\n";
+ }
}
}
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement01.xml b/test/testcases/tests/level1/html/HTMLSelectElement01.xml
new file mode 100644
index 0000000..3b08881
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement01.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement01">
+<metadata>
+<title>HTMLSelectElement01</title>
+<creator>NIST</creator>
+<description>
+ The type attribute is the string "select-multiple" when multiple
+ attribute is true.
+
+ Retrieve the type attribute from the first SELECT element and
+ examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-5878..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vtype" type="DOMString"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<type interface="HTMLSelectElement" obj="testNode" var="vtype"/>
+<assertEquals actual="vtype" expected='"select-multiple"' id="typeLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail
deleted file mode 100644
index 3b08881..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement01">
-<metadata>
-<title>HTMLSelectElement01</title>
-<creator>NIST</creator>
-<description>
- The type attribute is the string "select-multiple" when multiple
- attribute is true.
-
- Retrieve the type attribute from the first SELECT element and
- examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-5878..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vtype" type="DOMString"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<type interface="HTMLSelectElement" obj="testNode" var="vtype"/>
-<assertEquals actual="vtype" expected='"select-multiple"' id="typeLink" ignoreCase="false"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement02.xml b/test/testcases/tests/level1/html/HTMLSelectElement02.xml
new file mode 100644
index 0000000..f9e865d
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement02.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement02">
+<metadata>
+<title>HTMLSelectElement02</title>
+<creator>NIST</creator>
+<description>
+ The selectedIndex attribute specifies the ordinal index of the selected
+ option.
+
+ Retrieve the selectedIndex attribute from the first SELECT element and
+ examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-8567..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vselectedindex" type="int"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<selectedIndex interface="HTMLSelectElement" obj="testNode" var="vselectedindex"/>
+<assertEquals actual="vselectedindex" expected="0" id="selectedIndexLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail
deleted file mode 100644
index f9e865d..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement02">
-<metadata>
-<title>HTMLSelectElement02</title>
-<creator>NIST</creator>
-<description>
- The selectedIndex attribute specifies the ordinal index of the selected
- option.
-
- Retrieve the selectedIndex attribute from the first SELECT element and
- examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-8567..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vselectedindex" type="int"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<selectedIndex interface="HTMLSelectElement" obj="testNode" var="vselectedindex"/>
-<assertEquals actual="vselectedindex" expected="0" id="selectedIndexLink" ignoreCase="false"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement03.xml b/test/testcases/tests/level1/html/HTMLSelectElement03.xml
new file mode 100644
index 0000000..97d217c
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement03.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement03">
+<metadata>
+<title>HTMLSelectElement03</title>
+<creator>NIST</creator>
+<description>
+ The selectedIndex attribute specifies the ordinal index of the selected
+ option. If no element is selected -1 is returned.
+
+ Retrieve the selectedIndex attribute from the second SELECT element and
+ examine its value.
+
+ Per http://www.w3.org/TR/html401/interact/forms.html#h-17.6.1,
+ without an explicit selected attribute, user agent behavior is
+ undefined. There is no way to coerce no option to be selected.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-8567..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vselectedindex" type="int"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="1"/>
+<selectedIndex interface="HTMLSelectElement" obj="testNode" var="vselectedindex"/>
+<!-- Commented assertion per section 17.6.3 -->
+<!-- assertEquals actual="vselectedindex" expected="-1" id="selectedIndexLink" ignoreCase="false"/ -->
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail
deleted file mode 100644
index 97d217c..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement03">
-<metadata>
-<title>HTMLSelectElement03</title>
-<creator>NIST</creator>
-<description>
- The selectedIndex attribute specifies the ordinal index of the selected
- option. If no element is selected -1 is returned.
-
- Retrieve the selectedIndex attribute from the second SELECT element and
- examine its value.
-
- Per http://www.w3.org/TR/html401/interact/forms.html#h-17.6.1,
- without an explicit selected attribute, user agent behavior is
- undefined. There is no way to coerce no option to be selected.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-8567..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vselectedindex" type="int"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="1"/>
-<selectedIndex interface="HTMLSelectElement" obj="testNode" var="vselectedindex"/>
-<!-- Commented assertion per section 17.6.3 -->
-<!-- assertEquals actual="vselectedindex" expected="-1" id="selectedIndexLink" ignoreCase="false"/ -->
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement04.xml b/test/testcases/tests/level1/html/HTMLSelectElement04.xml
new file mode 100644
index 0000000..11ff6ee
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement04.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement04">
+<metadata>
+<title>HTMLSelectElement04</title>
+<creator>NIST</creator>
+<description>
+ The value attribute specifies the current form control value.
+
+ Retrieve the value attribute from the first SELECT element and
+ examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-5935..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vvalue" type="DOMString"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<value interface="HTMLSelectElement" obj="testNode" var="vvalue"/>
+<assertEquals actual="vvalue" expected='"EMP1"' id="valueLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail
deleted file mode 100644
index 11ff6ee..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement04">
-<metadata>
-<title>HTMLSelectElement04</title>
-<creator>NIST</creator>
-<description>
- The value attribute specifies the current form control value.
-
- Retrieve the value attribute from the first SELECT element and
- examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-5935..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vvalue" type="DOMString"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<value interface="HTMLSelectElement" obj="testNode" var="vvalue"/>
-<assertEquals actual="vvalue" expected='"EMP1"' id="valueLink" ignoreCase="false"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement05.xml b/test/testcases/tests/level1/html/HTMLSelectElement05.xml
new file mode 100644
index 0000000..16c78e1
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement05.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement05">
+<metadata>
+<title>HTMLSelectElement05</title>
+<creator>NIST</creator>
+<description>
+ The length attribute specifies the number of options in this select.
+
+ Retrieve the length attribute from the first SELECT element and
+ examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-5933486"/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vlength" type="int"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<length interface="HTMLSelectElement" obj="testNode" var="vlength"/>
+<assertEquals actual="vlength" expected="5" id="lengthLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail
deleted file mode 100644
index 16c78e1..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement05">
-<metadata>
-<title>HTMLSelectElement05</title>
-<creator>NIST</creator>
-<description>
- The length attribute specifies the number of options in this select.
-
- Retrieve the length attribute from the first SELECT element and
- examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-5933486"/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vlength" type="int"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<length interface="HTMLSelectElement" obj="testNode" var="vlength"/>
-<assertEquals actual="vlength" expected="5" id="lengthLink" ignoreCase="false"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement06.xml b/test/testcases/tests/level1/html/HTMLSelectElement06.xml
new file mode 100644
index 0000000..8ff66a0
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement06.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement06">
+<metadata>
+<title>HTMLSelectElement06</title>
+<creator>NIST</creator>
+<description>
+ The form attribute returns the FORM element containing this control.
+
+ Retrieve the form attribute from the first SELECT element
+ and examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-2048..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vform" type="DOMString" />
+<var name="fNode" type="HTMLFormElement"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<form interface="HTMLSelectElement" obj="testNode" var="fNode"/>
+<id obj="fNode" var="vform"/>
+<assertEquals actual="vform" expected='"form1"' id="formLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail
deleted file mode 100644
index 8ff66a0..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement06">
-<metadata>
-<title>HTMLSelectElement06</title>
-<creator>NIST</creator>
-<description>
- The form attribute returns the FORM element containing this control.
-
- Retrieve the form attribute from the first SELECT element
- and examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-2048..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vform" type="DOMString" />
-<var name="fNode" type="HTMLFormElement"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<form interface="HTMLSelectElement" obj="testNode" var="fNode"/>
-<id obj="fNode" var="vform"/>
-<assertEquals actual="vform" expected='"form1"' id="formLink" ignoreCase="false"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement07.xml b/test/testcases/tests/level1/html/HTMLSelectElement07.xml
new file mode 100644
index 0000000..218b9d6
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement07.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement07">
+<metadata>
+<title>HTMLSelectElement07</title>
+<creator>NIST</creator>
+<description>
+ The form attribute returns null if control in not within the context of
+ a form.
+
+ Retrieve the second SELECT element and
+ examine its form element.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-2048..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vform" type="HTMLFormElement" />
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="1"/>
+<form interface="HTMLSelectElement" obj="testNode" var="vform"/>
+<assertNull actual="vform" id="formNullLink"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail
deleted file mode 100644
index 218b9d6..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement07">
-<metadata>
-<title>HTMLSelectElement07</title>
-<creator>NIST</creator>
-<description>
- The form attribute returns null if control in not within the context of
- a form.
-
- Retrieve the second SELECT element and
- examine its form element.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-2048..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vform" type="HTMLFormElement" />
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="1"/>
-<form interface="HTMLSelectElement" obj="testNode" var="vform"/>
-<assertNull actual="vform" id="formNullLink"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement08.xml b/test/testcases/tests/level1/html/HTMLSelectElement08.xml
new file mode 100644
index 0000000..12593fe
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement08.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement08">
+<metadata>
+<title>HTMLSelectElement08</title>
+<creator>NIST</creator>
+<description>
+ The options attribute returns a collection of OPTION elements contained
+ by this element.
+
+ Retrieve the options attribute from the first SELECT element and
+ examine the items of the returned collection.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-3060..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="optionsnodeList" type="HTMLCollection"/>
+<var name="testNode" type="Node"/>
+<var name="vareas" type="int" />
+<var name="doc" type="Document"/>
+<var name="optionName" type="DOMString"/>
+<var name="voption" type="Node"/>
+<var name="result" type="List"/>
+<var name="expectedOptions" type="List">
+<member>"option"</member>
+<member>"option"</member>
+<member>"option"</member>
+<member>"option"</member>
+<member>"option"</member>
+</var>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<options interface="HTMLSelectElement" obj="testNode" var="optionsnodeList"/>
+<for-each collection="optionsnodeList" member="voption">
+<nodeName obj="voption" var="optionName"/>
+<append collection="result" item="optionName"/>
+</for-each>
+<assertEquals actual="result" expected="expectedOptions" id="optionsLink" ignoreCase="auto"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail
deleted file mode 100644
index 12593fe..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement08">
-<metadata>
-<title>HTMLSelectElement08</title>
-<creator>NIST</creator>
-<description>
- The options attribute returns a collection of OPTION elements contained
- by this element.
-
- Retrieve the options attribute from the first SELECT element and
- examine the items of the returned collection.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-3060..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="optionsnodeList" type="HTMLCollection"/>
-<var name="testNode" type="Node"/>
-<var name="vareas" type="int" />
-<var name="doc" type="Document"/>
-<var name="optionName" type="DOMString"/>
-<var name="voption" type="Node"/>
-<var name="result" type="List"/>
-<var name="expectedOptions" type="List">
-<member>"option"</member>
-<member>"option"</member>
-<member>"option"</member>
-<member>"option"</member>
-<member>"option"</member>
-</var>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<options interface="HTMLSelectElement" obj="testNode" var="optionsnodeList"/>
-<for-each collection="optionsnodeList" member="voption">
-<nodeName obj="voption" var="optionName"/>
-<append collection="result" item="optionName"/>
-</for-each>
-<assertEquals actual="result" expected="expectedOptions" id="optionsLink" ignoreCase="auto"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement09.xml b/test/testcases/tests/level1/html/HTMLSelectElement09.xml
new file mode 100644
index 0000000..382510d
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement09.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement09">
+<metadata>
+<title>HTMLSelectElement09</title>
+<creator>NIST</creator>
+<description>
+ The disabled attribute indicates that this control is not available
+ within this context.
+
+ Retrieve the disabled attribute from the third SELECT element
+ and examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-7910..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vdisabled" type="boolean" />
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="2"/>
+<disabled interface="HTMLSelectElement" obj="testNode" var="vdisabled"/>
+<assertTrue actual="vdisabled" id="disabledLink"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail
deleted file mode 100644
index 382510d..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement09">
-<metadata>
-<title>HTMLSelectElement09</title>
-<creator>NIST</creator>
-<description>
- The disabled attribute indicates that this control is not available
- within this context.
-
- Retrieve the disabled attribute from the third SELECT element
- and examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-7910..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vdisabled" type="boolean" />
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="2"/>
-<disabled interface="HTMLSelectElement" obj="testNode" var="vdisabled"/>
-<assertTrue actual="vdisabled" id="disabledLink"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement10.xml b/test/testcases/tests/level1/html/HTMLSelectElement10.xml
new file mode 100644
index 0000000..b9f5762
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement10.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement10">
+<metadata>
+<title>HTMLSelectElement10</title>
+<creator>NIST</creator>
+<description>
+ The multiple attribute(if true) indicates that multiple OPTION elements
+ may be selected
+
+ Retrieve the multiple attribute from the first SELECT element
+ and examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-1324..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vmultiple" type="boolean" />
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<multiple interface="HTMLSelectElement" obj="testNode" var="vmultiple"/>
+<assertTrue actual="vmultiple" id="multipleLink"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail
deleted file mode 100644
index b9f5762..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement10">
-<metadata>
-<title>HTMLSelectElement10</title>
-<creator>NIST</creator>
-<description>
- The multiple attribute(if true) indicates that multiple OPTION elements
- may be selected
-
- Retrieve the multiple attribute from the first SELECT element
- and examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-1324..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vmultiple" type="boolean" />
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<multiple interface="HTMLSelectElement" obj="testNode" var="vmultiple"/>
-<assertTrue actual="vmultiple" id="multipleLink"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement11.xml b/test/testcases/tests/level1/html/HTMLSelectElement11.xml
new file mode 100644
index 0000000..ebb4d1b
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement11.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement11">
+<metadata>
+<title>HTMLSelectElement11</title>
+<creator>NIST</creator>
+<description>
+ The name attribute specifies the form control or object name when
+ submitted with a form.
+
+ Retrieve the name attribute from the first SELECT element and
+ examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-4163..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vname" type="DOMString"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<name interface="HTMLSelectElement" obj="testNode" var="vname"/>
+<assertEquals actual="vname" expected='"select1"' id="nameLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail
deleted file mode 100644
index ebb4d1b..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement11">
-<metadata>
-<title>HTMLSelectElement11</title>
-<creator>NIST</creator>
-<description>
- The name attribute specifies the form control or object name when
- submitted with a form.
-
- Retrieve the name attribute from the first SELECT element and
- examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-4163..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vname" type="DOMString"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<name interface="HTMLSelectElement" obj="testNode" var="vname"/>
-<assertEquals actual="vname" expected='"select1"' id="nameLink" ignoreCase="false"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement12.xml b/test/testcases/tests/level1/html/HTMLSelectElement12.xml
new file mode 100644
index 0000000..5559f5d
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement12.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement12">
+<metadata>
+<title>HTMLSelectElement12</title>
+<creator>NIST</creator>
+<description>
+ The size attribute specifies the number of visible rows.
+
+ Retrieve the size attribute from the first SELECT element and
+ examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-1829..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vsize" type="int"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<size interface="HTMLSelectElement" obj="testNode" var="vsize"/>
+<assertEquals actual="vsize" expected="1" id="sizeLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail
deleted file mode 100644
index 5559f5d..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement12">
-<metadata>
-<title>HTMLSelectElement12</title>
-<creator>NIST</creator>
-<description>
- The size attribute specifies the number of visible rows.
-
- Retrieve the size attribute from the first SELECT element and
- examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-1829..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vsize" type="int"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<size interface="HTMLSelectElement" obj="testNode" var="vsize"/>
-<assertEquals actual="vsize" expected="1" id="sizeLink" ignoreCase="false"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement13.xml b/test/testcases/tests/level1/html/HTMLSelectElement13.xml
new file mode 100644
index 0000000..2c0aafb
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement13.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement13">
+<metadata>
+<title>HTMLSelectElement13</title>
+<creator>NIST</creator>
+<description>
+ The tabIndex attribute specifies an index that represents the elements
+ position in the tabbing order.
+
+ Retrieve the tabIndex attribute from the first SELECT element and
+ examine its value.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2002-02-22</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-4067..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="vtabindex" type="int"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="false"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<tabIndex interface="HTMLSelectElement" obj="testNode" var="vtabindex"/>
+<assertEquals actual="vtabindex" expected="7" id="tabIndexLink" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail
deleted file mode 100644
index 2c0aafb..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement13">
-<metadata>
-<title>HTMLSelectElement13</title>
-<creator>NIST</creator>
-<description>
- The tabIndex attribute specifies an index that represents the elements
- position in the tabbing order.
-
- Retrieve the tabIndex attribute from the first SELECT element and
- examine its value.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2002-02-22</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-4067..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="vtabindex" type="int"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="false"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<tabIndex interface="HTMLSelectElement" obj="testNode" var="vtabindex"/>
-<assertEquals actual="vtabindex" expected="7" id="tabIndexLink" ignoreCase="false"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement14.xml b/test/testcases/tests/level1/html/HTMLSelectElement14.xml
new file mode 100644
index 0000000..df22987
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement14.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement14">
+<metadata>
+<title>HTMLSelectElement14</title>
+<creator>Curt Arnold</creator>
+<description>
+focus should give the select element input focus.
+</description>
+<date qualifier="created">2004-03-18</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-3213..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="true"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<focus interface="HTMLSelectElement" obj="testNode"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail
deleted file mode 100644
index df22987..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2004 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement14">
-<metadata>
-<title>HTMLSelectElement14</title>
-<creator>Curt Arnold</creator>
-<description>
-focus should give the select element input focus.
-</description>
-<date qualifier="created">2004-03-18</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-3213..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="true"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<focus interface="HTMLSelectElement" obj="testNode"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement15.xml b/test/testcases/tests/level1/html/HTMLSelectElement15.xml
new file mode 100644
index 0000000..dcc2f6d
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement15.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement15">
+<metadata>
+<title>HTMLSelectElement15</title>
+<creator>Curt Arnold</creator>
+<description>
+blur should surrender input focus.
+</description>
+<date qualifier="created">2004-03-18</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-2821..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="doc" type="Document"/>
+<load var="doc" href="select" willBeModified="true"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<blur interface="HTMLSelectElement" obj="testNode"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail
deleted file mode 100644
index dcc2f6d..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2004 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement15">
-<metadata>
-<title>HTMLSelectElement15</title>
-<creator>Curt Arnold</creator>
-<description>
-blur should surrender input focus.
-</description>
-<date qualifier="created">2004-03-18</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-2821..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="doc" type="Document"/>
-<load var="doc" href="select" willBeModified="true"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<blur interface="HTMLSelectElement" obj="testNode"/>
-</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement17.xml b/test/testcases/tests/level1/html/HTMLSelectElement17.xml
new file mode 100644
index 0000000..03549ff
--- /dev/null
+++ b/test/testcases/tests/level1/html/HTMLSelectElement17.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
+
+<!--
+
+Copyright (c) 2004 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+
+-->
+<!DOCTYPE test SYSTEM "dom1.dtd">
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement17">
+<metadata>
+<title>HTMLSelectElement17</title>
+<creator>Curt Arnold</creator>
+<description>
+Removes a non-existant option using HTMLSelectElement.remove.
+</description>
+<date qualifier="created">2004-03-18</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-3340..."/>
+</metadata>
+<var name="nodeList" type="NodeList"/>
+<var name="testNode" type="Node"/>
+<var name="doc" type="Document"/>
+<var name="optLength" type="int"/>
+<var name="selected" type="int"/>
+<load var="doc" href="select" willBeModified="true"/>
+<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
+<assertSize collection="nodeList" size="3" id="Asize"/>
+<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
+<remove interface="HTMLSelectElement" obj="testNode" index="6"/>
+<length interface="HTMLSelectElement" obj="testNode" var="optLength"/>
+<assertEquals actual="optLength" expected="5" id="optLength" ignoreCase="false"/>
+<selectedIndex interface="HTMLSelectElement" obj="testNode" var="selected"/>
+<assertEquals actual="selected" expected="0" id="selected" ignoreCase="false"/>
+</test>
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail
deleted file mode 100644
index 03549ff..0000000
--- a/test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="test-to-html.xsl" type="text/xml"?>
-
-<!--
-
-Copyright (c) 2004 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
--->
-<!DOCTYPE test SYSTEM "dom1.dtd">
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="HTMLSelectElement17">
-<metadata>
-<title>HTMLSelectElement17</title>
-<creator>Curt Arnold</creator>
-<description>
-Removes a non-existant option using HTMLSelectElement.remove.
-</description>
-<date qualifier="created">2004-03-18</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html#ID-3340..."/>
-</metadata>
-<var name="nodeList" type="NodeList"/>
-<var name="testNode" type="Node"/>
-<var name="doc" type="Document"/>
-<var name="optLength" type="int"/>
-<var name="selected" type="int"/>
-<load var="doc" href="select" willBeModified="true"/>
-<getElementsByTagName interface="Document" obj="doc" var="nodeList" tagname='"select"'/>
-<assertSize collection="nodeList" size="3" id="Asize"/>
-<item interface="NodeList" obj="nodeList" var="testNode" index="0"/>
-<remove interface="HTMLSelectElement" obj="testNode" index="6"/>
-<length interface="HTMLSelectElement" obj="testNode" var="optLength"/>
-<assertEquals actual="optLength" expected="5" id="optLength" ignoreCase="false"/>
-<selectedIndex interface="HTMLSelectElement" obj="testNode" var="selected"/>
-<assertEquals actual="selected" expected="0" id="selected" ignoreCase="false"/>
-</test>
diff --git a/test/testutils/foreach.c b/test/testutils/foreach.c
index 764920c..bbc8a47 100644
--- a/test/testutils/foreach.c
+++ b/test/testutils/foreach.c
@@ -34,6 +34,11 @@ void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *ite
*iterator = 0;
}
+void foreach_initialise_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator)
+{
+ (void)coll;
+ *iterator = 0;
+}
bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret)
{
@@ -97,3 +102,24 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
return true;
}
+
+bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret)
+{
+ dom_exception err;
+ unsigned long len;
+
+ err = dom_html_collection_get_length(coll, &len);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ if (*iterator >= len)
+ return false;
+
+ err = dom_html_collection_item(coll, (*iterator), ret);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ (*iterator)++;
+
+ return true;
+}
diff --git a/test/testutils/foreach.h b/test/testutils/foreach.h
index 75874bc..aa9543d 100644
--- a/test/testutils/foreach.h
+++ b/test/testutils/foreach.h
@@ -26,6 +26,7 @@
void foreach_initialise_domnodelist(dom_nodelist *list, unsigned int *iterator);
void foreach_initialise_list(list *list, unsigned int *iterator);
void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *iterator);
+void foreach_initialise_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator);
bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret);
#define get_next_domnodelist(l, i, r) _get_next_domnodelist( \
@@ -37,5 +38,8 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
#define get_next_domnamednodemap(m, i, r) _get_next_domnamednodemap( \
(dom_namednodemap *) (m), (unsigned int *) (i), (dom_node **) (r))
+bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret);
+#define get_next_domhtmlcollection(c, i, r) _get_next_domhtmlcollection( \
+ (dom_html_collection *) (c), (unsigned int *) (i), (dom_node **) (r))
#endif
-----------------------------------------------------------------------
Summary of changes:
include/dom/html/html_select_element.h | 11 +++++++-
src/html/html_select_element.c | 4 +-
test/DOMTSHandler.pm | 7 +++++
...Element01.xml.kfail => HTMLSelectElement01.xml} | 0
...Element02.xml.kfail => HTMLSelectElement02.xml} | 0
...Element03.xml.kfail => HTMLSelectElement03.xml} | 0
...Element04.xml.kfail => HTMLSelectElement04.xml} | 0
...Element05.xml.kfail => HTMLSelectElement05.xml} | 0
...Element06.xml.kfail => HTMLSelectElement06.xml} | 0
...Element07.xml.kfail => HTMLSelectElement07.xml} | 0
...Element08.xml.kfail => HTMLSelectElement08.xml} | 0
...Element09.xml.kfail => HTMLSelectElement09.xml} | 0
...Element10.xml.kfail => HTMLSelectElement10.xml} | 0
...Element11.xml.kfail => HTMLSelectElement11.xml} | 0
...Element12.xml.kfail => HTMLSelectElement12.xml} | 0
...Element13.xml.kfail => HTMLSelectElement13.xml} | 0
...Element14.xml.kfail => HTMLSelectElement14.xml} | 0
...Element15.xml.kfail => HTMLSelectElement15.xml} | 0
...Element17.xml.kfail => HTMLSelectElement17.xml} | 0
test/testutils/foreach.c | 26 ++++++++++++++++++++
test/testutils/foreach.h | 4 +++
21 files changed, 48 insertions(+), 4 deletions(-)
rename test/testcases/tests/level1/html/{HTMLSelectElement01.xml.kfail => HTMLSelectElement01.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement02.xml.kfail => HTMLSelectElement02.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement03.xml.kfail => HTMLSelectElement03.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement04.xml.kfail => HTMLSelectElement04.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement05.xml.kfail => HTMLSelectElement05.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement06.xml.kfail => HTMLSelectElement06.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement07.xml.kfail => HTMLSelectElement07.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement08.xml.kfail => HTMLSelectElement08.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement09.xml.kfail => HTMLSelectElement09.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement10.xml.kfail => HTMLSelectElement10.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement11.xml.kfail => HTMLSelectElement11.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement12.xml.kfail => HTMLSelectElement12.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement13.xml.kfail => HTMLSelectElement13.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement14.xml.kfail => HTMLSelectElement14.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement15.xml.kfail => HTMLSelectElement15.xml} (100%)
rename test/testcases/tests/level1/html/{HTMLSelectElement17.xml.kfail => HTMLSelectElement17.xml} (100%)
diff --git a/include/dom/html/html_select_element.h b/include/dom/html/html_select_element.h
index 89b6844..b92abd6 100644
--- a/include/dom/html/html_select_element.h
+++ b/include/dom/html/html_select_element.h
@@ -40,9 +40,12 @@ dom_exception dom_html_select_element_set_length(
dom_exception dom_html_select_element_get_form(
dom_html_select_element *ele, dom_html_form_element **form);
-dom_exception dom_html_select_element_get_options(
+dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col);
+#define dom_html_select_element_get_options(e, c) \
+ dom__html_select_element_get_options((dom_html_select_element *) (e), \
+ (struct dom_html_options_collection **) (c))
dom_exception dom_html_select_element_get_disabled(
dom_html_select_element *ele, bool *disabled);
@@ -70,8 +73,12 @@ dom_exception dom_html_select_element_set_tab_index(
dom_html_select_element *ele, unsigned long tab_index);
/* Functions */
-dom_exception dom_html_select_element_add(dom_html_select_element *select,
+dom_exception dom__html_select_element_add(dom_html_select_element *select,
struct dom_html_element *ele, struct dom_html_element *before);
+#define dom_html_select_element_add(s, e, b) \
+ dom__html_select_element_add((dom_html_select_element *) (s), \
+ (struct dom_html_element *) (e), \
+ (struct dom_html_element *) (b))
dom_exception dom_html_select_element_remove(dom_html_select_element *ele,
long index);
dom_exception dom_html_select_element_blur(struct dom_html_select_element *ele);
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index 9992376..89e46a9 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -361,7 +361,7 @@ dom_exception dom_html_select_element_get_form(
* \param col THe returned collection object
* \return DOM_NO_ERR on success.
*/
-dom_exception dom_html_select_element_get_options(
+dom_exception dom__html_select_element_get_options(
dom_html_select_element *ele,
struct dom_html_options_collection **col)
{
@@ -524,7 +524,7 @@ dom_exception dom_html_select_element_set_tab_index(
/* Functions */
-dom_exception dom_html_select_element_add(dom_html_select_element *select,
+dom_exception dom__html_select_element_add(dom_html_select_element *select,
struct dom_html_element *ele, struct dom_html_element *before)
{
UNUSED(select);
diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm
index 890a8ff..93a97e9 100644
--- a/test/DOMTSHandler.pm
+++ b/test/DOMTSHandler.pm
@@ -1244,6 +1244,13 @@ sub generate_control_statement {
print "foreach_initialise_domnamednodemap($coll, \&iterator$iterator_index);\n";
print "while(get_next_domnamednodemap($coll, \&iterator$iterator_index, \&$member)) {\n";
}
+
+ if ($self->{"var"}->{$coll} eq "HTMLCollection") {
+ $iterator_index++;
+ print "unsigned int iterator$iterator_index = 0;";
+ print "foreach_initialise_domhtmlcollection($coll, \&iterator$iterator_index);\n";
+ print "while(get_next_domhtmlcollection($coll, \&iterator$iterator_index, \&$member)) {\n";
+ }
}
}
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement01.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement01.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement01.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement02.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement02.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement02.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement03.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement03.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement03.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement04.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement04.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement04.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement05.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement05.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement05.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement06.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement06.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement06.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement07.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement07.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement07.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement08.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement08.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement08.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement09.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement09.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement09.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement10.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement10.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement10.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement11.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement11.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement11.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement12.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement12.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement12.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement13.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement13.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement13.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement14.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement14.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement14.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement15.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement15.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement15.xml
diff --git a/test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail b/test/testcases/tests/level1/html/HTMLSelectElement17.xml
similarity index 100%
rename from test/testcases/tests/level1/html/HTMLSelectElement17.xml.kfail
rename to test/testcases/tests/level1/html/HTMLSelectElement17.xml
diff --git a/test/testutils/foreach.c b/test/testutils/foreach.c
index 764920c..bbc8a47 100644
--- a/test/testutils/foreach.c
+++ b/test/testutils/foreach.c
@@ -34,6 +34,11 @@ void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *ite
*iterator = 0;
}
+void foreach_initialise_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator)
+{
+ (void)coll;
+ *iterator = 0;
+}
bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret)
{
@@ -97,3 +102,24 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
return true;
}
+
+bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret)
+{
+ dom_exception err;
+ unsigned long len;
+
+ err = dom_html_collection_get_length(coll, &len);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ if (*iterator >= len)
+ return false;
+
+ err = dom_html_collection_item(coll, (*iterator), ret);
+ if (err != DOM_NO_ERR)
+ return false;
+
+ (*iterator)++;
+
+ return true;
+}
diff --git a/test/testutils/foreach.h b/test/testutils/foreach.h
index 75874bc..aa9543d 100644
--- a/test/testutils/foreach.h
+++ b/test/testutils/foreach.h
@@ -26,6 +26,7 @@
void foreach_initialise_domnodelist(dom_nodelist *list, unsigned int *iterator);
void foreach_initialise_list(list *list, unsigned int *iterator);
void foreach_initialise_domnamednodemap(dom_namednodemap *map, unsigned int *iterator);
+void foreach_initialise_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator);
bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node **ret);
#define get_next_domnodelist(l, i, r) _get_next_domnodelist( \
@@ -37,5 +38,8 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
#define get_next_domnamednodemap(m, i, r) _get_next_domnamednodemap( \
(dom_namednodemap *) (m), (unsigned int *) (i), (dom_node **) (r))
+bool _get_next_domhtmlcollection(dom_html_collection *coll, unsigned int *iterator, dom_node **ret);
+#define get_next_domhtmlcollection(c, i, r) _get_next_domhtmlcollection( \
+ (dom_html_collection *) (c), (unsigned int *) (i), (dom_node **) (r))
#endif
--
Document Object Model library
10 years, 6 months