Hi, I'm using rdiscount 1.6.8 and it segfaults when I use toc_content on this document :
# Portage de DLFP / LinuxFr #
La migration de _LinuxFr.org_ vers sa nouvelle version a réclamé une grande réactivité de la part de l'équipe Weboob qui n'y était pas préparée. Alors qu'elle s'attendait à trouver une version propre, certes sans API, mais en pensant que les _hacks_ de Templeet étaient loin derrière (notamment sur l'envoi de commentaires), elle a dû faire faire face à de nouveaux problèmes.
Tout d'abord, si avant il était nécessaire de conserver le couple _date + ID_ pour les dépêches et _auteur + ID_ pour les journaux en guise d'identifiants uniques, les URL sont maintenant dépourvues de tout identifiant unique autre que le titre (pour optimiser le classement dans les moteurs de recherche), ce qui rend ces URL potentiellement éphémères.
Le seul endroit où l'on peut les retrouver est le flux [[Atom]], puisqu'au sein même des pages ils y sont absents.
En outre, lors des tests sur l'envoi de commentaires, l'équipe de Weboob a réussi involontairement à faire tomber le site. En effet, la dépêche sur laquelle les tests étaient effectués s'est retrouvée depuis, et est toujours, [inaccessible](https://linuxfr.org/news/les-derniers-jeudis-de-mandraix-continuent), avec un beau message d'erreur 500.
Malgré ça, le portage est terminé, et il est maintenant possible de [_troller_ depuis son client de messagerie](https://linuxfr.org/users/moules/journaux/trollez-depuis-votre-client-mail) comme avant.
# Contributions #
L'équipe de Weboob s'est agrandie au fur et à mesure des sorties et de l'intérêt qu'il suscite dans le microcosme des vrais hommes du logiciel libre, comptant plus d'une dizaine de contributeurs réguliers ou non.
Il est aisé de venir à leur rencontre sur IRC ([#weboob](irc://irc.freenode.net/weboob) sur [Freenode](http://www.freenode.net)) ou par le biais de la [liste de diffusion](http://lists.symlink.me/mailman/listinfo/weboob), ou de participer aux [soirées Weboob](http://people.symlink.me/~rom1/events/).
Grâce à la documentation et à l'expertise des développeurs du projet, vous pouvez vous aussi développer en toute simplicité, avec des notions de Python, un nouveau _backend_ pour votre site web préféré qui sera dès lors utilisable par toutes les applications supportant les [capacités](http://weboob.org/Capabilities) que vous implémenterez.
Inversement, si l'IHM est votre truc, vous pouvez développer une nouvelle application en console, graphique ou pour téléphone portable, en vous reposant sur les nombreux _backends_ existants sans avoir vous occuper de la communication avec les sites.
# Futur #
Outre la volonté de toujours multiplier le nombre de sites web supportés, le développement va s'articuler, pour les mois à venir, autour d'une volonté de se libérer du langage Python.
Cela va passer par la réécriture du cœur de Weboob (qui ne fait qu'une centaine de lignes) en C, afin, d'une part, de pouvoir charger les _backends_ écrits en Python, mais également dans d'autres langages, et d'autre part, de fournir des _bindings_ dans ces mêmes autres langages, afin de rendre accessible Weboob à des applications déjà existantes écrites dans d'autres langages.
L'idée est que si les compétences de _boobisation_ de sites web sont là, il vaut mieux déléguer la présentation et le traitement des données à de véritables applications qui sauront profiter de la valeur ajoutée de Weboob.
# Changements #
## Général ##
* Nouveaux _backends_ :
* [Bouygues](http://weboob.org/Bouygues) ([CapMessagesPost](http://weboob.org/CapMessagesPost)).
* [CanalPlus](http://weboob.org/CanalPlus) ([CapVideo](http://weboob.org/CapVideo)).
* [CreditMutuel](http://weboob.org/CreditMutuel) ([CapBank](http://weboob.org/CapBank)).
* [Inrocks](http://weboob.org/Inrocks) ([CapMessages](http://weboob.org/CapMessages)).
* [IPInfoDB](http://weboob.org/IPInfoDB) ([CapGeolocIp](http://weboob.org/CapGeolocIp)).
* [IsoHunt](http://weboob.org/IsoHunt) ([CapTorrent](http://weboob.org/CapTorrent)).
* [KickAss](http://weboob.org/KickAss) ([CapTorrent](http://weboob.org/CapTorrent)).
* [LeFigaro](http://weboob.org/LeFigaro) ([CapMessages](http://weboob.org/CapMessages)).
* [MediaWiki](http://weboob.org/MediaWiki) ([CapContent](http://weboob.org/CapContent)).
* [Minutes20](http://weboob.org/Minutes20) ([CapMessages](http://weboob.org/CapMessages)).
* [MeteoFrance](http://weboob.org/MeteoFrance) ([CapWeather](http://weboob.org/CapWeather)).
* [Orange](http://weboob.org/Orange) ([CapMessages](http://weboob.org/CapMessages), [CapMessagesPost](http://weboob.org/CapMessagesPost)).
* [PirateBay](http://weboob.org/PirateBay) ([CapTorrent](http://weboob.org/CapTorrent)).
* [SFR](http://weboob.org/SFR) ([CapMessagesPost](http://weboob.org/CapMessagesPost)).
* [SocieteGenerale](http://weboob.org/SocieteGenerale) ([CapBank](http://weboob.org/CapBank)).
* Nouvelles applications :
* [boobmsg](http://weboob.org/boobmsg) ([CapMessages](http://weboob.org/CapMessages), [CapMessagesPost](http://weboob.org/CapMessagesPost)).
* [QWebContentEdit](http://weboob.org/QWebContentEdit) ([CapContent](http://weboob.org/CapContent)).
* Un nouvel outil, `« make_man.py »`, a été créé pour générer les pages de manuel (_manpages_).
## Applications consoles ##
* Nouvelle commande `« inspect »` pour ouvrir un navigateur _webkit_ graphique avec la page courante (afin d'aider à déboguer). S'il n'est pas disponible, affiche la source de la page sur la sortie standard.
* Dans les _prompts_, afficher une liste à puces quand il y a trop de choix.
* Le paramètre « **--save-responses** » (« **-a** ») sauvegarde maintenant les pages dans un répertoire et conserve la journalisation, ainsi qu'une liste d'association des URL visitées.
* Correction de problèmes Unicode ([#436](http://weboob.org/issues/436)).
* Nouveau paramètre « -O » pour définir un fichier en sortie.
## Backend : [AuM](http://weboob.org/AuM) ##
* Ne pas envoyer de notification de panier des filles qui ont quitté le site.
* Mise à jour de l'« anti-pourriel ».
* Notifie l'utilisateur lorsqu'il est banni.
* Nouvelle optimisation `PRIORITY_CONNECTION` pour créer des faux comptes filleuls afin de pouvoir accéder au site entre 18 h et 1 h. ([#319](http://weboob.org/issues/319))
* Nouvelle optimisation `QUERIES_QUEUE` pour mettre en file d'attente les requêtes lorsque qu'il n'y a plus de charme disponible.
* Nouveau paramètre `« baskets »` pour activer la réception des notifications de paniers.
* Affichage des photos cachées ou supprimées dans les profils.
* Correction : changement du site web, `« mails.php »` a été renommé en `« mail.php »`.
## Backend : [BNPorc](http://weboob.org/BNPorc) ##
* Correction : affichage des opérations à venir.
* Correction : vérification du succès de la rotation du mot de passe.
* Correction : la captcha a été changée sur le site web ([#461](http://weboob.org/issues/461)).
## Backend : [BP](http://weboob.org/BP) ##
* Réécriture pour utiliser BaseBrowser ([#422](http://weboob.org/issues/422)).
* Correction : initialisation du _backend_.
* Correction : gestion des erreurs de transferts.
## Backend : [CrAgr](http://weboob.org/CrAgr) ##
* Affichage de l'historique des opérations.
* Support des transferts d'argent.
* Choix du site web de l'agence dans une liste.
* Correction : ne pas conserver la liste des comptes en cache.
* Correction : support des transactions supérieures à 999 € et des négatives.
* Correction : calcul des centimes.
## Backend : [DLFP](http://weboob.org/DLFP) ##
* Support de la [nouvelle version](http://linuxfr.org/news/nouvelle-version-de-linuxfrorg--2) de _LinuxFr.org_. ([#503](http://weboob.org/issues/503))
* Clôture de la session lors de la « désinitialisation » de Weboob.
## Backend : [GeolocIP](http://weboob.org/GeolocIP) ##
* Utilisation du site web _www.geolocip.com_ à la place de _www.geolocalise-ip.com_.
Cela évite de nécessiter une authentification.
## Backend : [INA](http://weboob.org/INA) ##
* Correction : analyse des dates, des durées et des titres.
## Backend : [OuiFM](http://weboob.org/OuiFM) ##
* Correction : le site web a changé pour la récupération de la chanson actuelle.
## Backend : [Redmine](http://weboob.org/Redmine) ##
* Ajout du support de prévisualisation des modifications.
* Correction : détection lorsque le nom d'utilisateur ou le mot de passe sont invalides.
## Backend : [Yahoo](http://weboob.org/Yahoo) ##
* Correction : ne se lançait plus avec Python < 2.6.
* La commande `« search »` est maintenant implémentée.
## Backend : [Youtube](http://weboob.org/Youtube) ##
* Correction : changement du site web ([#450](http://weboob.org/issues/450)).
## Application : [boobank-munin](http://weboob.org/Boobank#Monitor-accounts-with-Munin) ##
* Sauvegarde du cache dans `« .weboob/munin/ »` et gestion des erreurs.
* Nouvelle option `« boobank_cumulate »` pour afficher les graphes comme des aires, plutôt que comme des courbes.
## Application : [havesex](http://weboob.org/havesex) ##
* La gestion des optimisations a été réécrite.
* Nouvelle commande `« query »` pour envoyer une requête à un contact (tel qu'un charme).
* Correction : ne pas quitter après avoir affiché un profil en mode interactif.
## Application : [monboob](http://weboob.org/monboob) ##
* Nouvelle option pour rediriger, via un tube (_pipe_), les e-mails vers un processus externe plutôt que de les envoyer à un serveur SMTP.
* Correction : problèmes d'encodage.
## Application : [QBoobMsg](http://weboob.org/QBoobMsg) ##
* Correction : rechargement de la liste des _backends_.
## Application : [QHaveSex](http://weboob.org/QHaveSex) ##
* Affiche l'URL des contacts.
* La liste des contacts est maintenant triée.
* Présente les photos sous forme de carrousel sur la page des profils.
## Application : [videoob](http://weboob.org/videoob) ##
* Correction : lecture des vidéos dans certains cas ([#446](http://weboob.org/issues/446)).
## Application : [webcontentedit](http://weboob.org/webcontentedit) ##
* Nouvelle commande `« log »` pour afficher toutes les révisions d'une page.
## Application : [weboob-config](http://weboob.org/Backends_Configuration#weboob-config) ##
* Nouvelle commande `« confirm »`. Elle prend un e-mail en entrée et appelle le _backend_ correspondant
pour aller sur l'adresse de confirmation. C'est utile pour automatiquement confirmer une inscription.
* La commande `« edit »` permet maintenant d'éditer interactivement un _backend_, plutôt que d'ouvrir le fichier `« ~/.weboob/backends »` avec un éditeur de texte.
## Application : [weboob-config-qt](http://weboob.org/Backends_Configuration#weboob-config-qt) ##
* Correction : plantage lors de l'ajout d'un _backend_ déjà existant.
## Application : [weboorrents](http://weboob.org/weboorrents) ##
* Complètement automatique des chemins d'accès.
## Application : [wetboobs](http://weboob.org/Wetboobs) ##
* Réécriture pour utiliser les formateurs.
#0 0x008be35b in printlinkyref (f=0xbfcc957c, tag=0x8c31a0,
link=0x9a0aed9 "http://weboob.org/AuM)", size=21) at generate.c:495
#1 0x008bec02 in linkyformat (f=0xbfcc957c, text=..., image=0, ref=0xbfcc9464)
at generate.c:542
#2 0x008bf2f0 in linkylinky (image=, f=0xbfcc957c)
at generate.c:611
#3 0x008bd85d in text (f=) at generate.c:1131
#4 0x008be240 in ___mkd_reparse (
bfr=0x96e9690 "Backend : [AuM](http://weboob.org/AuM) ##", size=39,
flags=0, f=0xbfcc95fc) at generate.c:199
#5 0x008b9cfe in Csreparse (iot=0xbfcc9694,
buf=0x96e9690 "Backend : [AuM](http://weboob.org/AuM) ##", size=39,
flags=0) at Csio.c:57
#6 0x008ba1ee in mkd_toc (p=0x973aa68, doc=0xbfcc96ec) at toc.c:55
#7 0x008bacc7 in rb_rdiscount_toc_content (argc=0, argv=0xb74e8154,
self=162103120) at rdiscount.c:60
#8 0x0034c208 in call_cfunc (func=0x8bac00 ,
recv=0, len=-1, argc=0, argv=0xb74e8154) at vm_insnhelper.c:315
#9 0x0035cc0e in vm_call_cfunc (th=, cfp=0xb7567c14,
num=0, blockptr=0x0, flag=0, id=24720, me=0x9aa90a0, recv=162103120)
at vm_insnhelper.c:402
#10 vm_call_method (th=, cfp=0xb7567c14, num=0,
blockptr=0x0, flag=0, id=24720, me=0x9aa90a0, recv=162103120)
but my understanding of how discount works is too limited to find out out how to fix this bug. My guess is something should initialize the callback function for URL but does not.
Hi, I'm using rdiscount 1.6.8 and it segfaults when I use
toc_content
on this document :The backtrace is:
I've tried to dig in with gdb:
but my understanding of how discount works is too limited to find out out how to fix this bug. My guess is something should initialize the callback function for URL but does not.