ملف(1)

الاسم
file - يحدد نوع الملف

موجز
file [-bcdEhiklLNnprsSvzZ0] [- -apple] [- -exclude-quiet] [- -extension] [- -mime-encoding] [- -mime-type] [-e testname] [-F separator] [-f namefile] [-m magicfiles] [-P name=value] file ... file -C [-m magicfiles] file [- -help]

الوصف
توثق صفحة الدليل هذه الإصدار 5.47 من الأمر file.

يختبر file كل معطى في محاولة لتصنيفه. هناك ثلاث مجموعات من الاختبارات، تُنفذ بهذا الترتيب: اختبارات نظام الملفات، والاختبارات السحرية، واختبارات اللغة. يؤدي الاختبار الأول الذي ينجح إلى طباعة نوع الملف.

سيحتوي النوع المطبوع عادةً على إحدى الكلمات text (يحتوي الملف على محارف قابلة للطباعة فقط وبعض محارف التحكم الشائعة، ومن المحتمل أن تكون قراءته آمنة على طرفية ASCII) ، أو executable (يحتوي الملف على نتيجة ترجمة برنامج بصيغة مفهومة لنواة UNIX أو غيرها)، أو data وتعني أي شيء آخر (عادة ما تكون البيانات “ثنائية” أو غير قابلة للطباعة). الاستثناءات هي تنسيقات الملفات المعروفة (ملفات الـ core، وأرشيفات tar) المعروفة باحتوائها على بيانات ثنائية. عند تعديل الملفات السحرية أو البرنامج نفسه، تأكد من الحفاظ على هذه الكلمات المفتاحية. يعتمد المستخدمون على معرفة أن جميع الملفات القابلة للقراءة في دليل ما قد طُبعت لها كلمة “text”. لا تفعل كما فعلت بيركلي وتغير “shell commands text” إلى “shell script”.

تعتمد اختبارات نظام الملفات على فحص القيمة الراجعة من استدعاء النظام stat(2). يتحقق البرنامج لمعرفة ما إذا كان الملف فارغًا، أو ما إذا كان نوعًا من الملفات الخاصة. أي أنواع ملفات معروفة ومناسبة للنظام الذي تعمل عليه (المقابس، أو الروابط الرمزية، أو الأنابيب المسماة (FIFOs) في الأنظمة التي تطبقها) تُكتشف حدسيًا إذا كانت معرفة في ملف الترويسة للنظام <sys/stat.h>.

تُستخدم الاختبارات السحرية للتحقق من الملفات التي تحتوي على بيانات بتنسيقات ثابتة معينة. المثال النموذجي على ذلك هو ملف a.out وهو ملف تنفيذي ثنائي (برنامج مترجم)، وتنسيقه معرف في <elf.h> ، <a.out.h> وربما <exec.h> في دليل المضمنات القياسي. تمتلك هذه الملفات “رقمًا سحريًا” مخزنًا في مكان محدد قرب بداية الملف يُعلم نظام تشغيل يونكس بأن الملف هو ملف تنفيذي ثنائي، ويحدد نوعه من بين عدة أنواع. طُبّق مفهوم “الرقم السحري” بالتبعية على ملفات البيانات. وأي ملف يمتلك معرفًا ثابتًا عند إزاحة ثابتة صغيرة داخل الملف يمكن عادةً وصفه بهذه الطريقة. تُقرأ المعلومات المعرفة لهذه الملفات من ملف السحر المصرّف /usr/share/file/misc/magic.mgc ، أو الملفات الموجودة في الدليل /usr/share/file/misc/magic إذا لم يكن الملف المصرّف موجودًا. وبالإضافة إلى ذلك، إذا وُجد $HOME/.magic.mgc أو $HOME/.magic ، فسيُستخدم تفضيلًا على ملفات السحر الخاصة بالنظام.

