Commit Graph

358 Commits

Author SHA1 Message Date
Evan Prodromou f72b12c7b8 better @ links
darcs-hash:20080904224129-84dde-6844b29ab1818954aacaf6d9ef11371dbb11812a.gz
2008-09-04 18:41:29 -04:00
CiaranG fff677e6c4 Resolve remote subscribe and omb problems with quotes (Tickets #604 and #567)
darcs-hash:20080904065504-f6e2c-f0c770f52624e7151a93f2ed2b8813657ca88c14.gz
2008-09-04 02:55:04 -04:00
Garret Buell 51caab6e5e Elide_Tags
Make "#sanfrancisco", "#SanFrancisco", "#san_francisco", "#San.Francisco", and "#SAN-FRANCISCO" all link to http://identi.ca/tag/sanfrancisco but preserve appearance

darcs-hash:20080901025932-e3c0d-c0a939eaf7e242d88cbcb0d651c9d53718c60a9d.gz
2008-08-31 22:59:32 -04:00
Garret Buell cca78b26f7 Allow_multicase_tags
Make "#test", "#Test", and "#tEsT" all preserve appearance but link to the same tag

darcs-hash:20080901001241-e3c0d-b466f35f4f023c6c90a6d2817487c97be9a1bbca.gz
2008-08-31 20:12:41 -04:00
Garret Buell e333345722 Tags_without_fancy
Change common_tag_link to format the tag link based on the setting of $config['site']['fancy']

darcs-hash:20080831233401-e3c0d-4e0e43f5a53a6659c49d65a2b1f2a47c5cdec228.gz
2008-08-31 19:34:01 -04:00
Evan Prodromou 439c14d986 use common log in error handler rather than echo
darcs-hash:20080830053052-84dde-279d1c52e9b8696079ba686009ce2d71725a690e.gz
2008-08-30 01:30:52 -04:00
Evan Prodromou c4d6789275 split public stream to its own queue handler
Add another queue handler for the public stream. Should further
parallelize the work of sending out messages.

darcs-hash:20080829181702-84dde-594505aa73d2380b13bd98917b70b02bac597d12.gz
2008-08-29 14:17:02 -04:00
Evan Prodromou f652418863 harmonize csrf and queues
darcs-hash:20080829174012-84dde-4859ce0a34a50080f8376fa3278c3aa3e3a3046d.gz
2008-08-29 13:40:12 -04:00
Evan Prodromou 241881238c misprint of omb as oms
darcs-hash:20080828012619-84dde-f7e993f345220d3642743e9f2567d7f8e6e4b6ce.gz
2008-08-27 21:26:19 -04:00
Evan Prodromou 7887147603 change return in queue function
darcs-hash:20080828001414-d018c-fa900f60f0af20c01e8b83a74834ddf46829f4b2.gz
2008-08-27 20:14:14 -04:00
Evan Prodromou cd5dc3246e got two lines reversed
darcs-hash:20080827211940-84dde-d5b404023a2fb6b74b6255dd91910c9ec7df3cc6.gz
2008-08-27 17:19:40 -04:00
Evan Prodromou b9f0ea6f0e break up monolithic xmppdaemon into multiple queue handlers
Eventually, the poor xmppdaemon has become overloaded with extra
tasks. So, I've broken it up. Now, we have 5 background scripts, and
more coming:

* xmppdaemon.php - handles incoming XMPP messages only.
* xmppqueuehandler.php - sends notices from the queue out through XMPP.
* smsqueuehandler.php - sends notices from the queue out over SMS
* ombqueuehandler.php - sends notices from the queue out over OMB
* xmppconfirmhandler.php - sends confirmation requests out over XMPP.

This is in addition to maildaemon.php, which takes incoming messages.

None of these are "true" daemons -- they don't daemonize themselves
automatically. Use nohup or another tool to background them. monit can
also be useful to keep them running.

At some point, these might become fork()'ing daemons, able to handle
more than one notice at a time. For now, I'm just running multiple
instances, hoping they don't interfere.

darcs-hash:20080827205407-84dde-97884a12f5f4e54c93bc785bd280683d1ee7e749.gz
2008-08-27 16:54:07 -04:00
Evan Prodromou 1df845db78 fix random function name
darcs-hash:20080829021854-84dde-818492a31c07dd0921c2a693095ca7ac901b6d35.gz
2008-08-28 22:18:54 -04:00
Evan Prodromou 54bee1b999 code for session token
darcs-hash:20080829015304-84dde-1c93203bdfbd4c1696cdd3c07212ff16a9f727dd.gz
2008-08-28 21:53:04 -04:00
Evan Prodromou cf3902d8ac get language before setting it.
darcs-hash:20080828005323-84dde-8f69e1e6115faa544c22436539148dac53ed6f65.gz
2008-08-27 20:53:23 -04:00
Evan Prodromou 4cc84c3225 never allow blank passwords
darcs-hash:20080825185245-84dde-f2ad86c1aedc2a42f7b468775234be53a7e84d5b.gz
2008-08-25 14:52:45 -04:00
Evan Prodromou cba4b50e44 use common_sql_now() instead of DB_DataObject_Cast
darcs-hash:20080825182338-84dde-ec0edef9469b294b7e23945f1bc7d810da988ed7.gz
2008-08-25 14:23:38 -04:00
Evan Prodromou e8e91dc29d use UTF-8 as the internal encoding
darcs-hash:20080817153024-84dde-ca566d665fff08d52f1f9796e2731417585d4c6f.gz
2008-08-17 11:30:24 -04:00
Evan Prodromou 2c3ed64027 LOG_ERROR -> LOG_ERR (again)
darcs-hash:20080807234227-84dde-a64619c71de020aa2284ca1a36ea2a71ff8b29a6.gz
2008-08-07 19:42:27 -04:00
Evan Prodromou 80aa8b83db fix config global
darcs-hash:20080806122119-84dde-41fb0645db58ac5ce74b485c8cb68f7275e74915.gz
2008-08-06 08:21:19 -04:00
Evan Prodromou 0d58d4216b fixup locale stuff from mikenz
darcs-hash:20080806040433-84dde-a504751a8a0329a37d866e68a9ecda6a5d629c55.gz
2008-08-06 00:04:33 -04:00
mikec 369354505f Set the C locate to avoid tr_TR php bug see http://www.topolis.lt/php/#35050
darcs-hash:20080804133727-edabd-4bd34431d0ab8519ec512b59be354720925da9a0.gz
2008-08-04 09:37:27 -04:00
Evan Prodromou 4c8dfadf2d make init of lang environment happen earlier, or when user language may have changed
darcs-hash:20080806034515-84dde-e32cbfec2890f50b610d0441659180038b060473.gz
2008-08-05 23:45:15 -04:00
Evan Prodromou b1f28f4457 try to slim down the top menu so it all fits
darcs-hash:20080731020933-84dde-80d7abb2d681a9f748b16f6245d33396e1f899b2.gz
2008-07-30 22:09:33 -04:00
Evan Prodromou f2ae665e13 let @rejon do the homework http://ur1.ca/17c
darcs-hash:20080731020433-84dde-641127c2de488087c1525fc773d544ba5b136550.gz
2008-07-30 22:04:33 -04:00
Mike Cochrane 9d89e7b4ac Update some gettext strings and number the arguements so life is easier for translators
darcs-hash:20080729080641-533db-560337e226a02dd6fc671f090883d4bedd50eaaa.gz
2008-07-29 04:06:41 -04:00
Evan Prodromou 353aa5a0d8 move the language info, fix dir for locales
darcs-hash:20080730035446-84dde-8ce202ea6956bb49e1be98307136fc299862ab9b.gz
2008-07-29 23:54:46 -04:00
Evan Prodromou 4577182d2c rel
darcs-hash:20080729182558-84dde-3f3eab4da119cf57fb55896b114146fd72007824.gz
2008-07-29 14:25:58 -04:00
Evan Prodromou 7e8a58923f change 'deletenotice' to 'notice/delete'
darcs-hash:20080726034209-84dde-02b25960aeb361319f8037b17aed6290d477cf7b.gz
2008-07-25 23:42:09 -04:00
Evan Prodromou b5bd567668 Queue_item correct name in dequeue function
darcs-hash:20080726033958-84dde-09d117b3e5bb997ddfd6548806ce7a51a38434e7.gz
2008-07-25 23:39:58 -04:00
Mike Cochrane dd3ae36084 Cache the DateTimeZon objects
darcs-hash:20080724234619-533db-015a2751ade3b5b8befb8a735fe89acd4742c4b9.gz
2008-07-24 19:46:19 -04:00
Mike Cochrane 22c51b27ef No errors if it's not set
darcs-hash:20080722082840-533db-6df7b1fe05bbcaef6862d3e9b5ee3bcd277523e7.gz
2008-07-22 04:28:40 -04:00
Mike Cochrane 334b840c3e Only Set reply details if there is something to reply to
darcs-hash:20080722082724-533db-ead12f037aa716dc548d6a4b04493ada5049ec96.gz
2008-07-22 04:27:24 -04:00
matthew.gregg ed37d83fa3 Opensearch updates
This adds htaccess and searches for people and notices.

darcs-hash:20080720195505-982e4-3f03e6ab4c466ae131e025b6a3c26c7bb9a99c03.gz
2008-07-20 15:55:05 -04:00
Mike Cochrane 88717d8805 User definable timezones. Work in UTC internally and display per user/site default. http://laconi.ca/PITS/00011
darcs-hash:20080720141325-533db-87cb60501434c9dc0ac13716ba5d8b17754431f5.gz
2008-07-20 10:13:25 -04:00
Mike Cochrane de81e92f0b Strip characters that shouldn't be in xml. Fixes http://laconi.ca/PITS/00253 for future messages, or all after a regeneration of rendered messages
darcs-hash:20080720122832-533db-7fda43b257160b90788f0d860d50df995d463ee8.gz
2008-07-20 08:28:32 -04:00
Mike Cochrane bd0b6970ae Fix undefined variable error
darcs-hash:20080720100024-533db-d2b5b63f169b6e16e08e81c8da63b7f9f69e7521.gz
2008-07-20 06:00:24 -04:00
Mike Cochrane 92e90ee636 Notice error
darcs-hash:20080720094917-533db-386e12dbeabcfb9bc74cdce11e6bc197964929b7.gz
2008-07-20 05:49:17 -04:00
matthew.gregg e20362a60a Adds Opensearch description
darcs-hash:20080720015823-982e4-b33e1ef01cd071e958c9c51625190513b86594f3.gz
2008-07-19 21:58:23 -04:00
matthew.gregg 6dd211530f Patch for PITS 00032, 00033, 00034
darcs-hash:20080719003417-982e4-7004f8a4dfb447f941457c30b0b2289eee5582e6.gz
2008-07-18 20:34:17 -04:00
matthew.gregg faa3933fbb Added notice deletion http://laconi.ca/PITS/00045
Removes selected notice and any replies that reference it.
Attempts to de-queue anything pending.

This patch does not archive notices.

darcs-hash:20080716032045-982e4-a0b5d37ecfa84796f1681dda54110094ad1424c6.gz
2008-07-15 23:20:45 -04:00
Mike Cochrane 5d84485001 First cut at hastags support.
darcs-hash:20080720055702-533db-193ed842b0d0a952bef71a3c5287213ada0ef15c.gz
2008-07-20 01:57:02 -04:00
Mike Cochrane e4f1d6f504 More notice errors and fix and incorrect variable name
darcs-hash:20080720055558-533db-781488916e178921f1bcd6ea141df10c1a0ace55.gz
2008-07-20 01:55:58 -04:00
Evan Prodromou e0e5013a32 don't show register link if the site is closed
darcs-hash:20080724235804-84dde-daf159e938289ad2d593d3825ce845bcbecac053.gz
2008-07-24 19:58:04 -04:00
Evan Prodromou 905ba4998b fix content check so it shows zeros
darcs-hash:20080722163618-84dde-5a519a92a84bb94de225fbb3da61af51cfdfdef4.gz
2008-07-22 12:36:18 -04:00
zach 140689800b Twitter-compatible API - Error handling that better matches Twitter's
darcs-hash:20080720070905-ca946-dda57dd92210461361fd58b7a3244bf24c01e801.gz
2008-07-20 03:09:05 -04:00
Evan Prodromou 0876b60006 rewrite for settings of sms
darcs-hash:20080721083758-84dde-76534893df215e9754c00c1e0a6d6351f64f1818.gz
2008-07-21 04:37:58 -04:00
Evan Prodromou 3372a98f8e add sms broadcast to broadcasting
darcs-hash:20080720195549-84dde-4193f27f8efda497fbe55f1c514fe30e4dd8a69d.gz
2008-07-20 15:55:49 -04:00
Evan Prodromou 5fd0a788d5 start sms settings
darcs-hash:20080720193005-84dde-97e098996309550dc98b658923d84620e7715c69.gz
2008-07-20 15:30:05 -04:00
Mike Cochrane a1515e5411 Some more notice errors - I guess I'm the only one developing with E_ALL
darcs-hash:20080720033236-533db-95f6a169f73e69549a8ff0eefb0e4c8ba21f090e.gz
2008-07-19 23:32:36 -04:00
Mike Cochrane 08dfd72bad A couple more notice errors
darcs-hash:20080720025546-533db-7044949bfaa6676c86f3e1d84d20ecb85aab0937.gz
2008-07-19 22:55:46 -04:00
Mike Cochrane 32136f978a Another notice error
darcs-hash:20080720023510-533db-74cdcbc59c5956c1bd1ce3b01921fd4cd1c7376c.gz
2008-07-19 22:35:10 -04:00
Mike Cochrane e59cfea9bc Fix a couple of notice errors
darcs-hash:20080720023259-533db-6a4e8abb730b2192fcf2887a665dee2e1048529a.gz
2008-07-19 22:32:59 -04:00
Evan Prodromou 54a931a31a LOG_ERROR -> LOG_ERR
darcs-hash:20080718190835-84dde-1ce20cb3ac604f0e9fa9e4ed86118bca7bec3a06.gz
2008-07-18 15:08:35 -04:00
zach 42bbd38417 Twitter-API: /account/verify_credentials.format now works
darcs-hash:20080718040332-ca946-0c8da4f5e98355ccbb1ee929693fa74bff3c2481.gz
2008-07-18 00:03:32 -04:00
zach ac2d811a46 Twitter-compatible API - code cleanup
darcs-hash:20080716220223-ca946-e3eed117cded61eb9c2d2805fd07758f883fb85b.gz
2008-07-16 18:02:23 -04:00
zach 0c90e94864 First volly at a Twitter-compatible API. Just working out the
detials of 1) Basic Auth and 2) dispatch to the right Action class
files to handle the requests.

