// 990117 bkoz
// test functionality of basic_filebuf for char_type == char
// this is a data file for 27filebuf.cc

// Copyright (C) 1997-1999 Cygnus Solutions
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.

// This library 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 the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING.  If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.

/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme
/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow

/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose

/mnt/cdrom/marley-songs_of_freedom/disk_1/
/mnt/cdrom/marley-songs_of_freedom/disk_2/
/mnt/cdrom/marley-songs_of_freedom/disk_4/

/mnt/cdrom/marley-songs_of_freedom/disk_1/back out
/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low
/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka)
/mnt/cdrom/marley-songs_of_freedom/disk_1/caution
/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice
/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat
/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror
/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer
/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites
/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting
/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not
/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood
/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown
/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time
/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee
/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready
/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on
/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down
/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe
/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel
/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party
/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original)
/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining
/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original)
/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley
/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin'
/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle
/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy
/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up
/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly
/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide
/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff
/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside
/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion
/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba
/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself
/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread
/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble
/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant
/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face
/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver
/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock
/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite
/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system
/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card
/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12
/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12  mix
/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah
/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise
/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop
/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub
/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up
/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation
/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi
/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12  mix)
/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl
/mnt/cdrom/marley-songs_of_freedom/disk_4/survival
/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un
/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe

/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not
/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue

/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands
/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds
/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again
/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing
/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone
/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know
/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave
/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be
/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul

So I take a break, wander down to the park to stand, then lean into
the concrete railing demarking the beginnings of space, oceanic
space. I watch the waves break, and form, and ease back out to sea and
wrap my arms around myself and hug tightly because it's early in the
morning and windy, and the sun is late getting out of bed today, which
is good because if there was brilliant light illuminating all the
beauty around me I would be shocked, stunned, forced to retreat back
into my cabana in a daze, blinded by hummingbirds and callilillies and
un-named red, yellow, and blue flowers. Green envelopes me, waves
sooth me. I can see the wind flip the top of the waves seaward, right
before they break. The sea seems so calm from my perch above the fray
that I wonder if maybe there is just some part of the deepest, most
abstract ocean where there is a large creature who happily chews
plankton and wags its tail in gentle, adulating waves that spread and
move and gracefully glide thousands of miles, to crash upon a beach,
one after the other, politely waiting for a turn to dance with the
seashore.

I know: it is what the Mexican schoolchildren call "la vibora de la
mer," the serpent of the sea.