إذا لم يتطابق الملف مع أي من الإدخالات في الملف السحري، فيُفحص لمعرفة ما إذا كان يبدو ملفًا نصيًا. يمكن تمييز أطقم المحارف ASCII و ISO-8859-x و Extended-ASCII ذات الـ 8 بت غير التابعة لمعيار ISO (مثل تلك المستخدمة في أنظمة Macintosh و IBM PC)، و Unicode المرمز بـ UTF-8، و Unicode المرمز بـ UTF-16، وأطقم محارف EBCDIC من خلال النطاقات و تسلسلات البايتات المختلفة التي تشكل نصًا قابلاً للطباعة في كل طقم. إذا اجتاز الملف أيًا من هذه الاختبارات، يُبلغ عن طقم محارفه. تُعرف ملفات ASCII و ISO-8859-x و UTF-8 و extended-ASCII على أنها “text” لأنها ستكون قابلة للقراءة في الغالب على أي طرفية تقريبًا؛ أما UTF-16 و EBCDIC فهي “character data” فقط لأنها، رغم احتوائها على نص، إلا أنه نص يتطلب ترجمة قبل أن يمكن قراءته. بالإضافة إلى ذلك، سيحاول file تحديد خصائص أخرى للملفات من النوع النصي. إذا كانت سطور الملف تنتهي بـ CR أو CRLF أو NEL، بدلاً من LF القياسي في يونكس، فسيُبلغ عن ذلك. ستُعرف أيضًا الملفات التي تحتوي على تسلسلات هروب مضمنة أو كتابة فوقية.

بمجرد أن يحدد file طقم المحارف المستخدم في ملف من النوع النصي، فإنه سيحاول تحديد اللغة التي كُتب بها الملف. تبحث اختبارات اللغة عن سلاسل نصية معينة (قارن بـ <names.h>) والتي يمكن أن تظهر في أي مكان في الكتل القليلة الأولى من الملف. على سبيل المثال، تشير الكلمة المفتاحية .br إلى أن الملف هو على الأرجح ملف إدخال troff(1) ، تمامًا كما تشير الكلمة المفتاحية struct إلى برنامج C. هذه الاختبارات أقل موثوقية من المجموعتين السابقتين، لذا تُنفذ في النهاية. تختبر روتينات اختبار اللغة أيضًا بعض المتفرقات (مثل أرشيفات tar(1) وملفات JSON).

أي ملف لا يمكن تحديده على أنه كُتب بأي من أطقم المحارف المدرجة أعلاه يقال عنه ببساطة إنه “data”.

الخيارات

- -apple
    يجعل الأمر file يخرج نوع الملف ورمز المنشئ كما هو مستخدم في إصدارات MacOS القديمة. يتكون الرمز من ثمانية أحرف، الأربعة الأولى تصف نوع الملف، والأربعة الأخيرة تصف المنشئ. يعمل هذا الخيار بشكل صحيح فقط لتنسيقات الملفات التي لديها مخرجات معرفة بنمط آبل (apple-style).

-b, - -brief
    لا يسبق أسطر المخرجات بأسماء الملفات (الوضع الموجز).

-C, - -compile
    يكتب ملف مخرجات magic.mgc يحتوي على نسخة محللة مسبقًا من الملف السحري أو الدليل.

-c, - -checking-printout
    يؤدي إلى طباعة فحص للنموذج المحلل للملف السحري. يُستخدم هذا عادةً بالاقتران مع الخيار -m لـ تنقيح ملف سحري جديد قبل تثبيته.

-d  يطبع معلومات التنقيح الداخلية إلى الخطأ القياسي stderr.

-E  عند حدوث أخطاء في نظام الملفات (الملف غير موجود إلخ)، بدلاً من معالجة الخطأ كمخرجات عادية كما يفرض معيار POSIX والاستمرار، يصدر رسالة خطأ ويخرج.

