pulseaudio/src/pulsecore
Colin Guthrie 3542112888 modargs: Ensure modargs can be accessed in their raw form.
When dealing with proplists passed as modargs, we need the unescaped form
in order to properly deal with quotes (ticks + double quotes). As the previous
code always called pa_unescape() before adding it into the modarg hashmap, this
was impossible.

This modification simply stores two proplists. If the unescaped value
is different from the raw value, we also keep the raw form.

When parsing proplist arguments, we use this raw form and do the unescaping
ourselves when processing it.

This changes the current behaviour which required you to double escape
proplists arguments. This double escape mechanism did allow you to mix
and match what types of quotes you used to delimit the individial
proplist values, but it made the actual data much harder to pass in.

This approach has the drawback that you cannot mix and match the quotes
you use, but this is a very minor issue and IMO pales in comparison to
the general clarity gained.

See the discussion on the mailing list for more background:
 http://lists.freedesktop.org/archives/pulseaudio-discuss/2011-September/011220.html
2011-09-09 19:50:49 +01:00
..
ffmpeg build: Don't include empty Makefile.am in subdirs 2011-01-31 12:40:43 +00:00
arpa-inet.c win32: Make some unused-variable warnings go away 2011-06-24 00:34:05 +01:00
arpa-inet.h Use pulsecore/arpa-inet.h to make arpa/inet.h functionality available 2011-03-19 13:41:05 +01:00
asyncmsgq.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
asyncmsgq.h asyncmsgq: introduce pa_asyncmsgq_dispatching() 2009-08-15 22:22:57 +02:00
asyncq.c Fixup #include directives according to Coding Style 2011-03-11 11:49:39 +00:00
asyncq.h headers: Some trivial fixes for some documentation typos 2010-01-05 21:27:33 +01:00
atomic.h More spelling fixes 2011-08-25 11:27:47 +01:00
aupdate.c aupdate: implicitly call _write_swap() if it wasn't called explicitly 2009-08-16 02:02:51 +02:00
aupdate.h More spelling fixes 2011-08-25 11:27:47 +01:00
auth-cookie.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
auth-cookie.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
authkey.c More spelling fixes 2011-08-25 11:27:47 +01:00
authkey.h get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
avahi-wrap.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
avahi-wrap.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
bitset.c Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
bitset.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
card.c core: Add a new hook PA_CORE_HOOK_CARD_PROFILE_CHANGED 2011-02-25 11:28:01 +00:00
card.h card: get rid of description field which is unused 2009-06-17 03:16:13 +02:00
cli-command.c More spelling fixes 2011-08-25 11:27:47 +01:00
cli-command.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
cli-text.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
cli-text.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
cli.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
cli.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
client.c Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
client.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
conf-parser.c conf-parser: make use of pa_strip() wherever applicable 2010-02-21 22:00:16 +01:00
conf-parser.h conf: add pa_config_parse_not_bool() for parsing inverse boolean configuration options 2009-08-12 20:14:31 +02:00
core-error.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
core-error.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
core-rtclock.c pulsecore:: Define _POSIX_C_SOURCE locally for rtclock on OSX 2011-04-23 18:23:37 +01:00
core-rtclock.h Apply #ifdefs around functionality not available on win32 2011-02-17 11:58:22 +01:00
core-scache.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
core-scache.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
core-subscribe.c More spelling fixes 2011-08-25 11:27:47 +01:00
core-subscribe.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
core-util.c More spelling fixes 2011-08-25 11:27:47 +01:00
core-util.h More spelling fixes 2011-08-25 11:27:47 +01:00
core.c module-suspend-on-idle: Move vacuum code to core 2011-09-09 09:55:48 +01:00
core.h More spelling fixes 2011-08-25 11:27:47 +01:00
cpu-arm.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
cpu-arm.h cpu: Add CPU information to pa_core 2010-09-23 17:17:03 +05:30
cpu-orc.c Include config.h consistently in source files and not in headers 2011-08-11 13:21:31 +02:00
cpu-orc.h Include config.h consistently in source files and not in headers 2011-08-11 13:21:31 +02:00
cpu-x86.c Fix up according to Coding Style 2011-03-11 11:49:35 +00:00
cpu-x86.h cpu: Add CPU information to pa_core 2010-09-23 17:17:03 +05:30
cpu.h cpu: Add CPU information to pa_core 2010-09-23 17:17:03 +05:30
creds.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
database-gdbm.c More spelling fixes 2011-08-25 11:27:47 +01:00
database-simple.c More spelling fixes 2011-08-25 11:27:47 +01:00
database-tdb.c tdb: use O_CLOEXEC if available 2009-10-30 04:53:15 +01:00
database.h More spelling fixes 2011-08-25 11:27:47 +01:00
dbus-shared.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
dbus-shared.h dbus: split dbus-util into dbus-shared 2009-03-30 20:56:55 +03:00
dbus-util.c Remove extra ; s where they are not allowed in strict C99 2011-08-25 18:21:49 +05:30
dbus-util.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
dllmain.c win32: Make some unused-variable warnings go away 2011-06-24 00:34:05 +01:00
dynarray.c save some memory by increasing the dynamic array at a slower rate 2008-06-27 19:12:03 +02:00
dynarray.h some modernizations 2008-06-27 19:11:28 +02:00
endianmacros.h endian: fix LE/BE order for 24 bit accessor functions 2009-05-01 04:13:15 +02:00
esound.h More spelling fixes 2011-08-25 11:27:47 +01:00
fdsem.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
fdsem.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
flist.c Make gcc --std=c99 happy 2011-09-03 12:17:28 +02:00
flist.h More spelling fixes 2011-08-25 11:27:47 +01:00
g711.c merge 'lennart' branch back into trunk. 2007-10-28 19:13:50 +00:00
g711.h fix comment 2007-05-22 23:08:34 +00:00
hashmap.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
hashmap.h hashmap: implement pa_hashmap_last() 2009-06-17 03:02:34 +02:00
hook-list.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
hook-list.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
i18n.c Move i18n.[ch] to src/pulsecore 2011-08-11 13:23:42 +02:00
i18n.h Move i18n.[ch] to src/pulsecore 2011-08-11 13:23:42 +02:00
idxset.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
idxset.h idxset: Fix _get_by_data() comment. 2010-01-06 10:48:32 +02:00
iochannel.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
iochannel.h More spelling fixes 2011-08-25 11:27:47 +01:00
ioline.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
ioline.h More spelling fixes 2011-08-25 11:27:47 +01:00
ipacl.c Merge remote-tracking branch 'mkbosmans/mingw32-build' 2011-03-20 11:18:19 +00:00
ipacl.h headers: minor cleanups 2009-04-30 02:33:49 +02:00
llist.h llist: add PA_LLIST_FOREACH_SAFE macro for iteration that allows deleting 2009-08-26 20:05:48 +02:00
lock-autospawn.c Move i18n.[ch] to src/pulsecore 2011-08-11 13:23:42 +02:00
lock-autospawn.h move autospawn lock to pulsecore/ since we don't need it in the client anymore 2008-09-08 17:22:27 +03:00
log.c log: Add missing pulsecore/thread.h include 2011-08-12 20:04:15 +05:30
log.h More spelling fixes 2011-08-25 11:27:47 +01:00
ltdl-helper.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
ltdl-helper.h modules: introduce PA_MODULE_DEPRECATED() macro for marking modules deprecated 2009-05-28 02:47:36 +02:00
macro.h Make gcc --std=c99 happy 2011-09-03 12:17:28 +02:00
mcalign.c More spelling fixes 2011-08-25 11:27:47 +01:00
mcalign.h Fix spelling sucess -> success 2011-08-24 17:38:16 +05:30
memblock.c More spelling fixes 2011-08-25 11:27:47 +01:00
memblock.h More spelling fixes 2011-08-25 11:27:47 +01:00
memblockq.c More spelling fixes 2011-08-25 11:27:47 +01:00
memblockq.h More spelling fixes 2011-08-25 11:27:47 +01:00
memchunk.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
memchunk.h More spelling fixes 2011-08-25 11:27:47 +01:00
memtrap.c Squash the last gcc warnings 2011-09-03 12:17:13 +02:00
memtrap.h memtrap,aupdate: split atomic update from memtrap into seperate aupdate framework 2009-04-22 19:10:09 +02:00
mime-type.c mime: drop additional whitespace from mime types 2009-05-11 19:56:13 +02:00
mime-type.h Include config.h consistently in source files and not in headers 2011-08-11 13:21:31 +02:00
modargs.c modargs: Ensure modargs can be accessed in their raw form. 2011-09-09 19:50:49 +01:00
modargs.h More spelling fixes 2011-08-25 11:27:47 +01:00
modinfo.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
modinfo.h modules: introduce PA_MODULE_DEPRECATED() macro for marking modules deprecated 2009-05-28 02:47:36 +02:00
module.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
module.h core: New function: pa_module_update_proplist(). 2010-08-19 12:10:01 +03:00
msgobject.c object: speed up type verification by not relying on strcmp() 2009-08-21 21:27:44 +02:00
msgobject.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
mutex-posix.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
mutex-win32.c Adapt win32 specific code to current API 2011-02-17 11:58:22 +01:00
mutex.h More spelling fixes 2011-08-25 11:27:47 +01:00
namereg.c namereg: choose default sink/source as soon as one becomes available 2009-09-18 22:42:37 +02:00
namereg.h namereg: add new pa_namereg_is_valid_name_or_wildcard() call 2009-08-29 03:56:03 +02:00
native-common.h capture: Implement per-stream volume control for capture streams. 2011-06-22 22:45:27 +01:00
object.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
object.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
once.c once: make once related variables volatile 2010-02-09 22:31:30 +00:00
once.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
packet.c get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
packet.h get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
parseaddr.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
parseaddr.h headers: minor cleanups 2009-04-30 02:33:49 +02:00
pdispatch.c capture: Implement per-stream volume control for capture streams. 2011-06-22 22:45:27 +01:00
pdispatch.h pdispatch: various modernizations 2009-08-26 20:07:04 +02:00
pid.c More spelling fixes 2011-08-25 11:27:47 +01:00
pid.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
pipe.c Fix dependencies and include necessary headers 2011-02-17 11:58:22 +01:00
pipe.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
play-memblockq.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
play-memblockq.h scache: when playing a sample from the cache make sure not queue them up when the sink is suspended 2010-02-21 17:48:55 +01:00
play-memchunk.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
play-memchunk.h scache: when playing a sample from the cache make sure not queue them up when the sink is suspended 2010-02-21 17:48:55 +01:00
poll.c pa_poll(): Simplify detection of invalid fds in select() emulation mode 2011-04-18 10:31:51 +02:00
poll.h Fix up according to Coding Style 2011-03-11 11:49:35 +00:00
prioq.c Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
prioq.h More spelling fixes 2011-08-25 11:27:47 +01:00
proplist-util.c Fix dependencies and include necessary headers 2011-02-17 11:58:22 +01:00
proplist-util.h get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
protocol-cli.c Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
protocol-cli.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
protocol-dbus.c More spelling fixes 2011-08-25 11:27:47 +01:00
protocol-dbus.h dbus: Handle the cases when a non-existing interface is detected in an incoming message. 2009-12-03 21:50:19 +00:00
protocol-esound.c More spelling fixes 2011-08-25 11:27:47 +01:00
protocol-esound.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
protocol-http.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
protocol-http.h http: export information about currently active server strings 2009-04-30 01:35:18 +02:00
protocol-native.c More spelling fixes 2011-08-25 11:27:47 +01:00
protocol-native.h protocol-native: print more volume change debug messages to easy tracking down of feedback loops 2009-08-27 00:05:54 +02:00
protocol-simple.c More spelling fixes 2011-08-25 11:27:47 +01:00
protocol-simple.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
pstream-util.c get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
pstream-util.h get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
pstream.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
pstream.h get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
queue.c some modernizations 2008-06-27 19:15:32 +02:00
queue.h some modernizations 2008-06-27 19:15:32 +02:00
random.c win32: Make some unused-variable warnings go away 2011-06-24 00:34:05 +01:00
random.h get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
ratelimit.c ratelimit: fix log levels of log suppression messages 2011-01-31 11:36:24 +00:00
ratelimit.h ratelimit: fix log levels of log suppression messages 2011-01-31 11:36:24 +00:00
refcnt.h add simple ref counting debugging framework 2009-03-25 02:42:18 +01:00
remap.c Fix up according to Coding Style 2011-03-11 11:49:35 +00:00
remap.h remap: move remapping code in separate file 2009-08-20 18:23:42 +02:00
remap_mmx.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
remap_sse.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
resampler.c More spelling fixes 2011-08-25 11:27:47 +01:00
resampler.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
rtkit.c core: ask RealtimeKit for RT scheduling 2009-06-19 04:19:08 +02:00
rtkit.h core: ask RealtimeKit for RT scheduling 2009-06-19 04:19:08 +02:00
rtpoll.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
rtpoll.h More spelling fixes 2011-08-25 11:27:47 +01:00
sample-util.c More spelling fixes 2011-08-25 11:27:47 +01:00
sample-util.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
sconv-s16be.c Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
sconv-s16be.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
sconv-s16le.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
sconv-s16le.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
sconv.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
sconv.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
sconv_sse.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
semaphore-osx.c Fix up according to Coding Style 2011-03-11 11:49:35 +00:00
semaphore-posix.c semaphore: introduce static semaphores 2009-04-21 21:25:27 +02:00
semaphore-win32.c Fix up according to Coding Style 2011-03-11 11:49:35 +00:00
semaphore.h semaphore: introduce static semaphores 2009-04-21 21:25:27 +02:00
shared.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
shared.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
shm.c More spelling fixes 2011-08-25 11:27:47 +01:00
shm.h get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
shmasyncq.c get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
shmasyncq.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
sink-input.c sink-input: Ensure no volumes are applied for passthrough streams 2011-08-18 12:46:46 +05:30
sink-input.h More spelling fixes 2011-08-25 11:27:47 +01:00
sink.c passthrough: Fix setting volume to unamplified again 2011-08-29 14:32:27 +05:30
sink.h sink-input: Ensure no volumes are applied for passthrough streams 2011-08-18 12:46:46 +05:30
sioman.c Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
sioman.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
sndfile-util.c sndfile-util: Check return value of sf_command for errors 2011-08-25 18:21:49 +05:30
sndfile-util.h sndfile: big rework of libsndfile interfacing code 2009-05-26 00:05:28 +02:00
socket-client.c Use pulsecore/arpa-inet.h to make arpa/inet.h functionality available 2011-03-19 13:41:05 +01:00
socket-client.h socket-client: modernizations 2009-09-18 22:16:25 +02:00
socket-server.c Use pulsecore/arpa-inet.h to make arpa/inet.h functionality available 2011-03-19 13:41:05 +01:00
socket-server.h native: fallback to another port if the default port is taken 2010-01-14 00:13:13 +01:00
socket-util.c win32: Make some unused-variable warnings go away 2011-06-24 00:34:05 +01:00
socket-util.h Use <pulsecore/socket.h> instead of <sys/socket.h> 2011-02-17 11:58:21 +01:00
socket.h Use <pulsecore/socket.h> instead of <sys/socket.h> 2011-02-17 11:58:21 +01:00
sound-file-stream.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
sound-file-stream.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
sound-file.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
sound-file.h sndfile: big rework of libsndfile interfacing code 2009-05-26 00:05:28 +02:00
source-output.c source-output: Ensure no volumes are applied for passthrough streams 2011-08-18 12:46:46 +05:30
source-output.h More spelling fixes 2011-08-25 11:27:47 +01:00
source.c passthrough: Fix setting volume to unamplified again 2011-08-29 14:32:27 +05:30
source.h More spelling fixes 2011-08-25 11:27:47 +01:00
start-child.c win32: Make some unused-variable warnings go away 2011-06-24 00:34:05 +01:00
start-child.h get rid of svn $ keywords 2008-06-18 23:23:21 +03:00
strbuf.c Fix up according to Coding Style 2011-03-11 11:49:35 +00:00
strbuf.h strbuf: add new call pa_strbuf_putc() 2009-04-29 01:46:51 +02:00
strlist.c Fix up some double spaces 2011-03-18 09:20:07 +00:00
strlist.h More spelling fixes 2011-08-25 11:27:47 +01:00
svolume.orc volume: Add Orc-based optimised volume scaling 2011-03-05 14:38:28 +05:30
svolume_arm.c svolume: Make log messages more precise. 2011-08-15 09:41:56 +01:00
svolume_c.c More spelling fixes 2011-08-25 11:27:47 +01:00
svolume_mmx.c More spelling fixes 2011-08-25 11:27:47 +01:00
svolume_orc.c svolume: Make log messages more precise. 2011-08-15 09:41:56 +01:00
svolume_sse.c svolume: Make log messages more precise. 2011-08-15 09:41:56 +01:00
tagstruct.c pulsecore: Add a couple pa_asserts() on pa_tagstruct* calls. 2011-06-06 14:56:55 +02:00
tagstruct.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
thread-mq.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
thread-mq.h Repair some typos 2011-02-17 12:02:30 +01:00
thread-posix.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
thread-win32.c win32: Make once-test work 2011-06-24 00:32:22 +01:00
thread.h Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
time-smoother.c More spelling fixes 2011-08-25 11:27:47 +01:00
time-smoother.h alsa: throw timing data away after device resume 2009-07-24 20:13:52 +02:00
tokenizer.c Remove unnecessary #includes 2011-06-22 23:12:20 +01:00
tokenizer.h Use LGPL 2.1 on all files previously using LGPL 2 2009-03-03 20:23:02 +00:00
usergroup.c Fix up according to Coding Style 2011-03-11 11:49:35 +00:00
usergroup.h core: Add thread-safe group info functions with dynamic buffers 2009-08-22 00:53:39 +02:00
vector.h More spelling fixes 2011-08-25 11:27:47 +01:00
x11prop.c x11: More XCB fixes. 2011-04-30 14:26:45 +01:00
x11prop.h x11: Use the default screen for X11 properties. 2010-09-18 12:05:38 +01:00
x11wrap.c x11: Partially convert to XCB. 2010-09-18 12:04:09 +01:00
x11wrap.h More spelling fixes 2011-08-25 11:27:47 +01:00