আমার একটি যথাযথ স্ট্রিং রয়েছে। মূল স্ট্রিংয়ে বৈশিষ্ট্যগুলি সংরক্ষণ করার সময় আমি আরও বৈশিষ্ট্য যুক্ত করতে এর একটি গভীর অনুলিপি তৈরি করতে চাই। আমি কীভাবে এটি করতে পারি (সহজেই)?
উদাহরণ
একের পর এক মূল্যায়ন করুন:
(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
। এটি তালিকাটিকে ধ্বংসাত্মকভাবে পরিবর্তন করতে হবে না, কারণ সেই তালিকাটি অন্যদের দ্বারা উল্লেখ করা হলে এটি ব্যর্থ হয়।