You can hit it with...

	http://localhost/laconica/api/public_timeline.json

or to try Basic Auth you can try something like:

	http://nickname:password@localhost/laconica/api/statuses/friends_timeline.xml

Although that actual method isn't done yet, so it should authenticate
and then complain.

darcs-hash:20080712081247-ca946-acd3e0e2762c7d9ff0cb3cd7a53cfdfcc5b26660.gz
2008-07-12 04:12:47 -04:00
Evan Prodromou c51d1521f0 uniquify the list of reply nicknames (DOH!)
darcs-hash:20080717164042-84dde-191bc47dc302911e4ceae0d3b1e74116bb95bcba.gz
2008-07-17 12:40:42 -04:00
Evan Prodromou 3ea1119e50 define syslog variables in common.php
darcs-hash:20080717163613-84dde-2684415a03d1a2754e148e4921ce39ad075bbc5b.gz
2008-07-17 12:36:13 -04:00
Evan Prodromou 265d267d81 remove tag URI stuff; unused and confusing
darcs-hash:20080716205359-84dde-590916f8812c7c03a2b81b3e7aeb021194ac0f25.gz
2008-07-16 16:53:59 -04:00
Evan Prodromou eb9715992c utility function for getting a profile URI
I added a utility function for getting a profile URI. At some point we
need to push commonalities between Remote_profile and User into the
Profile class; single-table inheritance. We do a lot of switching
around for no good reason on users and profiles.