-e, - -exclude testname
    يستبعد الاختبار المسمى في testname من قائمة الاختبارات التي أُجريت لتحديد نوع الملف. أسماء الاختبارات الصالحة هي:

    apptype
        نوع تطبيق EMX (فقط على EMX).

    ascii
        أنواع مختلفة من الملفات النصية (سيحاول هذا الاختبار تخمين ترميز النص، بغض النظر عن إعداد خيار ‘encoding’).

    encoding
        ترميزات نصية مختلفة لاختبارات السحر البرمجية (soft magic).

    tokens
        يتم تجاهله للتوافق مع الإصدارات السابقة.

    cdf يطبع تفاصيل ملفات المستندات المركبة (Compound Document Files).

    compress
        يتحقق من الملفات المضغوطة وينظر بداخلها.

    csv يتحقق من ملفات القيم المفصولة بفاصلة (CSV).

    elf يطبع تفاصيل ملف ELF، بشرط تمكين اختبارات السحر البرمجية والعثور على سحر elf.

    json
        يفحص ملفات JSON (RFC-7159) من خلال تحليلها للتحقق من الامتثال.

    soft
        يستشير الملفات السحرية.

    simh
        يفحص ملفات شريط SIMH.

    tar يفحص ملفات tar من خلال التحقق من مجموع التحقق لترويسة tar البالغة 512 بايت. يمكن أن يوفر استبعاد هذا الاختبار وصفًا أكثر تفصيلاً للمحتوى باستخدام طريقة السحر البرمجية.

    text
        مرادف لـ ‘ascii’.

- -exclude-quiet
    مثل - -exclude ولكن يتجاهل الاختبارات التي لا يعرفها file. مخصص للتوافق مع الإصدارات الأقدم من file.

- -extension
    يطبع قائمة مفصولة بشرطة مائلة للامتدادات الصالحة لنوع الملف الذي عُثر عليه.

-F, - -separator separator
    يستخدم السلسلة النصية المحددة كفاصل بين اسم الملف ونتيجة الملف المعادة. القيمة المبدئية هي ‘’:.

-f, - -files-from namefile
    يقرأ أسماء الملفات المراد فحصها من namefile (واحد لكل سطر) قبل قائمة المعطيات. يجب توفر إما namefile أو معطى اسم ملف واحد على الأقل؛ لاختبار الإدخال القياسي، استخدم ‘-’ كمعطى لاسم الملف. يرجى ملاحظة أنه يتم فك تغليف namefile وتُعالج أسماء الملفات المضمنة عند مواجهة هذا الخيار وقبل إجراء أي معالجة أخرى للخيارات. يسمح هذا بمعالجة قوائم متعددة من الملفات بمعطيات سطر أوامر مختلفة في نفس استدعاء file. وهكذا، إذا كنت تريد تعيين الفاصل، فأنت بحاجة إلى القيام بذلك قبل تحديد قائمة الملفات، مثل: “-F @ -f namefile” ، بدلاً من: “-f namefile -F @”.

-h, - -no-dereference
    يؤدي هذا الخيار إلى عدم تتبع الروابط الرمزية (في الأنظمة التي تدعم الروابط الرمزية). هذا هو المبدئي إذا لم يُعرف متغير البيئة POSIXLY_CORRECT.

-i, - -mime
    يجعل الأمر file يخرج سلاسل نوع mime بدلاً من السلاسل التقليدية التي يمكن للبشر قراءتها. وبالتالي قد يقول ‘text/plain; charset=us-ascii’ بدلاً من “ASCII text”.

- -mime-type, - -mime-encoding
    مثل -i ، ولكن يطبع فقط العناصر المحددة.

-k, - -keep-going
    لا يتوقف عند التطابق الأول، بل يستمر. سيتم سبق التطابقات اللاحقة بالسلسلة ‘\012- ’. (إذا كنت تريد سطرًا جديدًا، فراجع الخيار -r.) يأتي النمط السحري ذو القوة الأعلى (راجع الخيار -l) أولاً.

-l, - -list
    يعرض قائمة من الأنماط وقوتها مرتبة تنازليًا حسب قوة magic(5) المستخدمة للمطابقة (راجع أيضًا الخيار -k).

-L, - -dereference
    يؤدي هذا الخيار إلى تتبع الروابط الرمزية، كما هو الحال في الخيار المشابه المسمى في ls(1) (في الأنظمة التي تدعم الروابط الرمزية). هذا هو المبدئي إذا عُرف متغير البيئة POSIXLY_CORRECT.

-m, - -magic-file magicfiles
    يحدد قائمة بديلة من الملفات والأدلة التي تحتوي على السحر. يمكن أن يكون هذا عنصرًا واحدًا، أو قائمة مفصولة بنقطتين. إذا وُجد ملف سحري مترجم بجانب ملف أو دليل، فسيُستخدم بدلاً منه.

