الخلاصة

  • أضافت RFC 3676 المعلمة DelSp لتمييز المسافة الموجودة أصلاً بين الكلمات من المسافة التي يضيفها المرسل لمجرد الإشارة إلى استمرار السطر.
  • القيمة الافتراضية هي no. وعند استخدام الطريقة الجديدة للالتفاف في لغات نادراً ما تستعمل مسافة ASCII أو لا تستعملها، يجب إعلان DelSp=yes كي يحذف المستقبل العلامة بدلاً من إدخال محرف في النص المعاد تركيبه.

قد تحمل المسافة في نهاية السطر معنيين مختلفين. في text/plain; format=flowed قد تشير إلى أن الفقرة تتابع في السطر المادي التالي. لكن هل كانت المسافة تفصل كلمتين في النص الأصلي، أم أضافها برنامج البريد لتعليم موضع التفاف لين؟ جعلت RFC 3676، المنشورة عام 2004، الفرق صريحاً عبر DelSp. وقد حلّت محل RFC 2646، مع الإبقاء على النص القابل لإعادة التدفق وإضافة إشارة لازمة لإعادة وصل الأسطر. (§§4–4.2.)

لم تكن الطريقة الأقدم تسمح بالالتفاف إلا حيث توجد مسافة بين كلمتين أصلاً. يضيف المرسل CRLF بعد تلك المسافة؛ وعند وصل الأسطر المادية، يحتفظ المستقبل بالفاصل. لذلك توصي RFC 3676 باستخدام DelSp=no مع هذه الطريقة. فالمسافة جزء من المحتوى الأصلي وليست علامة تنسيق ينبغي حذفها.

لكن ذلك لا يكفي في اللغات ومجموعات المحارف التي تندر فيها مسافة ASCII أو تغيب. فقد لا توجد فجوة طبيعية بين الكلمات يمكن عندها تقسيم السطر. تتيح الطريقة الجديدة إدراج SP CRLF في الموضع المختار. تشير المسافة النهائية إلى استمرار السطر، ومع DelSp=yes يحذف المستقبل هذه العلامة عند الوصل. أما إن أبقاها، فسيضيف تحويل العرض محرفاً لم يكن ضمن تسلسل النص الأصلي. لهذا تشترط RFC 3676 أن يعلن المرسل DelSp=yes عند استعمال هذه الطريقة. ليست المعلمة كاشفاً للغة؛ بل إعلان عن قاعدة الترميز المختارة. (§§4.1–4.2.)

لغياب المعلمة دلالة محددة أيضاً. إذا لم تظهر DelSp أو لم تُعرف قيمتها، يفترض المستقبل no. واستخدامها من دون Format=Flowed غير معرّف؛ وخارج text/plain; format=flowed ينبغي للمستقبل تجاهلها. لذا لا يجوز للبرنامج تخمين أن المسافة النهائية اصطناعية. يحافظ الافتراض الافتراضي على القراءة الأقدم، لكنه لا يستعيد مقصد المرسل إذا ضاعت البيانات الوصفية اللازمة.

موضع العلامة مهم كذلك. فإذا أُدرجت قبل مسافة أصلية مباشرة، تصبح المسافة القديمة أول محرف في السطر التالي. ويستخدم النص المتدفق space-stuffing لحماية الأسطر التي تبدأ بمسافة أو > أو From ؛ وهكذا يفرض اختيار الموضع معالجة إضافية. توصي RFC 3676 بإدراج SP CRLF بعد المسافة الموجودة مسبقاً، كي يبقى فاصل الكلمات وعلامة الالتفاف عنصرين مختلفين. (§§4.2، 4.4.)

نطاق المعيار محدد: تصف RFC 3676 تنسيقاً على السلك لمحتوى text/plain، لا طريقة تخزين ملف محلي. كما أن ترميز نقل المحتوى MIME طبقة منفصلة. وتشرح المواصفة ترتيب تجهيز النص والتوقيع أو التشفير ثم إعادة التدفق؛ غير أن أطروحة المعالجة التشفيرية تخص التغطية المستقلة لـ RFC 2646 ولا نكررها هنا. كذلك لا يثبت المعيار أن برنامج بريد بعينه نفّذ القاعدة. وتذكّرنا عدسة Note 65 لهينغ لو بأن نص المواصفة وسلوك الشيفرة العاملة نوعان مختلفان من الأدلة. لمعرفة ما ظهر للمستخدمين فعلاً، يلزم تحديد إصدارات البرامج والتقاط الرسائل.

المصادر

  • RFC 3676، ولا سيما §§4.1–4.2 والملحق A.
  • RFC 2646، المواصفة السابقة للنص المتدفق.
  • RFC 2046، إطار أنواع وسائط MIME.
  • RFC 2045، سياق متن الرسائل وترميز النقل MIME.
  • هينغ لو، Note 65، عدسة تحليلية معلنة لا دليل على التنفيذ.