मेरे पास एक उचित स्ट्रिंग है। मूल स्ट्रिंग में गुणों को संरक्षित करते हुए, अधिक गुण जोड़ने के लिए मैं इसकी एक गहरी प्रतिलिपि बनाना चाहता हूं। मैं (आसानी से) ऐसा कैसे कर सकता हूं?
उदाहरण
एक-एक का मूल्यांकन करें:
(setq test-str-1
#(";; This `is' a test"
0 3 (fontified nil face font-lock-comment-delimiter-face)
3 9 (fontified nil face font-lock-comment-face)
9 11 (fontified nil face (font-lock-constant-face font-lock-comment-face))
11 19 (fontified nil face font-lock-comment-face)))
(setq test-str-2 (concat test-str-1))
(add-face-text-property 0 (length test-str-2) 'foobar t test-str-2)
और परिणाम:
test-str-2
;; =>
#(";; This `is' a test" 0 3 (fontified nil face (font-lock-comment-delimiter-face foobar))
3 9 (fontified nil face (font-lock-comment-face foobar))
9 11 (fontified nil face (font-lock-constant-face font-lock-comment-face foobar))
11 19 (fontified nil face (font-lock-comment-face foobar)))
test-str-1
;; =>
#(";; This `is' a test" 0 3 (face font-lock-comment-delimiter-face fontified nil)
3 9 (face font-lock-comment-face fontified nil)
9 11 (face (font-lock-constant-face font-lock-comment-face foobar) ; <= foobar is here
fontified nil)
11 19 (face font-lock-comment-face fontified nil))
add-face-text-property
। यह विध्वंसक रूप से सूची को संशोधित नहीं करना चाहिए, क्योंकि यह विफल हो जाता है जब उस सूची को दूसरों द्वारा संदर्भित किया जाता है।