-N, - -no-pad
    لا يحشو أسماء الملفات بحيث تتماذى في المخرجات.

-n, - -no-buffer
    يفرض تفريغ المخرجات القياسية stdout بعد فحص كل ملف. هذا مفيد فقط عند فحص قائمة من الملفات. يهدف استخدامه من قبل البرامج التي تريد مخرجات نوع الملف من أنبوب.

-p, - -preserve-date
    في الأنظمة التي تدعم utime(3) أو utimes(2) ، يحاول الحفاظ على وقت الوصول للملفات التي حُللت، للتظاهر بأن file لم يقرأها أبدًا.

-P, - -parameter name=value
    يضبط حدود المعاملات المختلفة.
    الاسم | المبدئي | الشرح
    bytes | 1M | أقصى عدد من البايتات للقراءة من الملف
    elf_notes | 256 | أقصى عدد من ملاحظات ELF التي تمت معالجتها
    elf_phnum | 2K | أقصى عدد من أقسام برنامج ELF التي تمت معالجتها
    elf_shnum | 32K | الحد الأقصى لأقسام ELF المعالجة
    elf_shsize | 128MB | الحد الأقصى لحجم قسم ELF المعالج
    encoding | 65K | الحد الأقصى لعدد البايتات لتحديد الترميز
    indir | 50 | حد الاستدعاء الذاتي للسحر غير المباشر
    name | 150 | حد عدد استخدام سحر الاسم/الاستخدام
    regex | 8K | حد الطول لعمليات بحث التعبير النمطي

-r, - -raw
    لا تترجم المحارف غير القابلة للطباعة إلى \ooo. عادةً ما يترجم file المحارف غير القابلة للطباعة إلى تمثيلها الثماني.

-s, - -special-files
    عادةً، يحاول file فقط قراءة وتحديد نوع ملفات المعطيات التي يبلغ stat(2) بأنها ملفات عادية. يمنع هذا حدوث مشكلات، لأن قراءة الملفات الخاصة قد تؤدي إلى عواقب غريبة. يؤدي تحديد الخيار -s إلى جعل file يقرأ أيضًا ملفات المعطيات التي هي ملفات خاصة كتلية أو محرفية. هذا مفيد لتحديد أنواع أنظمة ملفات البيانات في أقسام القرص الخام، والتي هي ملفات خاصة كتلية. يتسبب هذا الخيار أيضًا في تجاهل file لحجم الملف كما يبلغه stat(2) نظرًا لأن بعض الأنظمة تبلغ عن حجم صفري لأقسام القرص الخام.