darcs-hash:20080716152511-84dde-6f73d947d11083e7235756fde635e145f02e2483.gz
2008-07-16 11:25:11 -04:00
Dave Barry 8b1bf1e38c Fixup rememberme cookie handling in the POST only case
darcs-hash:20080714050037-08d49-b00c6370c4eed918eee94f828e2d6098b922ba69.gz
2008-07-14 01:00:37 -04:00
Evan Prodromou a440afda54 sigh
darcs-hash:20080716031718-84dde-74ce45fdb3be03ae7974f76698d43ecf78730f23.gz
2008-07-15 23:17:18 -04:00
Evan Prodromou c0527f7952 yet more array munging
darcs-hash:20080716031544-84dde-a04b4057e5d7aa394ae061daac47f38089ff5343.gz
2008-07-15 23:15:44 -04:00
Evan Prodromou 542cadd33c lcase tname
darcs-hash:20080716031459-84dde-ccb707bb9059bbc95eabb48cf32edf6dfe803108.gz
2008-07-15 23:14:59 -04:00
Evan Prodromou af03429704 more array munging
darcs-hash:20080716031346-84dde-2aa160254fd80537ba89df2b39b4560c044d1bab.gz
2008-07-15 23:13:46 -04:00
Evan Prodromou f3409f4e70 back out my change to the link format; see if it helps
darcs-hash:20080716030200-84dde-eaff2cdf00d9268594b5ecf7913a6746a516af62.gz
2008-07-15 23:02:00 -04:00
Evan Prodromou 1e9fabbfa3 got the args to array unshift backwards
darcs-hash:20080716030022-84dde-d24e4881e143163031a7b6c077d3eed77a58b579.gz
2008-07-15 23:00:22 -04:00
Evan Prodromou 225208e634 add alternative reply format
darcs-hash:20080716025842-84dde-b4100ca8cec891d34d14c1bc66912cbd3762bdfb.gz
2008-07-15 22:58:42 -04:00
erik ae9fb6a4e5 PITS.00114: 'T USERNAME' should work like an @-link
darcs-hash:20080709010415-7f4fe-943321fd9ad9df3890599fc1b3f99e97db16e43d.gz
2008-07-08 21:04:15 -04:00
Earle Martin 1509f3893c Don't capture trailing ")", "]" or ">" as part of URLs
darcs-hash:20080715022045-68ac8-8f8222e7a97009297bed6ff88b6c020192fe6dd2.gz
2008-07-14 22:20:45 -04:00
Evan Prodromou 61487d4cd0 move email settings to its own tab
darcs-hash:20080715221826-84dde-8a3692f95199818c11dbb0be159d07f1ab10cf6a.gz
2008-07-15 18:18:26 -04:00
Evan Prodromou 8c42fac88a utility for getting avatar or default avatar
darcs-hash:20080714034443-84dde-f443b04e6733b22709d746a700c0ba032d7afb60.gz
2008-07-13 23:44:43 -04:00
Evan Prodromou 68528246e7 extra space in link
darcs-hash:20080714060517-84dde-7ff9417a790ded358d7fc5fe0d565fc5f3591906.gz
2008-07-14 02:05:17 -04:00
Mike Cochrane 834c21b2aa Merge some gettext strings to one line so translation tools are happier
darcs-hash:20080713044608-533db-ee16aecee9b6d82b22ce6a25f6a9573c23eee9f8.gz
2008-07-13 00:46:08 -04:00
Mike Cochrane e6d74660c3 Stop after a redirect. Fixed remote subscription for me.
darcs-hash:20080710055726-533db-4b96201b090970f390d62b305256a786a1a96d44.gz
2008-07-10 01:57:26 -04:00
Mike Cochrane 8fe61b0b92 Missing sprintf
darcs-hash:20080710050459-533db-251d9fec6b700628e3e56607f25e551381f2fad2.gz
2008-07-10 01:04:59 -04:00
Mike Cochrane da19d12620 Bracket in correct place
darcs-hash:20080710050202-533db-31739e6dc9d57058df99c8e6592249563f484179.gz
2008-07-10 01:02:02 -04:00
Mike Cochrane 7e38142d4a Resolve conflicts and convert _t( to _( where it was introduced again.
darcs-hash:20080710045126-533db-ffd9bcfe1295b3a376579ed7cd2278d5597b1884.gz
2008-07-10 00:51:26 -04:00
Mike Cochrane 4b656f47df Merge conflicts and kill a whole lot of trailing whitespace on lines.
darcs-hash:20080709224630-533db-b5399baef280133858dac9b89c2cd6a2aba9f861.gz
2008-07-09 18:46:30 -04:00
Mike Cochrane 67921b1c18 bracket in the wrong place
darcs-hash:20080708130408-533db-9e7fb996a7c37af9557f097d785a53ff77c7559f.gz
2008-07-08 09:04:08 -04:00
Mike Cochrane 4d65b99c68 Translate a few more strings.
darcs-hash:20080708100519-533db-b326ea0bb16ea6c8244cfd00a0dd639d0553dd21.gz
2008-07-08 06:05:19 -04:00
Mike Cochrane 87b494f1eb Convert _t() to _() for gettext.
darcs-hash:20080708094531-533db-83399a46e6ec4c0fcc6249b0235961f969d1ae73.gz
2008-07-08 05:45:31 -04:00
Evan Prodromou a25f5010e6 add the logfile entry to common, a little recoding in common_log
darcs-hash:20080712151521-84dde-a81c53bacbe15e77b70fc460ad9143e7e4f8402c.gz
2008-07-12 11:15:21 -04:00
zach 74c3b9de23 Log msgs can now go to a file as well as syslog
darcs-hash:20080711070021-ca946-8f8f385ddacc098c8a0c2627e3a8690a9f3aa2c7.gz
2008-07-11 03:00:21 -04:00
Evan Prodromou 69445a6179 get avatar by nickname
This is to support third-party apps that want to build an URL to an
avatar given a user's name.

darcs-hash:20080711060045-84dde-08b0072de764d5b67ce7abe73fa0553f32de4ab3.gz
2008-07-11 02:00:45 -04:00
Evan Prodromou 63d34061a2 add notice search rss ("tracking")
darcs-hash:20080709234228-84dde-f24d277947ab49031a1b6d74184568fe2f50a685.gz
2008-07-09 19:42:28 -04:00
Evan Prodromou f09382f9a4 try some scoping
darcs-hash:20080709223803-84dde-c04d91be4d0a39d173297633cf5cad464ea52c4e.gz
2008-07-09 18:38:03 -04:00
Evan Prodromou 5d525893c3 use smarter query builder
darcs-hash:20080709223701-84dde-a2bc25d65eeb70d24d4c598ef962e17062390fc4.gz
2008-07-09 18:37:01 -04:00
Evan Prodromou f20eca5187 fix syntax errors in URL builder
darcs-hash:20080709223409-84dde-809bfe5eb294f24cb3a99faf6436e57ff054cd16.gz
2008-07-09 18:34:09 -04:00
Evan Prodromou 62747030ca add fancy urls for search
darcs-hash:20080709223144-84dde-10f7f9db7dc5ba200fdeea4d6c1f277e71c54c16.gz
2008-07-09 18:31:44 -04:00
Evan Prodromou 5adb386774 wrong comparison operator for saving reply to self
darcs-hash:20080709204050-84dde-b7ed70cb1820e8257f47d5cae23fbc1e1ff5a52f.gz
2008-07-09 16:40:50 -04:00
Evan Prodromou 709f9fe1b7 don't record a reply_to for responses to self
darcs-hash:20080709203925-84dde-d494ddd0188bea229ca75391949ec2f4c6a7bdb3.gz
2008-07-09 16:39:25 -04:00
Evan Prodromou cbe07c1d37 store replies on the notice record, not the reply record
darcs-hash:20080709202716-84dde-30ffe46b711ff108fa210757eeb856803b09de82.gz
2008-07-09 16:27:16 -04:00
Evan Prodromou c8162f7d97 accept replyto for fancy newnotice URL
darcs-hash:20080709072833-84dde-42c600c5facb073f502318cae389832bd2115927.gz
2008-07-09 03:28:33 -04:00
Evan Prodromou 99eaec8c89 forgot to change null check at beginning of set user
darcs-hash:20080709062502-84dde-7e4c574dc0a710bcd0b662bfbab263308d1c9cd5.gz
2008-07-09 02:25:02 -04:00
Evan Prodromou a67108190a don't refetch user objects so much
darcs-hash:20080709055343-84dde-ac550608a4736ce5daed70af19866c75a1cfb416.gz
2008-07-09 01:53:43 -04:00
Evan Prodromou 625ac7e1d9 some debug stuff for remember me
darcs-hash:20080709051943-84dde-1b866d62097c549f14fcf783f4404ae1b31cae18.gz
2008-07-09 01:19:43 -04:00
Evan Prodromou 485314fe20 don't call text if you don't mean it
darcs-hash:20080708235004-84dde-bca47ff45828387ed256195ef5cf9051f99a5163.gz
2008-07-08 19:50:04 -04:00
Evan Prodromou 91af9de7e4 don't do an end tag for empty elements
darcs-hash:20080708233218-84dde-45850157b8fce2ac1d5c1d16a4fdb4fbcc817b76.gz
2008-07-08 19:32:18 -04:00