2.15.0
[platform/upstream/glib.git] / docs / reference / glib / tmpl / glib-unused.sgml
1 <!-- ##### SECTION ./tmpl/desktop_entry.sgml:Long_Description ##### -->
2 <para>
3 The "GDesktopEntry" parser is intended to parse files written to
4 the <ulink
5 url="http://www.freedesktop.org/Standards/desktop-entry-spec">Desktop
6 Entry Specification</ulink>.  It supports deserialization of
7 desktop entries from files and in-memory data.  Desktop entries
8 are used for a variety of things including menus, application
9 MIME type registration, and launchers.
10 </para>
11
12 <para>
13 To load an existing desktop entry from a data directory (as
14 returned by g_get_user_data_dir() and g_get_system_data_dirs())
15 use g_desktop_entry_new_from_data_dirs().  To load an existing
16 desktop entry from an arbitrary location on the file system use
17 g_desktop_entry_new_from_file().  If the desktop entry is already
18 in memory use g_desktop_entry_new_from_data().  Once the desktop 
19 entry is loaded its keys can be queried using the g_desktop_entry_get 
20 family of functions.
21 </para>
22
23 <para>
24 To create a new desktop entry first call g_desktop_entry_new().
25 Then, call the g_desktop_entry_set family of functions.  Next,
26 call g_desktop_entry_to_data() to output the desktop entry to 
27 a byte array, which can be written to disk or sent over a
28 network.  Finally, call g_desktop_entry_free() to deallocate the
29 #GDesktopEntry object returned by g_desktop_entry_new().
30 </para>
31
32
33 <!-- ##### SECTION ./tmpl/desktop_entry.sgml:See_Also ##### -->
34 <para>
35
36 </para>
37
38
39 <!-- ##### SECTION ./tmpl/desktop_entry.sgml:Short_Description ##### -->
40 serializes and deserializes a desktop entry.
41
42
43 <!-- ##### SECTION ./tmpl/desktop_entry.sgml:Title ##### -->
44 Desktop Entry Parser
45
46
47 <!-- ##### SECTION ./tmpl/glib-unused.sgml:Stability_Level ##### -->
48
49
50
51 <!-- ##### ENUM GChannelError ##### -->
52 <para>
53
54 </para>
55
56 @G_CHANNEL_ERROR_ACCES: 
57 @G_CHANNEL_ERROR_BADF: 
58 @G_CHANNEL_ERROR_DEADLK: 
59 @G_CHANNEL_ERROR_FAULT: 
60 @G_CHANNEL_ERROR_INVAL: 
61 @G_CHANNEL_ERROR_IO: 
62 @G_CHANNEL_ERROR_ISDIR: 
63 @G_CHANNEL_ERROR_MFILE: 
64 @G_CHANNEL_ERROR_NOLCK: 
65 @G_CHANNEL_ERROR_NOSPC: 
66 @G_CHANNEL_ERROR_PERM: 
67 @G_CHANNEL_ERROR_PIPE: 
68 @G_CHANNEL_ERROR_SPIPE: 
69 @G_CHANNEL_ERROR_ENCODE_RW: 
70 @G_CHANNEL_ERROR_FAILED: 
71
72 <!-- ##### ENUM GChannelStatus ##### -->
73 <para>
74
75 </para>
76
77 @G_CHANNEL_STATUS_NORMAL: 
78 @G_CHANNEL_STATUS_EOF: 
79 @G_CHANNEL_STATUS_PARTIAL_CHARS: 
80 @G_CHANNEL_STATUS_AGAIN: 
81 @G_CHANNEL_STATUS_INTR: 
82 @G_CHANNEL_STATUS_ERROR: 
83 @G_CHANNEL_STATUS_BAD_INPUT: 
84
85 <!-- ##### USER_FUNCTION GCompareFuncData ##### -->
86 <para>
87
88 </para>
89
90 @a: 
91 @b: 
92 @user_data: 
93 @Returns: 
94
95 <!-- ##### USER_FUNCTION GCompletionStrcmpFunc ##### -->
96 <para>
97
98 </para>
99
100 @s1: 
101 @s2: 
102 @Returns: 
103
104 <!-- ##### STRUCT GDesktopEntry ##### -->
105 <para>
106
107 </para>
108
109
110 <!-- ##### ENUM GDesktopEntryError ##### -->
111 <para>
112 Error codes returned by desktop entry parsing.
113 </para>
114
115 @G_DESKTOP_ENTRY_ERROR_UNKNOWN_ENCODING: text being parsed is not UTF-8 and
116 cannot be guessed.
117 @G_DESKTOP_ENTRY_ERROR_BAD_START_GROUP: desktop entry does not start with a
118 legal start group.
119 @G_DESKTOP_ENTRY_ERROR_PARSE: desktop entry is empty or contains invalid
120 data.
121 @G_DESKTOP_ENTRY_ERROR_NOT_FOUND: valid desktop entry could not be found.
122 @G_DESKTOP_ENTRY_ERROR_KEY_NOT_FOUND: desktop entry does not have requested
123 key.
124 @G_DESKTOP_ENTRY_ERROR_GROUP_NOT_FOUND: desktop entry does not have requested
125 group
126 @G_DESKTOP_ENTRY_ERROR_INVALID_VALUE: desktop entry contains key which has
127 value that cannot be validated.
128
129 <!-- ##### ENUM GDesktopEntryFlags ##### -->
130 <para>
131 #GDesktopEntry supports a few flags for tweaking performance during
132 deserialization.  #G_DESKTOP_ENTRY_DISCARD_COMMENTS and 
133 #G_DESKTOP_ENTRY_DISCARD_TRANSLATIONS will reduce memory footprint,
134 and #G_DESKTOP_ENTRY_GENERATE_LOOKUP_MAP will increase key lookup speed.
135 </para>
136
137 @G_DESKTOP_ENTRY_NONE: use parser defaults
138 @G_DESKTOP_ENTRY_DISCARD_COMMENTS:  Discard all lines that are blank
139 or start with "#".
140 @G_DESKTOP_ENTRY_DISCARD_TRANSLATIONS: Only retain translations that
141 are returned by g_get_language_names().
142 @G_DESKTOP_ENTRY_GENERATE_LOOKUP_MAP: Generate a lookup map for key names to make lookups constant time at the cost of more memory.
143
144 <!-- ##### USER_FUNCTION GErrorFunc ##### -->
145 <para>
146 Specifies the type of function passed to g_set_error_handler().
147 </para>
148
149 @str: the error message.
150
151 <!-- ##### USER_FUNCTION GHookFreeFunc ##### -->
152 <para>
153
154 </para>
155
156 @hook_list: 
157 @hook: 
158
159 <!-- ##### ENUM GIOFileMode ##### -->
160 <para>
161
162 </para>
163
164 @G_IO_FILE_MODE_READ: 
165 @G_IO_FILE_MODE_WRITE: 
166 @G_IO_FILE_MODE_APPEND: 
167 @G_IO_FILE_MODE_READ_WRITE: 
168 @G_IO_FILE_MODE_READ_WRITE_TRUNCATE: 
169 @G_IO_FILE_MODE_READ_WRITE_APPEND: 
170
171 <!-- ##### ENUM GMatchType ##### -->
172 <para>
173 Enumeration representing different kinds of patterns. This is only used
174 internally for optimizing the match algorithm.
175 </para>
176
177 @G_MATCH_ALL: a general pattern.
178 @G_MATCH_ALL_TAIL: a general pattern which contains a fixed part matching
179 the end of the string.
180 @G_MATCH_HEAD: a pattern matching every string with a certain prefix.
181 @G_MATCH_TAIL: a pattern matching every string with a certain suffix.
182 @G_MATCH_EXACT: a pattern matching exactly one string.
183 @G_MATCH_LAST: 
184
185 <!-- ##### USER_FUNCTION GWarningFunc ##### -->
186 <para>
187 Specifies the type of function passed to g_set_warning_handler().
188 </para>
189
190 @str: the warning message.
191
192 <!-- ##### MACRO G_CHANNEL_ERROR ##### -->
193 <para>
194
195 </para>
196
197
198 <!-- ##### MACRO G_DESKTOP_ENTRY_ERROR ##### -->
199 <para>
200 Error domain for desktop entry parsing. Errors in this domain will
201 be from the #GDesktopEntryError enumeration. See #GError for information on 
202 error domains.
203 </para>
204
205
206 <!-- ##### MACRO G_HOOK_DEFERRED_DESTROY ##### -->
207 <para>
208
209 </para>
210
211
212 <!-- ##### MACRO G_IO_CHANNEL_DEFAULT_LINE_TERM ##### -->
213 <para>
214 One of %G_IO_CHANNEL_UNIX_LINE_TERM, %G_IO_CHANNEL_DOS_LINE_TERM,
215 or %G_IO_CHANNEL_MACINTOSH_LINE_TERM (unimplemented)
216 depending on the system type.
217 </para>
218
219
220 <!-- ##### MACRO G_IO_CHANNEL_DOS_LINE_TERM ##### -->
221 <para>
222
223 </para>
224
225
226 <!-- ##### MACRO G_IO_CHANNEL_ENCODE_RAW ##### -->
227 <para>
228 Encoding for nonbuffered IO. With this encoding, data must be
229 read using g_io_channel_read_chars(); the other functions will
230 not work.
231 </para>
232
233
234 <!-- ##### MACRO G_IO_CHANNEL_MACINTOSH_LINE_TERM ##### -->
235 <para>
236
237 </para>
238
239
240 <!-- ##### MACRO G_IO_CHANNEL_UNIX_LINE_TERM ##### -->
241 <para>
242
243 </para>
244
245
246 <!-- ##### MACRO NAME_MAX ##### -->
247 <para>
248 Provided for UNIX emulation on Windows; equivalent to UNIX macro 
249 %NAME_MAX, which is the maximum length of a single path component.
250 i.e. just the <filename>foo</filename> in <filename>/usr/bin/foo</filename>.
251 </para>
252
253
254 <!-- ##### MACRO _ ##### -->
255 <para>
256 Marks a string for translation, gets replaced with the translated string
257 at runtime.
258 </para>
259
260 @String: the string to be translated
261 @Since: 2.4
262
263 <!-- ##### MACRO access ##### -->
264 <para>
265
266 </para>
267
268
269 <!-- ##### MACRO close ##### -->
270 <para>
271
272 </para>
273
274
275 <!-- ##### FUNCTION closedir ##### -->
276 <para>
277 Provided for UNIX emulation on Windows; see documentation for <function>closedir()</function>
278 in any UNIX manual.
279 </para>
280
281 @Param1: 
282 @Returns: 
283
284 <!-- ##### MACRO fdopen ##### -->
285 <para>
286
287 </para>
288
289
290 <!-- ##### MACRO ftruncate ##### -->
291 <para>
292 Provided for UNIX emulation on Windows; see documentation for ftruncate()
293 in any UNIX manual.
294 </para>
295
296 @fd: 
297 @size: 
298
299 <!-- ##### FUNCTION g_channel_error_from_errno ##### -->
300 <para>
301
302 </para>
303
304 @en: 
305 @Returns: 
306
307 <!-- ##### FUNCTION g_channel_error_quark ##### -->
308 <para>
309
310 </para>
311
312 @Returns: 
313
314 <!-- ##### FUNCTION g_convert_error_quark ##### -->
315 <para>
316
317 </para>
318
319 @Returns: 
320
321 <!-- ##### FUNCTION g_desktop_entry_escape_strings ##### -->
322 <para>
323
324 </para>
325
326 @entry: 
327 @should_escape: 
328
329 <!-- ##### FUNCTION g_desktop_entry_free ##### -->
330 <para>
331
332 </para>
333
334 @entry: 
335
336 <!-- ##### FUNCTION g_desktop_entry_get_boolean ##### -->
337 <para>
338
339 </para>
340
341 @entry: 
342 @group_name: 
343 @key: 
344 @error: 
345 @Returns: 
346
347 <!-- ##### FUNCTION g_desktop_entry_get_boolean_list ##### -->
348 <para>
349
350 </para>
351
352 @entry: 
353 @group_name: 
354 @key: 
355 @length: 
356 @error: 
357 @Returns: 
358
359 <!-- ##### FUNCTION g_desktop_entry_get_groups ##### -->
360 <para>
361
362 </para>
363
364 @entry: 
365 @length: 
366 @Returns: 
367
368 <!-- ##### FUNCTION g_desktop_entry_get_integer ##### -->
369 <para>
370
371 </para>
372
373 @entry: 
374 @group_name: 
375 @key: 
376 @error: 
377 @Returns: 
378
379 <!-- ##### FUNCTION g_desktop_entry_get_integer_list ##### -->
380 <para>
381
382 </para>
383
384 @entry: 
385 @group_name: 
386 @key: 
387 @length: 
388 @error: 
389 @Returns: 
390
391 <!-- ##### FUNCTION g_desktop_entry_get_keys ##### -->
392 <para>
393
394 </para>
395
396 @entry: 
397 @group_name: 
398 @length: 
399 @error: 
400 @Returns: 
401
402 <!-- ##### FUNCTION g_desktop_entry_get_locale_string ##### -->
403 <para>
404
405 </para>
406
407 @entry: 
408 @group_name: 
409 @key: 
410 @locale: 
411 @error: 
412 @Returns: 
413
414 <!-- ##### FUNCTION g_desktop_entry_get_locale_string_list ##### -->
415 <para>
416
417 </para>
418
419 @entry: 
420 @group_name: 
421 @key: 
422 @locale: 
423 @length: 
424 @error: 
425 @Returns: 
426
427 <!-- ##### FUNCTION g_desktop_entry_get_start_group ##### -->
428 <para>
429
430 </para>
431
432 @entry: 
433 @Returns: 
434
435 <!-- ##### FUNCTION g_desktop_entry_get_string ##### -->
436 <para>
437
438 </para>
439
440 @entry: 
441 @group_name: 
442 @key: 
443 @error: 
444 @Returns: 
445
446 <!-- ##### FUNCTION g_desktop_entry_get_string_list ##### -->
447 <para>
448
449 </para>
450
451 @entry: 
452 @group_name: 
453 @key: 
454 @length: 
455 @error: 
456 @Returns: 
457
458 <!-- ##### FUNCTION g_desktop_entry_has_group ##### -->
459 <para>
460
461 </para>
462
463 @entry: 
464 @group_name: 
465 @Returns: 
466
467 <!-- ##### FUNCTION g_desktop_entry_has_key ##### -->
468 <para>
469
470 </para>
471
472 @entry: 
473 @group_name: 
474 @key: 
475 @error: 
476 @Returns: 
477
478 <!-- ##### FUNCTION g_desktop_entry_new ##### -->
479 <para>
480
481 </para>
482
483 @flags: 
484 @error: 
485 @Returns: 
486
487 <!-- ##### FUNCTION g_desktop_entry_new_from_data ##### -->
488 <para>
489
490 </para>
491
492 @data: 
493 @length: 
494 @legal_start_groups: 
495 @flags: 
496 @error: 
497 @Returns: 
498
499 <!-- ##### FUNCTION g_desktop_entry_new_from_data_dirs ##### -->
500 <para>
501
502 </para>
503
504 @file: 
505 @full_path: 
506 @legal_start_groups: 
507 @flags: 
508 @error: 
509 @Returns: 
510
511 <!-- ##### FUNCTION g_desktop_entry_new_from_file ##### -->
512 <para>
513
514 </para>
515
516 @file: 
517 @legal_start_groups: 
518 @flags: 
519 @error: 
520 @Returns: 
521
522 <!-- ##### FUNCTION g_desktop_entry_remove_group ##### -->
523 <para>
524
525 </para>
526
527 @entry: 
528 @group_name: 
529 @error: 
530
531 <!-- ##### FUNCTION g_desktop_entry_remove_key ##### -->
532 <para>
533
534 </para>
535
536 @entry: 
537 @group_name: 
538 @key: 
539 @error: 
540
541 <!-- ##### FUNCTION g_desktop_entry_set_boolean ##### -->
542 <para>
543
544 </para>
545
546 @entry: 
547 @group_name: 
548 @key: 
549 @boolean: 
550 @error: 
551
552 <!-- ##### FUNCTION g_desktop_entry_set_boolean_list ##### -->
553 <para>
554
555 </para>
556
557 @entry: 
558 @group_name: 
559 @key: 
560 @list: 
561 @length: 
562 @error: 
563
564 <!-- ##### FUNCTION g_desktop_entry_set_integer ##### -->
565 <para>
566
567 </para>
568
569 @entry: 
570 @group_name: 
571 @key: 
572 @integer: 
573 @error: 
574
575 <!-- ##### FUNCTION g_desktop_entry_set_integer_list ##### -->
576 <para>
577
578 </para>
579
580 @entry: 
581 @group_name: 
582 @key: 
583 @list: 
584 @length: 
585 @error: 
586
587 <!-- ##### FUNCTION g_desktop_entry_set_locale_string ##### -->
588 <para>
589
590 </para>
591
592 @entry: 
593 @group_name: 
594 @key: 
595 @locale: 
596 @string: 
597 @error: 
598
599 <!-- ##### FUNCTION g_desktop_entry_set_locale_string_list ##### -->
600 <para>
601
602 </para>
603
604 @entry: 
605 @group_name: 
606 @key: 
607 @locale: 
608 @list: 
609 @length: 
610 @error: 
611
612 <!-- ##### FUNCTION g_desktop_entry_set_string ##### -->
613 <para>
614
615 </para>
616
617 @entry: 
618 @group_name: 
619 @key: 
620 @string: 
621 @error: 
622
623 <!-- ##### FUNCTION g_desktop_entry_set_string_list ##### -->
624 <para>
625
626 </para>
627
628 @entry: 
629 @group_name: 
630 @key: 
631 @list: 
632 @length: 
633 @error: 
634
635 <!-- ##### FUNCTION g_desktop_entry_to_data ##### -->
636 <para>
637
638 </para>
639
640 @entry: 
641 @length: 
642 @error: 
643 @Returns: 
644
645 <!-- ##### FUNCTION g_file_replace ##### -->
646 <para>
647
648 </para>
649
650 @filename: 
651 @contents: 
652 @length: 
653 @error: 
654 @Returns: 
655
656 <!-- ##### FUNCTION g_io_channel_error_quark ##### -->
657 <para>
658
659 </para>
660
661 @Returns: 
662
663 <!-- ##### VARIABLE g_log_domain_glib ##### -->
664 <para>
665 The log domain used for messages logged by GLib itself.
666 </para>
667
668
669 <!-- ##### FUNCTION g_main_add_poll ##### -->
670 <para>
671 Adds a file descriptor to be polled.
672 This is usually combined with g_source_add() to add an event source.
673 The event source's check function will typically test the revents
674 field in the #GPollFD struct and return TRUE if events need to be processed.
675 </para>
676
677 @fd: a #GPollFD, which is a file descriptor together with a bitwise
678 combination of #GIOCondition flags determining which events to poll for.
679 @priority: the priority of the poll, which should be the same as the priority
680 used for g_source_add() to ensure that the file descriptor is polled whenever
681 the results may be needed.
682 See #G_PRIORITY_DEFAULT, #G_PRIORITY_DEFAULT_IDLE, #G_PRIORITY_HIGH,
683 #G_PRIORITY_HIGH_IDLE, and #G_PRIORITY_LOW.
684
685 <!-- ##### FUNCTION g_main_context_get ##### -->
686 <para>
687
688 </para>
689
690 @thread: 
691 @Returns: 
692
693 <!-- ##### FUNCTION g_main_loop_destroy ##### -->
694 <para>
695
696 </para>
697
698 @loop: 
699
700 <!-- ##### FUNCTION g_main_remove_poll ##### -->
701 <para>
702 Removes a file descriptor from the list being polled.
703 </para>
704
705 @fd: the #GPollFD to remove.
706
707 <!-- ##### FUNCTION g_main_win32_get_poll_func ##### -->
708 <para>
709
710 </para>
711
712 @Returns: 
713
714 <!-- ##### FUNCTION g_mem_check ##### -->
715 <para>
716 Checks if the given memory has already been freed. If it has it outputs
717 a warning message.
718 To use this function you must configure glib with the flag
719 '--enable-mem-check=yes' before compiling.
720 </para>
721
722 @mem: the memory to check.
723
724 <!-- ##### FUNCTION g_regex_error_quark ##### -->
725 <para>
726
727 </para>
728
729 @Returns: 
730
731 <!-- ##### FUNCTION g_regex_free ##### -->
732 <para>
733
734 </para>
735
736 @regex: 
737
738 <!-- ##### FUNCTION g_scanner_stat_mode ##### -->
739 <para>
740 Gets the file attributes.
741 This is the <structfield>st_mode</structfield> field from the
742 <structname>stat</structname> structure. See the <function>stat()</function>
743 documentation.
744 </para>
745
746 @filename: the file name.
747 @Returns: the file attributes.
748
749 <!-- ##### FUNCTION g_set_error_handler ##### -->
750 <para>
751 Sets the function to be called to handle error messages.
752 This function is deprecated in favour of the new logging facilities.
753 </para>
754
755 @func: the function to be called to handle error messages.
756 @Returns: the old error handler.
757
758 <!-- ##### FUNCTION g_set_message_handler ##### -->
759 <para>
760 Sets the function to be called to handle messages.
761 This function is deprecated in favour of the new logging facilities.
762 </para>
763
764 @func: the function to be called to handle normal messages.
765 @Returns: the old message handler.
766
767 <!-- ##### FUNCTION g_set_warning_handler ##### -->
768 <para>
769 Sets the function to be called to handle warning messages.
770 This function is deprecated in favour of the new logging facilities.
771 </para>
772
773 @func: the function to be called to handle warning messages.
774 @Returns: the old warning handler.
775
776 <!-- ##### FUNCTION g_source_add ##### -->
777 <para>
778 </para>
779
780 @priority: 
781 @can_recurse: 
782 @funcs: 
783 @source_data: 
784 @user_data: 
785 @notify: 
786 @Returns: 
787 @source: 
788 @context: 
789
790 <!-- ##### FUNCTION g_source_connect ##### -->
791 <para>
792
793 </para>
794
795 @source: 
796 @func: 
797 @data: 
798 @notify: 
799
800 <!-- ##### FUNCTION g_source_connect_indirect ##### -->
801 <para>
802
803 </para>
804
805 @source: 
806 @callback_data: 
807 @callback_funcs: 
808
809 <!-- ##### FUNCTION g_source_remove_by_source_data ##### -->
810 <para>
811 Removes the first event source found with the given source data.
812 </para>
813 <para>
814 Event sources are sorted with the highest priority first. Sources with equal
815 priority are stored in the order in which they were added.
816 </para>
817
818 @source_data: the source data, which contains information specific to the
819 type of source.
820 @Returns: TRUE if an event source was found and removed.
821
822 <!-- ##### FUNCTION g_static_private_get_for_thread ##### -->
823 <para>
824
825 </para>
826
827 @private_key: 
828 @thread: 
829 @Returns: 
830
831 <!-- ##### FUNCTION g_static_private_set_for_thread ##### -->
832 <para>
833
834 </para>
835
836 @private_key: 
837 @thread: 
838 @data: 
839 @notify: 
840
841 <!-- ##### MACRO g_string ##### -->
842 <para>
843 Turns the argument into a string literal by using the '#' stringizing operator.
844 </para>
845
846 @x: text to convert to a literal string.
847
848 <!-- ##### MACRO getcwd ##### -->
849 <para>
850
851 </para>
852
853
854 <!-- ##### MACRO getpid ##### -->
855 <para>
856
857 </para>
858
859
860 <!-- ##### MACRO lseek ##### -->
861 <para>
862
863 </para>
864
865
866 <!-- ##### MACRO open ##### -->
867 <para>
868
869 </para>
870
871
872 <!-- ##### FUNCTION opendir ##### -->
873 <para>
874 Provided for UNIX emulation on Windows; see documentation for <function>opendir()</function>
875 in any UNIX manual.
876 </para>
877
878 @Param1: 
879 @Returns: 
880
881 <!-- ##### MACRO pclose ##### -->
882 <para>
883
884 </para>
885
886
887 <!-- ##### MACRO pipe ##### -->
888 <para>
889 Provided for UNIX emulation on Windows; see documentation for pipe()
890 in any UNIX manual.
891 </para>
892
893 @phandles: file descriptors, the first one for reading, the second one for writing.
894
895 <!-- ##### MACRO popen ##### -->
896 <para>
897
898 </para>
899
900
901 <!-- ##### MACRO read ##### -->
902 <para>
903
904 </para>
905
906
907 <!-- ##### MACRO readdir ##### -->
908 <para>
909 Provided for UNIX emulation on Windows; see documentation for <function>readdir()</function>
910 in any UNIX manual.
911 </para>
912
913
914 <!-- ##### FUNCTION rewinddir ##### -->
915 <para>
916 Provided for UNIX emulation on Windows; see documentation for <function>rewinddir()</function>
917 in any UNIX manual.
918 </para>
919
920 @Param1: 
921
922 <!-- ##### MACRO write ##### -->
923 <para>
924
925 </para>
926
927