-S, - -no-sandbox
    في الأنظمة التي يتوفر فيها libseccomp (https://github.com/seccomp/libseccomp) ، يعطل الخيار -S العزل (sandboxing) المُمكّن مبدئيًا. هذا الخيار مطلوب لكي ينفذ file برامج فك ضغط خارجية، أي عند تحديد الخيار -z وعدم توفر أدوات فك الضغط المدمجة. لا يؤثر هذا الخيار في الأنظمة التي لا يتوفر فيها العزل.

-v, - -version
    اطبع إصدارة البرنامج ثم اخرج.

-z, - -uncompress
    حاول النظر داخل الملفات المضغوطة.

-Z, - -uncompress-noreport
    حاول النظر داخل الملفات المضغوطة، ولكن بلغ عن معلومات حول المحتويات فقط وليس الضغط.

-0, - -print0
    أخرج محرفًا فارغًا ‘\0’ بعد نهاية اسم الملف. مفيد لـ cut(1) المخرجات. لا يؤثر هذا في الفاصل، الذي لا يزال يُطبع.

    إذا كُرر هذا الخيار أكثر من مرة، فسيطبع file اسم الملف فقط يليه NUL ثم الوصف (أو نص الخطأ ERROR: text) يليه NUL ثانٍ لكل مدخلة.

--help
    اطبع رسالة مساعدة ثم اخرج.

البيئة
يمكن استخدام متغير البيئة MAGIC لضبط اسم ملف السحر المبدئي. إذا ضُبط هذا المتغير، فلن يحاول file فتح $HOME/.magic. يضيف file الامتداد “.mgc” إلى قيمة هذا المتغير حسب الاقتضاء. يتحكم متغير البيئة POSIXLY_CORRECT (في الأنظمة التي تدعم الروابط الرمزية) فيما إذا كان file سيحاول تتبع الروابط الرمزية أم لا. إذا ضُبط، يتتبع file الرابط الرمزي، وإلا فلا. يُتحكم في هذا أيضًا عبر الخيارين -L و -h.

الملفات
/usr/share/file/misc/magic.mgc
    قائمة السحر المجمعة المبدئية.
/usr/share/file/misc/magic
    دليل يحتوي على ملفات السحر المبدئية.

حالة الخروج
سيخرج file بالقيمة 0 إذا نجحت العملية أو بالقيمة >0 إذا وُجه خطأ. تتسبب الأخطاء التالية في ظهور رسائل تشخيصية، لكنها لا تؤثر في رمز خروج البرنامج (كما يتطلب POSIX)، ما لم يُحدد الخيار -E:
•   تعذر العثور على ملف
•   لا يوجد إذن لقراءة ملف
•   تعذر تحديد نوع الملف

أمثلة

    $ file file.c file /dev/{wd0a,hda}
    file.c:	  C program text
    file:	  ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
    	  dynamically linked (uses shared libs), stripped
    /dev/wd0a: block special (0/0)
    /dev/hda: block special (3/0)
    $ file -s /dev/wd0{b,d}
    /dev/wd0b: data
    /dev/wd0d: x86 boot sector
    $ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
    /dev/hda:   x86 boot sector
    /dev/hda1:  Linux/i386 ext2 filesystem
    /dev/hda2:  x86 boot sector
    /dev/hda3:  x86 boot sector, extended partition table
    /dev/hda4:  Linux/i386 ext2 filesystem
    /dev/hda5:  Linux/i386 swap file
    /dev/hda6:  Linux/i386 swap file
    /dev/hda7:  Linux/i386 swap file
    /dev/hda8:  Linux/i386 swap file
    /dev/hda9:  empty
    /dev/hda10: empty
    $ file -i file.c file /dev/{wd0a,hda}
    file.c:	     text/x-c
    file:	     application/x-executable
    /dev/hda:    application/x-not-regular-file
    /dev/wd0a:   application/x-not-regular-file

انظر أيضًا
hexdump(1), od(1), strings(1), magic(5)

المطابقة للمعايير
يُعتقد أن هذا البرنامج يتجاوز تعريف واجهة System V لـ FILE(CMD)، بقدر ما يمكن تحديده من اللغة الغامضة الواردة فيه. سلوكه متوافق في الغالب مع برنامج System V الذي يحمل نفس الاسم. ومع ذلك، فإن هذه الإصدارة تعرف المزيد من السحر، لذا ستنتج مخرجات مختلفة (وإن كانت أكثر دقة) في كثير من الحالات.

الاختلاف الرئيس الوحيد بين هذه الإصدارة و System V هو أن هذه الإصدارة تعامل أي مساحة بيضاء كفاصل، لذا يجب هروب المسافات في سلاسل الأنماط. على سبيل المثال،

    10	string	language impress	(imPRESS data)

في ملف سحر موجود يجب تغييرها إلى

    10	string	language\ impress	(imPRESS data)

بالإضافة إلى ذلك، في هذه الإصدارة، إذا كانت سلسلة النمط تحتوي على شرطة مائلة خلفية، فيجب هروبها. على سبيل المثال

    0	string		\begindata	Andrew Toolkit document

في ملف سحر موجود يجب تغييرها إلى

    0	string		\\begindata	Andrew Toolkit document

تتضمن إصدارات SunOS 3.2 وما بعدها من Sun Microsystems أمر file مشتق من نظام System V، ولكن مع بعض التوسيعات. تختلف هذه الإصدارة عن إصدارة Sun بطرق بسيطة فقط. وهي تتضمن توسيع المعامل ‘’ ، المستخدم على سبيل المثال كـ،

    16	long0x7fffffff	0		not stripped

الأمن
في الأنظمة التي يتوفر فيها libseccomp (https://github.com/seccomp/libseccomp) ، يفرض file قصر استدعاءات النظام على الاستدعاءات الضرورية فقط لعمل البرنامج. لا يوفر هذا الإلزام أي فائدة أمنية عندما يُطلب من file فك ضغط ملفات المدخلات بتشغيل برامج خارجية باستخدام الخيار -z. لتمكين تنفيذ برامج فك الضغط الخارجية، يجب تعطيل العزل باستخدام الخيار -S.

دليل السحر
جُمعت مدخلات ملف السحر من مصادر مختلفة، بشكل رئيس من USENET، وساهم بها مؤلفون مختلفون. سيقوم Christos Zoulas (العنوان أدناه) بجمع مدخلات ملف سحر إضافية أو مصححة. سيُوزع توحيد لمدخلات ملف السحر بشكل دوري.

ترتيب المدخلات في ملف السحر مهم. اعتمادًا على النظام الذي تستخدمه، قد يكون ترتيب تجميعها غير صحيح. إذا كان أمر file القديم يستخدم ملف سحر، فاحتفظ بملف السحر القديم لأغراض المقارنة (أعد تسميته إلى /usr/share/file/misc/magic.orig).

التاريخ
كان هناك أمر file في كل إصدارة UNIX منذ إصدارة Research Version 4 على الأقل (صفحة الدليل مؤرخة في نوفمبر 1973). قدمت إصدارة System V تغييرًا رئيساً واحدًا: القائمة الخارجية لأنواع السحر. أدى هذا إلى إبطاء البرنامج قليلاً ولكنه جعله أكثر مرونة بكثير.

هذا البرنامج، المبني على إصدارة System V، كتبه Ian Darwin <ian@darwinsys.com> دون النظر في شيفرة المصدر الخاصة بأي شخص آخر.

نقح John Gilmore الشيفرة بشكل موسع، مما جعلها أفضل من الإصدارة الأولى. وجد Geoff Collyer العديد من أوجه القصور وقدم بعض مدخلات ملف السحر. مساهمات معامل ‘’ بواسطة Rob McMahon، <cudcv@warwick.ac.uk> ، 1989.

قام Guy Harris، <guy@netapp.com> ، بإجراء العديد من التغييرات من عام 1993 حتى الوقت الحاضر.

التطوير والصيانة الرئيسية من عام 1990 حتى الوقت الحاضر بواسطة Christos Zoulas <christos@astron.com>.

عُدّل بواسطة Chris Lowth <chris@lowth.com> ، عام 2000: للتعامل مع الخيار -i لإخراج سلاسل نوع mime، باستخدام ملف سحر بديل ومنطق داخلي.

عُدّل بواسطة Eric Fischer <enf@pobox.com> ، يوليو 2000، لتحديد رموز المحارف ومحاولة تحديد لغات الملفات غير التابعة لـ ASCII.

عُدّل بواسطة Reuben Thomas <rrt@sc3d.org> ، من 2007 إلى 2011، لتحسين دعم MIME، ودمج سحر MIME وغير MIME، ودعم الأدلة بالإضافة إلى ملفات السحر، وتطبيق العديد من إصلاحات العلل، وتحديث وإصلاح الكثير من السحر، وتحسين نظام البناء، وتحسين التوثيق، وإعادة كتابة روابط بايثون بلغة بايثون صرفة.

قائمة المساهمين في دليل ‘magic’ (ملفات السحر) أطول من أن تُدرج هنا. أنتم تعرفون أنفسكم؛ شكراً لكم. العديد من المساهمين مدرجون في ملفات المصدر.

إشعار قانوني
حقوق النشر (c) لـ Ian F. Darwin، تورونتو، كندا، 1986-1999. مشمول بحقوق نشر Berkeley Software Distribution القياسية؛ انظر ملف COPYING في توزيعة المصدر.

كُتب الملفان tar.h و is_tar.c بواسطة John Gilmore من برنامج tar(1) المتاح للملكية العامة، ولا تغطيهما الرخصة المذكورة أعلاه.

العلل
يرجى الإبلاغ عن العلل وإرسال الرقع إلى متتبع العلل في https://bugs.astron.com/ أو القائمة البريدية في <file@astron.com> (قم بزيارة https://mailman.astron.com/mailman/listinfo/file أولاً للاشتراك).

للقيام به
إصلاح المخرجات بحيث لا تكون اختبارات أعلام MIME و APPLE مطلوبة في كل مكان، ويتم الإخراج الفعلي في مكان واحد فقط. يتطلب هذا تصميماً. اقتراح: ادفع المخرجات المحتملة إلى قائمة، ثم اختر القيمة التي دُفعت آخراً (الأكثر تحديداً، كما نأمل) في النهاية، أو استخدم قيمة مبدئية إذا كانت القائمة فارغة. لا ينبغي أن يؤدي هذا إلى إبطاء التقييم.

التعامل مع MAGIC_CONTINUE وطباعة \012- بين المدخلات أمر أخرق ومعقد؛ أعد هيكلته ومركزيته.

بعض منطق الترميز مرمز بشكل صلب في encoding.c ويمكن نقله إلى ملفات السحر إذا توفر لدينا تعليق توضيحي !:charset.

الاستمرار في سحق كل علل السحر. انظر Debian BTS للحصول على مصدر جيد.

تخزين سلاسل طويلة عشوائيًا، على سبيل المثال لأنماط %s، بحيث يمكن طباعتها. يصلح علة دبيان رقم #271672. يمكن القيام بذلك عن طريق تخصيص السلاسل في مجمع سلاسل، وتخزين مجمع السلاسل في نهاية ملف السحر وتحويل جميع مؤشرات السلاسل إلى إزاحات نسبية من مجمع السلاسل.

إضافة بناء جملة للإزاحات النسبية بعد المستوى الحالي (علة دبيان رقم #466037).

جعل file -ki يعمل، أي إعطاء أنواع MIME متعددة.

إضافة مكتبة zip لكي نتمكن من استراق النظر داخل مستندات Office2007 لطباعة مزيد من التفاصيل حول محتوياتها.

إضافة خيار لطباعة عناوين URL لمصادر أوصاف الملفات.

دمج عمليات البحث عن السكريبتات وإضافة طريقة لربط أسماء الملفات القابلة للتنفيذ بأنواع MIME (على سبيل المثال، وجود قيمة سحرية لـ !:mime تؤدي إلى البحث عن السلسلة الناتجة في جدول). سيؤدي هذا إلى تجنب إضافة نفس السحر بشكل متكرر لكل مفسر hash-bang جديد.

عند توفر واصف ملف، يمكننا التخطي وتعديل المخزن المؤقت بدلاً من إدارة المخزن المؤقت الملتوية التي نقوم بها الآن.

إصلاح “name” و “use” للتحقق من الاتساق في وقت التجميع (تكرار “name” ، أو “use” يشير إلى “name” غير معرف). جعل “name” / “use” أكثر كفاءة من خلال الاحتفاظ بقائمة مرتبة من الأسماء. تخصيص حالة خاصة لـ ^ لقلب ترتيب البايتات (endianness) في المحلل بحيث لا يلزم هروبها، وتوثيق ذلك.

إذا كانت الإزاحات المحددة داخلياً في الملف تتجاوز حجم المخزن المؤقت (متغير HOWMANY في file.h)، فإننا لا ننتقل إلى تلك الإزاحة، بل نستسلم. سيكون من الأفضل لو أجريت إدارة المخزن المؤقت عند توفر واصف الملف لكي نتمكن من البحث في أنحاء الملف. يجب الحذر رغم ذلك لأن لهذا اعتبارات في الأداء وبالتالي اعتبارات أمنية، لأن المرء يمكنه إبطاء الأمور بالبحث المتكرر.

يوجد دعم الآن للاحتفاظ بمخازن مؤقتة منفصلة ووجود إزاحات من نهاية الملف، ولكن لا تزال إدارة المخزن المؤقت الداخلية بحاجة إلى إصلاح شامل.

التوفر
يمكنك الحصول على أحدث إصدار للمؤلف الأصلي عبر FTP مجهول على ftp.astron.com في الدليل /pub/file/file-X.YZ.tar.gz.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3: https://www.gnu.org/licenses/gpl-3.0.html أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.